diff options
Diffstat (limited to 'winsup/cygwin/shared.cc')
-rw-r--r-- | winsup/cygwin/shared.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/winsup/cygwin/shared.cc b/winsup/cygwin/shared.cc index 047d97895..8f2537915 100644 --- a/winsup/cygwin/shared.cc +++ b/winsup/cygwin/shared.cc @@ -240,6 +240,25 @@ user_shared_initialize (bool reinit) } } +/* Initialize obcaseinsensitive. Default to case insensitive on pre-XP. */ +void +shared_info::init_obcaseinsensitive () +{ + HKEY key; + DWORD size = sizeof (DWORD); + + obcaseinsensitive = 1; + if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, + "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\kernel", + 0, KEY_READ, &key) == ERROR_SUCCESS) + { + RegQueryValueEx (key, "obcaseinsensitive", NULL, NULL, + (LPBYTE) &obcaseinsensitive, &size); + RegCloseKey (key); + } + debug_printf ("obcaseinsensitive set to %d", obcaseinsensitive); +} + void shared_info::initialize () { @@ -260,8 +279,10 @@ shared_info::initialize () if (!sversion) { + tty.init (); /* Initialize tty table. */ mt.initialize (); /* Initialize shared tape information. */ + init_obcaseinsensitive ();/* Initialize obcaseinsensitive. */ cb = sizeof (*this); /* Do last, after all shared memory initialization */ } |