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.
This commit is contained in:
parent
d76c007898
commit
3bc3dc4063
1 changed files with 7 additions and 5 deletions
|
|
@ -929,14 +929,16 @@ IGNORES is a list of glob patterns."
|
|||
ignores))
|
||||
(buf (get-buffer-create " *xref-grep*"))
|
||||
(grep-re (caar grep-regexp-alist))
|
||||
status
|
||||
hits)
|
||||
(with-current-buffer buf
|
||||
(erase-buffer)
|
||||
(call-process-shell-command command nil t)
|
||||
;; FIXME: What to do when the call fails?
|
||||
;; "find: ‘xyzgrep’: No such file or directory\n"
|
||||
;; The problem is, find-grep can exit with a nonzero code even
|
||||
;; when there are some matches in the output.
|
||||
(setq status
|
||||
(call-process-shell-command command nil t))
|
||||
(when (and (not (zerop status))
|
||||
;; Nonzero status can mean "no matches found".
|
||||
(/= (point-min) (point-max)))
|
||||
(user-error "Search failed with status %d: %s" status (buffer-string)))
|
||||
(goto-char (point-min))
|
||||
(while (re-search-forward grep-re nil t)
|
||||
(push (list (string-to-number (match-string 2))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue