[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Emacs-diffs] master f3c77d1 2/2: stash
From: |
Stefan Monnier |
Subject: |
Re: [Emacs-diffs] master f3c77d1 2/2: stash |
Date: |
Tue, 31 Jan 2017 08:56:30 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) |
Hmm? Did you really mean to commit this?
If so, there's a problem with the commit message,
Stefan
>>>>> "Dima" == Dima Kogan <address@hidden> writes:
> branch: master
> commit f3c77d11af65f3b319b1784b4c3cf08c51aa7997
> Author: Dima Kogan <address@hidden>
> Commit: Dima Kogan <address@hidden>
> stash
> ---
> lisp/comint.el | 6 +++++-
> lisp/emacs-lisp/debug.el | 54
> ++++++++++++++++++++++++++++++++++++++++++++++
> lisp/shell.el | 2 ++
> src/data.c | 50 ++++++++++++++++++++++++++++++++++++++++++
> src/fns.c | 4 ++++
> 5 files changed, 115 insertions(+), 1 deletion(-)
> diff --git a/lisp/comint.el b/lisp/comint.el
> index b23f72e..c82c3d0 100644
> --- a/lisp/comint.el
> +++ b/lisp/comint.el
> @@ -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)))
> diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el
> index cb77148..faa323f 100644
> --- a/lisp/emacs-lisp/debug.el
> +++ b/lisp/emacs-lisp/debug.el
> @@ -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 '()))
> diff --git a/lisp/shell.el b/lisp/shell.el
> index c8a8555..c7ba64e 100644
> --- a/lisp/shell.el
> +++ b/lisp/shell.el
> @@ -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\\)")
> diff --git a/src/data.c b/src/data.c
> index 8e07bf0..26ff994 100644
> --- a/src/data.c
> +++ b/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)
> {
> diff --git a/src/fns.c b/src/fns.c
> index 136a219..9eabc14 100644
> --- a/src/fns.c
> +++ b/src/fns.c
> @@ -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
> _______________________________________________
> Emacs-diffs mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/emacs-diffs
- Re: [Emacs-diffs] master f3c77d1 2/2: stash,
Stefan Monnier <=