# HG changeset patch # User Gerd Moellmann # Date 967478830 0 # Node ID 200fc9dc31f4e1e4ac69ea3494bc0ff542b0d13a # Parent 0c280e9869466d07290c289e7bf2b1401bbb883b (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. diff -r 0c280e986946 -r 200fc9dc31f4 lisp/abbrev.el --- 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.