Subject: Re: bug#4343: comint-carriage-motion for async-shell-command

From: Juri Linkov <[email-masked]>
Date: Wed, 09 Sep 2009 03:59:29 +0300

>> The following patch does the same for asynchronous commands in
>> `shell-command'.  It seems it was intended to do this anyway because
>> `*Async Shell Command*' uses `shell-mode'.  But `shell-mode' doesn't set
>> the filter that processes carriage control characters.  It is the `shell'
>> command that sets the filter via `comint-exec' before enabling `shell-mode'.
>> So it's necessary to set the filter explicitly in `shell-command'
>> after enabling `shell-mode':
>
> That looks right.  Could you try and check whether there's more of
> comint's setup code that could be copied here?

Other than setting `comint-output-filter', `comint-exec' also starts
a process.  But starting a process is not necessary in `shell-command'
that starts it explicitly.

> And try and move this into a new function `comint-setup-process' which
> both compile.el and M-& could then use?

They can't be merged because `compilation-filter' runs a compile-specific
hook `compilation-filter-hook'.

-- 
Juri Linkov
http://www.jurta.org/emacs/