From: Stefan Monnier Date: Thu, 8 Dec 2011 13:20:20 +0000 (-0500) Subject: * lisp/pcmpl-gnu.el: Don't fail when there is no Makefile nor -f arg. X-Git-Tag: emacs-pretest-24.0.93~207 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=39c9faef2f2027336f7235d5521269714cc370c8;p=emacs.git * lisp/pcmpl-gnu.el: Don't fail when there is no Makefile nor -f arg. (pcmpl-gnu-makefile-regexps): Accept "makefile" as well as files that end in ".mk". (pcmpl-gnu-make-rule-names): Check "makefile" and ignore errors when reading the makefile. Fixes: debbugs:10116 --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 443ca2d5c34..f27ed2abb65 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2011-12-08 Stefan Monnier + + * pcmpl-gnu.el: Don't fail when there is no Makefile nor -f arg. + (pcmpl-gnu-makefile-regexps): Accept "makefile" as well as files that + end in ".mk". + (pcmpl-gnu-make-rule-names): Check "makefile" and ignore errors + when reading the makefile (bug#10116). + 2011-12-06 Stefan Monnier * pcmpl-gnu.el (pcomplete/make): Also allow filename arguments diff --git a/lisp/pcmpl-gnu.el b/lisp/pcmpl-gnu.el index 72332b723db..3b2a944f5bb 100644 --- a/lisp/pcmpl-gnu.el +++ b/lisp/pcmpl-gnu.el @@ -35,7 +35,7 @@ ;; User Variables: (defcustom pcmpl-gnu-makefile-regexps - '("\\`GNUmakefile" "\\`Makefile" "\\.mak\\'") + '("\\`GNUmakefile" "\\`[Mm]akefile" "\\.ma?k\\'") "A list of regexps that will match Makefile names." :type '(repeat regexp) :group 'pcmpl-gnu) @@ -112,14 +112,16 @@ "Return a list of possible make rule names in MAKEFILE." (let* ((minus-f (member "-f" pcomplete-args)) (makefile (or (cadr minus-f) - (if (file-exists-p "GNUmakefile") - "GNUmakefile" - "Makefile"))) + (cond + ((file-exists-p "GNUmakefile") "GNUmakefile") + ((file-exists-p "makefile") "makefile") + (t "Makefile")))) rules) (if (not (file-readable-p makefile)) (unless minus-f (list "-f")) (with-temp-buffer - (insert-file-contents-literally makefile) + (ignore-errors ;Could be a directory or something. + (insert-file-contents makefile)) (while (re-search-forward (concat "^\\s-*\\([^\n#%.$][^:=\n]*\\)\\s-*:[^=]") nil t) (setq rules (append (split-string (match-string 1)) rules))))