;ELC   
;;; Compiled by buildd@akateko.buildd on Fri Oct 25 13:47:47 2013
;;; from file /build/buildd/emacs23-23.4+1/debian/build-x/lisp/abbrev.el
;;; in Emacs version 23.4
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(custom-declare-group 'abbrev-mode nil "Word abbreviations mode." :link '(custom-manual "(emacs)Abbrevs") :group 'abbrev)
#@50 Default name of file from which to read abbrevs.
(custom-declare-variable 'abbrev-file-name '(locate-user-emacs-file "abbrev_defs" ".abbrev_defs") '(#$ . 656) :initialize 'custom-initialize-delay :type 'file)
#@152 Non-nil means user plans to use global abbrevs only.
This makes the commands that normally define mode-specific abbrevs
define global abbrevs instead.
(custom-declare-variable 'only-global-abbrevs 'nil '(#$ . 872) :type 'boolean :group 'abbrev-mode :group 'convenience)
#@91 Non-nil if Abbrev mode is enabled.
Use the command `abbrev-mode' to change this variable.
(defvar abbrev-mode nil (#$ . 1148))
(make-variable-buffer-local 'abbrev-mode)
#@231 Toggle Abbrev mode in the current buffer.
With optional argument ARG, turn abbrev mode on if ARG is
positive, otherwise turn it off.  In Abbrev mode, inserting an
abbreviation causes it to expand and be replaced by its expansion.
(defalias 'abbrev-mode #[(&optional arg) "\303 	\304=\203 \n?\202( 	\203 \305	!\306V\202( \n\204\" \307\202( \310\311\302\"\210\312\313\314\n\2033 \315\2024 \316\"\210\317\320!\203U \303 \203H \303 \232\203U \310\321\n\203R \322\202S \323\"\210)\324 \210\n\207" [#1=#:last-message arg abbrev-mode current-message toggle prefix-numeric-value 0 t message "Toggling %s off; better pass an explicit argument." nil run-hooks abbrev-mode-hook abbrev-mode-on-hook abbrev-mode-off-hook called-interactively-p any "Abbrev mode %sabled" "en" "dis" force-mode-line-update] 3 (#$ . 1324) (list (or current-prefix-arg 'toggle))])
(byte-code "\301\302\303\304\300!\205\n #\207" [abbrev-mode-map add-minor-mode abbrev-mode nil boundp] 5)
#@322 Enable or disable Abbrev mode.
Non-nil means automatically expand abbrevs as they are inserted.

Setting this variable with `setq' changes it for the current buffer.
Changing it with \[customize] sets the default value.
Interactively, use the command `abbrev-mode'
to enable or disable Abbrev mode in the current buffer.
(custom-declare-variable 'abbrev-mode 'nil '(#$ . 2290) :type 'boolean :group 'abbrev-mode)
(put 'abbrev-mode 'safe-local-variable 'booleanp)
#@32 Keymap used in `edit-abbrevs'.
(defvar edit-abbrevs-map (byte-code "\301 \302\303\304#\210\302\305\304#\210)\207" [map make-sparse-keymap define-key "" edit-abbrevs-redefine ""] 4) (#$ . 2759))
#@31 Undefine all defined abbrevs.
(defalias 'kill-all-abbrevs #[nil "\303\211\203 \n@\304	J!\210\nA\211\204 *\303\207" [abbrev-table-name-list tablesym #1=#:--cl-dolist-temp-- nil clear-abbrev-table] 3 (#$ . 2967) nil])
#@57 Make a new abbrev-table with the same abbrevs as TABLE.
(defalias 'copy-abbrev-table #[(table) "\302 \303\304	\"\210)\207" [new-table table make-abbrev-table mapatoms #[(symbol) "\302\303	!	J	K$\207" [new-table symbol define-abbrev symbol-name] 5]] 3 (#$ . 3196)])
#@95 Insert after point a description of all defined abbrevs.
Mark is set after the inserted text.
(defalias 'insert-abbrevs #[nil "\303\212\304\211\203 \n@\305	\306\"\210\nA\211\204\n *`)!\207" [abbrev-table-name-list tablesym #1=#:--cl-dolist-temp-- push-mark nil insert-abbrev-table-description t] 5 (#$ . 3470) nil])
#@183 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.
(defalias 'list-abbrevs #[(&optional local) "\301\302!!\207" [local display-buffer prepare-abbrev-list-buffer] 3 (#$ . 3799) "P"])
#@42 Value is the name of abbrev table TABLE.
(defalias 'abbrev-table-name #[(table) "\304	\204 \n\203 \n@J=\203 \n@\nA\202 	*\207" [abbrev-table-name-list found tables table nil] 2 (#$ . 4119)])
(defalias 'prepare-abbrev-list-buffer #[(&optional local) "r\306\307!q\210\310 \210\n\203 \311\312	!\313\"\210\2021 \314\211\2030 @\311\f\313\"\210A\211\204! *eb\210\315\314!\210\316 \210p*\207" [local-abbrev-table local-table local abbrev-table-name-list table #1=#:--cl-dolist-temp-- get-buffer-create "*Abbrevs*" erase-buffer insert-abbrev-table-description abbrev-table-name t nil set-buffer-modified-p edit-abbrevs-mode] 4])
#@76 Major mode for editing the list of abbrev definitions.
\{edit-abbrevs-map}
(defalias 'edit-abbrevs-mode #[nil "\303 \210\304\305\306\n!\210\307\310!\207" [major-mode mode-name edit-abbrevs-map kill-all-local-variables edit-abbrevs-mode "Edit-Abbrevs" use-local-map run-mode-hooks edit-abbrevs-mode-hook] 2 (#$ . 4766) nil])
#@568 Alter abbrev definitions by editing a list of them.
Selects a buffer containing a list of abbrev definitions.
You can edit them and type \<edit-abbrevs-map>\[edit-abbrevs-redefine] to redefine abbrevs
according to your editing.
Buffer contains a header line for each abbrev table,
 which is the abbrev table name in parentheses.
This is followed by one line per abbrev in that table:
NAME   USECOUNT   EXPANSION   HOOK
where NAME and EXPANSION are strings with quotes,
USECOUNT is an integer, and HOOK is any valid function
or may be omitted (it is usually omitted).
(defalias 'edit-abbrevs #[nil "\300\301 !\207" [switch-to-buffer prepare-abbrev-list-buffer] 2 (#$ . 5099) nil])
#@56 Redefine abbrevs according to current buffer contents.
(defalias 'edit-abbrevs-redefine #[nil "\214~\210\300\301!\210\302\303!)\207" [define-abbrevs t set-buffer-modified-p nil] 2 (#$ . 5785) nil])
#@255 Define abbrevs according to current visible buffer contents.
See documentation of `edit-abbrevs' for info on the format of the
text you must have in the buffer.
With argument, eliminate all abbrev definitions except
the ones defined from the buffer now.
(defalias 'define-abbrevs #[(&optional arg) "\203 \306 \210\212eb\210m?\205~ \307\310\311\312#\205~ p\313	!\311\211\311\211\311\211\314y\210\314y\210l\204t \313	!\313	!\211\315\232\203N \312\313	!\313	!\316\311x\210l?\205_ \313	!\316\311x\210\f\257B\2020 \317\n\"\210.\202 )\207" [arg buf table abbrevs name hook kill-all-abbrevs re-search-forward "^(" nil t read 1 (sys) " 	\n\f" define-abbrev-table exp count sys] 6 (#$ . 5990) "P"])
#@245 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 display a message.
(defalias 'read-abbrev-file #[(&optional file quietly) "\304\206 	\305\n#\210\305\211\207" [file abbrev-file-name quietly abbrevs-changed load nil] 4 (#$ . 6723) (list (read-file-name (format "Read abbrev file (default %s): " abbrev-file-name) nil abbrev-file-name t))])
#@203 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 display any message.
(defalias 'quietly-read-abbrev-file #[(&optional file) "\301\302\"\207" [file read-abbrev-file t] 3 (#$ . 7248)])
#@377 Write all user-level abbrev definitions to a file of Lisp code.
This does not include system abbrevs; it includes only the abbrev tables
listed in listed in `abbrev-table-name-list'.
The file written can be loaded in another session to define the same abbrevs.
The argument FILE is the file name to write.  If omitted or nil, the file
specified in `abbrev-file-name' is used.
(defalias 'write-abbrev-file #[(&optional file) "\203 G\306V\204 	\307\310\311\312!!\313\216rq\210\314c\210\315\316!\317\"\320\211\203C @\321\320\"\210A\211\204/ +\320rq\210\322\320\211\f\320\306%\210-\207" [file abbrev-file-name coding-system-for-write #1=#:temp-buffer #2=#:temp-file abbrev-table-name-list 0 emacs-mule get-buffer-create generate-new-buffer-name " *temp file*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) ";;-*-coding: emacs-mule;-*-\n" sort copy-sequence #[(s1 s2) "\302!\302	!\231\207" [s1 s2 symbol-name] 3] nil insert-abbrev-table-description write-region table #3=#:--cl-dolist-temp--] 7 (#$ . 7572) (list (read-file-name "Write abbrev file: " (file-name-directory (expand-file-name abbrev-file-name)) abbrev-file-name))])
#@338 Define mode-specific abbrev for last word(s) before point.
Argument is how many words before point form the expansion;
or zero means the region is the expansion.
A negative argument means to undefine the specified abbrev.
Reads the abbreviation in the minibuffer.

Don't use this function in a Lisp program; use `define-abbrev' instead.
(defalias 'add-mode-abbrev #[(arg) "\304\203	 	\202 \n\206 \305\306!\307#\207" [only-global-abbrevs global-abbrev-table local-abbrev-table arg add-abbrev error "No per-mode abbrev table" "Mode"] 4 (#$ . 8765) "p"])
#@388 Define global (all modes) abbrev for last word(s) before point.
The prefix argument specifies the number of words before point that form the
expansion; or zero means the region is the expansion.
A negative argument means to undefine the specified abbrev.
This command uses the minibuffer to read the abbreviation.

Don't use this function in a Lisp program; use `define-abbrev' instead.
(defalias 'add-global-abbrev #[(arg) "\302\303	#\207" [global-abbrev-table arg add-abbrev "Global"] 4 (#$ . 9328) "p"])
(defalias 'add-abbrev #[(table type arg) "\305Y\205 \306`\305U\203 \307 \202 \212[v\210`)\"\310\311\312\n\203( \313\202) \314\n#!\315\305	G\310	$\210\n\203N \316	\f\"\203N \317\312\320	\316	\f\"#!\205T \321\f	\227\n#*\207" [arg name exp type table 0 buffer-substring-no-properties mark nil read-string format "%s abbrev for \"%s\": " "Undefine %s abbrev: " set-text-properties abbrev-expansion y-or-n-p "%s expands to \"%s\"; redefine? " define-abbrev] 7])
#@217 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.
Expands the abbreviation after defining it.
(defalias 'inverse-add-mode-abbrev #[(n) "\304\203	 	\202 \n\206 \305\306!\307#\207" [only-global-abbrevs global-abbrev-table local-abbrev-table n inverse-add-abbrev error "No per-mode abbrev table" "Mode"] 4 (#$ . 10310) "p"])
#@229 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.
(defalias 'inverse-add-global-abbrev #[(n) "\302\303	#\207" [global-abbrev-table n inverse-add-abbrev "Global"] 4 (#$ . 10765) "p"])
(defalias 'inverse-add-abbrev #[(table type arg) "\306\211\211\211\212\f[Tv\210`\307v\210`\310	\")\311\312\313#\306\211\211\314%\315\"\203= \316\312\317\315\"#!\205L \320\227\n#\210\212b\210\321 ),\207" [end start exp name arg type nil -1 buffer-substring-no-properties read-string format "%s expansion for \"%s\": " t abbrev-expansion y-or-n-p "%s expands to \"%s\"; redefine? " define-abbrev expand-abbrev table] 7])
#@461 Mark current point as the beginning of an abbrev.
Abbrev to be expanded starts here rather than at beginning of word.
This way, you can expand an abbrev with a prefix: insert the prefix,
use this command, then insert the abbrev.  This command inserts a
temporary hyphen after the prefix (until the intended abbrev
expansion occurs).
If the prefix is itself an abbrev, this command expands it, unless
ARG is non-nil.  Interactively, ARG is the prefix argument.
(defalias 'abbrev-prefix-mark #[(&optional arg) "\204 \303 \210\304 p\305c\207" [arg abbrev-start-location abbrev-start-location-buffer expand-abbrev point-marker "-"] 1 (#$ . 11575) "P"])
#@173 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.
(defalias 'expand-region-abbrevs #[(start end &optional noquery) "\212b\210d	Z\306\211m?\205A \307v\210`\211d\fZX\205A \310\311\212\312v\210`)\"\211!\203\f \204; \313\314\315\n\"!\203\f \316 \210\202\f ,\207" [start end string pnt lim noquery nil 1 abbrev-expansion buffer-substring-no-properties -1 y-or-n-p format "Expand `%s'? " expand-abbrev] 4 (#$ . 12235) "r\nP"])
#@46 Get the PROP property of abbrev table TABLE.
(defalias 'abbrev-table-get #[(table prop) "\303\304\"\211\205\f 	\nN)\207" [table sym prop intern-soft ""] 4 (#$ . 12792)])
#@53 Set the PROP property of abbrev table TABLE to VAL.
(defalias 'abbrev-table-put #[(table prop val) "\304\305\"\211\306L\210\307	\n#)\207" [table sym prop val intern "" nil put] 5 (#$ . 12970)])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [defalias abbrev-get get "Get the property PROP of abbrev ABBREV\n\n(fn ABBREV PROP)" abbrev-put put "Set the property PROP of abbrev ABREV to value VAL.\nSee `define-abbrev' for the effect of some special properties.\n\n(fn ABBREV PROP VAL)"] 4)
#@49 List of symbols whose values are abbrev tables.
(defvar abbrev-table-name-list '(fundamental-mode-abbrev-table global-abbrev-table) (#$ . 13476))
#@73 Create a new, empty abbrev table object.
PROPS is a list of properties.
(defalias 'make-abbrev-table #[(&optional props) "\302\303\304\"\305\306\304#\210	:\203! \305	\211A@	\211A@#\210\202 )\207" [table props make-vector 59 0 abbrev-table-put :abbrev-table-modiff] 5 (#$ . 13628)])
(defalias 'abbrev-table-p #[(object) "\301!\205 \302\303\"\247\207" [object vectorp abbrev-table-get :abbrev-table-modiff] 3])
#@196 The abbrev table whose abbrevs affect all buffers.
Each buffer may also have a local abbrev table.
If it does, the local table overrides the global one
for any particular abbrev defined in both.
(defvar global-abbrev-table (make-abbrev-table) (#$ . 14054))
#@160 Alist of abbrev tables to use for minor modes.
Each element looks like (VARIABLE . ABBREV-TABLE);
ABBREV-TABLE is active whenever VARIABLE's value is non-nil.
(defvar abbrev-minor-mode-table-alist nil (#$ . 14318))
#@65 The abbrev table of mode-specific abbrevs for Fundamental Mode.
(defvar fundamental-mode-abbrev-table (byte-code "\301 \302\303\"\210)\207" [table make-abbrev-table set-default local-abbrev-table] 3) (#$ . 14539))
#@117 Set non-nil by defining or altering any word abbrevs.
This causes `save-some-buffers' to offer to save the abbrevs.
(defvar abbrevs-changed nil (#$ . 14763))
#@68 Non-nil means expand multi-word abbrevs all caps if abbrev was so.
(custom-declare-variable 'abbrev-all-caps 'nil '(#$ . 14927) :type 'boolean :group 'abbrev-mode)
#@165 Buffer position for `expand-abbrev' to use as the start of the abbrev.
When nil, use the word before point as the abbrev.
Calling `expand-abbrev' sets this to nil.
(defvar abbrev-start-location nil (#$ . 15098))
#@134 Buffer that `abbrev-start-location' has been set for.
Trying to expand an abbrev in any other buffer clears `abbrev-start-location'.
(defvar abbrev-start-location-buffer nil (#$ . 15317))
#@70 The abbrev-symbol of the last abbrev expanded.  See `abbrev-symbol'.
(defvar last-abbrev nil (#$ . 15511))
#@98 The exact text of the last abbrev expanded.
It is nil if the abbrev has already been unexpanded.
(defvar last-abbrev-text nil (#$ . 15624))
#@56 The location of the start of the last abbrev expanded.
(defvar last-abbrev-location 0 (#$ . 15770))
#@198 Function or functions to be called before abbrev expansion is done.
This is the first thing that `expand-abbrev' does, and so this may change
the current abbrev table before abbrev lookup happens.
(custom-declare-variable 'pre-abbrev-expand-hook 'nil '(#$ . 15877) :type 'hook :group 'abbrev-mode)
(make-obsolete-variable 'pre-abbrev-expand-hook 'abbrev-expand-functions "23.1")
#@63 Undefine all abbrevs in abbrev table TABLE, leaving it empty.
(defalias 'clear-abbrev-table #[(table) "\306\307\310	\"	G\311\fW\203 	\311I\210T\211\202 *\n\204) \312\313\302C\"\210\314\310	\"\211\315L\210\316\317\n!\"\210)\320	\321\322	\321\"T#\210)\315\207" [abbrevs-changed table sym i #1=#:--cl-dotimes-temp-- newsym t intern-soft "" 0 signal cl-assertion-failed intern nil setplist symbol-plist abbrev-table-put :abbrev-table-modiff abbrev-table-get] 7 (#$ . 16262)])
#@1289 Define an abbrev in TABLE named NAME, to expand to EXPANSION and call HOOK.
NAME must be a string, and should be lower-case.
EXPANSION should usually be a string.
To undefine an abbrev, define it with EXPANSION = nil.
If HOOK is non-nil, it should be a function of no arguments;
it is called after EXPANSION is inserted.
If EXPANSION is not a string (and not nil), the abbrev is a
 special one, which does not expand in the usual way but only
 runs HOOK.

PROPS is a property list.  The following properties are special:
- `:count': the value for the abbrev's usage-count, which is incremented each
  time the abbrev is used (the default is zero).
- `:system': if non-nil, says that this is a "system" abbreviation
  which should not be saved in the user's abbreviation file.
  Unless `:system' is `force', a system abbreviation will not
  overwrite a non-system abbreviation of the same name.
- `:case-fixed': non-nil means that abbreviations are looked up without
  case-folding, and the expansion is not capitalized/upcased.
- `:enable-function': a function of no argument which returns non-nil if the
  abbrev should be used for a particular call of `expand-abbrev'.

An obsolete but still supported calling form is:

(define-abbrev TABLE NAME EXPANSION &optional HOOK COUNT SYSTEM).
(defalias 'define-abbrev #[(table name expansion &optional hook &rest props) ":\203' @\203 @\247\203' \306@\211A@)\205$ \307\211A@)DBB\310\306\"\2044 \311\306\312#\310\307\"\313\n\"\211\314>\204V \315\f!\203V \fJ\203V \316\f\307\"\203\240 \204y \315\f!\203v \317\f!\203v \fJ\232\203v \fK\232\204y \320\fL\210\fM\210\321\f\322=\203\223 \311\307\320#\202\224 \"\210\323\324\325\324\"T#\210\n*\207" [props x name table sym system-flag :count :system plist-get plist-put 0 intern (nil force) boundp abbrev-get fboundp t setplist force abbrev-table-put :abbrev-table-modiff abbrev-table-get expansion hook abbrevs-changed] 7 (#$ . 16754)])
#@119 Check if the characters in ABBREV have word syntax in either the
current (if global is nil) or standard syntax table.
(defalias 'abbrev--check-chars #[(abbrev global) "\306 p\307\216\310\n\204 \311 \202 \306 !\210\312\313\"\205Y \314\315\312\313\f#\203G \315\224H\316\"\203; \210\202@ B)\fT\202  \317\320\321\322\237\"\n\203V \323\202W \324#*+\207" [#1=#:buffer #2=#:table global abbrev pos badchars syntax-table ((byte-code "rq\210\302	!\210)\302\207" [#1# #2# set-syntax-table] 2)) set-syntax-table standard-syntax-table string-match "\\W" nil 0 memql error "Some abbrev characters (%s) are not word constituents %s" apply string "in the standard syntax" "in this mode" x] 5 (#$ . 18717)])
#@140 Define ABBREV as a global abbreviation for EXPANSION.
The characters in ABBREV must all be word constituents in the standard
syntax table.
(defalias 'define-global-abbrev #[(abbrev expansion) "\303\304\"\210\305	\227\n#\207" [abbrev global-abbrev-table expansion abbrev--check-chars global define-abbrev] 4 (#$ . 19438) "sDefine global abbrev: \nsExpansion for %s: "])
#@138 Define ABBREV as a mode-specific abbreviation for EXPANSION.
The characters in ABBREV must all be word-constituents in the current mode.
(defalias 'define-mode-abbrev #[(abbrev expansion) "\204 \303\304!\210\305	\306\"\210\307	\227\n#\207" [local-abbrev-table abbrev expansion error "Major mode has no abbrev table" abbrev--check-chars nil define-abbrev] 4 (#$ . 19816) "sDefine mode abbrev: \nsExpansion for %s: "])
#@167 Return the list of abbrev tables currently active.
TABLES if non-nil overrides the usual rules.  It can hold
either a single abbrev table or a list of abbrev tables.
(defalias 'abbrev--active-tables #[(&optional tables) ":\203 \207\306!\203 C\207	<\203 \307	\nC\"\202  	\nD\310\211\203Y @\211@9\203R \311\f@!\203R \f@J\203R \fA<\203M \307\fA\"\202Q \fABA\211\204) *)\207" [tables local-abbrev-table global-abbrev-table abbrev-minor-mode-table-alist x #1=#:--cl-dolist-temp-- vectorp append nil boundp] 4 (#$ . 20243)])
#@384 Return the symbol representing abbrev named ABBREV.
This symbol's name is ABBREV, but it is not the canonical symbol of that name;
it is interned in an abbrev-table rather than the normal obarray.
The value is nil if that abbrev is not defined.
Optional second arg TABLE is abbrev table to look it up in.
The default is to try buffer's mode-specific abbrev table, then global table.
(defalias 'abbrev-symbol #[(abbrev &optional table) "\305!\306\n\203G 	J\204G \n\211A@\307\310\"?\311\307\312\"\n\"\313\f\"\206B \205B \313\f\227\"\211\205A \314	\310\"?\205A 	)*\202 	J\205M 	*\207" [table sym tables case-fold abbrev abbrev--active-tables nil abbrev-table-get :case-fixed append :parents intern-soft abbrev-get] 5 (#$ . 20788)])
#@162 Return the string that ABBREV expands into in the current buffer.
Optionally specify an abbrev table as second arg;
then ABBREV is looked up in that table only.
(defalias 'abbrev-expansion #[(abbrev &optional table) "\302	\"J\207" [abbrev table abbrev-symbol] 3 (#$ . 21539)])
#@74 Try and find an abbrev before point.  Return it if found, nil otherwise.
(defalias 'abbrev--before-point #[nil "p=\204 \306\307 `\306\211\211\211	\203Q 	\306dW\2031 f\310=\2031 \211T|\210\311\312!\210`\211V\205\352 \f{b\210\313\"\fF\202\352 \203\351 \n@\204\351 \211A@\314\315\"\316\314\317\"\"\203\201  \205\340 \314\320\"\211\204\241 `\321v\210`\322v\210`^\211)\202\261 \323\324 \"\205\261 \322\224\322\225\211)\205\340 \f{\211\205\340 \313\"\211\205\337 \325\315\"\211\203\331  \205\337 \fF)b\210*\202Q \n.\207" [abbrev-start-location-buffer abbrev-start-location res name end start nil abbrev--active-tables 45 skip-syntax-backward " " abbrev-symbol abbrev-table-get :enable-function append :parents :regexp -1 1 looking-back line-beginning-position abbrev-get pos tables table enable-fun re lim abbrev] 7 (#$ . 21823)])
#@323 Insert abbrev ABBREV at point.
If non-nil, NAME is the name by which this abbrev was found.
If non-nil, WORDSTART is the place where to insert the abbrev.
If WORDEND is non-nil, the abbrev replaces the previous text between
WORDSTART and WORDEND.
Return ABBREV if the expansion should be considered as having taken place.
(defalias 'abbrev-insert #[(abbrev &optional name wordstart wordend) "\204 \306	!\n\204 `\204 \n\307	\310\311	\310\"T#\210		J;\203\212 \nb\210	Jc\210\312\nZ!\210\313\306	!\232\204\211 \314\315\"\203\211 \314\316\"\204q \204i \212\317v\210`\nb\210\320v\210`V)\203i \321\n`\"\210\202\211 \322\n`\"\210\202\211 `\nb\210\323\324S\"\210\321``T\"\210b\210))	K\203\254 	K\211 9\203\253 \204\253 \325N\203\253 \313*\f)\207" [name abbrev wordstart wordend value case-fold-search symbol-name abbrev-put :count abbrev-get delete-char nil string-match "[[:upper:]]" "[[:lower:]]" -1 1 upcase-initials-region upcase-region skip-syntax-forward "^w" no-self-insert abbrev-all-caps end hook expanded] 7 (#$ . 22739)])
#@211 Wrapper hook around `expand-abbrev'.
The functions on this special hook are called with one argument:
a function that performs the abbrev expansion.  It should return
the abbrev symbol if expansion took place.
(defvar abbrev-expand-functions nil (#$ . 23803))
#@179 Expand the abbrev before point, if there is an abbrev there.
Effective when explicitly called even when `abbrev-mode' is nil.
Returns the abbrev symbol, if expansion took place.
(defalias 'expand-abbrev #[nil "\302\303!\210\304\305!\211\306L\210\307\310\311\312\313D\314FEL\210J	\315\301!\205% \316\301!\306#)\207" [#1=#:--cl---cl-var--18602-- abbrev-expand-functions run-hooks pre-abbrev-expand-hook make-symbol "----cl-var--18602--" nil lambda #2=(&rest --cl-rest--) apply #[(#3=#:G18606 #4=#:funs #5=#:global #6=#:args) "\306\307!\306\310!\211\nL\210L\210	J:\203G 	J@\311=\203- \fJ\312J	JA\"\313#\202K \314	J@\315\316\314\317\320D\320	D\320\fD\321\257E#\202K \314\322\"*\207" [#7=#:--cl-global-- #8=#:--cl-funs-- #4# #5# #3# #6# make-symbol "--funs--" "--global--" t append nil apply lambda #2# #[(#9=#:G18603 #10=#:G18604 #11=#:G18605 &rest #6#) "J	JA\nJ#\207" [#11# #10# #9# #6#] 4] quote --cl-rest-- #[nil "\306 \211\211A@\211A@\211A@\211A@\203) \307\310\311\312G\\D\"\210	\205N 	\204> \313\314 !\204> \315 \210\n	\316	\n\f$)-\207" [#12=#:--cl-rest-- sym name wordstart wordend value abbrev--before-point signal wrong-number-of-arguments nil 4 window-minibuffer-p selected-window undo-boundary abbrev-insert noninteractive last-abbrev-text last-abbrev last-abbrev-location] 6]] 11] quote --cl-rest-- local-variable-p default-value] 8 (#$ . 24070) nil])
#@139 Undo the expansion of the last abbrev that expanded.
This differs from ordinary undo in that other editing done since then
is not undone.
(defalias 'unexpand-abbrev #[nil "\212eW\206\n dV?\2050 b\210	;\2050 \nJ\211;\204\" \304\305!\210	c\210``G\\|\210\306\211))\207" [last-abbrev-location last-abbrev-text last-abbrev val error "Value of abbrev-symbol must be a string" nil] 4 (#$ . 25477) nil])
#@136 Write the abbrev in a `read'able form.
Only writes the non-system abbrevs.
Presumes that `standard-output' points to `current-buffer'.
(defalias 'abbrev--write #[(sym) "J?\206\n \301\302\"?\2053 \303c\210\304\305!!\210\306c\210\304J!\210\306c\210\304K!\210\306c\210\304\301\307\"!\210\310c\207" [sym abbrev-get :system "    (" prin1 symbol-name " " :count ")\n"] 4 (#$ . 25886)])
(defalias 'abbrev--describe #[(sym) "J\205D \301\302!!\210\303\304\"\204 \305\306\307\"\210\202\" \310c\210\305\311\307\"\210\301\303\312\"!\210\305\311\307\"\210\301J!\210K\203B \305\313\307\"\210\301K!\210\314 \207" [sym prin1 symbol-name abbrev-get :system indent-to 15 1 " (sys)" 20 :count 45 terpri] 4])
#@404 Insert before point a full description of abbrev table named NAME.
NAME is a symbol whose value is an abbrev table.
If optional 2nd arg READABLE is non-nil, a human-readable description
is inserted.  Otherwise the description is an expression,
a call to `define-abbrev-table', which would
define the abbrev table NAME exactly as it is currently defined.

Abbrevs marked as "system abbrevs" are omitted.
(defalias 'insert-abbrev-table-description #[(name &optional readable) "J\305\306\307\n\"\210\310	\311\"p\f\203* \312c\210\313!\210\314c\210\315\316	\"\210\317c\210\202F \320c\210\313!\210	\204; \321c\210\202F \322c\210\315\323	\"\210\324c\210+\305\207" [name symbols table standard-output readable nil mapatoms #[(sym) "J\205\n 	B\211\207" [sym symbols] 2] sort string-lessp "(" prin1 ")\n\n" mapc abbrev--describe "\n\n" "(define-abbrev-table '" " '())\n\n" "\n  '(\n" abbrev--write "   ))\n\n"] 3 (#$ . 26596)])
(put 'define-abbrev-table 'doc-string-elt 3)
#@888 Define TABLENAME (a symbol) as an abbrev table name.
Define abbrevs in it according to DEFINITIONS, which is a list of elements
of the form (ABBREVNAME EXPANSION ...) that are passed to `define-abbrev'.
PROPS is a property list to apply to the table.
Properties with special meaning:
- `:parents' contains a list of abbrev tables from which this table inherits
  abbreviations.
- `:case-fixed' non-nil means that abbreviations are looked up without
  case-folding, and the expansion is not capitalized/upcased.
- `:regexp' describes the form of abbrevs.  It defaults to \=\<\(\w+\)\W* which
  means that an abbrev can only be a single word.  The submatch 1 is treated
  as the potential name of an abbrev.
- `:enable-function' can be set to a function of no argument which returns
  non-nil if and only if the abbrevs in this table should be used for this
  instance of `expand-abbrev'.
(defalias 'define-abbrev-table #[(tablename definitions &optional docstring &rest props) "\306\307\310	;\205 	CBBB!\210\311!\205 J\211\204( \312 \nL\210B\f:\203> \313\n\f\211A@\f\211A@#\210\202( \310\211\203] @\314\315\n#\210A\211\204H +\310\207" [tablename docstring table abbrev-table-name-list props definitions eval defvar nil boundp make-abbrev-table abbrev-table-put apply define-abbrev elt #1=#:--cl-dolist-temp--] 6 (#$ . 27576)])
#@193 Return a menu that shows all abbrevs in TABLE.
Selecting an entry runs `abbrev-insert'.
PROMPT is the prompt to use for the keymap.
SORTFUN is passed to `sort' to change the default ordering.
(defalias 'abbrev-table-menu #[(table &optional prompt sortfun) "\204 \304\305\306\307\n\"\210\310!\311	\312\"\244)\207" [sortfun entries table prompt string-lessp nil mapatoms #[(abbrev) "J\205 \303!\304	!\305	\306\307\310\311\312DDFF\nB\211)\207" [abbrev name entries symbol-name intern menu-item lambda nil (interactive) abbrev-insert quote] 9] make-sparse-keymap sort #[(x y) "\303	8\303\n8\"\207" [sortfun x y 2] 4]] 4 (#$ . 28937)])
(provide 'abbrev)
