Mercurial > emacs
diff lib-src/emacsclient.c @ 102471:02f766280fad
* server.el (server-process-filter): Use expand-file-name rather than
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.
| author | Stefan Monnier <monnier@iro.umontreal.ca> |
|---|---|
| date | Tue, 10 Mar 2009 14:08:52 +0000 |
| parents | b4aa70dece55 |
| children | 10dc40769985 |
line wrap: on
line diff
--- a/lib-src/emacsclient.c Tue Mar 10 13:33:23 2009 +0000 +++ b/lib-src/emacsclient.c Tue Mar 10 14:08:52 2009 +0000 @@ -1566,11 +1566,11 @@ 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 @@ { for (i = optind; i < argc; i++) { - int relative = 0; if (eval) { @@ -1635,40 +1634,9 @@ 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, " "); }
