aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib-src/ChangeLog6
-rw-r--r--lib-src/emacsclient.c40
-rw-r--r--lisp/ChangeLog3
-rw-r--r--lisp/server.el2
4 files changed, 14 insertions, 37 deletions
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index 02f9918ebd..0609f1e1e1 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,9 @@
+2009-03-10 Stefan Monnier <[email protected]>
+
+ * 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 <[email protected]>
* movemail.c (main) [MAIL_USE_POP]: Add -r to usage message.
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c
index 559664f0d4..3197b2a727 100644
--- a/lib-src/emacsclient.c
+++ b/lib-src/emacsclient.c
@@ -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, " ");
}
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index ee521252b9..2170615668 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,8 @@
2009-03-10 Stefan Monnier <[email protected]>
+ * 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 <[email protected]>
diff --git a/lisp/server.el b/lisp/server.el
index 5e4e6e1548..10b08ad4a3 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -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))