]> git.lyx.org Git - lyx.git/blobdiff - src/support/os_win32.C
hopefully fix tex2lyx linking.
[lyx.git] / src / support / os_win32.C
index 86924ba8e3a86a87d55a18868c91ed1f4fc0af70..c6624eadc4cd17c611a1acc45705d41f37ec8f46 100644 (file)
@@ -135,45 +135,31 @@ void init(int /* argc */, char * argv[])
         * shell scripts failed, for mysterious reasons...
         *
         * I've chosen for now, therefore, to simply add Ruurd's original
-        * code as-is.
+        * code as-is. A wrapper program hidecmd.c has been added to 
+        * development/Win32 which hides the console window of lyx when
+        * lyx is invoked as a parameter of hidecmd.exe.
         */
-       // Close the console when run (probably)
-       // not run from command prompt
-       char WindowTitle[1024];
-       if (GetConsoleTitle(WindowTitle, sizeof(WindowTitle)) == 0) {
-               // Could not get the title, so we just leave things as they are
-               return;
-       }
-
-       if ((strcmp(WindowTitle, argv[0]) == 0) ||
-               (strcmp(WindowTitle, "LyX") == 0)) {
-               // format a "unique" newWindowTitle
-               wsprintf(WindowTitle, "%d/%d",
-                       GetTickCount(),
-                       GetCurrentProcessId());
-               // change current window title
-               SetConsoleTitle(WindowTitle);
-               // ensure window title has been updated
-               Sleep(40);
-               // look for newWindowTitle
-               HWND const hwndFound = FindWindow(NULL, WindowTitle);
-               // If found, hide it
-               if (hwndFound != NULL)
-                       ShowWindow( hwndFound, SW_HIDE);
-       }
 
        // If cygwin is detected, query the cygdrive prefix
-       cmd_ret const c = runCommand("sh -c uname");
-       if (c.first != -1 && prefixIs(c.second, "CYGWIN")) {
-               cmd_ret const p = runCommand("mount --show-cygdrive-prefix");
-               // The output of the mount command is as follows:
-               // Prefix              Type         Flags
-               // /cygdrive           system       binmode
-               // So, we use the inner split to pass the second line to the
-               // outer split which sets cygdrive with its contents until
-               // the first blank, discarding the unneeded return value.
-               if (p.first != -1 && prefixIs(p.second, "Prefix"))
-                       (void) split(split(p.second, '\n'), cygdrive, ' ');
+       HKEY regKey;
+       char buf[MAX_PATH];
+       DWORD bufSize = sizeof(buf);
+       LONG retVal;
+
+       retVal = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
+                       "Software\\Cygnus Solutions\\Cygwin\\mounts v2",
+                       0, KEY_QUERY_VALUE, &regKey);
+       if (retVal != ERROR_SUCCESS) {
+               retVal = RegOpenKeyEx(HKEY_CURRENT_USER,
+                               "Software\\Cygnus Solutions\\Cygwin\\mounts v2",
+                               0, KEY_QUERY_VALUE, &regKey);
+       }
+       if (retVal == ERROR_SUCCESS) {
+               retVal = RegQueryValueEx(regKey, "cygdrive prefix", NULL, NULL,
+                               (LPBYTE) buf, &bufSize);
+               RegCloseKey(regKey);
+               if ((retVal == ERROR_SUCCESS) && (bufSize <= MAX_PATH))
+                       cygdrive = buf;
        }
 }