(let ((echo-len (- comint-last-input-end
comint-last-input-start)))
;; Wait for all input to be echoed:
-
(while (and (> (+ comint-last-input-end echo-len)
(point-max))
(accept-process-output proc)
;; (+ comint-last-input-start
;; (- (point-max) comint-last-input-end))
nil comint-last-input-end (point-max)))))
-
(if (and
(<= (+ comint-last-input-end echo-len)
(point-max))
;; Certain parts of the text to be deleted may have
;; been mistaken for prompts. We have to prevent
;; problems when `comint-prompt-read-only' is non-nil.
-
(let ((inhibit-read-only t))
(delete-region comint-last-input-end
(+ comint-last-input-end echo-len))
(goto-char comint-last-input-end)
(comint-update-fence)))))))
-
;; This used to call comint-output-filter-functions,
;; but that scrolled the buffer in undesirable ways.
(run-hook-with-args 'comint-output-filter-functions "")))))
(null (get-char-property (setq bof (field-beginning)) 'field)))
(field-string-no-properties bof)
(comint-bol)
- (buffer-substring-no-properties (point) (line-end-position)))))
+ (buffer-substring-no-properties (point)
+ (if comint-use-prompt-regexp
+ (line-end-position)
+ (field-end))))))
(defun comint-copy-old-input ()
"Insert after prompt old input at point as new input to be edited.
(set-marker comint-insert-previous-argument-last-start-pos (point))
;; Insert the argument.
(let ((input-string (comint-previous-input-string 0)))
- (when (string-match "[ \t\n]*&[ \t\n]*$" input-string)
+ (when (string-match "[ \t\n]*&" input-string)
;; strip terminating '&'
(setq input-string (substring input-string 0 (match-beginning 0))))
(insert (comint-arguments input-string index index)))
'((depth . -100)))
function)
-;;;###autoload
-;; (defun debug-on-set (symbol)
-;; "Request FUNCTION to invoke debugger each time it is called.
-
-;; When called interactively, prompt for FUNCTION in the minibuffer.
-
-;; This works by modifying the definition of FUNCTION. If you tell the
-;; debugger to continue, FUNCTION's execution proceeds. If FUNCTION is a
-;; normal function or a macro written in Lisp, you can also step through
-;; its execution. FUNCTION can also be a primitive that is not a special
-;; form, in which case stepping is not possible. Break-on-entry for
-;; primitive functions only works when that function is called from Lisp.
-
-;; Use \\[cancel-debug-on-entry] to cancel the effect of this command.
-;; Redefining FUNCTION also cancels it."
-;; (interactive
-;; (let ((v (variable-at-point))
-;; (enable-recursive-minibuffers t)
-;; (orig-buffer (current-buffer))
-;; val)
-;; (setq val (completing-read
-;; (if (symbolp v)
-;; (format
-;; "Debug on set to symbol (default %s): " v)
-;; "Debug on set to symbol: ")
-;; #'help--symbol-completion-table
-;; (lambda (vv)
-;; ;; In case the variable only exists in the buffer
-;; ;; the command we switch back to that buffer before
-;; ;; we examine the variable.
-;; (with-current-buffer orig-buffer
-;; (or (get vv 'variable-documentation)
-;; (and (boundp vv) (not (keywordp vv))))))
-;; t nil nil
-;; (if (symbolp v) (symbol-name v))))
-;; (list (if (equal val "")
-;; v (intern val)))))
-
-
-
-;; (interactive
-;; (let* ((var-default (variable-at-point))
-;; (var (completing-read
-;; (if var-default
-;; (format "Debug on set to symbol (default %s): " var-default)
-;; "Debug on set to symbol: ")
-;; nil
-;; #'boundp
-;; t nil nil (symbol-name var-default))))
-;; (list (if (equal var "") var-default (intern var)))))
-;; (advice-add function :before #'debug--implement-debug-on-entry
-;; '((depth . -100)))
-;; function)
-
(defun debug--function-list ()
"List of functions currently set for debug on entry."
(let ((funs '()))
(let ((pt (point))
(regexp
(concat
- ;; comint-process-echoes is the thing that breaks the
- ;; throbber
(if comint-process-echoes
;; Skip command echo if the process echoes
(concat "\\(" (regexp-quote shell-dirstack-query) "\n\\)")
default: emacs_abort ();
}
-
- const char* symname = SDATA(sym->name);
-
- if( EQ(Vwatch_object, symbol) )
- {
- static int nest_level = 0;
- if(nest_level++ == 0)
- {
- switch(sym->redirect)
- {
- case SYMBOL_PLAINVAL:
- {
- AUTO_STRING (format, "Setting symbol '%s'; redirect: SYMBOL_PLAINVAL");
- CALLN (Fmessage, format, SYMBOL_NAME (symbol));
- break;
- }
- case SYMBOL_VARALIAS:
- {
- AUTO_STRING (format, "Setting symbol '%s'; redirect: SYMBOL_VARALIAS");
- CALLN (Fmessage, format, SYMBOL_NAME (symbol));
- break;
- }
- case SYMBOL_LOCALIZED:
- {
- AUTO_STRING (format, "Setting symbol '%s'; redirect: SYMBOL_LOCALIZED");
- CALLN (Fmessage, format, SYMBOL_NAME (symbol));
- break;
- }
- case SYMBOL_FORWARDED:
- {
- AUTO_STRING (format, "Setting symbol '%s'; redirect: SYMBOL_FORWARDED");
- CALLN (Fmessage, format, SYMBOL_NAME (symbol));
- break;
- }
-
- default:
- {
- AUTO_STRING (format, "Setting symbol '%s'; redirect: UNKNOWN");
- CALLN (Fmessage, format, SYMBOL_NAME (symbol));
- break;
- }
- }
- }
- nest_level--;
- }
-
-
-
-
-
start:
switch (sym->redirect)
{
non-nil. */);
use_dialog_box = 1;
- DEFVAR_LISP("watch-object", Vwatch_object,
- doc: /* Symbol to watch. */);
- Vwatch_object = Qnil;
-
DEFVAR_BOOL ("use-file-dialog", use_file_dialog,
doc: /* Non-nil means mouse commands use a file dialog to ask for files.
This applies to commands from menus and tool bar buttons even when