Subject: bug#34318: 26.1.90; Strange behavior of two line message with running shell

From: martin rudalics <[email-masked]>
Date: Tue, 19 Feb 2019 10:00:47 +0100

fixed 34318 26.2
quit

 >> 	Don't call swap_in_symval_forwarding since the currently swapped
 >> 	binding is never one we've modified.
 >
 > Indeed, good spotting.  I installed the patch below which mostly reverts
 > this part of the commit.

Thanks for the fix.

 > +(ert-deftest data-tests-make-local-forwarded-var () ;bug#34318
 > +  ;; Boy, this bug is tricky to trigger.  You need to:
 > +  ;; - call make-local-variable on a forwarded var (i.e. one that
 > +  ;;   has a corresponding C var linked via DEFVAR_(LISP|INT|BOOL))
 > +  ;; - cause the C code to modify this variable from the C side of the
 > +  ;;   forwarding, but this needs to happen before the var is accessed
 > +  ;;   from the Lisp side and before we switch to another buffer.
 > +  ;; The trigger in bug#34318 doesn't exist any more because the C code has
 > +  ;; changes.

I suppose you refer to Paul's "Don’t set print-escape-newlines in the
minibuffer" here.  Right?

 > Instead I found the trigger below.
 > +  (with-temp-buffer
 > +    (setq last-coding-system-used 'bug34318)
 > +    (make-local-variable 'last-coding-system-used)
 > +    ;; This should set last-coding-system-used to `no-conversion'.
 > +    (decode-coding-string "hello" nil)
 > +    (should (equal (list last-coding-system-used
 > +                         (default-value 'last-coding-system-used))
 > +                   '(no-conversion bug34318)))))
 > +
 >   ;;; data-tests.el ends here

martin, closing this bug