diff --git a/winsup/doc/ChangeLog b/winsup/doc/ChangeLog index fdd3ce22d..22daea03a 100644 --- a/winsup/doc/ChangeLog +++ b/winsup/doc/ChangeLog @@ -1,3 +1,8 @@ +2005-03-05 Christopher Faylor + + * pathnames.sgml: Clarify binmode/textmode behavior slightly. + * textbinary.sgml: Ditto. + 2005-03-03 Joshua Daniel Franklin * how-api.texinfo: Add Pierre's security text. diff --git a/winsup/doc/pathnames.sgml b/winsup/doc/pathnames.sgml index fe9133901..4447a0cf1 100644 --- a/winsup/doc/pathnames.sgml +++ b/winsup/doc/pathnames.sgml @@ -17,7 +17,7 @@ make it be the /disk2 directory). the existance of a single unified POSIX file system structure, Cygwin maintains a special internal POSIX view of the Win32 file system that allows these programs to successfully run under Windows. Cygwin -uses this mapping to translate between Win32 and POSIX paths as +uses this mapping to translate from POSIX to Win32 paths as necessary. @@ -38,7 +38,7 @@ information will be retrieved next time the user logs in. Because it is sometimes desirable to have system-wide as well as user-specific mounts, there is also a system-wide mount table that all Cygwin users inherit. The system-wide table may only be modified by a user with -the appropriate priviledges (Administrator priviledges in Windows +the appropriate privileges (Administrator privileges in Windows NT). The current user's table is located under @@ -56,11 +56,15 @@ Without a / mount, Cygwin processes cannot distinguish between the Windows CurrentDrive and SystemDrive. -Whenever Cygwin generates a POSIX path from a Win32 one, it uses +Whenever Cygwin generates a Win32 path from a POSIX one, it uses the longest matching prefix in the mount table. Thus, if C: is mounted as /c and also as /, then Cygwin would translate -C:/foo/bar to /c/foo/bar. +C:/foo/bar to /c/foo/bar. +This translation is normally only used when trying to derive the +POSIX equivalent current directory. Otherwise, the handling of MS-DOS +filenames bypasses the mount table. + Invoking mount without any arguments displays Cygwin's current set of mount points. diff --git a/winsup/doc/textbinary.sgml b/winsup/doc/textbinary.sgml index 24b2a4c96..15994185a 100644 --- a/winsup/doc/textbinary.sgml +++ b/winsup/doc/textbinary.sgml @@ -35,15 +35,15 @@ are to be opened when the mode is not specified explicitly. The rules are evolving, this section gives the design goals. -If the file appears to reside on a file system that is mounted -(i.e. if its pathname starts with a directory displayed by -mount), then the default is specified by the mount -flag. If the file is a symbolic link, the mode of the target file system -applies. +If the filename is specified as a POSIX path and it appears to +reside on a file system that is mounted (i.e. if its pathname starts +with a directory displayed by mount), then the +default is specified by the mount flag. If the file is a symbolic link, +the mode of the target file system applies. -If the file appears to reside on a file system that is not mounted -(as can happen when the path contains a drive letter), the default is binary. +If the file is specified via a MS-DOS pathname (i.e., it contains a +backslash or a colon), the default is binary. @@ -55,9 +55,11 @@ in binary mode if any of the following conditions hold: binary mode is specified in the open call -CYGWIN contains binmode +the filename is a MS-DOS filename -the file resides in a binary mounted partition +the file resides on a binary mounted partition + +CYGWIN contains binmode the file is not a disk file @@ -66,11 +68,7 @@ in binary mode if any of the following conditions hold: -When a Cygwin program is launched by a shell, its standard input, -output and error are in binary mode if the CYGWIN variable -contains tty, else in text mode, except if they are piped -or redirected. - When redirecting, the Cygwin shells uses rules (a-c). For + When redirecting, the Cygwin shells uses rules (a-e). For these shells the relevant value of CYGWIN is that at the time the shell was launched and not that at the time the program is executed. Non-Cygwin shells always pipe and redirect with binary mode. With