aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Gutov2017-05-29 02:55:42 +0300
committerDmitry Gutov2017-05-29 02:55:58 +0300
commit3bc3dc406343bd7e50acae7c0f9d5f8cc89420cd (patch)
tree8cf9847349e655db0f09a38f6141830ce9ec609c
parentd76c0078986b72bd83741f16f4db83c1b31de520 (diff)
downloademacs-3bc3dc406343bd7e50acae7c0f9d5f8cc89420cd.tar.gz
emacs-3bc3dc406343bd7e50acae7c0f9d5f8cc89420cd.zip
Signal error if find-grep returns a nonzero status
* lisp/progmodes/xref.el (xref-collect-matches): Signal error if find-grep returns a nonzero status (bug#23451). Remove the comment: even if some output is present, a non-zero status means something went wrong and it can't be relied upon.
-rw-r--r--lisp/progmodes/xref.el12
1 files changed, 7 insertions, 5 deletions
diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index 9b6a560971c..c43f3a4ca83 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -929,14 +929,16 @@ IGNORES is a list of glob patterns."
929 ignores)) 929 ignores))
930 (buf (get-buffer-create " *xref-grep*")) 930 (buf (get-buffer-create " *xref-grep*"))
931 (grep-re (caar grep-regexp-alist)) 931 (grep-re (caar grep-regexp-alist))
932 status
932 hits) 933 hits)
933 (with-current-buffer buf 934 (with-current-buffer buf
934 (erase-buffer) 935 (erase-buffer)
935 (call-process-shell-command command nil t) 936 (setq status
936 ;; FIXME: What to do when the call fails? 937 (call-process-shell-command command nil t))
937 ;; "find: ‘xyzgrep’: No such file or directory\n" 938 (when (and (not (zerop status))
938 ;; The problem is, find-grep can exit with a nonzero code even 939 ;; Nonzero status can mean "no matches found".
939 ;; when there are some matches in the output. 940 (/= (point-min) (point-max)))
941 (user-error "Search failed with status %d: %s" status (buffer-string)))
940 (goto-char (point-min)) 942 (goto-char (point-min))
941 (while (re-search-forward grep-re nil t) 943 (while (re-search-forward grep-re nil t)
942 (push (list (string-to-number (match-string 2)) 944 (push (list (string-to-number (match-string 2))