;ELC   
;;; compiled by nocturne@bill-the-cat on Tue Apr 23 09:02:42 1996
;;; from file /mit/nocturne/home/lib/elisp/hl319.el
;;; emacs version 19.25.92.1.
;;; bytecomp version FSF 2.10
;;; optimization is on.
;;; this file uses opcodes which do not exist in Emacs 18.

(if (and (boundp 'emacs-version)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19")))
    (error "`/mit/nocturne/home/lib/elisp/hl319.el' was compiled for Emacs 19"))

(defvar hilit-quietly nil "\
* If non-nil, this inhibits progress indicators during highlighting")
(defvar hilit-auto-highlight t "\
* T if we should highlight all buffers as we find 'em, nil to disable
  automatic highlighting by the find-file hook.")
(defvar hilit-auto-highlight-maxout 60000 "\
* auto-highlight is disabled in buffers larger than this")
(defvar hilit-auto-rehighlight t "\
* If this is non-nil, then hilit-redraw and hilit-recenter will also
  rehighlight part or all of the current buffer.  T will rehighlight the
  whole buffer, a NUMBER will rehighlight that many lines before and after
  the cursor, and the symbol 'visible' will rehighlight only the visible
  portion of the current buffer.  This variable is buffer-local.")
(make-variable-buffer-local (quote hilit-auto-rehighlight))
(defvar hilit-auto-rehighlight-fallback (quote (20000 . defun)) "\
* Cons of the form (THRESHOLD . FALLBACK), where FALLBACK is assigned to
  hilit-auto-rehighlight if the size of a newly opened buffer is larger than
  THRESHOLD.")
(defvar hilit-face-check t "\
* T slows down highlighting but permits the user to change fonts without
  losing bold and italic faces...  T causes hilit-lookup-face-create to dig
  through the frame parameters for the current window every time it's called.
  If you never change fonts in emacs, set this to NIL.")
(defvar hilit-user-face-table nil "\
This is an association list of the user's face preferences for hilit19.
See the variable for hilit-background-mode.  Each entry takes the form:
    (virtual-face light-background-face dark-background-face mono-face)
THIS VARIABLE MUST BE SET BEFORE HILIT19 IS LOADED.")
(defvar hilit-hook-list (quote (yank yank-pop find-file info mail gnus dired)) "\
list of hilit19 hooks to install.  Valid values are:
    yank yank-pop recenter find-file info mail gnus dired")
(defvar hilit-background-mode (quote light) "\
'mono inhibits color, 'dark or 'light indicate the background brightness.")
(defvar hilit-mode-enable-list nil "\
If a list of modes to exclusively enable or specifically disable.
The sense of the list is negated if it begins with the symbol 'not'.
Set this variable before you load hl319.

Ex:  (perl-mode jargon-mode c-mode)	; just perl, C, and jargon modes
     (not text-mode)			; all modes except text mode")
(defvar hilit-new-style-patterns nil "\
* make BIG regexps for \"perfect\" highlighting...except the regex matcher is slooow.")
(defvar hilit-parser-alist nil "\
alist of major-mode values and parsers called by hilit-rehighlight-buffer.

Parsers for a given mode are IGNORED for partial rehighlights...maybe you'd
like to make this more universal?")
(defvar hilit-patterns-alist nil "\
alist of major-mode values and default highlighting patterns

A highlighting pattern is a list of the form (start end face), where
start is a regex, end is a regex (or nil if it's not needed) and face
is the name of an entry in hilit-face-translation-table, the name of a face,
or nil (which disables the pattern).

See the hilit-lookup-face-create documentation for valid face names.")
(defvar hilit-predefined-face-list nil "\
List of faces with which hilit-lookup-face-create will NOT tamper.
This variable is initialized by the function hilit-initialize.")
(defconst hilit-default-face-table (quote ((comment firebrick-italic orange italic) (include purple Plum1 bold-italic) (define ForestGreen-bold green bold) (defun blue-bold cyan-bold bold-italic) (decl RoyalBlue yellow bold) (type DarkGoldenrod Goldenrod-underline nil) (keyword RoyalBlue yellow bold-italic) (label red-bold red-bold underline) (string grey40 moccasin underline) (operator black-bold yellow underline) (fold-open blue/grey green/dimgrey reverse-default) (fold-folded blue/grey-bold-underline green/dimgrey-bold-underline reverse-default-bold) (active-error default/pink-bold black/DeepPink-bold default-underline) (error red-bold yellow bold) (urgent red-bold-italic red-bold bold-italic) (warning blue-italic green italic) (marked purple Plum1 nil) (ignored ForestGreen moccasin nil) (deleted red-bold-italic orange-bold bold-italic) (crossref DarkGoldenrod Goldenrod underline) (directory blue-bold cyan bold) (link firebrick-italic green italic) (socket green yellow italic) (special Navy blue nil) (prompt firebrick red underline) (input blue-bold green-bold bold) (output Navy tan nil) (formula Goldenrod DarkGoldenrod underline) (rule blue-bold-underline cyan-underline default-bold-underline) (struct black-bold white-bold bold) (glob-struct magenta Plum1 default-bold-underline) (named-param DarkGoldenrod Goldenrod underline) (msg-subject blue-bold yellow bold) (msg-from purple-bold green bold) (msg-header firebrick-bold cyan italic) (msg-separator black/tan-bold black/lightblue nil) (msg-quote ForestGreen pink italic) (summary-seen grey40 white nil) (summary-Xed OliveDrab2 green nil) (summary-killed grey50 red nil) (summary-deleted firebrick red italic) (summary-unread RoyalBlue yellow bold) (summary-new blue-bold yellow-bold bold-italic) (summary-current default/skyblue-bold green/dimgrey-bold reverse-default) (gnus-group-unsubscribed grey50 white nil) (gnus-group-empty nil nil nil) (gnus-group-full ForestGreen green italic) (gnus-group-overflowing firebrick red bold-italic) (jargon-entry blue-bold cyan bold) (jargon-xref purple-bold Plum1 italic) (jargon-keyword firebrick-underline yellow underline))) "\
alist of default faces (face . (light-default dark-default mono-default))
For user preferences, set the variable hilit-user-face-table before loading.")
(defvar hilit-face-translation-table nil "\
An association list that maps \"virtual\" faces to real face names.
This is derived from hilit-default-face-table and hilit-user-face-table.

DO NOT MODIFY THIS VARIABLE.  Use hilit-user-face-table, or hilit-translate")
(defalias 'hilit-associate #[(alist key val) "\n! \f \n\fB\n!BL)" [key eval alist oldentry val] 5 "\
creates, or destructively replaces, the pair (key . val) in alist"])
(defalias 'hilit-translate-face #[(from to) "\n#" [hilit-associate hilit-face-translation-table from to] 4 "\
Interactive version of hilit-translate." "SName of face to translate: \nSTranslate to: "])
(defalias 'hilit-translate '(macro . #[(&rest args) "	G¦! !ŉ	8 	@	A@	AADFB +B" [zerop args 2 error "wrong number of args" nil to from cmdl hilit-associate (quote hilit-face-translation-table) quote progn] 4 "\
(hilit-translate FROM TO FROM TO ...): translate each face FROM to the
value of its TO face.  This is like setq for faces.

The function hilit-lookup-face-create will repeatedly translate until no more
translations for the face exist in the translation table.

See the documentation for hilit-lookup-face-create for names of valid faces."]))
(defalias 'hilit-lookup-face-create #[(face &optional force) ") \f\n> \n\" \f\nB\f A *\f!	 !A\f\f>i \f >i \fN\"	\" !	ەO		\" ݔ 	ߔߕOP	ەO	 \f\"	\" ݔ 	ߔߕOP	ەO	  䏈\f\f\f; \f\f#\f\f\f%+\f	\")\f)%+	\"_\f#\f\f\"H*\f\f;T\f\f#\f\f\f%+	\"\f#\f\f\"H*\f\f;\f\f#\f\f\f%+.\f" [t nil visited trec face error "face translation loop: %S" hilit-face-translation-table symbol-name fn selected-frame frame font frame-parameters basefont fgcolor bgcolor hilit-predefined-face-list force face-list hilit-face-check copy-face default scratch-face string-match "^reverse-?" invert-face 0 "^\\(hex-\\)?\\([A-Za-z0-9]+\\)" 1 "#" 2 "bad face name %S" "^/\\(hex-\\)?\\([A-Za-z0-9]+\\)" "default" (byte-code "	\f%+	\f%+\"#" [scratch-face fgcolor nil frame color face internal-set-face-1 foreground 4 bgcolor background 5 copy-face put basefont] 6) ((error (byte-code "!\"ć" [message "couldn't allocate color for '%s'" symbol-name face nil t error] 4))) x-resolve-font-name internal-set-face-1 3 "underline" underline-p underline 7 ".*bold" make-face-bold noerr internal-get-face ".*italic" make-face-italic] 7 "\
Get a FACE, or create it if it doesn't exist.  In order for it to
properly create the face, the following naming convention must be used:
    [reverse-](fgcolor[/bgcolor])[-bold][-italic][-underline]
Example: (hilit-lookup-face-create 'comment-face) might create and return 'red

Each color is either the name of an X color (see .../X11/lib/X11/rgb.txt),
a hexadecimal specification of the form \"hex-[0-9A-Fa-f]+\", or \"default\".

An optional argument, FORCE, will cause the face to be recopied from the
default...which is probably of use only if you've changed fonts.

See the documentation for hilit-translate and hilit-face-translation-table."])
(defalias 'hilit-region-set-face #[(start end face-name &optional prio prop) "	\n\"# #\n\" \n#)" [make-overlay start end overlay overlay-put face face-name prop hilit t prio priority] 4 "\
Highlight region from START to END using FACE and, optionally, PRIO.
The optional 5th arg, PROP is a property to set instead of 'hilit."])
(put (quote hilit-region-set-face) (quote byte-optimizer) (quote byte-compile-inline-expand))
(defalias 'hilit-unhighlight-region #[(start end &optional quietly) "\f 	\f !\fW! \f!\"\f! , 	, !" [quietly hilit-quietly message "Unhighlighting" start end mapcar #[(ovr) "	\"\n 	!" [overlay-get ovr hilit delete-overlay] 3] overlays-at next-overlay-change "Done unhighlighting"] 5 "\
Unhighlights the region from START to END, optionally in a QUIET way" "r"])
(defalias 'hilit-rehighlight-region #[(start end &optional quietly) "~by`)!\"#b`)!\"#\f#\f$)" [start 0 apply min mapcar overlay-start overlays-at end nil max overlay-end hilit-unhighlight-region quietly hilit-highlight-region] 7 "\
Re-highlights the region, optionally in a QUIET way" "r"])
(defalias 'hilit-rehighlight-buffer #[(&optional quietly) "edU 	A \n! ed#)Ň" [major-mode hilit-parser-alist parse-fn quietly hilit-rehighlight-region nil] 5 "\
Re-highlights the buffer, optionally in a QUIET way" ""])
(defalias (quote hilit-rehighlight-buffer-quietly) #[nil "!" [hilit-rehighlight-buffer t] 2])
(defalias 'hilit-rehighlight-message #[(quietly) "eb!Q#ed#e`$`d$)" [re-search-forward "^\\(" regexp-quote mail-header-separator "\\)?$" nil noerr hilit-unhighlight-region quietly hilit-highlight-region msg-header msg-body] 5 "\
Highlight a buffer containing a news article or mail message."])
(byte-code "\"\"" [defalias hilit-rehighlight-message-quietly #[nil "!" [hilit-rehighlight-message t] 2] hilit-highlight-buffer hilit-rehighlight-buffer] 3)
(defalias 'hilit-gnus-message #[(quietly) "eb#ed#e`$!: !6 `d!QEC$)@ `d$)" [re-search-forward "^$" nil noerr hilit-unhighlight-region quietly hilit-highlight-region msg-header featurep gnus-hide gnus-identify-quote-prefix pat "^" regexp-quote ".*$" msg-quote msg-body] 7 "\
Highlight a buffer containing a news article (using gnus-hide if provided)."])
(defalias 'hilit-submit-feedback #[nil "!!( !# !\" !\" \"Ή&" [require reporter y-or-n-p "Do you really want to submit a report on hl319? " reporter-submit-bug-report "Jonathan Stigelman <Stig@netcom.com>" "hl319.el (Exp 1.31)" "Do you need to include a dump hilit19 variables? " append (hilit-quietly hilit-hook-list hilit-background-mode hilit-mode-enable-list hilit-auto-highlight hilit-auto-highlight-maxout hilit-auto-rehighlight hilit-auto-rehighlight-fallback hilit-face-check) "Have you modified the standard patterns? " yes-or-no-p "Are your patterns *REALLY* relevant? " (hilit-parser-alist hilit-patterns-alist hilit-predefined-face-list) nil "\n   Y     Y   OOOO   !!!   This is Mega-Beta Code...(You might call it ALPHA.)  \n    Y  	Y   O	 O  !!!	                                                       \n     Y Y    O	 O  !!!	  DO NOT report pattern-related 'bugs' unless you have \n      Y	    O	 O  !!!   been invited to test it out.  Truly good ideas and   \n      Y	    O	 O  !!!	  well-considered advice, however, are *ENCOURAGED*.   \n      Y	    O	 O        \n      Y	     OOOO   !!!	                                    Thanks...  Stig.\n\n	Please use 'diff -uw oldver newver' for patches.\n"] 7 "\
Submit feedback on hl319 to the author: Stig@netcom.com" nil])
(defalias 'hilit-find-file-hook #[nil "\" 	\n\" \f@V \fAV?\"  !" [hilit-auto-highlight major-mode hilit-patterns-alist buffer-saved-size hilit-auto-rehighlight-fallback hilit-auto-rehighlight hilit-auto-highlight-maxout hilit-rehighlight-buffer set-buffer-modified-p nil] 2 "\
Find-file hook for hilit package.  See the variable hilit-auto-highlight."])
(defalias 'hilit-repaint-command #[(arg) "\f\f \f= \f=#    \f=/ \f=B  `) `) \fY \f[y`)\fy`) \f: \f@=t ? ) \f@=~     \n	#+" [nil quietly en st arg hilit-auto-rehighlight visible 0 window-start window-end t defun - beginning-of-defun end-of-defun 64 hilit-buffer-compiled-patterns hilit-new-style-patterns hilit-rehighlight-buffer 16 hilit-rehighlight-region] 4 "\
Rehighlights according to the value of hilit-auto-rehighlight, or the
prefix argument if that is specified.
	\\[hilit-repaint-command]		repaint according to hilit-auto-rehighlight
	^U \\[hilit-repaint-command]	repaint entire buffer
	^U ^U \\[hilit-repaint-command]	recompile patterns, then repaint buffer
	^U - \\[hilit-repaint-command]	repaint current 'defun' around cursor
	^U 0 \\[hilit-repaint-command]	repaint visible portion of buffer
	^U n \\[hilit-repaint-command]	repaint n lines to either side of point" "P"])
(defalias 'hilit-recenter #[(arg) "	!!	: 	!" [recenter arg sit-for 0 hilit-repaint-command] 2 "\
Recenter, then rehighlight according to hilit-auto-rehighlight.  If called
with an unspecified prefix argument (^U but no number), then a rehighlight of
the entire buffer is forced." "P"])
(defalias 'hilit-yank #[(arg) "!\f   #	)" [nil transient-mark-mode yank arg hilit-auto-rehighlight hilit-rehighlight-region region-beginning region-end t this-command] 4 "\
Yank with rehighlighting" "*P"])
(put (quote hilit-yank) (quote delete-selection) t)
(defalias 'hilit-yank-pop #[(arg) "!\f   #ɉ\n)" [nil transient-mark-mode yank-pop arg hilit-auto-rehighlight hilit-rehighlight-region region-beginning region-end t yank this-command] 4 "\
Yank-pop with rehighlighting" "*p"])
(defalias 'hilit-rehighlight-changed-lines #[(st en len) " \f#*" [match-data match-data ((store-match-data match-data)) hilit-rehighlight-region st en quietly] 4 "\
Quietly rehighlight just this line.
Useful as an after change hook in VM/gnus summary buffers and dired buffers."])
(defalias 'hilit-install-line-hooks #[nil "!L" [make-local-variable after-change-function hilit-rehighlight-changed-lines] 2 "\
Enable on-the-fly highlighting in the current buffer only.
Before-change-hook gets trashed, presently." nil])
(defalias 'hilit-hook-install '(macro . #[(hookname &rest forms) "DBBBD" [cond memq quote hookname (hilit-hook-list) forms] 4 "\
if HOOKNAME is in hilit-hook-list, then execute FORMS."]))
(put (quote hilit-hook-install) (quote lisp-indent-hook) (quote defun))
(defalias 'hilit-respin-translations #[nil " \f 	A !\n\"\"*\f" [x-display-color-p hilit-background-mode ((light . 1) (dark . 2)) 3 copy-alist hilit-user-face-table wide-table index mapcar #[(pp) "@	\f 	B" [pp wide-table] 2] hilit-default-face-table #[(x) "@	8B" [x index] 3] hilit-face-translation-table] 3 "\
build hilit-face-translation-table from hilit-user-face-table and
hilit-default-face-table"])
(defalias 'hilit-initialize #[nil "?? \"\">  #>,  #>:  #>G #>S \">i \"\"\"> \"\"\"\"\"> \"\"$  $ $\"" [window-system global-set-key [2097164] hilit-repaint-command [4194365] yank hilit-hook-list substitute-key-definition hilit-yank current-global-map yank-pop hilit-yank-pop recenter hilit-recenter find-file add-hook find-file-hooks hilit-find-file-hook t info Info-selection-hook hilit-rehighlight-buffer-quietly mail mapcar #[(hook) "	\"" [add-hook hook hilit-rehighlight-buffer-quietly] 3] (vm-preview-message-hook vm-show-message-hook rmail-show-message-hook mail-setup-hook mh-show-mode-hook) vm-summary-mode-hooks hilit-install-line-hooks rmail-summary-mode-hook hilit-rehighlight-message-quietly gnus gnus-article-prepare-hook gnus-summary-prepare-hook gnus-group-prepare-hook dired dired-after-readin-hook hilit-predefined-face-list face-list hilit-respin-translations #[(ff) "	 \fA ! \"*" [ff hilit-face-translation-table nil nface trans hilit-lookup-face-create copy-face] 4]] 4 "\
Install hooks, bind keys, translate faces, someday...precompile patterns"])
(byte-code "\f \"  \"" [noninteractive add-hook after-init-hook hilit-initialize defalias grind-patterns #[(mode buf &optional NN PP) "	A	\n \n% 	!A	q	\"." [mode hilit-patterns-alist nil exp N msecs secs tout tin pp NN 100 hilit-compile-patterns PP buf mapcar #[(xx) "@ \febSY& 	# !eb  \fA@_8ͥ\\\fA@_\f8ͥ\\\fZͥͦ\fdeZ`Z_deZ	&!" [xx exp current-time tin NN N 0 re-search-forward nil t princ " loop" tout 1000 2 secs msecs format "\n %d.%03d secs for %d searches in %s (%d%%) for %S" buf 100] 11]] 7]] 3)
(defalias 'hilit-highlight-region #[(start end &optional patterns quietly) "	!GS	@	\n\f	A}	 	@\f@\fA@\n\fAA\f@:_ \f\fg \f@	   \n \nP $!  eb܏S	A7 *  !.\f" [hilit-get-compiled-patterns patterns nil ff matchno mstart applyme faces region face pend pstart p case-fold-search prio start end quietly hilit-quietly message "highlighting %d: %s%s" " ... " "" featurep profile profile-push-timer cc (byte-code "@: \n$ @@ @A	 	9| b@A\n\n\f\"\f#d #\ns \n#)- 	@	A#@ A@8@\n\n\f\"\f# #\n \n#)-A \n96\n!2@A	\n\n\f\"\f##\n,\n#)- );\n$ؔb$ؕ	\n\n\f\"\f##\n\n#)-<u<!Ç" [p re-search-forward pstart nil t faces ff matchno mstart face prio prop face-name end start make-overlay overlay overlay-put hilit priority apply region 2 pend 0 1 error "Gack! -- I don't know how to make this pattern"] 6) ((error (byte-code "\n\" !" [message "Aack! Barfed on '%s'" pstart ding sit-for 2] 3)))] 13 "\
Highlights the area of the buffer between START and END (the region when
interactive).  Without the optional PATTERNS argument, the pattern for
major-mode is used.  If PATTERNS is a symbol, then the patterns associated
with that symbol are used.  QUIETLY suppresses progress messages if
non-nil." "r"])
(defvar hilit-buffer-compiled-patterns nil "\
buffer-local default highlighting patterns")
(make-variable-buffer-local (quote hilit-buffer-compiled-patterns))
(defalias 'hilit-get-compiled-patterns #[(patterns) " 	\f !	9! \fA !):0 @=0 A!Q 	Q 	!B!BBC\"" [patterns hilit-buffer-compiled-patterns hilit-get-compiled-patterns major-mode hilit-patterns-alist mpats compiled hilit-compile-patterns boundp fold-top-mark "^[ 	]*" :funcall: hilit-fold-mark-fn ((fold-open fold-folded)) regexp-quote ("[^\n]*") fold-bottom-mark (".*")] 10 "\
Return the compiled pattern corresponding to PATTERNS.

PATTERNS may be a list of hl319 patterns, a symbol used to extract a pattern
list from hilit-patterns-alist, or nil.

Nil indicates that the value of hilit-buffer-compiled-patterns should first
be checked, and if that's nil then the pattern should be extracted from
hilit-patterns-alist using the value of major-mode (and then compiled and
cached in hilit-buffer-compiled-patterns)."])
(byte-code "! " [boundp lcp nil] 2)
(defalias 'hilit-compile-patterns #[(pats &optional local-pats) " !É @A\f9& \fB\f \f:3 \f\"\f \f@=o \fA\nK \n\f\"\n\fY \f!B\f \f\f \f@C!B\fA] \f \fAA@!\f@9 \f@\fA@E \f@\fA@; \fA@D  \fA@ BC\"BB)\f @9 B !*" [hilit-quietly message "Compiling patterns" nil pp rv pats error "bad pattern %S" :buildme: local-pats append hilit-new-style-patterns hilit-build-pat hilit-lookup-face-create face (nil) 0 "" lcp] 6 "\
Compiles patterns into a form that's useful to hilit-highlight-region.

If the variable hilit-new-style-patterns is non-nil, then this function
gloms all the patterns in each :buildme: together into ONE BIG REGULAR
EXPRESSION...  This gives more correct highlighting, but it also may have a
tendency to thrash emacs (given the current inefficiency of FSF 19's regular
expression matcher).

Subexpressions whose faces have been mapped to nil are 'optimized' out of
the compiled pattern."])
(byte-code "! ! \"\"" [boundp hilit-build-pat-flist nil hilit-build-pat-num defalias hilit-opt-regexp #[(words) "\" @A@ \nʘ \f\nG	G^WQ \n\fH>Q \n\fH	\fH=Q \fT/ \fU \n\fO\n\fOQT \f@GW \n\fO@\fO \n@\fOQAl \nP\nB #Q-" [nil w2 thisword cwords cchars rwords sort words string-lessp 0 "" (92 91) "\\(" hilit-build-pat-num "\\|" "\\)" mapconcat identity] 6] hilit-build-or #[(argl &optional fn) "\"\n*" ["" jj rv mapcar #[(ss) "	! \f	Qŉ" [hilit-build-pat-elem ss "" rv jj "\\|"] 4] argl] 3]] 3)
(defalias 'hilit-build-pat-subex #[(argl &optional face) " 9 !@ :? A@\n:) \n\"/ \n!; @\fAABB+@ ȉr 	T	=Y 	B\nB\n@=j A\"!!Q҇" [face hilit-lookup-face-create flist nil farg compileme mapcar #[(ff) "	!\n \n)" [hilit-lookup-face-create ff rv t compileme] 3] t hilit-build-pat-num hilit-build-pat-flist argl :opt: hilit-opt-regexp hilit-build-pat-elem "\\(" hilit-build-or "\\)" ""] 5 "\
Part of the hl319 pattern builder -- see hilit-build-pat.

ARGL is a list of expressions to be expanded and assembled thusly:
       \"\\( <arg1> [\\| <argn> ...] \\)\"

FACE, if specified, is either a symbol (in which case it's a virtual face),
or a cons of the form
       (function <face | face-list> [other-args]).

If a face or a parsing function is given, then all specified faces are
translated and if they all translate to nil, then the expressions in ARGL
are not expanded and \"\" is returned.

SIDE EFFECTS: hilit-build-pat-num is incremented,
	      hilit-build-pat-flist is prepended with (subexno . FACE)"])
(byte-code "\"\"\"\"\"\fˇ" [defalias hilit-build-pat-con #[(arg) "\f\"\"" [apply concat mapcar hilit-build-pat-elem arg] 5] hilit-var-expand #[(ll) "3 @A	\n9, \n!, \nJ<' \n. \nC. \nC\" 	*" [nil rv e ll append boundp] 5] hilit-count-subexps #[(str) "\f	# T	T )\f" [0 pos string-match "\\\\(" str hilit-build-pat-num] 4] hilit-build-pat-elem #[(e) "9 ! J; != ć=' Ƈ=/ ȇ: !@=I \"A!@=Z \"A!@=f A!@=q !@=} A!@= GV \"@= GV A@9 \"A@8B\"@= G= \"A!@9 A@\"!\"!" [e boundp hilit-count-subexps * "*" + "+" 63 "?" hilit-var-expand and error "defunct %S" hilit-build-pat-con or hilit-build-pat-subex :or: :opt: :and: :label: 3 ":label: malformed %S" :funcall: ":funcall: malformed %S" 2 :pair: 4 ":pair: malformed %S" format "hilit-build-pat-expr barfed on: %S"] 6] hilit-build-pat #[(elist &optional masterface) "\n\n \nBC!D)" [0 hilit-build-pat-num masterface hilit-build-pat-flist hilit-build-or elist str nil] 3] nil hilit-patterns-alist] 3)
(defalias 'hilit-set-mode-patterns #[(modelist patterns &optional parse-fn case-fold) "	B\n:\f \nC\f@=\n\"*" [case-fold patterns modelist nil hilit-mode-enable-list not flip ok mapcar #[(m) "? 	> \n?\n$ \f 	\f#	#" [hilit-mode-enable-list m ok flip parse-fn hilit-associate hilit-parser-alist hilit-patterns-alist patterns] 4]] 3 "\
Sets the default highlighting patterns for MODE to PATTERNS.
See the variables hilit-patterns-alist, hilit-parser-alist, and
hilit-mode-enable-list.

Takes optional arguments PARSE-FN and CASE-FOLD."])
(defalias 'hilit-string-find #[(qchar) "# ǔSf= #8 `uxu	`Z˦U) 	? \n	B*" [nil en st search-forward "\"" t qchar 0 -1 "\\\\" 1 2] 4 "\
looks for a string and returns (start . end) or NIL.  The argument QCHAR
is the character that would precede a character constant double quote.
Finds strings delimited by double quotes.  The first double quote may not be
preceded by QCHAR and the closing double quote may not be preceded by an odd
number of backslashes."])
(defalias 'hilit-fold-mark-fn #[(matchno faces) "b`gym y	=\" A@% @\nE+" [matchno nchar en st 1 0 13 faces] 3 "\
Hl319 parse function for folding-mode fold marks.

MATCHNO is the number of subexpression that was used to match the fold-mark
to be highlighted.

FACES is a list of the form (open-face folded-face)."])
(defalias 'hilit-string-find-fn #[(matchno face) "u`ď)" [-1 st nil (byte-code "h=	 u\n!`E" [92 1 face st forward-sexp] 4) ((error (forward-char 1)))] 3 "\
start pattern must be [^QCHAR]\"."])
(defvar hilit-local-ctypes nil "\
set this to a list of regular expressions that match the typedefs that
you commonly use in your C/C++ sourcefiles.
	Ex: '(\"\\\\w+_[Tt]\") is one pattern that's quite useful... but it's slow.")
(byte-code "\n\f\"BBBD\fB\nBFC\"BBBBBDDBBBBB\"BC#\"\"RBC\"BBBBBD\"BBBD\fB\nBFC\"BBBBBDDBBBB\"BC#\".\n\"\"@ A B CDEFGHԁI ׁJ K L M N DBCFDN GBO BBBDP N FBQ BBBDR N EBS BBBDDT N HBBU BBC\"V DBDW GGX FFY HHԁZ [ \\ ] ׁM N DBCFDN GB^ BBBDP N FB_ BBBDR N EB` BBBDEa N HBBb BBBED\".ׁc d e fg BBDh BBBBCij kik\"lԁm i\"ԁn k\"ԁo kp #ԁq lr #+ԁs t \"ԁu v \"ԁw x \"ԁy z { | $ԁ} ~ \"ԁ  \"ԁ ׁ    う   \"BB BBD BBBBC\"ԁ  \"ԁ  \"ԁ  \"ԁ  { | $ԁ  { | $ԁ  \"ԁ  \"ԁ  \"ԁ  \"ԁ  \"ԁ  { | $ԁ  \"ԁ  { | $ԁ  \"  !  !" [(("/\\* \\(FIXME\\|fixme\\)" "\\*/" urgent) ("/\\*" "\\*/" comment)) ((hilit-string-find 39 string)) "\\<[A-Za-z0-9_$]+\\>" ((define ("^#[ 	]*" (:or: "undef" "define\\(.*\\\\\n\\)*") ".*")) (include "^#[ 	]*[^ud].*")) ("typedef") ("struct" "union" "enum") ("return" "goto" "if" "else" "case" "default" "switch" "break" "continue" "while" "do" "for") ("const" "register" "volatile" "unsigned" "extern" "static") ((:and: "operator[ 	]*" (:opt: "[+-*/%^&|~!=<>,]=?" "new" "delete" "()" "\\[\\]" "<<" ">>" "<<=" ">>=" "&&" "||" "\\+\\+" "--" "->" "->\\*"))) ("float" "double" "void" "char" "short" "unsigned" "int" "long" "FILE" hilit-local-ctypes) c-types c++-opname c-typemods c-keywords c-complextypes c-declwords c-preprocessor-exps c-identifier c-strings c-comments hilit-set-mode-patterns (c-mode c++-c-mode elec-c-mode) append :buildme: ("^[ 	]*" (label "[a-zA-Z0-9_]+:")) (defun ("^[A-Za-z0-9_$][A-Za-z0-9_$ 	\n*]+([^)]*)+")) decl "^" :opt: (".*$") "[ 	\n({,]" type "\\(" "\\s +\\)*" :and: :or: "[ 	]+" ("[* 	]+") "\\S_\\<" keyword ("\\>\\S_") (("[/\n]/.*$" nil comment)) ("delete" "new" "public" "protected" "private") "\\(::~?" "\\)?" "class" ("template" "public" "private" "protected") c++-mode ("^[ 	]*" (label "[a-zA-Z0-9_]+:")) defun "^\\(" "[* 	]+\\)*" ("[ 	]*" "([^)]*)+") (".*$") "[ \n	({,]" ("[*& 	]+") ("\\>\\S_") perl-mode ((:buildme: (comment "[ 	]#.*$") (string "\"\\([^\\\"]\\|\\\\\\(.\\|\n\\)\\)*\"" "'[^']*'") (define ("^#[ 	]*" (:or: "undef" "define\\(.*\\\\\n\\)*") ".*")) (keyword "&\\(\\w\\|\\s_\\)+" ("\\b" (:opt: "do" "if" "unless" "while" "until" "else" "elsif" "for" "foreach" "continue" "next" "redo" "last" "goto" "return" "die" "exit") "\\b")) ("^" (:or: (include "require.*$" "#[ 	]*include.*") (comment ";?#.*$") (label "\\(__....?__\\|\\s *\\w+:\\)") (decl "package.*$") (defun "\\s *sub\\s +\\(\\w\\|[_']\\)+"))))) ml-mode (("(\\*" "\\*)" comment) (hilit-string-find 92 string) ("\\([ \n	();]\\|\\`\\)\\(abstype\\|and\\|andalso\\|as\\|case\\|datatype\\|do\\|else\\|end\\|eqtype\\|exception\\|fn\\|fun\\|functor\\|handle\\|if\\|in\\|include\\|infix\\|infixr\\|let\\|local\\|nonfix\\|of\\|op\\|open\\|orelse\\|raise\\|rec\\|sharing\\|sig\\|signature\\|struct\\|structure\\|then\\|type\\|val\\|while\\|with\\|withtype\\)\\([ \n	();]\\|\\'\\)" 2 struct) ("\\(=>\\|->\\||\\)" nil struct)) ("let\\*?" "cond" "if" "or" "and" "mapcar" "mapconcat" "prog[n12]" "while" "lambda" "function" "set" "setq" "fset" "setcar" "setcdr" "nconc" "nreverse" "condition-case" "unwind-protect" "catch" "throw" "error") ("defvar") ("defconst") ("load" "autoload" "require" "provide" "eval-when-compile" "eval-when-load") ("defun" "defmacro" "defsubst" "defalias" "defadvice") (:and: "\\s +\\S +\\s +" (:or: "nil" "([^()]*)")) elisp-defun-args elisp-defuns elisp-includes elisp-consts elisp-decls elisp-keywords (emacs-lisp-mode lisp-interaction-mode) (urgent ";+[ 	]*\\(FIXME\\|fixme\\).*") (comment ";.*$") (:funcall: hilit-string-find-fn (string) "\"") "^\\s *" "(" ("\\s +\\S +") define ("\\s +\\S +") include (".*)") ("\\s " (keyword :opt: "&rest" "&optional") "\\s ") ("[ 	\n]") "method" ("deftype" "defparameter" "declare") ("defconstant" "defclass" "defstruct") ("locally" "if*" "mapcon" "mapcan" "prog[*v]" "when" "unless" "do\\*" "dolist" "dotimes" "values" "setf" "rplac[ad]" "block" "go" "return" "return-from" "multiple-value-\\(bind\\|setq\\|list\\|call\\|prog1\\)" "[ec]?\\(type\\)?case" "handler-case" "eval-when") (lisp-mode ilisp-mode) (";.*" nil comment) ("#|" "|#" comment) (hilit-string-find 92 string) ("\\s +\\S +") ("\\s +\\S +") (".*)") (:and: "\\s " (keyword :opt: "&key" "&aux" "&rest" "&optional") "\\s ") ("[ 	\n]") (msg-subject "^Subject:.*") (msg-from "^From:.*") msg-separator mail-header-separator ("$") ((msg-header "^[A-Za-z][A-Za-z0-9-]+:")) header-patterns (("^\\(In article\\|[ 	]*\\w*[]<>}|]\\).*$" nil msg-quote)) body-patterns message-patterns msg-header msg-body gnus-article-mode hilit-gnus-message (vm-mode text-mode mail-mode rmail-mode news-reply-mode mh-show-mode) hilit-rehighlight-message gnus-group-mode ((:buildme: (gnus-group-unsubscribed "^U.*$") (gnus-group-empty "^ +[01]?[0-9]:.*$") (gnus-group-full "^ +[2-9][0-9]:.*$") (gnus-group-overflowing "^ +[0-9][0-9][0-9]+:.*$"))) gnus-summary-mode ((:buildme: (summary-current "^. +[0-9]+:\\+\\[.*$") (summary-seen "^D +[0-9]+: \\[.*$") (summary-killed "^K +[0-9]+: \\[.*$") (summary-Xed "^X +[0-9]+: \\[.*$") (summary-unread "^- +[0-9]+: \\[.*$") (summary-new "^  +[0-9]+: \\[.*$"))) vm-summary-mode ((:buildme: (summary-current "^->.*$") (summary-seen "^\\(   ?[0-9]+\\)?   .*$") (summary-deleted "^\\(   ?[0-9]+\\)?  D.*$") (summary-unread "^\\(   ?[0-9]+\\)?  U.*$") (summary-new "^\\(   ?[0-9]+\\)?  N.*$"))) rmail-summary-mode (("[0-9]*-\\(JAN\\|FEB\\|MAR\\|APR\\|MAY\\|JUN\\|JUL\\|AUG\\|SEP\\|OCT\\|NOV\\|DEC\\)" nil decl) ("^ *[0-9]+[A-Z]+" nil summary-current) ("{" "}" define) ("to:" nil defun) (" [^ ]*@[^ ]* " nil type) ("\\[" "\\]" include) ("re: .*$" nil include)) nil case-insensitive compilation-mode (("^[-_./\"A-Za-z0-9]+\\(:\\|, line \\)[0-9]+:.*$" nil error) ("^[-_./\"A-Za-z0-9]+\\(:\\|, line \\)[0-9]+: warning:.*$" nil warning)) makefile-mode ((:buildme: (comment "#.*") (include "^include .*") (rule (:and: "^[^ 	\n]*%[^ 	\n]*[ 	]*" "::?" "[ 	]*[^ 	\n]*" "[ 	]*\\(#.*\\)?")) (rule "^[.][A-Za-z][A-Za-z]?..*") (define "^[_A-Za-z0-9]+[ 	]*+?=") (defun "^[A-Za-z0-9.,/_-]+[ 	]*:.*") (keyword "$\\([^ 	\n{(]\\|[{(]@?[_A-Za-z0-9:.,%/=]+[)}]\\)") (define "\\( \\|:=\\)[_A-Za-z0-9]+[ 	]*\\+="))) dired-mode (deleted "^D.*") (marked "^\\*.*") ignored "^  .*\\(" "#.*#" mapcar regexp-quote completion-ignored-extensions ("\\)$") ((include "^  d.*") (crossref "^  l.*$") (socket "^  [sp].*") (special "^  [cb].*") (urgent "^  .\\(..[sS]\\|.....[sS]\\).*") (defun "^  -\\(..x\\|.....x\\|........x\\).*")) jargon-mode (("^:[^:]*:" nil jargon-entry) ("{[^}]*}+" nil jargon-xref)) Info-mode ((:buildme: (jargon-entry "^\\* [^:]+:+") (jargon-xref "\\*[Nn]ote\\b[^:]+:+") (jargon-xref "  \\(Next\\|Prev\\|Up\\):") (jargon-keyword "^[ 	]*[*][A-Za-z][^*]+[*]" (:and: "- " (:or: "Variable" "Function" "Macro" "Command" "Special Form" "User Option") ":.*$")))) ada-mode (("--.*$" nil comment) ("[ 	\n]procedure[ 	]" "\\([ 	]\\(is\\|renames\\)\\|);\\)" glob-struct) ("[ 	\n]task[ 	]" "[ 	]is" glob-struct) ("[ 	\n]function[ 	]" "return[ 	]+[A-Za-z_0-9]+[ 	]*\\(is\\|;\\|renames\\)" glob-struct) ("[ 	\n]package[ 	]" "[ 	]\\(is\\|renames\\)" glob-struct) ("^[ 	]*private[ 	\n]" nil glob-struct) ("^end.*$" ";" glob-struct) ("[ \n	]\\(in\\|out\\|select\\|if\\|else\\|case\\|when\\|and\\|or\\|not\\|accept\\|loop\\|do\\|then\\|elsif\\|else\\|for\\|while\\|exit\\)[ \n	;]" nil struct) ("[ \n	]\\(begin\\|end\\|declare\\|exception\\|generic\\|raise\\|return\\|package\\|body\\)[ \n	;]" nil struct) ("^[ 	]*\\(type\\|subtype\\).*$" ";" decl) ("[ 	]+is record.*$" "end record;" decl) ("^[ 	]*\\(with\\|pragma\\|use\\)" ";" include) ("[A-Za-z_0-9.]+[ 	]*=>" nil named-param) ("\"" ".*\"" string)) fortran-mode ((:buildme: (comment "^[*c].*$" "! [^\n]*") (string "'[^'\n]*'") ("^[ 	]+" (defun "program" "subroutine" "function" "entry" "block[ 	]*data") "\\>") ("^[ 	]+" (keyword "end\\([ 	]*\\(if\\|do\\)\\)?" "else") "\\>") ("^[ 	]+" (type "implicit[ 	]*none" "dimension" (:and: "\\(implicit[ 	]+\\)?" (:or: "real" "integer" "character" "logical" "complex" (:and: "double[ 	]*" (:opt: "precision" "complex"))) "\\(\\*[0-9]+\\)?"))) ("^[ 	]+" (include "include[ 	]*'[^'\n]+'")) ("^[ 	]+" (label "[0-9]+")) ("^     " (label "[^ 	\n]")) ("^[ 	]+" (decl "external" "intrinsic" "equivalence" "data" "save" "common[ 	]*/[^/]*/" "parameter[ 	]*([^)]*)")) (operator (:and: "\\." (:opt: "true" "false" "or" "and" "not" "eq" "ne" "gt" "lt" "ge" "le") "\\.")) ("\\<" (keyword "else[ 	]*if" "go[ 	]*to[ 	]+[0-9]+" "do\\([ 	]*\\(while\\|[0-9]+\\)\\)?" (:opt: "if" "call" "return" "stop" "continue" "then" "format" "read" "write" "print" "open" "close" "rewind")) "\\>"))) (m2-mode modula-2-mode) (("(\\*" "\\*)" comment) (hilit-string-find 92 string) ("^[ 	]*PROCEDURE[ 	]+\\w+[^ 	(;]*" nil defun) ("\\<\\(RECORD\\|ARRAY\\|OF\\|POINTER\\|TO\\|BEGIN\\|END\\|FOR\\|IF\\|THEN\\|ELSE\\|ELSIF\\|CASE\\|WHILE\\|DO\\|MODULE\\|FROM\\|RETURN\\|IMPORT\\|EXPORT\\|VAR\\|LOOP\\|UNTIL\\|\\DEFINITION\\|IMPLEMENTATION\\|AND\\|OR\\|NOT\\|CONST\\|TYPE\\|QUALIFIED\\)\\>" nil keyword)) prolog-mode (("/\\*" "\\*/" comment) ("%.*$" nil comment) (":-" nil defun) ("!" nil label) ("\"[^\\\"]*\\(\\\\\\(.\\|\n\\)[^\\\"]*\\)*\"" nil string) ("\\b\\(is\\|mod\\)\\b" nil keyword) ("\\(->\\|-->\\|;\\|==\\|\\\\==\\|=<\\|>=\\|<\\|>\\|=\\|\\\\=\\|=:=\\|=\\.\\.\\|\\\\\\+\\)" nil decl) ("\\(\\[\\||\\|\\]\\)" nil include)) (LaTeX-mode japanese-LaTeX-mode SliTeX-mode japanese-SliTeX-mode FoilTeX-mode latex-mode) (("[^\\]%.*$" nil comment) ("\\\\\\(sub\\)*\\(paragraph\\|section\\)\\(*\\|\\[.*\\]\\)?{" "}" keyword) ("\\\\\\(chapter\\|part\\)\\(*\\|\\[.*\\]\\)?{" "}" keyword) ("\\\\footnote\\(mark\\|text\\)?{" "}" keyword) ("\\\\[a-z]+box" nil keyword) ("\\\\\\(v\\|h\\)space\\(*\\)?{" "}" keyword) ("\\\\\\(re\\)?new\\(environment\\|command\\){" "}" defun) ("\\\\new\\(length\\|theorem\\|counter\\){" "}" defun) ("\\\\\\(setlength\\|settowidth\\|addtolength\\|setcounter\\|addtocounter\\)" nil define) ("\\\\\\(\\|title\\|author\\|date\\|thanks\\){" "}" define) ("\\\\documentstyle\\(\\[.*\\]\\)?{" "}" decl) ("\\\\\\(begin\\|end\\|nofiles\\|includeonly\\){" "}" decl) ("\\\\\\(raggedright\\|makeindex\\|makeglossary\\|maketitle\\)\\b" nil decl) ("\\\\\\(pagestyle\\|thispagestyle\\|pagenumbering\\){" "}" decl) ("\\\\\\(normalsize\\|small\\|footnotesize\\|scriptsize\\|tiny\\|large\\|Large\\|LARGE\\|huge\\|Huge\\)\\b" nil decl) ("\\\\\\(appendix\\|tableofcontents\\|listoffigures\\|listoftables\\)\\b" nil decl) ("\\\\\\(bf\\|em\\|it\\|rm\\|sf\\|sl\\|ss\\|tt\\)\\b" nil decl) ("\\\\item\\(\\[[^]]*\\]\\)?" nil label) ("\\\\caption\\(\\[[^]]*\\]\\)?{" "}" label) ("\\\\(" "\\\\)" formula) ("\\\\\\[" "\\\\\\]" formula) ("[^$\\]\\($\\($[^$]*[^\\]\\$\\|[^$]*[^\\]\\)\\$\\)" 1 formula) ("\\\\\\(include\\|input\\|bibliography\\){" "}" include) ("``" "''" string) ("\\\\\\(\\(no\\)?cite\\|\\(page\\)?ref\\|label\\|index\\|glossary\\)\\*?{" "}" crossref)) bibtex-mode (("%.*$" nil comment) ("@[a-zA-Z]+" nil keyword) ("{[ 	]*[-a-z:_A-Z0-9]+," nil label) ("[ 	]*[a-zA-Z]+[ 	]*=" nil define)) (plain-tex-mode plain-TeX-mode) (("^%%.*$" nil comment) ("{\\\\em\\([^}]+\\)}" nil comment) ("\\\\\\w+" nil keyword) ("{\\\\bf[^}]+}" nil keyword) ("^[ 	\n]*\\\\def[\\\\@]\\w+" nil defun) ("\\\\\\(begin\\|end\\){[A-Za-z0-9*]+}" nil defun) ("[^$\\]\\($\\($[^$]*[^\\]\\$\\|[^$]*[^\\]\\)\\$\\)" 1 formula)) texinfo-mode (("^\\(@c\\|@comment\\)\\>.*$" nil comment) ("@\\(emph\\|strong\\|b\\|i\\){[^}]+}" nil comment) ("[^\\]\\(\\$[^$]*\\$\\)" 1 string) ("@\\(file\\|kbd\\|key\\){[^}]+}" nil string) ("^\\*.*$" nil defun) ("@\\(if\\w+\\|format\\|item\\)\\b.*$" nil defun) ("@end +[A-Za-z0-9]+[ 	]*$" nil defun) ("@\\(samp\\|code\\|var\\){[^}]+}" nil defun) ("@\\w+\\({[^}]+}\\)?" nil keyword)) nroff-mode (("^\\.[\\][\\\"].*$" nil comment) ("^\\.so .*$" nil include) ("^\\.[ST]H.*$" nil defun) ("\"" "[^\\]\"" string) ("^\\.[A-Za-z12\\\\].*$" nil define) ("\\([\\][^ ]*\\)" nil keyword) ("^\\.[a-zA-Z].*$" nil keyword)) calendar-mode (("[A-Z][a-z]+ [0-9]+" nil define) ("S  M Tu  W Th  F  S" nil label) ("[0-9]+\\*" nil defun) ("[0-9]+\\+" nil comment)) pascal-mode (("(\\*" "\\*)" comment) ("{" "}" comment) ("^#.*$" nil include) ("^[ 	]*\\(procedure\\|function\\)[ 	]+\\w+[^ 	(;]*" nil defun) ("\\<\\(program\\|begin\\|end\\)\\>" nil defun) ("\\<\\(external\\|forward\\)\\>" nil include) ("\\<\\(label\\|const\\|type\\|var\\)\\>" nil define) ("\\<\\(record\\|array\\|file\\)\\>" nil type) (:buildme: ("\\S_\\<" (keyword "of" "to" "for" "if" "then" "else" "case" "while" "do" "until" "and" "or" "not" "with" "repeat") "\\>\\S_"))) icon-mode (("#.*$" nil comment) ("\"[^\\\"]*\\(\\\\.[^\\\"]*\\)*\"" nil string) ("^[ 	]*procedure[ 	]+\\w+[ 	]*(" ")" defun) ("^[ 	]*record.*(" ")" include) ("^[ 	]*\\(global\\|link\\)[ 	\n]+[A-Za-z_0-9]+\\([ 	\n]*,[ 	\n]*[A-Za-z_0-9]+\\)*" nil include) ("^[ 	]*\\(local\\|static\\)[ 	\n]+[A-Za-z_0-9]+\\([ 	\n]*,[ 	\n]*[A-Za-z_0-9]+\\)*" nil decl) ("\\<\\(initial\\|end\\)\\>" nil glob-struct) ("\\<\\(while\\|until\\|return\\|every\\|if\\|then\\|else\\|to\\|case\\|of\\|suspend\\|create\\|do\\|repeat\\|break\\)\\>" nil keyword)) provide hilit19 hl319] 23)
