;ELC ;;; compiled by kwzh@hal.gnu.ai.mit.edu on Tue May 30 19:50:40 1995 ;;; from file /gd/gnu/emacs/19.0/lisp/sh-script.el ;;; emacs version 19.28.92.13. ;;; bytecomp version FSF 2.10 ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.28.90"))) (error "`sh-script.el' was compiled for Emacs 19.29 or later")) (byte-code "\nBBÇ" [("/bin/" . sh-or-other-mode) ("\\.sh\\'\\|\\.shar\\'\\|/\\.\\(profile\\|bash_profile\\|login\\|bash_login\\|logout\\|bash_logout\\|bashrc\\|t?cshrc\\|xinitrc\\|startxrc\\|xsession\\)\\'" . sh-mode) auto-mode-alist nil] 3) #@43 Syntax table in use in Shell-Script mode. (defvar sh-mode-syntax-table (byte-code "  # # # # # # # # # # # # # )" [copy-syntax-table table modify-syntax-entry 35 "<" 12 ">#" 10 34 "\"\"" 39 "\"'" 96 "$`" 36 "_" 33 37 58 46 94 126] 4) (#$ . 727)) #@67 If non-nil when loading, `$' and `<' will be C-c $ and C-c < . (defvar sh-use-prefix nil (#$ . 1034)) #@35 Keymap used in Shell-Script mode. (defvar sh-mode-map (byte-code "  # # # # # # # # >Ԃ?# # # YۂZ# # # # # # # # $ $ $ # $ $ $ $ !B# # # @# AB# CD# EF# GH# )" [make-sparse-keymap map define-key "(" sh-function "" sh-while "" sh-until "" sh-select "\f" sh-indexed-loop " " sh-if "" sh-for "" sh-case sh-use-prefix "$" "$" sh-query-for-variable "=" sh-assignment "+" sh-add "<" "<" sh-maybe-here-document "(" pair-insert-maybe "{" "[" "'" "`" "\"" " " sh-indent-line substitute-key-definition complete-tag comint-dynamic-complete-filename current-global-map newline-and-indent sh-newline-and-indent delete-backward-char backward-delete-char-untabify ":" sh-set-shell beginning-of-defun sh-beginning-of-compound-command backward-sentence sh-beginning-of-command forward-sentence sh-end-of-command manual-entry sh-manual-entry [menu-bar insert] "Insert" [menu-bar insert sh-while] ("While Loop" . sh-while) [menu-bar insert sh-until] ("Until Loop" . sh-until) [menu-bar insert sh-select] ("Select Statement" . sh-select) [menu-bar insert sh-indexed-loop] ("Indexed Loop" . sh-indexed-loop) [menu-bar insert sh-if] ("If Statement" . sh-if) [menu-bar insert sh-for] ("For Loop" . sh-for) [menu-bar insert sh-case] ("Case Statement" . sh-case)] 6) (#$ . 1145)) #@147 *What to do when newly found file has no magic number: nil do nothing t insert magic number other insert magic number, but mark as unmodified. (defvar sh-find-file-modifies t (#$ . -2602)) #@66 *If non-nil, ask user before changing or inserting magic number. (defvar sh-query-for-magic t (#$ . -2800)) #@67 *On files with this kind of name no magic is inserted or changed. (defvar sh-magicless-file-regexp "/\\.[^/]+$" (#$ . -2914)) #@113 A regexp to match the magic number of a found file. Currently this is only used by function `sh-or-other-mode'. (defvar magic-number-alist (quote (("L\\|ELF" . hexl-mode) ("#!.*perl" . perl-mode))) (#$ . 3047)) #@195 *Regexp to match the output of sh builtin `type' command on your machine. The regexp must match the whole output, and must contain a \(something\) construct which matches the actual executable. (defvar sh-executable ".* is \\([^ ]*\\)\n" (#$ . -3268)) #@157 *After saving, if the file is not executable, set this mode. The mode can be absolute, such as "777", or relative, such as "+x". Do nothing if this is nil. (defvar sh-chmod-argument "+x" (#$ . -3528)) #@48 *The executable of the shell being programmed. (defvar sh-shell-path (byte-code "!‡" [getenv "SHELL" "/bin/sh"] 2) (#$ . -3735)) #@50 *A single argument for the magic number, or nil. (defvar sh-shell-argument nil (#$ . -3876)) #@62 The shell being programmed. This is set by \[sh-set-shell]. (defvar sh-shell nil (#$ . 3975)) #@62 The shell being programmed. This is set by \[sh-set-shell]. (defvar sh-shell-is-csh nil (#$ . 4076)) #@134 The default value for `tab-width' in Shell-Script mode. This is the width of tab stops after the indentation of the preceeding line. (defvar sh-tab-width 4 (#$ . 4185)) #@71 *Don't remember variables less than this length for completing reads. (defvar sh-remember-variable-min 3 (#$ . -4360)) #@127 *Regexp to determine the beginning of a shell command. The actual command starts at the beginning of the second \(grouping\). (defvar sh-beginning-of-command "\\([;({`|&]\\|^\\)[ ]*\\([/~:a-zA-Z0-9]\\)" (#$ . -4486)) #@112 *Regexp to determine the end of a shell command. The actual command ends at the end of the first \(grouping\). (defvar sh-end-of-command "\\([/~:a-zA-Z0-9]\\)[ ]*\\([;#)}`|&]\\|$\\)" (#$ . -4711)) #@59 List of shells that allow spaces around the assignment =. (defvar sh-assignment-space (quote (csh tcsh)) (#$ . 4915)) #@33 Word to delimit here documents. (defvar sh-here-document-word "+" (#$ . 5039)) #@148 Alist of all environment and shell variables used for completing read. Variables only understood by some shells are associated to a list of those. (defvar sh-variables (quote (("addsuffix" tcsh) ("allow_null_glob_expansion" bash) ("ampm" tcsh) ("argv" csh tcsh) ("autocorrect" tcsh) ("autoexpand" tcsh) ("autolist" tcsh) ("autologout" tcsh) ("auto_resume" bash) ("BASH" bash) ("BASH_VERSION" bash) ("cdable_vars" bash) ("cdpath" csh tcsh) ("CDPATH" sh ksh bash) ("chase_symlinks" tcsh) ("child" csh tcsh) ("COLUMNS" ksh tcsh) ("correct" tcsh) ("dextract" tcsh) ("echo" csh tcsh) ("edit" tcsh) ("EDITOR") ("el" tcsh) ("ENV" ksh bash) ("ERRNO" ksh) ("EUID" bash) ("FCEDIT" ksh bash) ("FIGNORE" bash) ("fignore" tcsh) ("FPATH" ksh) ("gid" tcsh) ("glob_dot_filenames" bash) ("histchars" bash csh tcsh) ("HISTFILE" ksh bash) ("HISTFILESIZE" bash) ("histlit" tcsh) ("history" csh tcsh) ("history_control" bash) ("HISTSIZE" bash) ("home" csh tcsh) ("HOME") ("HOST" tcsh) ("hostname_completion_file" bash) ("HOSTTYPE" bash tcsh) ("HPATH" tcsh) ("HUSHLOGIN") ("IFS" sh ksh bash) ("ignoreeof" bash csh tcsh) ("IGNOREEOF" bash) ("ignore_symlinks" tcsh) ("LANG") ("LC_COLLATE") ("LC_CTYPE") ("LC_MESSAGES") ("LC_MONETARY") ("LC_NUMERIC") ("LC_TIME") ("LINENO" ksh bash) ("LINES" ksh tcsh) ("listjobs" tcsh) ("listlinks" tcsh) ("listmax" tcsh) ("LOGNAME") ("mail" csh tcsh) ("MAIL") ("MAILCHECK") ("MAILPATH") ("MAIL_WARNING" bash) ("matchbeep" tcsh) ("nobeep" tcsh) ("noclobber" bash csh tcsh) ("noglob" csh tcsh) ("nolinks" bash) ("nonomatch" csh tcsh) ("NOREBIND" tcsh) ("notify" bash) ("no_exit_on_failed_exec" bash) ("NO_PROMPT_VARS" bash) ("oid" tcsh) ("OLDPWD" ksh bash) ("OPTARG" sh ksh bash) ("OPTERR" bash) ("OPTIND" sh ksh bash) ("PAGER") ("path" csh tcsh) ("PATH") ("PPID" ksh bash) ("printexitvalue" tcsh) ("prompt" csh tcsh) ("prompt2" tcsh) ("prompt3" tcsh) ("PROMPT_COMMAND" bash) ("PS1" sh ksh bash) ("PS2" sh ksh bash) ("PS3" ksh) ("PS4" ksh bash) ("pushdsilent" tcsh) ("pushdtohome" tcsh) ("pushd_silent" bash) ("PWD" ksh bash) ("RANDOM" ksh bash) ("recexact" tcsh) ("recognize_only_executables" tcsh) ("REPLY" ksh bash) ("rmstar" tcsh) ("savehist" tcsh) ("SECONDS" ksh bash) ("shell" csh tcsh) ("SHELL") ("SHLVL" bash tcsh) ("showdots" tcsh) ("sl" tcsh) ("status" csh tcsh) ("SYSTYPE" tcsh) ("tcsh" tcsh) ("term" tcsh) ("TERM") ("TERMCAP") ("time" csh tcsh) ("TMOUT" ksh bash) ("tperiod" tcsh) ("tty" tcsh) ("UID" bash) ("uid" tcsh) ("verbose" csh tcsh) ("version" tcsh) ("visiblebell" tcsh) ("VISUAL") ("watch" tcsh) ("who" tcsh) ("wordchars" tcsh))) (#$ . 5125)) #@186 *Rules for highlighting shell scripts. This variable is included into the various variables `sh-SHELL-font-lock-keywords'. If no such variable exists for some shell, this one is used. (defvar sh-font-lock-keywords nil (#$ . -7704)) #@47 *Rules for highlighting Bourne shell scripts. (defvar sh-sh-font-lock-keywords (append sh-font-lock-keywords (quote (("\\(^\\|[^-._a-z0-9]\\)\\(case\\|do\\|done\\|elif\\|else\\|esac\\|fi\\|for\\|if\\|in\\|then\\|until\\|while\\)\\($\\|[^-._a-z0-9]\\)" 2 font-lock-keyword-face t)))) (#$ . -7943)) #@45 *Rules for highlighting Korn shell scripts. (defvar sh-ksh-font-lock-keywords (append sh-sh-font-lock-keywords (quote (("\\(^\\|[^-._a-z0-9]\\)\\(function\\|select\\)\\($\\|[^-._a-z0-9]\\)" 2 font-lock-keyword-face t)))) (#$ . -8246)) #@53 *Rules for highlighting Bourne again shell scripts. (defvar sh-bash-font-lock-keywords (append sh-sh-font-lock-keywords (quote (("\\(^\\|[^-._a-z0-9]\\)\\(function\\)\\($\\|[^-._a-z0-9]\\)" 2 font-lock-keyword-face t)))) (#$ . -8487)) #@42 *Rules for highlighting C shell scripts. (defvar sh-csh-font-lock-keywords (append sh-font-lock-keywords (quote (("\\(^\\|[^-._a-z0-9]\\)\\(breaksw\\|case\\|default\\|else\\|end\\|endif\\|foreach\\|if\\|switch\\|then\\|while\\)\\($\\|[^-._a-z0-9]\\)" 2 font-lock-keyword-face t)))) (#$ . -8728)) #@50 *Rules for highlighting Toronto C shell scripts. (defvar sh-tcsh-font-lock-keywords sh-csh-font-lock-keywords (#$ . -9030)) #@202 Decide whether this is a compiled executable or a script. Usually the file-names of scripts and binaries cannot be automatically distinguished, so the presence of an executable's magic number is used. (defalias 'sh-or-other-mode #[nil " @@! A @A) " [magic-number-alist l looking-at sh-mode] 3 (#$ . 9161)]) #@1803 Major mode for editing shell scripts. This mode works for many shells, since they all have roughly the same syntax, as far as commands, arguments, variables, pipes, comments etc. are concerned. Unless the file's magic number indicates the shell, your usual shell is assumed. Since filenames rarely give a clue, they are not further analyzed. The syntax of the statements varies with the shell being used. The syntax of statements can be modified by putting a property on the command or new ones defined with `define-sh-skeleton'. For example (put 'sh-until 'ksh '(() "until " _ \n > "do" \n "done")) or (put 'sh-if 'smush '("What? " "If ya got ( " str " ) ya betta { " _ " }")) where `sh-until' or `sh-if' have been or will be defined by `define-sh-skeleton'. The following commands are available, based on the current shell's syntax: \[sh-case] case statement \[sh-for] for loop \[sh-function] function definition \[sh-if] if statement \[sh-indexed-loop] indexed loop from 1 to n \[sh-select] select statement \[sh-until] until loop \[sh-while] while loop \[backward-delete-char-untabify] Delete backward one position, even if it was a tab. \[sh-newline-and-indent] Delete unquoted space and indent new line same as this one. \[sh-end-of-command] Go to end of successive commands. \[sh-beginning-of-command] Go to beginning of successive commands. \[sh-set-shell] Set this buffer's shell, and maybe its magic number. \[sh-manual-entry] Display the Unix manual entry for the current command or shell. \[sh-query-for-variable] Unless quoted with \, query for a variable with completions offered. \[sh-maybe-here-document] Without prefix, following an unquoted < inserts here document. {, (, [, ', ", ` Unless quoted with \, insert the pairs {}, (), [], or '', "", ``. (defalias 'sh-mode #[nil " \n!\f!!!!!!!!!!!!! \neb!j{l !)!#$=!!" [kill-all-local-variables set-syntax-table sh-mode-syntax-table use-local-map sh-mode-map make-local-variable indent-line-function comment-start comment-start-skip after-save-hook require-final-newline sh-shell-path sh-shell sh-shell-is-csh pair-alist pair-filter font-lock-defaults sh-variables sh-mode major-mode "Shell-script" mode-name sh-indent-line "# " sh-chmod sh-tab-width tab-width t ((96 _ 96)) sh-quoted-p sh-set-shell looking-at "#![ ]*\\([^ \n ]+\\)" 1 boundp find-file sh-find-file-modifies set-buffer-modified-p nil run-hooks sh-mode-hook] 3 (#$ . 9496) nil]) (defalias (quote shell-script-mode) (quote sh-mode)) #@443 Define COMMAND with [DOCSTRING] to insert statements as in DEFINITION ... Prior definitions (e.g. from ~/.emacs) are maintained. Each definition is built up as (SHELL PROMPT ELEMENT ...). Alternately a synonym definition can be (SHELL . PREVIOUSLY-DEFINED-SHELL). For the meaning of (PROMPT ELEMENT ...) see `skeleton-insert'. Each DEFINITION is actually stored as (put COMMAND SHELL (PROMPT ELEMENT ...)), which you can also do yourself. (defalias 'define-sh-skeleton '(macro . #[(command documentation &rest definitions) ";  B! DDC DBBE D DBBBBBFEBBBE D DBBDF  DBB DBBBEDF" [documentation definitions "" require backquote progn let quote while or and (not (if (boundp (quote skeleton-debug)) skeleton-debug)) get command ((car (car definitions))) put (car (car definitions)) if (symbolp (cdr (car definitions))) ((cdr (car definitions))) ((cdr (car definitions))) ((setq definitions (cdr definitions))) (quote menu-enable) (sh-shell) defun nil (interactive) skeleton-insert (sh-shell) error "%s statement syntax not defined for shell %s." (sh-shell)] 15 (#$ . 12103)])) #@127 Indent as far as preceding line, then by steps of `tab-width'. If previous line starts with a comment, it's considered empty. (defalias 'sh-indent-line #[nil "! \f!łi)=#Si iW9l5SłSlKi T _]Si T _j)i W`w)" [line-move -1 back-to-indentation looking-at comment-start-skip 0 previous this-command newline-and-indent tab-width current-indentation " " nil] 3 (#$ . 13248) nil]) #@69 Make VARIABLE available for future completing reads in this buffer. (defalias 'sh-remember-variable #[(var) "G W \"C B" [var sh-remember-variable-min assoc sh-variables] 3 (#$ . 13682)]) (byte-code "! \n@\n@\"O!\nA\f)" [boundp process-environment l sh-remember-variable 0 string-match "="] 7) #@52 Is point preceded by an odd number of backslashes? (defalias 'sh-quoted-p #[nil "`x`)Z¦=" ["\\\\" nil 2 1] 3 (#$ . 14015)]) #@76 If COMMAND is an executable in $PATH its full name is returned. Else nil. (defalias 'sh-executable #[(command) "` \nP&`\fb\f!.\f͕=.ΔΕ{`\f|!," [buffer-modified-p nil after-change-function buffer-read-only point call-process "sh" t "-c" "type " command looking-at sh-executable 0 1 set-buffer-modified-p] 8 (#$ . 14152)]) #@139 This gets called after saving a file to assure that it be executable. You can set the absolute or relative mode with `sh-chmod-argument'. (defalias 'sh-chmod #[nil "\n!\nR!" [sh-chmod-argument file-executable-p buffer-file-name shell-command "chmod " " "] 5 (#$ . 14513)]) (byte-code "!\f  @@N- @@ @A9( @AN+ @A# A)#" [((sh "expression: " "case " str " in" n > (read-string "pattern: ") 41 n > _ n ";;" n ("other pattern, %s: " < str 41 n > n ";;" n) < "*)" n > n resume: < < "esac") (ksh . sh) (bash . sh) (csh "expression: " "switch( " str " )" n > "case " (read-string "pattern: ") 58 n > _ n "breaksw" n ("other pattern, %s: " < "case " str 58 n > n "breaksw" n) < "default:" n > n resume: < < "endsw") (tcsh . csh)) definitions boundp skeleton-debug sh-case put menu-enable (get (quote sh-case) sh-shell)] 6) #@63 Insert a case/switch statement in the current shell's syntax. (defalias 'sh-case #[nil "\nN\f\n#!" [skeleton-insert sh-case sh-shell error "%s statement syntax not defined for shell %s."] 5 (#$ . 15375) nil]) (byte-code "!\f  @@N- @@ @A9( @AN+ @A# A)#" [((sh "Index variable: " "for " str " in " _ "; do" n > 36 (sh-remember-variable str) n < "done") (ksh . sh) (bash . sh) (csh "Index variable: " "foreach " str " ( " _ " )" n > 36 (sh-remember-variable str) n < "end") (tcsh . csh)) definitions boundp skeleton-debug sh-for put menu-enable (get (quote sh-for) sh-shell)] 6) #@50 Insert a for loop in the current shell's syntax. (defalias 'sh-for #[nil "\nN\f\n#!" [skeleton-insert sh-for sh-shell error "%s statement syntax not defined for shell %s."] 5 (#$ . 15995) nil]) (byte-code "!\f  @@N- @@ @A9( @AN+ @A# A)#" [((sh "Index variable: " str "=1" n "while [ $" str " -le " (read-string "upper limit: ") " ]; do" n > _ 36 str n str 61 (sh-add (sh-remember-variable str) 1) n < "done") (ksh . sh) (bash . sh) (csh "Index variable: " "@ " str " = 1" n "while( $" str " <= " (read-string "upper limit: ") " )" n > _ 36 (sh-remember-variable str) n "@ " str "++" n < "end") (tcsh . csh)) definitions boundp skeleton-debug sh-indexed-loop put menu-enable (get (quote sh-indexed-loop) sh-shell)] 6) #@67 Insert an indexed loop from 1 to n in the current shell's syntax. (defalias 'sh-indexed-loop #[nil "\nN\f\n#!" [skeleton-insert sh-indexed-loop sh-shell error "%s statement syntax not defined for shell %s."] 5 (#$ . 16756) nil]) #@68 Insert an addition of VAR and prefix DELTA for Bourne type shells. (defalias 'sh-add #[(var delta) "W\n‚ !PǞ\"" [delta 0 " - " " + " abs skeleton-insert sh-shell ((sh "`expr $" var delta "`") (ksh "$(( $" var delta " ))") (bash "$[ $" var delta " ]")) t] 3 (#$ . 16999) (list (sh-remember-variable (completing-read "Variable: " sh-variables (lambda (element) (or (not (cdr element)) (memq sh-shell (cdr element)))))) (prefix-numeric-value current-prefix-arg))]) (byte-code "!\f  @@N- @@ @A9( @AN+ @A# A)#" [((sh nil "() {" n > _ n < "}") (ksh "name: " "function " str " {" n > _ n < "}") (bash "name: " "function " str "() {" n > _ n < "}")) definitions boundp skeleton-debug sh-function put menu-enable (get (quote sh-function) sh-shell)] 6) #@61 Insert a function definition in the current shell's syntax. (defalias 'sh-function #[nil "\nN\f\n#!" [skeleton-insert sh-function sh-shell error "%s statement syntax not defined for shell %s."] 5 (#$ . 17794) nil]) (byte-code "!\f  @@N- @@ @A9( @AN+ @A# A)#" [((sh "condition: " "if [ " str " ]; then" n > _ n ("other condition, %s: " < "elif [ " str " ]; then" n > n) < "else" n > n resume: < "fi") (ksh . sh) (bash . sh) (csh "condition: " "if( " str " ) then" n > _ n ("other condition, %s: " < "else if ( " str " ) then" n > n) < "else" n > n resume: < "endif") (tcsh . csh)) definitions boundp skeleton-debug sh-if put menu-enable (get (quote sh-if) sh-shell)] 6) #@55 Insert an if statement in the current shell's syntax. (defalias 'sh-if #[nil "\nN\f\n#!" [skeleton-insert sh-if sh-shell error "%s statement syntax not defined for shell %s."] 5 (#$ . 18507) nil]) (byte-code "!\f  @@N- @@ @A9( @AN+ @A# A)#" [((ksh "Index variable: " "select " str " in " _ "; do" n > 36 str n < "done")) definitions boundp skeleton-debug sh-select put menu-enable (get (quote sh-select) sh-shell)] 6) #@58 Insert a select statement in the current shell's syntax. (defalias 'sh-select #[nil "\nN\f\n#!" [skeleton-insert sh-select sh-shell error "%s statement syntax not defined for shell %s."] 5 (#$ . 18969) nil]) (byte-code "#! @@N4 @@ @A9/ @AN2 @A# A)#" [put sh-select menu-enable (get (quote sh-select) sh-shell) ((sh "condition: " "until [ " str " ]; do" n > _ n < "done") (ksh . sh) (bash . sh)) definitions boundp skeleton-debug sh-until (get (quote sh-until) sh-shell)] 6) #@53 Insert an until loop in the current shell's syntax. (defalias 'sh-until #[nil "\nN\f\n#!" [skeleton-insert sh-until sh-shell error "%s statement syntax not defined for shell %s."] 5 (#$ . 19495) nil]) (byte-code "#! @@N4 @@ @A9/ @AN2 @A# A)#" [put sh-until menu-enable (get (quote sh-until) sh-shell) ((sh "condition: " "while [ " str " ]; do" n > _ n < "done") (ksh . sh) (bash . sh) (csh "condition: " "while( " str " )" n > _ n < "end") (tcsh . csh)) definitions boundp skeleton-debug sh-while (get (quote sh-while) sh-shell)] 6) #@52 Insert a while loop in the current shell's syntax. (defalias 'sh-while #[nil "\nN\f\n#!" [skeleton-insert sh-while sh-shell error "%s statement syntax not defined for shell %s."] 5 (#$ . 20080) nil]) #@266 Unless quoted with `\', query for variable-name with completions. Prefix arg 0 means don't insert `$' before the variable. Prefix arg 2 or more means only do self-insert that many times. If { is pressed as the first character, it will surround the variable name. (defalias 'sh-query-for-variable #[(arg) "V !HN !#p\n   ##!==uc=Gu+" [arg 1 sh-quoted-p self-insert-command nil sh-query-for-variable keymap put copy-keymap minibuffer-local-completion-map buffer completion-ignore-case define-key "{" #[nil "\n`V Ë" [arg 1 beep ((byte-code " !c" [t arg switch-to-buffer-other-window buffer "{}"] 2))] 2 nil nil] sh-remember-variable completing-read "Variable: " sh-variables #[(element) "A?\n A>" [element sh-shell] 2] t] 6 (#$ . 20295) "*p"]) #@72 Insert self. Remember previous identifier for future completing read. (defalias 'sh-assignment #[(arg) "=Š \f>x`x`{)!!" [arg 1 sh-remember-variable sh-shell sh-assignment-space " " nil "a-zA-Z0-9_" self-insert-command] 4 (#$ . 21114) "p"]) #@130 Inserts self. Without prefix, following unquoted `<' inserts here document. The document is bounded by `sh-here-document-word'. (defalias 'sh-maybe-here-document #[(arg) "\n!!\n:`Zf\f=?:`Zb ):c!-c )" [self-insert-command prefix-numeric-value arg 2 last-command-char sh-quoted-p sh-here-document-word looking-at "[ \n]" 32 1 newline 10] 3 (#$ . 21382) "*P"]) #@45 Dynamically complete the filename at point. (autoload (quote comint-dynamic-complete-filename) "comint" '(#$ . 21783) t) #@165 Strip unquoted whitespace, insert newline, and indent like current line. Unquoted whitespace is stripped from the current line's end, unless a prefix ARG is given. (defalias 'sh-newline-and-indent #[(&optional arg) " ` x` W u` | \nj*" [current-indentation end-of-line previous arg " " nil sh-quoted-p 1 newline] 2 (#$ . 21911) "*P"]) #@93 Set this buffer's shell to SHELL (a string). Calls the value of `sh-set-shell-hook' if set. (defalias 'sh-set-shell #[(shell) "eb !  ! \" !!>\n\"!>!>?)C\nL҂M\" ]Qt\"!߃!w ``){$ Q!e`{\"``| c$ Q!߃ )!" [file-name-absolute-p shell sh-executable error "Cannot find %s." sh-shell-path intern file-name-nondirectory sh-shell (csh tcsh) sh-shell-is-csh intern-soft format "sh-%s-font-lock-keywords" keywords boundp sh-font-lock-keywords font-lock-defaults "\\(^\\|[^$]\\|\\$[^{]\\)#+[ ]*" "\\(^\\|[^$]\\|\\$[^{]\\)\\B#+[ ]*" comment-start-skip ": %s" mode-line-process sh-shell-argument " " buffer-read-only buffer-file-name string-match sh-magicless-file-regexp find-file sh-find-file-modifies t looking-at "#!" "#! " nil sh-query-for-magic y-or-n-p "Replace magic number by ``#! " "''? " message "Magic number ``%s'' replaced." "Add ``#! " "#! " 10 run-hooks sh-set-shell-hook] 5 (#$ . 22274) "sName or path of shell: "]) #@50 Move point to successive beginnings of commands. (defalias 'sh-beginning-of-command #[nil " # Ĕb" [re-search-backward sh-beginning-of-command nil t 2] 4 (#$ . 23364) nil]) #@44 Move point to successive ends of commands. (defalias 'sh-end-of-command #[nil " # ĕb" [re-search-forward sh-end-of-command nil t 1] 4 (#$ . 23549) nil]) #@131 Display the Unix manual entry for the current command or shell. Universal argument ARG, is passed to `Man-getpage-in-background'. (defalias 'sh-manual-entry #[(arg) " ` `{!)!Q  !\" ˘-!. \f\")" [sh-beginning-of-command sh-executable forward-sexp command read-input "Manual entry (default " symbol-name sh-shell "): " file-name-nondirectory manual-entry "" arg] 4 (#$ . 23716) "P"])