GNU bug report logs - #1973
Bug in simple.el (Emacs version 22.2.1)

Previous Next

Package: emacs;

Reported by: Sebastian Tennant <sebyte <at> smolny.plus.com>

Date: Tue, 20 Jan 2009 20:50:02 UTC

Severity: normal

Merged with 2103

Done: Chong Yidong <cyd <at> stupidchicken.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Sebastian Tennant <sebyte <at> smolny.plus.com>
To: bug-gnu-emacs <at> gnu.org
Subject: bug#1973: Bug in simple.el (Emacs version 22.2.1)
Date: Wed, 04 Feb 2009 09:47:02 +0000
Quoth Stefan Monnier <monnier <at> iro.umontreal.ca>:
>> > I guess it's using shell-mode, but somehow fails to setup the process's
>> > output filter?
>> Now you're making it sound like a bug, just as I'm starting to accept
>> that it's a misfeature :)
>
> One part is whether it should use shell-mode or not.

I dare say it should, given that the command use to create the
asynchronous command is called 'shell-command'.

> Another is whether, when using shell-mode, it should behave like
> M-x shell.
>
> The second part is clearly a bug.  If we decide it shouldn't use
> shell-mode, then the bug needn't be fixed.  But given that it currently
> uses shell-mode, it seems that (contrary to what I thought) the current
> intention is for it to behave like shell-mode, in which case it should
> be fixed.

Agreed.

> I think that all that's needed is a good (set-process-filter
> (get-buffer-process <buf>) 'comint-output-filter) at the right place.
> Tho, maybe a better option is to change the way the process is started
> along the lines of what you originally proposed.

Indeed, why use start-process and then set the process filter when both
can be achieved using make-comint-in-buffer?

>> Even replacing the call to shell-mode with a call to comint-mode makes
>> no difference to the way ^M characters are handled.  In either case the
>> process filter must be explicitly set to 'comint-ouput-filter.  I'd
>> expect something as visually arresting as mangled output to be handled
>> by a mode setting, but hey ho.
>
> This is a more difficult decision: should calling a major-mode affect
> the filter of a process that happens to be running in this buffer?

I see your point.

> Usually, the expectation is that shell-mode (or comint-mode) is not
> called directly, so the process filter is set by the calling code.

Fair enough.  Let's leave it as it is then, and make sure we set it in
the calling code.

>> If it were up to me, I'd rewrite the asynchronous part of shell-command
>> so that make-comint-in-buffer is used to create a Comint mode buffer
>> called *Async Shell Command Output* and leave it at that.
>
> I'm beginning to agree.

Cool.  Using make-comint-in-buffer definitely seems the way to go but
I've changed my mind about in which mode *Async Shell Command* should
be.  I now think Shell mode (rather than leaving it in Comint mode) is
better, simply for the sake of consistency with it's synchronous
counterpart.

Sebastian
-- 
Emacs' AlsaPlayer - Music Without Jolts
Lightweight, full-featured and mindful of your idyllic happiness.
http://home.gna.org/eap






This bug report was last modified 15 years and 189 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.