changeset 31230:200fc9dc31f4

(list-abbrevs): Add optional parameter LOCAL. (abbrev-table-name): New function. (prepare-abbrev-list-buffer): Add optional parameter LOCAL. If non-nil list local abbrev, only.
author Gerd Moellmann <gerd@gnu.org>
date Mon, 28 Aug 2000 16:07:10 +0000
parents 0c280e986946
children abc7c24c58bb
files lisp/abbrev.el
diffstat 1 files changed, 25 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/abbrev.el	Mon Aug 28 15:05:20 2000 +0000
+++ b/lisp/abbrev.el	Mon Aug 28 16:07:10 2000 +0000
@@ -86,23 +86,37 @@
 	(setq tables (cdr tables))))
     (point))))
 
-(defun list-abbrevs ()
-  "Display a list of all defined abbrevs."
-  (interactive)
-  (display-buffer (prepare-abbrev-list-buffer)))
+(defun list-abbrevs (&optional local)
+  "Display a list of defined abbrevs.
+If LOCAL is non-nil, interactively when invoked with a
+prefix arg, display only local, i.e. mode-specific, abbrevs.
+Otherwise display all abbrevs."
+  (interactive "P")
+  (display-buffer (prepare-abbrev-list-buffer local)))
 
-(defun prepare-abbrev-list-buffer ()
+(defun abbrev-table-name (table)
+  "Value is the name of abbrev table TABLE."
+  (let ((tables abbrev-table-name-list)
+	found)
+    (while (and (not found) tables)
+      (when (eq (symbol-value (car tables)) table)
+	(setq found (car tables)))
+      (setq tables (cdr tables)))
+    found))
+    
+(defun prepare-abbrev-list-buffer (&optional local)
   (save-excursion
     (set-buffer (get-buffer-create "*Abbrevs*"))
     (erase-buffer)
-    (let ((tables abbrev-table-name-list))
-      (while tables
-	(insert-abbrev-table-description (car tables) t)
-	(setq tables (cdr tables))))
+    (if local
+	(insert-abbrev-table-description (abbrev-table-name
+					  local-abbrev-table) t)
+      (dolist (table abbrev-table-name-list)
+	(insert-abbrev-table-description table t)))
     (goto-char (point-min))
     (set-buffer-modified-p nil)
-    (edit-abbrevs-mode))
-  (get-buffer-create "*Abbrevs*"))
+    (edit-abbrevs-mode)
+    (current-buffer)))
 
 (defun edit-abbrevs-mode ()
   "Major mode for editing the list of abbrev definitions.