GNU bug report logs -
#76103
[PATCH] New function 'process-output'
Previous Next
Full log
View this message in rfc822 format
Daniel Mendler <mail <at> daniel-mendler.de> writes:
> Juri Linkov <juri <at> linkov.net> writes:
>
>>> I find process-lines super convenient for glueing command line
>>> utilities.
>>>
>>> Often wished I had a similar function that neither split into
>>> lines
>>> (process-lines) nor relied on shell (shell-command-to-string).
>>>
>>> Proposing process-output as a close cousin to process-lines.
>>>
>>> Happy to drop process-lines in favour of an existing function
>>> I may have
>>> missed.
>>
>> Unfortunately, there is no such function for process output.
>> What is worse there is no similar function even for files.
>> So everyone have to reimplement the same idiom dozens of times:
>>
>> (defun read-file (file)
>> "Return FILE content as string."
>> (with-temp-buffer
>> (insert-file-contents file)
>> (buffer-string)))
>>
>> (defun read-lines (file)
>> "Return a list of lines of FILE."
>> (with-temp-buffer
>> (insert-file-contents file)
>> (split-string (buffer-string) "\n" t)))
These two also resonate dearly. Specially read-file available.
I know now to go via with-temp-buffer, but as a newcomer,
read-file would have been way more discoverable.
>>
>> For example, there is a complete implementation of read-file
>> in org-babel-eval-read-file, uudecode-tests-read-file,
>> eshell-test-file-string.
>>
>> Also there is a complete implementation of read-lines
>> in vc--read-lines.
>>
>> Also this idiom is widely used in comint-exec,
>> eieio-persistent-read,
>> ert-write-junit-test-summary-report,
>> faceup-test-font-lock-file,
>> package--get-description, epa-file-insert-file-contents,
>> erc-load-irc-script, gnus-splash-svg-color-symbols, eww-submit,
>> tramp-get-lock-file, org-babel-R-evaluate-external-process,
>> org-babel-R-evaluate-session,
>> ob-session-async-R-value-callback,
>> org-babel-julia-evaluate-external-process,
>> org-babel-julia-evaluate-session, org-babel-execute:plantuml,
>> org-babel-execute:sass, org-babel-screen-test,
>> org-texinfo-supports-math-p, ps-prologue-file, shell,
>> vc-cvs-file-to-string, vc-hg--active-bookmark-internal,
>> erc-tests-common-snapshot-compare em-extpipe-tests--deftest,
>> em-hist-test/check-history-file, eshell-test-file-string,
>> files-tests-save-buffer-read-only-file, dbus--test-introspect,
>> url-file,
>
> +1 I am in favor of adding such small utility functions to read
> small
> files or handle limited process output. I think many of us have
> implemented such functions, and Juri's code search in the Emacs
> code
> base demonstrates that. I agree with Eli that for large files or
> more
> extensive processing working with a buffer is better. But in
> other cases
> these functions are still useful.
>
> If a set of such functions will be added to Emacs subr.el or
> subr-x.el I
> am happy to port them back via Compat, such that they are
> available to
> all ELPA packages, including the ones targeting older Emacs
> versions.
>
> Daniel
This bug report was last modified 175 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.