Emacs — `start-process` for `bzr` does not output

2019-07-25 10:38发布

When running bzr in the native OSX Terminal.app, I see the status as follows:

32376kB     2kB/s / Build phase:Adding file contents 1282/3629

When running start-process, however, I see no status being output to the buffer. The process is functioning properly, just with no visible output until the end -- two (2) lines only:

Created new stacked branch referring to bzr://bzr.savannah.gnu.org/emacs/trunk/.

Process bzr-process finished

Is there another listening function that Emacs offers that will capture the above-mentioned status output by bzr so that I can see the progress?

(start-process
  "bzr-process"
  "*bzr-output*"
  "/macports/bin/bzr"
  "branch"
  "--stacked"
  "bzr://bzr.savannah.gnu.org/emacs/trunk"
  "/Users/HOME/Desktop/emacs-trunk")

标签: emacs bazaar
1条回答
乱世女痞
2楼-- · 2019-07-25 11:21

Maybe you can get bzr to give you the on-the-fly status output by running the process in a tty rather than through a pipe. For that, just let-bind process-connection-type as in:

(let ((process-connection-type t))
  (start-process ...))

But IIRC this value already defaults to t, so maybe the problem is elsewhere. Maybe bzr checks the $TERM to see if it can correctly update the output. So maybe you can try

(let ((process-environment (cons "TERM=xterm" process-environment)))
  (start-process ...))
查看更多
登录 后发表回答