;; Copyright (C) 1985, 1986, 1987, 1992 Free Software Foundation, Inc.
+;; Maintainer: FSF
;; Keywords: abbrev convenience
;; This file is part of GNU Emacs.
:group 'abbrev-mode
:group 'convenience)
-(defun abbrev-mode (arg)
+(defun abbrev-mode (&optional arg)
"Toggle abbrev mode.
With argument ARG, turn abbrev mode on iff ARG is positive.
In abbrev mode, inserting an abbreviation causes it to expand
"Toggle abbrev mode.
Non-nil means automatically expand abbrevs as they are inserted.
-This variable automatically becomes buffer-local when set in any fashion.
Changing it with \\[customize] sets the default value.
Use the command `abbrev-mode' to enable or disable Abbrev mode in the current
buffer."
(setq tables (cdr tables))))
(point))))
-(defun list-abbrevs ()
- "Display a list of all defined abbrevs."
- (interactive)
- (display-buffer (prepare-abbrev-list-buffer)))
-
-(defun 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 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))))
- (goto-char (point-min))
- (set-buffer-modified-p nil)
- (edit-abbrevs-mode))
- (get-buffer-create "*Abbrevs*"))
+ (let ((table local-abbrev-table))
+ (set-buffer (get-buffer-create "*Abbrevs*"))
+ (erase-buffer)
+ (if local
+ (insert-abbrev-table-description (abbrev-table-name 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)
+ (current-buffer))))
(defun edit-abbrevs-mode ()
"Major mode for editing the list of abbrev definitions.
"Read abbrev definitions from file written with `write-abbrev-file'.
Optional argument FILE is the name of the file to read;
it defaults to the value of `abbrev-file-name'.
-Optional second argument QUIETLY non-nil means don't print anything."
+Optional second argument QUIETLY non-nil means don't display a message."
(interactive "fRead abbrev file: ")
(load (if (and file (> (length file) 0)) file abbrev-file-name)
nil quietly)
- (setq save-abbrevs t abbrevs-changed nil))
+ (setq abbrevs-changed nil))
(defun quietly-read-abbrev-file (&optional file)
"Read abbrev definitions from file written with write-abbrev-file.
Optional argument FILE is the name of the file to read;
it defaults to the value of `abbrev-file-name'.
-Does not print anything."
+Does not display any message."
;(interactive "fRead abbrev file: ")
(read-abbrev-file file t))