Search code examples
emacsbazaar

Emacs -- `start-process` for `bzr` does not output status to buffer


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")

Solution

  • 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 ...))