* Re: How to make ^M in a buffer go to the beginning of line?
[not found] <mailman.488.1448221799.31583.help-gnu-emacs@gnu.org>
@ 2015-11-23 0:49 ` Pascal J. Bourguignon
0 siblings, 0 replies; 2+ messages in thread
From: Pascal J. Bourguignon @ 2015-11-23 0:49 UTC (permalink / raw)
To: help-gnu-emacs
Marcin Borkowski <mbork@mbork.pl> writes:
> so I have this buffer, which displays the output of a process. This
> output contains loads of ^M characters, since - when run from a terminal
> - the process displays a one-line, real-time-updated progress
> information (like "n/m processed"). I'd like to mimic this behavior
> when calling it from Emacs (programmatically, not from M-x term or
> anything like that).
Assuming you are using comint, you need to add a function to perform
this processing in:
comint-preoutput-filter-functions
or perhaps:
comint-output-filter-functions
otherwise you will have to modify the process-filter.
Notice that the processing you will have to do is not trivial:
the text you receive in the preoutput-filter may contain several lines.
Each line may contain several CR. You must take into account the
existing text in the current line: if it's longer than the new text, the
tail will have to show after the new text; and the same must happen with
all the CR sequences. You must also deal with the trailing CR.
Assume the end of buffer is a line:
fuck! world!
without trailing newline
(cr-preoutput-filter "----o\r---l\r--l\r-e\rh\r")
will have to replace this last line with:
hello world!
^
with the current position at column 0, so that
a following
(cr-preoutput-filter "good bye,\nold world!\n")
diplays:
good bye,ld!
old world!
^
(Remember that newline is equivalent to CR LF, therefore there's no
reason to erase what's beyond the current possition when processing the
\n).
--
__Pascal Bourguignon__ http://www.informatimago.com/
“The factory of the future will have only two employees, a man and a
dog. The man will be there to feed the dog. The dog will be there to
keep the man from touching the equipment.” -- Carl Bass CEO Autodesk
^ permalink raw reply [flat|nested] 2+ messages in thread
* How to make ^M in a buffer go to the beginning of line?
@ 2015-11-22 19:49 Marcin Borkowski
0 siblings, 0 replies; 2+ messages in thread
From: Marcin Borkowski @ 2015-11-22 19:49 UTC (permalink / raw)
To: Help Gnu Emacs mailing list
Hi all,
so I have this buffer, which displays the output of a process. This
output contains loads of ^M characters, since - when run from a terminal
- the process displays a one-line, real-time-updated progress
information (like "n/m processed"). I'd like to mimic this behavior
when calling it from Emacs (programmatically, not from M-x term or
anything like that).
TIA,
--
Marcin Borkowski
http://octd.wmi.amu.edu.pl/en/Marcin_Borkowski
Faculty of Mathematics and Computer Science
Adam Mickiewicz University
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-11-23 0:49 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <mailman.488.1448221799.31583.help-gnu-emacs@gnu.org>
2015-11-23 0:49 ` How to make ^M in a buffer go to the beginning of line? Pascal J. Bourguignon
2015-11-22 19:49 Marcin Borkowski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).