summaryrefslogtreecommitdiff
path: root/lisp/abbrev.el
diff options
context:
space:
mode:
authorPrzemysław Wojnowski <esperanto@cumego.com>2015-11-08 19:19:15 +0100
committerNicolas Petton <nicolas@petton.fr>2015-11-20 00:19:56 +0100
commit5c81fd58e32d965c2551663622e084f2800e1e90 (patch)
tree2dfaabcf1cddc4b4c370ef61f7c8b5e4d48bddae /lisp/abbrev.el
parentebad964b3afbe5ef77085be94cf566836450c74c (diff)
downloademacs-5c81fd58e32d965c2551663622e084f2800e1e90.tar.gz
Use obarray functions from obarray.
* lisp/abbrev.el (copy-abbrev-table, abbrev-table-p, make-abbrev-table, abbrev-table-get, abbrev-table-put, abbrev-table-empty-p, clear-abbrev-table, define-abbrev, abbrev--symbol, abbrev-table-menu): delegate to obarray.el functions. * lisp/loadup.el: load obarray before abbrev * test/automated/abbrev-tests.el: new tests
Diffstat (limited to 'lisp/abbrev.el')
-rw-r--r--lisp/abbrev.el52
1 files changed, 26 insertions, 26 deletions
diff --git a/lisp/abbrev.el b/lisp/abbrev.el
index 43a905b906e..c95e1ea9dfd 100644
--- a/lisp/abbrev.el
+++ b/lisp/abbrev.el
@@ -33,6 +33,7 @@
;;; Code:
(eval-when-compile (require 'cl-lib))
+(require 'obarray)
(defgroup abbrev-mode nil
"Word abbreviations mode."
@@ -87,7 +88,7 @@ be replaced by its expansion."
"Make a new abbrev-table with the same abbrevs as TABLE.
Does not copy property lists."
(let ((new-table (make-abbrev-table)))
- (mapatoms
+ (obarray-map
(lambda (symbol)
(define-abbrev new-table
(symbol-name symbol)
@@ -406,12 +407,12 @@ A prefix argument means don't query; expand all abbrevs."
(defun abbrev-table-get (table prop)
"Get the PROP property of abbrev table TABLE."
- (let ((sym (intern-soft "" table)))
+ (let ((sym (obarray-get table "")))
(if sym (get sym prop))))
(defun abbrev-table-put (table prop val)
"Set the PROP property of abbrev table TABLE to VAL."
- (let ((sym (intern "" table)))
+ (let ((sym (obarray-put table "")))
(set sym nil) ; Make sure it won't be confused for an abbrev.
(put sym prop val)))
@@ -435,8 +436,7 @@ See `define-abbrev' for the effect of some special properties.
(defun make-abbrev-table (&optional props)
"Create a new, empty abbrev table object.
PROPS is a list of properties."
- ;; The value 59 is an arbitrary prime number.
- (let ((table (make-vector 59 0)))
+ (let ((table (obarray-make)))
;; Each abbrev-table has a `modiff' counter which can be used to detect
;; when an abbreviation was added. An example of use would be to
;; construct :regexp dynamically as the union of all abbrev names, so
@@ -451,7 +451,7 @@ PROPS is a list of properties."
(defun abbrev-table-p (object)
"Return non-nil if OBJECT is an abbrev table."
- (and (vectorp object)
+ (and (obarrayp object)
(numberp (abbrev-table-get object :abbrev-table-modiff))))
(defun abbrev-table-empty-p (object &optional ignore-system)
@@ -460,12 +460,12 @@ If IGNORE-SYSTEM is non-nil, system definitions are ignored."
(unless (abbrev-table-p object)
(error "Non abbrev table object"))
(not (catch 'some
- (mapatoms (lambda (abbrev)
- (unless (or (zerop (length (symbol-name abbrev)))
- (and ignore-system
- (abbrev-get abbrev :system)))
- (throw 'some t)))
- object))))
+ (obarray-map (lambda (abbrev)
+ (unless (or (zerop (length (symbol-name abbrev)))
+ (and ignore-system
+ (abbrev-get abbrev :system)))
+ (throw 'some t)))
+ object))))
(defvar global-abbrev-table (make-abbrev-table)
"The abbrev table whose abbrevs affect all buffers.
@@ -529,12 +529,12 @@ the current abbrev table before abbrev lookup happens."
(defun clear-abbrev-table (table)
"Undefine all abbrevs in abbrev table TABLE, leaving it empty."
(setq abbrevs-changed t)
- (let* ((sym (intern-soft "" table)))
+ (let* ((sym (obarray-get table "")))
(dotimes (i (length table))
(aset table i 0))
;; Preserve the table's properties.
(cl-assert sym)
- (let ((newsym (intern "" table)))
+ (let ((newsym (obarray-put table "")))
(set newsym nil) ; Make sure it won't be confused for an abbrev.
(setplist newsym (symbol-plist sym)))
(abbrev-table-put table :abbrev-table-modiff
@@ -583,7 +583,7 @@ An obsolete but still supported calling form is:
(setq props (plist-put props :abbrev-table-modiff
(abbrev-table-get table :abbrev-table-modiff)))
(let ((system-flag (plist-get props :system))
- (sym (intern name table)))
+ (sym (obarray-put table name)))
;; Don't override a prior user-defined abbrev with a system abbrev,
;; unless system-flag is `force'.
(unless (and (not (memq system-flag '(nil force)))
@@ -673,10 +673,10 @@ The value is nil if that abbrev is not defined."
;; abbrevs do, we have to be careful.
(sym
;; First try without case-folding.
- (or (intern-soft abbrev table)
+ (or (obarray-get table abbrev)
(when case-fold
;; We didn't find any abbrev, try case-folding.
- (let ((sym (intern-soft (downcase abbrev) table)))
+ (let ((sym (obarray-get table (downcase abbrev))))
;; Only use it if it doesn't require :case-fixed.
(and sym (not (abbrev-get sym :case-fixed))
sym))))))
@@ -1005,17 +1005,17 @@ PROMPT is the prompt to use for the keymap.
SORTFUN is passed to `sort' to change the default ordering."
(unless sortfun (setq sortfun 'string-lessp))
(let ((entries ()))
- (mapatoms (lambda (abbrev)
- (when (symbol-value abbrev)
- (let ((name (symbol-name abbrev)))
- (push `(,(intern name) menu-item ,name
- (lambda () (interactive)
- (abbrev-insert ',abbrev)))
- entries))))
- table)
+ (obarray-map (lambda (abbrev)
+ (when (symbol-value abbrev)
+ (let ((name (symbol-name abbrev)))
+ (push `(,(intern name) menu-item ,name
+ (lambda () (interactive)
+ (abbrev-insert ',abbrev)))
+ entries))))
+ table)
(nconc (make-sparse-keymap prompt)
(sort entries (lambda (x y)
- (funcall sortfun (nth 2 x) (nth 2 y)))))))
+ (funcall sortfun (nth 2 x) (nth 2 y)))))))
;; Keep it after define-abbrev-table, since define-derived-mode uses
;; define-abbrev-table.