* etags.el (tag-lines-already-matched): Remove defvar.
(initialize-new-tags-table): Don't make that var local.
(tag-lines-already-matched): Add docless defvar near find-tag-in-order
defun; this is a global state variable for that one function.
(find-tag-in-order): Move clearing of tag-lines-already-matched out of
loop. Make it a list of markers and search it with member; it is now
global, not buffer-local in the tags table, and records all matches in
any tags table during a single find-tag loop. When we run out of
matches, clear it and null out the markers.
(simula-substatement-offset, simula-continued-statement-offset)
(simula-label-offset, simula-if-indent, simula-inspect-indent)
(simula-electric-indent, simula-abbrev-keyword, simula-abbrev-stdproc):
Added default constants.
(simula-emacs-features): new constant to hold information
on which flavor if emacs is running (from cc-mode.el).
(simula-mode-menu): Menu definition for Lucid Emacs
(simula-mode-map): Bound new command simula-indent-exp to C-M-q
and added lots of commands to [menu-bar].
(simula-popup-menu): New function for Lucid menus.
(simula-keep-region-active): New function for Lucid menus.
(simula-indent-exp): New command that indents a whole expression.
(simula-indent-line): New strategies for finding the right amount to indent.
(simula-skip-comment-backward): Added optional parameter stop-at-end
to stop at the first END statement.
(simula-expand-stdproc): Added abbrev expansion to verbatim copy
of abbrev table, same for function simula-expand-keyword.
(simula-search-backward): Added Doc string, and lots of error checking.
(simula-search-forward): Added Doc string, and lots of error checking.
Added hilit19 config code.
(simula-version): New variable and function to report value.
(simula-submit-bug-report): New function to submit bug report.
(f90-keywords-level-3-re): Added operator and result.
(f90-match-end, f90-looking-at-program-block-start): Fixed bug
with false matching in comments/strings.
(f90-looking-at-program-block-start, f90-imenu-generic-expression):
Added knowledge of pure and extrinsic subroutines.
(f90-abbrev-start): Fixed bug using next-command-event.
(f90-keywords-level-3-re): Added keyword "nullify".
(f90-else-like-re): Fixed indentation of case() statements.
(f90-font-lock-keywords-2): Changed highlighting of case() statements.
(electric-pascal-tab): Never indented a line when
pascal-tab-always-indent was set to nil.
(pascal-indent-case): Now locates the end of a case-statement correctly.
(f90-face-*): Reinstalled code deleted on Sep 22.
(f90-hilit-patterns): New variable.
(f90-mode): Call hilit-set-mode-patterns if defined.
(f90-auto-hilit19): New variable.
(f90-fill-region): Bind f90-auto-hilit19 to nil.
(f90-update-line): Rehilight if appropriate.
(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.
which is valid on MS-DOS.
(c-macro-expansion): Do not rely on ``/tmp/'' being present; use
environment variables as alternatives (MSDOS). Use
`shell-file-name' rather than ``sh''. Redirect `stderr' with
`call-process-region' option, not from the shell. Handle shells
which don't return exit code from `cpp' (MSDOS). Put messages
from `cpp' inside a comment, to avoid messing up syntax highlighting.
(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.
(executable-set-magic): Use new name `executable'. Fix messages.
Add save-excursion. Don't test this-command--use interactive
to get the information. Simplify considerably.
(compilation-sentinel, compile-internal): Use it.
(compilation-exit-message-function): Doc fix for protocol change: take
process status and exit-code args instead of process object.
(grep): Use new protocol for compilation-exit-message-function.
processes: do relevant parts of compilation-sentinel after the
process exits; make modeline during and after compilation be
similar to what compilation-sentinel displays.
for the "^\t+#" element.
Add faces to menu only if window-system.
(makefile-mode): Do not check if makefile-define-space-face is
defined. Call it only if window-system.
which were obviously never tested or even examined closely before
being installed.
(find-tag-file-order): Variable removed.
(find-tag-noselect): Remove gratuitously added variable SEARCH-TAG and
bogus clobbering of find-tag-order for patterns ending in dot (serious
braindamage here).
(find-tag-in-order): Remove gratuitously added variable TAGS-TABLE-FILE.
Remove variable MATCH-TYPE and code testing it for stupid special case.
(etags-recognize-tags-table): Put tag-exact-file-name-match-p first in
find-tag-tag-order list. Don't set bogus find-tag-file-order variable.
(etags-snarf-tag): Notice file name match and return tag info with t
in place of tag text.
(etags-goto-tag-location): If (car TAG-INFO) is t, go directly to
the specified location.
(tag-exact-file-name-match-p): Renamed from tag-filename-match-p, and fixed.
(tags-table-files): Doc fix: names are returned unexpanded.
(etags-tags-table-files): Don't expand file names.
(tags-table-including, next-file): Expand result of (tags-table-files).
(tags-complete-tags-table-file): New function, helper for interactive
spec of list-tags.
(list-tags): Revert to original code, but use that function to lazify
the completion table.
(tags-list-functions-in-file, tags-locate-file-in-tags-table):
Functions removed.
(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.
(ada-mode): Support new font-lock-mode.
(ada-format-paramlist): Changed all `accept' to `access'.
(ada-insert-paramlist): Changed all `accept' to `access'.
(ada-in-comment-p): Use standard Emacs way `parse-partial-sexp'.
(ada-font-lock-keywords-1): Change order of some alternatives.
Much improved and quicker highlighting using font-lock.
Support for hilit19 removed.
Support for imenu added.
Changed indentation for continue statements.
Added treatment of preprocessor directives.
(f90-directive-comment-re) is now a regular expression.
Many bug fixes.
(compilation-sentinel): If compilation-exit-message-function is non-nil,
call it to produce messages for buffer and mode line.
(grep): Use that variable to produce snazzier messages.
(makefile-define-space-face): New function.
(makefile-tab-face): Variable deleted.
(makefile-define-tab-face): Function deleted.
(makefile-font-lock-keywords): Highlight leading spaces, not tabs.
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.)
(ada-end-stmt-re): Corrected serious pb of wrong parentheses.
(ada-subprog-start-re): Removed 'body' from the list.
(ada-format-paramlist): Simplified a regexp.
(ada-indent-current): On first line of the buffer, indent to column 0.
Don't reindent if new position is the same as the old one. Thus, a
correcly indended line is not modified.
(ada-get-indent-subprog): Simplified a regexp.
(ada-goto-matching-decl-start): Distinguish between normal type
declaration and protected types, which are more like procedures.
(ada-remove-trailing-spaces): Use save-match-data, save-restriction
and widen when removing whitespace.
(ada-font-lock-keywords-1): Add 'pragma' as keyword.
(ada-font-lock-keywords-2): Allow *qualified* idents after 'end'.
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.
abbreviate-file-name to it and then use its directory part as the first
search path element, searching for its nondirectory part.
Fix prompting code not to use a free variable.
(compilation-parse-errors, compile-abbreviate-directory): Use
abbreviate-file-name on directories.
about setup; correct history for a file that actually IS in
Emacs 19.29; update list of known bugs.
(all functions): inititialize all local variables explicitely to 'nil'.
(ada-font-lock-keywords): initialized according to new user option
`font-lock-maximum-decoration'.
(ada-ident-re): new regexp for Ada identifiers.
(ada-block-start-re): "record" may be preceded by one or more
occurencies of "limited", "abstract", or "tagged".
(ada-end-stmt-re): added "separate" body parts, "else", and
"package <Id> is".
(ada-subprogram-start-re): added "entry", "protected" and
"package body"
(ada-indent-function): handle "elsif" the same way as "if", added
"separate" for no indent.
(ada-get-indent-type): if "type ... is .." is followed by code on
the same line, it is a broken statement. Test it.
(ada-check-defun-name): check for "protected" records.
(ada-goto-matching-decl-start): use of ada-ident-re.
(ada-goto-matching-start): extend regexp for "protected" record.
(ada-in-limit-line): renamed from in-limit-line. Don't use
count-lines, but test if beginning-of-line/end-of-line puts us
to bob/eob.
(ada-goto-previous-nonblank-line): save a beginning-of-line
statement, as we already are there.
(ada-complete-type): removed.
(ada-tabsize): removed.
(keymap): use C-M-a and C-M-e for proc/func movement. No
keybinding anymore for next/prev-package.
(ada-font-lock-keywords-[1|2]): add protected records. "when" removed
from 'reference'-face.
(initial comments): updated CREDITS list.
(ada-add-ada-menu): capitalized menu entries. Added menu statement
needed for XEmacs.
changed all Ada94 to Ada95.
(ada-xemacs): new function, detect if we are
running on XEmacs. Ada keymap definition and menus use it.
(ada-create-syntax-table): corrected comments explaining use of 2nd
syntax table. Added creation of ada-mode-symbol-syntax-table
with '_' as word constituent.
(ada-adjust-case): add test, if symbol is preceeded by a "'".
If true, change case according to ada-case-attribute.
(ada-which-function-are-we-in): new routine. Save name of the current
function in the old buffer; we can place cursor now at the same
function in the new buffer using find-file.
(ada-make-body): new function. Generates body stubs if the body
did not exist yet and you switch to it by find-file.
(ada-gen-treat-proc): complete rewrite for ada-make-body.
(ada-mode): two doc lines about the above extension.
(keymap definition): remove 4th parameter in call to
`substitute-key-definition' to make XEmacs happy.
(ada-adjust-case-region, ada-move-to-start, ada-move-to-end,
ada-indent-newline-indent, ada-format-paramlist): switch syntax
tables, protect switching of syntax tables with unwind-protect.
(ada-in-open-paren-p): replace user option
`ada-search-paren-line-count-limit' by
`ada-search-paren-char-count-limit'.
(ada-case-attribute): new user option, but not yet the functionality.
(ada-krunch-args): initialized to 0 exploiting the new capability of
'gnatk8' as of gnat-2.0.
(ada-make-filename-from-adaname): remove downcasing and replacement
of dots. This is done in external program gnatk8 (gnat-2.0).
(ada-in-open-paren-p): complete rewrite for speed-up.
(ada-search-ignore-string-comment): ignore # as a string terminator
in all searches.
(ada-add-ada-menu): use real variables instead of t for invoking
'easymenu'
(require 'easymenu).
(imenu-create-ada-index): we accept forward definitions again.
(ada-indent-region): catch errors, simplified code.
(compilation-parse-errors): Don't store the beginning of the line
containing the end of the error-regexp match. Instead, store the beginning
of the line containing the start of the match, unless the match starts
with a newline, in which case the beginning of the next line.