editor: use canonicalized absolute path
authorRamkumar Ramachandra <artagnon@gmail.com>
Sun, 28 Jul 2013 16:59:42 +0000 (22:29 +0530)
committerJunio C Hamano <gitster@pobox.com>
Mon, 29 Jul 2013 19:15:27 +0000 (12:15 -0700)
commit09c5ae5a503b0293205c7e6d63a739bd8d0529dc
treef5d3880555a649f4af300a07d75c1ad00683a9ca
parent117eea7eaaeb5ecb77d9b7cebdb40b4e85f37374
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 <pclouds@gmail.com>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
editor.c