Subject: Re: 23.0.60; fontified prompt in *shell* extends to normal text upon yank

From: Peter Dyballa <[email-masked]>
Date: Sat, 15 Aug 2009 12:39:12 +0200

Am 11.08.2009 um 06:55 schrieb Chong Yidong:

>> My customisation has
>>
>>  '(comint-prompt-regexp "^[a-z]+ [0-9]+ /\\\\ " t)
>>  '(shell-prompt-pattern "^[a-z]+ [0-9]+ /\\\\ ")
>>  '(comint-highlight-prompt ((t (:background
>> "FloralWhite" :foreground "DarkViolet" :weight bold))))
>>
>> Sometimes I locate items and sort them by killing and yanking the
>> lines they're on. When I yank such a line just above the prompt,
>> i.e., the cursor is in column 0 at the prompt's beginning, the
>> prompt's fontification is extended over the yanked line
>
> I haven't been able to reproduce this; please provide an exact recipe,
> starting from `emacs -Q'.

It works easily when kill-whole-line is not t, i.e., the default is  
on. When in such a situation I kill a line with C-k and insert it at  
the end, i.e., before the prompt on the prompt's line, with C-y then  
the prompt's properties are extended to this yanked line. And these  
properties are not removed when I insert a C-j to separate the line  
from the prompt. Even when I try to create new space or an empty line  
by inserting C-j in the left-most column on the prompt's line, i.e.,  
at the prompt's beginning, the new lines are all propertised like the  
prompt.

I made my tests by creating a little init file that applies the  
customisation described by launching GNU Emacs as:

	emacs-23.0.60 -Q -l .emacs-init.el &

The same is true for GNU Emacs 23.1.50.

What works is to type C-j at the end of the last line before the  
prompt. Then not (obviously) propertised space is created.

What I also can see, when doing an ls in a filled-up directory or  
when grep'ing in many files or having too much matches and (most  
probably when) doing this with some load (compilation of GCC or GNU  
Emacs), then I can see that *some* of the (found matching) lines at  
the bottom of the *shell* buffer get propertised like the prompt, but  
this is then removed.

So the easy recipe is: copy or kill some text, go to the *shell*  
buffer's end, go back to the prompt's beginning, and insert now the  
text. The prompt's properties now extend to the text's beginning  
where formerly the prompt started.

--
Greetings

   Pete

Never be led astray onto the path of virtue