mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-08 15:35:02 +00:00
stash
This commit is contained in:
parent
3c941b9000
commit
f3c77d11af
@ -1879,6 +1879,7 @@ Similarly for Soar, Scheme, etc."
|
||||
(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)
|
||||
@ -1890,6 +1891,7 @@ Similarly for Soar, Scheme, etc."
|
||||
;; (+ 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))
|
||||
@ -1901,6 +1903,7 @@ Similarly for Soar, Scheme, etc."
|
||||
;; 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))
|
||||
@ -1909,6 +1912,7 @@ Similarly for Soar, Scheme, etc."
|
||||
(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 "")))))
|
||||
@ -2666,7 +2670,7 @@ This command is like `M-.' in bash."
|
||||
(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]*&" input-string)
|
||||
(when (string-match "[ \t\n]*&[ \t\n]*$" input-string)
|
||||
;; strip terminating '&'
|
||||
(setq input-string (substring input-string 0 (match-beginning 0))))
|
||||
(insert (comint-arguments input-string index index)))
|
||||
|
@ -816,6 +816,60 @@ Redefining FUNCTION also cancels it."
|
||||
'((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 '()))
|
||||
|
@ -1000,6 +1000,8 @@ command again."
|
||||
(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\\)")
|
||||
|
50
src/data.c
50
src/data.c
@ -1304,6 +1304,56 @@ set_internal (Lisp_Object symbol, Lisp_Object newval, Lisp_Object where,
|
||||
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)
|
||||
{
|
||||
|
@ -5120,6 +5120,10 @@ On some platforms, file selection dialogs are also enabled if this is
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user