* server.el (server-process-filter): Use expand-file-name rather than
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 10 Mar 2009 14:08:52 +0000 (14:08 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 10 Mar 2009 14:08:52 +0000 (14:08 +0000)
command-line-normalize-file-name so as to use the `dir' when provided.
* emacsclient.c (main): Always pass cwd via "-dir".  Pass the file
names without prepending cwd to them, so Emacs uses its customary
rules to determine how to interpret the file name.

lib-src/ChangeLog
lib-src/emacsclient.c
lisp/ChangeLog
lisp/server.el

index 02f9918..0609f1e 100644 (file)
@@ -1,3 +1,9 @@
+2009-03-10  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * emacsclient.c (main): Always pass cwd via "-dir".  Pass the file
+       names without prepending cwd to them, so Emacs uses its customary
+       rules to determine how to interpret the file name.
+
 2009-03-04  Glenn Morris  <rgm@gnu.org>
 
        * movemail.c (main) [MAIL_USE_POP]: Add -r to usage message.
index 559664f..3197b2a 100644 (file)
@@ -1566,11 +1566,11 @@ main (argc, argv)
           quote_argument (emacs_socket, environ[i]);
           send_to_emacs (emacs_socket, " ");
         }
-      send_to_emacs (emacs_socket, "-dir ");
-      quote_argument (emacs_socket, cwd);
-      send_to_emacs (emacs_socket, "/");
-      send_to_emacs (emacs_socket, " ");
     }
+  send_to_emacs (emacs_socket, "-dir ");
+  quote_argument (emacs_socket, cwd);
+  send_to_emacs (emacs_socket, "/");
+  send_to_emacs (emacs_socket, " ");
 
  retry:
   if (nowait)
@@ -1613,7 +1613,6 @@ main (argc, argv)
     {
       for (i = optind; i < argc; i++)
        {
-          int relative = 0;
 
          if (eval)
             {
@@ -1635,40 +1634,9 @@ main (argc, argv)
                   send_to_emacs (emacs_socket, " ");
                   continue;
                 }
-              else
-                relative = 1;
             }
-         else if (! file_name_absolute_p (argv[i]))
-#ifndef WINDOWSNT
-           relative = 1;
-#else
-           /* Call GetFullPathName so filenames of the form X:Y, where X is
-              a valid drive designator, are interpreted as drive:path, not
-              file:stream, and treated as absolute.
-              The user can still pass a file:stream if desired (for example,
-              .\X:Y), but it is not very useful, as Emacs currently does a
-              very bad job of dealing with NTFS streams. */
-           {
-             char *filename = (char *) xmalloc (MAX_PATH);
-             DWORD size;
-
-             size = GetFullPathName (argv[i], MAX_PATH, filename, NULL);
-             if (size > 0 && size < MAX_PATH)
-               argv[i] = filename;
-             else
-               {
-                 relative = 1;
-                 free (filename);
-               }
-           }
-#endif
 
           send_to_emacs (emacs_socket, "-file ");
-          if (relative)
-            {
-              quote_argument (emacs_socket, cwd);
-              send_to_emacs (emacs_socket, "/");
-            }
           quote_argument (emacs_socket, argv[i]);
           send_to_emacs (emacs_socket, " ");
         }
index ee52125..2170615 100644 (file)
@@ -1,5 +1,8 @@
 2009-03-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+       * server.el (server-process-filter): Use expand-file-name rather than
+       command-line-normalize-file-name so as to use the `dir' when provided.
+
        * doc-view.el (doc-view-convert-current-doc): Fix last change.
 
 2009-03-10  Glenn Morris  <rgm@gnu.org>
index 5e4e6e1..10b08ad 100644 (file)
@@ -962,7 +962,7 @@ The following commands are accepted by the client:
                  (let ((file (pop command-line-args-left)))
                    (if coding-system
                        (setq file (decode-coding-string file coding-system)))
-                   (setq file (command-line-normalize-file-name file))
+                    (setq file (expand-file-name file dir))
                    (push (cons file filepos) files)
                    (server-log (format "New file: %s %s"
                                         file (or filepos "")) proc))