The previous checkin introduces some weirdness on Windows relating to input echoing in interactive console progress dialogs. Basically two copies of any input would be echoed (unless in password mode, which worked correctly). This change ensures that we don't get two copies, but it breaks the pendingInput mechanism so any input you provide disappears briefly after you hit Enter. I haven't yet figured out how to solve that.
The snapshotting-only method of output was causing the console progress dialog to appear on Windows even in cases where the prompt could be satisfied by the password manager. This is because any change in the output (including a trailing \n after passphrase was sent) would cause the entire console output snapshot to be sent, which would trigger the dialog. I modified ConsoleIOMain so that in the (very) common case that each new snapshot is just a longer version of the previous snapshot, only the difference is sent. This should work fine except in the case of scrolling or if \r et al are used. In those cases ConsoleIO will revert to snapshotting. Note that this will be very inefficient if the screen is being scrolled (though no more so than before this check-in) since any output would cause the entire buffer to be re-sent.
Using /S and quotes is better than no S and parens because the parens can get tripped up when > operator is used (since > has higher precedence than parens)
This reverts commit bf55763.
E.g. wc-locked files would make empty-looking statuses appear in SVN
…windows (will try a new approach)" This reverts commit 3c7f0ef. Conflicts: src/cpp/session/modules/SessionSVN.cpp
This reverts commit 692ea24.
consoleio.exe now sends low-level console output to stderr. Since the API for grabbing low-level console output gives us not streams but snapshots, each time console output appears the entire contents of the console (up to the cursor) are sent to stderr, prepended by a \f character. This makes svnHistory requests with svn+ssh passphrase/password prompting work correctly except that after answering the prompt (either manually or by the PasswordManager automatically supplying the answer) the console progress dialog briefly flashes up. This is because hitting Enter causes the console output to change, causing consoleio.exe to send a snapshot to stderr, causing ConsoleProgressDialog to see new output, causing it to display itself. Need to figure out a way to detect when a snapshot of a previously answered prompt is sent. I don't have an answer for this at the moment.