From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id CRQmLIGdtWkKYCkAWB0awg (envelope-from ) for ; Sat, 14 Mar 2026 13:40:17 -0400 Authentication-Results: simark.ca; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=dkkmL+ZD; dkim=fail reason="signature verification failed" header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=JKjodhtK; dkim=fail reason="signature verification failed" (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=dkkmL+ZD; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=JKjodhtK; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id ACC0A1E0DD; Sat, 14 Mar 2026 13:40:17 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_INVALID,DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id F11E61E089 for ; Sat, 14 Mar 2026 13:40:16 -0400 (EDT) Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 95D7D4BB5901 for ; Sat, 14 Mar 2026 17:40:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 95D7D4BB5901 Authentication-Results: sourceware.org; dkim=fail reason="signature verification failed" (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=dkkmL+ZD; dkim=fail reason="signature verification failed" header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=JKjodhtK; dkim=fail reason="signature verification failed" (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=dkkmL+ZD; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=JKjodhtK Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2a07:de40:b251:101:10:150:64:2]) by sourceware.org (Postfix) with ESMTPS id C07D84B0A6D6 for ; Sat, 14 Mar 2026 17:37:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C07D84B0A6D6 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C07D84B0A6D6 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:2 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1773509874; cv=none; b=m/170qi4FJvgE57XCpCMTbh+r5wSQJP/1XFDIfMQcZucjpXnuaYzpS1AZU+0jk7itI/uf1TIRw2GnPHX+JW72ew1vC3RARLqXDDkJRR5SSbr7JodHC3w/Zm7mWvDauSO6ZIOND4gmauGLA+IguZyTpBy/kwKGexVEB8cpcjU4ZI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1773509874; c=relaxed/simple; bh=rdDMEhR0Fk0bEqk+1854Mm/0J37zHZbgNKrDfW7Ny7s=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-ID:MIME-Version; b=bHpALtUwQxcfPiwrTJYvKqRVYquV+5eY3tgr7N3PgE8k5sIj0iTJm8XMZ6ZthTu5P7m5lJDtjm/CkacMZ4gU8kduxY5eSbTKQ3HLx8psy7Pai1BJhzKQGLa2jI/9pEMm6d3YWAjXEqt5F5KLv6gEcNH3yB59nbljIC5q5Ve0uCo= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C07D84B0A6D6 Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 1D7C65BCFE for ; Sat, 14 Mar 2026 17:37:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1773509858; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=pm5LwNpmLB4NH+QBNAjNrUD7Z8/eL/EXBUxfGQ7LXS4=; b=dkkmL+ZD8TT69K7o7ijkU3xbcK7IqN4Ua9ifBJFPbIn/wL7qgqhE2qHZV0SN5OnIRL3yKZ HPk6BsmBtTPQEGUwhk0+svMCFndLgJkh++rt0nKJfL83Qx9rm3MoPtnFYFTq1zzouj0nGv j6dE+VQrpT3rjl4AZkdNGs4GxGE79Zo= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1773509858; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=pm5LwNpmLB4NH+QBNAjNrUD7Z8/eL/EXBUxfGQ7LXS4=; b=JKjodhtKeJFsMGRB0mU2bx/zAGjA8W9/f/KqOdmLSFhdfmrtf47sOtDO0EEeuD8HLcTREi gqu2F+d6HV7OsmDQ== Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=dkkmL+ZD; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=JKjodhtK DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1773509858; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=pm5LwNpmLB4NH+QBNAjNrUD7Z8/eL/EXBUxfGQ7LXS4=; b=dkkmL+ZD8TT69K7o7ijkU3xbcK7IqN4Ua9ifBJFPbIn/wL7qgqhE2qHZV0SN5OnIRL3yKZ HPk6BsmBtTPQEGUwhk0+svMCFndLgJkh++rt0nKJfL83Qx9rm3MoPtnFYFTq1zzouj0nGv j6dE+VQrpT3rjl4AZkdNGs4GxGE79Zo= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1773509858; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=pm5LwNpmLB4NH+QBNAjNrUD7Z8/eL/EXBUxfGQ7LXS4=; b=JKjodhtKeJFsMGRB0mU2bx/zAGjA8W9/f/KqOdmLSFhdfmrtf47sOtDO0EEeuD8HLcTREi gqu2F+d6HV7OsmDQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 0006142727 for ; Sat, 14 Mar 2026 17:37:37 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id iLDsOeGctWnNeQAAD6G6ig (envelope-from ) for ; Sat, 14 Mar 2026 17:37:37 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH v5 3/4] [gdb] Add defaulted_query_auto_answers_p Date: Sat, 14 Mar 2026 18:37:36 +0100 Message-ID: <20260314173737.1436116-4-tdevries@suse.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260314173737.1436116-1-tdevries@suse.de> References: <20260314173737.1436116-1-tdevries@suse.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Action: no action X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[99.99%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; RCPT_COUNT_ONE(0.00)[1]; FUZZY_RATELIMITED(0.00)[rspamd.com]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; DKIM_TRACE(0.00)[suse.de:+]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; RCVD_TLS_ALL(0.00)[]; TO_DN_NONE(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from,2a07:de40:b281:106:10:150:64:167:received]; ASN(0.00)[asn:32098, ipnet:2800::/6, country:US]; RCVD_VIA_SMTP_AUTH(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim, suse.de:mid, imap1.dmz-prg2.suse.org:helo, imap1.dmz-prg2.suse.org:rdns] X-Rspamd-Queue-Id: 1D7C65BCFE X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org Factor out "static bool defaulted_query_auto_answers_p (bool)" out of defaulted_query, and use it to implement "extern tribool defaulted_query_auto_answers_p (void)". --- gdb/utils.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++++----- gdb/utils.h | 4 ++++ 2 files changed, 54 insertions(+), 5 deletions(-) diff --git a/gdb/utils.c b/gdb/utils.c index ef8ef87bc5b..0de356eac80 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -742,6 +742,54 @@ class scoped_input_handler }; +/* Return true if defaulted queries should be answered: + - if VERBOSELY, automatically and verbosely + - otherwise, automatically and quietly. */ + +static bool +defaulted_query_auto_answers_p (bool verbosely) +{ + if (verbosely) + { + /* Automatically answer verbosely if input isn't coming from the user + directly. */ + return (current_ui->instream != current_ui->stdin_stream + || !current_ui->input_interactive_p () + /* Restrict queries to the main UI. */ + || current_ui != main_ui); + } + else + { + /* Automatically answer quietly if: + - the user did not want prompts, or + - the command was issued with the server prefix. */ + return !confirm || server_command; + } +} + +/* See utils.h. */ + +tribool +defaulted_query_auto_answers_p () +{ + if (defaulted_query_auto_answers_p (false) + || defaulted_query_auto_answers_p (true)) + return TRIBOOL_TRUE; + + if (deprecated_query_hook) + { + /* The only user of deprecated_query_hook in core gdb seems to be + mi_interp_query_hook, for which we could return TRIBOOL_TRUE here. + If that turns out to be required, we could accomplish this by + changing the hook interface to say: + int (*deprecated_query_hook) (const char *, va_list, + bool auto_answers_p = false) + and calling it here with auto_answers_p == true. */ + return TRIBOOL_UNKNOWN; + } + + return TRIBOOL_FALSE; +} /* This function supports the query, nquery, and yquery functions. Ask user a y-or-n question and return 0 if answer is no, 1 if @@ -789,17 +837,14 @@ defaulted_query (const char *ctlstr, const char defchar, va_list args) /* Automatically answer the default value if the user did not want prompts or the command was issued with the server prefix. */ - if (!confirm || server_command) + if (defaulted_query_auto_answers_p (false)) return def_value; /* If input isn't coming from the user directly, just say what question we're asking, and then answer the default automatically. This way, important error messages don't get lost when talking to GDB over a pipe. */ - if (current_ui->instream != current_ui->stdin_stream - || !current_ui->input_interactive_p () - /* Restrict queries to the main UI. */ - || current_ui != main_ui) + if (defaulted_query_auto_answers_p (true)) { target_terminal::scoped_restore_terminal_state term_state; target_terminal::ours_for_output (); diff --git a/gdb/utils.h b/gdb/utils.h index 7cab021e7a9..6ef2049b2a4 100644 --- a/gdb/utils.h +++ b/gdb/utils.h @@ -515,4 +515,8 @@ struct deferred_warnings final : public warning_hook_handler_type std::vector m_warnings; }; +/* Whether defaulted queries are answered automatically. */ + +extern tribool defaulted_query_auto_answers_p (); + #endif /* GDB_UTILS_H */ -- 2.51.0