diff nt/runemacs.c @ 371:cc15677e0335 r21-2b1

Import from CVS: tag r21-2b1
author cvs
date Mon, 13 Aug 2007 11:03:08 +0200
parents a4f53d9b3154
children a300bb07d72d
line wrap: on
line diff
--- a/nt/runemacs.c	Mon Aug 13 11:01:58 2007 +0200
+++ b/nt/runemacs.c	Mon Aug 13 11:03:08 2007 +0200
@@ -41,7 +41,6 @@
   int wait_for_child = FALSE;
   DWORD ret_code = 0;
   char *new_cmdline;
-  char *basename;
   char *p;
   char modname[MAX_PATH];
 
@@ -49,10 +48,6 @@
     goto error;
   if ((p = strrchr (modname, '\\')) == NULL)
     goto error;
-
-  basename = alloca(strlen(p) + 1);
-  strcpy (basename, p + 1);
-  
   *p = 0;
 
   new_cmdline = alloca (MAX_PATH + strlen (cmdline) + 1);
@@ -95,51 +90,36 @@
     char sym_link_name[MAX_PATH+1], real_name[MAX_PATH+1];
     
     strcpy(sym_link_name, new_cmdline);
-    if (strcmp(basename, "rungnuclient.exe") == 0)
-      strcat(new_cmdline, "\\gnuclient.exe ");
-    else if (strcmp(basename, "runemacs.exe") == 0)
+    strcat(sym_link_name, "\\xemacs");
+    if (lstat(sym_link_name, &stbuf) == 0)
       {
-        strcat(sym_link_name, "\\xemacs");
-          
-        if (lstat(sym_link_name, &stbuf) == 0)
+        if ((stbuf.st_mode & S_IFLNK) == S_IFLNK)
           {
-            if ((stbuf.st_mode & S_IFLNK) == S_IFLNK)
+	    if (readlink(sym_link_name, real_name, sizeof(real_name)) == -1)
               {
-                if (readlink(sym_link_name, real_name, sizeof(real_name)) == -1)
-                  {
-                    MessageBox (NULL, "Error reading symbolic link for xemacs",
-                                "Error", MB_ICONSTOP);
-                    return 1;
-                  }
-                else
-                  {
-                    strcat(new_cmdline, "\\");
-		    /* #### Horrible kludge to get round 1.1.6 bug in readlink. */
-                    p = strrchr (real_name, '.');
-                    if (p[1] == 'e' || p[1] == 'E'
-			&& p[2] == 'x' || p[2] == 'X'
-			&& p[3] == 'e' || p[3] == 'E')
-		      p[4] = 0;
-                    strcat(new_cmdline, real_name);
-                    strcat(new_cmdline, " ");
-                  }
+                MessageBox (NULL, "Error reading symbolic link for xemacs",
+                            "Error", MB_ICONSTOP);
+                return 1;
               }
             else
-              strcat(new_cmdline, "\\xemacs ");
+              {
+		strcat(new_cmdline, "\\");
+                strcat(new_cmdline, real_name);
+		strcat(new_cmdline, " ");
+	      }
           }
         else
-          {
-            MessageBox (NULL, "can't locate XEmacs executable",
-                        "Error", MB_ICONSTOP);
-            return 1;
-          }
+          strcat(new_cmdline, "\\xemacs ");
+      }
+    else
+      {
+        MessageBox (NULL, "can't locate XEmacs executable",
+                    "Error", MB_ICONSTOP);
+	return 1;
       }
   }
 #else					
-  if (strcmp(basename, "rungnuclient.exe") == 0)
-    strcat (new_cmdline, "\\gnuclient.exe ");
-  else 
-    strcat (new_cmdline, "\\xemacs.exe ");
+  strcat (new_cmdline, "\\xemacs.exe ");
 #endif
 #endif
 
@@ -186,6 +166,6 @@
   return (int) ret_code;
 
 error:
-  MessageBox (NULL, "Could not start XEmacs or gnuclient.", "Error", MB_ICONSTOP);
+  MessageBox (NULL, "Could not start XEmacs.", "Error", MB_ICONSTOP);
   return 1;
 }