Use `insert' instead of `insert-before-markers'.
(comint-output-filter): Use `insert' instead of `insert-before-markers'.
Extend comint-last-output-overlay when necessary since we can't rely on
insert-before-markers to do it.
(comint-last-prompt-overlay): New variables.
(comint-output-filter): Implement prompt highlighting.
(comint-snapshot-last-prompt): New function.
(comint-send-input): Snapshot the last prompt.
Use comint-highlight-input-face.
(comint-highlight-input-face): Renamed from `comint-highlight-face'.
Use defface instead of defcustom.
(send-invisible, comint-send-eof): Snapshot the last prompt.
(comint-delchar-or-maybe-eof): Use comint-send-eof.
(comint-mode): Make `comint-last-prompt-overlay' buffer-local.
(comint-prompt-regexp, comint-get-old-input): Document dependence on
comint-use-prompt-regexp-instead-of-fields.
(comint-send-input): Add `input' field property to stuff we send to
the process, if comint-use-prompt-regexp-instead-of-fields is nil.
(comint-output-filter): Add `output' field property to process
output, if comint-use-prompt-regexp-instead-of-fields is nil.
(comint-replace-by-expanded-history)
(comint-get-old-input-default, comint-show-output)
(comint-backward-matching-input, comint-forward-matching-input)
(comint-next-prompt, comint-previous-prompt): Use field
properties if comint-use-prompt-regexp-instead-of-fields is nil.
(comint-line-beginning-position): New function.
(comint-bol): Use comint-line-beginning-position. Make ARG optional.
(comint-replace-by-expanded-history-before-point): Use
comint-line-beginning-position and line-end-position.
(comint-last-output-overlay): New variable.
(comint-mode): Make `comint-last-output-overlay' buffer-local.
(comint-read-input-ring): Doc change; use
comint-input-ring-separator when reading file.
(comint-write-input-ring): Use comint-input-ring-separator when writing file.
comint-next-matching-input-from-input to C-c M-r, and
comint-previous-matching-input-from-input to C-c M-s.
Move comint-get-next-from-history to C-c C-x.
(comint-accumulate, comint-goto-process-mark): Likewise.
(comint-set-process-mark, comint-bol-or-process-mark): Likewise.
(comint-save-input-ring-index): New permanent local var.
(comint-accum-marker): Likewise.
(comint-send-input): Clear comint-input-ring-index
and comint-accum-marker.
(comint-previous-matching-input-from-input):
Use comint-accum-marker if set.
(comint-previous-matching-input): Likewise.
(comint-mode): Make those vars buffer-local and initialize.
(comint-mode-map): Make C-c C-a run comint-bol-or-process-mark.
Bind C-c SPC to comint-accumulate. Bind C-c C-q to
comint-get-next-from-history.
Don't display a message about doing history expansion.
(comint-replace-by-expanded-history-before-point): New arg START.
(comint-send-input): Pass START to comint-replace-by-expanded-history.
2. Don't bind file-name-handler-alist, it can break dir tracking.
3. Expand ^ in input only at boi.
4. Use new comint-file-name-regexp as source of valid chars in filenames.
(omint-dynamic-simple-complete)
(comint-dynamic-list-filename-completions) [ms-dos, windows-nt]:
Set completion-ignore-case to t for these systems.
(comint-substitute-in-file-name): New function.
(comint-match-partial-filename): Use comint-substitute-in-file-name
to handle system-specific syntax.
new functions comint-quote-filename and comint-unquote-filename, using
new variable comint-file-name-quote-list.
Changed comint-word, comint-match-partial-filename and
comint-dynamic-list-filename-completions to support character quoting.
Made comint-dynamic-complete-as-filename and comint-dynamic-simple-complete use
strings of comint-completion-addsuffix for completion, if a cons pair.
comint-last-input-end to valid markers.
(comint-send-input): Use comint-output-filter to run
functions on comint-output-filter-functions.
(comint-kill-output): Use delete-region to remove, and
comint-output-filter to insert.
comint-dynamic-complete-filename-command,
comint-dynamic-complete-command-command,
comint-get-current-command): Deleted.
(comint-input-sentinel-functions): Replaces comint-input-sentinel.
(comint-input-sentinel): Deleted.
(comint-send-input): Run hooks on comint-input-sentinel-functions.
(comint-output-sentinel-functions): Rename from comint-output-filter-functions.
(comint-dynamic-complete-functions): New variable.
(comint-mode-map): Removed menu-bar for command and variable completion.
(comint-exec-1): Add to environment by hand; avoids using setenv.
(comint-replace-by-expanded-history-before-point):
Renamed from comint-replace-by-expanded-history.
(comint-replace-by-expanded-history): New wrapper definition.
(comint-word): New function.
(comint-match-partial-filename): Use it.
(comint-after-partial-filename, comint-match-partial-variable,
comint-dynamic-complete-variable): Deleted.
(comint-dynamic-complete): Run hooks on comint-dynamic-complete-functions.
(comint-dynamic-complete-as-filename): Renamed from
function comint-dynamic-complete-filename.
(comint-dynamic-complete-filename): New wrapper definition.
(comint-dynamic-simple-complete): Return a symbol representing completion.
and detect whether it has any quotes.
(comint-delim-arg): Don't check for quotes. Use loop, not regexps.
(comint-delimiter-argument-list): List now has chars, not strings.
(comint-replace-by-expanded-history): New arg SILENT.
(comint-send-input): Pass t as new arg.
(comint-mode-map): Put comint-show-output on C-M-l.
(comint-preinput-scroll-to-bottom): Removed calls to
window-minibuffer-p and 'not-minibuf arg to walk-windows.
Removed mouse-yank-at-click from command list and doc string.
Removed duplicate test for comint-scroll-to-bottom-on-input (scroll).
Removed test for 'this within walk-windows code.
(comint-postoutput-scroll-to-bottom):
Don't select a different buffer permanently.
(comint-prompt-regexp): Fixed documentation.
(comint-replace-by-expanded-history):
Use skip-chars-forward to advance in main loop.
to set HISTORY, even if comint-input-autoexpand is not `history'.
When comint-input-autoexpand is `history', undo part of prev change:
do put INPUT back in the buffer in place of expanded hist.
(comint-mode): Use pre-command-hook, not before-change-function.
(comint-preinput-scroll-to-bottom): Take no arguments.
(comint-output-filter-functions): Renamed from comint-output-filter-hook.
(comint-output-filter): Pass STRING as arg to output hook functions.
(comint-preinput-scroll-to-bottom): Take an arg.
Move point to new process mark if it was at the old one.
Scroll so only if point is at or after the process mark.
When scrolling, put end of text on bottom line, regardless of point.
Renamed from comint-after-partial-pathname-command.
(comint-match-partial-file-name, comint-after-partial-file-name):
Renamed from comint-match-partial-pathname, etc.
(comint-last-output-start): New variable to record
where most recent process output started from.
(comint-mode): Initialise it.
(comint-output-filter): Set it.
(comint-previous-matching-input-string): Moved to
comint-previous-matching-input-position.
(comint-previous-matching-input-string): Use it.
(comint-search-arg, comint-search-start,
comint-previous-input-string): New subroutines.
(comint-previous-input, comint-next-input,
comint-previous-matching-input, comint-next-matching-input,
comint-previous-matching-input-from-input,
comint-next-matching-input-from-input): Use them.
(comint-mode-map): Added signal menu-bar. Moved
comint-backward/forward-matching-input to output menu-bar, since
they move within the buffer rather than do input.
(comint-send-input, comint-after-pmark-p,
comint-kill-input, comint-proc-query): Removed serialisation of
obtaining the process mark's marker-position.
Commented out comint-load-hooks.
(comint-dynamic-simple-complete): New subroutine.
(comint-dynamic-complete-filename-command): New variable.
(comint-after-partial-pathname-command): New variable.
(comint-after-partial-pathname): New subroutine.
(comint-dynamic-complete): Use them.
(comint-mode): Make them local.
Renamed comint-dynamic-complete-command to
comint-dynamic-complete-command-command for consistency.
Renamed comint-file-name-addsuffix/autolist/recexact to
comint-completion-addsuffix/autolist/recexact for consistency.
(comint-replace-by-expanded-history): Check if input
ring size is not big enough for relative reference.
(comint-read-input-ring, comint-input-ring-file-name):
From shell.el.
(shell-write-input-ring): New subroutine.
(comint-file-name-prefix): New variable.
(comint-directory): New inline subroutine.
(comint-dynamic-complete-filename, comint-dynamic-complete-variable,
comint-dynamic-list-filename-completions): Use it.
(comint-dynamic-complete-filename,
comint-dynamic-complete-variable,
comint-dynamic-list-filename-completions): Make sure local
completion-ignore-case is nil.
(comint-next-prompt, comint-previous-prompt): Use
paragraph-start and paragraph motion commands rather than
re-search-forward and re-search-backward commands.
(comint-dynamic-list-input-ring,
comint-previous-matching-input-string): Use ring-empty-p rather
than zerop and ring-length.
(comint-input-ignoredups): New variable.
(comint-send-input, shell-read-input-ring): Use it.
(comint-mode): Make comint-input-ignoredups local. Doc fix.
(comint-scroll-to-bottom-on-input): New variable.
(comint-scroll-to-bottom-on-output): New variable.
(comint-scroll-show-maximum-output): New variable.
(comint-output-filter-hook): New variable, defaults to
comint-postoutput-scroll-to-bottom.
(comint-output-filter): Renamed from comint-filter
for consistency. Now calls comint-output-filter-hook.
(comint-preinput-scroll-to-bottom): New subroutine.
(comint-postoutput-scroll-to-bottom): New subroutine.
(comint-show-maximum-output): New command.
(comint-copy-old-input): New command.
(comint-send-input): Run comint-output-filter-hook if
necessary as a kludge to prevent messy redisplays.
(comint-mode-map): Added comint-show-maximum-output to
C-c C-e and menu-bar output, and comint-copy-old-input to C-c C-i
and menu-bar input.
(comint-mode): Make local variables
comint-scroll-to-bottom-on-input, before-change-function,
comint-scroll-to-bottom-on-output, comint-scroll-show-maximum-output,
and comint-output-filter-hook.
(comint-version): Deleted--no need for separate version.
(comint-input-ring-index): Make this a permanent local.
(comint-mode): Don't alter comint-input-ring-index or comint-input-ring
if already set meaningfully.
(comint-mode-map): Added keys M-R/S for
comint-previous/next-matching-input-from-input and to completion
menu-bar. Added comint-forward/backward-matching-input and
comint-previous/next-matching-input to completion menu-bar.
(comint-mode): Doc fix for functionality.
(comint-exec-1): Uses setenv.
(comint-update-env): Removed.
(comint-input-ring-size): Incremented to 32, as with
command history.
(comint-dynamic-list-input-ring): Check for zero
length ring. Use ring length, not ring size, when generating
list. Use buffer " *Input History*".
(comint-previous-matching-input-string): Check for zero-length ring.
Check last item in case at end of cycle and it's a match.
(comint-searching-input-ring): New subroutine.
(comint-regexp-arg): New subroutine.
(comint-previous-matching-input-from-input): New command.
(comint-next-matching-input-from-input): New command.
(comint-replace-by-expanded-history): Fix for matching
inside quotes. Fix to allow argument subrange specifiers. Fix to
identify and reject absolute input number references.
(comint-within-quotes): New subroutine.
(comint-how-many-region): New subroutine.
(comint-args): New subroutine.
(comint-delim-arg): New subroutine.
(comint-arguments): New subroutine.
(comint-delimiter-argument-list): New variable.
(comint-send-input): Inserts input arguments into ring
separated by single spaces.
(comint-filter): Checks the buffer's process to make
sure it's still there. Otherwise, set-buffer will fail.
(comint-backward-matching-input): New command.
(comint-forward-matching-input): New command.
(comint-next-prompt, comint-previous-prompt):
Error if reach beg/end of buffer.
(comint-dynamic-complete): Fix for absolute input
number references.
(comint-dynamic-complete-filename): Changed listings
function to comint-dynamic-list-filename-completions. Uses
file-directory-p rather than string-match to test for directories.
(comint-dynamic-list-completions): Changed to list the
list of completions supplied as the function argument. Use buffer
" *Completions*".
(comint-match-partial-pathname): New subroutine.
(comint-dynamic-complete-variable): New command.
(comint-dynamic-list-filename-completions): New function.
(comint-previous-input):
Don't use replace-match; just insert before deleting.
(comint-magic-space): Use self-insert command.
(comint-history-file-name): New variable.
(comint-mode): Initialize comint-input-ring before
running comint-mode-hook.
(comint-input-autoexpand): New variable.
(comint-dynamic-complete-command): New variable.
(comint-get-current-command): New variable.
(comint-read-input-ring): New function.
(comint-send-input): Handle history expansion.
(comint-input-sentinel): Doc fix.
(comint-mode-map): Added key binding for C-c C-h.
Added menu bars for completion, input and output.
(comint-dynamic-list-input-ring): New function.
(comint-previous-input-string): New subroutine.
(comint-previous-input): Use it.
(comint-previous-matching-input-string): New subroutine.
(comint-previous-matching-input): Use it.
(comint-replace-by-expanded-history): New command.
(comint-magic-space): New command.
(comint-replace-by-expanded-filename): Now replaces
expanded match for a filename, and then calls filename completion
comint-dynamic-complete-filename to do file name completion.
(comint-kill-output): Don't kill prompt.
(comint-show-output): Don't move point if it's
visible where it is, and if point is moved, put it after prompt.
(comint-dynamic-complete): Totally new definition.
(comint-dynamic-complete-filename): New name for old
function comint-dynamic-complete, completes files and lists
candidates, souped up for configurability.
(comint-dynamic-complete-variable): New command.
(comint-file-name-autolist): New variable.
(comint-file-name-addsuffix): New variable,
(comint-file-name-recexact): New variable.
* vip.el (vip-escape-to-emacs, vip-prefix-arg-value,
vip-prefix-arg-com): Use unread-command-event instead of
unread-command-char; respect its new semantics.
* comint.el (comint-dynamic-list-completions): Same.