Skip to content

Commit 09c5ae5

Browse files
artagnonpclouds
authored andcommitted
editor: use canonicalized absolute path
By improving the relative_path() algorithm, e02ca72 (path.c: refactor relative_path(), not only strip prefix, 2013-06-25) uncovered a latent bug in Emacs. While most editor applications like cat and vim handle non-canonicalized relative paths fine, emacs does not. This is due to a long-standing bug in emacs, where it refuses to resolve symlinks in the supplied path: #!/bin/sh cd /tmp mkdir z z/a z/b echo moodle >z/a/file ln -s z/b cd b emacs ../a/file # fail: attempts to open /tmp/a/file Even if emacs were to be patched to fix this bug, it may be nicer to help users running older versions. Note that this can potentially regress for users of all editors, when they ask "what file am I editing?" to the editor, as it is likely to answer with an unsightly long full path. Co-authored-by: Nguyễn Thái Ngọc Duy <[email protected]> Signed-off-by: Ramkumar Ramachandra <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 117eea7 commit 09c5ae5

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

editor.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ int launch_editor(const char *path, struct strbuf *buffer, const char *const *en
3737
return error("Terminal is dumb, but EDITOR unset");
3838

3939
if (strcmp(editor, ":")) {
40-
const char *args[] = { editor, path, NULL };
40+
const char *args[] = { editor, real_path(path), NULL };
4141
struct child_process p;
4242
int ret, sig;
4343

0 commit comments

Comments
 (0)