(sh-mode): Make sh-shell-variables and
sh-shell-variables-initialized local.
(sh-set-shell): Don't scan the buffer for variable assignments.
Set sh-shell-variables-initialized to nil.
(sh-shell-initialize-variables): New function.
(sh-add-completer): New function. Initialize sh-shell-variables
here if not yet done.
(sh-add): Use sh-add-completer for completion.
(sh-set-shell, sh-remember-variable):
Set sh-shell-variable, not process-environment.
(sh-mode): Don't make process-environment local.
Add a mode-class property.
(sh-add): Use sh-shell-variable in completion.
Compute alist properly from process-environment.
(sh-canonicalize-shell): New function.
(sh-shell-file): Renamed from sh-shell-path.
(sh-set-shell): Don't set local-abbrev-table.
(sh-abbrevs): Variable and function definition commented out.
(sh-font-lock-keywords-1): Allow keyword `in' at eol too.
(sh-font-lock-keywords-only): New variable to prevent an apostrophe
in comment from misfontifying buffer, but to allow users who don't
have such to get strings fontified.
(sh-mode): Use it.
`interpreter-mode-alist'.
(sh-beginning-of-command): Take into account \quoted newline.
(sh-builtins, sh-leading-keywords, sh-other-keywords): Now three
distinct sets for font-locking.
(sh-font-lock-keywords-1, sh-font-lock-keywords-2): New variables
and functions to give the user finer control over how much to fontify,
including new distinction between keywords and builtins.
(sh-mode): Use new features of `font-lock-defaults' and adaptation
to skeleton changes.
(sh-while): Fix csh, es & rc skeletons.
since `newline-and-indent' doesn't either. Don't turn a trailing
quoted tab into a space.
(sh-mode): Use new `skeleton-newline-indent-rigidly'.
(sh-set-shell): Make maximum font-locking also hightlight keywords
after ``' and `!'. (The latter is for ksh '93 but should't hurt other
shells.)
extended to cover over 15 shells. Most variables can now work as a
lookup table, and, unless set by user, do.
(sh-mode-syntax-table): Possibly multiple tables.
(sh-shell): Set initially so shell or other libraries may use features.
(sh-assignment-regexp): Replaces `sh-assignment-space'.
(sh-here-document-word): Set to more common "EOF".
(sh-variables): Changed semantics.
(sh-font-lock-keywords): Much nicer.
(sh-ancestor-alist, sh-alias-alist, sh-shells, sh-abbrevs)
(sh-dynamic-complete-functions, sh-require-final-newline)
(sh-comment-prefix, sh-indentation, sh-header-marker, sh-builtins)
(sh-leading-keywords): New variables.
(sh-use-prefix, sh-find-file-modifies, sh-query-for-magic)
(sh-magicless-file-regexp, magic-number-alist, sh-executable)
(sh-chmod-argument, sh-shell-is-csh, sh-tab-width)
(sh-sh-font-lock-keywords, sh-ksh-font-lock-keywords)
(sh-bash-font-lock-keywords, sh-csh-font-lock-keywords)
(sh-tcsh-font-lock-keywords): Variables deleted, see also executable.el.
(sh-mode): Shell dependent code moved to `sh-set-shell'.
(sh-feature, sh-abbrevs, sh-syntax-table, sh-append, sh-modify): New
functions.
(sh-execute-region): New command.
(sh-indexed-loop): Far more efficient code generated for sh.
(sh-repeat, sh-tmp-file, sh-while-getopts): New skeletons.
(sh-or-other-mode, define-sh-skeleton, sh-executable, sh-chmod)
(sh-query-for-variable): Command deleted.