| <?xml version="1.0" encoding='UTF-8'?> |
| <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.5//EN" |
| "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> |
| |
| <sect1 id="using-cygwinenv"><title>The <envar>CYGWIN</envar> environment |
| variable</title> |
| |
| <sect2 id="cygwinenv-implemented-options"> |
| <title>Implemented options</title> |
| |
| <para>The <envar>CYGWIN</envar> environment variable is used to configure |
| many global settings for the Cygwin runtime system. It contains the options |
| listed below, separated by blank characters. Many options can be turned off |
| by prefixing with <literal>no</literal>.</para> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem> |
| <para><envar>(no)dosfilewarning</envar> - If set, Cygwin will warn the |
| first time a user uses an "MS-DOS" style path name rather than a POSIX-style |
| path name. Defaults to off.</para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>(no)export</envar> - If set, the final values of these |
| settings are re-exported to the environment as <envar>CYGWIN</envar> again. |
| Defaults to off.</para> |
| </listitem> |
| |
| <listitem> |
| <para> |
| <envar>error_start:Win32filepath</envar> - if set, runs |
| <filename>Win32filepath</filename> when cygwin encounters a fatal error, |
| which is useful for debugging. <filename>Win32filepath</filename> is |
| usually set to the path to <command>gdb</command> or |
| <command>dumper</command>, for example |
| <filename>C:\cygwin\bin\gdb.exe</filename>. |
| There is no default set. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>(no)glob[:ignorecase]</envar> - if set, command line arguments |
| containing UNIX-style file wildcard characters (brackets, braces, question mark, |
| asterisk, escaped with \) are expanded into lists of files that match |
| those wildcards. |
| This is applicable only to programs run from non-Cygwin programs such as a CMD prompt. |
| That means that this setting does not affect globbing operations for shells such as |
| bash, sh, tcsh, zsh, etc. |
| Default is set.</para> |
| <para>This option also accepts an optional <literal>[no]ignorecase</literal> modifer. |
| If supplied, wildcard matching is case insensitive. The default is <literal>noignorecase</literal></para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>(no)pipe_byte</envar> - causes Cygwin to open pipes in byte mode rather than |
| message mode.</para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>proc_retry:n</envar> - causes <function>fork()</function> and |
| <function>exec*()</function> to retry n times when a child process fails |
| due to certain windows-specific errors. These errors usually occur when |
| processes are being started while a user is logging off. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>(no)reset_com</envar> - if set, serial ports are reset |
| to 9600-8-N-1 with no flow control when used. This is done at open |
| time and when handles are inherited. Defaults to set.</para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>(no)wincmdln</envar> - if set, the windows complete command |
| line (truncated to ~32K) will be passed on any processes that it creates |
| in addition to the normal UNIX argv list. Defaults to not set.</para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>winsymlinks:{lnk,native,nativestrict}</envar> - if set to just |
| <literal>winsymlinks</literal> or <literal>winsymlinks:lnk</literal>, |
| Cygwin creates symlinks as Windows shortcuts with a special header and |
| the R/O attribute set.</para> |
| |
| <para>If set to <literal>winsymlinks:native</literal> or |
| <literal>winsymlinks:nativestrict</literal>, Cygwin creates symlinks as |
| native Windows symlinks on filesystems and OS versions supporting them.</para> |
| |
| <para>The difference between <literal>winsymlinks:native</literal> and |
| <literal>winsymlinks:nativestrict</literal> is this: If the filesystem |
| supports native symlinks and Cygwin fails to create a native symlink for |
| some reason, it will fall back to creating Cygwin default symlinks |
| with <literal>winsymlinks:native</literal>, while with |
| <literal>winsymlinks:nativestrict</literal> the <literal>symlink(2)</literal> |
| system call will immediately fail.</para> |
| |
| <para>For more information on symbolic links, see |
| <xref linkend="pathnames-symlinks"></xref>.</para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="cygwinenv-removed-options"> |
| <title>Obsolete options</title> |
| |
| <para> |
| Certain CYGWIN options available in past releases have been removed over |
| time for one reason or another. These obsolete options are listed |
| below.</para> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem> |
| <para><envar>(no)binmode</envar> - This option has been removed because |
| all file opens default to binary mode, unless the open mode has been specified |
| explicitly in the open(2) call. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>(no)detect_bloda</envar> - No case of a BLODA found by this |
| option has been reported in years.</para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>check_case</envar> - This option has been removed in favor of |
| real case sensitivity and the per-mount option "posix=[0|1]". For more |
| information, read the documentation in <xref linkend="mount-table"></xref> and |
| <xref linkend="pathnames-casesensitive"></xref>.</para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>codepage:[ansi|oem]</envar> - This option controlled |
| which character set is used for file and console operations. Since Cygwin |
| is now doing all character conversion by itself, depending on the |
| application call to the <function>setlocale()</function> function, and in |
| turn by the setting of the environment variables <envar>$LANG</envar>, |
| <envar>$LC_ALL</envar>, or <envar>$LC_CTYPE</envar>, this setting |
| became superfluous.</para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>(no)envcache</envar> - Originally, <envar>envcache</envar> |
| controlled caching of environment variable conversion between Win32 and |
| POSIX. The default setting works fine, the option was just useless.</para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>forkchunk:[intval]</envar> - This option allowed to influence |
| the <function>fork()</function> function in the way the memory of the |
| parent process gets copied to the child process. This functionality was |
| only useful for Windows 95/98/Me. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>(no)ntea</envar> - This option has been removed since it |
| only fakes security which is considered dangerous and useless. It also |
| created an uncontrollably large file on FAT and was entirely useless |
| on FAT32.</para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>(no)ntsec</envar> - This option has been removed in favor of |
| the per-mount option "acl"/"noacl". For more information, read the |
| documentation in <xref linkend="mount-table"></xref>.</para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>(no)server</envar> - Originally this option had to be |
| enabled on the client side to use features only available when running |
| <command>cygserver</command>. This option has been removed because Cygwin now |
| always tries to contact cygserver if a function is called which requires |
| cygserver being available. For more information, read the documentation |
| in <xref linkend="using-cygserver"></xref>.</para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>(no)smbntsec</envar> - This option has been removed in favor of |
| the per-mount option "acl"/"noacl". For more information, read the |
| documentation in <xref linkend="mount-table"></xref>.</para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>(no)strip_title</envar> - Removed because setting the Window title |
| can be controlled by the application via Escape sequences.</para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>(no)title</envar> - Removed because setting the Window title |
| can be controlled by the application via Escape sequences.</para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>(no)transparent_exe</envar> - This option has been removed |
| because the behaviour it switched on is now the standard behaviour in |
| Cygwin.</para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>(no)traverse</envar> - This option has been removed because |
| traverse checking is not quite correctly implemented by Microsoft and |
| it's behaviour has been getting worse with each new OS version. This |
| complicates its usage so the option has been removed for now.</para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>(no)tty</envar> - If set, Cygwin enabled extra support |
| (i.e., termios) for UNIX-like ttys in the Windows console. This option |
| has been removed because it can be easily replaced by using a terminal |
| like <command>mintty</command>, and it does not work well with some |
| Windows programs.</para> |
| </listitem> |
| |
| <listitem> |
| <para><envar>(no)upcaseenv</envar> - This option could be used to convert |
| all environment variables to uppercase. This was the default behavior in |
| older releases of Cygwin. Since keeping the case of environment variables |
| intact is POSIXly correct, Cygwin now does not change the case |
| of environment variables, except for a restricted set to maintain minimal |
| backward compatibility. The current list of always uppercased variables is: |
| </para> |
| <screen> |
| COMMONPROGRAMFILES |
| COMSPEC |
| PATH |
| SYSTEMDRIVE |
| SYSTEMROOT |
| TEMP |
| TMP |
| WINDIR |
| </screen> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| </sect1> |