MMCT TEAM
Server IP : 111.118.215.189  /  Your IP : 18.117.158.174
Web Server : Apache
System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
User : a1673wkz ( 2475)
PHP Version : 8.2.25
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /usr/share/emacs/24.3/lisp/textmodes/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //usr/share/emacs/24.3/lisp/textmodes/rst.elc
;ELC
;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:11:50 2024
;;; from file /builddir/build/BUILD/emacs-24.3/lisp/textmodes/rst.el
;;; in Emacs version 24.3.1
;;; with all optimizations.

;;; This file contains utf-8 non-ASCII characters,
;;; and so cannot be loaded into Emacs 22 or earlier.
(and (boundp 'emacs-version)
     (< (aref emacs-version (1- (length emacs-version))) ?A)
     (string-lessp emacs-version "23")
     (error "`%s' was compiled for Emacs 23 or later" #$))

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


(byte-code "\301\300!\203\301\302!\203\303\304\"\305\302\304\"\210\301\207" [testcover-1value-functions boundp testcover-compose-functions delq lambda add-to-list] 3)
#@209 Remove all customized variables from `testcover-module-constants'.
This seems to be a bug in `testcover': `defcustom' variables are
considered constants.  Revert it with this function after each `defcustom'.
(defalias 'rst-testcover-defcustom #[nil "\301\300!\205\302\303\304\305\"\"\211\207" [testcover-module-constants boundp delq nil mapcar #[(sym) "\301\302!\303\"?\205\207" [sym plist-member symbol-plist standard-value] 3]] 5 (#$ . 730)])
#@43 Add FUN to `testcover-compose-functions'.
(defalias 'rst-testcover-add-compose #[(fun) "\301\302!\205\n\303\302\"\207" [fun boundp testcover-compose-functions add-to-list] 3 (#$ . 1189)])
#@42 Add FUN to `testcover-1value-functions'.
(defalias 'rst-testcover-add-1value #[(fun) "\301\302!\205\n\303\302\"\207" [fun boundp testcover-1value-functions add-to-list] 3 (#$ . 1385)])
#@55 Return 1 if X is positive, -1 if negative, 0 if zero.
(defalias 'rst-signum #[(x) "\301V\203\302\207\301W\203\303\207\301\207" [x 0 1 -1] 2 (#$ . 1578)])
#@210 Return non-nil if any element of SEQ yields non-nil when PRED is applied.
Apply PRED to each element of list SEQ until the first non-nil
result is yielded and return this result.  PRED defaults to
`identity'.
(defalias 'rst-some #[(seq &optional pred) "\204\301\302\303\215\207" [pred identity rst-some (byte-code "\305\211\205!\n@	!\211\203\306\307\f\"\210)\nA\211\204\305*\207" [seq elem --dolist-tail-- pred r nil throw rst-some] 4)] 2 (#$ . 1745)])
#@70 Return position of first element satisfying PRED in list SEQ or nil.
(defalias 'rst-position-if #[(pred seq) "\300\301\215\207" [rst-position-if (byte-code "\305	\306\211\205#@\f\n!\203\307\310\"\210TA\211\204\n\306+\207" [i seq elem --dolist-tail-- pred 0 nil throw rst-position-if] 4)] 2 (#$ . 2220)])
#@75 Return position of ELEM in list SEQ or nil.
Comparison done with `equal'.
(defalias 'rst-position #[(elem seq) "\304\305!\211\211\nL\210)\306\307\310\311\312\313D\312D\314FE\")\207" [#1=#:--cl-elem-- #2=#:v elem seq make-symbol "--elem--" rst-position-if lambda (&rest --cl-rest--) apply quote #[(#3=#:G40300 e) "J	\232\207" [#3# e] 2] --cl-rest--] 8 (#$ . 2544)])
#@197 Extract the version from a variable according to the given regexes.
Return the version after regex DELIM-RE and HEAD-RE matching RE
and before TAIL-RE and DELIM-RE in VAR or DEFAULT for no match.
(defalias 'rst-extract-version #[(delim-re head-re re tail-re var &optional default) "\306	\307\n\310\260\f\"\203\311\312\f\"\207
\207" [delim-re head-re re tail-re var default string-match "\\(" "\\)" match-string 1] 8 (#$ . 2921)])
(defconst rst-cvs-header "$CVSHeader: sm/rst_el/rst.el,v 1.327.2.6 2012-10-07 13:05:50 stefan Exp $")
#@75 The CVS revision of this file.  CVS revision is the development revision.
(defconst rst-cvs-rev (rst-extract-version "\\$" "CVSHeader: \\S + " "[0-9]+\\(?:\\.[0-9]+\\)+" " .*" rst-cvs-header "0.0") (#$ . 3465))
#@34 The CVS time stamp of this file.
(defconst rst-cvs-timestamp (rst-extract-version "\\$" "CVSHeader: \\S + \\S + " "[0-9]+-[0-9]+-[0-9]+ [0-9]+:[0-9]+:[0-9]+" " .*" rst-cvs-header "1970-01-01 00:00:00") (#$ . 3682))
#@82 The SVN revision of this file.
SVN revision is the upstream (docutils) revision.
(defconst rst-svn-rev (rst-extract-version "\\$" "LastChangedRevision: " "[0-9]+" " " "$LastChangedRevision: 7515 $") (#$ . 3903))
#@34 The SVN time stamp of this file.
(defconst rst-svn-timestamp (rst-extract-version "\\$" "LastChangedDate: " ".+?+" " " "$LastChangedDate: 2012-09-20 23:28:53 +0200 (Thu, 20 Sep 2012) $") (#$ . 4121))
#@34 Official version of the package.
(defconst rst-official-version (rst-extract-version "%" "OfficialVersion: " "[0-9]+\\(?:\\.[0-9]+\\)+" " " "%OfficialVersion: 1.4.0 %") (#$ . 4327))
#@52 CVS revision of this file in the official version.
(defconst rst-official-cvs-rev (rst-extract-version "[%$]" "Revision: " "[0-9]+\\(?:\\.[0-9]+\\)+" " " "%Revision: 1.327 %") (#$ . 4515))
#@155 The version string.
Starts with the current official version.  For developer versions
in parentheses follows the development revision and the time stamp.
(defconst rst-version (byte-code "	\232\203\n\207\304\305\n	$\207" [rst-official-cvs-rev rst-cvs-rev rst-official-version rst-cvs-timestamp format "%s (development %s [%s])"] 5) (#$ . 4711))
(defconst rst-package-emacs-version-alist '(("1.0.0" . "24.3") ("1.1.0" . "24.3") ("1.2.0" . "24.3") ("1.2.1" . "24.3") ("1.3.0" . "24.3") ("1.3.1" . "24.3") ("1.4.0" . "24.3")))
(byte-code "\303	\"\204\f\304\305\n\"\210\306\307\310	B\"\210\311\312\313\314\315\316\317\320\321\322&	\207" [rst-official-version rst-package-emacs-version-alist rst-version assoc error "Version %s not listed in `rst-package-emacs-version-alist'" add-to-list customize-package-emacs-version-alist ReST custom-declare-group rst nil "Support for reStructuredText documents." :group wp :version "23.1" :link (url-link "http://docutils.sourceforge.net/rst.html")] 10)
#@60 List of all possible bullet characters for bulleted lists.
(defconst rst-bullets '(45 42 43 8226 8227 8259) (#$ . 5712))
#@24 Supported URI schemes.
(defconst rst-uri-schemes '("acap" "cid" "data" "dav" "fax" "file" "ftp" "gopher" "http" "https" "imap" "ldap" "mailto" "mid" "modem" "news" "nfs" "nntp" "pop" "prospero" "rtsp" "service" "sip" "tel" "telnet" "tip" "urn" "vemmi" "wais") (#$ . 5839))
#@74 Characters which may be used in adornments for sections and transitions.
(defconst rst-adornment-chars '(93 33 34 35 36 37 38 39 40 41 42 43 44 46 47 58 59 60 61 62 63 64 91 92 94 95 96 123 124 125 126 45) (#$ . 6118))
#@47 Maximum length of inline markup to recognize.
(defconst rst-max-inline-length 1000 (#$ . 6343))
#@125 Definition alist of relevant regexes.
Each entry consists of the symbol naming the regex and an
argument list for `rst-re'.
(defconst rst-re-alist-def (byte-code "\304\305\306\307\310\311\312\313\314\315QD\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362	\"D\363\364\365\366\367\370\371\372\373\374\375\376\377\201@\201A\201B\201C\201D\201E\201F\201G\201H\201I\201J\nBD\201K\314\260\201LBBB\201MBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB\207" [rst-bullets rst-max-inline-length rst-uri-schemes rst-adornment-chars (hws-prt "[	 ]") (hws-tag hws-prt "*") (hws-sta hws-prt "+") (lin-beg "^" hws-tag) (lin-end hws-tag "$") (linemp-tag "^" hws-tag "$") (ell-tag "\\.\\.\\.") bul-tag "[" "]" (ltr-tag "[a-zA-Z]") (num-prt "[0-9]") (num-tag num-prt "+") (rom-prt "[IVXLCDMivxlcdm]") (rom-tag rom-prt "+") (aut-tag "#") (dcl-tag "::") (bli-sfx (:alt hws-sta "$")) (bul-sta bul-tag bli-sfx) (exm-tag "\\.\\.") (exm-sta exm-tag hws-sta) (exm-beg lin-beg exm-sta) (cntany-tag (:alt ltr-tag num-tag rom-tag aut-tag)) (cntexp-tag (:alt ltr-tag num-tag rom-tag)) (enmany-tag (:alt (:seq cntany-tag "\\.") (:seq "(?" cntany-tag ")"))) (enmexp-tag (:alt (:seq cntexp-tag "\\.") (:seq "(?" cntexp-tag ")"))) (enmaut-tag (:alt (:seq aut-tag "\\.") (:seq "(?" aut-tag ")"))) (enmany-sta enmany-tag bli-sfx) (enmexp-sta enmexp-tag bli-sfx) (enmexp-beg lin-beg enmexp-sta) (itmany-tag (:alt enmany-tag bul-tag)) (itmany-sta-1 (:grp itmany-tag) bli-sfx) (itmany-beg-1 lin-beg itmany-sta-1) (ilm-pfx (:alt "^" hws-prt "[-'\"([{<‘“«’/:]")) (ilm-sfx (:alt "$" hws-prt "[]-'\")}>’”»/:.,;!?\\]")) (ilcsgl-tag "\\S ") (ilcast-prt (:alt "[^*\\]" "\\\\.")) (ilcbkq-prt (:alt "[^`\\]" "\\\\.")) (ilcbkqdef-prt (:alt "[^`\\\n]" "\\\\.")) (ilcbar-prt (:alt "[^|\\]" "\\\\.")) (ilcbardef-prt (:alt "[^|\\\n]" "\\\\.")) (ilcast-sfx "[^	 *\\]") (ilcbkq-sfx "[^	 `\\]") (ilcbar-sfx "[^	 |\\]") ilcrep-hlp format "\\{0,%d\\}" (ilcast-tag (:alt ilcsgl-tag (:seq ilcsgl-tag ilcast-prt ilcrep-hlp ilcast-sfx))) (ilcbkq-tag (:alt ilcsgl-tag (:seq ilcsgl-tag ilcbkq-prt ilcrep-hlp ilcbkq-sfx))) (ilcbkqdef-tag (:alt ilcsgl-tag (:seq ilcsgl-tag ilcbkqdef-prt ilcrep-hlp ilcbkq-sfx))) (ilcbar-tag (:alt ilcsgl-tag (:seq ilcsgl-tag ilcbar-prt ilcrep-hlp ilcbar-sfx))) (ilcbardef-tag (:alt ilcsgl-tag (:seq ilcsgl-tag ilcbardef-prt ilcrep-hlp ilcbar-sfx))) (fldnam-prt (:alt "[^:\n]" "\\\\:")) (fldnam-tag fldnam-prt "+") (fld-tag ":" fldnam-tag ":") (optsta-tag (:alt "[-+/]" "--")) (optnam-tag "\\sw" (:alt "-" "\\sw") "*") (optarg-tag (:shy "[ =]\\S +")) (optsep-tag (:shy "," hws-prt)) (opt-tag (:shy optsta-tag optnam-tag optarg-tag "?")) (fncnam-prt "[^]\n]") (fncnam-tag fncnam-prt "+") (fnc-tag "\\[" fncnam-tag "]") (fncdef-tag-2 (:grp exm-sta) (:grp fnc-tag)) (fnc-sta-2 fncdef-tag-2 bli-sfx) (sub-tag "|" ilcbar-tag "|") (subdef-tag "|" ilcbardef-tag "|") (sym-prt "[-+.:_]") (sym-tag (:shy "\\sw+" (:shy sym-prt "\\sw+") "*")) uri-tag :alt ado-prt ("]") ((adorep3-hlp "\\{3,\\}") (adorep2-hlp "\\{2,\\}") (ado-tag-1-1 (:grp ado-prt) "\\1" adorep2-hlp) (ado-tag-1-2 (:grp ado-prt) "\\2" adorep2-hlp) (ado-beg-2-1 "^" (:grp ado-tag-1-2) lin-end) (ttl-tag "\\S *\\w\\S *") (ttl-beg lin-beg ttl-tag) (dir-tag-3 (:grp exm-sta) (:grp (:shy subdef-tag hws-sta) "?") (:grp sym-tag dcl-tag)) (dir-sta-3 dir-tag-3 bli-sfx) (lit-sta-2 (:grp (:alt "[^.\n]" "\\.[^.\n]") ".*") "?" (:grp dcl-tag) "$") (cmt-sta-1 (:grp exm-sta) "[^[|_\n]" (:alt "[^:\n]" (:seq ":" (:alt "[^:\n]" "$"))) "*$") (par-tag- (:alt itmany-tag fld-tag opt-tag fncdef-tag-2 dir-tag-3 exm-tag)))] 70) (#$ . 6446))
(rst-testcover-add-compose 'rst-re)
#@890 Interpret ARGS as regular expressions and return a regex string.
Each element of ARGS may be one of the following:

A string which is inserted unchanged.

A character which is resolved to a quoted regex.

A symbol which is resolved to a string using `rst-re-alist-def'.

A list with a keyword in the car.  Each element of the cdr of such
a list is recursively interpreted as ARGS.  The results of this
interpretation are concatenated according to the keyword.

For the keyword `:seq' the results are simply concatenated.

For the keyword `:shy' the results are concatenated and
surrounded by a shy-group ("\(?:...\)").

For the keyword `:alt' the results form an alternative ("\|")
which is shy-grouped ("\(?:...\)").

For the keyword `:grp' the results are concatenated and form a
referenceable group ("\(...\)").

After interpretation of ARGS the results are concatenated as for
`:seq'.
(defalias 'rst-re #[(&rest args) "\301\302\303\304\"\"\207" [args apply concat mapcar #[(re) ";\203\2079\203\304	\"\211A@)\207\305!\203\"\306\307!!\207<\203y\310\311A\"@\312=\203<\313\314\315#\202w@\316=\203N\317\313\314\315#\320Q\202w@\321=\203`\322\313\314\315#\320Q\202w@\323=\203r\317\313\314\324#\320Q\202w\325\326@\")\207\325\327\"\207" [re rst-re-alist x nested assoc characterp regexp-quote char-to-string mapcar #[(elt) "\301!\207" [elt rst-re] 2] :seq mapconcat identity "" :shy "\\(?:" "\\)" :grp "\\(" :alt "\\|" error "Unknown list car: %s" "Unknown object type for building regex: %s"] 6]] 5 (#$ . 10180)])
#@65 Alist mapping symbols from `rst-re-alist-def' to regex strings.
(defconst rst-re-alist (byte-code "\304	\304\211\203 @\n@\305\306\nA\"DC\244A\211\204\n\304+\207" [rst-re-alist rst-re-alist-def re --dolist-tail-- nil apply rst-re] 6) (#$ . 11732))
#@222 Bind like `define-key' but add deprecated key definitions.
KEYMAP, KEY, and DEF are as in `define-key'.  DEPRECATED key
definitions should be in vector notation.  These are defined as
well but give an additional message.
(defalias 'rst-define-key #[(keymap key def &rest deprecated) "\306	\n#\210\307\211\2054
@\306\f\310\307\311\312\n\211#\313\314\315\nDD\316\317\320\321	DF\257#\210
A\211\204\307*\207" [keymap key def deprecated dep-key --dolist-tail-- define-key nil lambda format "Deprecated binding for %s, use \\[%s] instead." (interactive) call-interactively quote message "[Deprecated use of key %s; use key %s instead]" (key-description (this-command-keys)) key-description] 14 (#$ . 11999)])
#@74 Keymap for reStructuredText mode commands.
This inherits from Text mode.
(defvar rst-mode-map (byte-code "\301 \302\303\304#\210\302\305\306\307$\210\302\310\306#\210\302\311\304#\210\302\312\306#\210\302\313\314#\210\302\315\316\317$\210\302\320\321\322$\210\302\323\324\325$\210\302\326\327\330$\210\302\331\304#\210\302\332\333\334$\210\302\335\336\337\340%\210\302\341\304#\210\302\342\343\344$\210\302\345\346\347$\210\302\350\351\352$\210\302\353\354\355$\210\302\356\357#\210\302\360\304#\210\302\361\362#\210\302\363\364\365$\210\302\366\367\370$\210\302\371\372\373$\210\302\374\304#\210\302\375\376\377$\210\302\201@\201A\201B$\210\302\201C\201D\201E$\210\302\201F\201G\201H$\210\302\201I\201J\201K$\210)\207" [map make-sparse-keymap rst-define-key [3 8] describe-prefix-bindings [3 67108925] rst-adjust [3 1 t] [67108925] [3 1 8] [3 1 1] [3 1 4] rst-display-adornments-hierarchy [3 1 19] rst-straighten-adornments [3 19] [134217736] rst-mark-section [3 13] [134217729] rst-backward-section [3 14] [134217733] rst-forward-section [3 16] [3 18 8] [3 18 12] rst-line-block-region [3 4] [3 18 tab] rst-shift-region [3 18 t] [3 12 t] [3 12 8] [3 12 2] rst-bullet-list-region [3 2] [3 12 5] rst-enumerate-region [3 5] [3 12 3] rst-convert-bullets-to-enumeration [3 22] [3 12 19] rst-straighten-bullets-region [3 23] [3 12 9] rst-insert-list [3 20 8] [3 20 20] rst-toc [3 20 9] rst-toc-insert [3 9] [3 20 21] rst-toc-update [3 21] [3 20 10] rst-goto-section [3 6] [3 3 8] [3 3 3] rst-compile [3 49] [3 3 1] rst-compile-alt-toolset [3 50] [3 3 24] rst-compile-pseudo-region [3 51] [3 3 16] rst-compile-pdf-preview [3 52] [3 3 19] rst-compile-slides-preview [3 53]] 6) (#$ . 12719))
(byte-code "\300\301\302\303\304\"\305#\207" [define-abbrev-table rst-mode-abbrev-table mapcar #[(x) "\301\302\"\207" [x append (nil 0 system)] 3] (("contents" ".. contents::\n..\n   ") ("con" ".. contents::\n..\n   ") ("cont" "[...]") ("skip" "\n\n[...]\n\n  ") ("seq" "\n\n[...]\n\n  ")) "Abbrev table used while in `rst-mode'."] 5)
#@40 Syntax table used while in `rst-mode'.
(defvar rst-mode-syntax-table (byte-code "\302!\303\304\305	#\210\303\306\305	#\210\303\307\305	#\210\303\310\305	#\210\303\311\305	#\210\303\312\305	#\210\303\313\305	#\210\303\314\305	#\210\303\315\305	#\210\303\316\305	#\210\303\317\305	#\210\303\320\321	#\210\303\322\305	#\210\303\323\305	#\210\303\324\305	#\210\303\325\305	#\210\303\326\305	#\210\303\327\305	#\210\303\330\305	#\210\303\331\305	#\210	)\207" [text-mode-syntax-table st copy-syntax-table modify-syntax-entry 36 "." 37 38 39 42 43 45 47 60 61 62 92 "\\" 95 124 171 187 8216 8217 8220 8221] 4) (#$ . 14790))
(byte-code "\300\301\302\303\304\305\306\307&\210\310 \210\311\312!\210\301\313N\204 \314\301\313\315\316!#\210\317\320!\204,\314\320\321\322#\210\302\207" [custom-declare-variable rst-mode-hook nil "Hook run when `rst-mode' is turned on.\nThe hook for `text-mode' is run before this one." :group rst :type (hook) rst-testcover-defcustom require newcomment variable-documentation put purecopy "Hook run when entering ReST mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp rst-mode-map definition-name rst-mode] 8)
(defvar rst-mode-map (make-sparse-keymap))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\210\302\305\310\311#\207" [rst-mode-map variable-documentation put purecopy "Keymap for `rst-mode'." rst-mode derived-mode-parent text-mode custom-mode-group rst] 5)
#@218 Major mode for editing reStructuredText documents.
\<rst-mode-map>

Turning on `rst-mode' calls the normal hooks `text-mode-hook'
and `rst-mode-hook'.  This mode also supports font-lock
highlighting.

\{rst-mode-map}
(defalias 'rst-mode #[nil "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315!\204'\316\317 \"\210\320!\210\321\f!\210
@\306\322!\210\323\324!\306\325!\210\323\326!\306\327!\210\330\306\331!\210\307\306\332!\210\323\333\334\335\333$\306\336!\210\337\306\340!\210\341 \306\342!\210\343\"\306\344!\210\323\345\346\347#$\306\350!\210\351(\306\352!\210\307*\306\353!\210\341+\306\354!\210\355,\306\356!\210\341.\306\357!\210\360/\306\361!\210\3621\306\363!\210\3643\306\365!\210\3665\306\367!\210\3707\306\371!\210\3729\306\373!\210\374;\375\376\377\307#\210\306\201A!\210\307A)\201B\201C!\207" [delay-mode-hooks major-mode mode-name rst-mode-map rst-mode-syntax-table rst-mode-abbrev-table make-local-variable t text-mode rst-mode "ReST" mode-class put keymap-parent set-keymap-parent current-local-map use-local-map set-syntax-table paragraph-separate rst-re (:alt "\f" lin-end) paragraph-start (:alt "\f" lin-end (:seq hws-tag par-tag- bli-sfx)) indent-line-function rst-indent-line adaptive-fill-mode adaptive-fill-regexp hws-tag par-tag- "?" adaptive-fill-function rst-adaptive-fill fill-paragraph-handle-comment nil comment-start ".. " comment-start-skip lin-beg exm-tag bli-sfx comment-continue "   " comment-multi-line comment-use-syntax comment-end "" comment-end-skip comment-line-break-function rst-comment-line-break comment-indent-function rst-comment-indent comment-insert-comment-function rst-comment-insert-comment comment-region-function rst-comment-region uncomment-region-function rst-uncomment-region imenu-create-index-function rst-imenu-create-index font-lock-defaults (rst-font-lock-keywords t nil nil nil (font-lock-multiline . t) (font-lock-mark-block-function . mark-paragraph)) add-hook font-lock-extend-region-functions rst-font-lock-extend-region local-abbrev-table jit-lock-contextually run-mode-hooks rst-mode-hook] 5 (#$ . 16304) nil])
#@97 Non-nil if Rst minor mode is enabled.
Use the command `rst-minor-mode' to change this variable.
(defvar rst-minor-mode nil (#$ . 18459))
(make-variable-buffer-local 'rst-minor-mode)
#@355 Toggle ReST minor mode.
With a prefix argument ARG, enable ReST minor mode if ARG is
positive, and disable it otherwise.  If called from Lisp, enable
the mode if ARG is omitted or nil.

When ReST minor mode is enabled, the ReST mode keybindings
are installed on top of the major mode bindings.  Use this
for modes derived from Text mode, like Mail mode.
(defalias 'rst-minor-mode #[(&optional arg) "\303 	\304=\203\n?\202\305	!\306V\307\310\n\203\311\202\312\"\210\313\314!\203@\303 \2033\303 \232\203@\315\316\n\203=\317\202>\320\"\210)\321 \210\n\207" [#1=#:last-message arg rst-minor-mode current-message toggle prefix-numeric-value 0 run-hooks rst-minor-mode-hook rst-minor-mode-on-hook rst-minor-mode-off-hook called-interactively-p any message "Rst minor mode %sabled" "en" "dis" force-mode-line-update] 3 (#$ . 18648) (list (or current-prefix-arg 'toggle))])
(byte-code "\304\305\306\307\211%\210\310\311\307\312\313\314\315\316&\210\317\320\321\307#\210\322\307\211\203?\n@\320	N\2038\321	N\2048\323\321	\320	N#\210\nA\211\204!*\324\320\321\325#\210\326\321\327\330\313\311\331\332\333\334\335\336\334\337\340\341\"BBB\342BBBBD&\210\343 \210\326\344\345\346\313\311\331\347&\210\343 \207" [rst-mode-map prop --dolist-tail-- rst-adornment-chars add-minor-mode rst-minor-mode " ReST" nil custom-declare-group rst-adjust "Settings for adjustment and cycling of section title adornments." :group rst :version "21.1" defvaralias rst-preferred-decorations rst-preferred-adornments (saved-value saved-variable-comment) put make-obsolete-variable "rst 1.0.0" custom-declare-variable '((61 over-and-under 1) (61 simple 0) (45 simple 0) (126 simple 0) (43 simple 0) (96 simple 0) (35 simple 0) (64 simple 0)) "Preferred hierarchy of section title adornments.\n\nA list consisting of lists of the form (CHARACTER STYLE INDENT).\nCHARACTER is the character used.  STYLE is one of the symbols\nOVER-AND-UNDER or SIMPLE.  INDENT is an integer giving the wanted\nindentation for STYLE OVER-AND-UNDER.  CHARACTER and STYLE are\nalways used when a section adornment is described.  In other\nplaces t instead of a list stands for a transition.\n\nThis sequence is consulted to offer a new adornment suggestion\nwhen we rotate the underlines at the end of the existing\nhierarchy of characters, or when there is no existing section\ntitle in the file.\n\nSet this to an empty list to use only the adornment found in the\nfile." :type repeat group :tag "Adornment specification" choice "Adornment character" mapcar #[(char) "\301\302\303!F\207" [char const :tag char-to-string] 4] ((radio :tag "Adornment type" (const :tag "Overline and underline" over-and-under) (const :tag "Underline only" simple)) (integer :tag "Indentation for overline and underline type" :value 0)) rst-testcover-defcustom rst-default-indent 1 "Number of characters to indent the section title.\n\nThis is used for when toggling adornment styles, when switching\nfrom a simple adornment style to a over-and-under adornment\nstyle." (integer)] 18)
#@200 Compare adornments.
Return true if both ADO1 and ADO2 adornments are equal,
according to restructured text semantics (only the character and
the style are compared, the indentation does not matter).
(defalias 'rst-compare-adornments #[(ado1 ado2) "@	@=\205\211A@)	\211A@)=\207" [ado1 ado2 x] 3 (#$ . 21695)])
#@198 Return the index (level) in hierarchy HIER of adornment ADO.
This basically just searches for the item using the appropriate
comparison and returns the index.  Return nil if the item is
not found.
(defalias 'rst-get-adornment-match #[(hier ado) "\211\203\303	@\n\"\204	A\211\204	)\207" [hier cur ado rst-compare-adornments] 4 (#$ . 22017)])
#@210 Suggest a new, different adornment from all that have been seen.

ALLADOS is the set of all adornments, including the line numbers.
PREV is the optional previous adornment, in order to suggest a
better match.
(defalias 'rst-suggest-new-adornment #[(allados &optional prev) "\306	\"A\307\n\"\f\310\2032
\2042\311@@\"\203)@\202A\211\204
*\203=A\202\312@!*\207" [rst-preferred-adornments prev fplist curpotential allados found rst-get-adornment-match append nil rst-compare-adornments copy-sequence cur] 4 (#$ . 22374)])
#@63 Delete the entire current line without using the `kill-ring'.
(defalias 'rst-delete-entire-line #[nil "\300 \300\301!|\207" [line-beginning-position 2] 3 (#$ . 22929)])
#@397 Unconditionally update the style of a section adornment.

Do this using the given character CHAR, with STYLE 'simple
or 'over-and-under, and with indent INDENT.  If the STYLE
is 'simple, whitespace before the title is removed (indent
is always assumed to be 0).

If there are existing overline and/or underline from the
existing adornment, they are removed before adding the
requested adornment.
(defalias 'rst-update-section #[(char style &optional indent) "\305\210\306 \305\n\203\307=\203\310\311 \210\312 \210\313\n\314\"c\210\305\210\312 \210i\n\\\212\315y\210\316\317\320!!\203F\212\315y\210\316\317\321!!)\204F\322 \210)\212\323y\210\316\317\320!!\203V\322 \210`\324\323!U\203b\325\323!\210)\326=\203x\212\311 \210\327\323!\210\313\f\"c\210)\323y\210\327\323!\210\313\f\"c\210\323y\210	b*\207" [len marker indent style char nil point-marker simple 0 beginning-of-line delete-horizontal-space make-string 32 -1 looking-at rst-re ado-beg-2-1 ttl-beg rst-delete-entire-line 1 buffer-end newline over-and-under open-line] 3 (#$ . 23105)])
#@720 Classify adornment for section titles and transitions.
ADORNMENT is the complete adornment string as found in the buffer
with optional trailing whitespace.  END is the point after the
last character of ADORNMENT.

Return a list.  The first entry is t for a transition or a
cons (CHARACTER . STYLE).  Check `rst-preferred-adornments' for
the meaning of CHARACTER and STYLE.

The remaining list forms four match groups as returned by
`match-data'.  Match group 0 matches the whole construct.  Match
group 1 matches the overline adornment if present.  Match group 2
matches the section title text or the transition.  Match group 3
matches the underline adornment.

Return nil if no syntactically valid adornment is found.
(defalias 'rst-classify-adornment #[(adornment end) "\212\306 \307\216\310\311\312!	\"\205u\nb\210\313\314\315	\"!\311\316\"`\317y\210`\212\320\321y!?\2064\322\311\323!!)\212\320\324y!?\206E\322\311\323!!)\212\320\321y!\205Y\322\311\325!!\205Y`)\212\320\324y!\205m\322\311\325!!\205m`) \212\205\207\320\315y!\205\207\322\311\f\323\"!\205\207`)!\212 \205\241\320\326y!\205\241\322\311\f\323\"!\205\241`)\"\327\211#$\327\211%&\327\211'(\327)\203\320\203\320\330#&
'\202P!\204\332\"\203.\331B#\"\203\351\202\353!\"\203\365\"\202\367\"\203 \202*+,+b\210`$\332 %*b\210`&\332 ',b\210`(\332 )+\202P \203M\333B#(
) b\210`&\332 '\202P\327##\205s#$\206^&)\206e'$%&'()\257	.+\207" [save-match-data-internal adornment end ado-ch ado-re end-pnt match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match rst-re ado-beg-2-1 string-to-char match-string 2 adorep3-hlp 0 zerop 1 looking-at lin-end -1 ttl-beg -2 nil t over-and-under line-end-position simple beg-pnt nxt-emp prv-emp ttl-blw ttl-abv und-fnd ovr-fnd key beg-ovr end-ovr beg-txt end-txt beg-und end-und txt-pnt ovr-pnt und-pnt] 10 (#$ . 24173)])
#@612 Find a section title line around point and return its characteristics.
If the point is on an adornment line find the respective title
line.  If the point is on an empty line check previous or next
line whether it is a suitable title line and use it if so.  If
point is on a suitable title line use it.

If no title line is found return nil.

Otherwise return as `rst-classify-adornment' does.  However, if
the title line has no syntactically valid adornment STYLE is nil
in the first element.  If there is no adornment around the title
CHARACTER is also nil and match groups for overline and underline
are nil.
(defalias 'rst-find-title-line #[nil "\212\304y\210`\305 \306\307\310!!\203O\311\312\313!!\314\312\304!\304\225\"\n\204D\315\316y!\205K\306\307\317!!\205K\320B	\305 	`\305 \320\211\257	\202K\n@:\205K\n*\202\313\306\307\321!!\203\235\212\315\322y!\205v\306\307\317!!\205v\320\211B`\305 \320\211`\305 \320\211\257	)\206\313\212\315\316y!\205\231\306\307\317!!\205\231\320\211B`\305 \320\211`\305 \320\211\257	)\202\313\306\307\317!!\205\313\314\323\324\313!\305\313!\"\305\313!\"\211\203\273\n\202\312\320\211B`\305 \320\211`\305 \320\211\257	)+\207" [orig-end orig-pnt r char 0 line-end-position looking-at rst-re ado-beg-2-1 string-to-char match-string-no-properties 2 rst-classify-adornment zerop 1 ttl-beg nil lin-end -1 buffer-substring-no-properties line-beginning-position] 10 (#$ . 26161)])
#@118 All section adornments in the buffer as found by `rst-find-all-adornments'.
t when no section adornments were found.
(defvar rst-all-sections nil (#$ . 27600))
(make-variable-buffer-local 'rst-all-sections)
#@150 Section hierarchy in the buffer as determined by `rst-get-hierarchy'.
t when no section adornments were found.  Value depends on
`rst-all-sections'.
(defvar rst-section-hierarchy nil (#$ . 27814))
(byte-code "\300\301!\210\302\303!\207" [make-variable-buffer-local rst-section-hierarchy rst-testcover-add-1value rst-reset-section-caches] 2)
#@104 Reset all section cache variables.
Should be called by interactive functions which deal with sections.
(defalias 'rst-reset-section-caches #[nil "\302\211\211\207" [rst-all-sections rst-section-hierarchy nil] 3 (#$ . 28162)])
#@304 Return all the section adornments in the current buffer.
Return a list of (LINE . ADORNMENT) with ascending LINE where
LINE is the line containing the section title.  ADORNMENT consists
of a (CHARACTER STYLE INDENT) triple as described for
`rst-preferred-adornments'.

Uses and sets `rst-all-sections'.
(defalias 'rst-find-all-adornments #[nil "\204X\304\212eb\210\305\306\307!\304\310#\203N\311\312\313!`\"\211\203J\n@:\203J\314\nA!\210\315\224b\210\316e`\"T\n\211@@)\n\211@A)\317 EB	B\313\225b\210)\202\n	\237\211\206V\310*\310=?\205`\207" [rst-all-sections positions ado-data x nil re-search-forward rst-re ado-beg-2-1 t rst-classify-adornment match-string-no-properties 0 set-match-data 2 count-lines current-indentation] 5 (#$ . 28397)])
#@453 Build a hierarchy of adornments using the list of given ADORNMENTS.

ADORNMENTS is a list of (CHARACTER STYLE INDENT) adornment
specifications, in order that they appear in a file, and will
infer a hierarchy of section levels by removing adornments that
have already been seen in a forward traversal of the adornments,
comparing just CHARACTER and STYLE.

Similarly returns a list of (CHARACTER STYLE INDENT), where each
list element should be unique.
(defalias 'rst-infer-hierarchy #[(adornments) "\306	\306\211\2030@\211@\n\211A@)\307
\fB\"\204(
\fB\nBB*A\211\204\n*\310\311\237\")\207" [hierarchy-alist adornments x --dolist-tail-- style char nil assoc mapcar cdr] 4 (#$ . 29164)])
#@440 Return the hierarchy of section titles in the file.

Return a list of adornments that represents the hierarchy of
section titles in the file.  Each element consists of (CHARACTER
STYLE INDENT) as described for `rst-find-all-adornments'.  If the
line number in IGNORE is specified, a possibly adornment found on
that line is not taken into account when building the hierarchy.

Uses and sets `rst-section-hierarchy' unless IGNORE is given.
(defalias 'rst-get-hierarchy #[(&optional ignore) "\204	\203	\303=?\205)	\207\304\305\306\307\310 \"\"!?\205&\n\206&\303\n)\207" [ignore rst-section-hierarchy r t rst-infer-hierarchy mapcar cdr assq-delete-all rst-find-all-adornments] 6 (#$ . 29873)])
#@88 Return the adornments around point.
Return a list of the previous and next adornments.
(defalias 'rst-get-adornments-around #[nil "\306 \307 \310\211\211\203$\f\211@@)	W\203$\f\fA\211\204\f\203C\f\211@@)\203C	\f\211@@)U\203A\fA\202B\f\311\312\nD\"-\207" [all curline prev next cur x rst-find-all-adornments line-number-at-pos nil mapcar cdar] 5 (#$ . 30582)])
#@60 Return true if the adornment ADO around point is complete.
(defalias 'rst-adornment-complete-p #[(ado) "@\211A@)AA@\212\306\210i)	\205J\307\310	\311\312
\f\\\"\313$\212\314y\210\315 \210\316!)\205I\317=?\206I\212\320y\210\315 \210\316!)),\207" [ado char x style indent endcol nil rst-re "^" format "\\{%d\\}" "$" 1 beginning-of-line looking-at over-and-under -1 exps] 8 (#$ . 30969)])
#@170 Get the next adornment for CURADO, in given hierarchy HIER.
If suggesting, suggest for new adornment SUGGESTION.
REVERSE-DIRECTION is used to reverse the cycling order.
(defalias 'rst-get-next-adornment #[(curado hier &optional suggestion reverse-direction) "@\211A@)\306\f
\f@D\"	\203\202!\307!\211\n\203F	\n\211@@)=\203=\n@A@=\204F\nA\211\n\204'\n)\211A@)\206R
+\207" [curado char x style hier suggestion append reverse rotados reverse-direction cur] 5 (#$ . 31380)])
#@1057 Auto-adjust the adornment around point.

Adjust/rotate the section adornment for the section title around
point or promote/demote the adornments inside the region,
depending on if the region is active.  This function is meant to
be invoked possibly multiple times, and can vary its behavior
with a positive PFXARG (toggle style), or with a negative
PFXARG (alternate behavior).

This function is a bit of a swiss knife.  It is meant to adjust
the adornments of a section title in reStructuredText.  It tries
to deal with all the possible cases gracefully and to do `the
right thing' in all cases.

See the documentations of `rst-adjust-adornment-work' and
`rst-promote-region' for full details.

Prefix Arguments
================

The method can take either (but not both) of

a. a (non-negative) prefix argument, which means to toggle the
   adornment style.  Invoke with a prefix argument for example;

b. a negative numerical argument, which generally inverts the
   direction of search in the file or hierarchy.  Invoke with C--
   prefix for example.
(defalias 'rst-adjust #[(pfxarg) "\304 	\205\f\305	!\306W	\205\n?\307 \203$\310	\205\311!\210\202)\312\n\"\210\313\314!\210b+\207" [origpt pfxarg reverse-direction toggle-style point-marker prefix-numeric-value 0 use-region-p rst-promote-region t rst-adjust-adornment-work run-hooks rst-adjust-hook] 3 (#$ . 31887) "P"])
(byte-code "\300\301\302\303\304\305\306\307\310\311&	\210\312 \210\300\313\302\314\304\305\306\315\310\316&	\210\312 \207" [custom-declare-variable rst-adjust-hook nil "Hooks to be run after running `rst-adjust'." :group rst-adjust :type (hook) :package-version (rst . "1.1.0") rst-testcover-defcustom rst-new-adornment-down "Controls level of new adornment for section headers." (choice (const :tag "Same level as previous one" nil) (const :tag "One level down relative to the previous one" t)) (rst . "1.1.0")] 10)
#@173 Call `rst-adjust-adornment-work' interactively.

Keep this for compatibility for older bindings (are there any?).
Argument PFXARG has the same meaning as for `rst-adjust'.
(defalias 'rst-adjust-adornment #[(pfxarg) "\205	\303!\304W\205	?\305\n	\"*\207" [pfxarg reverse-direction toggle-style prefix-numeric-value 0 rst-adjust-adornment-work] 3 (#$ . 33801) "P"])
#@4957 Adjust/rotate the section adornment for the section title around point.

This function is meant to be invoked possibly multiple times, and
can vary its behavior with a true TOGGLE-STYLE argument, or with
a REVERSE-DIRECTION argument.

General Behavior
================

The next action it takes depends on context around the point, and
it is meant to be invoked possibly more than once to rotate among
the various possibilities.  Basically, this function deals with:

- adding a adornment if the title does not have one;

- adjusting the length of the underline characters to fit a
  modified title;

- rotating the adornment in the set of already existing
  sectioning adornments used in the file;

- switching between simple and over-and-under styles.

You should normally not have to read all the following, just
invoke the method and it will do the most obvious thing that you
would expect.


Adornment Definitions
=====================

The adornments consist in

1. a CHARACTER

2. a STYLE which can be either of 'simple' or 'over-and-under'.

3. an INDENT (meaningful for the over-and-under style only)
   which determines how many characters and over-and-under
   style is hanging outside of the title at the beginning and
   ending.

See source code for mode details.


Detailed Behavior Description
=============================

Here are the gory details of the algorithm (it seems quite
complicated, but really, it does the most obvious thing in all
the particular cases):

Before applying the adornment change, the cursor is placed on
the closest line that could contain a section title.

Case 1: No Adornment
--------------------

If the current line has no adornment around it,

- search backwards for the last previous adornment, and apply
  the adornment one level lower to the current line.  If there
  is no defined level below this previous adornment, we suggest
  the most appropriate of the `rst-preferred-adornments'.

  If REVERSE-DIRECTION is true, we simply use the previous
  adornment found directly.

- if there is no adornment found in the given direction, we use
  the first of `rst-preferred-adornments'.

TOGGLE-STYLE forces a toggle of the prescribed adornment style.

Case 2: Incomplete Adornment
----------------------------

If the current line does have an existing adornment, but the
adornment is incomplete, that is, the underline/overline does
not extend to exactly the end of the title line (it is either too
short or too long), we simply extend the length of the
underlines/overlines to fit exactly the section title.

If TOGGLE-STYLE we toggle the style of the adornment as well.

REVERSE-DIRECTION has no effect in this case.

Case 3: Complete Existing Adornment
-----------------------------------

If the adornment is complete (i.e. the underline (overline)
length is already adjusted to the end of the title line), we
search/parse the file to establish the hierarchy of all the
adornments (making sure not to include the adornment around
point), and we rotate the current title's adornment from within
that list (by default, going *down* the hierarchy that is present
in the file, i.e. to a lower section level).  This is meant to be
used potentially multiple times, until the desired adornment is
found around the title.

If we hit the boundary of the hierarchy, exactly one choice from
the list of preferred adornments is suggested/chosen, the first
of those adornment that has not been seen in the file yet (and
not including the adornment around point), and the next
invocation rolls over to the other end of the hierarchy (i.e. it
cycles).  This allows you to avoid having to set which character
to use.

If REVERSE-DIRECTION is true, the effect is to change the
direction of rotation in the hierarchy of adornments, thus
instead going *up* the hierarchy.

However, if TOGGLE-STYLE, we do not rotate the adornment, but
instead simply toggle the style of the current adornment (this
should be the most common way to toggle the style of an existing
complete adornment).


Point Location
==============

The invocation of this function can be carried out anywhere
within the section title line, on an existing underline or
overline, as well as on an empty line following a section title.
This is meant to be as convenient as possible.


Indented Sections
=================

Indented section titles such as ::

   My Title
   --------

are invalid in reStructuredText and thus not recognized by the
parser.  This code will thus not work in a way that would support
indented sections (it would be ambiguous anyway).


Joint Sections
==============

Section titles that are right next to each other may not be
treated well.  More work might be needed to support those, and
special conditions on the completeness of existing adornments
might be required to make it non-ambiguous.

For now we assume that the adornments are disjoint, that is,
there is at least a single line between the titles/adornment
lines.
(defalias 'rst-adjust-adornment-work #[(toggle-style reverse-direction) "\306 \210\307 `\211\205`\310	A!\210\311\224b\210\312 \312!Z	\211@@)	\211@A)\313 \f
E\314\211\314
\204\275\315 @\314\316 \211 \203\202!\203\\\"\204f!\204k\"\204k \202\207\317 \"\211A@)\206\207\320 \"\202\207\321#@!$\203\244A\211A@)\322=\203\241\323\202\242\322\240\210@\211A@)AA@+\202.\324!\204\342$\203\325
\322=\203\323\323\202\324\322\f
\202.$\203\376\f
\322=\203\364\323\202\365\322%\202.\316\312 !\320\315 @\"&\325&\"$\211'@'\211A@)'AA@+\326V\203:\202<\203Q\203Q\327#\210\330\n!?\205^\n[y\210\314.*\207" [orig-pnt ttl-fnd moved x char style rst-reset-section-caches rst-find-title-line set-match-data 2 line-number-at-pos current-indentation nil rst-get-adornments-around rst-get-hierarchy rst-get-adornment-match rst-suggest-new-adornment copy-sequence simple over-and-under rst-adornment-complete-p rst-get-next-adornment 0 rst-update-section zerop indent curado char-new style-new indent-new hier cur prev rst-new-adornment-down reverse-direction rst-preferred-adornments toggle-style rst-default-indent suggestion nextado] 6 (#$ . 34180)])
(defalias 'rst-adjust-section-title 'rst-adjust)
#@237 Promote the section titles within the region.

With argument DEMOTE or a prefix argument, demote the section
titles instead.  The algorithm used at the boundaries of the
hierarchy is similar to that used by `rst-adjust-adornment-work'.
(defalias 'rst-promote-region #[(demote) "\306 \210\307 \310 \311	!\312\313 !\312\314 !\315\2030\211@@)W\2030A\211\204\212\315\203c\211@@)\211\fW\203ceb\210Sy\210\316 \211@A)D
BA\211\2048)
\315\211\203\231@\211@b\210\317\320\321\211A@)	\n$\"\210@\315\211\223\210A\211\204n*\315\211.\207" [cur hier suggestion region-begin-line region-end-line marker-list rst-reset-section-caches rst-find-all-adornments rst-get-hierarchy rst-suggest-new-adornment line-number-at-pos region-beginning region-end nil point-marker apply rst-update-section rst-get-next-adornment x line p --dolist-tail-- demote deactivate-mark] 8 (#$ . 40461) "P"])
#@144 Display the current file's section title adornments hierarchy.
This function expects a list of (CHARACTER STYLE INDENT) triples
in ADORNMENTS.
(defalias 'rst-display-adornments-hierarchy #[(&optional adornments) "\306 \210\204\n\307 	r\310\311!q\210p\312 \210\n\313\211\314\211\314\315 \210\316\317!\210+\211\320rq\210\313\211\205j@\321\322\"c\210\323\324\"\210db\210\325c\210TA\211\204C\313,\326!\210+\207" [adornments default-directory #1=#:old-dir buffer-read-only buffer-file-name buffer-undo-list rst-reset-section-caches rst-get-hierarchy get-buffer-create "*rest section hierarchy*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook 1 format "\nSection Level %d" apply rst-update-section "\n" internal-temp-output-buffer-show inhibit-modification-hooks inhibit-read-only #2=#:buf standard-output level x --dolist-tail--] 4 (#$ . 41395) nil])
#@224 Redo all the adornments in the current buffer.
This is done using our preferred set of adornments.  This can be
used, for example, when using somebody else's copy of a document,
in order to adapt it to our preferred style.
(defalias 'rst-straighten-adornments #[nil "\304 \210\212\305\306\307 \"\211\310\211\205/\n@\211Ab\210\311\312	@8\"\210	A\310\211\223\210\nA\211\204\310,\207" [levels-and-markers lm --dolist-tail-- rst-preferred-adornments rst-reset-section-caches mapcar #[(ado) "\301A\302 \"eb\210@Sy\210\303 B\207" [ado rst-position rst-get-hierarchy point-marker] 3] rst-find-all-adornments nil apply rst-update-section] 5 (#$ . 42323) nil])
#@74 List of maps between Arabic numbers and their Roman numeral equivalents.
(defconst rst-arabic-to-roman '((1000 . "M") (900 . "CM") (500 . "D") (400 . "CD") (100 . "C") (90 . "XC") (50 . "L") (40 . "XL") (10 . "X") (9 . "IX") (5 . "V") (4 . "IV") (1 . "I")) (#$ . 42992))
#@289 Convert Arabic number NUM to its Roman numeral representation.

Obviously, NUM must be greater than zero.  Don't blame me, blame the
Romans, I mean "what have the Romans ever _done_ for /us/?" (with
apologies to Monty Python).
If optional prefix ARG is non-nil, insert in current buffer.
(defalias 'rst-arabic-to-roman #[(num &optional arg) "\305\n\203@\306V\203@\n\211@@)U\204$\n\211@@)V\2039	\n\211@A)P\n\211@@)Z\202\nA\211\204	*\207" [rst-arabic-to-roman res map num x nil 0] 3 (#$ . 43270)])
#@275 Convert STRING of Roman numerals to an Arabic number.

If STRING contains a letter which isn't a valid Roman numeral, the rest
of the string from that point onwards is ignored.

Hence:
MMD == 2500
and
MMDFLXXVI == 2500.
If optional ARG is non-nil, insert in current buffer.
(defalias 'rst-roman-to-arabic #[(string &optional arg) "\305	\2030\306\307	\211@A)P\f\"\203)\n	\211@@)\\\310\311\312\313\f$\202	A\211\204\n*\207" [rst-arabic-to-roman map res x string 0 string-match "^" replace-match "" nil t] 6 (#$ . 43795)])
#@291 Find all the positions of prefixes in region between BEG and END.
This is used to find bullets and enumerated list items.  PFX-RE is
a regular expression for matching the lines after indentation
with items.  Returns a list of cons cells consisting of the point
and the column of the point.
(defalias 'rst-find-pfx-in-region #[(beg end pfx-re) "\305\212	b\210`\nW\203E\306 \210\307!\203?i\212\310y\210\306 \210\307\311\312!!\2065i\fV\2065i\fU\2055\307!*\203?`iBB\313y\210\202)\237)\207" [pfx beg end pfx-re pfx-col nil back-to-indentation looking-at -1 rst-re lin-end 1] 3 (#$ . 44335)])
#@539 Arrange relative position of a newly inserted list item of style NEWITEM.

Adding a new list might consider three situations:

 (a) Current line is a blank line.
 (b) Previous line is a blank line.
 (c) Following line is a blank line.

When (a) and (b), just add the new list at current line.

when (a) and not (b), a blank line is added before adding the new list.

When not (a), first forward point to the end of the line, and add two
blank lines, then add the new list.

Other situations are just ignored and left to users themselves.
(defalias 'rst-insert-list-pos #[(newitem) "\212\301 \210\302\303\304!!)\203%\212\305y\210\302\303\304!!)\203\306\261\207\307\306\261\207\310\210\311\306\261\207" [newitem beginning-of-line looking-at rst-re lin-end -1 " " "\n" nil "\n\n"] 3 (#$ . 44944)])
#@31 List of initial enumerations.
(defvar rst-initial-enums (byte-code "\304\305\304\211\203.\n@\306\304\211\203&\n@\307	\"B\nA\211\204*\nA\211\204\n*\310\237)B\207" [vals fmt --dolist-tail-- c nil ("%s." "(%s)" "%s)") ("1" "a" "A" "I" "i") format "#."] 4) (#$ . 45755))
#@70 List of initial items.  It's collection of bullets and enumerations.
(defvar rst-initial-items (byte-code "\302\303\304\"	\"\207" [rst-bullets rst-initial-enums append mapcar char-to-string] 4) (#$ . 46046))
#@413 Insert a new list item.

User is asked to select the item style first, for example (a), i), +.  Use TAB
for completion and choices.

If user selects bullets or #, it's just added with position arranged by
`rst-insert-list-pos'.

If user selects enumerations, a further prompt is given.  User need to input a
starting item, for example 'e' for 'A)' style.  The position is also arranged by
`rst-insert-list-pos'.
(defalias 'rst-insert-list-new-item #[nil "\306\307\310\311\310\211\312&\313\314\315!	\"\205\316\317	\"\320 \321\216\n\322\232\2034\323\324\310\211\322$\211\317\325O\227)\202~\n\326\232\203J\323\327\310\211\326$\211\317\325O\226)\202~\n\330\232\203\\\331\332\325\"\333\f!)\202~\n\334\232\203o\331\332\325\"\333\f!\227)\202~\n\335\232\205~\331\332\325\"\336\f!)*\211\203\213\337
\311\211	$\340	!+\207" [rst-initial-items itemstyle cnt save-match-data-internal itemno no completing-read "Select preferred item style [#.]: " nil t "#." string-match rst-re cntexp-tag match-string 0 match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) "a" read-string "Give starting value [a]: " 1 "A" "Give starting value [A]: " "I" read-number "Give starting value [1]: " rst-arabic-to-roman "i" "1" number-to-string replace-match rst-insert-list-pos] 9 (#$ . 46262) nil])
(byte-code "\301\302\303\304\305\306\307\310\311\312\313\"BD\314\315&	\210\316 \207" [rst-bullets custom-declare-variable rst-preferred-bullets '(42 45 43) "List of favorite bullets." :group rst :type repeat choice mapcar #[(char) "\301\302\303!F\207" [char const :tag char-to-string] 4] :package-version (rst . "1.1.0") rst-testcover-defcustom] 12)
#@142 Insert a list item with list start CURITEM including its indentation level.
If PREFER-ROMAN roman numbering is preferred over using letters.
(defalias 'rst-insert-list-continue #[(curitem prefer-roman) "\305\210\306\307\310\311!\"\203\202\250\307\310\312!\"\203+\313\314\315\316\317\"!T!\305\211$\202\250\307\310\320!\"\203\221\321 \322\216\307\310\323!\"\203b\212\324\325y!\203]\326\310\327!!\203]\307\310\320!\316\317!\"\202^\n)\202c\330*\203\221\313\316\317\"\321 \331\216\332\333\226!T!*\211\226\232\203\207\f\226\202\211\f\227*\330\305$\202\250\307\310\323!\"\205\250\313\334\335\316\317\"!T!\305\211$\261\207" [curitem save-match-data-internal prefer-roman old new nil "\n" string-match rst-re (:alt enmaut-tag bul-tag) num-tag replace-match number-to-string string-to-number match-string 0 rom-tag match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) ltr-tag zerop -1 looking-at enmexp-beg t ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) rst-arabic-to-roman rst-roman-to-arabic char-to-string string-to-char] 7 (#$ . 47957)])
#@1212 Insert a list item at the current point.

The command can insert a new list or a continuing list.  When it is called at a
non-list line, it will promote to insert new list.  When it is called at a list
line, it will insert a list with the same list style.

1. When inserting a new list:

User is asked to select the item style first, for example (a), i), +.  Use TAB
for completion and choices.

 (a) If user selects bullets or #, it's just added.
 (b) If user selects enumerations, a further prompt is given.  User needs to
     input a starting item, for example 'e' for 'A)' style.

The position of the new list is arranged according to whether or not the
current line and the previous line are blank lines.

2. When continuing a list, one thing need to be noticed:

List style alphabetical list, such as 'a.', and roman numerical list, such as
'i.', have some overlapping items, for example 'v.' The function can deal with
the problem elegantly in most situations.  But when those overlapped list are
preceded by a blank line, it is hard to determine which type to use
automatically.  The function uses alphabetical list by default.  If you want
roman numerical list, just use a prefix to set PREFER-ROMAN.
(defalias 'rst-insert-list #[(&optional prefer-roman) "\301 \210\302\303\304!!\203\305\306\307!\"\207\310 \207" [prefer-roman beginning-of-line looking-at rst-re itmany-beg-1 rst-insert-list-continue match-string 0 rst-insert-list-new-item] 3 (#$ . 49118) "P"])
#@402 Make all the bulleted list items in the region consistent.
The region is specified between BEG and END.  You can use this
after you have merged multiple bulleted lists to make them use
the same/correct/consistent bullet characters.

See variable `rst-preferred-bullets' for the list of bullets to
adjust.  If bullets are found on levels beyond the
`rst-preferred-bullets' list, they are not modified.
(defalias 'rst-straighten-bullets-region #[(beg end) "\306	\307\310!#\311\312\313\"\211\314\211\2035
@\211A\315\316\317\n\314#\f@C\"\n#\210)
A\211\204*\314\320\321\n\"\210\322\323\"\314\211\205\202
@\203z\fA\314\211\203v
@\211b\210\324\325!\210\326@!c\210
A\211\204^*A
A\211\204M\314.\207" [beg end levtable bullets x --dolist-tail-- rst-find-pfx-in-region rst-re bul-sta make-hash-table :size 4 nil puthash append gethash maphash #[(x y) "	B\nB\211\207" [x y poslist] 2] sort car-less-than-car delete-char 1 string key poslist rst-preferred-bullets pos] 8 (#$ . 50601) "r"])
#@391 Return the hierarchical tree of section titles.
A tree entry looks like ((TITLE MARKER) CHILD...).  TITLE is the
stripped text of the section title.  MARKER is a marker for the
beginning of the title text.  For the top node or a missing
section level node TITLE is nil and MARKER points to the title
text of the first child.  Each CHILD is another tree entry.  The
CHILD list may be empty.
(defalias 'rst-section-tree #[nil "\306 \307\310\311\312\313$\314\315\n\314\211\2032
@\316\f@\f\211A@)B	#\210T
A\211\204+\212\317\320\321 \")\322\323\"A+\207" [lev-ttl-mrk-l ch-sty2level hier lev ado --dolist-tail-- rst-get-hierarchy make-hash-table :test equal :size 10 nil 0 puthash mapcar #[(ado) "eb\210@Sy\210\303\211A@)AA@B\n\"\212\304\305\306!\307 \310#\203+\311\312\224\312\225\"\202,\313)\314 E\207" [ado x ch-sty2level gethash re-search-forward rst-re "\\S .*\\S " line-end-position t buffer-substring-no-properties 0 "" point-marker] 6] rst-find-all-adornments rst-section-tree-rec -1 x] 7 (#$ . 51630)])
#@428 Process the first entry of REMAINING expected to be on level LEV.
REMAINING is the remaining list of adornments consisting
of (LEVEL TITLE MARKER) entries.

Return (UNPROCESSED (TITLE MARKER) CHILD...) for the first entry
of REMAINING where TITLE is nil if the expected level is not
matched.  UNPROCESSED is the list of still unprocessed entries.
Each CHILD is a child of this entry in the same format but
without UNPROCESSED.
(defalias 'rst-section-tree-rec #[(remaining lev) "@\306\211\211\203\f@
U\203A\fA\203>\211	@@)
V\203>\307
T\"\211\nA	B\n@)\202\310	!\n\206M\306	@@AB	,BB\207" [remaining children ttl-mrk unprocessed cur lev nil rst-section-tree-rec reverse x rem-children] 5 (#$ . 52667)])
#@460 Return section containing POINT by returning the closest node in TREE.
TREE is a section tree as returned by `rst-section-tree'
consisting of (NODE CHILD...) entries.  POINT defaults to the
current point.  A NODE must have the structure (IGNORED MARKER
...).

Return (PATH NODE CHILD...).  NODE is the node where POINT is in
if any.  PATH is a list of nodes from the top of the tree down to
and including NODE.  List of CHILD are the children of NODE if
any.
(defalias 'rst-section-tree-point #[(tree &optional point) "\206`	@	A\211\211A@)\203Y\211A@)Y\203Y\306\n\2039\n@@A@Y\2039\n\nA\211\204&
\203Q\307
@\"@BA)B\202UC	B)\202\\CC*\207" [point tree children cur x found nil rst-section-tree-point sub] 4 (#$ . 53401)])
(byte-code "\300\301\302\303\304\305\306\307&\210\310\311\312\313\304\301%\210\314 \210\310\315\316\317\304\301%\210\314 \210\310\320\321\322\304\301%\210\314 \207" [custom-declare-group rst-toc nil "Settings for reStructuredText table of contents." :group rst :version "21.1" custom-declare-variable rst-toc-indent 2 "Indentation for table-of-contents display.\nAlso used for formatting insertion, when numbering is disabled." rst-testcover-defcustom rst-toc-insert-style 'fixed "Insertion style for table-of-contents.\nSet this to one of the following values to determine numbering and\nindentation style:\n- plain: no numbering (fixed indentation)\n- fixed: numbering, but fixed indentation\n- aligned: numbering, titles aligned under each other\n- listed: numbering, with dashes like list items (EXPERIMENTAL)" rst-toc-insert-number-separator "  " "Separator that goes between the TOC number and the title."] 8)
#@72 (Internal) What happens when you click on propertized text in the TOC.
(defvar rst-toc-insert-click-keymap (byte-code "\301 \302\303\304#\210)\207" [map make-sparse-keymap define-key [mouse-1] rst-toc-mode-mouse-goto] 4) (#$ . 55075))
(byte-code "\300\301\302\303\304\305%\210\306 \207" [custom-declare-variable rst-toc-insert-max-level nil "If non-nil, maximum depth of the inserted TOC." :group rst-toc rst-testcover-defcustom] 6)
#@320 Insert a simple text rendering of the table of contents.
By default the top level is ignored if there is only one, because
we assume that the document will have a single title.

If a numeric prefix argument PFXARG is given, insert the TOC up
to the specified level.

The TOC is inserted indented at the current column.
(defalias 'rst-toc-insert #[(&optional pfxarg) "\306 \210\250\203\307!\310V\203\307!\202	\311\312 !\313i\314\"`\n\211AA)\205?\315\nA\310\316$\210\f\211G\\|\210\317\320!,\207" [pfxarg rst-toc-insert-max-level sectree-pair initial-indent init-point x rst-reset-section-caches prefix-numeric-value 0 rst-section-tree-point rst-section-tree make-string 32 rst-toc-insert-node "" delete-char -1] 6 (#$ . 55518) "P"])
#@300 Insert tree node NODE in table-of-contents.
Recursive function that does printing of the inserted toc.
LEVEL is the depth level of the sections in the tree.
INDENT is the indentation string.  PFX is the prefix numbering,
that includes the alignment necessary for all the children of
level to align.
(defalias 'rst-toc-insert-node #[(node level indent pfx) "\306V\307\211\203\221c\210`
\310\232\204%&\261\210'\211(@@)\206(\311c\210\312\f`\313\314$\210\312\f`\315'@A@$\210\312\f`\316)$\210)\317c\210
\310=\203X\320*\321\"P\202\220
\322=\203h\320*\321\"P\202\220
\323=\203{\320%G\324\\\321\"P\202\220
\325=\205\220\306\326O\320%G\324\\\321\"\327PP+\330=\204\237+W\205\306Y\330,\211-\203\332%G\306V\203\306\331\332\333!%\"\210\334\335\336\211%$\337P%'A\203\332\340\341\342\343'AG!!T\",'A\330.\211/\205/@.\344.T-\203%\340,	\"P\202%$\210	T/A\211/\204\346\330,*\207" [level count do-print indent b rst-toc-insert-style 0 1 plain "[missing node]" put-text-property mouse-face highlight rst-toc-target keymap "\n" make-string 32 fixed aligned 2 listed -3 " - " nil string-match rst-re "[ 	\n]*\\'" replace-match "" t "." format "%%-%dd" floor log10 rst-toc-insert-node pfx rst-toc-insert-number-separator node x rst-toc-insert-click-keymap rst-toc-indent rst-toc-insert-max-level fmt do-child-numbering child --dolist-tail--] 9 (#$ . 56273)])
#@190 Automatically find the contents section of a document and update.
Updates the inserted TOC if present.  You can use this in your
file-write hook to always make it up-to-date automatically.
(defalias 'rst-toc-update #[nil "\212eb\210\302\303\304\305\306\307\310\311\312\313\314\315&\n\316\317#\316\211\203\\\320y\210`dW\203B\321\303\312\322\"!\2034`\211\204<\321\303\323!!\203B\320y\210\202\203Sb\210\316\210	`|\210\202V	b\210\324c\210\325 \210+\316\207" [last-real beg re-search-forward rst-re "^" exm-sta "contents" dcl-tag ".*\n" "\\(?:" hws-sta fld-tag ".*\n\\)*" exm-tag nil t 1 looking-at "\\S " lin-end "\n    " rst-toc-insert] 13 (#$ . 57687) nil])
(defalias 'rst-toc-insert-update 'rst-toc-update)
#@77 Recursive function that does insert NODE at LEVEL in the table-of-contents.
(defalias 'rst-toc-node #[(node level) "\306V\2032`\307\nS_\310\"c\210\211@@)\206\311c\210\312	`\313\314$\210\312	`\315@A@$\210\316c\210)A\317\211\205P@\320
T\"\210A\211\204<\317*\207" [level b rst-toc-indent node x child 0 make-string 32 "[missing node]" put-text-property mouse-face highlight rst-toc-target "\n" nil rst-toc-node --dolist-tail--] 6 (#$ . 58414)])
#@219 Count the number of lines from NODE to the TARGET-NODE node.
This recursive function returns a cons of the number of
additional lines that have been counted for its node and
children, and t if the node has been found.
(defalias 'rst-toc-count-lines #[(node target-node) "\306\307\n=\203\310\2020\nA\f\203/\204/\311\f@\"	
@\\
A\fA)\202)	*B\207" [found count node target-node child cl 1 nil t rst-toc-count-lines] 3 (#$ . 58886)])
#@39 Name of the Table of Contents buffer.
(defvar rst-toc-buffer-name "*Table of Contents*" (#$ . 59340))
#@63 Window configuration to which to return when leaving the TOC.
(defvar rst-toc-return-wincfg nil (#$ . 59448))
#@306 Display a table-of-contents.
Finds all the section titles and their adornments in the
file, and displays a hierarchically-organized list of the
titles, which is essentially a table-of-contents of the
document.

The Emacs buffer can be navigated, and selecting a section
brings the cursor in that section.
(defalias 'rst-toc #[nil "\306 \210\307 \310 D\311 \312	!A\313\314\f!r
q\210\315\316 \210ed|\210\317\320	\211@@)\2062\321\"c\210\322e`\323\324C$\210\325	\326\"\210\327	\n\"\211A\203S@\202T\326+\330
!\210\331
!\210\332\333!\210eb\210Sy-\207" [curbuf sectree our-node line rst-toc-buffer-name buf rst-reset-section-caches current-window-configuration point-marker rst-section-tree rst-section-tree-point nil get-buffer-create t rst-toc-mode format "Table of Contents: %s\n" "" put-text-property face (background-color . "gray") rst-toc-node 0 rst-toc-count-lines display-buffer pop-to-buffer make-local-variable rst-toc-return-wincfg inhibit-read-only x linefound] 6 (#$ . 59565) nil])
#@46 Get the section from text property at point.
(defalias 'rst-toc-mode-find-section #[nil "\301`\302\"\211\204
\303\304!\210\305\306!!\204\303\307!\210)\207" [pos get-text-property rst-toc-target error "No section on this line" buffer-live-p marker-buffer "Buffer for this section was killed"] 4 (#$ . 60581)])
#@82 Go to the section the current line describes.
If KILL a toc buffer is destroyed.
(defalias 'rst-goto-section #[(&optional kill) "\304 	\203\305\n@!\210\306\307!!\210\310\311!!\210b\210\312\313!)\207" [pos kill rst-toc-return-wincfg rst-toc-buffer-name rst-toc-mode-find-section set-window-configuration kill-buffer get-buffer pop-to-buffer marker-buffer recenter 5] 3 (#$ . 60902) nil])
#@71 Go to the section the current line describes and kill the TOC buffer.
(defalias 'rst-toc-mode-goto-section #[nil "\300\301!\207" [rst-goto-section t] 2 (#$ . 61301) nil])
#@92 In `rst-toc' mode, go to the occurrence whose line you click on.
EVENT is the input event.
(defalias 'rst-toc-mode-mouse-goto #[(event) "r\303\304!\211@)!q\210\212\304!\305	8\206(	A@:\203%	A@@\202(	A@)b\210\306 *\307\310\n!!\210\nb\210\311\305!)\207" [event position pos window-buffer event-end 5 rst-toc-mode-find-section pop-to-buffer marker-buffer recenter] 4 (#$ . 61478) "e"])
#@91 Same as `rst-toc-mode-mouse-goto', but kill TOC buffer as well.
EVENT is the input event.
(defalias 'rst-toc-mode-mouse-goto-kill #[(event) "\302\303\"\210\304\305	!!\207" [event rst-toc-buffer-name call-interactively rst-toc-mode-mouse-goto kill-buffer get-buffer] 3 (#$ . 61874) "e"])
#@31 Leave the current TOC buffer.
(defalias 'rst-toc-quit-window #[nil "\303	@!\210	\211A@)b)\207" [rst-toc-return-wincfg retbuf x set-window-configuration] 3 (#$ . 62168) nil])
#@28 Keymap for `rst-toc-mode'.
(defvar rst-toc-mode-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\310#\210\302\312\313#\210\302\314\315#\210)\207" [map make-sparse-keymap define-key [mouse-1] rst-toc-mode-mouse-goto-kill [mouse-2] rst-toc-mode-mouse-goto "
" rst-toc-mode-goto-section "f" "q" rst-toc-quit-window "z" kill-this-buffer] 4) (#$ . 62351))
(byte-code "\300\301\302\303#\210\304\305N\204\300\304\305\306\307!#\210\310\311!\204 \300\311\312\301#\210\300\207" [put rst-toc-mode mode-class special rst-toc-mode-hook variable-documentation purecopy "Hook run when entering ReST-TOC mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp rst-toc-mode-map definition-name] 5)
(defvar rst-toc-mode-map (make-sparse-keymap))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [rst-toc-mode-map variable-documentation put purecopy "Keymap for `rst-toc-mode'." boundp rst-toc-mode-syntax-table definition-name rst-toc-mode] 5)
(defvar rst-toc-mode-syntax-table (make-syntax-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [rst-toc-mode-syntax-table variable-documentation put purecopy "Syntax table for `rst-toc-mode'." rst-toc-mode-abbrev-table definition-name rst-toc-mode] 5)
(defvar rst-toc-mode-abbrev-table (progn (define-abbrev-table 'rst-toc-mode-abbrev-table nil) rst-toc-mode-abbrev-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [rst-toc-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `rst-toc-mode'." rst-toc-mode derived-mode-parent nil] 5)
#@167 Major mode for output from \[rst-toc], the table-of-contents for the document.

This mode runs the hook `rst-toc-mode-hook', as the final step
during initialization.
(defalias 'rst-toc-mode #[nil "\306\300!\210\307\310 \210\311\312\313!\210\314\f!\210
\307)\315\316!\207" [delay-mode-hooks major-mode mode-name rst-toc-mode-map rst-toc-mode-syntax-table rst-toc-mode-abbrev-table make-local-variable t kill-all-local-variables rst-toc-mode "ReST-TOC" use-local-map set-syntax-table run-mode-hooks rst-toc-mode-hook local-abbrev-table buffer-read-only] 2 (#$ . 64087) nil])
#@168 Skip to the next reStructuredText section title.
OFFSET specifies how many titles to skip.  Use a negative OFFSET to move
backwards in the file (default is to use 1).
(defalias 'rst-forward-section #[(&optional offset) "\306 \210\206\307\310 \311 	\312\203+\211@@)\nW\203+A\fT\202\312V\203C\203C\211@@)\nU\203C\fT\f\312V\203OS\202P\\\211	8\211\203j\f\312Y\203jeb\210@Sy\202w\312V\203udb\202web-\207" [offset allados curline cur idx x rst-reset-section-caches 1 rst-find-all-adornments line-number-at-pos 0] 4 (#$ . 64675) nil])
#@57 Like `rst-forward-section', except move back one title.
(defalias 'rst-backward-section #[nil "\300\301!\207" [rst-forward-section -1] 2 (#$ . 65249) nil])
#@122 Select COUNT sections around point.
Mark following sections for positive COUNT or preceding sections
for negative COUNT.
(defalias 'rst-mark-section #[(&optional count allow-extend) "\204\304\305!\203\306\307!\210	\2033\n=\203 \310\311!\204%\312 \2033\313\212\310 b\210\314!\210`)!\207\314!\210\315\316\311\211#\210\314[!\207" [count allow-extend last-command this-command 1 zerop error "Cannot mark zero sections" mark t use-region-p set-mark rst-forward-section push-mark nil] 4 (#$ . 65412) "p\np"])
#@50 Return the leftmost column in region BEG to END.
(defalias 'rst-find-leftmost-column #[(beg end) "\303\212	b\210`\nW\203)\304 \210\305\306\307!!\204#\203!i^\202\"i\310y\210\202))\207" [mincol beg end nil back-to-indentation looking-at rst-re lin-end 1] 3 (#$ . 65936)])
#@278 Call FUN at the beginning of each line, with an argument that
specifies whether we are at the first line of a paragraph that
starts at the leftmost column of the given region BEG and END.
Set FIRST-ONLY to true if you want to callback on the first line
of each paragraph only.
(defalias 'rst-iterate-leftmost-paragraphs '(macro . #[(beg end first-only body-consequent body-alternative) "\305\306\307\310	ED\311\312	DDD\313\314\315\316D\317BB\320BB\321B\322\323\211\n\324BB\fFFED\207" [beg end first-only body-consequent body-alternative save-excursion let leftcol rst-find-leftmost-column endm copy-marker do* l progn goto-char ((back-to-indentation)) ((progn (forward-line 1) (back-to-indentation))) ((previous nil valid) (curcol (current-column) (current-column)) (valid (and (= curcol leftcol) (not (looking-at (rst-re 'lin-end)))) (and (= curcol leftcol) (not (looking-at (rst-re 'lin-end)))))) ((>= (point) endm)) if ((and valid (not previous)) valid)] 10 (#$ . 66224)]))
#@210 Evaluate BODY for each line in region defined by BEG END.
LEFTMOST is set to true if the line is one of the leftmost of the
entire paragraph.  PARABEGIN is set to true if the line is the
first of a paragraph.
(defalias 'rst-iterate-leftmost-paragraphs-2 '(macro . #[(spec &rest body) "\211G\306U\203	\211A@\202\307\310\311	GD\"	\211A@	\211A@	\211A@	\211A@	@\312\313
\314\nED\315\316DDD\317\320\321\322\nD\323BB\324BB\325\311E\326B\f\327D\330\325\327DEE\330\327D\331\332
EE\330\327D\331\333
EEE\257\334\321BFE.D\207" [spec #1=#:--cl-rest-- beg end parabegin leftmost 6 signal wrong-number-of-arguments nil save-excursion let rst-find-leftmost-column endm copy-marker do* l progn goto-char ((back-to-indentation)) ((progn (forward-line 1) (back-to-indentation))) empty-line-previous ((looking-at (rst-re 'lin-end)) (looking-at (rst-re 'lin-end))) not and = (current-column) (current-column) ((>= (point) endm)) isleftmost isempty body] 16 (#$ . 67211)]))
(byte-code "\302\303\304\305#\210\302\303\306\307#\210\310\311\312\313\314\315\316\317&\210\320\321\322\312#\210\323\312\211\203C	@\321N\203<\322N\204<\302\322\321N#\210	A\211\204%*\324\321\322\325#\210\326\322\327\330\314\311\331\332&\210\333 \210\326\334\335\336\314\311\316\337\331\340&	\210\333 \210\326\341\335\342\314\311\316\343\331\344&	\210\333 \210\326\345\327\346\314\311\316\347\331\350&	\210\333 \210\326\351\335\352\314\311\316\353\331\354&	\210\333 \207" [prop --dolist-tail-- put rst-iterate-leftmost-paragraphs-2 lisp-indent-function 1 edebug-form-spec (sexp body) custom-declare-group rst-indent nil "Settings for indentation in reStructuredText.\n\nIn reStructuredText indentation points are usually determined by\npreceding lines. Sometimes the syntax allows arbitrary\nindentation points such as where to start the first line\nfollowing a directive. These indentation widths can be customized\nhere." :group rst :package-version (rst . "1.1.0") defvaralias rst-shift-basic-offset rst-indent-width (saved-value saved-variable-comment) make-obsolete-variable "rst 1.0.0" custom-declare-variable 2 "Indentation when there is no more indentation point given." :type (integer) rst-testcover-defcustom rst-indent-field 3 "Indentation for first line after a field or 0 to always indent for content." (rst . "1.1.0") (integer) rst-indent-literal-normal "Default indentation for literal block after a markup on an own line." (rst . "1.1.0") (integer) rst-indent-literal-minimized "Default indentation for literal block after a minimized markup." (rst . "1.1.0") (integer) rst-indent-comment "Default indentation for first line of a comment." (rst . "1.1.0") (integer)] 11)
#@347 Return tabs of the current line or nil for no tab.
The list is sorted so the tab where writing continues most likely
is the first one.  Each tab is of the form (COLUMN . INNER).
COLUMN is the column of the tab.  INNER is non-nil if this is an
inner tab.  I.e. a tab which does come from the basic indentation
and not from inner alignment points.
(defalias 'rst-line-tabs #[nil "\212\306y\210\307 \310\216\311\312\313!!?\205\314 \210`\306\315EC\311\312\316\317\320#!\2036\321\322!\203\342\322\224\306\323E	B\202\342\311\312\324\325\326\320$!\203}\327\n!\204O\330\224\n\323E	B\321\331!\203`\331\224\306\323E	B\202\342\327\n!\203\342\322\225\321\322!\332\230\203t\330\202u\306\323E	B\202\342\311\312\333\334\320#!\203\260\330\225\306\323E	B\321\322!\332\230\204\237\322\225\306\323E	B\321\335!\203\342\335\224\306\323E	B\202\342\311\312\336\337\320#!\203\323\330\225\306\323E	B\321\331!\203\342\331\224\306\323E	B\202\342\311\312\340!!\203\342`\323E	B\311\312\341!!\203		@\211@\f\211A@)\321\330!\203$\202%\\\323E	B)\342\343	\")+\207" [save-match-data-internal tabs rst-indent-field rst-indent-comment tab0 x 0 match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) looking-at rst-re lin-end back-to-indentation nil (:grp itmany-tag hws-sta) (:grp "\\S ") "?" match-string 2 t (:grp fld-tag) (:grp hws-tag) (:grp "\\S ") zerop 1 3 "" dir-sta-3 (:grp "\\S ") 4 fnc-sta-2 (:grp "\\S ") cmt-sta-1 lit-sta-2 mapcar #[(tab) "@b\210i\211A@)\\AA@B\207" [tab x] 3] rst-indent-literal-minimized rst-indent-literal-normal] 7 (#$ . 69909)])
#@326 Build the list of possible tabs for all lines above.
Search backwards from point PT to build the list of possible
tabs.  Return a list of tabs sorted by likeliness to continue
writing like `rst-line-tabs'.  Nearer lines have generally a
higher likeliness than farther lines.  Return nil if no tab is found
in the text above.
(defalias 'rst-compute-tabs #[(pt) "\212b\210\306\211\211\307\310y!\203\245\203\311V\203\245\312 \211\205)\313\314\315\316\f\"\"\f\203\241\203B
W\204B\n\204\241
U\203\241\f\306\211\203\217@\211A@\211\204i\203yW\204y\203\205\n\203y\nW\203\205	>\204\205	B*A\211\204L*\317\315\320\f\"!\203\235
\202\236\n
*\202\n	\237,\207" [pt tablist innermost leftmost tabs leftcol nil zerop -1 0 rst-line-tabs apply min mapcar car rst-some cdr tab --dolist-tail-- newcol inner] 6 (#$ . 71532)])
#@592 Indent current line to next best reStructuredText tab.
The next best tab is taken from the tab list returned by
`rst-compute-tabs' which is used in a cyclic manner.  If the
current indentation does not end on a tab use the first one.  If
the current indentation is on a tab use the next tab.  This allows
a repeated use of \[indent-for-tab-command] to cycle through all
possible tabs.  If no indentation is possible return `noindent' or
use DFLT.  Return the indentation indented to.  When point is in
indentation it ends up at its end.  Otherwise the point is kept
relative to the content.
(defalias 'rst-indent-line #[(&optional dflt) "\306 \307 i\310`!\311	\"\312\204 \204 \313\202V\204*\202C\f\2043\314\202?\fT\211GY\203?\314\f8\315
!\210\n	V\203Pb\210\312\211\223\210
.\207" [pt cur clm tabs fnd ind point-marker current-indentation rst-compute-tabs rst-position nil noindent 0 indent-line-to dflt] 4 (#$ . 72409)])
#@227 Shift region BEG to END by CNT tabs.
Shift by one tab to the right (CNT > 0) or left (CNT < 0) or
remove all indentation (CNT = 0).  A tab is taken from the text
above.  If no suitable tab is found `rst-indent-width' is used.
(defalias 'rst-shift-region #[(beg end cnt) "\306\307!\310\"\311	\"\n\312V\204\f\312V\205\307\313	\314\f!\203&\n[\202\306\f\312V\2030\315\2021\316\f\312V\203<\202?\317!\211G\320\f!\321\f!\322\323!\322\324! \211!\211\"
L\210) \211#\nL\210)\325\326\327\330\331\332D\331 D\331!D\333\257E\"*\211$\206\207S\\\211%W\203\233%8\202\277\334!@\206\243\n\335%SZ&#\\\211'\312W\203\274\312\202\276')\211(\nZ.#*\207" [beg end leftmostcol tabs cnt cmp sort rst-compute-tabs #[(x y) "	X\207" [x y] 2] rst-find-leftmost-column 0 indent-rigidly zerop > < reverse rst-signum abs make-symbol "--cmp--" "--leftmostcol--" rst-position-if lambda (&rest --cl-rest--) apply quote #[(#1=#:G40301 #2=#:G40302 elt) "J	\nJ\"\207" [#2# elt #1#] 3] --cl-rest-- last * len dir #3=#:--cl-leftmostcol-- #4=#:--cl-cmp-- #5=#:v #6=#:v fnd pos rst-indent-width col tab] 12 (#$ . 73369) "r\np"])
#@72 Return fill prefix found at point.
Value for `adaptive-fill-function'.
(defalias 'rst-adaptive-fill #[nil "\304!\205	\305\306!\307 \310\216\311	\"*\204	\202-\312\212\306\225b\210i)\212\306\224b\210i)Z\313\")\207" [adaptive-fill-regexp fnd save-match-data-internal comment-start-skip looking-at match-string-no-properties 0 match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match make-string 32] 3 (#$ . 74521)])
#@189 Break line and indent, continuing reStructuredText comment if within one.
Value for `comment-line-break-function'.  If SOFT use soft
newlines as mandated by `comment-line-break-function'.
(defalias 'rst-comment-line-break #[(&optional soft) "\203\302\303!\210\202\304\305!\210\212\306u\210\307 \210)\307 \210\310`!\211\205&\311	@!)\207" [soft tabs insert-and-inherit 10 newline 1 -1 delete-horizontal-space rst-compute-tabs indent-line-to] 3 (#$ . 75002)])
#@46 Return indentation for current comment line.
(defalias 'rst-comment-indent #[nil "\300`!@\207" [rst-compute-tabs] 2 (#$ . 75472)])
#@39 Insert a comment in the current line.
(defalias 'rst-comment-insert-comment #[nil "\301\302!\210c\207" [comment-start rst-indent-line 0] 2 (#$ . 75609)])
#@93 Comment or uncomment the current region.
Region is from from BEG to END.  Uncomment if ARG.
(defalias 'rst-comment-region #[(beg end &optional arg) "\212:\203\306	\n#\2024	b\210\307 \310\311y\210`\312\n
#\210b\210\313\314!\210\315\f!\210\316\317\211#c*)\207" [arg beg end bol ind rst-indent-comment rst-uncomment-region current-indentation nil 0 indent-rigidly open-line 1 indent-line-to comment-string-strip t comment-start] 4 (#$ . 75770)])
#@74 Uncomment the current region.
Region is from BEG to END.  ARG is ignored
(defalias 'rst-uncomment-region #[(beg end &optional arg) "\212\305\211\nb\210\306y\210`\307y\210`\310\f[#\210	|+\207" [eol bol beg end rst-indent-comment nil 0 1 indent-rigidly] 4 (#$ . 76231)])
#@166 Add enumeration to all the leftmost paragraphs in the given region.
The region is specified between BEG and END.  With ALL,
do all lines instead of just paragraphs.
(defalias 'rst-enumerate-region #[(beg end all) "\306\307\212\310\n\"\311!\nb\210\312 \307i\211
U\205'\313\314\315!!?`\fY\204}\204?\203X?\202A\203X\316\317	T\211\"\211Gc\210)\202^\320\321\"c\210\322y\210\312 i\211
U\205x\313\314\315!!?\202).	\307\207" [last-insert-len count beg end endm leftcol 0 nil rst-find-leftmost-column copy-marker back-to-indentation looking-at rst-re lin-end format "%d. " make-string 32 1 l previous curcol valid all ins-string] 5 (#$ . 76514) "r\nP"])
#@162 Add bullets to all the leftmost paragraphs in the given region.
The region is specified between BEG and END.  With ALL,
do all lines instead of just paragraphs.
(defalias 'rst-bullet-list-region #[(beg end all) "\212\306	\"\307	!b\210\310 \311i\211U\205!\312\313\314!!?`\nY\204g\2048\203G
?\202:\203G@\315\261\210\202J\316c\210\317y\210\310 i\211U\205b\312\313\314!!?\202#.\311\207" [beg end endm leftcol l previous rst-find-leftmost-column copy-marker back-to-indentation nil looking-at rst-re lin-end " " "  " 1 curcol valid all rst-preferred-bullets] 4 (#$ . 77214) "r\nP"])
#@129 Convert the bulleted and enumerated items in the region to enumerated lists.
Renumber as necessary.  Region is from BEG to END.
(defalias 'rst-convert-bullets-to-enumeration #[(beg end) "\306\307\310	\311\312!#\"\313\212\n\314\211\2059
@\211@b\210\315\311\316!!\210\317\320\321\"\314\211\211\313%\210T
A\211\204\314-\207" [beg end items count x --dolist-tail-- mapcar #[(x) "\301@!AB\207" [x copy-marker] 2] rst-find-pfx-in-region rst-re itmany-sta-1 1 nil looking-at itmany-beg-1 replace-match format "%d."] 8 (#$ . 77838) "r"])
#@109 Toggle line block prefixes for a region.
Region is from RBEG to REND.  With PFXARG set the empty lines too.
(defalias 'rst-line-block-region #[(rbeg rend &optional pfxarg) "\306\307\306\310??\212\311\"\312!b\210\313 \314\315\316\317!!\211??\205;iU`Y\204\213	\204M\204`\320	\"\210``\321 Z\\|\210\306c\210\322y\210\313 \315\316\317!!\205z??\205\206iU\202=.
\314\207" [pfxarg force comment-style comment-start-skip comment-end comment-start "| " "" indent rst-find-leftmost-column copy-marker back-to-indentation nil looking-at rst-re lin-end move-to-column current-indentation 1 rbeg rend endm leftmost l empty-line-previous isempty parbegin isleft] 6 (#$ . 78390) "r\nP"])
(byte-code "\302\303!\210\304\305\306\307\310\311\310\312\313\314&	\210\315\316\317\320\313\321\310\305&\210\322\323\324\325\313\321\310\305\326\327&	\210\330 \210\331\323\332\321#\210\315\333\334\335\313\321\310\305&\210\322\336\337\340\313\321\310\305\326\341&	\210\330 \210\331\336\342\321#\210\315\343\344\345\313\321\310\305&\210\322\346\347\350\313\321\310\305\326\351&	\210\330 \210\331\346\352\321#\210\315\353\354\355!\203\200\356\202\201\357\360\313\321\310\305&\210\322\361\362\363\310\305\326\364&\210\330 \210\331\361\365\321#\210\315\366\367\370\313\321\310\305&\210\322\371\372\373\313\321\310\305\326\374&	\210\330 \210\331\371\375\321#\210\315\376\377\201@\313\321\310\305&\210\322\201A\201B\201C\313\321\310\305\326\201D&	\210\330 \210\331\201A\201E\321#\210\315\201F\201G\201H\313\321\310\305&\210\322\201I\201J\201K\310\305\326\201L&\210\330 \210\331\201I\201M\321#\210\315\201N\201O\201P\313\321\310\305&\210\322\201Q\201R\201S\313\321\310\305\326\201T&	\210\330 \210\331\201Q\201U\321#\210\315\201V\201W\201X\313\321\310\305&\210\322\201Y\201Z\201[\313\321\310\305\326\201\\&	\210\330 \210\331\201Y\201]\321#\210\315\201^\201_\201`\201a\201b\310\305&\210\315\201c\201d\201e\201a\201f\310\305&\210\201g\306\211\203\314	@\331\201h\201i#\210	A\211\204\270*\315\201j\201k\201l\201a\201m%\210\315\201n\201o\201p\201a\201q%\210\315\201r\201s\201t\201a\201u%\210\315\201v\201w\201x\201a\201y%\210\315\201z\201{\201|\201a\201}%\210\315\201~\201\201\200\201a\201\201%\210\322\201\202\201\203\201\204\310\305\326\201\205&\210\330 \207" [var --dolist-tail-- require font-lock custom-declare-group rst-faces nil "Faces used in Rst Mode." :group rst faces :version "21.1" custom-declare-face rst-block ((t :inherit font-lock-keyword-face)) "Face used for all syntax marking up a special block." "24.1" custom-declare-variable rst-block-face 'rst-block "All syntax marking up a special block." :type (face) rst-testcover-defcustom make-obsolete-variable "customize the face `rst-block' instead." rst-external ((t :inherit font-lock-type-face)) "Face used for field names and interpreted text." rst-external-face 'rst-external "Field names and interpreted text." (face) "customize the face `rst-external' instead." rst-definition ((t :inherit font-lock-function-name-face)) "Face used for all other defining constructs." rst-definition-face 'rst-definition "All other defining constructs." (face) "customize the face `rst-definition' instead." rst-directive boundp font-lock-builtin-face ((t :inherit font-lock-builtin-face)) ((t :inherit font-lock-preprocessor-face)) "Face used for directives and roles." rst-directive-face 'rst-directive "Directives and roles." (face) "customize the face `rst-directive' instead." rst-comment ((t :inherit font-lock-comment-face)) "Face used for comments." rst-comment-face 'rst-comment "Comments." (face) "customize the face `rst-comment' instead." rst-emphasis1 ((t :inherit italic)) "Face used for simple emphasis." rst-emphasis1-face 'rst-emphasis1 "Simple emphasis." (face) "customize the face `rst-emphasis1' instead." rst-emphasis2 ((t :inherit bold)) "Face used for double emphasis." rst-emphasis2-face 'rst-emphasis2 "Double emphasis." (face) "customize the face `rst-emphasis2' instead." rst-literal ((t :inherit font-lock-string-face)) "Face used for literal text." rst-literal-face 'rst-literal "Literal text." (face) "customize the face `rst-literal' instead." rst-reference ((t :inherit font-lock-variable-name-face)) "Face used for references to a definition." rst-reference-face 'rst-reference "References to a definition." (face) "customize the face `rst-reference' instead." rst-transition ((t :inherit font-lock-keyword-face)) "Face used for a transition." :package-version (rst . "1.3.0") rst-adornment ((t :inherit font-lock-keyword-face)) "Face used for the adornment of a section header." (rst . "1.3.0") (rst-level-face-max rst-level-face-base-color rst-level-face-base-light rst-level-face-format-light rst-level-face-step-light rst-level-1-face rst-level-2-face rst-level-3-face rst-level-4-face rst-level-5-face rst-level-6-face) "customize the faces `rst-level-*' instead." "24.3" rst-level-1 ((((background light)) (:background "grey85")) (((background dark)) (:background "grey15"))) "Default face for section title text at level 1." (rst . "1.4.0") rst-level-2 ((((background light)) (:background "grey78")) (((background dark)) (:background "grey22"))) "Default face for section title text at level 2." (rst . "1.4.0") rst-level-3 ((((background light)) (:background "grey71")) (((background dark)) (:background "grey29"))) "Default face for section title text at level 3." (rst . "1.4.0") rst-level-4 ((((background light)) (:background "grey64")) (((background dark)) (:background "grey36"))) "Default face for section title text at level 4." (rst . "1.4.0") rst-level-5 ((((background light)) (:background "grey57")) (((background dark)) (:background "grey43"))) "Default face for section title text at level 5." (rst . "1.4.0") rst-level-6 ((((background light)) (:background "grey50")) (((background dark)) (:background "grey50"))) "Default face for section title text at level 6." (rst . "1.4.0") rst-adornment-faces-alist '((t . rst-transition) (nil . rst-adornment) (1 . rst-level-1) (2 . rst-level-2) (3 . rst-level-3) (4 . rst-level-4) (5 . rst-level-5) (6 . rst-level-6)) "Faces for the various adornment types.\nKey is a number (for the section title text of that level\nstarting with 1), t (for transitions) or nil (for section title\nadornment).  If you need levels beyond 6 you have to define faces\nof your own." (alist :key-type (choice (integer :tag "Section level") (const :tag "transitions" t) (const :tag "section title adornment" nil)) :value-type (face))] 11)
#@36 Keywords to highlight in rst mode.
(defvar rst-font-lock-keywords (byte-code "\300\301\302\"\303B\300\301\304\"\305B\300\301\306\307#\310B\300\301\311\312#\313B\300\301\314\315#\316B\300\301\317\"\320B\300\301\321\"\322B\300\301\323\307#\324B\300\301\325\307#\326B\300\327\330\331#\332B\300\327\333\331#\334B\300\327\335\331#\336B\300\327\337\331#\340B\300\327\341\331#\342B\300\327\343\344\345\331%\346B\300\327\347\331#\350B\300\327\351\331#\352B\300\327\353\331#\354B\300\327\355\331#\356B\300\357!\360B\300\301\361\"\362B\300\301\363\364\365$\366B\300\301\367\"\370B\300\301\371\372#\373B\257\207" [rst-re lin-beg (:grp bul-sta) (1 rst-block-face) (:grp enmany-sta) (1 rst-block-face) (:grp fld-tag) bli-sfx (1 rst-external-face) (:grp opt-tag (:shy optsep-tag opt-tag) "*") (:alt "$" (:seq hws-prt "\\{2\\}")) (1 rst-block-face) (:grp "|" bli-sfx) "[^|\n]*$" (1 rst-block-face) fnc-sta-2 ((1 rst-definition-face) (2 rst-definition-face)) dir-sta-3 ((1 rst-directive-face) (2 rst-definition-face) (3 rst-directive-face)) (:grp exm-sta "_" (:alt (:seq "`" ilcbkqdef-tag "`") (:seq (:alt "[^:\\\n]" "\\\\.") "+")) ":") (1 rst-definition-face) (:grp "__") (1 rst-definition-face) ilm-pfx (:grp "\\*\\*" ilcast-tag "\\*\\*") ilm-sfx (1 rst-emphasis2-face) (:grp "\\*" ilcast-tag "\\*") (1 rst-emphasis1-face) (:grp "``" ilcbkq-tag "``") (1 rst-literal-face) (:grp "_`" ilcbkq-tag "`") (1 rst-definition-face) (:grp (:alt (:seq "`" ilcbkq-tag "`") (:seq "\\sw" (:alt "\\sw" "-") "+\\sw")) "__?") (1 rst-reference-face) (:grp (:shy ":" sym-tag ":") "?") (:grp "`" ilcbkq-tag "`") (:grp (:shy ":" sym-tag ":") "?") ((1 rst-directive-face) (2 rst-external-face) (3 rst-directive-face)) (:grp fnc-tag "_") (1 rst-reference-face) (:grp sub-tag) (1 rst-reference-face) (:grp uri-tag ":\\S +") (1 rst-definition-face) (:grp sym-tag "@" sym-tag) (1 rst-definition-face) ado-beg-2-1 ((rst-font-lock-handle-adornment-matcher (rst-font-lock-handle-adornment-pre-match-form (match-string-no-properties 1) (match-end 1)) nil (1 (cdr (assoc nil rst-adornment-faces-alist)) append t) (2 (cdr (assoc rst-font-lock-adornment-level rst-adornment-faces-alist)) append t) (3 (cdr (assoc nil rst-adornment-faces-alist)) append t))) cmt-sta-1 ((1 rst-comment-face) (rst-font-lock-find-unindented-line-match (rst-font-lock-find-unindented-line-limit (match-end 1)) nil (0 rst-comment-face append))) (:grp exm-tag) (:grp hws-tag) "$" ((1 rst-comment-face) (2 rst-comment-face) (rst-font-lock-find-unindented-line-match (rst-font-lock-find-unindented-line-limit 'next) nil (0 rst-comment-face append))) lit-sta-2 ((2 rst-block-face) (rst-font-lock-find-unindented-line-match (rst-font-lock-find-unindented-line-limit t) nil (0 rst-literal-face append))) (:grp (:alt ">>>" ell-tag)) (:grp ".+") ((1 rst-block-face) (2 rst-literal-face))] 27) (#$ . 84999))
#@155 Extend the font-lock region if it might be in a multi-line construct.
Return non-nil if so.  Font-lock region is from `font-lock-beg'
to `font-lock-end'.
(defalias 'rst-font-lock-extend-region #[nil "\303	\"\211\205\n@\nA\304)\207" [font-lock-beg font-lock-end r rst-font-lock-extend-region-internal t] 4 (#$ . 87836)])
#@137 Check the region BEG / END for being in the middle of a multi-line construct.
Return nil if not or a cons with new values for BEG / END
(defalias 'rst-font-lock-extend-region-internal #[(beg end) "\304\305\"\304	\306\"\211\204\n\205\206\n\206	B*\207" [beg end nend nbeg rst-font-lock-extend-region-extend -1 1] 5 (#$ . 88169)])
#@120 Like `forward-line' but always end up in column 0 and return accordingly.
Move N lines forward just as `forward-line'.
(defalias 'rst-forward-line #[(&optional n) "yn\203	\202\302y\210	\303!Z)\207" [n moved 0 rst-signum] 3 (#$ . 88517)])
#@115 Extend the region starting at point PT and extending in direction DIR.
Return extended point or nil if not moved.
(defalias 'rst-font-lock-extend-region-extend #[(pt dir) "\303\304\"?\205\207\212\305\306!b\210\307y\210`\310	!\204#\311\312\n!!\204\310\305\313!!\203a\311\312\n!!\203~\310\305\314!!\203S\311\312\n!!\203~\310\305\313!!\204~\312\n[!\210\202~\n\307W\203~\312\n[!\210\202~\310\305\314!!\203~\311\312\n!!\203~\310\305\313!!\204~\312\n[!\210`U?\205\206`*\207" [pt stop-re dir get-text-property font-lock-multiline rst-re (:alt "[^ 	\n]" (:seq hws-tag exm-tag) (:seq ".*" dcl-tag lin-end)) 0 looking-at zerop rst-forward-line ado-beg-2-1 ttl-beg] 3 (#$ . 88769)])
#@379 Move forward across one indented block.
Find the next non-empty line which is not indented at least to COLUMN (defaults
to the column of the point).  Moves point to first character of this line or the
first empty line immediately before it and returns that position.  If there is
no such line before LIMIT (defaults to the end of the buffer) returns nil and
point is not moved.
(defalias 'rst-forward-indented-block #[(&optional column limit) "\206i`\306\211\211\204d\307 \310\216\204c`W\203c\311y\210`W\203`\312\313\314!!\203D	\206@\n\202\315
!\210\316\313\317!\320\n`\"\"\203Y\306\202	\206^\n\211\203 *\206i\fb\210-\207" [column cand beg fnd start clm nil match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 1 looking-at rst-re lin-end move-to-column string-match linemp-tag buffer-substring-no-properties limit save-match-data-internal] 6 (#$ . 89469) nil])
#@69 Beginning of the match if `rst-font-lock-find-unindented-line-end'.
(defvar rst-font-lock-find-unindented-line-begin nil (#$ . 90422))
#@150 End of the match as determined by `rst-font-lock-find-unindented-line-limit'.
Also used as a trigger for
`rst-font-lock-find-unindented-line-match'.
(defvar rst-font-lock-find-unindented-line-end nil (#$ . 90564))
#@392 Find the next unindented line relative to indentation at IND-PNT.
Return this point, the end of the buffer or nil if nothing found.
If IND-PNT is `next' take the indentation from the next line if
this is not empty and indented more than the current one.  If
IND-PNT is non-nil but not a number take the indentation from the
next non-empty line if this is indented more than the current
one.
(defalias 'rst-font-lock-find-unindented-line-limit #[(ind-pnt) "\212\247\204n\305 \306\216\307 \310=\203@\311\312y!\205l`dW\205l`\313\314\315!!?\205l\307 V\205l\313\314\316!!\210\317\225\202l\311\312y!\203U`dW\203U\313\314\315!!\204@`dW\205l`\307 V\205l\313\314\316!!\210\317\225+\205}b\210\320\321d\"\206}d)\211\207" [ind-pnt rst-font-lock-find-unindented-line-begin save-match-data-internal cur-ind rst-font-lock-find-unindented-line-end match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) current-indentation next zerop 1 looking-at rst-re lin-end hws-tag 0 rst-forward-indented-block nil] 3 (#$ . 90785)])
#@244 Set the match found earlier if match were found.
Match has been found by
`rst-font-lock-find-unindented-line-limit' the first time called
or no match is found.  Return non-nil if match was found.  LIMIT
is not used but mandated by the caller.
(defalias 'rst-font-lock-find-unindented-line-match #[(limit) "\205\302	D!\210\303	\304\305$\210\306\305\207" [rst-font-lock-find-unindented-line-end rst-font-lock-find-unindented-line-begin set-match-data put-text-property font-lock-multiline t nil] 5 (#$ . 91867)])
#@124 Storage for `rst-font-lock-handle-adornment-matcher'.
Either section level of the current adornment or t for a transition.
(defvar rst-font-lock-adornment-level nil (#$ . 92391))
#@260 Return section level for adornment KEY.
KEY is the first element of the return list of
`rst-classify-adornment'.  If KEY is not a cons return it.  If KEY is found
in the hierarchy return its level.  Otherwise return a level one
beyond the existing hierarchy.
(defalias 'rst-adornment-level #[(key) ":\204\207\306 @A\307\310!\307\311!\307\312!\211\211\nL\210)
\211L\210)\f\211	L\210)\313\314\315\316\317\320D\317\fD\317
D\317D\321\257E\fJ\"+\206S	GT+\207" [key hier char style #1=#:--cl-hier-- #2=#:--cl-style-- rst-get-hierarchy make-symbol "--char--" "--style--" "--hier--" rst-position-if lambda (&rest --cl-rest--) apply quote #[(#3=#:G40303 #4=#:G40304 #5=#:G40305 elt) "@	J\232\205\211A@)J\232\207" [elt #5# x #4#] 3] --cl-rest-- #6=#:--cl-char-- #7=#:v #8=#:v #9=#:v] 10 (#$ . 92577)])
#@168 Storage for match for current adornment.
Set by `rst-font-lock-handle-adornment-pre-match-form'.  Also used
as a trigger for `rst-font-lock-handle-adornment-matcher'.
(defvar rst-font-lock-adornment-match nil (#$ . 93406))
#@405 Determine limit for adornments.
Determine all things necessary for font-locking section titles
and transitions and put the result to
`rst-font-lock-adornment-match' and
`rst-font-lock-adornment-level'.  ADO is the complete adornment
matched.  ADO-END is the point where ADO ends.  Return the point
where the whole adorned construct ends.

Called as a PRE-MATCH-FORM in the sense of `font-lock-keywords'.
(defalias 'rst-font-lock-handle-adornment-pre-match-form #[(ado ado-end) "\305	\"\211\204\306\211\211\202!\307\n@!\nA\nA@b\210\310\n8)\207" [ado ado-end ado-data rst-font-lock-adornment-level rst-font-lock-adornment-match rst-classify-adornment nil rst-adornment-level 2] 4 (#$ . 93636)])
#@307 Set the match found earlier if match were found.
Match has been found by
`rst-font-lock-handle-adornment-pre-match-form' the first time
called or no match is found.  Return non-nil if match was found.

Called as a MATCHER in the sense of `font-lock-keywords'.
LIMIT is not used but mandated by the caller.
(defalias 'rst-font-lock-handle-adornment-matcher #[(limit) "\302	\205\303	!\210\304\225b\210\305\304\224\304\225\306\307$\210\307)\207" [rst-font-lock-adornment-match match nil set-match-data 0 put-text-property font-lock-multiline t] 5 (#$ . 94345)])
(byte-code "\300\301\302\303\304\305\306\307&\210\310\311\312\313\314\315\304\305\316\317&	\210\320 \207" [custom-declare-group rst-compile nil "Settings for support of conversion of reStructuredText\ndocument with \\[rst-compile]." :group rst :version "21.1" custom-declare-variable rst-compile-toolsets `((html ,(if (executable-find "rst2html.py") "rst2html.py" "rst2html") ".html" nil) (latex ,(if (executable-find "rst2latex.py") "rst2latex.py" "rst2latex") ".tex" nil) (newlatex ,(if (executable-find "rst2newlatex.py") "rst2newlatex.py" "rst2newlatex") ".tex" nil) (pseudoxml ,(if (executable-find "rst2pseudoxml.py") "rst2pseudoxml.py" "rst2pseudoxml") ".xml" nil) (xml ,(if (executable-find "rst2xml.py") "rst2xml.py" "rst2xml") ".xml" nil) (pdf ,(if (executable-find "rst2pdf.py") "rst2pdf.py" "rst2pdf") ".pdf" nil) (s5 ,(if (executable-find "rst2s5.py") "rst2s5.py" "rst2s5") ".html" nil)) "Table describing the command to use for each tool-set.\nAn association list of the tool-set to a list of the (command to use,\nextension of produced filename, options to the tool (nil or a\nstring)) to be used for converting the document." :type (alist :options (html latex newlatex pseudoxml xml pdf s5) :key-type symbol :value-type (list :tag "Specification" (file :tag "Command") (string :tag "File extension") (choice :tag "Command options" (const :tag "No options" nil) (string :tag "Options")))) :package-version "1.2.0" rst-testcover-defcustom] 10)
#@41 The default tool-set for `rst-compile'.
(defvar rst-compile-primary-toolset 'html (#$ . 96374))
#@64 The default tool-set for `rst-compile' with a prefix argument.
(defvar rst-compile-secondary-toolset 'latex (#$ . 96476))
#@69 Look for the configuration file in the parents of the current path.
(defalias 'rst-compile-find-conf #[nil "\304\305 \306!\307\n\230\203\307\211\203/\310\n	P!\204/\n\311\306\312\306\n!!!!\211\202\f\n\2056\n	P,\207" [buffer-file file-name dir prevdir "docutils.conf" buffer-file-name file-name-directory nil file-exists-p expand-file-name directory-file-name] 6 (#$ . 96604) nil])
(require 'compile)
#@223 Compile command to convert reST document into some output file.
Attempts to find configuration file, if it can, overrides the
options.  There are two commands to choose from, with USE-ALT,
select the alternative tool-set.
(defalias 'rst-compile #[(&optional use-alt) "\203	\202	\n\236A\211@\f\211A@)\fAA@\306 \307!\310!\311\312!\210\313\314
\206<\315\203J\316\317!P\202K\315\317!\317P!\257\320#\n\204e\203k\321\322!\202o\322\n!.\207" [use-alt rst-compile-secondary-toolset rst-compile-primary-toolset rst-compile-toolsets toolset command rst-compile-find-conf file-name-nondirectory file-name-sans-extension make-local-variable compile-command mapconcat identity "" "--config=" shell-quote-argument " " call-interactively compile x extension options conffile buffer-file-name bufname outname compilation-read-command] 10 (#$ . 97025) "P"])
#@48 Compile command with the alternative tool-set.
(defalias 'rst-compile-alt-toolset #[nil "\300\301!\207" [rst-compile t] 2 (#$ . 97919) nil])
#@132 Show pseudo-XML rendering.
Rendering is done of the current active region, or of the entire
buffer, if the region is not selected.
(defalias 'rst-compile-pseudo-region #[nil "r\306\307!q\210p\310 \210	\311\211\312\211\312\313 \210\314\315!\210+\211\316\2031\317 \2022e\203<\320 \202=d\321\236\211A@)$\322!\210+\207" [default-directory #1=#:old-dir buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks get-buffer-create "*pseudoxml*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook shell-command-on-region region-beginning region-end pseudoxml internal-temp-output-buffer-show inhibit-read-only #2=#:buf standard-output mark-active rst-compile-toolsets x] 6 (#$ . 98067) nil])
#@36 Program used to preview PDF files.
(defvar rst-pdf-program "xpdf" (#$ . 98832))
#@66 Convert the document to a PDF file and launch a preview program.
(defalias 'rst-compile-pdf-preview #[nil "\306\307\310\311#\312\313\314	\236\211A@)\f\211&\315\316\310
#*\207" [tmp-filename rst-compile-toolsets x buffer-file-name rst-pdf-program command make-temp-file "rst_el" nil ".pdf" format "%s %s %s && %s %s ; rm %s" pdf start-process-shell-command "rst-pdf-preview"] 9 (#$ . 98918) nil])
#@36 Program used to preview S5 slides.
(defvar rst-slides-program "firefox" (#$ . 99327))
#@80 Convert the document to an S5 slide presentation and launch a preview program.
(defalias 'rst-compile-slides-preview #[nil "\306\307\310\311#\312\313\314	\236\211A@)\f\211&\315\316\310
#*\207" [tmp-filename rst-compile-toolsets x buffer-file-name rst-slides-program command make-temp-file "rst_el" nil ".html" format "%s %s %s && %s %s ; rm %s" s5 start-process-shell-command "rst-slides-preview"] 9 (#$ . 99419) nil])
#@54 Find adornments cell in ADORNMENTS for position POS.
(defalias 'rst-imenu-find-adornments-for-position #[(adornments pos) "\303	\203\"	@\203	@@\n=\203	\303\211\202	A\211\204)\207" [a adornments pos nil] 3 (#$ . 99851)])
#@134 Convert a cell ELT in a tree returned from `rst-section-tree' to imenu index.
ADORNMENTS is used as hint information for conversion.
(defalias 'rst-imenu-convert-cell #[(elt adornments) "@A	@	\205\\\306	\211A@)!\307
\"\211@A\310\311\312\3138TA@\"\3148\315=\203A\316\202G\317A@!$\211\n\204R
\202Z
B\320\321\n\"B-B+\207" [elt kar kdr title x p marker-position rst-imenu-find-adornments-for-position format "%s%s%s" make-string 3 2 simple "" char-to-string mapcar #[(elt0) "\302	\"\207" [elt0 adornments rst-imenu-convert-cell] 3] adornments a] 7 (#$ . 100092)])
#@71 Create index for imenu.
Return as described for `imenu--index-alist'.
(defalias 'rst-imenu-create-index #[nil "\302 \210\303 \212\304\305\306 \")\307\310\304\311	\"\"*\207" [adornments tree rst-reset-section-caches rst-section-tree mapcar #[(ln-ado) "eb\210@Sy\210`AB\207" [ln-ado] 2] rst-find-all-adornments delete nil #[(elt) "\302	\"\207" [elt adornments rst-imenu-convert-cell] 3]] 5 (#$ . 100692)])
#@73 Replace flush-left lines of FROMCHAR with equal-length lines of TOCHAR.
(defalias 'rst-replace-lines #[(fromchar tochar) "\212\305\306\307#\310\311\n\312\313#\203&	T\314\224b\210i\315 \210\316\f\"\210)\202	\317\320\321	\"!+\207" [fromchar found searchre width tochar rst-re "^" "+\\( *\\)$" 0 search-forward-regexp nil t 1 rst-delete-entire-line insert-char message format "%d lines replaced."] 4 (#$ . 101107) "cSearch for flush-left lines of char:\ncand replace with char: "])
#@71 Join lines in current paragraph into one line, removing end-of-lines.
(defalias 'rst-join-paragraph #[nil "\301\302\303!)\207" [fill-column 65000 call-interactively fill-paragraph] 2 (#$ . 101600) nil])
#@121 Fill paragraph at point, first joining the paragraph's lines into one.
This is useful for filling list item paragraphs.
(defalias 'rst-force-fill-paragraph #[nil "\300 \210\301\302!\207" [rst-join-paragraph fill-paragraph nil] 2 (#$ . 101811) nil])
#@495 Fill the current line using the last character on the current line.
Fill up to the length of the preceding line or up to
`fill-column' if preceding line is empty.

If USE-NEXT, use the next line rather than the preceding line.

If the current line is longer than the desired length, shave the characters off
the current line to fit the desired length.

As an added convenience, if the command is repeated immediately, the alternative
column is used (fill-column vs. end of previous/next line).
(defalias 'rst-repeat-last-character #[(use-next) "i\306e`\"\307!\203\310\202\311\\\312\311!	\310U\203%\204%\f\202F\212\203.\310\202/\313y\210\314\210\315\nx\210i\307
!\203D\f\202E
*\316\232\203^\fU\203Z\202m\f\202m\212\307!\203j\f\202l)\314\210iV\203\204`iZZ`|\202\213\317hiZ\"-\207" [curcol curline lbp use-next fill-column cc count-lines zerop 1 0 line-beginning-position -1 nil " 	" rst-repeat-last-character insert-char prevcol last-command rightmost-column] 4 (#$ . 102067) "P"])
(provide 'rst)

MMCT - 2023