(Fexpand_file_name): In the no-handler case, after
expanding, look again for a handler and invoke it. This is needed for filenames like "/foo/../user@host:/bar/../baz" -- the first expansion produces "/user@host:/bar/../baz" which needs to be expanded again for the finame result "/user@host:/baz".
This commit is contained in:
parent
753ad98890
commit
beb402deed
2 changed files with 22 additions and 3 deletions
|
@ -1,3 +1,11 @@
|
|||
2003-03-29 Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net>
|
||||
|
||||
* fileio.c (Fexpand_file_name): In the no-handler case, after
|
||||
expanding, look again for a handler and invoke it. This is needed
|
||||
for filenames like "/foo/../user@host:/bar/../baz" -- the first
|
||||
expansion produces "/user@host:/bar/../baz" which needs to be
|
||||
expanded again for the finame result "/user@host:/baz".
|
||||
|
||||
2003-03-28 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
|
||||
|
||||
* gtkutil.c (xg_tool_bar_item_expose_callback): Reduce size
|
||||
|
|
17
src/fileio.c
17
src/fileio.c
|
@ -1026,7 +1026,7 @@ See also the function `substitute-in-file-name'. */)
|
|||
int is_escaped = 0;
|
||||
#endif /* DOS_NT */
|
||||
int length;
|
||||
Lisp_Object handler;
|
||||
Lisp_Object handler, result;
|
||||
|
||||
CHECK_STRING (name);
|
||||
|
||||
|
@ -1678,8 +1678,19 @@ See also the function `substitute-in-file-name'. */)
|
|||
CORRECT_DIR_SEPS (target);
|
||||
#endif /* DOS_NT */
|
||||
|
||||
return make_specified_string (target, -1, o - target,
|
||||
STRING_MULTIBYTE (name));
|
||||
result = make_specified_string (target, -1, o - target,
|
||||
STRING_MULTIBYTE (name));
|
||||
|
||||
/* Again look to see if the file name has special constructs in it
|
||||
and perhaps call the corresponding file handler. This is needed
|
||||
for filenames such as "/foo/../user@host:/bar/../baz". Expanding
|
||||
the ".." component gives us "/user@host:/bar/../baz" which needs
|
||||
to be expanded again. */
|
||||
handler = Ffind_file_name_handler (result, Qexpand_file_name);
|
||||
if (!NILP (handler))
|
||||
return call3 (handler, Qexpand_file_name, result, default_directory);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
|
Loading…
Add table
Reference in a new issue