From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15095 invoked by alias); 3 Jul 2019 12:20:21 -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 14562 invoked by uid 89); 3 Jul 2019 12:18:03 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=0.0 required=5.0 tests=TIME_LIMIT_EXCEEDED autolearn=unavailable version=3.3.1 spammy= X-HELO: gateway32.websitewelcome.com Received: from Unknown (HELO gateway32.websitewelcome.com) (192.185.145.122) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 03 Jul 2019 12:11:23 +0000 Received: from cm11.websitewelcome.com (cm11.websitewelcome.com [100.42.49.5]) by gateway32.websitewelcome.com (Postfix) with ESMTP id CBC0B6DB7 for ; Wed, 3 Jul 2019 07:11:13 -0500 (CDT) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id ie6ThEPardnCeie6Thmjbd; Wed, 03 Jul 2019 07:11:13 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=PKR0n9WGFqGtI5qFZt1Ee7LaBtuHBD4wXkKI+QdVBic=; b=Mc+EWIvshCXKozXqMaEx6P64mP n/n18p8LlnwEgSMegVgIK04T3fWd6e963oxk395xUNDZYATYVRvcn3plOjc71f+BGZXg0Yh/UpRbY IAoExdBVXbmGbKiyUO0PRU3yK; Received: from 174-29-48-143.hlrn.qwest.net ([174.29.48.143]:34196 helo=murgatroyd) by box5379.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92) (envelope-from ) id 1hie6T-000O27-I4; Wed, 03 Jul 2019 07:11:13 -0500 From: Tom Tromey To: Philippe Waroquiers Cc: Tom Tromey , Pedro Alves , gdb-patches@sourceware.org Subject: Re: ui_out format strings for fields and styles (Re: [PATCH] Style "pwd" output) 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> <871s056yjw.fsf@tromey.com> <87ef3aq6ux.fsf@tromey.com> <1562009561.1956.1.camel@skynet.be> Date: Wed, 03 Jul 2019 12:20:00 -0000 In-Reply-To: <1562009561.1956.1.camel@skynet.be> (Philippe Waroquiers's message of "Mon, 01 Jul 2019 21:32:41 +0200") Message-ID: <87sgrnjp27.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2019-07/txt/msg00065.txt.bz2 Philippe> If we have some markers/brackets in the format string to apply Philippe> style, why do we keep the style as an additional parameter of Philippe> the 'printf' like functions ? Philippe> E.g. when looking at pango markup, changing the 'style' is done inside the string, Philippe> such as : Philippe> "some string with red foreground" Philippe> So, for GDB, we could have something like: Philippe> some_output_function ("The filename is %s.", some_filename); Philippe> where the low level of some_output_function would translate the into Philippe> the real output of the control characters to do the styling. Philippe> The advantage of this approach is that the styling can be added for example Philippe> in the doc strings either statically and/or built dynamically Philippe> (think for example to the new option framework that builds a part of the doc Philippe> string: we might e.g. put in bold the part of the option that is 'unique'). I hadn't really given it much thought. I suppose the main thing is that the lower levels -- ui-out and ui-file -- are used for all output in gdb. So if we had some kind of markup in the output, we'd need to find all the places emitting unpredictable output (say, file names or data from the inferior) and arrange for those to quote the output somehow, to prevent unwanted effects. On the other hand the programmatic approach doesn't require this, and is closer to what gdb already does. Nothing precludes us from doing this later on. For instance, it could be done for "help" without touching the rest of gdb. Tom