From: Rüdiger Sonderfeld Date: Fri, 25 Oct 2013 00:49:33 +0000 (+0800) Subject: * progmodes/octave.el (octave-lookfor): Handle empty lookfor X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~1143 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=6408a65db55664c19fda58217c4b214853cedc3d;p=emacs.git * progmodes/octave.el (octave-lookfor): Handle empty lookfor result. Ask user to retry using '-all' flag. Fixes: debbugs:15701 --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 98a80fb21c7..00d8c4240bd 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2013-10-25 Rüdiger Sonderfeld + + * progmodes/octave.el (octave-lookfor): Handle empty lookfor + result. Ask user to retry using '-all' flag. (Bug#15701) + 2013-10-24 Stefan Monnier * emacs-lisp/smie.el: New smie-config system. diff --git a/lisp/progmodes/octave.el b/lisp/progmodes/octave.el index 899bf151a2c..1803ea62c13 100644 --- a/lisp/progmodes/octave.el +++ b/lisp/progmodes/octave.el @@ -1724,20 +1724,32 @@ sentence." (if all "'-all', " "") str))) (let ((lines inferior-octave-output-list)) - (when (string-match "error: \\(.*\\)$" (car lines)) + (when (and (stringp (car lines)) + (string-match "error: \\(.*\\)$" (car lines))) (error "%s" (match-string 1 (car lines)))) (with-help-window octave-help-buffer - (princ (mapconcat 'identity lines "\n")) (with-current-buffer octave-help-buffer + (if lines + (insert (mapconcat 'identity lines "\n")) + (insert (format "Nothing found for \"%s\".\n" str))) ;; Bound to t so that `help-buffer' returns current buffer for ;; `help-setup-xref'. (let ((help-xref-following t)) (help-setup-xref (list 'octave-lookfor str all) (called-interactively-p 'interactive))) (goto-char (point-min)) - (while (re-search-forward "^\\([^[:blank:]]+\\) " nil 'noerror) - (make-text-button (match-beginning 1) (match-end 1) - :type 'octave-help-function)) + (when lines + (while (re-search-forward "^\\([^[:blank:]]+\\) " nil 'noerror) + (make-text-button (match-beginning 1) (match-end 1) + :type 'octave-help-function))) + (unless all + (goto-char (point-max)) + (insert "\nRetry with ") + (insert-text-button "'-all'" + 'follow-link t + 'action #'(lambda (b) + (octave-lookfor str '-all))) + (insert ".\n")) (octave-help-mode))))) (defcustom octave-source-directories nil