From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 84365 invoked by alias); 6 Jun 2019 15:49:42 -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 84354 invoked by uid 89); 6 Jun 2019 15:49:41 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 spammy= X-HELO: mail-wr1-f65.google.com Received: from mail-wr1-f65.google.com (HELO mail-wr1-f65.google.com) (209.85.221.65) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 06 Jun 2019 15:49:40 +0000 Received: by mail-wr1-f65.google.com with SMTP id d18so2967130wrs.5 for ; Thu, 06 Jun 2019 08:49:39 -0700 (PDT) Return-Path: Received: from ?IPv6:2001:8a0:f913:f700:4eeb:42ff:feef:f164? ([2001:8a0:f913:f700:4eeb:42ff:feef:f164]) by smtp.gmail.com with ESMTPSA id x15sm2145825wrt.87.2019.06.06.08.49.37 (version=TLS1_3 cipher=AEAD-AES128-GCM-SHA256 bits=128/128); Thu, 06 Jun 2019 08:49:37 -0700 (PDT) Subject: Re: ui_out format strings for fields and styles (Re: [PATCH] Style "pwd" output) To: Tom Tromey References: <20190605020116.1550-1-tom@tromey.com> <1ee4bd6b-4cdf-f3a9-74af-0843bf123a8b@redhat.com> <87lfygi1x0.fsf@tromey.com> <32872d6a-15d6-9718-59ae-957694e114c9@redhat.com> <87imtjhj6b.fsf@tromey.com> <625cd0ba-058d-d4bf-8ba3-8676f335b0f3@redhat.com> <87blzbep47.fsf@tromey.com> <2180f72f-da10-5333-90a1-666ba3bd145e@redhat.com> <87imtjbrmx.fsf@tromey.com> Cc: gdb-patches@sourceware.org From: Pedro Alves Message-ID: Date: Thu, 06 Jun 2019 15:49:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 MIME-Version: 1.0 In-Reply-To: <87imtjbrmx.fsf@tromey.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-SW-Source: 2019-06/txt/msg00142.txt.bz2 On 6/5/19 11:21 PM, Tom Tromey wrote: >>> We could just remove the enum, move to passing pointers everywhere, and >>> convert the *_style objects to be pointers. This would streamline >>> things a bit; > > Pedro> ... > >>> and we could use nullptr to mean "keep the default". > > Pedro> Yeah, that would %pN / %p] redundant/unnecessary... > > I didn't go quite as far as making everything take pointers, partly > because it made it harder to preserve the distinction between the CLI > layer and the ui-file styling layer. So instead I just removed the > enum. > > My patch also removes (really just comments out) %pS and %pN in favor of > requiring %ps. Those could be restored with a bit of effort I guess. Yes, I think so. I think the main issue is that cli_style_option::style() returns a new temporary ui_file_style, so we can't take its address, like in: current_uiout->message (_("Reading symbols from %pS%s%pS...\n"), &file_name_style.style (), name, nullptr); But that could be fixed by adding a m_style field to cli_style_option, and making cli_style_option::style() return a const reference to that. We'd either need to make cli_style_option register set command hooks to update that m_size variable whenever the users changes the corresponding foreground/background setting, or always update m_style when cli_style_option::style() is called. > > Pedro> If you'd like to give this a try, please do feel free to push to > Pedro> the branch. > > I didn't push but my patch is appended. Let me know what you think. I > can push tomorrow if you want it. I'm not sure now if what remains of > the patch is a good idea or not; or if moving fully to pointers would be > better. > Please push. I don't know either, but undoing a patch on a branch is simple enough if we find that we want to do that. :-) Thanks, Pedro Alves