diff lisp/emacs-lisp/easy-mmode.el @ 28239:21cd65af5197

(easy-mmode-define-navigation): Only use `ding' for interactive use else, use `error' (to enable the caller to react to the problem).
author Stefan Monnier <monnier@iro.umontreal.ca>
date Tue, 21 Mar 2000 16:53:06 +0000
parents 963f1d516e92
children d8bafae6beb2
line wrap: on
line diff
--- a/lisp/emacs-lisp/easy-mmode.el	Tue Mar 21 16:13:31 2000 +0000
+++ b/lisp/emacs-lisp/easy-mmode.el	Tue Mar 21 16:53:06 2000 +0000
@@ -363,14 +363,16 @@
   (let* ((base-name (symbol-name base))
 	 (prev-sym (intern (concat base-name "-prev")))
 	 (next-sym (intern (concat base-name "-next"))))
+    (unless name (setq name (symbol-name base-name)))
     `(progn
        (defun ,next-sym (&optional count)
-	 ,(format "Go to the next COUNT'th %s." (or name base-name))
+	 ,(format "Go to the next COUNT'th %s." name)
 	 (interactive)
 	 (unless count (setq count 1))
 	 (if (< count 0) (,prev-sym (- count))
 	   (if (looking-at ,re) (incf count))
-	   (or (re-search-forward ,re nil t count) (ding))
+	   (unless (re-search-forward ,re nil t count)
+	     (if (interactive-p) (ding) (error ,(format "No next %s" name))))
 	   (goto-char (match-beginning 0))
 	   (when (eq (current-buffer) (window-buffer (selected-window)))
 	     (let ((endpt (or (save-excursion
@@ -383,7 +385,9 @@
 	 (interactive)
 	 (unless count (setq count 1))
 	 (if (< count 0) (,next-sym (- count))
-	   (or (re-search-backward ,re nil t count) (ding)))))))
+	   (unless (re-search-backward ,re nil t count)
+	     (if (interactive-p) (ding)
+	       (error ,(format "No previous %s" name)))))))))
 
 (provide 'easy-mmode)