diff options
author | Karoly Lorentey <karoly@lorentey.hu> | 2007-02-24 19:26:54 +0000 |
---|---|---|
committer | Karoly Lorentey <karoly@lorentey.hu> | 2007-02-24 19:26:54 +0000 |
commit | f65f7603312547e51230192daf34349b8ac569a0 (patch) | |
tree | cbc5877854d00bbdd5ecd4906d130ab8fbb44430 /lib-src/emacsclient.c | |
parent | 9440b75fccbf763e3fb23a31a128d97eb4debdf5 (diff) | |
parent | 735895f1fa28f88c559e73910ea0ff0bda0f228c (diff) | |
download | emacs-f65f7603312547e51230192daf34349b8ac569a0.tar.gz |
Merged from emacs@sv.gnu.org
Patches applied:
* emacs@sv.gnu.org/emacs--devo--0--patch-619
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-620
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-621
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-622
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-623
Remove RCS keywords
* emacs@sv.gnu.org/emacs--devo--0--patch-624
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-625
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-626
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-627
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-628
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-629
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-630
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-631
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-632
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-633
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-634
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-635
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-636
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-637
Remove RCS keywords
* emacs@sv.gnu.org/emacs--devo--0--patch-638
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-639
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-640
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-641
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-642
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-643
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-644
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-645
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-646
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-647
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-648
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-649
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-197
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-198
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-199
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-200
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-201
Update from CVS: lisp/nnweb.el (nnweb-google-parse-1): Update parser.
* emacs@sv.gnu.org/gnus--rel--5.10--patch-202
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-596
Diffstat (limited to 'lib-src/emacsclient.c')
-rw-r--r-- | lib-src/emacsclient.c | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index ae836e70371..2231934b185 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c @@ -667,13 +667,45 @@ file_name_absolute_p (filename) if (filename[0] == '\0') return FALSE; #ifdef WINDOWSNT - /* X:\xxx is always absolute; X:xxx is an error and will fail. */ + /* X:\xxx is always absolute. */ if (isalpha (filename[0]) && filename[1] == ':' && (filename[2] == '\\' || filename[2] == '/')) return TRUE; /* Both \xxx and \\xxx\yyy are absolute. */ if (filename[0] == '\\') return TRUE; + + /* + FIXME: There's a corner case not dealt with, "x:y", where: + + 1) x is a valid drive designation (usually a letter in the A-Z range) + and y is a path, relative to the current directory on drive x. This + is absolute, *after* fixing the y part to include the current + directory in x. + + 2) x is a relative file name, and y is an NTFS stream name. This is a + correct relative path, but it is very unusual. + + The trouble is that first case items are also valid examples of the + second case, i.e., "c:test" can be understood as drive:path or as + file:stream. + + The "right" fix would involve checking whether + - the current drive/partition is NTFS, + - x is a valid (and accesible) drive designator, + - x:y already exists as a file:stream in the current directory, + - y already exists on the current directory of drive x, + - the auspices are favorable, + and then taking an "informed decision" based on the above. + + Whatever the result, Emacs currently does a very bad job of dealing + with NTFS file:streams: it cannot visit them, and the only way to + create one is by setting `buffer-file-name' to point to it (either + manually or with emacsclient). So perhaps resorting to 1) and ignoring + 2) for now is the right thing to do. + + Anyway, something to decide After the Release. + */ #endif return FALSE; @@ -1212,7 +1244,7 @@ w32_give_focus () { HMODULE hUser32; - /* It should'nt happen when dealing with TCP sockets. */ + /* It shouldn't happen when dealing with TCP sockets. */ if (!emacs_pid) return; if (!(hUser32 = LoadLibrary ("user32.dll"))) return; |