From 6408a65db55664c19fda58217c4b214853cedc3d Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=BCdiger=20Sonderfeld?= Date: Fri, 25 Oct 2013 08:49:33 +0800 Subject: [PATCH] * progmodes/octave.el (octave-lookfor): Handle empty lookfor result. Ask user to retry using '-all' flag. Fixes: debbugs:15701 --- lisp/ChangeLog | 5 +++++ lisp/progmodes/octave.el | 22 +++++++++++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) 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 -- 2.11.4.GIT