%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/share/emacs/27.2/lisp/
Upload File :
Create Path :
Current File : //usr/local/share/emacs/27.2/lisp/term.elc

;ELC
;;; Compiled
;;; in Emacs version 27.2
;;; with all optimizations.

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

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

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


(defconst term-protocol-version "0.96")
(byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\307\310\311%\207" [require ring ehelp comint custom-declare-group term nil "General command interpreter in a window." :group processes] 6)
#@29 Size of input history ring.
(defvar term-input-ring-size 32 (#$ . 651))
#@92 When using alternate sub-buffer,
contains saved term-home-marker from original sub-buffer.
(defvar term-saved-home-marker nil (#$ . 729))
#@62 (current-column) at start of screen line, or nil if unknown.
(defvar term-start-line-column 0 (#$ . 873))
#@44 If non-nil, is cache for (current-column).
(defvar term-current-column 0 (#$ . 985))
#@67 Current vertical row (relative to home-marker) or nil if unknown.
(defvar term-current-row 0 (#$ . 1076))
(defvar term-insert-mode nil)
#@193 Last character was a graphic in the last column.
If next char is graphic, first move one column right
(and line warp) before displaying it.
This emulates (more or less) the behavior of xterm.
(defvar term-do-line-wrapping nil (#$ . 1219))
#@51 A queue of strings whose echo we want suppressed.
(defvar term-kill-echo-list nil (#$ . 1464))
(defvar term-terminal-undecoded-bytes nil)
(defvar term-current-face 'term)
#@222 Top-most line (inclusive) of the scrolling region.
`term-scroll-start' must be in the range [0,term-height).  In addition, its
value has to be smaller than `term-scroll-end', i.e. one line scroll regions are
not allowed.
(defvar term-scroll-start 0 (#$ . 1642))
(make-variable-buffer-local 'term-scroll-start)
#@225 Bottom-most line (inclusive) of the scrolling region.
`term-scroll-end' must be in the range [0,term-height).  In addition, its
value has to be greater than `term-scroll-start', i.e. one line scroll regions are
not allowed.
(defvar term-scroll-end nil (#$ . 1959))
(make-variable-buffer-local 'term-scroll-end)
#@69 Number of lines before we need to page; if nil, paging is disabled.
(defvar term-pager-count nil (#$ . 2276))
(defvar term-saved-cursor nil)
(byte-code "\300\301\302\303#\210\304\211\203(\211@\301N\203!\302N\204!\305\302\301N#\210A\266\202\202\210\306\301\302\307#\207" [defvaralias term-command-hook term-command-function nil (saved-value saved-variable-comment) put make-obsolete-variable "27.1"] 7)
(defvar term-command-function 'term-command-hook)
(defvar term-log-buffer nil)
#@241 If t, forward scrolling should be implemented by delete to
top-most line(s); and if nil, scrolling should be implemented
by moving term-home-marker.  It is set to t if there is a
(non-default) scroll-region OR the alternate buffer is used.
(defvar term-scroll-with-delete nil (#$ . 2774))
#@41 Saves the old keymap when in char mode.
(defvar term-old-mode-map nil (#$ . 3069))
#@32 Saves old keymap while paging.
(defvar term-pager-old-local-map nil (#$ . 3158))
#@58 The `buffer-read-only' state to set in `term-line-mode'.
(defvar term-line-mode-buffer-read-only nil (#$ . 3245))
(byte-code "\300\301!\210\302\303\304\305\306DD\307\310\311\312\313&\207" [make-variable-buffer-local term-line-mode-buffer-read-only custom-declare-variable explicit-shell-file-name funcall function #[0 "\300\207" [nil] 1] "If non-nil, is file name to use for explicitly requested inferior shell." :type (choice (const nil) file) :group term] 8)
#@371 Regexp to recognize prompts in the inferior process.
Defaults to "^", the null string at BOL.

Good choices:
  Canonical Lisp: "^[^> \n]*>+:? *" (Lucid, franz, kcl, T, cscheme, oaklisp)
  Lucid Common Lisp: "^\\(>\\|\\(->\\)+\\) *"
  franz: "^\\(->\\|<[0-9]*>:\\) *"
  kcl: "^>+ *"
  shell: "^[^#$%>\n]*[#$%>] *"
  T: "^>+ *"

This is a good thing to set in mode hooks.
(defvar term-prompt-regexp "^" (#$ . 3714))
#@381 List of characters to recognize as separate arguments in input.
Strings comprising a character in this list will separate the arguments
surrounding them, and also be regarded as arguments in their own right
(unlike whitespace).  See `term-arguments'.
Defaults to the empty list.

For shells, a good value is (?\| ?& ?< ?> ?\( ?\) ?\;).

This is a good thing to set in mode hooks.
(defvar term-delimiter-argument-list nil (#$ . 4135))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\315\310\311&\210\300\316\302\303\317DD\320\306\315\310\311&\210\300\321\302\303\322DD\323\324\325\306\315\310\311&	\210\300\326\302\303\327DD\330\324\325\306\315\310\311&	\210\300\331\302\303\332DD\333\306\315\310\311&\210\300\334\302\303\335DD\336\306\315\310\311&\210\300\337\302\303\340DD\341\324\342\306\315\310\311&	\210\343\337\344\345#\207" [custom-declare-variable term-input-autoexpand funcall function #[0 "\300\207" [nil] 1] "If non-nil, expand input command history references on completion.\nThis mirrors the optional behavior of tcsh (its autoexpand and histlit).\n\nIf the value is `input', then the expansion is seen on input.\nIf the value is `history', then the expansion is only when inserting\ninto the buffer's input ring.  See also `term-magic-space' and\n`term-dynamic-complete'.\n\nThis variable is buffer-local." :type (choice (const nil) (const t) (const input) (const history)) :group term term-input-ignoredups #[0 "\300\207" [nil] 1] "If non-nil, don't add input matching the last on the input ring.\nThis mirrors the optional behavior of bash.\n\nThis variable is buffer-local." boolean term-input-ring-file-name #[0 "\300\207" [nil] 1] "If non-nil, name of the file to read/write input history.\nSee also `term-read-input-ring' and `term-write-input-ring'.\n\nThis variable is buffer-local, and is a good thing to set in mode hooks." term-char-mode-buffer-read-only #[0 "\300\207" [t] 1] "If non-nil, only the process filter may modify the buffer in char mode.\n\nA non-nil value makes the buffer read-only in `term-char-mode',\nwhich prevents editing commands from making the buffer state\ninconsistent with the state of the terminal understood by the\ninferior process.  Only the process filter is allowed to make\nchanges to the buffer.\n\nCustomize this option to nil if you want the previous behavior." :version "26.1" term-char-mode-point-at-process-mark #[0 "\300\207" [t] 1] "If non-nil, keep point at the process mark in char mode.\n\nA non-nil value causes point to be moved to the current process\nmark after each command in `term-char-mode' (provided that the\npre-command point position was also at the process mark).  This\nprevents commands that move point from making the buffer state\ninconsistent with the state of the terminal understood by the\ninferior process.\n\nMouse events are not affected, so moving point and selecting text\nis still possible in char mode via the mouse, after which other\ncommands can be invoked on the mouse-selected point or region,\nuntil the process filter (or user) moves point to the process\nmark once again.\n\nCustomize this option to nil if you want the previous behavior." term-scroll-to-bottom-on-output #[0 "\300\207" [nil] 1] "Controls whether interpreter output causes window to scroll.\nIf nil, then do not scroll.  If t or `all', scroll all windows showing buffer.\nIf `this', scroll only the selected window.\nIf `others', scroll only those that are not the selected window.\n\nThe default is nil.\n\nSee variable `term-scroll-show-maximum-output'.\nThis variable is buffer-local." term-scroll-show-maximum-output #[0 "\300\207" [nil] 1] "Controls how interpreter output causes window to scroll.\nIf non-nil, then show the maximum output when the window is scrolled.\n\nSee variable `term-scroll-to-bottom-on-output'.\nThis variable is buffer-local." term-suppress-hard-newline #[0 "\300\207" [nil] 1] "Non-nil means interpreter should not break long lines with newlines.\nThis means text can automatically reflow if the window is resized." "24.4" make-obsolete-variable nil "27.1"] 10)
(defvar term-pending-frame nil)
#@312 Function that submits old text in term mode.
This function is called when return is typed while the point is in old text.
It returns the text to be submitted as process input.  The default is
`term-get-old-input-default', which grabs the current line, and strips off
leading text matching `term-prompt-regexp'.
(defvar term-get-old-input 'term-get-old-input-default (#$ . 8285))
#@188 List of functions called to perform completion.
Functions should return non-nil if completion was performed.
See also `term-dynamic-complete'.

This is a good thing to set in mode hooks.
(defvar term-dynamic-complete-functions '(term-replace-by-expanded-history term-dynamic-complete-filename) (#$ . 8671))
#@190 Predicate for filtering additions to input history.
Only inputs answering true to this function are saved on the input
history list.  Default is to save anything that isn't all whitespace.
(defvar term-input-filter #[257 "\300\301\"?\207" [string-match "\\`\\s *\\'"] 4 "\n\n(fn STR)"] (#$ . 8985))
#@160 Functions to call before input is sent to the process.
These functions get one argument, a string containing the text to send.

This variable is buffer-local.
(defvar term-input-filter-functions nil (#$ . 9292))
#@295 Function to actually send to PROCESS the STRING submitted by user.
Usually this is just `term-simple-send', but if your mode needs to
massage the input string, this is your hook.  This is called from
the user command `term-send-input'.  `term-simple-send' just sends
the string plus a newline.
(defvar term-input-sender 'term-simple-send (#$ . 9511))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\315\310\311&\210\300\316\302\303\317DD\320\306\315\310\311&\207" [custom-declare-variable term-eol-on-send funcall function #[0 "\300\207" [t] 1] "Non-nil means go to the end of the line before sending input.\nSee `term-send-input'." :type boolean :group term term-mode-hook #[0 "\300\207" [nil] 1] "Called upon entry into term mode.\nThis is run before the process is cranked up." hook term-exec-hook #[0 "\300\207" [nil] 1] "Called each time a process is exec'd by `term-exec'.\nThis is called after the process is cranked up.  It is useful for things that\nmust be done each time a process is executed in a term mode buffer (e.g.,\n`set-process-query-on-exit-flag').  In contrast, `term-mode-hook' is only\nexecuted once, when the buffer is created."] 8)
#@23 Keymap for Term mode.
(defvar term-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\301\316\317#\210\301\320\321#\210\301\322\323#\210\301\324\325#\210\301\326\327#\210\301\330\331#\210\301\332\333#\210\301\334\335#\210\301\336\337#\210\301\340\341#\210\301\342\343#\210\301\344\317#\210\301\345\346#\210\301\347\350#\210\301\351\352#\210\301\353\354#\210\301\355\356#\210\301\357\360#\210\301\361\362#\210\301\363\364#\210\365\366\367\370$\210\365\366\371\372$\210\211\207" [make-sparse-keymap define-key "p" term-previous-input "n" term-next-input "r" term-previous-matching-input "s" term-next-matching-input [138412146] term-previous-matching-input-from-input [138412147] term-next-matching-input-from-input "\f" term-show-output "
" term-send-input "" term-delchar-or-maybe-eof "" term-bol "" term-kill-input "" backward-kill-word "" term-interrupt-subjob "" term-stop-subjob "" term-quit-subjob "
" term-copy-old-input "" term-kill-output "" "" term-show-maximum-output "\f" term-dynamic-list-input-ring "" term-next-prompt "" term-previous-prompt "" term-send-eof "" term-char-mode "\n" term-line-mode "" term-pager-toggle easy-menu-do-define nil "Complete menu for Term mode." ("Complete" ["Complete Before Point" term-dynamic-complete t] ["Complete File Name" term-dynamic-complete-filename t] ["File Completion Listing" term-dynamic-list-filename-completions t] ["Expand File Name" term-replace-by-expanded-filename t]) "In/Out menu for Term mode." ("In/Out" ["Expand History Before Point" term-replace-by-expanded-history term-input-autoexpand] ["List Input History" term-dynamic-list-input-ring t] ["Previous Input" term-previous-input t] ["Next Input" term-next-input t] ["Previous Matching Current Input" term-previous-matching-input-from-input t] ["Next Matching Current Input" term-next-matching-input-from-input t] ["Previous Matching Input..." term-previous-matching-input t] ["Next Matching Input..." term-next-matching-input t] ["Backward Matching Input..." term-backward-matching-input t] ["Forward Matching Input..." term-forward-matching-input t] ["Copy Old Input" term-copy-old-input t] ["Kill Current Input" term-kill-input t] ["Show Current Output Group" term-show-output t] ["Show Maximum Output" term-show-maximum-output t] ["Backward Output Group" term-previous-prompt t] ["Forward Output Group" term-next-prompt t] ["Kill Current Output Group" term-kill-output t])] 6) (#$ . 10719))
#@113 Escape character for char sub-mode of term mode.
Do not change it directly; use `term-set-escape-char' instead.
(defvar term-escape-char nil (#$ . 13284))
#@33 Keymap used in Term pager mode.
(defvar term-pager-break-map (byte-code "\300 \301\302\303\304 \302\"#\210\301\305\303\304 \305\"#\210\301\306\303\304 \306\"#\210\301\307\310#\210\301\311\312#\210\301\313\314#\210\301\315\314#\210\301\316\317#\210\301\320\321#\210\301\322\323#\210\301\324\325#\210\301\326\327#\210\301\330\331#\210\211\207" [make-keymap define-key "" lookup-key current-global-map "" "" " " term-pager-page "
" term-pager-line "?" term-pager-help "h" "b" term-pager-back-page "" term-pager-back-line "q" term-pager-discard "D" term-pager-disable "<" term-pager-bob ">" term-pager-eob] 7) (#$ . 13445))
#@123 True if communications via pty; false if by pipe.  Buffer local.
This is to work around a bug in Emacs process signaling.
(defvar term-ptyp t (#$ . 14089))
#@95 Last string searched for by term input history search, for defaulting.
Buffer local variable.
(defvar term-last-input-match "" (#$ . 14251))
(defvar term-input-ring nil)
#@40 Index of last matched history element.
(defvar term-input-ring-index nil (#$ . 14427))
#@47 Input previously used to match input history.
(defvar term-matching-input-from-input-string "" (#$ . 14520))
(defvar term-pager-filter t)
(byte-code "\300\301\302\303#\210\300\304\302\303#\210\300\305\302\303#\210\300\306\302\303#\210\300\307\302\303#\210\300\310\302\303#\210\300\311\302\303#\207" [put term-input-ring permanent-local t term-input-ring-index term-input-autoexpand term-input-filter-functions term-scroll-to-bottom-on-output term-scroll-show-maximum-output term-ptyp] 4)
(defalias 'term-in-char-mode '(macro . #[0 "\300\207" [(eq (current-local-map) term-raw-map)] 1]))
(defalias 'term-in-line-mode '(macro . #[0 "\300\207" [(not (term-in-char-mode))] 1]))
(defalias 'term-pager-enabled '(macro . #[0 "\300\207" [term-pager-count] 1]))
(defalias 'term-handling-pager '(macro . #[0 "\300\207" [term-pager-old-local-map] 1]))
(defalias 'term-using-alternate-sub-buffer '(macro . #[0 "\300\207" [term-saved-home-marker] 1]))
(defvar term-ansi-at-host nil)
(defvar term-ansi-at-dir nil)
(defvar term-ansi-at-user nil)
(defvar term-ansi-at-message nil)
(defvar term-ansi-at-save-user nil)
(defvar term-ansi-at-save-pwd nil)
(defvar term-ansi-at-save-anon nil)
(defvar term-ansi-current-bold nil)
(defvar term-ansi-current-color 0)
(defvar term-ansi-face-already-done nil)
(defvar term-ansi-current-bg-color 0)
(defvar term-ansi-current-underline nil)
(defvar term-ansi-current-reverse nil)
(defvar term-ansi-current-invisible nil)
(defvar ansi-term-color-vector [term term-color-black term-color-red term-color-green term-color-yellow term-color-blue term-color-magenta term-color-cyan term-color-white])
(byte-code "\302\300\303\304\305DD\306\307\310\311\312&\210\313\300\314\315#\210\302\301\303\304\316DD\306\307\310\311\317&\210\313\301\314\315#\210\320\310\321\322\323	\324BBBBBC\325\307\310%\210\320\326\327\330\307\310%\210\320\331\332\333\307\310%\210\320\334\335\336\307\310%\210\320\337\340\341\307\310%\210\320\342\343\344\307\310%\210\320\345\346\347\307\310%\210\320\350\351\352\307\310%\210\320\353\354\355\307\310%\210\320\356\357\360\307\310%\210\320\361\362\363\307\310%\210\302\364\303\304\365DD\366\307\310\311\367\370\371&	\207" [term-default-fg-color term-default-bg-color custom-declare-variable funcall function #[0 "\300\207" [nil] 1] "If non-nil, default color for foreground in Term mode." :group term :type (choice (const nil) (string :tag "color")) make-obsolete-variable "use the face `term' instead." "24.3" #[0 "\300\207" [nil] 1] (choice (const nil) (string :tag "color")) custom-declare-face t :foreground :background (:inherit default) "Default face to use in Term mode." term-bold ((t :bold t)) "Default face to use for bold text." term-underline ((t :underline t)) "Default face to use for underlined text." term-color-black ((t :foreground "black" :background "black")) "Face used to render black color code." term-color-red ((t :foreground "red3" :background "red3")) "Face used to render red color code." term-color-green ((t :foreground "green3" :background "green3")) "Face used to render green color code." term-color-yellow ((t :foreground "yellow3" :background "yellow3")) "Face used to render yellow color code." term-color-blue ((t :foreground "blue2" :background "blue2")) "Face used to render blue color code." term-color-magenta ((t :foreground "magenta3" :background "magenta3")) "Face used to render magenta color code." term-color-cyan ((t :foreground "cyan3" :background "cyan3")) "Face used to render cyan color code." term-color-white ((t :foreground "white" :background "white")) "Face used to render white color code." term-buffer-maximum-size #[0 "\300\207" [8192] 1] "The maximum size in lines for term buffers.\nTerm buffers are truncated from the top to be no greater than this number.\nNotice that a setting of 0 means \"don't truncate anything\".  This variable\nis buffer-local." integer :version "27.1"] 10)
#@71 Keyboard map for sending characters directly to the inferior process.
(defvar term-raw-map (byte-code "\301 \301 \302\211\303W\2031\304\305\306\"\307#\210\211\310=\204*\211\311=\204*\304\305\306\"\312#\210\211T\262\202\304\313\307#\210\304\314#\210\304\315\316#\210\304\317\320#\210\304\321\322#\210\304\323\324#\210\304\325\326#\210\304\327\330#\210\304\331\332#\210\304\333\334#\210\304\335\336#\210\304\337\340#\210\304\341\340#\210\304\342\343#\210\304\344\345#\210\304\346\347#\210\304\350\351#\210\304\352\353#\210\304\354\355#\210\304\356\357#\210\304\360\361#\210\304\362\363#\210\304\364\365#\210)\207" [esc-map make-keymap 0 128 define-key make-string 1 term-send-raw 79 91 term-send-raw-meta [remap self-insert-command] "" [mouse-2] term-mouse-paste [up] term-send-up [down] term-send-down [right] term-send-right [left] term-send-left [C-up] term-send-ctrl-up [C-down] term-send-ctrl-down [C-right] term-send-ctrl-right [C-left] term-send-ctrl-left [delete] term-send-del [deletechar] [backspace] term-send-backspace [home] term-send-home [end] term-send-end [insert] term-send-insert [S-prior] scroll-down [S-next] scroll-up [S-insert] term-paste [prior] term-send-prior [next] term-send-next [xterm-paste] term--xterm-paste] 7) (#$ . 18414))
#@30 Terminal menu for Term mode.
(defvar term-terminal-menu nil (#$ . 19713))
(byte-code "\303\304	\nE\305\306$\207" [term-mode-map term-raw-map term-pager-break-map easy-menu-do-define term-terminal-menu "Terminal menu for Term mode." ("Terminal" ["Line mode" term-line-mode :active (term-in-char-mode) :help "Switch to line (cooked) sub-mode of term mode"] ["Character mode" term-char-mode :active (term-in-line-mode) :help "Switch to char (raw) sub-mode of term mode"] ["Paging" term-pager-toggle :style toggle :selected term-pager-count :help "Toggle paging feature"])] 5)
#@29 Signals menu for Term mode.
(defvar term-signals-menu nil (#$ . 20293))
(byte-code "\303\304	\nE\305\306$\207" [term-mode-map term-raw-map term-pager-break-map easy-menu-do-define term-signals-menu "Signals menu for Term mode." ("Signals" ["BREAK" term-interrupt-subjob :active t :help "Interrupt the current subjob"] ["STOP" term-stop-subjob :active t :help "Stop the current subjob"] ["CONT" term-continue-subjob :active t :help "Send CONT signal to process buffer's process group"] ["QUIT" term-quit-subjob :active t :help "Send quit signal to the current subjob"] ["KILL" term-kill-subjob :active t :help "Send kill signal to the current subjob"] ["EOF" term-send-eof :active t :help "Send an EOF to the current buffer's process"])] 5)
#@27 Menu for Term pager mode.
(defvar term-pager-menu nil (#$ . 21040))
(easy-menu-do-define 'term-pager-menu term-pager-break-map "Menu for Term pager mode." '("More pages?" ["1 page forwards" term-pager-page t] ["1 page backwards" term-pager-back-page t] ["1 line backwards" term-pager-back-line t] ["1 line forwards" term-pager-line t] ["Goto to beginning" term-pager-bob t] ["Goto to end" term-pager-eob t] ["Discard remaining output" term-pager-discard t] ["Disable paging" term-pager-toggle t] ["Help" term-pager-help t]))
(defvar term-raw-escape-map (byte-code "\300 \301\302\"\210\303\304\305\306 \304\"#\210\303\307\305\306 \307\"#\210\303\310\311#\210\303\312\313#\210\303\314\315#\210\303\316\317#\210\211\207" [make-sparse-keymap set-keymap-parent Control-X-prefix define-key "" lookup-key current-global-map "" "" term-pager-toggle "" term-char-mode "\n" term-line-mode [134217848] execute-extended-command] 7))
#@68 Change `term-escape-char' and keymaps that depend on it.

(fn KEY)
(defalias 'term-set-escape-char #[257 "\203\n\303	\304#\210\305!\203\211\202\306!\303	\n#\210\303\n\304#\207" [term-escape-char term-raw-map term-raw-escape-map define-key term-send-raw vectorp vector] 5 (#$ . 21978)])
(byte-code "\301\206\302!\210\303\304\305\306#\207" [term-escape-char term-set-escape-char 3 put term-mode mode-class special] 4)
(defvar term-display-table (byte-code "\301!\206\302 \303\304\262\211\305W\203 \306!I\210\211T\262\202\f\307\262\211\310W\2037\306!I\210\211T\262\202#\311\262\211\312W\203N\306!I\210\211T\262\202:\207" [standard-display-table copy-sequence make-display-table nil 0 10 vector 11 32 128 256] 6))
(defalias 'term-ansi-reset #[0 "\306\307\211\307\310\307\211	\310\211\n\207" [term-current-face term-ansi-current-underline term-ansi-current-bold term-ansi-current-reverse term-ansi-current-color term-ansi-current-invisible term nil 0 term-ansi-face-already-done term-ansi-current-bg-color] 3])
(defvar term-mode-hook nil)
(byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [term-mode-hook variable-documentation put "Hook run after entering Term mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp term-mode-map definition-name term-mode] 4)
(defvar term-mode-map (make-sparse-keymap))
(byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\317#\207" [term-mode-abbrev-table term-mode-map variable-documentation put purecopy "Keymap for `term-mode'." boundp term-mode-syntax-table definition-name term-mode (lambda (#1=#:def-tmp-var) (defvar term-mode-syntax-table #1#)) make-syntax-table "Syntax table for `term-mode'." (lambda (#1#) (defvar term-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `term-mode'." derived-mode-parent] 5)
#@1668 Major mode for interacting with an inferior interpreter.
The interpreter name is same as buffer name, sans the asterisks.

There are two submodes: line mode and char mode.  By default, you are
in char mode.  In char sub-mode, each character (except
`term-escape-char') is sent immediately to the subprocess.
The escape character is equivalent to the usual meaning of C-x.

In line mode, you send a line of input at a time; use
\[term-send-input] to send.

In line mode, this maintains an input history of size
`term-input-ring-size', and you can access it with the commands
\[term-next-input], \[term-previous-input], and
\[term-dynamic-list-input-ring].  Input ring history expansion can be
achieved with the commands \[term-replace-by-expanded-history] or
\[term-magic-space].  Input ring expansion is controlled by the
variable `term-input-autoexpand', and addition is controlled by the
variable `term-input-ignoredups'.

Input to, and output from, the subprocess can cause the window to scroll to
the end of the buffer.  See variables `term-scroll-to-bottom-on-input',
and `term-scroll-to-bottom-on-output'.

If you accidentally suspend your process, use \[term-continue-subjob]
to continue it.

This mode can be customized to create specific modes for running
particular subprocesses.  This can be done by setting the hooks
`term-input-filter-functions', `term-input-filter',
`term-input-sender' and `term-get-old-input' to appropriate functions,
and the variable `term-prompt-regexp' to the appropriate regular
expression.

Commands in raw mode:

\{term-raw-map}

Commands in line mode:

\{term-mode-map}

Entry to this mode runs the hooks on `term-mode-hook'.
(defalias 'term-mode #[0 "\306\300!\210\307\310 \210\311\312\313!\210\314\f!\210
@\315ABC\306\316!\210\317\320!\306\321!\210\322\323 !\306\324!\210\325 \306\326!\210\327 \306\330!\210\327 \306\331!\210\332\306\333!\210\306\334!\210\306\335!\210\306\336!\210\306\337!\210\306\340!\210\306\341!\210\204x\342!\306\343!\210\344 #\306\345!\210D%\306\346!\210\315&\306\347!\210\306\350!\210\306\351!\210\306\352!\210\306\353!\210\306\354!\210\306\355!\210\306\356!\210\306\357!\210\306\360!\210\306\361!\210\306\362!\210\306\363!\210\306\364!\210\306\365!\210\306\366!\210\306\367!\210\306\370!\210\306\371!\210\306\372!\210\306\373!\210\306\374!\210\306\375!\210\306\376!\210\306\377!\210\306\201L!\210\306\201M!\210\306\201N!\210\306\201O!\210\306\201P!\210\306\201Q!\210\306\201R!\210\306\201S!\210\306\201T!\210\306\201E!\210\201UE\306\201F!\210\327 F\306\201V!\210\201W \210\306\201G!\210\315G\306\201H!\210\315H\306\201I!\210\201XI\201Y\201Z\201[\201\\B\201]\315$\210\201Y\201Z\201^\201_B\201`\201a$\210\201b\201c\201d\315\307$\210\201e \210\201fJ!\210\201fK!\210\204\271\342!\201g \210)\201h\201i!\207" [delay-mode-hooks major-mode mode-name term-mode-map term-mode-syntax-table term-mode-abbrev-table make-local-variable t kill-all-local-variables term-mode "Term" use-local-map set-syntax-table nil term-home-marker copy-marker 0 term-height floor window-screen-lines term-width window-max-chars-per-line term-last-input-start make-marker term-last-input-end term-last-input-match "" term-saved-home-marker term-saved-cursor term-prompt-regexp term-input-ring-size term-input-ring term-input-ring-file-name term-input-ring-index make-ring term-ansi-at-host system-name term-ansi-at-dir term-ansi-at-message ange-ftp-default-user ange-ftp-default-password ange-ftp-generate-anonymous-password term-buffer-maximum-size term-ansi-current-bold term-ansi-current-color term-ansi-face-already-done term-ansi-current-bg-color term-ansi-current-underline term-ansi-current-reverse term-ansi-current-invisible term-terminal-undecoded-bytes term-do-line-wrapping term-kill-echo-list term-start-line-column term-current-column term-current-row term-log-buffer term-pager-count term-pager-old-local-map term-old-mode-map term-insert-mode term-completion-fignore term-get-old-input term-matching-input-from-input-string local-abbrev-table indent-tabs-mode term-display-table buffer-display-table default-directory term-vertical-motion term-pending-delete-marker term-pending-frame cua-mode font-lock-defaults term-terminal-menu term-signals-menu term-input-autoexpand term-input-ignoredups term-delimiter-argument-list term-input-filter term-input-sender term-eol-on-send term-scroll-to-bottom-on-output term-scroll-show-maximum-output term-ptyp vertical-motion term-current-face term-ansi-reset (nil t) advice--add-function :filter-return #[0 "\300\301!\207" [advice--buffer-local filter-buffer-substring-function] 2] #[257 "\300\301\"\207" [advice--set-buffer-local filter-buffer-substring-function] 4 "\n\n(fn GV--VAL)"] term--filter-buffer-substring #[0 "\300\301!\207" [advice--buffer-local window-adjust-process-window-size-function] 2] #[257 "\300\301\"\207" [advice--set-buffer-local window-adjust-process-window-size-function] 4 "\n\n(fn GV--VAL)"] #[257 "\211\203\300A@\"\210\207" [term-reset-size] 4 "\n\n(fn SIZE)"] ((name . term-maybe-reset-size)) add-hook read-only-mode-hook term-line-mode-buffer-read-only-update term--reset-scroll-region easy-menu-add term-update-mode-line run-mode-hooks term-mode-hook] 5 (#$ . 24138) nil])
(defalias 'term--remove-fake-newlines #[0 "eb\210\301\302`\303\"\211\262\205&\211b\210\301f\304=\204\305\306!\210\307\310\311!\210)\202\207" [inhibit-read-only nil next-single-property-change term-line-wrap 10 cl--assertion-failed (eq 10 (char-after)) t delete-char 1] 4])
(defalias 'term--last-line #[0 "S\207" [term-height] 1])
#@16 

(fn CONTENT)
(defalias 'term--filter-buffer-substring #[257 "\300\301!r\211q\210\302\303\304\305\306!\307\"\310$\216c\210\311 \210\312 *\207" [generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 term--remove-fake-newlines buffer-string] 8 (#$ . 29771)])
#@14 

(fn WIDTH)
(defalias 'term--unwrap-visible-long-lines #[257 "\212b\210\302!\210m?\205$l\203\303u\210\202\304\305 \210)\302!\210\202)\207" [term-home-marker inhibit-read-only move-to-column nil t term-unwrap-line] 3 (#$ . 30104)])
#@21 

(fn HEIGHT WIDTH)
(defalias 'term-reset-size #[514 "U\203
\211	U?\2053\211	U\204\212\305 \210)`\306\211\306\307 \210\306\211\306\211b\266\310!\207" [term-height term-width term-start-line-column term-current-row term-current-column term--remove-fake-newlines nil term--reset-scroll-region term--unwrap-visible-long-lines] 5 (#$ . 30353)])
(defalias 'term-check-kill-echo-list #[0 "\304C`\305\306\307\310\311\"\312\"\313$\216\304\210\203P@\211G`Z\211eY\203G`{\230\203G\314[!\210A\304\211\304\211\262\315\240\210\202KA\262\266\202)\242\207" [term-kill-echo-list term-current-column term-current-row term-start-line-column nil make-byte-code 0 "\300\242?\205\301b\207" vconcat vector [] 1 delete-char t] 11])
#@14 

(fn CHARS)
(defalias 'term-send-raw-string #[257 "\301 \210\302p!\211\204\303\304!\202 \305!b\210\203\306 \307\"\207" [term-pager-count deactivate-mark get-buffer-process error "Current buffer has no process" process-mark term-current-row process-send-string] 5 (#$ . 31116)])
#@89 Send the last character typed through the terminal-emulator
without any interpretation.
(defalias 'term-send-raw #[0 "\300 \301\302\211GSH!!\207" [this-command-keys term-send-raw-string string] 5 (#$ . 31411) nil])
(defalias 'term-send-raw-meta #[0 "\2119\203#\211\301N\211\203\211@\2629\203\"\302N\211\262\203\"\211\262\210\211\247\205L\303!\304\305\306!\"\307>\203=\304\310\"\262\311\312\313\314\315C\"!\"!\266\202\207" [last-input-event event-symbol-elements ascii-character event-basic-type delq meta event-modifiers control shift term-send-raw-string format "%c" event-convert-list append] 10 nil nil])
#@70 Insert the primary selection at the position clicked on.

(fn CLICK)
(defalias 'term-mouse-paste #[257 "\301\302!\210\303\304!\210\305\306 !\207" [this-command run-hooks mouse-leave-buffer-hook yank mouse-set-point term-send-raw-string gui-get-primary-selection] 3 (#$ . 32048) "e"])
#@50 Insert the last stretch of killed text at point.
(defalias 'term-paste #[0 "\300\301\302!!\207" [term-send-raw-string current-kill 0] 3 (#$ . 32340) nil])
#@63 Insert the text pasted in an XTerm bracketed paste operation.
(defalias 'term--xterm-paste #[0 "\300\301 !\207" [term-send-raw-string xterm--pasted-text] 2 (#$ . 32501) nil])
(defalias 'term-send-up #[0 "\300\301!\207" [term-send-raw-string "OA"] 2 nil nil])
(defalias 'term-send-down #[0 "\300\301!\207" [term-send-raw-string "OB"] 2 nil nil])
(defalias 'term-send-right #[0 "\300\301!\207" [term-send-raw-string "OC"] 2 nil nil])
(defalias 'term-send-left #[0 "\300\301!\207" [term-send-raw-string "OD"] 2 nil nil])
(defalias 'term-send-ctrl-up #[0 "\300\301!\207" [term-send-raw-string ""] 2 nil nil])
(defalias 'term-send-ctrl-down #[0 "\300\301!\207" [term-send-raw-string ""] 2 nil nil])
(defalias 'term-send-ctrl-right #[0 "\300\301!\207" [term-send-raw-string ""] 2 nil nil])
(defalias 'term-send-ctrl-left #[0 "\300\301!\207" [term-send-raw-string ""] 2 nil nil])
(defalias 'term-send-home #[0 "\300\301!\207" [term-send-raw-string "[1~"] 2 nil nil])
(defalias 'term-send-insert #[0 "\300\301!\207" [term-send-raw-string "[2~"] 2 nil nil])
(defalias 'term-send-end #[0 "\300\301!\207" [term-send-raw-string "[4~"] 2 nil nil])
(defalias 'term-send-prior #[0 "\300\301!\207" [term-send-raw-string "[5~"] 2 nil nil])
(defalias 'term-send-next #[0 "\300\301!\207" [term-send-raw-string "[6~"] 2 nil nil])
(defalias 'term-send-del #[0 "\300\301!\207" [term-send-raw-string "[3~"] 2 nil nil])
(defalias 'term-send-backspace #[0 "\300\301!\207" [term-send-raw-string ""] 2 nil nil])
#@184 Switch to char ("raw") sub-mode of term mode.
Each character you type is sent directly to the inferior without
intervention from Emacs, except for the escape character (usually C-c).
(defalias 'term-char-mode #[0 "\306 =?\205K\306 \307!\210\310\n!\210\310!\210\f\203\311\312\313\314\315\311$\210\312\316\317\315\311$\210\320\321p!!`V\203H\322\216\323\324\325\326B\327\315$\210\315\210\330 \210)\210\331 \207" [term-raw-map term-old-mode-map term-terminal-menu term-signals-menu term-char-mode-buffer-read-only buffer-read-only current-local-map use-local-map easy-menu-add t add-hook pre-command-hook term-set-goto-process-mark nil post-command-hook term-goto-process-mark-maybe process-mark get-buffer-process #[0 "\300\301\302!\303\"\211\301\302!=?\205\304\302\"\207" [advice--remove-function default-value term-input-sender term-send-string set-default] 4] advice--add-function :override #[0 "\300\301!\207" [default-value term-input-sender] 2] #[257 "\300\301\"\207" [set-default term-input-sender] 4 "\n\n(fn GV--VAL)"] term-send-string term-send-input term-update-mode-line] 6 (#$ . 34028) nil])
#@187 Switch to line ("cooked") sub-mode of term mode.
This means that Emacs editing commands work as normally, until
you type \[term-send-input] which sends the current line to the inferior.
(defalias 'term-line-mode #[0 "\305 =\205	\203
\n\306\307\310\311#\210\306\312\313\311#\210\314\f!\210\315 \207" [term-raw-map term-char-mode-buffer-read-only term-line-mode-buffer-read-only buffer-read-only term-old-mode-map current-local-map remove-hook pre-command-hook term-set-goto-process-mark t post-command-hook term-goto-process-mark-maybe use-local-map term-update-mode-line] 4 (#$ . 35152) nil])
#@128 Update the user-set state of `buffer-read-only' in `term-line-mode'.

Called as a buffer-local `read-only-mode-hook' function.
(defalias 'term-line-mode-buffer-read-only-update #[0 "\303 =?\205	\211\207" [term-raw-map buffer-read-only term-line-mode-buffer-read-only current-local-map] 2 (#$ . 35757)])
(defalias 'term-update-mode-line #[0 "\303 =\203\304\305\306\307\310\311\312\313&\202\304\314\306\315\310\311\312\316&	\205.\317\304\320\306\321\310\311\312\322&P\323\211\324p!\325p!\203m\326\323!\327=\203m\330 \331\203O\332\333\"\206P\334\335BB\262\210\336\337\"\331\203f\332\340\"\206g\334\341BB\262\210\342\340\257\266\343 \207" [term-raw-map term-pager-count mode-line-process current-local-map propertize "char" help-echo "mouse-1: Switch to line mode" mouse-face mode-line-highlight local-map (keymap (mode-line keymap (down-mouse-1 . term-line-mode))) "line" "mouse-1: Switch to char mode" (keymap (mode-line keymap (down-mouse-1 . term-char-mode))) " " "page" "mouse-1: Disable paging" (keymap (mode-line keymap (down-mouse-1 . term-pager-toggle))) nil get-buffer-process term-check-proc process-type serial serial-speed :propertize format " %d" "" (help-echo "mouse-1: Change the speed of the serial port" mouse-face mode-line-highlight local-map (keymap (mode-line keymap (down-mouse-1 . serial-mode-line-speed-menu-1)))) process-contact :summary " %s" (help-echo "mouse-1: Change the configuration of the serial port" mouse-face mode-line-highlight local-map (keymap (mode-line keymap (down-mouse-1 . serial-mode-line-config-menu-1)))) ": " force-mode-line-update] 11])
#@137 True if there is a process associated w/buffer BUFFER, and it
is alive.  BUFFER can be either a buffer or the name of one.

(fn BUFFER)
(defalias 'term-check-proc #[257 "\300!\211\205\f\301!\302>\207" [get-buffer-process process-status (run stop open listen connect)] 4 (#$ . 37381)])
#@379 Make a term process NAME in a buffer, running PROGRAM.
The name of the buffer is made by surrounding NAME with `*'s.
If there is already a running process in that buffer, it is not restarted.
Optional third arg STARTFILE is the name of a file to send the contents of to
the process.  Any more args are arguments to PROGRAM.

(fn NAME PROGRAM &optional STARTFILE &rest SWITCHES)
(defalias 'make-term #[898 "\300\301\301Q!\302!\204 r\211q\210\303 \210)\304%\210\211\207" [get-buffer-create "*" term-check-proc term-mode term-exec] 11 (#$ . 37676)])
#@212 Start a terminal-emulator in a new buffer.
The buffer is in Term mode; see `term-mode' for the
commands to use in that buffer.

\<term-raw-map>Type \[switch-to-buffer] to switch to another buffer.

(fn PROGRAM)
(defalias 'term #[257 "\300\301\"q\210\302 \210\303 \210\304\305!\207" [make-term "terminal" term-mode term-char-mode switch-to-buffer "*terminal*"] 4 (#$ . 38242) (byte-code "\302\303\206
\304\305!\206
	\"C\207" [explicit-shell-file-name shell-file-name read-from-minibuffer "Run program: " getenv "ESHELL"] 4)])
#@297 Start up a process in buffer for term modes.
Blasts any old process running in the buffer.  Doesn't set the buffer mode.
You can use this to cheaply run a series of processes in the same term
buffer.  The hook `term-exec-hook' is run after each exec.

(fn BUFFER NAME COMMAND STARTFILE SWITCHES)
(defalias 'term-exec #[1285 "rq\210\302!\211\203\303!\210\210\304$\305\301!\210db\210\306!`\307\223\210\310\311\"\210\312\313\"\210\203H\314\315!\210db\210\316!\210\317\320`d\"\"\210\210\321\322!\210)\207" [process-connection-type term-ptyp get-buffer-process delete-process term-exec-1 make-local-variable process-mark nil set-process-filter term-emulate-terminal set-process-sentinel term-sentinel sleep-for 1 insert-file-contents term-send-string delete-and-extract-region run-hooks term-exec-hook] 11 (#$ . 38778)])
#@95 Sentinel for term buffers.
The main purpose is to get rid of the local keymap.

(fn PROC MSG)
(defalias 'term-sentinel #[514 "\300!\301!\302>\205+\303!\204\304\305\"\202+r\211q\210\306\305!\210\307\310!\"\210\311!)\207" [process-buffer process-status (signal exit) buffer-name set-process-buffer nil use-local-map term-handle-exit process-name delete-process] 6 (#$ . 39620)])
#@96 Write process exit (or other change) message MSG in the current buffer.

(fn PROCESS-NAME MSG)
(defalias 'term-handle-exit #[514 "\301d`\302\303\304\305#\210\302\306\307\305#\210b\210\310\311\312\261\210\313 \210\211\205-\211W\205-\211b)\207" [buffer-read-only nil remove-hook pre-command-hook term-set-goto-process-mark t post-command-hook term-goto-process-mark-maybe 10 "Process " " " force-mode-line-update] 10 (#$ . 40014)])
#@93 Name to use for TERM.
Using "emacs" loses, because bash disables editing if $TERM == emacs.
(defvar term-term-name "eterm-color" (#$ . 40461))
#@33 Termcap capabilities supported.
(defvar term-termcap-format "%s%s:li#%d:co#%d:cl=\\E[H\\E[J:cd=\\E[J:bs:am:xn:cm=\\E[%%i%%d;%%dH:nd=\\E[C:up=\\E[A:ce=\\E[K:ho=\\E[H:pt:al=\\E[L:dl=\\E[M:DL=\\E[%%dM:AL=\\E[%%dL:cs=\\E[%%i%%d;%%dr:sf=^J:dc=\\E[P:DC=\\E[%%dP:IC=\\E[%%d@:im=\\E[4h:ei=\\E[4l:mi::so=\\E[7m:se=\\E[m:us=\\E[4m:ue=\\E[m:md=\\E[1m:mr=\\E[7m:me=\\E[m:UP=\\E[%%dA:DO=\\E[%%dB:LE=\\E[%%dD:RI=\\E[%%dC:kl=\\EOD:kd=\\EOB:kr=\\EOC:ku=\\EOA:kN=\\E[6~:kP=\\E[5~:@7=\\E[4~:kh=\\E[1~:mk=\\E[8m:cb=\\E[1K:op=\\E[39;49m:Co#8:pa#64:AB=\\E[4%%dm:AF=\\E[3%%dm:cr=^M:bl=^G:do=^J:le=^H:ta=^I:se=\\E[27m:ue=\\E[24m:kb=^?:kD=^[[3~:sc=\\E7:rc=\\E8:r1=\\Ec:" (#$ . 40610))
#@112 43 if Bash is so old that it needs EMACS set.
Some other integer if Bash is new or not in use.
Nil if unknown.
(defvar term--bash-needs-EMACS-status nil (#$ . 41278))
#@51 t if Bash is old, nil if it is new or not in use.
(defalias 'term--bash-needs-EMACSp #[0 "\206\302	B\3031\304\305\306\211\211\307\310&0\202\210\311)\211\312=\207" [term--bash-needs-EMACS-status process-environment "BASH_ENV" (error) call-process "bash" nil "-c" "case $BASH_VERSION in [0123].*|4.[0123].*) exit 43;; esac" 0 43] 7 (#$ . 41451)])
#@37 

(fn NAME BUFFER COMMAND SWITCHES)
(defalias 'term-exec-1 #[1028 "\306\307\"\306\310	\"\306\n\311\f%\306\312
#\306\313\"\306\314\f\"\257\244\315\211\316\317 \203=\306\320
#B\321\322\323\324\306\325\f#\326		&	,\207" [term-term-name data-directory term-termcap-format term-height term-width emacs-version format "TERM=%s" "TERMINFO=%s" "TERMCAP=" "INSIDE_EMACS=%s,term:%s" "LINES=%d" "COLUMNS=%d" t binary term--bash-needs-EMACSp "EMACS=%s (term:%s)" apply start-process "/bin/sh" "-c" "stty -nl echo rows %d columns %d sane 2>/dev/null;if [ $1 = .. ]; then shift; fi; exec \"$@\"" ".." term-protocol-version process-environment coding-system-for-read inhibit-eol-conversion process-connection-type] 14 (#$ . 41812)])
#@635 Set the buffer's `term-input-ring' from a history file.
The name of the file is given by the variable `term-input-ring-file-name'.
The history ring is of size `term-input-ring-size', regardless of file size.
If `term-input-ring-file-name' is nil this function does nothing.

If the optional argument SILENT is non-nil, we say nothing about a
failure to read the history file.

This function is useful for major mode commands and mode hooks.

The structure of the history file should be one input command per line,
with the most recent command last.
See also `term-input-ignoredups' and `term-write-input-ring'.

(fn &optional SILENT)
(defalias 'term-read-input-ring #[256 "\203\n\305\232\203\f\306\207\307!\204\211\206v\310\311\"\207\312\313	!\314\315!r\211q\210\316\312\317\320\321!\322\"\323$\216\324!\210db\210	W\203m\325\326\306\327#\203m\330\224\330\225{\n\203`\331!\204`\332\312\"\230\204e\333\"\210\210T\262\202:*\210\211\306\211\266\203\207" [term-input-ring-file-name term-input-ring-size term-input-ignoredups term-input-ring term-input-ring-index "" nil file-readable-p message "Cannot read history file %s" 0 make-ring generate-new-buffer " *temp*" make-byte-code "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 insert-file-contents re-search-backward "^[ 	]*\\([^#\n].*\\)[ 	]*$" t 1 ring-empty-p ring-ref ring-insert-at-beginning] 11 (#$ . 42565)])
#@344 Write the buffer's `term-input-ring' to a history file.
The name of the file is given by the variable `term-input-ring-file-name'.
The original contents of the file are lost if `term-input-ring' is not empty.
If `term-input-ring-file-name' is nil this function does nothing.

Useful within process sentinels.

See also `term-read-input-ring'.
(defalias 'term-write-input-ring #[0 "\203\302\232\204	\203\303	!\203\304\207\305!\204!\306\307\"\207\310\311!	\312!rq\210\313 \210\211\314V\203E\211S\262\315\"\316\261\210\2020\317\320 \304\304\321%\210\322\304!)\207" [term-input-ring-file-name term-input-ring "" ring-empty-p nil file-writable-p message "Cannot write history file %s" get-buffer-create " *Temp Input History*" ring-length erase-buffer 0 ring-ref 10 write-region buffer-string no-message kill-buffer] 10 (#$ . 43989)])
#@49 List in help buffer the buffer's input history.
(defalias 'term-dynamic-list-input-ring #[0 "\306!\203\f\307!\203\310\311!\207\312\313\314!S\315 \316Y\203-\317\"B\262S\262\202	r\320!q\210p\321 \210\312\211\322\211\322#\323 \210\324\325!\210+\211$\326!\210q\210\327y\210\330\331\312\332#\203j\333\334!\210\202[\335!\210)\266\336\316!\210\310\337!\210\340 \211\341=\203\207\342!\202\216\211%B\211%\262\207" [term-input-ring default-directory buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks ring-p ring-empty-p message "No history" nil " *Input History*" ring-length current-window-configuration 0 ring-ref get-buffer-create kill-all-local-variables t erase-buffer run-hooks temp-buffer-setup-hook display-completion-list 3 search-backward "completion" move replace-match "history reference" internal-temp-output-buffer-show sit-for "Hit space to flush" read-event 32 set-window-configuration inhibit-read-only standard-output unread-command-events] 11 (#$ . 44848) nil])
#@15 

(fn PROMPT)
(defalias 'term-regexp-arg #[257 "\303\304\211\211\301%\211\305\230\203	\211A@\240\202\211\306\n!)D\207" [last-command minibuffer-history-search-history current-prefix-arg read-from-minibuffer nil "" prefix-numeric-value] 7 (#$ . 45891)])
#@12 

(fn ARG)
(defalias 'term-search-arg #[257 "\302 \204	\303\304!\207\203\305!\203\303\306!\207\211\307U\203!\310\311\207\207" [term-input-ring term-input-ring-index term-after-pmark-p error "Not at command line" ring-empty-p "Empty input ring" 0 nil 1] 3 (#$ . 46157)])
#@12 

(fn ARG)
(defalias 'term-search-start #[257 "\203\302\303V\203\304\202\305\\\306	!\"\207\211\303Y\203\303\207\306	!S\207" [term-input-ring-index term-input-ring mod 0 1 -1 ring-length] 5 (#$ . 46442)])
#@105 Return the string ARG places along the input ring.
Moves relative to `term-input-ring-index'.

(fn ARG)
(defalias 'term-previous-input-string #[257 "\302	\203\303	\\\304!\"\202\"\207" [term-input-ring term-input-ring-index ring-ref mod ring-length] 7 (#$ . 46664)])
#@50 Cycle backwards through input history.

(fn ARG)
(defalias 'term-previous-input #[257 "\300\301\"\207" [term-previous-matching-input "."] 4 (#$ . 46944) "*p"])
#@49 Cycle forwards through input history.

(fn ARG)
(defalias 'term-next-input #[257 "\300[!\207" [term-previous-input] 3 (#$ . 47111) "*p"])
#@128 Return the string matching REGEXP ARG places along the input ring.
Moves relative to `term-input-ring-index'.

(fn REGEXP ARG)
(defalias 'term-previous-matching-input-string #[514 "\301\"\211\205\f\302\"\207" [term-input-ring term-previous-matching-input-string-position ring-ref] 6 (#$ . 47257)])
#@153 Return the index matching REGEXP ARG places along the input ring.
Moves relative to START, or `term-input-ring-index'.

(fn REGEXP ARG &optional START)
(defalias 'term-previous-matching-input-string-position #[770 "\301!\203\f\302!\203\303\304!\210\305!\306V\203\307\202\310\311\206&\312!Z\"\313\211\306U\204\204\262\311\\\"\262W\203j\204j\314\315\"\"\204j\311\\\"\262U\262\202C\306V\203wS\202zT\262\202,\314\315\"\"\205\214\207" [term-input-ring ring-p ring-empty-p error "No history" ring-length 0 1 -1 mod term-search-start nil string-match ring-ref] 13 (#$ . 47567)])
#@233 Search backwards through input history for match for REGEXP.
(Previous history elements are earlier commands.)
With prefix argument N, search for Nth previous match.
If N is negative, find the next or Nth next match.

(fn REGEXP N)
(defalias 'term-previous-matching-input #[514 "\302!\262\303\"\211\204\304\305!\202(\211\306\307T\"\210\310\311p!!`|\210\312	\"c\207" [term-input-ring-index term-input-ring term-search-arg term-previous-matching-input-string-position error "Not found" message "History item: %d" process-mark get-buffer-process ring-ref] 6 (#$ . 48213) (term-regexp-arg "Previous input matching (regexp): ")])
#@242 Search forwards through input history for match for REGEXP.
(Later history elements are more recent commands.)
With prefix argument N, search for Nth following match.
If N is negative, find the previous or Nth previous match.

(fn REGEXP N)
(defalias 'term-next-matching-input #[514 "\300[\"\207" [term-previous-matching-input] 5 (#$ . 48855) (term-regexp-arg "Next input matching (regexp): ")])
#@246 Search backwards through input history for match for current input.
(Previous history elements are earlier commands.)
With prefix argument N, search for Nth previous match.
If N is negative, search forwards for the -Nth following match.

(fn N)
(defalias 'term-previous-matching-input-from-input #[257 "\303>\204\304\305p!!`{\306\307\310\311	!P\"\207" [last-command term-matching-input-from-input-string term-input-ring-index (term-previous-matching-input-from-input term-next-matching-input-from-input) process-mark get-buffer-process nil term-previous-matching-input "^" regexp-quote] 5 (#$ . 49260) "p"])
#@251 Search forwards through input history for match for current input.
(Following history elements are more recent commands.)
With prefix argument N, search for Nth following match.
If N is negative, search backwards for the -Nth previous match.

(fn N)
(defalias 'term-next-matching-input-from-input #[257 "\300[!\207" [term-previous-matching-input-from-input] 3 (#$ . 49881) "p"])
#@698 Expand input command history references before point.
Expansion is dependent on the value of `term-input-autoexpand'.

This function depends on the buffer's idea of the input history, which may not
match the command interpreter's idea, assuming it has one.

Assumes history syntax is like typical Un*x shells'.  However, since Emacs
cannot know the interpreter's idea of input line numbers, assuming it has one,
it cannot expand absolute input line number references.

If the optional argument SILENT is non-nil, never complain
even if history reference seems erroneous.

See `term-magic-space' and `term-replace-by-expanded-history-before-point'.

Returns t if successful.

(fn &optional SILENT)
(defalias 'term-replace-by-expanded-history #[256 "\205(\303\304	 \"\205(\212\305 \210\306\n!)\205(\307 \310\311!\210\312!\210\211\307 U?\262\207" [term-input-autoexpand term-get-old-input term-prompt-regexp string-match "[!^]" beginning-of-line looking-at buffer-modified-tick message "Expanding history references..." term-replace-by-expanded-history-before-point] 4 (#$ . 50268) nil])
#@127 Expand directory stack reference before point.
See `term-replace-by-expanded-history'.  Returns t if successful.

(fn SILENT)
(defalias 'term-replace-by-expanded-history-before-point #[257 "\212\302 `Z\303\304!\210`\305\302 Zw\210`\302 ZW\205g\304h\306U\204)\307`\"\2030`Tb\210\202\n\310\311!\203A\312\225b\210\313\314!\210\202\n\310\315!\203|\316\317\224\317\225{!S\211\320	!X\203p\321\322\323!\324\224\324\225#\325\211#\210\211\313\326T\"\210\202x\312\225b\210\313\327!\210\210\202\n\310\330!\204\210\310\331!\203\235\321\322\323\312!\317\224\317\225#\325\211#\210\313\332!\210\202\n\310\333!\203\317\224\317\225\324\224\324\225\206\260\206\265{\334 \335\312\336\337\340!\341\"\342$\216\310\343!)\262\203\321\344\202\322\345\334 \335\312\336\337\340!\346\"\342$\216\347\350!P\317\")\262\211\204\312\225b\210	\204\313\351!\210\352 \210\202\211\321\322\353	\"\354\224\354\225#\325\211#\210\313\326T\"\210\266\202\n\310\355!\203`\317\224\317\225{\324\224\324\225{\304\321\323\312!\325\211#\210`\262\312\224b\210\356\325#\204Q\204[\357\351!\210\202[\321\325\211#\210\313\360!\210\266\202\n\312\225b\210\202\n\266\202)\207" [term-input-ring-index term-input-ring line-end-position term-bol nil "^!^" 92 term-within-quotes looking-at "![0-9]+\\($\\|[^-]\\)" 0 message "Absolute reference cannot be expanded" "!-\\([0-9]+\\)\\(:?[0-9^$*-]+\\)?" string-to-number 1 ring-length replace-match term-args term-previous-input-string 2 t "History item: %d" "Relative reference exceeds input history size" "!!?:?\\([0-9^$*-]+\\)" "!!" "History item: previous" "!\\??\\({\\(.+\\)}\\|\\(\\sw+\\)\\)\\(:?[0-9^$*-]+\\)?" match-data make-byte-code "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 "!\\?" "" "^" [set-match-data evaporate] term-previous-matching-input-string-position regexp-quote "Not found" ding ring-ref 4 "\\^\\([^^]+\\)\\^?\\([^^]*\\)\\^?" search-forward error "History item: substituted"] 16 (#$ . 51366)])
#@153 Expand input history references before point and insert ARG spaces.
A useful command to bind to SPC.  See `term-replace-by-expanded-history'.

(fn ARG)
(defalias 'term-magic-space #[257 "\300 \210\301!\207" [term-replace-by-expanded-history self-insert-command] 3 (#$ . 53359) "p"])
#@106 Return t if the number of quotes between BEG and END is odd.
Quotes are single and double.

(fn BEG END)
(defalias 'term-within-quotes #[514 "\300\301#\300\302#\303\304\"\305U\206\303\304\"\305U\207" [term-how-many-region "\\(^\\|[^\\]\\)'" "\\(^\\|[^\\]\\)\"" mod 2 1] 7 (#$ . 53650)])
#@75 Return number of matches for REGEXP from BEG to END.

(fn REGEXP BEG END)
(defalias 'term-how-many-region #[771 "\300\212\301 \302\300\303\304\305!\306\"\307$\216b\210\310\311#\203\"T\262\202)\210)\211\207" [0 match-data make-byte-code "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 re-search-forward t] 11 (#$ . 53951)])
#@25 

(fn STRING BEGIN END)
(defalias 'term-args #[771 "\300 \301\302\303\304\305!\306\"\307$\216\204\310\302\311#\202qf\312=\203&T\202'{\313\314\"\2034\315\202L\313\316\"\203?\302\202L\211\317\230\203I\311\202L\320!\313\321\"\203W\311\202i\313\322\"\203h\320\323\302\225\"!\202i\211\310#\266\203)\207" [match-data make-byte-code 0 "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 term-arguments nil 58 string-match "^[*^]" 1 "^-" "$" string-to-number "[-*$]$" "-" substring] 11 (#$ . 54306)])
#@12 

(fn ARG)
(defalias 'term-delim-arg #[257 "\204\211C\207\301\302GW\203UH>\2030W\203EH=\203ET\262\202W\203EH>\204ET\262\2020\303#B\262\266\202\207" [term-delimiter-argument-list nil 0 substring] 10 (#$ . 54850)])
#@379 Return from STRING the NTH to MTH arguments.
NTH and/or MTH can be nil, which means the last argument.
Returned arguments are separated by single spaces.
We assume whitespace separates arguments, except within quotes.
Also, a run of one or more of a single character
in `term-delimiter-argument-list' is a separate argument.
Argument 0 is the command name.

(fn STRING NTH MTH)
(defalias 'term-arguments #[771 "\300\301\302\211\301\211\211\203X\203k\303#\203k\2038\302\224U\2038\302\225\262\211\2063\304\224\262\202\203\\\305\n#\262\211\203PB\202V\306!\244\262T\262\304\224\262\302\224\262\302\225\262\202\203\217\305\n#\262\211\203\203B\202\211\306!\244\262T\262\206\226S\203\243	ZS\202\244\302\307\310\233\237\233\311#\266\202\207" ["[^ \n	\"'`]+\\|\\(\"[^\"]*\"\\|'[^']*'\\|`[^`]*`\\)" nil 0 string-match 1 substring term-delim-arg mapconcat identity " "] 17 (#$ . 55115)])
#@1643 Send input to process.
After the process output mark, sends all text from the process mark to
point as input to the process.  Before the process output mark, calls value
of variable `term-get-old-input' to retrieve old input, copies it to the
process mark, and sends it.  A terminal newline is also inserted into the
buffer and sent to the process.  The functions in `term-input-filter-functions'
are called on the input before sending it.

The input is entered into the input history ring, if the value of variable
`term-input-filter' returns non-nil when called on the input.  Any history
reference may be expanded depending on the value of the variable
`term-input-autoexpand'.

If variable `term-eol-on-send' is non-nil, then point is moved to the
end of line before sending the input.

The values of `term-get-old-input', `term-input-filter-functions', and
`term-input-filter' are chosen according to the command interpreter running
in the buffer.  E.g.,

If the interpreter is the csh,
    term-get-old-input is the default: take the current line, discard any
        initial string matching regexp term-prompt-regexp.
    term-input-filter-functions monitors input for "cd", "pushd", and
	"popd" commands.  When it sees one, it cd's the buffer.
    term-input-filter is the default: returns t if the input isn't all white
	space.

If the term is Lucid Common Lisp,
    term-get-old-input snarfs the sexp ending at point.
    term-input-filter-functions does nothing.
    term-input-filter returns nil if the input matches input-filter-regexp,
        which matches (1) all whitespace (2) :a, :c, etc.

Similarly for Soar, Scheme, etc.
(defalias 'term-send-input #[0 "\306p!\211\204
\307\310!\202\315\311!\312!`Y\211\203'\203!\313\210`{\202)	 \n\314=\2043\211\202:\315\316!\210`{\n\317=\204D\211\202U\315\316!\210`{`|\210c\210\211\262\203d\212\311!b\210\320 )\f!\203\214
\203\206\321!\203\206\322!\204\206\323\324\"\230\204\214\325\"\210\326\327\330P\"\210\313\313\223\210`\313\223\210\203\302\331!\203\264|\210\313\223\210\311!`\313\223\210b\210\"\266\206\207" [term-eol-on-send term-get-old-input term-input-autoexpand term-pager-count term-input-filter term-input-ignoredups get-buffer-process error "Current buffer has no process" process-mark marker-position nil input term-replace-by-expanded-history t history term-current-row ring-p ring-empty-p ring-ref 0 ring-insert run-hook-with-args term-input-filter-functions "\n" marker-buffer term-input-ring term-input-ring-index term-last-input-start term-last-input-end term-pending-delete-marker term-input-sender] 11 (#$ . 56079) nil])
#@118 Default for `term-get-old-input'.
Take the current line, and discard any initial text matching
`term-prompt-regexp'.
(defalias 'term-get-old-input-default #[0 "\212\300 \210\301 \210`\302\210\211`{\262)\207" [beginning-of-line term-skip-prompt nil] 3 (#$ . 58753)])
#@112 Insert after prompt old input at point as new input to be edited.
Calls `term-get-old-input' to get old input.
(defalias 'term-copy-old-input #[0 " \301p!\211\204\302\303!\202\304!b\210c\207" [term-get-old-input get-buffer-process error "Current buffer has no process" process-mark] 4 (#$ . 59028) nil])
#@128 Skip past the text matching regexp `term-prompt-regexp'.
If this takes us past the end of the current line, don't skip at all.
(defalias 'term-skip-prompt #[0 "\301 \302!\205\303\225X\205\303\225b\207" [term-prompt-regexp line-end-position looking-at 0] 3 (#$ . 59346)])
#@43 Is point after the process output marker?
(defalias 'term-after-pmark-p #[0 "\300\301\302p!!!\211`X\207" [marker-position process-mark get-buffer-process] 4 (#$ . 59629)])
#@162 Default function for sending to PROC input STRING.
This just sends STRING plus a newline.  To override this,
set the hook `term-input-sender'.

(fn PROC STRING)
(defalias 'term-simple-send #[514 "\300\"\210\300\301\"\207" [term-send-string "\n"] 5 (#$ . 59808)])
#@299 Go to the beginning of line, then skip past the prompt, if any.
If a prefix argument is given (\[universal-argument]), then no prompt skip
-- go straight to column 0.

The prompt skip is done by skipping text matching the regular expression
`term-prompt-regexp', a buffer local variable.

(fn ARG)
(defalias 'term-bol #[257 "\300 \210\211?\205\n\301 \207" [beginning-of-line term-skip-prompt] 2 (#$ . 60081) "P"])
#@626 Read a single line of text from user without echoing, and return it.
Prompt with argument PROMPT, a string.  Optional argument STARS causes
input to be echoed with `*' characters on the prompt line.  Input ends with
RET, LFD, or ESC.  DEL or C-h rubs out.  C-u kills line.  C-g aborts (if
`inhibit-quit' is set because e.g. this function was called from a process
filter and C-g is pressed, this function returns nil rather than a string).

Note that the keystrokes comprising the text can still be recovered
(temporarily) with \[view-lossage].  This may be a security bug for some
applications.

(fn PROMPT &optional STARS)
(defalias 'term-read-noecho #[513 "\303\304\211\305\306\211\204\203\203 \307\310\311G\312\"#\210\202&\307\313\"\210\314 \262\315U\2038\305\211\262\202	\316U\204J\317U\204J\320U\203P\305\262\202	\321U\203\\\303\262\202	\322U\204r\323U\204r\324!P\262\202	G\304V\203	\325\304\326#\262\202	\n\203\225\306\211\307\327!\210\330\305!\210\202\232\307\303!\210*\207" [cursor-in-echo-area echo-keystrokes quit-flag "" 0 t nil message "%s%s" make-string 42 "%s" read-char 7 13 10 27 21 8 127 char-to-string substring -1 "Quit" beep] 14 (#$ . 60503)])
(make-obsolete 'term-read-noecho 'read-passwd "27.1")
#@199 Read a string without echoing.
Then send it to the process running in the current buffer.  A new-line
is additionally sent.  String is not saved on term input history list.

(fn STR &optional PROC)
(defalias 'term-send-invisible #[513 ";\204\n\301\302!\262\211\204\303p!\262\211\204\304\305!\207\306B\244\307\"\210\307\310\"\207" [term-kill-echo-list read-passwd "Non-echoed text: " get-buffer-process error "Current buffer has no process" nil term-send-string "\n"] 5 (#$ . 61778) "P"])
#@169 Prompt in the minibuffer for password and send without echoing.
Checks if STRING contains a password prompt as defined by
`comint-password-prompt-regexp'.

(fn STRING)
(defalias 'term-watch-for-password-prompt #[257 "\303 =?\205\304\305\n\")\205\306\307!!\207" [term-raw-map case-fold-search comint-password-prompt-regexp current-local-map t string-match term-send-invisible read-passwd] 4 (#$ . 62287)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable term-input-chunk-size funcall function #[0 "\300\207" [512] 1] "Long inputs send to term processes are broken up into chunks of this size.\nIf your process is choking on big inputs, try lowering the value." :group term :type integer] 8)
#@341 Send to PROC the contents of STR as input.
This is equivalent to `process-send-string', except that long input strings
are broken up into chunks of size `term-input-chunk-size'.  Processes
are given a chance to output between chunks.  This can help prevent processes
from hanging when you send them long inputs on some OS's.

(fn PROC STR)
(defalias 'term-send-string #[514 "\211G\211^\301\302\303#\"\210\211W\205-\211\\\304 \210\301\302^#\"\210\262\202\207" [term-input-chunk-size process-send-string substring 0 accept-process-output] 12 (#$ . 63031)])
#@208 Send to PROC the region delimited by START and END.
This is a replacement for `process-send-region' that tries to keep
your process from hanging on long inputs.  See `term-send-string'.

(fn PROC START END)
(defalias 'term-send-region #[771 "\300{\"\207" [term-send-string] 7 (#$ . 63611)])
#@52 Kill all output from interpreter since last input.
(defalias 'term-kill-output #[0 "\301\302p!!\303\"\210\211b\210\304c\210\211`\305\223\207" [term-last-input-end process-mark get-buffer-process kill-region "*** output flushed ***\n" nil] 4 (#$ . 63911) nil])
#@127 Display start of this batch of interpreter output at top of window.
Sets mark to the value of point when this command is run.
(defalias 'term-show-output #[0 "b\210\301u\210\302 \210\303\304 `\"\210\305\207" [term-last-input-end -1 beginning-of-line set-window-start selected-window nil] 3 (#$ . 64180) nil])
#@31 Interrupt the current subjob.
(defalias 'term-interrupt-subjob #[0 "\301\302\"\207" [term-ptyp interrupt-process nil] 3 (#$ . 64497) nil])
#@41 Send kill signal to the current subjob.
(defalias 'term-kill-subjob #[0 "\301\302\"\207" [term-ptyp kill-process nil] 3 (#$ . 64643) nil])
#@41 Send quit signal to the current subjob.
(defalias 'term-quit-subjob #[0 "\301\302\"\207" [term-ptyp quit-process nil] 3 (#$ . 64789) nil])
#@292 Stop the current subjob.
WARNING: if there is no current subjob, you can end up suspending
the top-level process running in the buffer.  If you accidentally do
this, use \[term-continue-subjob] to resume the process.  (This
is not a problem with most shells, since they ignore this signal.)
(defalias 'term-stop-subjob #[0 "\301\302\"\207" [term-ptyp stop-process nil] 3 (#$ . 64936) nil])
#@111 Send CONT signal to process buffer's process group.
Useful if you accidentally suspend the top-level process.
(defalias 'term-continue-subjob #[0 "\301\302\"\207" [term-ptyp continue-process nil] 3 (#$ . 65334) nil])
#@63 Kill all text from last stuff output by interpreter to point.
(defalias 'term-kill-input #[0 "\300\301p!!\302!`V\205\303`\"\207" [process-mark get-buffer-process marker-position kill-region] 5 (#$ . 65558) nil])
#@89 Delete ARG characters forward, or send an EOF to process if at end of
buffer.

(fn ARG)
(defalias 'term-delchar-or-maybe-eof #[257 "m\203\300 \207\301!\207" [process-send-eof delete-char] 3 (#$ . 65781) "p"])
#@46 Send an EOF to the current buffer's process.
(defalias 'term-send-eof #[0 "\300 \207" [process-send-eof] 1 (#$ . 65999) nil])
#@242 Search backward through buffer for match for REGEXP.
Matches are searched for on lines that match `term-prompt-regexp'.
With prefix argument N, search for Nth previous match.
If N is negative, find the next or Nth next match.

(fn REGEXP N)
(defalias 'term-backward-matching-input #[514 "\301Q\212\302V\203\302\202\303\210\304\305\306$\205`)\211\204*\307\310!\210\311 \2020\211b\210\312\305!\207" [term-prompt-regexp ".*" 0 1 re-search-backward nil t message "Not found" ding term-bol] 8 (#$ . 66132) (term-regexp-arg "Backward input matching (regexp): ")])
#@250 Search forward through buffer for match for REGEXP.
Matches are searched for on lines that match `term-prompt-regexp'.
With prefix argument N, search for Nth following match.
If N is negative, find the previous or Nth previous match.

(fn REGEXP N)
(defalias 'term-forward-matching-input #[514 "\300[\"\207" [term-backward-matching-input] 5 (#$ . 66711) (term-regexp-arg "Forward input matching (regexp): ")])
#@81 Move to end of Nth next prompt in the buffer.
See `term-prompt-regexp'.

(fn N)
(defalias 'term-next-prompt #[257 "\211\302V\203\f\303\202
\302\210\304!\210\305 )\207" [term-prompt-regexp paragraph-start 0 1 forward-paragraph term-skip-prompt] 3 (#$ . 67129) "p"])
#@85 Move to end of Nth previous prompt in the buffer.
See `term-prompt-regexp'.

(fn N)
(defalias 'term-previous-prompt #[257 "\300[!\207" [term-next-prompt] 3 (#$ . 67406) "p"])
#@39 

(fn PREVIOUS-DIR/FILE SOURCE-MODES)
(defalias 'term-source-default #[514 "\203	>\203\303!\304!B\207\206\n\305B\207" [buffer-file-name major-mode default-directory file-name-directory file-name-nondirectory nil] 5 (#$ . 67588)])
#@14 

(fn FNAME)
(defalias 'term-check-source #[257 "\300!\211\205\301!\205\302\303\304\305!\"!\205r\211q\210\306 )\207" [get-file-buffer buffer-modified-p y-or-n-p format "Save buffer %s first? " buffer-name save-buffer] 7 (#$ . 67835)])
#@67 Return string around `point' that starts the current line or nil.
(defalias 'term-extract-string #[0 "\212`\300 \301 \302\303\304#\205`Tb\210\305\303\304#\205`S\205(\211\205({\266\205)\207" [line-beginning-position line-end-position search-backward "\"" t search-forward] 8 (#$ . 68085)])
#@54 

(fn PROMPT PREV-DIR/FILE SOURCE-MODES MUSTMATCH-P)
(defalias 'term-get-source #[1028 "\300\"\301 \211\205!\3021\303!0\202\210\304\202!\205!\305!?\211\203+\306!\202-@\2037\307!\2029A\310\203G\311\312#\202I	\211P	$\313\314!!C\207" [term-source-default term-extract-string (error) file-exists-p nil file-directory-p file-name-directory file-name-nondirectory read-file-name format "%s(default %s) " expand-file-name substitute-in-file-name] 14 (#$ . 68392)])
#@17 

(fn PROC STR)
(defalias 'term-proc-query #[514 "\300!\301!\302!\210q\210\303!\304!\305\"\210\306!\210\307\"?\205F\310!\311\"\210\312\313!\210\307\"\204@\314!\202D\311\"\262\266\202\207" [process-buffer process-mark display-buffer get-buffer-window marker-position term-send-string accept-process-output pos-visible-in-window-p window-point set-window-point sit-for 0 push-mark] 10 (#$ . 68887)])
(defalias 'term-horizontal-column #[0 "\300 \301 Z\207" [term-current-column term-start-line-column] 2])
#@14 

(fn COUNT)
(defalias 'term-vertical-motion '(macro . #[257 "\300\301E\207" [funcall term-vertical-motion] 4 (#$ . 69422)]))
#@14 

(fn COUNT)
(defalias 'term-buffer-vertical-motion #[257 "\211\301U\203\302i\245_!\210\301\207\211\301V\203`\303i\245\\\303\210\304i\305#\245\306]\211\262X\203Bm\204B\211Z\262\303u\210\303\210\202\211Y\203X\211\301V\203X\304Z\305#\202_\302_!\210\207\303[\304i\305#\245\306]\211\262X\203\206\307 \210o\204\206\211Z\262\305u\210\202c\211Y\203\234\211\301V\203\234\304\306Z#\202\247\302\310\306#_!\210\207" [term-width 0 move-to-column nil + -1 1 beginning-of-line -] 8 (#$ . 69555)])
(defalias 'term-start-line-column #[0 "\206`	\302!\210i\211b\210\262\206\303\207" [term-start-line-column term-vertical-motion 0 nil] 3])
(defalias 'term-current-column #[0 "\206i\211\206\301\207" [term-current-column nil] 2])
#@15 

(fn COLUMN)
(defalias 'term-move-to-column #[257 "\211\301 \302\303\"\210`V\205\304`\305\306$\207" [term-current-column line-end-position move-to-column t put-text-property font-lock-face default] 7 (#$ . 70335)])
#@14 

(fn DELTA)
(defalias 'term-move-columns #[257 "\300\301\302 \\]!\207" [term-move-to-column 0 term-current-column] 5 (#$ . 70563)])
#@19 

(fn CHAR COUNT)
(defalias 'term-insert-char #[514 "`\300\"\210\301`\302\303$\207" [insert-char put-text-property font-lock-face default] 8 (#$ . 70703)])
(defalias 'term-current-row #[0 "\206\214\212	d}\210\n\303![*\211\206\304\207" [term-current-row term-home-marker term-vertical-motion -9999 nil] 2])
#@14 

(fn DELTA)
(defalias 'term-adjust-current-row-cache #[257 "\205\301\\]\211\207" [term-current-row 0] 4 (#$ . 71024)])
(defalias 'term-terminal-pos #[0 "\212\302 \303\211\304!\210iZ\262	!\262B\266\203)\207" [term-vertical-motion term-height term-current-column nil 0] 5])
#@16 

(fn MESSAGE)
(defalias 'term-handle-ansi-terminal-messages #[257 "\306\307\"\203\252\310\224\311\\H\312 \313\310\314\315\316!\317\"\320$\216\321\322\\\306\323\322\\##)\262\324\325\326\327\211$\262\330U\203C\202\\\331U\203N\202\\\332U\203Y\202\\\327\262\211\204\245\333	\334 \230\203u\n\335 \230\203u\336!\202}\337\n\340	\341\260!	\334 \230\203\223\f\"#$%\202\245
#\"%$\324\211#\324%\266\202\207" [term-ansi-at-dir term-ansi-at-host term-ansi-at-user default-directory term-ansi-at-save-user ange-ftp-default-user string-match "AnSiT.+\n" 0 6 match-data make-byte-code "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 substring 8 "
?\n" nil replace-match "" t 99 104 117 file-name-as-directory system-name user-real-login-name expand-file-name "/-:" "@" ":" term-ansi-at-save-pwd ange-ftp-default-password term-ansi-at-save-anon ange-ftp-generate-anonymous-password] 13 (#$ . 71316)])
#@55 Regexp matching control sequences handled by term.el.
(defconst term-control-seq-regexp "\\(?:[
\n	]\\|[^\n]+
?\n\\|\\(?:[DM78c]\\|AnSiT[^\n]+
?\n\\|\\[\\([0-?]*\\)[ -/]*[@-~]\\)\\)" (#$ . 72282))
(defconst term-control-seq-prefix-regexp "[]")
#@17 

(fn PROC STR)
(defalias 'term-emulate-terminal #[514 "r\306!q\210\307\310\211\211\211\211\311\211\312 \310G\313 r\314\307\315\316\317!\320\"\321$\216\322\n!\2037\n\323
!|\210\n\310\211\223\210`\323
!U\204D\324 \262\325 p=\203O\326\202P\327\330\323
!!\262\323\f!b\210\214d\323
!V\203w\331 \f=\204we\323
!}\210
\203\201\332
\"\210@\203\225@P\262\nG\262\310@	W\203\315\333A\f\f#\262	\205\260\334\335\f\"	\205\267\335\225\n\203\301\307\225\202\340\333B#\262\n\203\333\336
\f\"@\202\336\262T
V\203C\203\371\337\335\311\"\210\340\307!\210\310C\341\336#D\311#\262U\203[\307GW\2030\342
\343\335#H!\344=\2030T\262\202\211V\203Y\307V\203Y\336
[\"@\336
\307[#\262
Z\262
Z\262\266\345 `\310E\204\242
G\\FV\203\242\336\307FZ#c\210`\346 |\210\337\335\311\"\210\347\350 [!\210\351`S`\352#\210\336FZ\"\262\307\262\202d
c\210i\211(Z\262m\204\304G\204\304`\347!\210\211`|\210\310(\210G\203\341`\310\210iFV\203\335`iFZZ`|\210\211b\266\353`\354H$\266\350 F=\203\371\347\355!\210`C\310(\262
\211X\205

H\211\356\267\202E\350 \340FS\357\360\361\360\"[#^!\266\202[\307!\210I(\202[J\203=\362 \204[\337\335\311\"\210\202[\347\355!\210\202[\363\311!\210\202[K\341\336T\321ZH\364=\203n\321\202o\335Z#D\311#!\210\202[TH\211\365\267\202AS=\203A\366\367\370\371	\372\"\"SH#\210\202A\373 \210\337\335\311\"\210\202A\374 LW\204\277\374 SLY\203\306\337\355!\210\202A\337\355\311\"\210\202A\373 \210\374 \345 MNOPQRH\257	S\202AS\203A\375S@SA@\"\210\321S8M\376S8N\377S8O\201]S8P\201^S8Q\201_S8R\360S8H\202A\201` \210\202A\201a\336#!\210\210\202[\201b\201c\"\204[\211\201d\201e\"\266\210C`=\204f\310CT\203\305iF\246\307V\203\336\"@\202\246\f\307U\203\225\201f\336\"P@\202\243\336S\"\211@\307\364I\210db\210\201g\201U!\210\201h!U\201iV\"\210\262
\202\310\211\262
\266\202\225)\374 WY\203\331\373 \210\323\f!`\310\223\210;\203\356\201j!\210\203\375b\210\310\211\223\210X\203\325!p=\203\201kX@XA\"\210\310X\262\201l!\203/\201m\310\311#\262\202\262\201m\310\311#\262\325!\306
!=\203\301Y\201n!\210`U\204\207\211\311=\204\207\211\201o=\204\207=\203x\211\201p=\204\207\203\207\211\201q=\203\247=\204\247Zb\210\201r\307!\210\323
!b\210\201s`\"\204\247\201r\355!\210[\203\300`\323!Y\203\300\212db\210\201r\355!\210)\210=\2032\\\307V\203\347\212\323\201tp!!b\210\\[y\210\201u \210e`|\210)\310\211\223\210*\210*\266	\201vp!\205\375\201w )\207" [inhibit-read-only buffer-undo-list term-pending-delete-marker term-vertical-motion term-raw-map term-log-buffer process-buffer 0 nil t selected-window internal--before-save-selected-window make-byte-code "\301\300!\207" vconcat vector [internal--after-save-selected-window] 2 marker-buffer process-mark point-marker window-buffer vertical-motion term-buffer-vertical-motion copy-marker current-local-map princ string-match match-string 1 substring term-down term-move-to-column decode-coding-string char-charset - eight-bit term-horizontal-column line-end-position term-move-columns term-current-column add-text-properties (term-line-wrap t rear-nonsticky t) put-text-property font-lock-face -1 #s(hash-table size 7 test eql rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (9 529 13 552 10 563 8 581 7 588 26 595 27 634)) + 8 mod term-check-kill-echo-list beep 13 #s(hash-table size 7 test eql rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (91 646 68 675 77 686 55 718 56 746 99 812 65 820)) term-handle-ansi-escape mapcar string-to-number split-string ";" term-handle-deferred-scroll term-current-row term-goto 3 4 term-terminal-undecoded-bytes term-control-seq-regexp term-control-seq-prefix-regexp term-do-line-wrapping locale-coding-system term-suppress-hard-newline term-width term-insert-mode term-current-face term-start-line-column term-kill-echo-list term-command-function term-scroll-start term-ansi-current-bg-color term-ansi-current-bold term-ansi-current-color term-ansi-current-invisible term-ansi-current-reverse term-ansi-current-underline term-saved-cursor term-pager-old-local-map term-pager-old-filter term-pager-filter term-height term-pending-frame term-scroll-to-bottom-on-output term-home-marker term-scroll-show-maximum-output term-buffer-maximum-size 5 6 7 term-reset-terminal term-handle-ansi-terminal-messages memql (nil 15 14 0) error "No clause matching `%S'" "
" make-local-variable process-filter set-process-filter term-watch-for-password-prompt term-display-line window-minibuffer-p next-window select-window all this others recenter pos-visible-in-window-p get-buffer-process beginning-of-line get-buffer-window redisplay] 27 (#$ . 72541)])
#@145 Whether to reset point to the current process mark after this command.

Set in `pre-command-hook' in char mode by `term-set-goto-process-mark'.
(defvar term-goto-process-mark t (#$ . 77445))
(make-variable-buffer-local 'term-goto-process-mark)
#@363 Sets `term-goto-process-mark'.

Always set to nil if `term-char-mode-point-at-process-mark' is nil.

Called as a buffer-local `pre-command-hook' function in
`term-char-mode' so that when point is equal to the process mark
at the pre-command stage, we know to restore point to the process
mark at the post-command stage.

See also `term-goto-process-mark-maybe'.
(defalias 'term-set-goto-process-mark #[0 "\205\n`\302\303 !=\211\207" [term-char-mode-point-at-process-mark term-goto-process-mark marker-position term-process-mark] 3 (#$ . 77696)])
#@489 Move point to the term buffer's process mark upon keyboard input.

Called as a buffer-local `post-command-hook' function in
`term-char-mode' to prevent commands from putting the buffer into
an inconsistent state by unexpectedly moving point.

Mouse events are ignored so that mouse selection is unimpeded.

Only acts when the pre-command position of point was equal to the
process mark, and the `term-char-mode-point-at-process-mark'
option is enabled.  See `term-set-goto-process-mark'.
(defalias 'term-goto-process-mark-maybe #[0 "\205\302	!?\205\303 b\207" [term-goto-process-mark last-command-event mouse-event-p term-process-mark] 2 (#$ . 78252)])
#@57 The current `process-mark' for the term buffer process.
(defalias 'term-process-mark #[0 "\300\301p!!\207" [process-mark get-buffer-process] 3 (#$ . 78916)])
(defalias 'term-handle-deferred-scroll #[0 "\303 Z\211\304Y\205\212	b\210\nT!\210	`\305\223\210\306 \211)\207" [term-height term-home-marker term-vertical-motion term-current-row 0 nil term--last-line] 4])
#@81 Reset the terminal, delete all the content and set the face to the default one.
(defalias 'term-reset-terminal #[0 "\304 \210\305 \210\306\307\310 \210\311\211\211\207" [term-current-row term-current-column term-insert-mode term-ansi-face-already-done erase-buffer term-ansi-reset 0 1 term--reset-scroll-region nil] 3 (#$ . 79291)])
#@18 

(fn PARAMETER)
(defalias 'term-handle-colors-array #[257 "\211\306\267\202)\307\202h\307\202h\307\202h\307\202h\307\202h\310\202h\310\202h\211\311Y\203<\211\312X\203<\211\313Z\202h\211\314=\203G\315\202h\211\316Y\203Z\211\317X\203Z\211\314Z\202h\211\320=\203e\315\202h\321 \210\204\277\203\223\n\203\200\322\f\234\310\323#\202\210\324
\234\310\323#\325\326F\210\202\277\326\322\f\234\310\323#\325\324
\234\310\323#\327\n\257\203\265\330B	\203\277\331B\310\211\207" [term-ansi-current-bold term-ansi-current-underline term-ansi-current-reverse term-ansi-current-invisible term-ansi-current-color term-ansi-current-bg-color #s(hash-table size 7 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (1 6 4 11 5 16 7 21 8 26 24 31 27 36)) t nil 30 37 29 39 0 40 47 49 term-ansi-reset face-foreground default face-background :background :foreground :inverse-video (:inherit term-bold) (:inherit term-underline) term-ansi-face-already-done ansi-term-color-vector term-current-face] 8 (#$ . 79634)])
#@25 

(fn PROC PARAMS CHAR)
(defalias 'term-handle-ansi-escape #[771 "\211\305\267\202\357\306\307@\206\310^]S\307A@\206\310	^]S\"\207\311 \210\312 @\313Z\nW\2036\nZ\202EY\203A[\202E\307][\314\"\207\312 @Y?\205]\313Z\307]^\314\"\207\315\307@\316 \\	Y\203s\317	\316 \307#\202u@]!\207\315\307@][!\207\315\310	@^]\316 Z!\207\320@!\207\321@!\207\322\307@]!\207\323\307@]!\207\324\307@]!\207\325\307@]!\207@\326=\205\360\314\211\207@\326=\205\360\327\211\207\330\331\"\207\311 \210\332\333\334\312 T\335 T#\"\207\336@\206\344\310SA@\206\354\310S\"\207\314\207" [term-height term-width term-scroll-start term-scroll-end term-insert-mode #s(hash-table size 17 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (72 6 65 32 66 72 67 94 68 120 71 128 74 140 75 145 76 150 77 157 80 164 64 171 104 178 108 189 109 200 110 205 114 221)) term-goto 1 0 term-handle-deferred-scroll term-current-row term-down t term-move-columns term-current-column - term-erase-in-display term-erase-in-line term-insert-lines term-delete-lines term-delete-chars term-insert-spaces 4 nil mapc term-handle-colors-array process-send-string format "[%s;%sR" term-horizontal-column term-set-scroll-region] 9 (#$ . 80711)])
#@60 Sets the scroll region to the full height of the terminal.
(defalias 'term--reset-scroll-region #[0 "\300\301\302 \"\207" [term-set-scroll-region 0 term--last-line] 3 (#$ . 81966)])
#@213 Set scrolling region.
TOP is the top-most line (inclusive) of the new scrolling region,
while BOTTOM is the line following the new scrolling region (e.g. exclusive).
The top-most line is line 0.

(fn TOP BOTTOM)
(defalias 'term-set-scroll-region #[514 "\305W\204\fY\203\305\202\211	X\204\211\306 V\203$\306 \202%\211\2065	\305U\2054\n\306 U?\307\310 [!\210\311\305\211\"\207" [term-height term-scroll-start term-scroll-end term-saved-home-marker term-scroll-with-delete 0 term--last-line term-move-columns term-current-column term-goto] 5 (#$ . 82155)])
#@15 

(fn STRING)
(defalias 'term-command-hook #[257 "\211\301\232\203\302\207\211\303H\304U\203.\305\306\307#\305\306T#\310\307#\311\310T#!B\211\207\211\303H\312U\203=\313\310\307\"!\207\302\207" [term-pending-frame "" t 0 26 string-match ":" 1 substring string-to-number 47 cd] 9 (#$ . 82734)])
#@23 

(fn TRUE-FILE LINE)
(defalias 'term-display-line #[514 "\300\301!\"\207" [term-display-buffer-line find-file-noselect] 5 (#$ . 83049)])
#@20 

(fn BUFFER LINE)
(defalias 'term-display-buffer-line #[514 "\302\303\"\304rq\210\214~\210eb\210Sy\210`\262\305	\204\306 	`p\223\210)\211eW\2041\211dV\2036~\210\211b\210)\307	\"\207" [overlay-arrow-string overlay-arrow-position display-buffer t nil "=>" make-marker set-window-point] 7 (#$ . 83195)])
(defalias 'term-goto-home #[0 "\304 \210b\210\305i\211\211\207" [term-home-marker term-current-row term-current-column term-start-line-column term-handle-deferred-scroll 0] 3])
#@16 

(fn ROW COL)
(defalias 'term-goto #[514 "\304 \210\203Y\203	\305!\210\nZ\262\202\306 \210\307!\210\310!\207" [term-current-row term-vertical-motion term-start-line-column term-current-column term-handle-deferred-scroll 0 term-goto-home term-down term-move-columns] 4 (#$ . 83695)])
(defalias 'term-process-pager #[0 "\306 \307	!\210\310\n!\210\310!\210\310\f!\210\311\312!\210
\n\313\314\315F\316 \207" [term-pager-old-local-map term-pager-break-map term-terminal-menu term-signals-menu term-pager-menu mode-line-format current-local-map use-local-map easy-menu-add make-local-variable term-old-mode-line-format "--  **MORE**  " " [Type ? for help] " "%-" force-mode-line-update mode-line-buffer-identification] 4])
#@14 

(fn LINES)
(defalias 'term-pager-line #[257 "\300T!ZV\203\301u\210\211\302X\203\303\304 !\202 \305!\207" [vertical-motion -1 0 recenter term--last-line term-pager-continue] 5 (#$ . 84440) "p"])
#@88 Proceed past the **MORE** break, allowing the next page of output to appear.

(fn ARG)
(defalias 'term-pager-page #[257 "\301_!\207" [term-height term-pager-line] 4 (#$ . 84653) "p"])
(defalias 'term-pager-bob #[0 "eb\210\301!U\203\302u\210\303\304 !\207" [term-height vertical-motion -1 recenter term--last-line] 2 nil nil])
(defalias 'term-pager-eob #[0 "b\210\301\302!\210\303\304p!!b\207" [term-home-marker recenter 0 process-mark get-buffer-process] 3 nil nil])
#@14 

(fn LINES)
(defalias 'term-pager-back-line #[257 "\301\302Z!\210o\204\303u\210\202\304 \210\301!\210\303u\210\305\306 !\207" [term-height vertical-motion 1 -1 beep recenter term--last-line] 4 (#$ . 85133) "p"])
#@12 

(fn ARG)
(defalias 'term-pager-back-page #[257 "\301_!\207" [term-height term-pager-back-line] 4 (#$ . 85358) "p"])
(defalias 'term-pager-discard #[0 "\302\303\304\305\"\210\306	!\207" [term-terminal-undecoded-bytes term-height "" interrupt-process nil t term-pager-continue] 3 nil nil])
(defalias 'term-pager-disable #[0 "\203\302\303!\210\202
\303\304 \207" [term-pager-old-local-map term-pager-count term-pager-continue nil term-update-mode-line] 2 nil nil])
(defalias 'term-pager-enable #[0 "\204\301\302 \207" [term-pager-count 0 term-update-mode-line] 1 nil nil])
(defalias 'term-pager-toggle #[0 "\203\301 \207\302 \207" [term-pager-count term-pager-disable term-pager-enable] 1 nil nil])
#@75 Provide help on commands available in a terminal-emulator **MORE** break.
(defalias 'term-pager-help #[0 "\300\301!\210\302\303!\210\304\305!\207" [message "Terminal-emulator pager break help..." sit-for 0 with-electric-help #[0 "\300\301\302!!\210\303\207" [princ substitute-command-keys "\\<term-pager-break-map>Terminal-emulator MORE break.\nType one of the following keys:\n\n\\[term-pager-page]		Move forward one page.\n\\[term-pager-line]		Move forward one line.\n\\[universal-argument] N \\[term-pager-page]	Move N pages forward.\n\\[universal-argument] N \\[term-pager-line]	Move N lines forward.\n\\[universal-argument] N \\[term-pager-back-line]	Move N lines back.\n\\[universal-argument] N \\[term-pager-back-page]		Move N pages back.\n\\[term-pager-bob]		Move to the beginning of the buffer.\n\\[term-pager-eob]		Move to the end of the buffer.\n\\[term-pager-discard]		Kill pending output and kill process.\n\\[term-pager-disable]		Disable PAGER handling.\n\n\\{term-pager-break-map}\nAny other key is passed through to the program\nrunning under the terminal emulator and disables pager processing until\nall pending output has been dealt with." nil] 3]] 2 (#$ . 86077) nil])
#@18 

(fn NEW-COUNT)
(defalias 'term-pager-continue #[257 "\305p!\306!\210\307	\310 \210\311\f\"\210\f\312\"\210\313!\207" [term-pager-old-local-map term-old-mode-line-format mode-line-format term-pager-count term-pager-old-filter get-buffer-process use-local-map nil force-mode-line-update set-process-filter "" continue-process] 5 (#$ . 87272)])
#@13 

(fn DOWN)
(defalias 'term-handle-scroll #[257 "\306 \\\307W\203\202	Z\307W\203\211\307W\204(\307V\203\265\211\307V\203\265\310 \311\nb\210\203\203\307W\203\\\f	!\210\311\210`\262\f!\210\311\210\211`|\210b\210Z\262\f!\210\202w\f!\210`\262\f!\210\211`|\210b\210\f!\210\312[!\210\311\313\314\315!\"\210\202\254\247\203\236Z\211\307W\203\236\307\262\316 \210\202\254\312[!\210\f!\210\n`\311\223\210b\210\311\211\223\266\210\207" [term-scroll-start term-scroll-end term-home-marker term-scroll-with-delete term-vertical-motion term-current-column term-current-row 0 point-marker nil term-adjust-current-row-cache term-insert-char 10 abs term-process-pager term-pager-count] 8 (#$ . 87630)])
#@79 Move down DOWN screen lines vertically.

(fn DOWN &optional CHECK-FOR-SCROLL)
(defalias 'term-down #[513 "\306 \203\204	\203\307!\262\310 \311U\203 \311W\2047\312!\210`dU\2030\311W\2037\n!Z\262\311Y\203I\313\314\"\210\311\211\202n\310 \311U\203j\212\313\314[\"\210)\212\315
y\210`\262[y\210\211`|\266)\311i\211\205u\316!\207" [term-scroll-with-delete term-pager-count term-vertical-motion term-current-column term-start-line-column term-height term-horizontal-column term-handle-scroll term-current-row 0 term-adjust-current-row-cache term-insert-char 10 nil term-move-columns] 7 (#$ . 88377)])
(defalias 'term-unwrap-line #[0 "n?\205`\300\301!\210\302`\303#\262\207" [insert-before-markers 10 add-text-properties (term-line-wrap t rear-nonsticky t)] 5])
#@13 

(fn KIND)
(defalias 'term-erase-in-line #[257 "\211\301U\203\302 `\303!\210`|\210\304\305\"\266\211\301=?\205H`\302 \303U\205+\306 \303U?\301!\210`|\210\211\203:\305c\210\307c\210\310`\311\312$\210b\266\202\207" [term-vertical-motion 1 term-horizontal-column 0 term-insert-char 32 term-current-column 10 put-text-property font-lock-face default] 8 (#$ . 89177)])
#@182 Erase (that is blank out) part of the window.
If KIND is 0, erase from (point) to (point-max);
if KIND is 1, erase from home to point; else erase from home to point-max.

(fn KIND)
(defalias 'term-erase-in-display #[257 "\303 \210\211\304=\203n`d|\210\211\205\305 \207\302 \306 \307=\203$`\202%d|\210\305 \210\307=\2037\310\311\"\210\312\211\313\"\207" [term-home-marker term-current-column term-current-row term-handle-deferred-scroll 0 term-unwrap-line term-horizontal-column 1 term-insert-char 10 nil term-goto] 9 (#$ . 89562)])
#@14 

(fn COUNT)
(defalias 'term-delete-chars #[257 "`\301!\210\302 \210\211b\210\303\304 \\\305\"\210\211`|\207" [term-vertical-motion 1 term-unwrap-line move-to-column term-current-column t] 5 (#$ . 90117)])
#@14 

(fn COUNT)
(defalias 'term-insert-spaces #[257 "`\302\211\303!\210n\203\304u\210`\262\305 \262\306\307 	Z\\\310\"\210`Y\203-\311`\312\313$\210`V\2037`|\210b\210\314\315\"\210b\207" [term-vertical-motion term-width nil 1 -1 line-end-position move-to-column term-start-line-column t put-text-property font-lock-face default term-insert-char 32] 9 (#$ . 90331)])
#@14 

(fn LINES)
(defalias 'term-delete-lines #[257 "`	\303 \211\\\nTV\203\\\nTZZ\262\304!\210`|\210\304\305\nT#!\210\306\307\"\210\211b\207" [term-current-column term-start-line-column term-scroll-end term-current-row term-down - term-insert-char 10] 10 (#$ . 90715)])
#@14 

(fn LINES)
(defalias 'term-insert-lines #[257 "`\305	\304 \211\nW\203\nZZ\262\306\nZ!\210`\262\202>\211\\TV\2034\\TZZ\262\306\307T	#!\210`\262\306!\210`|\210b\210\211\310\311\"\210b\207" [term-current-column term-start-line-column term-scroll-start term-scroll-end term-current-row nil term-down - term-insert-char 10] 11 (#$ . 91009)])
#@60 Record raw inferior process output in a buffer.

(fn NAME)
(defalias 'term-start-output-log #[257 "\211\203\n\211\301\232\203\302\303\304!\207\305!\204'r\306!q\210\307 \210\310p!\210\311 \210)\305!\303\312\313!\"\207" [term-log-buffer "" nil message "Output logging off." get-buffer get-buffer-create fundamental-mode buffer-disable-undo erase-buffer "Recording terminal emulator output into buffer \"%s\"" buffer-name] 5 (#$ . 91389) (byte-code "?\205\301\302\303\304\305p!\"\306#C\207" [term-log-buffer read-buffer "Record output in buffer: " format "%s output-log" buffer-name nil] 6)])
#@43 Discontinue raw inferior process logging.
(defalias 'term-stop-output-log #[0 "\300\301!\207" [term-start-output-log nil] 2 (#$ . 91998) nil])
#@56 Put the end of the buffer at the bottom of the window.
(defalias 'term-show-maximum-output #[0 "db\210\300\301!\207" [recenter -1] 2 (#$ . 92147) nil])
#@83 This hook is run when term is loaded in.
This is a good place to put keybindings.
(defvar term-load-hook nil (#$ . 92305))
(byte-code "\300\301!\210\302\303\304\305\306DD\307\310\311\312\313&\210\302\314\304\305\315DD\316\310\311\312\317&\210\302\320\304\305\321DD\322\310\311\312\313&\210\302\323\304\305\324DD\325\310\311\312\326&\207" [run-hooks term-load-hook custom-declare-variable term-completion-autolist funcall function #[0 "\300\207" [nil] 1] "If non-nil, automatically list possibilities on partial completion.\nThis mirrors the optional behavior of tcsh." :group term :type boolean term-completion-addsuffix #[0 "\300\207" [t] 1] "If non-nil, add a `/' to completed directories, ` ' to file names.\nIf a cons pair, it should be of the form (DIRSUFFIX . FILESUFFIX) where\nDIRSUFFIX and FILESUFFIX are strings added on unambiguous or exact\ncompletion.  This mirrors the optional behavior of tcsh." (choice (const :tag "No suffix" nil) (cons (string :tag "dirsuffix") (string :tag "filesuffix")) (other :tag "Suffix" t)) term-completion-recexact #[0 "\300\207" [nil] 1] "If non-nil, use shortest completion if characters cannot be added.\nThis mirrors the optional behavior of tcsh.\n\nA non-nil value is useful if `term-completion-autolist' is non-nil too." term-completion-fignore #[0 "\300\207" [nil] 1] "List of suffixes to be disregarded during file completion.\nThis mirrors the optional behavior of bash and tcsh.\n\nNote that this applies to `term-dynamic-complete-filename' only." (choice (const nil) (repeat :tag "List of suffixes" string))] 8)
#@169 Prefix prepended to absolute file names taken from process input.
This is used by term's and shell's completion functions, and by shell's
directory tracking functions.
(defvar term-file-name-prefix "" (#$ . 93883))
#@18 

(fn DIRECTORY)
(defalias 'term-directory #[257 "\301\302!\203
P\202!\207" [term-file-name-prefix expand-file-name file-name-absolute-p] 4 (#$ . 94104)])
#@209 Return the word of WORD-CHARS at point, or nil if none is found.
Word constituents are considered to be those in WORD-CHARS, which is like the
inside of a "[...]" (see `skip-chars-forward').

(fn WORD-CHARS)
(defalias 'term-word #[257 "\212`\300\301Q\302\301Q\303\304\305#\203\306u\210l\206\307!?\205,\310\311P\"\210\312\224\312\225{\266\203)\207" ["[" "]" "[^" re-search-backward nil move 1 looking-at re-search-forward "+" 0] 8 (#$ . 94273)])
#@113 Return the filename at point, or nil if none is found.
Environment variables are substituted.  See `term-word'.
(defalias 'term-match-partial-filename #[0 "\300\301!\211\205\n\302!\207" [term-word "~/A-Za-z0-9+@:_.$#,={}-" substitute-in-file-name] 3 (#$ . 94736)])
#@210 Dynamically perform completion at point.
Calls the functions in `term-dynamic-complete-functions' to perform
completion until a function returns non-nil, at which point completion is
assumed to have occurred.
(defalias 'term-dynamic-complete #[0 "\300\301!\207" [run-hook-with-args-until-success term-dynamic-complete-functions] 2 (#$ . 95010) nil])
#@691 Dynamically complete the filename at point.
Completes if after a filename.  See `term-match-partial-filename' and
`term-dynamic-complete-as-filename'.
This function is similar to `term-replace-by-expanded-filename', except that
it won't change parts of the filename already entered in the buffer; it just
adds completion characters to the end of the filename.  A completions listing
may be shown in a help buffer if completion is ambiguous.

Completion is dependent on the value of `term-completion-addsuffix',
`term-completion-recexact' and `term-completion-fignore', and the timing of
completions listing is dependent on the value of `term-completion-autolist'.

Returns t if successful.
(defalias 'term-dynamic-complete-filename #[0 "\300 \205\301 \302 =\204\303\304!\210\305 \207" [term-match-partial-filename selected-window minibuffer-window message "Completing file name..." term-dynamic-complete-as-filename] 2 (#$ . 95367) nil])
#@110 Dynamically complete at point as a filename.
See `term-dynamic-complete-filename'.  Returns t if successful.
(defalias 'term-dynamic-complete-as-filename #[0 "\306	\307\204
\310\202:\204\311\202@\204 \310\202+:\204)\312\202+A\313 \2061\310\314!\315!\203A\316!\202B\f\317\"\320 \321 =\204[\322\323\"\210\306\262	\202\370\307=\203s\203h\312c\210\211\204\370\322\324!\210\202\370\310\230\203\325 \210\202\370\326!P\327\330!G\"c\210\317\"9\203\260\331!\203\241\202\243c\210\204\367\322\332!\210\202\367
\203\336\203\336\230\203\336\333!\203\336\331!\203\317\202\321c\210\204\367\322\334!\210\202\367\204\351\230\203\357\325 \210\202\367\204\367\322\335!\210\210*\207" [completion-ignore-case term-completion-fignore completion-ignored-extensions term-completion-addsuffix default-directory term-completion-recexact nil t "" "/" " " term-match-partial-filename file-name-directory file-name-nondirectory term-directory file-name-completion selected-window minibuffer-window message "No completions of %s" "Sole completion" term-dynamic-list-filename-completions file-name-as-directory substring directory-file-name file-directory-p "Completed" file-exists-p "Completed shortest" "Partially completed" term-completion-autolist] 13 (#$ . 96316)])
#@475 Dynamically expand and complete the filename at point.
Replace the filename with an expanded, canonicalized and completed replacement.
"Expanded" means environment variables (e.g., $HOME) and `~'s are replaced
with the corresponding directories.  "Canonicalized" means `..'  and `.' are
removed, and the filename is made absolute instead of relative.  For expansion
see `expand-file-name' and `substitute-in-file-name'.  For completion see
`term-dynamic-complete-filename'.
(defalias 'term-replace-by-expanded-filename #[0 "\300\301\302 !\303\211#\210\304 \207" [replace-match expand-file-name term-match-partial-filename t term-dynamic-complete-filename] 4 (#$ . 97653) nil])
#@612 Dynamically complete STUB from CANDIDATES list.
This function inserts completion characters at point by completing STUB from
the strings in CANDIDATES.  A completions listing may be shown in a help buffer
if completion is ambiguous.

Returns nil if no completion was inserted.
Returns `sole' if completed with the only completion match.
Returns `shortest' if completed with the shortest of the completion matches.
Returns `partial' if completed as far as possible with the completion matches.
Returns `listed' if a completion listing was shown.

See also `term-dynamic-complete-filename'.

(fn STUB CANDIDATES)
(defalias 'term-dynamic-simple-complete #[514 "\304\305\"\211\204\306\307\"\210\304\202\204\211G\310U\203A\211@\211\230\203)\306\311!\210\2024\312G\"c\210\306\313!\210	\203;\314c\210\315\262\202\204\316\"\312G\"c\210\n\203k	\203k\230\203k\211\235\203k\314c\210\306\317!\210\320\202\202\204u\230\203}\321!\210\322\202\202\306\323!\210\324\262)\207" [completion-ignore-case term-completion-addsuffix term-completion-recexact term-completion-autolist nil all-completions message "No completions of %s" 1 "Sole completion" substring "Completed" " " sole try-completion "Completed shortest" shortest term-dynamic-list-completions listed "Partially completed" partial] 7 (#$ . 98337)])
(make-obsolete 'term-dynamic-simple-complete 'completion-in-region "23.2")
#@68 List in help buffer possible completions of the filename at point.
(defalias 'term-dynamic-list-filename-completions #[0 "\302\303 \206\304\305!\306!\203\307!\202	\310\"\211\203'\311!\202,\312\313\")\207" [completion-ignore-case default-directory nil term-match-partial-filename "" file-name-directory file-name-nondirectory term-directory file-name-all-completions term-dynamic-list-completions message "No completions of %s"] 8 (#$ . 99745) nil])
#@95 List in help buffer sorted COMPLETIONS.
Typing SPC flushes the help buffer.

(fn COMPLETIONS)
(defalias 'term-dynamic-list-completions #[257 "\306 r\307\310!q\210p\311 \210\312\211\313\211\313\314 \210\315\316!\210+\211 \317\320\321\"!\210\322!\210)\266\323\324!\210\312\211r\325\310!q\210\326\312!\262\327H\262\211:\205b\330\331!\211@\262!\325\310!=\205b\332!\333>)\203p\334!\210\335!\202\205\211\336=\203|\335!\202\205\337!!\244\211!\266\202\207" [default-directory buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only current-window-configuration get-buffer-create "*Completions*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook display-completion-list sort string-lessp internal-temp-output-buffer-show message "Hit space to flush" get-buffer read-key-sequence 0 window-buffer event-start key-binding (mouse-choose-completion choose-completion) choose-completion set-window-configuration 32 listify-key-sequence standard-output unread-command-events] 9 (#$ . 100218)])
#@349 Make a term process NAME in a buffer, running PROGRAM.
The name of the buffer is NAME.
If there is already a running process in that buffer, it is not restarted.
Optional third arg STARTFILE is the name of a file to send the contents of to
the process.  Any more args are arguments to PROGRAM.

(fn NAME PROGRAM &optional STARTFILE &rest SWITCHES)
(defalias 'term-ansi-make-term #[898 "\300!\301!\204r\211q\210\302 \210)\303%\210\211\207" [get-buffer-create term-check-proc term-mode term-exec] 11 (#$ . 101300)])
(defvar term-ansi-buffer-name nil)
(defvar term-ansi-default-program nil)
(defvar term-ansi-buffer-base-name nil)
#@207 Start a terminal-emulator in a new buffer.
This is almost the same as `term' apart from always creating a new buffer,
and `C-x' being marked as a `term-escape-char'.

(fn PROGRAM &optional NEW-BUFFER-NAME)
(defalias 'ansi-term #[513 "\211\203\211\202\203\303=\203\304!\202\202\305\306	\306Q\307	!\310	\"\211q\210\311 \210\312 \210\313\314\315!\210)\316	!\207" [term-ansi-buffer-base-name term-ansi-buffer-name term-escape-char t file-name-nondirectory "ansi-term" "*" generate-new-buffer-name term-ansi-make-term term-mode term-char-mode nil term-set-escape-char 24 switch-to-buffer] 6 (#$ . 101948) (byte-code "\302\303\206
\304\305!\206
	\"C\207" [explicit-shell-file-name shell-file-name read-from-minibuffer "Run program: " getenv "ESHELL"] 4)])
#@241 Guess whether serial ports are files on this system.
Return t if this is a Unix-based system, where serial ports are
files, such as /dev/ttyS0.
Return nil if this is Windows or DOS, where serial ports have
special identifiers such as COM1.
(defalias 'serial-port-is-file-p #[0 "\301>?\207" [system-type (windows-nt cygwin ms-dos)] 2 (#$ . 102730)])
#@53 History of serial ports used by `serial-read-name'.
(defvar serial-name-history (byte-code "\300 \203\301\302!\203\302C\206\301\303!\205\303C\207\304C\207" [serial-port-is-file-p file-exists-p "/dev/ttys0" "/dev/ttyS0" "COM1"] 2) (#$ . 103086))
#@60 History of serial port speeds used by `serial-read-speed'.
(defvar serial-speed-history (list #1="9600" "1200" "2400" "4800" #1# "14400" "19200" "28800" "38400" "57600" "115200") (#$ . 103345))
#@60 Return `serial-speed-history' cleaned up for a mouse-menu.
(defalias 'serial-nice-speed-history #[0 "\301\211\302\303!\304\"\262\211\203$\211@\211@\232\204\211B\262A\266\202\202\210\207" [serial-speed-history nil sort copy-sequence #[514 ";\205\211;\205\300!\300!V\207" [string-to-number] 5 "\n\n(fn A B)"]] 6 (#$ . 103545)])
#@232 String for `serial-read-speed' for special serial ports.
If `serial-read-speed' reads this string from the user, it
returns nil, which is recognized by `serial-process-configure'
for special serial ports that cannot be configured.
(defconst serial-no-speed "nil" (#$ . 103897))
#@56 Signal an error if serial processes are not supported.
(defalias 'serial-supported-or-barf #[0 "\300\301!?\205\n\302\303!\207" [fboundp make-serial-process error "Serial processes are not supported on this system"] 2 (#$ . 104181)])
#@262 Read a serial port name from the user.
Try to be nice by providing useful defaults and history.
On Windows, prepend \.to the port name unless it already
contains a backslash.  This handles the legacy ports COM1-COM9 as
well as the newer ports COM10 and higher.
(defalias 'serial-read-name #[0 "\302 \210\211@\303 \203:\304;\203\305\306\"\202\307\203$\310!\2065\311\312!\203.\312\2025\311\313!\2055\313\314#\202P\315;\203G\305\306\"\202H\307\316\211\211\317\316\211&\211\203`\211;\203f\211G\320U\203f\262\202h	\211\203x\211;\203|\211G\320U\203|\321\322!\210\303 \204\215\323\324\"\204\215\325P\262)\207" [serial-name-history file-name-history serial-supported-or-barf serial-port-is-file-p read-file-name format "Serial port (default %s): " "Serial port: " file-name-directory file-exists-p "/dev/" "/" "" read-from-minibuffer nil (file-name-history . 1) 0 error "No serial port selected" string-match "\\\\" "\\\\.\\"] 10 (#$ . 104422)])
#@119 Read a serial port speed (in bits per second) from the user.
Try to be nice by providing useful defaults and history.
(defalias 'serial-read-speed #[0 "\302 \210\211@\303	\230\203\304\202\203\305\306\"\202\305\307!\310\211\211\311\310\211&\211\2037\211;\203:\211G\312U\203:\262\211\203J\211;\203J\211G\312U\203N\313\314!\210\211	\230\203Z\310\262\202r\315!\262\211\203n\211\250\203n\211\312X\203r\313\314!\210\207" [serial-speed-history serial-no-speed serial-supported-or-barf read-from-minibuffer "Speed (default nil = set by port): " format "Speed (default %s b/s): " "Speed (b/s): " nil (history . 1) 0 error "Invalid speed" string-to-number] 10 (#$ . 105404)])
#@681 Start a terminal-emulator for a serial port in a new buffer.
PORT is the path or name of the serial port.  For example, this
could be "/dev/ttyS0" on Unix.  On Windows, this could be
"COM1" or "\\.\COM10".

SPEED is the speed of the serial port in bits per second.  9600
is a common value.  SPEED can be nil, see
`serial-process-configure' for details.

Usually `term-char-mode' is used, but if LINE-MODE (the prefix
when used interactively) is non-nil, `term-line-mode' is used
instead.

The buffer is in Term mode; see `term-mode' for the commands to
use in that buffer.

\<term-raw-map>Type \[switch-to-buffer] to switch to another buffer.

(fn PORT SPEED &optional LINE-MODE)
(defalias 'serial-term #[770 "\300 \210\301\302\303\304\305\306\307&\310!r\211q\210\311 \210\204\312 \210db\210\313!`\314\223\210\315\316\"\210\317\320\"\210)\321!\210\207" [serial-supported-or-barf make-serial-process :port :speed :coding no-conversion :noquery t process-buffer term-mode term-char-mode process-mark nil set-process-filter term-emulate-terminal set-process-sentinel term-sentinel switch-to-buffer] 12 (#$ . 106108) (byte-code "\301 \302 E\207" [current-prefix-arg serial-read-name serial-read-speed] 3)])
(defvar serial-mode-line-speed-menu nil)
(defvar serial-mode-line-config-menu nil)
#@125 Return the speed of the serial port of the current buffer's process.
The return value may be nil for a special serial port.
(defalias 'serial-speed #[0 "\300\301p!\302\"\207" [process-contact get-buffer-process :speed] 3 (#$ . 107413)])
#@14 

(fn EVENT)
(defalias 'serial-mode-line-speed-menu-1 #[257 "\301 r\302\303\304\305\306!\307\"\310$\216\311\312!\211@\262!\210\313 \210\300!\211\205*\314\306@!\"\211\2051\315!\266\202*\207" [serial-mode-line-speed-menu internal--before-save-selected-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-save-selected-window] 2 select-window event-start serial-update-speed-menu lookup-key call-interactively] 8 (#$ . 107656) "e"])
#@14 

(fn EVENT)
(defalias 'serial-mode-line-speed-menu #[257 "\301\"\207" [serial-mode-line-speed-menu x-popup-menu] 4 (#$ . 108121)])
(defalias 'serial-update-speed-menu #[0 "\301\302!\303\304\305#\210\306 \211\205N\211@\211;\203\307!\206\310\303\311\312\313\314\"!!\315\316\317\320\321\322\nE\323\324\325\fE\257\326\327\330\331\nF\257#\266A\266\202\202\f\207" [serial-mode-line-speed-menu make-sparse-keymap "Speed (b/s)" define-key [serial-mode-line-speed-menu-other] (menu-item "Other..." (lambda (event) (interactive "e") (let ((speed (serial-read-speed))) (serial-process-configure :speed speed) (term-update-mode-line) (message "Speed set to %d b/s" speed)))) serial-nice-speed-history string-to-number 0 vector make-symbol format "serial-mode-line-speed-menu-%s" menu-item lambda (event) (interactive "e") serial-process-configure :speed (term-update-mode-line) message "Speed set to %d b/s" :button :toggle = (serial-speed)] 16])
#@14 

(fn EVENT)
(defalias 'serial-mode-line-config-menu-1 #[257 "\301 r\302\303\304\305\306!\307\"\310$\216\311\312!\211@\262!\210\313 \210\300!\211\205*\314\306@!\"\211\2051\315!\266\202*\207" [serial-mode-line-config-menu internal--before-save-selected-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-save-selected-window] 2 select-window event-start serial-update-config-menu lookup-key call-interactively] 8 (#$ . 109085) "e"])
#@14 

(fn EVENT)
(defalias 'serial-mode-line-config-menu #[257 "\301\"\207" [serial-mode-line-config-menu x-popup-menu] 4 (#$ . 109553)])
(defalias 'serial-update-config-menu #[0 "\301\302!\303\304p!\305\"\306\211\205W\211@\307\310\311\312\313@A@#!!\314\3158\316\317\320\321	@\322A@DE\323\324\325\315
8E\257\326\327\330\n@\"	A@\232B\257#\210A\266\202\202\262\207" [serial-mode-line-config-menu make-sparse-keymap "Configuration" process-contact get-buffer-process t ((:flowcontrol hw "Hardware flowcontrol (RTS/CTS)") (:flowcontrol sw "Software flowcontrol (XON/XOFF)") (:flowcontrol nil "No flowcontrol") (:stopbits 2 "2 stopbits") (:stopbits 1 "1 stopbit") (:parity odd "Odd parity") (:parity even "Even parity") (:parity nil "No parity") (:bytesize 7 "7 bits per byte") (:bytesize 8 "8 bits per byte")) define-key vector make-symbol format "%s-%s" menu-item 2 lambda (event) (interactive "e") serial-process-configure quote (term-update-mode-line) message "%s" :button :toggle plist-get] 17])
(provide 'term)

Zerion Mini Shell 1.0