Hi Takashi,

On 6/23/2026 6:04 AM, Takashi Yano wrote:
Hi Mark,

Thanks for reviewing!

On Tue, 23 Jun 2026 00:41:11 -0700
Mark Geisert wrote:
Hi Takashi,

On 6/12/2026 5:47 AM, Takashi Yano wrote:
In transfer_input(), CR and NL in the data transferred to nat-pipe
is treated as follows:
    1) If pseudo console is activated, convert NL to CR.
    2) If pseudo console is disabled, convert CR to NL.
This conversion is necessary to ensure non-cygwin apps can handle
CR/NL as expected. Therefor, CR and NL should be treated as the
same way in accept_input() if the data is sent to nat-pipe.

The above block is fine.

Usually, when pseudo console is activated, the input data for non-
cygwin app is not treated by accept_input. However, accept_input()
handle the input data in pseudo console enabled mode, only in a
very short duration when pseudo console is about to setup, because
master::write() calls line_edit() in the pcon_start mode. If pseudo
console is disabled, accept_input() handles them, however usually
ICRNL flag is set, so line_edit() do this conversion. However, if
this flag is not set, the conversion added by this patch is needed
as well.

This block I'm having a bit of trouble to follow.  Can you possibly
reword to describe it in more orderly fashion?

What about:
   In the previous implementation, problems rarely occurred because
   accept_input() normally does not handle input for non-cygwin apps
   when the pseudo console is active. Under typical conditions, such
   input is snet to pseudo console directly by WriteFile(), so
              ^^^^
   accept_input() is not involved and no onversion issues arise.
                                           ^^^^^^^^^

   There is, however, a brief period during pseudo console initialization
   in which accept_input *does* handle the input. This happens because
   master::write() invokes line_edit() while in pcons_start mode. During
   this short window, the input is processed in pseudo-console-enabled
   mode, and the usual conversion behaviour may not apply.

   When the pseudo console is disabled, accept_input() always handles
   the input, and in most cases the ICRNL flag is set by shell, so
   line_edit() performs the CR->NL conversion. But if the flag is not
   set, this conversion does not occur. Therefore, the additional
   conversion introduced by this patch is required to ensure consistent
   behaviour in both cases.

Much better!  Please fix the minor typos indicated and it will LGTM.
OK to push.

..mark

Reply via email to