When a tcsh script has DOS line endings and a line ending falls in bytes 32767 and 32768, the line ending is lost. I discovered this with a scriptpassing shell input to a program using the << construct, and have reproduced the problem with a script (bigscript) that passes 4 lines of input to another script. The functional part of the script is
./testreader <<EOF key1 value1 key2 value2 key3 value3 key4 value4 EOF
and the rest is filler to bring the line ending between the second and third line to the 32768 byte boundary. testreader simply reads and echos four lines of input. Here is the result of running bigscript - it passes both lines to the reader: [m...@salsa ~]$ ./bigscript Line 1: key1 value1 Line 2: key2 value2key3 value3 Line 3: key4 value4Line 4: [m...@salsa ~]$ od -c bigscript | grep -B 1 0100000
0077760 \r \n k e y 2 v a l u e 2 \r 0100000 \n k e y 3 v a l u e 3 \r \n Here the script was modified to have one less character and it runs fine: [m...@salsa ~]$ ./bigscript2 Line 1: key1 value1 Line 2: key2 value2 Line 3: key3 value3 Line 4: key4 value4 [m...@salsa ~]$ od -c bigscript2 | grep -B 1 0100000 0077760 \n k e y 2 v a l u e 2 \r \n 0100000 k e y 3 v a l u e 3 \r \n k Here it was modified to have one more character and it runs fine: [m...@salsa ~]$ ./bigscript3 Line 1: key1 value1 Line 2: key2 value2 Line 3: key3 value3 Line 4: key4 value4 [m...@salsa ~]$ od -c bigscript3 | grep -B 1 0100000 0077760 1 \r \n k e y 2 v a l u e 2 0100000 \r \n k e y 3 v a l u e 3 \rConverting a script to unix line endings avoids the problem, even if a critical line ending is moved to byte 32767 or 32768.
The problem occurs on a cygwin installation with binmode mounts and not on one with textmode mounts.
Regards, David
Cygwin Configuration Diagnostics Current System Time: Wed Mar 04 00:53:57 2009 Windows XP Professional Ver 5.1 Build 2600 Service Pack 3 Path: C:\cygwin\usr\local\bin C:\cygwin\bin C:\cygwin\bin C:\cygwin\usr\local\IMOD\bin C:\cygwin\bin c:\WINDOWS\system32 c:\WINDOWS c:\WINDOWS\System32\Wbem c:\Program Files\Python25 c:\Program Files\CA\SharedComponents\ScanEngine c:\Program Files\CA\SharedComponents\CAUpdate\ c:\Program Files\CA\SharedComponents\ThirdParty\ c:\Program Files\CA\SharedComponents\SubscriptionLicense\ c:\Program Files\CA\eTrustITM Output from C:\cygwin\bin\id.exe (nontsec) UID: 1003(mast) GID: 513(None) 0(root) 513(None) 544(Administrators) 545(Users) Output from C:\cygwin\bin\id.exe (ntsec) UID: 1003(mast) GID: 513(None) 0(root) 513(None) 544(Administrators) 545(Users) SysDir: C:\WINDOWS\system32 WinDir: C:\WINDOWS HOME = '/home/mast' PWD = '/home/mast' USER = 'mast' MAKE_MODE = 'unix' ALLUSERSPROFILE = 'C:\Documents and Settings\All Users' APPDATA = 'C:\Documents and Settings\mast\Application Data' CASHCOMP = 'C:\Program Files\CA\SharedComponents\' CLIENTNAME = 'Console' COMMONPROGRAMFILES = 'C:\Program Files\Common Files' COMPUTERNAME = 'SALSA' COMSPEC = 'C:\WINDOWS\system32\cmd.exe' FP_NO_HOST_CHECK = 'NO' HOMEDRIVE = 'C:' HOMEPATH = '\Documents and Settings\mast' HOME_S = 'C:\Documents and Settings\mast\My Documents' IGW_LOC = 'C:\Program Files\CA\SharedComponents\iTechnology\' IMOD_DIR = 'C:\cygwin\usr\local\IMOD' IMOD_DIR_S = 'C:\Program Files\IMOD\cygwin\usr\local\IMOD' INOCULAN = 'C:\Program Files\CA\eTrustITM' ITMLICENSE = 'C:\Program Files\CA\SharedComponents\SubscriptionLicense\' ITMTHIRDPARTY = 'C:\Program Files\CA\SharedComponents\ThirdParty\' LOGONSERVER = '\\SALSA' NUMBER_OF_PROCESSORS = '2' OS = 'Windows_NT' PATHEXT = '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH' PATH_ORIG = 'C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Python25;C:\Program Files\CA\SharedComponents\ScanEngine;C:\Program Files\CA\SharedComponents\CAUpdate\;C:\Program Files\CA\SharedComponents\ThirdParty\;C:\Program Files\CA\SharedComponents\SubscriptionLicense\;C:\Program Files\CA\eTrustITM' PATH_S = 'C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\IMOD\IMOD\bin;C:\Program Files\IMOD\cygwin\bin;C:\Program Files\Python25' PROCESSOR_ARCHITECTURE = 'x86' PROCESSOR_IDENTIFIER = 'x86 Family 6 Model 14 Stepping 8, GenuineIntel' PROCESSOR_LEVEL = '6' PROCESSOR_REVISION = '0e08' PROGRAMFILES = 'C:\Program Files' SESSIONNAME = 'Console' SYSTEMDRIVE = 'C:' SYSTEMROOT = 'C:\WINDOWS' USERDOMAIN = 'SALSA' USERNAME = 'mast' USERPROFILE = 'C:\Documents and Settings\mast' WINDIR = 'C:\WINDOWS' TERM = 'xterm' COLORFGBG = '0;default;15' DISPLAY = ':0' WINDOWID = '6897040' COLORTERM = 'rxvt-xpm' HOSTTYPE = 'i386-cygwin' VENDOR = 'intel' OSTYPE = 'cygwin' MACHTYPE = 'i386' SHLVL = '1' LOGNAME = 'mast' GROUP = 'None' HOST = 'salsa' IMOD_PLUGIN_DIR = 'C:\cygwin\usr\local\IMOD\lib\imodplug' IMOD_CALIB_DIR = 'C:\cygwin\usr\local\ImodCalib' MANPATH = ':/usr/ssl/man' SHELL = '/bin/tcsh' HKEY_CURRENT_USER\Software\Cygnus Solutions HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2 HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\Program Options HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2 (default) = '/cygdrive' cygdrive flags = 0x00000022 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/ (default) = 'C:\cygwin' flags = 0x0000000a HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/bin (default) = 'C:\cygwin/bin' flags = 0x0000000a HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/lib (default) = 'C:\cygwin/lib' flags = 0x0000000a HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\Program Options c: hd NTFS 29153Mb 67% CP CS UN PA FC d: cd N/A N/A C:\cygwin / system binmode C:\cygwin/bin /usr/bin system binmode C:\cygwin/lib /usr/lib system binmode . /cygdrive system binmode,cygdrive Found: C:\cygwin\bin\awk.exe Found: C:\cygwin\bin\bash.exe Found: C:\cygwin\bin\cat.exe Found: C:\cygwin\bin\cp.exe Not Found: cpp (good!) Not Found: crontab Found: C:\cygwin\bin\find.exe Not Found: gcc Not Found: gdb Found: C:\cygwin\bin\grep.exe Found: C:\cygwin\bin\kill.exe Not Found: ld Found: C:\cygwin\bin\ls.exe Not Found: make Found: C:\cygwin\bin\mv.exe Not Found: patch Not Found: perl Found: C:\cygwin\bin\rm.exe Found: C:\cygwin\bin\sed.exe Found: C:\cygwin\bin\ssh.exe Found: C:\cygwin\bin\sh.exe Found: C:\cygwin\bin\tar.exe Found: C:\cygwin\bin\test.exe Not Found: vi Not Found: vim 61k 2008/04/01 C:\cygwin\bin\cygbz2-1.dll - os=4.0 img=1.0 sys=4.0 "cygbz2-1.dll" v0.0 ts=2008/3/31 21:37 7k 2003/10/19 C:\cygwin\bin\cygcrypt-0.dll - os=4.0 img=1.0 sys=4.0 "cygcrypt-0.dll" v0.0 ts=2003/10/19 1:57 1057k 2008/06/09 C:\cygwin\bin\cygcrypto-0.9.8.dll - os=4.0 img=1.0 sys=4.0 "cygcrypto-0.9.8.dll" v0.0 ts=2008/6/9 10:33 703k 2007/12/17 C:\cygwin\bin\cygdb-4.2.dll - os=4.0 img=1.0 sys=4.0 "cygdb-4.2.dll" v0.0 ts=2007/12/17 4:58 1036k 2007/12/17 C:\cygwin\bin\cygdb_cxx-4.2.dll - os=4.0 img=1.0 sys=4.0 "cygdb_cxx-4.2.dll" v0.0 ts=2007/12/17 4:58 118k 2008/05/09 C:\cygwin\bin\cygexpat-1.dll - os=4.0 img=1.0 sys=4.0 "cygexpat-1.dll" v0.0 ts=2008/5/8 22:03 40k 2006/11/15 C:\cygwin\bin\cygform-8.dll - os=4.0 img=1.0 sys=4.0 "cygform-8.dll" v0.0 ts=2006/11/15 0:06 48k 2003/08/09 C:\cygwin\bin\cygform7.dll - os=4.0 img=1.0 sys=4.0 "cygform7.dll" v0.0 ts=2003/8/9 3:25 19k 2006/11/19 C:\cygwin\bin\cyggdbm-4.dll - os=4.0 img=1.0 sys=4.0 "cyggdbm-4.dll" v0.0 ts=2006/11/19 1:18 8k 2006/11/19 C:\cygwin\bin\cyggdbm_compat-4.dll - os=4.0 img=1.0 sys=4.0 "cyggdbm_compat-4.dll" v0.0 ts=2006/11/19 1:18 25k 2008/01/04 C:\cygwin\bin\cyghistory6.dll - os=4.0 img=1.0 sys=4.0 "cyghistory6.dll" v0.0 ts=2008/1/3 20:31 271k 2007/08/24 C:\cygwin\bin\cygicons-0.dll - os=4.0 img=1.0 sys=4.0 "cygicons-0.dll" v0.0 ts=2007/8/24 1:24 976k 2006/10/22 C:\cygwin\bin\cygiconv-2.dll - os=4.0 img=1.0 sys=4.0 "cygiconv-2.dll" v0.0 ts=2006/10/22 17:44 37k 2003/08/10 C:\cygwin\bin\cygintl-2.dll - os=4.0 img=1.0 sys=4.0 "cygintl-2.dll" v0.0 ts=2003/8/10 15:50 31k 2005/11/20 C:\cygwin\bin\cygintl-3.dll - os=4.0 img=1.0 sys=4.0 "cygintl-3.dll" v0.0 ts=2005/11/19 19:04 31k 2006/10/23 C:\cygwin\bin\cygintl-8.dll - os=4.0 img=1.0 sys=4.0 "cygintl-8.dll" v0.0 ts=2006/10/22 18:12 21k 2006/11/15 C:\cygwin\bin\cygmenu-8.dll - os=4.0 img=1.0 sys=4.0 "cygmenu-8.dll" v0.0 ts=2006/11/15 0:05 29k 2003/08/09 C:\cygwin\bin\cygmenu7.dll - os=4.0 img=1.0 sys=4.0 "cygmenu7.dll" v0.0 ts=2003/8/9 3:25 20k 2006/12/21 C:\cygwin\bin\cygminires.dll - os=4.0 img=1.1 sys=4.0 "cygminires.dll" v0.0 ts=2006/12/20 22:07 67k 2006/11/15 C:\cygwin\bin\cygncurses++-8.dll - os=4.0 img=1.0 sys=4.0 "cygncurses++-8.dll" v0.0 ts=2006/11/15 0:13 237k 2006/11/15 C:\cygwin\bin\cygncurses-8.dll - os=4.0 img=1.0 sys=4.0 "cygncurses-8.dll" v0.0 ts=2006/11/15 0:02 224k 2003/08/09 C:\cygwin\bin\cygncurses7.dll - os=4.0 img=1.0 sys=4.0 "cygncurses7.dll" v0.0 ts=2003/8/9 3:24 12k 2006/11/15 C:\cygwin\bin\cygpanel-8.dll - os=4.0 img=1.0 sys=4.0 "cygpanel-8.dll" v0.0 ts=2006/11/15 0:04 19k 2003/08/09 C:\cygwin\bin\cygpanel7.dll - os=4.0 img=1.0 sys=4.0 "cygpanel7.dll" v0.0 ts=2003/8/9 3:24 150k 2008/04/25 C:\cygwin\bin\cygpcre-0.dll - os=4.0 img=1.0 sys=4.0 "cygpcre-0.dll" v0.0 ts=2008/4/24 18:30 303k 2008/04/25 C:\cygwin\bin\cygpcrecpp-0.dll - os=4.0 img=1.0 sys=4.0 "cygpcrecpp-0.dll" v0.0 ts=2008/4/24 18:30 7k 2008/04/25 C:\cygwin\bin\cygpcreposix-0.dll - os=4.0 img=1.0 sys=4.0 "cygpcreposix-0.dll" v0.0 ts=2008/4/24 18:30 22k 2002/06/09 C:\cygwin\bin\cygpopt-0.dll - os=4.0 img=1.0 sys=4.0 "cygpopt-0.dll" v0.0 ts=2002/6/8 23:45 155k 2008/01/04 C:\cygwin\bin\cygreadline6.dll - os=4.0 img=1.0 sys=4.0 "cygreadline6.dll" v0.0 ts=2008/1/3 20:31 219k 2008/06/09 C:\cygwin\bin\cygssl-0.9.8.dll - os=4.0 img=1.0 sys=4.0 "cygssl-0.9.8.dll" v0.0 ts=2008/6/9 10:33 22k 2008/02/24 C:\cygwin\bin\cygwrap-0.dll - os=4.0 img=1.0 sys=4.0 "cygwrap-0.dll" v0.0 ts=2008/2/23 0:03 65k 2006/10/16 C:\cygwin\bin\cygz.dll - os=4.0 img=1.0 sys=4.0 "cygz.dll" v0.0 ts=2006/10/15 19:10 1828k 2008/05/27 C:\cygwin\bin\cygwin1.dll - os=4.0 img=1.0 sys=4.0 "cygwin1.dll" v0.0 ts=2008/5/26 18:38 Cygwin DLL version info: DLL version: 1.5.25 DLL epoch: 19 DLL bad signal mask: 19005 DLL old termios: 5 DLL malloc env: 28 API major: 0 API minor: 156 Shared data: 4 DLL identifier: cygwin1 Mount registry: 2 Cygnus registry name: Cygnus Solutions Cygwin registry name: Cygwin Program options name: Program Options Cygwin mount registry name: mounts v2 Cygdrive flags: cygdrive flags Cygdrive prefix: cygdrive prefix Cygdrive default prefix: Build date: Mon May 26 20:37:58 EDT 2008 CVS tag: cr-0x5f1 Shared id: cygwin1S4 No Cygwin services found. Cygwin Package Information Last downloaded files to: C:\DOCUME~1\sueh\LOCALS~1\Temp\is-CCPD9.tmp Last downloaded files from: C:\DOCUME~1\sueh\LOCALS~1\Temp\is-CCPD9.tmp Package Version _update-info-dir 00738-1 alternatives 1.3.30c-2 ash 20040127-3 base-files 3.7-1 base-passwd 2.2-1 bash 3.2.39-19 bzip2 1.0.5-2 coreutils 6.10-1 crypt 1.1-1 cygrunsrv 1.34-1 cygutils 1.3.2-1 cygwin 1.5.25-14 cygwin-doc 1.4-4 editrights 1.01-2 expat 2.0.1-1 findutils 4.4.0-1 gawk 3.1.6-1 gcc-testsuite 3.4.4-3 grep 2.5.1a-4 groff 1.18.1-2 gzip 1.3.12-2 less 382-1 libbz2_1 1.0.5-2 libdb4.2 4.2.52.5-2 libexpat1 2.0.1-1 libexpat1-devel 2.0.1-1 libgdbm4 1.8.3-8 libiconv2 1.11-1 libintl2 0.12.1-3 libintl3 0.14.5-1 libintl8 0.15-1 libncurses7 5.3-4 libncurses8 5.5-3 libpcre0 7.6-2 libpopt0 1.6.4-4 libreadline6 5.2.12-10 libwrap0 7.6-4 login 1.9-7 man 1.6e-1 minires 1.01-1 nano 2.0.6-1 openssh 5.0p1-1 openssl 0.9.8h-1 python 2.5.1-2 rebase 2.4.4-1 run 1.1.10-1 rxvt 20050409-7 sed 4.1.5-2 tar 1.20-1 tcltk 20080420-1 tcsh 6.15.00-4 termcap 20050421-1 terminfo 5.5_20061104-1 texinfo 4.8a-1 time 1.7-1 tzcode 2008a-1 which 2.19-1 zlib 1.2.3-2 Use -h to see help about each section
scripts.tar.gz
Description: GNU Zip compressed data
-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/