;ELC   
;;; Compiled
;;; in Emacs version 29.4
;;; with all optimizations.



(byte-code "\300\301\302\303\304\305%\210\306\307\310\311\312DD\313\314\315%\210\316\307\317\320#\210\306\321\310\311\322DD\323\314\315%\210\306\324\310\311\325DD\326\314\315%\210\327\330\331\332#\207" [custom-declare-group expand nil "Make abbreviations more usable." :group abbrev custom-declare-variable expand-load-hook funcall function #[0 "\300\207" [nil] 1 #1=""] "Hooks run when `expand.el' is loaded." :type hook make-obsolete-variable "use `with-eval-after-load' instead." "28.1" expand-expand-hook #[0 "\300\207" [nil] 1 #1#] "Hooks run when an abbrev made by `expand-add-abbrevs' is expanded." expand-jump-hook #[0 "\300\207" [nil] 1 #1#] "Hooks run by `expand-jump-to-previous-slot' and `expand-jump-to-next-slot'." put expand-c-for-skeleton no-self-insert t] 6)#@547 For loop skeleton.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'expand-c-for-skeleton #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240,\210\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\300\242\203	 \302\301!\207\303\301!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new ("Loop var: " "for(" str _ @ "=0; " str @ "; " str @ ") {" n @ _ n "}" > n) t] 11 (#$ . 860) "*P\nP"])#@51 Expansions for C mode.  See `expand-add-abbrevs'.
(defconst expand-c-sample-expand-list '(("if" "if () {\n \n} else {\n \n}" (5 10 21)) ("ifn" "if () {}" (5 8)) ("uns" "unsigned ") ("for" expand-c-for-skeleton) ("switch" "switch () {\n\n}" (9 13)) ("case" "case :\n\nbreak;\n" (6 8 16)) ("do" "do {\n\n} while ();" (6 16)) ("while" "while () {\n\n}" (8 12)) ("default" "default:\n\nbreak;" 10) ("main" "int\nmain(int argc, char * argv[])\n{\n\n}\n" 37)) (#$ . 1883))#@54 Expansions for Lisp mode.  See `expand-add-abbrevs'.
(defconst expand-sample-lisp-mode-expand-list (byte-code "\300\301\302\303\304\305\306\307\257E\310\311\303\312\313\314\315\257E\316\317\303\320\321\322FE\323\324\325\326\305\327FE\330\331\303\320\332EE\333\334\335\303\321EE\336\337\302\320DE\340\341\321CE\342\343\325\312DE\257	\207" ["defu" "(defun   ()\n  \"\"\n  (interactive)\n  (let* (\n         )\n    \n    ))" 8 11 16 32 43 59 "defs" "(defsubst   ()\n  \"\"\n  (interactive)\n  )" 14 19 23 39 "defm" "(defmacro  ()\n  \"\"\n  `( \n    ))" 13 18 25 "defa" "(defadvice   (around   act)\n  \"\"\n  \n  )" 12 22 36 "defc" "(defconst   nil\n  \"\")\n" 20 "defv" "(defvar   nil\n  \"\")\n" 9 "let" "(let* (\n)\n    " "sav" "(save-excursion\n \n)" "aut" "(autoload ' \"\" t t)\n"] 12) (#$ . 2355))#@54 Expansions for Perl mode.  See `expand-add-abbrevs'.
(defconst expand-sample-perl-mode-expand-list (byte-code "\300\301\302\303\304\"\305Q\306\307\310\311\312\313\257E\314\315\316\317DE\320\321\322\323DE\324\325\326\317DE\327\330\322CE\331\332\326CE\333\334\326\335\336EE\337\340\316E\341\342\322CE\343\344\316CE\345\346\316E\347\350\335E\351\352\335\353DE\354\355\316\322DE\356\357\316\353DE\360\361\335CE\257\207" ["sub" "#" make-string 70 45 "\nsub   {\n    # DESCRIPTION\n    #   \n    #   \n    # INPUT\n    #   \n    #   \n    # RETURN\n    #   \n\n    local( $f ) = \"$lib.\";\n    local() = @_;\n    \n    \n}\n" 77 88 120 146 159 176 "for" "for (  )\n{\n\n}" 7 12 "whi" "while (  )\n{\n\n}" 9 15 "iff" "if (  )\n{\n\n}" 6 "loc" "local( $ );" "my" "my( $ );" "ope" "open(,\"\")	|| die \"$f: Can't open [$]\";" 8 36 "clo" "close ;" "def" "defined  " "und" "undef ;" "pr" "print " "pf" "printf " "gre" "grep( //, );" 11 "pus" "push( , );" "joi" "join( '', );" "rtu" "return ;"] 18) (#$ . 3165))#@851 Add a list of abbreviations to abbrev table TABLE.
ABBREVS is a list of abbrev definitions; each abbrev description entry
has the form (ABBREV EXPANSION ARG).

ABBREV is the abbreviation to replace.

EXPANSION is the replacement string or a function which will make the
expansion.  For example, you could use the DMacros or skeleton packages
to generate such functions.

ARG is an optional argument which can be a number or a list of
numbers.  If ARG is a number, point is placed ARG chars from the
beginning of the expanded text.

If ARG is a list of numbers, point is placed according to the first
member of the list, but you can visit the other specified positions
cyclically with the functions `expand-jump-to-previous-slot' and
`expand-jump-to-next-slot'.

If ARG is omitted, point is placed at the end of the expanded text.

(fn TABLE ABBREVS)
(defalias 'expand-add-abbrevs #[514 "\211\204 \207\300@@@A@\301@8$\210\302A\"\207" [expand-add-abbrev 2 expand-add-abbrevs] 8 (#$ . 4174)])#@48 Temporary variable used by the Expand package.
(defvar expand-list nil (#$ . 5177))#@81 If non-nil, store a vector with position markers defined by the last expansion.
(defvar expand-pos nil (#$ . 5266))
(make-variable-buffer-local 'expand-pos)#@48 Index of the last marker used in `expand-pos'.
(defvar expand-index 0 (#$ . 5428))
(make-variable-buffer-local 'expand-index)#@29 End of the expanded region.
(defvar expand-point nil (#$ . 5559))
(make-variable-buffer-local 'expand-point)#@112 Add one abbreviation and provide the hook to move to the specified positions.

(fn TABLE ABBREV EXPANSION ARG)
(defalias 'expand-add-abbrev #[1028 "9\205 \300!?\205 \203+ \211\203+ <\203# G@SZ\202, GSZ\202, \301\302\303<\205G ??\205G G	B\n9\205V \300!\205V \n$\304$\207" [fboundp 0 define-abbrev vector expand-abbrev-hook] 15 (#$ . 5674)])
(put 'expand-abbrev-hook 'no-self-insert t)#@128 Abbrev hook used to do the expansion job of expand abbrevs.
See `expand-add-abbrevs'.  Value is non-nil if expansion was done.
(defalias 'expand-abbrev-hook #[0 "l\205D \304 ?\205D `\305hz\306=\205B \307 \205B \2030 \310	!\203' \311!\210\312\305#\210\202= 	<\203= \313\314	!\305\315\316!\210\317\262\207" [expand-point expand-list expand-index expand-pos expand-in-literal nil 119 expand-do-expansion vectorp expand-build-marks indent-region 0 expand-list-to-markers run-hooks expand-expand-hook t] 5 (#$ . 6092)])
(defalias 'expand-do-expansion #[0 "\303G[!\210	J\211\304H\305H\306H\307H\203 c\210`\203( \310@A\"\210\2034 \2061 \305[u\210\211\203; \211 \210\311\207" [last-abbrev-text last-abbrev expand-point delete-char 0 1 2 3 expand-build-list t] 8])#@42 Test if an abbrev has a hook.

(fn WORD)
(defalias 'expand-abbrev-from-expand #[257 "\302\"\203 \302\"K\206 \302	\"\205 \302	\"K\207" [local-abbrev-table global-abbrev-table intern-soft] 4 (#$ . 6875)])#@27 Return the previous word.
(defalias 'expand-previous-word #[0 "\212`\300v\210\211`{)\207" [-1] 3 (#$ . 7092)])#@128 Move the cursor to the previous slot in the last abbrev expansion.
This is used only in conjunction with `expand-add-abbrevs'.
(defalias 'expand-jump-to-previous-slot #[0 "\205 	S\211\302W\203 GS	Hb\210\303\304!\207" [expand-pos expand-index 0 run-hooks expand-jump-hook] 3 (#$ . 7209) nil])#@124 Move the cursor to the next slot in the last abbrev expansion.
This is used only in conjunction with `expand-add-abbrevs'.
(defalias 'expand-jump-to-next-slot #[0 "\205 	T\211GY\203 \302	Hb\210\303\304!\207" [expand-pos expand-index 0 run-hooks expand-jump-hook] 3 (#$ . 7514) nil])#@76 Build a vector of offset positions from the list of positions.

(fn LEN L)
(defalias 'expand-build-list #[514 "\301 \210\302!\303GW\205! HSZI\210T\262\202\n \207" [expand-list expand-clear-markers vconcat 0] 9 (#$ . 7809)])#@60 Transform the offsets vector into a marker vector.

(fn P)
(defalias 'expand-build-marks #[257 "\205+ \303\304G\305\"GS\211\303Y\203' \n\306HZ!I\210\211S\262\202 \210\305\211\207" [expand-list expand-index expand-pos 0 make-vector nil copy-marker] 8 (#$ . 8050)])#@33 Make the markers point nowhere.
(defalias 'expand-clear-markers #[0 "\205 GS\211\301Y\203 H\302\211\223\210\211S\262\202 \210\302\211\207" [expand-pos 0 nil] 4 (#$ . 8331)])#@45 Test if we are in a comment or in a string.
(defalias 'expand-in-literal #[0 "\212\212\300 \210`)\301`\"\3028\203 \303\202  \3048\203 \305\202  \306\266\202)\207" [beginning-of-defun parse-partial-sexp 3 string 4 comment nil] 4 (#$ . 8519)])#@90 Transform a list of markers in reverse order into a vector in the correct order.

(fn L)
(defalias 'expand-list-to-markers #[257 "\211GS\211\300T\301\"\302Y\2030 \211\303@!\203 @\202# \304@!I\210A\262S\262\202	 \207" [make-vector nil 0 markerp copy-marker] 8 (#$ . 8771)])
(defalias 'expand-skeleton-end-hook #[0 "\205 \211\207" [skeleton-positions expand-list] 2])
(byte-code "\300\301\302\"\210\303\304!\210\305\306!\207" [add-hook skeleton-end-hook expand-skeleton-end-hook provide expand run-hooks expand-load-hook] 3)
