a drop-in replacement for list-tags.
(find-tag-noselect): Recognize filenames as valid tags too.
(find-tag-file-order): New variable holds function to check for match
for a file name used as a tag.
(last-tag-file): New variable; stores the filename looked for via
find-tag family of functions.
(find-tag-in-order): If the tag is a file name, position at file beg.
(etags-recognize-tags-table): Added new var find-tag-file-order to
tags-table-format variables. Added tag-filename-match-p to the
list for find-tag-tag-order.
(tag-filename-match-p): New function.
(list-tags): Rewritten for speed.
(tags-list-functions-in-file): New subroutine for list-tags.
(tags-locate-file-in-tags-table): New function locates a
file in `tags-table-list'.
[MULTI_PERDISPLAY] (current_perdisplay): New var.
(find_active_event_queue): Search all perdisplays.
(init_perdisplay, wipe_perdisplay): New functions.
(init_keyboard): Move perdisplay initialization to init_perdisplay.
(syms_of_keyboard): Likewise.
(echo_prompt, echo_char, echo_dash, echo, cancel_echoing, echo_length)
(read_char, Fdiscard_input, stuff_buffered_input): Use current_perdisplay,
not get_perdisplay.
dotimes, plusp, minusp, pusnhew, second.
(completion-dolist): New macro. Use instead of dolist.
(completion-gensym-counter, completion-gensym): New variable and fn.
(locate-completion-entry-retry): Bind cmpl-entry, then use it.
(locate-completion-entry): Use completion-string, not string.
(add-completion-to-head, delete-completion):
Rename arg to completion-string.
(completions-list-return-value): Defvar'd and renamed
from return-completions.
(cmpl-preceding-syntax, cdabbrev-stop-point): Add defvars.
(delete-completion, check-completion-length): Fix message format.
(complete, add-completions-from-buffer, add-completions-from-c-buffer)
(save-completions-to-file): Likewise.
(x_get_foreign_selection): Pass display to
x_start_queueing_selection_events and x_stop_queueing_selection_events.
(x_reply_selection_request): Call x_start_queueing_selection_events
and x_stop_queueing_selection_events. Handle X protocol errors.
(command_loop_1): Not here.
(command_loop_1): Save original perdisplay in case we're already locked to a
particular display.
Move display-specific cleanup to end of main loop.
Use perdisplay to access prefix arg.
(Fcommand_execute, Fexecute_extended_command): Use perdisplay.