bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#14662: 24.3.50; add-function problem


From: Gerard Brunick
Subject: bug#14662: 24.3.50; add-function problem
Date: Tue, 18 Jun 2013 21:27:17 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130510 Thunderbird/17.0.6

There seems to be a problem with add-function:

1. emacs -Q
2. M-x run-python
3. Eval "(comint-redirect-send-command-to-process "print 'test'" "test" "*Python*" t)" and observe that there are no errors. 4. Copy the text of comint-redirect-send-command-to-process from comint.el to the scratch buffer, and eval-defun it. 5. Now eval "(comint-redirect-send-command-to-process "print 'test'" "test" "*Python*" t)" again and suddenly I get:

Debugger entered--Lisp error: (void-variable v)
  (process-filter v)
  (lambda nil (process-filter v))()
advice--add-function(:around ((lambda nil (process-filter v)) lambda (gv--val) (set-process-filter v gv--val)) comint-redirect-filter nil) (save-current-buffer (set-buffer process-buffer) (and comint-redirect-perform-sanity-check (save-excursion (goto-char (point-max)) (or (re-search-backward comint-prompt-regexp nil t) (error "No prompt found or `comint-prompt-regexp' not set properly")))) (comint-redirect-setup output-buffer (current-buffer) comint-prompt-regexp echo) (advice--add-function :around (let* ((v proc)) (cons (function (lambda nil (process-filter v))) (function (lambda (gv--val) (set-process-filter v gv--val))))) (function comint-redirect-filter) nil) (process-send-string (current-buffer) (concat command "\n")) (or no-display (display-buffer (get-buffer-create (if (listp output-buffer) (car output-buffer) output-buffer))))) (let* ((process-buffer (if (processp process) (process-buffer process) process)) (proc (get-buffer-process process-buffer))) (save-current-buffer (set-buffer process-buffer) (and comint-redirect-perform-sanity-check (save-excursion (goto-char (point-max)) (or (re-search-backward comint-prompt-regexp nil t) (error "No prompt found or `comint-prompt-regexp' not set properly")))) (comint-redirect-setup output-buffer (current-buffer) comint-prompt-regexp echo) (advice--add-function :around (let* ((v proc)) (cons (function (lambda nil (process-filter v))) (function (lambda (gv--val) (set-process-filter v gv--val))))) (function comint-redirect-filter) nil) (process-send-string (current-buffer) (concat command "\n")) (or no-display (display-buffer (get-buffer-create (if (listp output-buffer) (car output-buffer) output-buffer)))))) comint-redirect-send-command-to-process("print 'test'" "test" "*Python*" t) eval((comint-redirect-send-command-to-process "print 'test'" "test" "*Python*" t) nil)
  eval-last-sexp-1(nil)
  eval-last-sexp(nil)
  call-interactively(eval-last-sexp nil nil)
  command-execute(eval-last-sexp)

If I omit step 4 and eval-defun the code right in comint.el, I don't see this behaviour. I assume that the emacs notices nothing has changed and ignores the eval-defun. This is somehow related to the compile-time macro expansion in add-function.

Other configuration info follows:

In GNU Emacs 24.3.50.1 (x86_64-pc-linux-gnu, GTK+ Version 3.4.2)
 of 2013-06-11 on papaya, modified by Debian
 (emacs-snapshot package, version 2:20130611-1~ppa1~precise1)
Windowing system distributor `The X.Org Foundation', version 11.0.11103000
System Description:    Ubuntu 12.04.2 LTS

Configured using:
 `configure --build x86_64-linux-gnu --host x86_64-linux-gnu
 --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/lib
 --localstatedir=/var --infodir=/usr/share/info --mandir=/usr/share/man
 --with-pop=yes
 
--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/24.3.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3.50/site-lisp:/usr/share/emacs/site-lisp
 --without-compress-info --with-crt-dir=/usr/lib/x86_64-linux-gnu/
 --with-x=yes --with-x-toolkit=gtk3 --with-imagemagick=yes
 CFLAGS='-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2'
 CPPFLAGS='-D_FORTIFY_SOURCE=2' LDFLAGS='-g -Wl,--as-needed
 -znocombreloc''

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  eldoc-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<left> <left> <left> <left> <right> i <S-backspace>
* <right> <right> <right> <right> <right> <right> *
C-e C-x e C-x C-e q <left> <left> <left> <left> <left>
<left> <left> <left> <left> <left> <left> <left> C-x
o C-x b <up> <up> <up> <down> <down> <down> <up> C-k
<tab> q <escape> <escape> C-g <up> <down> C-x o h C-h
C-h q <backspace> <backspace> P C-e C-x C-e <left>
<right> <right> <right> <right> <down> C-x o <up> <down>
C-x b <return> <down> <left> <up> <S-down> <S-down>
<S-down> <S-down> <S-down> <up> <down> C-M-. <escape>
<escape> <escape> <escape> <up> C-u <up> <down> C-S-x
<up> C-M-x C-x o C-x e C-x C-e <up> <down> C-x C-e
C-x o C-x b <return> <up> <up> <S-down> <S-down> <S-down>
<S-down> <S-down> <S-down> <S-down> <S-down> <S-down>
<S-down> <S-down> <S-down> <S-down> <S-down> <S-down>
<S-down> <S-down> <S-down> <S-down> <S-down> <S-down>
<S-down> <S-down> <S-down> <S-down> <S-down> <S-down>
<S-down> <S-down> <S-down> <S-down> <S-down> <S-down>
<S-down> <S-down> <S-down> <S-down> <S-down> <S-down>
<S-down> <S-down> <S-down> <S-down> <S-down> <S-down>
<S-up> <S-up> M-w <help-echo> C-x o <help-echo> <return>
<return> C-v C-y k <backspace> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <down>
<down> <down> <down> <down> <down> <down> <down> <up>
<up> <up> <down> <return> C-M-x <up> <up> <up> <up>
<left> C-x e C-x C-e <help-echo> q <help-echo> C-x
o <help-echo> <up> C-x 0 <help-echo> M-x <help-echo>
b u g - r e <tab> <backspace> <backspace> <backspace>
<backspace> <backspace> <backspace> <backspace> <backspace>
p o <tab> <help-echo> <backspace> <backspace> <backspace>
<tab> <backspace> <backspace> <backspace> <backspace>
<backspace> <backspace> <backspace> <backspace> <backspace>
<backspace> <backspace> <backspace> <backspace> <backspace>
r e p o r <tab> <return>

Recent messages:
kmacro-call-macro: No kbd macro has been defined
#<window 0x11a1ab0 on test> [2 times]
Mark set
Saved text from "(defun comint-redirect-send-command-to-p"
scroll-up-command: End of buffer
Mark set
comint-redirect-send-command-to-process
kmacro-call-macro: No kbd macro has been defined
Entering debugger...
Back to top level.

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils gv etags nadvice kmacro debug eldoc jka-compr
find-func help-mode help-fns compile python rx easymenu comint ring
ansi-color time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel
x-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list
newcomment lisp-mode prog-mode register page menu-bar rfn-eshadow timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai
tai-viet lao korean japanese hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help
simple abbrev minibuffer loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
dbusbind gfilenotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)

Cheers,
Gerard





reply via email to

[Prev in Thread] Current Thread [Next in Thread]