;;; abbrev.el --- abbrev mode commands for Emacs
-;; Copyright (C) 1985, 1986, 1987, 1992 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 1992, 2002, 2003, 2004,
+;; 2005, 2006 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: abbrev convenience
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
;;; Commentary:
to enable or disable Abbrev mode in the current buffer."
:type 'boolean
:group 'abbrev-mode)
+;;;###autoload(put 'abbrev-mode 'safe-local-variable 'booleanp)
\f
(defvar edit-abbrevs-map
"Major mode for editing the list of abbrev definitions.
\\{edit-abbrevs-map}"
(interactive)
+ (kill-all-local-variables)
(setq major-mode 'edit-abbrevs-mode)
(setq mode-name "Edit-Abbrevs")
- (use-local-map edit-abbrevs-map))
+ (use-local-map edit-abbrevs-map)
+ (run-mode-hooks 'edit-abbrevs-mode-hook))
(defun edit-abbrevs ()
"Alter abbrev definitions by editing a list of them.
(defun edit-abbrevs-redefine ()
"Redefine abbrevs according to current buffer contents."
(interactive)
- (define-abbrevs t)
- (set-buffer-modified-p nil))
+ (save-restriction
+ (widen)
+ (define-abbrevs t)
+ (set-buffer-modified-p nil)))
(defun define-abbrevs (&optional arg)
"Define abbrevs according to current visible buffer contents.
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 display a message."
- (interactive "fRead abbrev file: ")
- (load (if (and file (> (length file) 0)) file abbrev-file-name)
- nil quietly)
+ (interactive
+ (list
+ (read-file-name (format "Read abbrev file (default %s): "
+ abbrev-file-name)
+ nil abbrev-file-name t)))
+ (load (or file abbrev-file-name) nil quietly)
(setq abbrevs-changed nil))
(defun quietly-read-abbrev-file (&optional file)
name (abbrev-expansion name table))))
(define-abbrev table (downcase name) exp))))
-(defun inverse-add-mode-abbrev (arg)
+(defun inverse-add-mode-abbrev (n)
"Define last word before point as a mode-specific abbrev.
With prefix argument N, defines the Nth word before point.
This command uses the minibuffer to read the expansion.
global-abbrev-table
(or local-abbrev-table
(error "No per-mode abbrev table")))
- "Mode" arg))
+ "Mode" n))
-(defun inverse-add-global-abbrev (arg)
+(defun inverse-add-global-abbrev (n)
"Define last word before point as a global (mode-independent) abbrev.
With prefix argument N, defines the Nth word before point.
This command uses the minibuffer to read the expansion.
Expands the abbreviation after defining it."
(interactive "p")
- (inverse-add-abbrev global-abbrev-table "Global" arg))
+ (inverse-add-abbrev global-abbrev-table "Global" n))
(defun inverse-add-abbrev (table type arg)
(let (name exp start end)
(defun expand-region-abbrevs (start end &optional noquery)
"For abbrev occurrence in the region, offer to expand it.
-The user is asked to type y or n for each occurrence.
-A prefix argument means don't query; expand all abbrevs.
-If called from a Lisp program, arguments are START END &optional NOQUERY."
+The user is asked to type `y' or `n' for each occurrence.
+A prefix argument means don't query; expand all abbrevs."
(interactive "r\nP")
(save-excursion
(goto-char start)
(if (or noquery (y-or-n-p (format "Expand `%s'? " string)))
(expand-abbrev)))))))
-;;; arch-tag: dbd6f3ae-dfe3-40ba-b00f-f9e3ff960df5
+;; arch-tag: dbd6f3ae-dfe3-40ba-b00f-f9e3ff960df5
;;; abbrev.el ends here