From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24876 invoked by alias); 8 Jan 2015 13:57:43 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 24862 invoked by uid 89); 8 Jan 2015 13:57:42 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Thu, 08 Jan 2015 13:57:41 +0000 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id t08Dvb2b015280 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Thu, 8 Jan 2015 08:57:37 -0500 Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t08DvZcP009773; Thu, 8 Jan 2015 08:57:36 -0500 Message-ID: <54AE8CCF.3010504@redhat.com> Date: Thu, 08 Jan 2015 13:57:00 -0000 From: Pedro Alves User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Patrick Palka , Eli Zaretskii CC: gdb-patches@sourceware.org Subject: Re: [PATCH] TUI: rewrite tui_query_hook() References: <1420689048-23538-1-git-send-email-patrick@parcs.ath.cx> <831tn5760g.fsf@gnu.org> In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-SW-Source: 2015-01/txt/msg00187.txt.bz2 On 01/08/2015 01:42 PM, Patrick Palka wrote: > On Thu, Jan 8, 2015 at 8:31 AM, Eli Zaretskii wrote: >>> From: Patrick Palka >>> Cc: Patrick Palka >>> Date: Wed, 7 Jan 2015 22:50:48 -0500 >>> >>> @@ -80,30 +80,18 @@ tui_query_hook (const char *msg, va_list argp) >>> echo (); >>> while (1) >>> { >>> - wrap_here (""); /* Flush any buffered output. */ >>> - gdb_flush (gdb_stdout); >>> + char response[2], answer; >>> >>> - fputs_filtered (question, gdb_stdout); >>> - printf_filtered (_("(y or n) ")); >>> + tui_puts (question); >>> + tui_puts (_("(y or n) ")); >>> >>> - wrap_here (""); >>> - gdb_flush (gdb_stdout); >>> - >>> - answer = tui_getc (stdin); >>> - clearerr (stdin); /* in case of C-d */ >>> - if (answer == EOF) /* C-d */ >>> + if (wgetnstr (win, response, 1) == ERR) >> >> Given the latest discussions about buffering, don't you need to call >> wrefresh after the second tui_puts? > > I have been using this patch for a few months locally and have not > seen any buffering issues. That's because presently tui_puts always flushes. You'll need it since the query string doesn't end in a new line. This is exactly like we have a gdb_flush in defaulted_query after printing the query question. > The recently-mentioned issues are mostly > Windows-related, aren't they? I can add a wrefresh() if that is > what's needed to prevent potential buffering issues. Let's leave that either for the buffering patch, or if that patch goes in before this one, add the flushing call here then. That patch (or patches..) adds a function to handle the flushing, rather than calling wrefresh, and you'd want to call that one. Thanks, Pedro Alves