Subject: 24.4; ffap does not detect file paths with curly braced shell variables
From: Kaushal <[email-masked]>
To: [email-masked]
Date: Wed, 11 Feb 2015 14:23:14 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

The ffap gives an error if I try to do =C-x C-f= while the path is on a
path containing curly braces wrapped shell variable.

e.g. ${PRJ_HOME}/dir1/file1.el

I traced the problem to the ffap-string-at-point-mode-alist variable in
lisp/ffap.el.

The fix is to replace

    (file "--:\\\\$+<>@-Z_[:alpha:]~*?" "<@" "@>;.,!:") ; broken

with

    (file "--:\\\\$\\{\\}+<>@-Z_[:alpha:]~*?" "<@" "@>;.,!:") ; fixed

I added "\\{\\}" to the regexp for 'file'.

---

*Original* lisp/ffap.el in emacs 24.4

(defvar ffap-string-at-point-mode-alist
  '(
    ;; The default, used when the `major-mode' is not found.
    ;; Slightly controversial decisions:
    ;; * strip trailing "@" and ":"
    ;; * no commas (good for latex)
    (file "--:\\\\$+<>@-Z_[:alpha:]~*?" "<@" "@>;.,!:")
    ;; An url, or maybe a email/news message-id:
    (url "--:=&?$+@-Z_[:alpha:]~#,%;*()!'" "^[0-9a-zA-Z]" ":;.,!?")
    ;; Find a string that does *not* contain a colon:
    (nocolon "--9$+<>@-Z_[:alpha:]~" "<@" "@>;.,!?")
    ;; A machine:
    (machine "-[:alnum:]." "" ".")
    ;; Mathematica paths: allow backquotes
    (math-mode ",-:$+<>@-Z_[:lower:]~`" "<" "@>;.,!?`:")
    )

In GNU Emacs 24.4.2 (x86_64-unknown-linux-gnu, GTK+ Version 2.10.4)
 of 2015-01-29 on ulcf20.cld.MYCOMPANY.com
Windowing system distributor `The X.Org Foundation', version 11.0.60900000
System Description: Red Hat Enterprise Linux Client release 5.10 (Tikanga)

Configured using:
 `configure --prefix=/home/kmodi/usr_local/apps/emacs/24.4
 CPPFLAGS=-fgnu89-inline'

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Emacs-Lisp

--
Kaushal Modi