'bzr shelve' in an emacs shell buffer requires a non buffered input
Bug #459185 reported by
Barry Warsaw
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Confirmed
|
Wishlist
|
Unassigned |
Bug Description
bzr 2.0.1 on karmic
emacs 23.1.50.1 (emacs-snapshot)
'bzr shelve --all' works just fine in an emacs shell buffer, but neither 'bzr shelve' itself or 'bzr shelve somefile' works.
In both latter cases, bzr issues prompts, one for the diff hunks that are being shelved, and a final confirmation for all the shelved changes. In a gnome-terminal, this works perfectly, but in an emacs buffer, you never get the final confirmation prompt. It simply exits and the change is never shelved:
% bzr shelve lib/canonical/
...
Shelve? [yNfq?]y
Selected changes:
M lib/canonical/
% bzr shelve --list
No shelved changes.
summary: |
- 'bzr shelve' with confirmation fails in an emacs shell buffer + 'bzr shelve' in an emacs shell buffer requires a non buffered input |
tags: | added: check-for-breezy |
To post a comment you must log in.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Barry Warsaw wrote: launchpad/ daemons/ tachandler. py launchpad/ daemons/ tachandler. py
> Public bug reported:
>
> bzr 2.0.1 on karmic
> emacs 23.1.50.1 (emacs-snapshot)
>
> 'bzr shelve --all' works just fine in an emacs shell buffer, but neither
> 'bzr shelve' itself or 'bzr shelve somefile' works.
>
> In both latter cases, bzr issues prompts, one for the diff hunks that
> are being shelved, and a final confirmation for all the shelved changes.
> In a gnome-terminal, this works perfectly, but in an emacs buffer, you
> never get the final confirmation prompt. It simply exits and the change
> is never shelved:
>
> % bzr shelve lib/canonical/
> ...
> Shelve? [yNfq?]y
> Selected changes:
> M lib/canonical/
> % bzr shelve --list
> No shelved changes.
My guess is that it is something to do with 'getchar' buffering. ISTR
that shelve1 also required using a specific TERM in emacs.
Basically, shelve is trying to respond to a single character input "y"
and not "y<enter>". However the way emacs buffers the terminal, it can
*only* supply "y<enter>". As such, the <enter> remains in our stdin
buffer, and is consumed by the final prompt.
Can you try entering "yyyyyy<enter>" in emacs and seeing if that
properly shelves things? (it should buffer all the y's which we will
consume in a row.)
John
=:->
-----BEGIN PGP SIGNATURE----- enigmail. mozdev. org/
h1N0ACgkQJdeBCY SNAAOsYACeP/ JmDQBcnpzmFO3Au k4Uj25J 1nr/bCGXiATiNn0 VE
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://
iEYEARECAAYFAkr
AXQAoMtzTcXKJdK
=Cm16
-----END PGP SIGNATURE-----