Hi Hans-Bernhard, On Mar 3 00:07, Hans-Bernhard Bröker wrote: > Replace direct access to a pair of co-dependent variables > by calls to methods of a class that encapsulates their relation. > > Also replace C #define by C++ class constant. > --- > winsup/cygwin/fhandler_console.cc | 135 ++++++++++++++++-------------- > 1 file changed, 70 insertions(+), 65 deletions(-) > > diff --git a/winsup/cygwin/fhandler_console.cc > b/winsup/cygwin/fhandler_console.cc > index c5f269168..af2fb11a4 100644 > --- a/winsup/cygwin/fhandler_console.cc > +++ b/winsup/cygwin/fhandler_console.cc > @@ -59,17 +59,22 @@ static struct fhandler_base::rabuf_t con_ra; > /* Write pending buffer for ESC sequence handling > in xterm compatible mode */ > -#define WPBUF_LEN 256 > -static unsigned char wpbuf[WPBUF_LEN]; > -static int wpixput; > static unsigned char last_char; > -static inline void > -wpbuf_put (unsigned char x)
This patch won't apply since commit ecf27dd2e0ed. Can you please
recreate the patch on top of current master?
Also, a few style issues:
> +// simple helper class to accumulate output in a buffer
> +// and send that to the console on request:
The /* */ style of comments is preferred. Please use it always
for multiline comments.
> +static class WritePendingBuf
No camelback, please. Make that `static class write_pending_buf'.
> {
> - if (wpixput < WPBUF_LEN)
> - wpbuf[wpixput++] = x;
> -}
> +private:
> + static const size_t WPBUF_LEN = 256u;
> + unsigned char buf[WPBUF_LEN];
> + size_t ixput;
> +
> +public:
> + inline void put(unsigned char x) { if (ixput < WPBUF_LEN) { buf[ixput++]
> = x; } };
Please put a space before an opening parenthesis, i.e.
inline void put (...)
The semicolon after the closing brace is obsolete.
Line length > 80 chars. Also, it's an expression which is multiline
by default. Make that
inline void put (unsigned char x)
{
if (ixput < WPBUF_LEN)
buf[ixput++] = x;
}
> + inline void empty() { ixput = 0u; };
> + inline void sendOut(HANDLE &handle, DWORD *wn) { WriteConsoleA (handle,
> buf, ixput, wn, 0); };
Camelback, missing space, line too long, obsolete semicolon:
inline void send_out (HANDLE &handle, DWORD *wn)
{ WriteConsoleA (handle, buf, ixput, wn, 0); }
"send" or "write" or "flush" would be ok as name, too, no underscore :)
Btw., looking through the code with this change I wonder about ixput not
being set to 0 in sendOut, right after calling WriteConsoleA. That
would drop the need to call empty after calls to sendOut and thus clean
up the code, no?
Thanks,
Corinna
--
Corinna Vinschen
Cygwin Maintainer
signature.asc
Description: PGP signature
