%PDF- %PDF-
Direktori : /usr/local/share/emacs/27.2/lisp/progmodes/ |
Current File : //usr/local/share/emacs/27.2/lisp/progmodes/sh-script.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. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\302\303\304\"\210\302\305\304\"\210\302\306\304\"\210\302\307\310\"\210\302\311\310\"\210\312\313\314\315\316\317%\210\312\320\314\321\322\323\316\313\324\325& \210\326\327\330\331\332DD\333\334\335\336\337\316\320& \210\326\340\330\331\341DD\342\334\343\316\320&\210\326\344\330\331\345DD\346\334\347\316\320&\210\326\350\330\331\351DD\352\334\353\316\320&\210\326\354\330\331\355DD\356\334\357\316\320\336\360& \207" [require executable autoload comint-completion-at-point "comint" comint-filename-completion comint-send-string shell-command-completion "shell" shell-environment-variable-completion custom-declare-group sh nil "Shell programming utilities." :group languages sh-script "Shell script mode." :link (custom-group-link :tag "Font Lock Faces group" font-lock-faces) :prefix "sh-" custom-declare-variable sh-ancestor-alist funcall function #[0 "\300\207" [((ash . sh) (bash . jsh) (bash2 . jsh) (dash . ash) (dtksh . ksh) (es . rc) (itcsh . tcsh) (jcsh . csh) (jsh . sh) (ksh . ksh88) (ksh88 . jsh) (oash . sh) (pdksh . ksh88) (mksh . pdksh) (posix . sh) (tcsh . csh) (wksh . ksh88) (wsh . sh) (zsh . ksh88) (rpm . sh))] 1] "Alist showing the direct ancestor of various shells.\nThis is the basis for `sh-feature'. See also `sh-alias-alist'.\nBy default we have the following three hierarchies:\n\ncsh C Shell\n jcsh C Shell with Job Control\n tcsh TENEX C Shell\n itcsh Ian's TENEX C Shell\nrc Plan 9 Shell\n es Extensible Shell\nsh Bourne Shell\n ash Almquist Shell\n dash Debian Almquist Shell\n jsh Bourne Shell with Job Control\n bash GNU Bourne Again Shell\n ksh88 Korn Shell '88\n ksh Korn Shell '93\n dtksh CDE Desktop Korn Shell\n pdksh Public Domain Korn Shell\n mksh MirOS BSD Korn Shell\n wksh Window Korn Shell\n zsh Z Shell\n oash SCO OA (curses) Shell\n posix IEEE 1003.2 Shell Standard\n wsh ? Shell" :type (repeat (cons symbol symbol)) :version "24.4" sh-alias-alist #[0 "\301\302=\205 \303\304\"\207" [system-type append gnu/linux ((csh . tcsh) (ksh . pdksh)) ((ksh . ksh88) (bash2 . bash) (sh5 . sh) ("^/system/bin/sh$" . mksh))] 3] "Alist for transforming shell names to what they really are.\nUse this where the name of the executable doesn't correspond to\nthe type of shell it really is. Keys are regular expressions\nmatched against the full path of the interpreter. (For backward\ncompatibility, keys may also be symbols, which are matched\nagainst the interpreter's basename. The values are symbols\nnaming the shell." (repeat (cons (radio (regexp :tag "Regular expression") (symbol :tag "Basename")) (symbol :tag "Shell"))) sh-shell-file #[0 "\301>\203( \302\303!\211\205 \304!\203 \211\227\305\235\203 \306\202# \307\227!\266\202\206/ \302\303!\206/ \306\207" [system-type (ms-dos windows-nt) getenv "SHELL" file-name-nondirectory ("command.com" "cmd.exe" "4dos.com" "ndos.com" "cmdproxy.exe") "/bin/sh" file-name-sans-extension] 4] "The executable file name for the shell being programmed." string sh-shell-arg #[0 "\300\207" [((bash) (csh . "-f") (pdksh) (ksh88) (rc . "-p") (wksh) (zsh . "-f"))] 1] "Single argument string for the magic number. See `sh-feature'." (repeat (cons (symbol :tag "Shell") (choice (const :tag "No Arguments" nil) (string :tag "Arguments") (sexp :format "Evaluate: %v")))) sh-imenu-generic-expression #[0 "\300\207" [((sh (nil "^\\s-*function\\s-+\\([[:alpha:]_][[:alnum:]_]*\\)\\s-*\\(?:()\\)?" 1) (nil "^\\s-*\\([[:alpha:]_][[:alnum:]_]*\\)\\s-*()" 1)))] 1] "Alist of regular expressions for recognizing shell function definitions.\nSee `sh-feature' and `imenu-generic-expression'." (alist :key-type (symbol :tag "Shell") :value-type (alist :key-type (choice :tag "Title" string (const :tag "None" nil)) :value-type (repeat :tag "Regexp, index..." sexp))) "20.4"] 10) #@94 Find the name of function or variable at point. For use in `add-log-current-defun-function'. (defalias 'sh-current-defun-name #[0 "\212\300\210\301\302\300\303#\205 \304\305!\206 \304\306!\206 \304\307!)\207" [nil re-search-backward "\\(?:^\\s-*function\\s-+\\([[:alpha:]_][[:alnum:]_]*\\)\\s-*\\(?:()\\)?\\)\\|\\(?:^\\s-*\\([[:alpha:]_][[:alnum:]_]*\\)\\s-*()\\)\\|\\(?:^\\([[:alpha:]_][[:alnum:]_]*\\)=\\)" t match-string-no-properties 1 2 3] 4 (#$ . 4251)]) #@246 Alist of shell variable names that should be included in completion. These are used for completion in addition to all the variables named in `process-environment'. Each element looks like (VAR . VAR), where the car and cdr are the same symbol. (defvar sh-shell-variables nil (#$ . 4723)) #@49 Non-nil if `sh-shell-variables' is initialized. (defvar sh-shell-variables-initialized nil (#$ . 5018)) #@150 Convert a shell name SHELL to the one we should handle it as. SHELL is a full path to the shell interpreter; return a shell name symbol. (fn SHELL) (defalias 'sh-canonicalize-shell #[257 "\301\302\"\203 \303\304\211\224#\202 \211\305\306!!\307\211\310\307:\203c @\262\211A\262\242\262;\203C \301\"\203C \262\307\211\262\202D \310\203c =\203X \262\307\211\262\202Y \310\203c A\262\202 \203k \202l \211\207" [sh-alias-alist string-match "\\.exe\\'" substring 0 intern file-name-nondirectory nil t] 11 (#$ . 5129)]) #@62 The shell being programmed. This is set by \[sh-set-shell]. (defvar sh-shell (sh-canonicalize-shell sh-shell-file) (#$ . 5679)) (define-abbrev-table 'sh-mode-abbrev-table nil) #@95 Copy TABLE and set syntax for successive CHARs according to strings S. (fn TABLE &rest LIST) (defalias 'sh-mode-syntax-table #[385 "\300!\262\211\203 \301\211A\262\242\211A\262\242#\210\202 \207" [copy-syntax-table modify-syntax-entry] 6 (#$ . 5862)]) #@91 The syntax table to use for Shell-Script mode. This is buffer-local in every such buffer. (defvar sh-mode-syntax-table (sh-mode-syntax-table nil 35 "<" 10 ">#" 34 "\"\"" 39 "\"'" 96 "\"`" 36 "'" 33 #1="_" 37 #1# 58 #1# 46 #1# 94 #1# 126 #1# 44 #1# 61 #2="." 59 #2# 124 #2# 38 #2# 60 #2# 62 #2#) (#$ . 6131)) #@60 Syntax-table used in Shell-Script mode. See `sh-feature'. (defvar sh-mode-syntax-table-input (byte-code "\301\302\303BBD\207" [sh-mode-syntax-table (sh) rpm (39 ".")] 4) (#$ . 6445)) #@35 Keymap used in Shell-Script mode. (defvar sh-mode-map (byte-code "\300 \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\345#\210\301\346\347#\210\301\350\351#\210\301\352\353#\210\301\354\355#\210\301\356\357#\210\301\360\361#\210\301\362\363#\210\301\364\365#\210\301\366\367B#\210\301\370\371#\210\301\372\373#\210\301\374\375#\210\301\376\377#\210\301\201@ \201A #\210\301\201B \201C #\210\301\201D \201E #\210\301\201F \201G #\210\301\201H \201I #\210\301\201J \201K #\210\301\201L \201M #\210\301\201N \201O #\210\301\201P \201Q #\210\301\201R \201S #\210\301\201T \201U #\210\301\201V \201W #\210\301\201X \201Y #\210\301\201Z \201[ #\210\301\201\\ \201] #\210\301\201^ \201_ #\210\301\201` \201a #\210\301\201b \201c #\210\207" [make-sparse-keymap define-key "(" sh-function "" sh-while "" sh-until "" sh-tmp-file "" sh-select "" sh-repeat "" sh-while-getopts "\f" sh-indexed-loop " " sh-if "" sh-for "" sh-case "?" sh-show-indent "=" sh-set-indent "<" sh-learn-line-indent ">" sh-learn-buffer-indent "" sh-backslash-region "+" sh-add "\230" sh-execute-region "" executable-interpret "" sh-send-line-or-region-and-step "" sh-cd-here "" sh-show-shell [remap delete-backward-char] backward-delete-char-untabify ":" sh-set-shell [remap backward-sentence] sh-beginning-of-command [remap forward-sentence] sh-end-of-command [menu-bar sh-script] "Sh-Script" [sh-learn-buffer-indent] (menu-item "Learn buffer indentation" sh-learn-buffer-indent :help "Learn how to indent the buffer the way it currently is.") [sh-learn-line-indent] (menu-item "Learn line indentation" sh-learn-line-indent :help "Learn how to indent a line as it currently is indented") [sh-show-indent] (menu-item "Show indentation" sh-show-indent :help "Show the how the current line would be indented") [sh-set-indent] (menu-item "Set indentation" sh-set-indent :help "Set the indentation for the current line") [sh-pair] (menu-item "Insert braces and quotes in pairs" electric-pair-mode :button (:toggle bound-and-true-p electric-pair-mode) :help "Inserting a brace or quote automatically inserts the matching pair") [sh-s0] ("--") [sh-function] (menu-item "Function..." sh-function :help "Insert a function definition") [sh-add] (menu-item "Addition..." sh-add :help "Insert an addition of VAR and prefix DELTA for Bourne (type) shell") [sh-until] (menu-item "Until Loop" sh-until :help "Insert an until loop") [sh-repeat] (menu-item "Repeat Loop" sh-repeat :help "Insert a repeat loop definition") [sh-while] (menu-item "While Loop" sh-while :help "Insert a while loop") [sh-getopts] (menu-item "Options Loop" sh-while-getopts :help "Insert a while getopts loop.") [sh-indexed-loop] (menu-item "Indexed Loop" sh-indexed-loop :help "Insert an indexed loop from 1 to n.") [sh-select] (menu-item "Select Statement" sh-select :help "Insert a select statement ") [sh-if] (menu-item "If Statement" sh-if :help "Insert an if statement") [sh-for] (menu-item "For Loop" sh-for :help "Insert a for loop") [sh-case] (menu-item "Case Statement" sh-case :help "Insert a case/switch statement") [sh-s1] ("--") [sh-exec] (menu-item "Execute region" sh-execute-region :help "Pass optional header and region to a subshell for noninteractive execution") [sh-exec-interpret] (menu-item "Execute script..." executable-interpret :help "Run script with user-specified args, and collect output in a buffer") [sh-set-shell] (menu-item "Set shell type..." sh-set-shell :help "Set this buffer's shell to SHELL (a string)") [sh-backslash-region] (menu-item "Backslash region" sh-backslash-region :help "Insert, align, or delete end-of-line backslashes on the lines in the region.")] 7) (#$ . 6636)) #@70 Value to use for `skeleton-pair-default-alist' in Shell-Script mode. (defvar sh-skeleton-pair-default-alist '((40 _ 41) (41) (91 32 _ 32 93) (93) (123 _ 125) (125)) (#$ . 10627)) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\315\310\311&\210\316\317\320\321#\210\322\211\203F \211@\317N\203? \320N\204? \323\320\317N#\210A\266\202\202% \210\324\317\320\325#\210\323\317\326\327#\210\300\330\302\303\331DD\332\306\333\310\311&\207" [custom-declare-variable sh-dynamic-complete-functions funcall function #[0 "\300\207" [(shell-environment-variable-completion shell-command-completion comint-filename-completion)] 1] "Functions for doing TAB dynamic completion." :type (repeat function) :group sh-script sh-assignment-regexp #[0 "\300\301\302B\303BB\207" [(csh . "\\<\\([[:alnum:]_]+\\)\\(\\[.+\\]\\)?[ ]*[-+*/%^]?=") ksh88 "\\<\\([[:alnum:]_]+\\)\\(\\[.+\\]\\)?[ ]*\\(?:[-+*/%&|~^]\\|<<\\|>>\\)?=" ((bash . "\\<\\([[:alnum:]_]+\\)\\(\\[.+\\]\\)?\\+?=") (rc . "\\<\\([[:alnum:]_*]+\\)[ ]*=") (sh . "\\<\\([[:alnum:]_]+\\)="))] 3] "Regexp for the variable name and what may follow in an assignment.\nFirst grouping matches the variable name. This is upto and including the `='\nsign. See `sh-feature'." (repeat (cons (symbol :tag "Shell") (choice regexp (sexp :format "Evaluate: %v")))) defvaralias sh-indentation sh-basic-offset nil (saved-value saved-variable-comment) put make-obsolete-variable "26.1" safe-local-variable integerp sh-remember-variable-min #[0 "\300\207" [3] 1] "Don't remember variables less than this length for completing reads." integer] 8) #@128 When non-nil is the end of header for prepending by \[sh-execute-region]. That command is also used for setting this variable. (defvar sh-header-marker nil (#$ . 12252)) (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\313&\210\302\317\304\305\320DD\321\310\322\312\313&\207" [make-variable-buffer-local sh-header-marker custom-declare-variable sh-beginning-of-command funcall function #[0 "\300\207" [#1="\\([;({`|&]\\|\\`\\|[^\\]\n\\)[ ]*\\([/~[:alnum:]:]\\)"] 1 #1#] "Regexp to determine the beginning of a shell command.\nThe actual command starts at the beginning of the second \\(grouping\\)." :type regexp :group sh-script sh-end-of-command #[0 "\300\207" [#2="\\([/~[:alnum:]:]\\)[ ]*\\([;#)}`|&]\\|$\\)"] 1 #2#] "Regexp to determine the end of a shell command.\nThe actual command ends at the end of the first \\(grouping\\)." sh-here-document-word #[0 "\300\207" [#3="EOF"] 1 #3#] "Word to delimit here documents.\nIf the first character of this string is \"-\", this is taken as\npart of the redirection operator, rather than part of the\nword (that is, \"<<-\" instead of \"<<\"). This is a feature\nused by some shells (for example Bash) to indicate that leading\ntabs inside the here document should be ignored. In this case,\nEmacs indents the initial body and end of the here document with\ntabs, to the same level as the start (note that apart from this\nthere is no support for indentation of here documents). This\nwill only work correctly if `sh-basic-offset' is a multiple of\n`tab-width'.\n\nAny quote characters or leading whitespace in the word are\nremoved when closing the here document." string] 8) #@75 Initial input in Bourne if, while and until skeletons. See `sh-feature'. (defvar sh-test '((sh "[ ]" . 3) (ksh88 "[[ ]]" . 4)) (#$ . 13954)) (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313& \210\300\314\302\303\315DD\316\306\317\312\313&\210\300\320\302\303\321DD\322\306\323\312\313&\207" [custom-declare-variable sh-builtins funcall function #[0 "\300\207" [((bash sh-append posix "." "alias" "bg" "bind" "builtin" "caller" "compgen" "complete" "declare" "dirs" "disown" "enable" "fc" "fg" "help" "history" "jobs" "kill" "let" "local" "popd" "printf" "pushd" "shopt" "source" "suspend" "typeset" "unalias" "mapfile" "readarray" "coproc") (bourne sh-append shell "eval" "export" "getopts" "newgrp" "pwd" "read" "readonly" "times" "ulimit") (csh sh-append shell "alias" "chdir" "glob" "history" "limit" "nice" "nohup" "rehash" "setenv" "source" "time" "unalias" "unhash") (dtksh sh-append wksh) (es "access" "apids" "cd" "echo" "eval" "false" "let" "limit" "local" "newpgrp" "result" "time" "umask" "var" "vars" "wait" "whatis") (jsh sh-append sh "bg" "fg" "jobs" "kill" "stop" "suspend") (jcsh sh-append csh "bg" "fg" "jobs" "kill" "notify" "stop" "suspend") (ksh88 sh-append bourne "alias" "bg" "false" "fc" "fg" "jobs" "kill" "let" "print" "time" "typeset" "unalias" "whence") (oash sh-append sh "checkwin" "dateline" "error" "form" "menu" "newwin" "oadeinit" "oaed" "oahelp" "oainit" "pp" "ppfile" "scan" "scrollok" "wattr" "wclear" "werase" "win" "wmclose" "wmmessage" "wmopen" "wmove" "wmtitle" "wrefresh") (pdksh sh-append ksh88 "bind") (posix sh-append sh "command") (rc "builtin" "cd" "echo" "eval" "limit" "newpgrp" "shift" "umask" "wait" "whatis") (sh sh-append bourne "hash" "test" "type") (shell "cd" "echo" "eval" "set" "shift" "umask" "unset" "wait") (wksh sh-append ksh88) (zsh sh-append ksh88 "autoload" "bindkey" "builtin" "chdir" "compctl" "declare" "dirs" "disable" "disown" "echotc" "enable" "functions" "getln" "hash" "history" "integer" "limit" "local" "log" "popd" "pushd" "r" "readonly" "rehash" "sched" "setopt" "source" "suspend" "true" "ttyctl" "type" "unfunction" "unhash" "unlimit" "unsetopt" "vared" "which"))] 1] "List of all shell builtins for completing read and fontification.\nNote that on some systems not all builtins are available or some are\nimplemented as aliases. See `sh-feature'." :type (repeat (cons (symbol :tag "Shell") (choice (repeat string) (sexp :format "Evaluate: %v")))) :version "24.4" :group sh-script sh-leading-keywords #[0 "\300\207" [((bash sh-append sh "time") (csh "else") (es "true" "unwind-protect" "whatis") (rc "else") (sh "!" "do" "elif" "else" "if" "then" "trap" "type" "until" "while"))] 1] "List of keywords that may be immediately followed by a builtin or keyword.\nGiven some confusion between keywords and builtins depending on shell and\nsystem, the distinction here has been based on whether they influence the\nflow of control or syntax. See `sh-feature'." (repeat (cons (symbol :tag "Shell") (choice (repeat string) (sexp :format "Evaluate: %v")))) sh-other-keywords #[0 "\300\207" [((bash sh-append bourne "bye" "logout" "select") (bourne sh-append sh "function") (csh sh-append shell "breaksw" "default" "end" "endif" "endsw" "foreach" "goto" "if" "logout" "onintr" "repeat" "switch" "then" "while") (es "break" "catch" "exec" "exit" "fn" "for" "forever" "fork" "if" "return" "throw" "while") (ksh88 sh-append bourne "select") (rc "break" "case" "exec" "exit" "fn" "for" "if" "in" "return" "switch" "while") (sh sh-append shell "done" "esac" "fi" "for" "in" "return") (shell "break" "case" "continue" "exec" "exit") (zsh sh-append bash "select" "foreach"))] 1] "List of keywords not in `sh-leading-keywords'.\nSee `sh-feature'." (repeat (cons (symbol :tag "Shell") (choice (repeat string) (sexp :format "Evaluate: %v"))))] 10) #@78 List of all shell variables available for completing read. See `sh-feature'. (defvar sh-variables '((bash sh-append sh "allow_null_glob_expansion" "auto_resume" "BASH" "BASH_ENV" "BASH_VERSINFO" "BASH_VERSION" "cdable_vars" "COMP_CWORD" "COMP_LINE" "COMP_POINT" "COMP_WORDS" "COMPREPLY" "DIRSTACK" "ENV" "EUID" "FCEDIT" "FIGNORE" "FUNCNAME" "glob_dot_filenames" "GLOBIGNORE" "GROUPS" "histchars" "HISTCMD" "HISTCONTROL" "HISTFILE" "HISTFILESIZE" "HISTIGNORE" "history_control" "HISTSIZE" "hostname_completion_file" "HOSTFILE" "HOSTTYPE" "IGNOREEOF" "ignoreeof" "INPUTRC" "LINENO" "MACHTYPE" "MAIL_WARNING" "noclobber" "nolinks" "notify" "no_exit_on_failed_exec" "NO_PROMPT_VARS" "OLDPWD" "OPTERR" "OSTYPE" "PIPESTATUS" "PPID" "POSIXLY_CORRECT" "PROMPT_COMMAND" "PS3" "PS4" "pushd_silent" "PWD" "RANDOM" "REPLY" "SECONDS" "SHELLOPTS" "SHLVL" "TIMEFORMAT" "TMOUT" "UID") (csh sh-append shell "argv" "cdpath" "child" "echo" "histchars" "history" "home" "ignoreeof" "mail" "noclobber" "noglob" "nonomatch" "path" "prompt" "shell" "status" "time" "verbose") (es sh-append shell "apid" "cdpath" "CDPATH" "history" "home" "ifs" "noexport" "path" "pid" "prompt" "signals") (jcsh sh-append csh "notify") (ksh88 sh-append sh "ENV" "ERRNO" "FCEDIT" "FPATH" "HISTFILE" "HISTSIZE" "LINENO" "OLDPWD" "PPID" "PS3" "PS4" "PWD" "RANDOM" "REPLY" "SECONDS" "TMOUT") (oash sh-append sh "FIELD" "FIELD_MAX" "LAST_KEY" "OALIB" "PP_ITEM" "PP_NUM") (rc sh-append shell "apid" "apids" "cdpath" "CDPATH" "history" "home" "ifs" "path" "pid" "prompt" "status") (sh sh-append shell "CDPATH" "IFS" "OPTARG" "OPTIND" "PS1" "PS2") (shell "COLUMNS" "EDITOR" "HOME" "HUSHLOGIN" "LANG" "LC_COLLATE" "LC_CTYPE" "LC_MESSAGES" "LC_MONETARY" "LC_NUMERIC" "LC_TIME" "LINES" "LOGNAME" "MAIL" "MAILCHECK" "MAILPATH" "PAGER" "PATH" "SHELL" "TERM" "TERMCAP" "TERMINFO" "VISUAL") (tcsh sh-append csh "addsuffix" "ampm" "autocorrect" "autoexpand" "autolist" "autologout" "chase_symlinks" "correct" "dextract" "edit" "el" "fignore" "gid" "histlit" "HOST" "HOSTTYPE" "HPATH" "ignore_symlinks" "listjobs" "listlinks" "listmax" "matchbeep" "nobeep" "NOREBIND" "oid" "printexitvalue" "prompt2" "prompt3" "pushdsilent" "pushdtohome" "recexact" "recognize_only_executables" "rmstar" "savehist" "SHLVL" "showdots" "sl" "SYSTYPE" "tcsh" "term" "tperiod" "tty" "uid" "version" "visiblebell" "watch" "who" "wordchars") (zsh sh-append ksh88 "BAUD" "bindcmds" "cdpath" "DIRSTACKSIZE" "fignore" "FIGNORE" "fpath" "HISTCHARS" "hostcmds" "hosts" "HOSTS" "LISTMAX" "LITHISTSIZE" "LOGCHECK" "mailpath" "manpath" "NULLCMD" "optcmds" "path" "POSTEDIT" "prompt" "PROMPT" "PROMPT2" "PROMPT3" "PROMPT4" "psvar" "PSVAR" "READNULLCMD" "REPORTTIME" "RPROMPT" "RPS1" "SAVEHIST" "SPROMPT" "STTY" "TIMEFMT" "TMOUT" "TMPPREFIX" "varcmds" "watch" "WATCH" "WATCHFMT" "WORDCHARS" "ZDOTDIR")) (#$ . 17788)) (byte-code "\300\301\302\303\304\305%\210\300\306\307\310\304\305%\210\300\311\312\313\304\314\315\316&\207" [custom-declare-face sh-heredoc ((((min-colors 88) (class color) (background dark)) (:foreground "yellow1" :weight bold)) (((class color) (background dark)) (:foreground "yellow" :weight bold)) (((class color) (background light)) (:foreground "tan1")) (t (:weight bold))) "Face to show a here-document." :group sh-indentation sh-quoted-exec ((((class color) (background dark)) (:foreground "salmon")) (((class color) (background light)) (:foreground "magenta")) (t (:weight bold))) "Face to show quoted execs like \\=`blabla\\=`." sh-escaped-newline ((t :inherit font-lock-string-face)) "Face used for (non-escaped) backslash at end of a line in Shell-script mode." sh-script :version "22.1"] 8) #@76 Default expressions to highlight in Shell Script modes. See `sh-feature'. (defvar sh-font-lock-keywords-var '((csh sh-append shell ("\\${?[#?]?\\([[:alpha:]_][[:alnum:]_]*\\|0\\)" 1 font-lock-variable-name-face)) (es sh-append executable-font-lock-keywords ("\\$#?\\([[:alpha:]_][[:alnum:]_]*\\|[0-9]+\\)" 1 font-lock-variable-name-face)) (rc sh-append es) (bash sh-append sh ("\\$(\\(\\sw+\\)" (1 'sh-quoted-exec t))) (sh sh-append shell ("\\$\\({#?\\)?\\([[:alpha:]_][[:alnum:]_]*\\|[-#?@!]\\)" 2 font-lock-variable-name-face) ("^\\(\\sw+\\)[ ]*(" 1 font-lock-function-name-face) ("\\<\\(function\\)\\>[ ]*\\(\\sw+\\)?" (1 font-lock-keyword-face) (2 font-lock-function-name-face nil t)) ("\\(?:^\\s *\\|[[();&|]\\s *\\|\\(?:\\s +-[ao]\\|if\\|else\\|then\\|while\\|do\\)\\s +\\)\\(!\\)" 1 font-lock-negation-char-face)) (shell ("\\(^\\|[^\\]\\)\\(\\\\\\\\\\)*\\(\\\\\\)$" 3 'sh-escaped-newline) ("\\\\[^[:alnum:]]" 0 font-lock-string-face) ("\\${?\\([[:alpha:]_][[:alnum:]_]*\\|[0-9]+\\|[$*_]\\)" 1 font-lock-variable-name-face)) (rpm sh-append rpm2 ("%{?\\(\\sw+\\)" 1 font-lock-keyword-face)) (rpm2 sh-append shell ("^Summary:\\(.*\\)$" (1 font-lock-doc-face t)) ("^\\(\\sw+\\):" 1 font-lock-variable-name-face))) (#$ . 21427)) #@52 Subdued level highlighting for Shell Script modes. (defvar sh-font-lock-keywords-var-1 '((sh "[ ]in\\>")) (#$ . 22667)) #@50 Gaudy level highlighting for Shell Script modes. (defvar sh-font-lock-keywords-var-2 nil (#$ . 22794)) (defconst sh-st-punc '(1)) (defconst sh-here-doc-syntax '(15)) (defconst sh-escaped-line-re "\\(?:\\(?:.*[^\\\n]\\)?\\(?:\\\\\\\\\\)*\\\\\n\\)*.*") (defconst sh-here-doc-open-re (concat "[^<]<<-?\\s-*\\\\?\\(\\(?:['\"][^'\"]+['\"]\\|\\sw\\|[-/~._]\\)+\\)" sh-escaped-line-re "\\(\n\\)")) #@12 (fn POS) (defalias 'sh--inside-noncommand-expression #[257 "\212\300!\211A@\2051 \211A@b\210\301f\211\302\267\202' `Sf\303=\202( `Sf\304=\202( \301\262\2061 \305`S!\262)\207" [syntax-ppss nil #s(hash-table size 3 test eql rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (40 23 91 31 123 31)) 40 36 sh--inside-noncommand-expression] 5 (#$ . 23191)]) #@330 Determine the syntax of the \n after a <<EOF. START is the position of <<. STRING is the actual word used as delimiter (e.g. "EOF"). INDENTED is non-nil if the here document's content (and the EOF mark) can be indented (i.e. a <<- was used rather than just <<). Point is at the beginning of the next line. (fn START STRING EOL) (defalias 'sh-font-lock-open-heredoc #[771 "\206 `Sf\301>\206 \302!\206 \303!?\205Y \304\305\306#\212\307!)\3108\2031 \311S\312\313$\210\3148\204@ \315\"\316V\203H \311T\317\320$\210\311\211T\321$\210\322\\b\210\266\202\207" [sh-here-doc-syntax (60 62) sh-in-comment-or-string sh--inside-noncommand-expression replace-regexp-in-string "['\"]" "" syntax-ppss 4 put-text-property syntax-table (12) 5 count-lines 1 syntax-multiline t sh-here-doc-marker 2] 10 (#$ . 23560)]) #@12 (fn END) (defalias 'sh-syntax-propertize-here-doc #[257 "\302 \3038\304=\205- \305\3068\307\"\310\311\312\313!\314Q\315#\205* \316\224\317\211T\320 $\262)\262\207" [case-fold-search sh-here-doc-syntax syntax-ppss 3 t get-text-property 8 sh-here-doc-marker nil re-search-forward "^\\([ ]*\\)" regexp-quote "\\(\n\\)" move 2 put-text-property syntax-table] 9 (#$ . 24387)]) #@152 Search for a subshell embedded in a string. Find all the unescaped " characters within said subshell, remembering that subshells can nest. (fn LIMIT) (defalias 'sh-font-lock-quoted-subshell #[257 "\300\301 8\302=\205\376 `Sf\303=\203 \304\202 \305`\306\203\350 \307w\210`W\203\350 \310f\211\311\267\202\335 \312=\204\341 \313u\210`\314w\210\212`b\210\315\316\317#\203U \320``S\321\322$\210\202B \210)\210\202\341 \313u\210\202\341 \312=\203r \211A\262\242\262\202z B\262\312\262\203\341 \320``T\321\323$\210\202\341 \304=\203\232 \211A\262\242\262\202\341 B\262\304\262\202\341 `Tf\324=\203\341 \313u\210B\262\305\262\202\341 \312=\204\341 B\262\305\262\202\341 \312=\204\341 \211A\262\242\262\202\341 \325\326!\210\210\313u\210\202 \327 W\205\374 \320`\330\317$\210\331\332\333\310\317$\266\203\207" [3 syntax-ppss 34 96 backquote code (double-quote) "^'\\\\\"`$()" nil #s(hash-table size 7 test eql rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (39 46 92 91 34 97 96 137 36 165 40 187 41 204)) double-quote 1 "^'" search-forward "\"" t put-text-property syntax-table (1) (1) 40 error "Internal error in sh-font-lock-quoted-subshell" line-beginning-position syntax-multiline add-hook syntax-propertize-extend-region-functions syntax-propertize-multiline] 12 (#$ . 24777)]) #@12 (fn POS) (defalias 'sh-is-quoted-p #[257 "\211\206 `Sf\300=\205 \301S!?\207" [92 sh-is-quoted-p] 3 (#$ . 26111)]) #@14 (fn START) (defalias 'sh-font-lock-paren #[257 "\301\302 8?\205\301 \212\303b\210\304d[!\210l\203\"