summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/progmodes/compile.el11
2 files changed, 15 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 14d6f8503f6..e1aab1a78bf 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2013-10-02 Kevin Rodgers <kevin.d.rodgers@gmail.com>
+
+ * progmodes/compile.el (compilation-start): Try globbing the arg to
+ `cd' (bug#15417).
+
2013-10-02 Michael Albinus <michael.albinus@gmx.de>
Sync with Tramp 2.2.8.
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index 8c981b36e56..e25be05fb09 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -1583,7 +1583,16 @@ Returns the compilation buffer created."
"\\\\\\(.\\)" "\\1"
(substring command (1+ (match-beginning 1))
(1- (match-end 1)))))
- (t (substitute-env-vars (match-string 1 command)))))
+ ;; Try globbing as well (bug#15417).
+ (t (let* ((substituted-dir
+ (substitute-env-vars (match-string 1 command)))
+ ;; FIXME: This also tries to expand `*' that were
+ ;; introduced by the envvar expansion!
+ (expanded-dir
+ (file-expand-wildcards substituted-dir)))
+ (if (= (length expanded-dir) 1)
+ (car expanded-dir)
+ substituted-dir)))))
(erase-buffer)
;; Select the desired mode.
(if (not (eq mode t))