From: Juanma Barranquero Date: Wed, 11 Mar 2009 00:57:03 +0000 (+0000) Subject: * emacsclient.c (main): Revert part of last change, X-Git-Tag: emacs-pretest-23.0.92~282 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=6cde1b21385d450f73b889deee4e11211b0036ec;p=emacs.git * emacsclient.c (main): Revert part of last change, so drive-relative file names again work on Windows. --- diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 0609f1e1e10..c9c37ed76ff 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,8 @@ +2009-03-10 Stefan Monnier + + * emacsclient.c (main): Revert part of last change, so + drive-relative file names again work on Windows. + 2009-03-10 Stefan Monnier * emacsclient.c (main): Always pass cwd via "-dir". Pass the file diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index 3197b2a7276..f66d6b4cd25 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c @@ -1635,6 +1635,26 @@ main (argc, argv) continue; } } +#ifdef WINDOWSNT + else if (! file_name_absolute_p (argv[i]) + && (isalpha (argv[i][0]) && argv[i][1] == ':')) + /* Windows can have a different default directory for each + drive, so the cwd passed via "-dir" is not sufficient + to account for that. + If the user uses :, we hence need to be + careful to expand with the default directory + corresponding to . */ + { + 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 + free (filename); + } +#endif send_to_emacs (emacs_socket, "-file "); quote_argument (emacs_socket, argv[i]);