help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Maybe we can improve this function call-process-to-string?


From: Jean Louis
Subject: Re: Maybe we can improve this function call-process-to-string?
Date: Thu, 8 Apr 2021 21:17:15 +0300
User-agent: Mutt/2.0.6 (2021-03-06)

* Eli Zaretskii <eliz@gnu.org> [2021-04-08 19:30]:
> So you actually need the numbers reported by those commands?  if so,
> you can read them from the buffer into which the command's output is
> stored, right?  You don't actually need the numbers in their string
> form, right?

In that particular example numbers are just used as string, but
sometimes I need numbers. That may not be most important. I do not
understand your method of getting output from external command. 

How practically to do it?

I understood reading it from buffer is different than reading from
shell-command-to-string.

Then to have output in buffer, I need call-process, but then again I
need to enter that buffer and read string out of it. Example is here:

(defun call-process-to-string (program &optional infile display &rest args)
  (let* ((buffer-name "RCD Emacs Lisp output")
         (buffer (generate-new-buffer buffer-name))
         (status (apply #'call-process program infile buffer display args))
         (current-buffer (current-buffer))
         (output (buffer-to-string buffer)))
    (kill-buffer buffer)
    output))

Again I have to use strings there.

> > I would not know how to get output from system command by using those
> > functions without using shell-command-to-string or call-process
> 
> You said buffer-substring doesn't take a buffer as an argument.  I'm
> suggesting something like
> 
>   (with-current-buffer (get-buffer "foo")
>     (buffer-substring ...))

That again comes back as a string, right? I do use that type, in the
above function for example.

Jean




reply via email to

[Prev in Thread] Current Thread [Next in Thread]