From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by sourceware.org (Postfix) with ESMTPS id 7341C3858289 for ; Fri, 14 Apr 2023 11:02:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7341C3858289 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 3CEBC218EA; Fri, 14 Apr 2023 11:02:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1681470160; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=Q3tUKT5kb+aVbwAuelAvNkxJUMZGmwz7gEK7SXJlVeQ=; b=sZh40o8Ydo9Nfq1+TO4ggINL4KgrqrRz26eyPEErf3XMVaB1Ioa5rBNNTKYz4+SpvbFT6P C+YRjIMY31rP9cWIQq0NltZCPXuc9q5KnqTIM0mQsbgy4pukQinXhhjw1swTIM8qjVUPTy YZ7znMqpOshBV230fOLJHNnGYKWsGpU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1681470160; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=Q3tUKT5kb+aVbwAuelAvNkxJUMZGmwz7gEK7SXJlVeQ=; b=vd3kVH3wEGHattnISwDK1PLcaZai47qCHjJNEk89qgoCCAg3txxPUUEsTZjotxF0UOOaOe a9rbGFATXUsiMiBQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 27B1A139FC; Fri, 14 Apr 2023 11:02:40 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id XEtsCNAyOWTyOgAAMHmgww (envelope-from ); Fri, 14 Apr 2023 11:02:40 +0000 Content-Type: multipart/mixed; boundary="------------6PJYzgr0ySHKuuLDgPwC2scX" Message-ID: Date: Fri, 14 Apr 2023 13:02:53 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.1 Subject: Re: [PATCH 8/8] [gdb/tui] Fix TUI for TERM=ansi Content-Language: en-US To: gdb-patches@sourceware.org Cc: Tom Tromey References: <20230413140827.19412-1-tdevries@suse.de> <20230413140827.19412-9-tdevries@suse.de> <7087394a-5cac-45c4-5c6d-6229db3c4915@suse.de> From: Tom de Vries In-Reply-To: <7087394a-5cac-45c4-5c6d-6229db3c4915@suse.de> X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------6PJYzgr0ySHKuuLDgPwC2scX Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 4/13/23 16:17, Tom de Vries via Gdb-patches wrote: > On 4/13/23 16:08, Tom de Vries via Gdb-patches wrote: >> @@ -1144,6 +1148,11 @@ init_page_info (void) >>         /* Get the screen size from Readline.  */ >>         rl_get_screen_size (&rows, &cols); >> +      if (gdb_stdout->isatty ()) { >> +    readline_hidden_cols = COLS - cols; >> +    gdb_assert (readline_hidden_cols >= 0); >> +    gdb_assert (readline_hidden_cols <= 1); >> +      } >>         lines_per_page = rows; >>         chars_per_line = cols; > > Reading this over once more, I noticed this is missing a fix for an > assertion failure we run into when doing: > ... > $ TERM=blabla gdb > ... > > So, this bit is missing: > ... > -      if (gdb_stdout->isatty ()) { > +      if (gdb_stdout->isatty () && COLS != 0) { > ... > I also ran into trouble with this version. It's not a good idea to use COLS, because it's just a copy of the env variable COLUMNS at the time of curses startup. So, I can trigger one of the asserts by doing: ... $ COLUMNS= gdb ... Here's an updated version, using the COLUMNS value as written by readline instead. Thanks, - Tom --------------6PJYzgr0ySHKuuLDgPwC2scX Content-Type: text/x-patch; charset=UTF-8; name="0008-gdb-tui-Fix-TUI-for-TERM-ansi.patch" Content-Disposition: attachment; filename="0008-gdb-tui-Fix-TUI-for-TERM-ansi.patch" Content-Transfer-Encoding: base64 RnJvbSAxYzU4YzhlOWJmOWZkZjU5MzU5M2ZiNDA0ZTA2ZGI1MDY2ODU0NzVkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb20gZGUgVnJpZXMgPHRkZXZyaWVzQHN1c2UuZGU+ CkRhdGU6IFdlZCwgMTIgQXByIDIwMjMgMTQ6NDQ6NDIgKzAyMDAKU3ViamVjdDogW1BBVENI IDgvOF0gW2dkYi90dWldIEZpeCBUVUkgZm9yIFRFUk09YW5zaQoKV2l0aCBURVJNPWFuc2ks IHdoZW4gcmVzaXppbmcgYSBUVUkgd2luZG93IGZyb20gTElORVMvQ09MVU1OUyAzMS8xMTgK KG1heGltaXplZCkgdG8gMjAvNzggKGRlLW1heGltaXplZCksIEkgZ2V0IGEgZ2FyYmxlZCBz Y3JlZW4gYW5kIGEgbWVzc2FnZToKLi4uCkBAIHJlc2l6ZSBkb25lIDAsIHNpemUgPSA3N3gy MAouLi4Kd2l0aCB0aGUgcmVzdWx0aW5nIHdpZHRoIGJlaW5nIDc3IGluc3RlYWQgb2YgdGhl IGV4cGVjdGVkIDc4LgoKWyBUaGUgZGlzY3JlcGFuY3kgYWxzbyBtYW5pZmVzdHMgaW4gQ0xJ LCBmaWxlZCBhcyBQUjMwMzQ2LiBdCgpUaGUgZGlzY3JlcGFuY3kgY29tZXMgZnJvbSB0dWlf cmVzaXplX2FsbCwgd2hlcmUgd2UgYXNrIHJlYWRsaW5lIGZvciB0aGUKc2NyZWVuIHNpemU6 Ci4uLgogICBybF9nZXRfc2NyZWVuX3NpemUgKCZzY3JlZW5oZWlnaHQsICZzY3JlZW53aWR0 aCk7Ci4uLgoKQXMgaXQgaGFwcGVucywgd2hlbiBURVJNIGlzIHNldCB0byBhbnNpLCByZWFk bGluZSBkZWNpZGVzIHRoYXQgdGhlIHRlcm1pbmFsCmNhbm5vdCBhdXRvLXdyYXAgbGluZXMs IGFuZCByZXNlcnZlcyBvbmUgY29sdW1uIHRvIGRlYWwgd2l0aCB0aGF0LCBhbmQgYXMgYQpy ZXN1bHQgcmVwb3J0cyBiYWNrIG9uZSBsZXNzIHRoYW4gdGhlIGFjdHVhbCBzY3JlZW4gd2lk dGg6Ci4uLgokIGVjaG8gJENPTFVNTlMKNzgKJCBURVJNPXh0ZXJtIGdkYiAtZXggInNob3cg d2lkdGgiIC1leCBxCk51bWJlciBvZiBjaGFyYWN0ZXJzIGdkYiB0aGlua3MgYXJlIGluIGEg bGluZSBpcyA3OC4KJCBURVJNPWFuc2kgIGdkYiAtZXggInNob3cgd2lkdGgiIC1leCBxCk51 bWJlciBvZiBjaGFyYWN0ZXJzIGdkYiB0aGlua3MgYXJlIGluIGEgbGluZSBpcyA3Ny4KLi4u CgpJbiB0dWlfcmVzaXplX2FsbCwgd2UgbmVlZCB0aGUgYWN0dWFsIHNjcmVlbiB3aWR0aCwg YW5kIHVzaW5nIGEgc2NyZWVud2lkdGggb2YKb25lIGxlc3MgdGhhbiB0aGUgYWN0dWFsIHZh bHVlIGdhcmJsZXMgdGhlIHNjcmVlbi4KClRoaXMgaXMgY3VycmVudGx5IG5vdCBjYXVzaW5n IHRyb3VibGUgaW4gdGVzdGluZyBiZWNhdXNlIHdlIGhhdmUgYSB3b3JrYXJvdW5kCmluIHBs YWNlIGluIHByb2MgVGVybTo6cmVzaXplLgoKRml4IHRoaXMgYnk6Ci0gZGV0ZWN0aW5nIHdo ZW4gcmVhZGxpbmUgd2lsbCByZXBvcnQgYmFjayBsZXNzIHRoYW4gdGhlIGFjdHVhbCBzY3Jl ZW4gd2lkdGgsCi0gYWNjb3JkaW5nbHkgc2V0dGluZyBhIG5ldyB2YXJpYWJsZSByZWFkbGlu ZV9oaWRkZW5fY29scywKLSB1c2luZyByZWFkbGluZV9oaWRkZW5fY29scyBpbiB0dWlfcmVz aXplX2FsbCB0byBmaXggdGhlIHJlc2l6ZSBwcm9ibGVtLCBhbmQKLSByZW1vdmluZyB0aGUg d29ya2Fyb3VuZCBpbiBUZXJtOjpyZXNpemUuCgpUaGUgdGVzdC1jYXNlIGdkYi50dWkvZW1w dHkuZXhwIHNlcnZlcyBhcyByZWdyZXNzaW9uIHRlc3QuCgpUZXN0ZWQgb24geDg2XzY0LWxp bnV4LgoKUFIgdHVpLzMwMzM3CkJ1ZzogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxs YS9zaG93X2J1Zy5jZ2k/aWQ9MzAzMzcKLS0tCiBnZGIvdGVzdHN1aXRlL2xpYi90dWl0ZXJt LmV4cCB8IDEwICsrLS0tLS0tLS0KIGdkYi90dWkvdHVpLXdpbi5jICAgICAgICAgICAgIHwg IDMgKysrCiBnZGIvdXRpbHMuYyAgICAgICAgICAgICAgICAgICB8IDIyICsrKysrKysrKysr KysrKysrKysrKysKIGdkYi91dGlscy5oICAgICAgICAgICAgICAgICAgIHwgIDcgKysrKysr KwogNCBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvbGliL3R1aXRlcm0uZXhwIGIvZ2RiL3Rlc3Rz dWl0ZS9saWIvdHVpdGVybS5leHAKaW5kZXggZDhhOTlkMjc5OGEuLmY1OWE2NmEwOTU4IDEw MDY0NAotLS0gYS9nZGIvdGVzdHN1aXRlL2xpYi90dWl0ZXJtLmV4cAorKysgYi9nZGIvdGVz dHN1aXRlL2xpYi90dWl0ZXJtLmV4cApAQCAtMTEyMiwxNiArMTEyMiwxMCBAQCBuYW1lc3Bh Y2UgZXZhbCBUZXJtIHsKIAkjIGV4cGxpY2l0IGhlcmUuICBUaGlzIGFsc28gc2ltcGxpZmll cyB3YWl0aW5nIGZvciB0aGUgcmVkcmF3LgogCV9kb19yZXNpemUgJHJvd3MgJF9jb2xzCiAJ c3R0eSByb3dzICRfcm93cyA8ICQ6OmdkYl90dHlfbmFtZQotCSMgRHVlIHRvIHRoZSBzdHJh bmdlIGNvbHVtbiByZXNpemluZyBiZWhhdmlvciwgYW5kIGJlY2F1c2Ugd2UKLQkjIGRvbid0 IGNhcmUgYWJvdXQgdGhpcyBpbnRlcm1lZGlhdGUgcmVzaXplLCB3ZSBkb24ndCBjaGVjawot CSMgdGhlIHNpemUgYW5kIHRoZSAiQEAgIiBwcmVmaXggaGVyZS4KLQl3YWl0X2ZvciAicmVz aXplIGRvbmUgJF9yZXNpemVfY291bnQiCisJd2FpdF9mb3IgIkBAIHJlc2l6ZSBkb25lICRf cmVzaXplX2NvdW50LCBzaXplID0gJHtfY29sc314JHtyb3dzfSIKIAlpbmNyIF9yZXNpemVf Y291bnQKLQkjIFNvbWVob3cgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRyYW5zbWl0dGVkIHRv IGdkYiBpcyBvbmUgbGVzcwotCSMgdGhhbiB3aGF0IHdlIHJlcXVlc3QgZnJvbSBleHBlY3Qu ICBXZSBoaWRlIHRoaXMgd2VpcmQKLQkjIGRldGFpbHMgZnJvbSB0aGUgY2FsbGVyLgogCV9k b19yZXNpemUgJF9yb3dzICRjb2xzCi0Jc3R0eSBjb2x1bW5zIFtleHByIHskX2NvbHMgKyAx fV0gPCAkOjpnZGJfdHR5X25hbWUKKwlzdHR5IGNvbHVtbnMgJF9jb2xzIDwgJDo6Z2RiX3R0 eV9uYW1lCiAJd2FpdF9mb3IgIkBAIHJlc2l6ZSBkb25lICRfcmVzaXplX2NvdW50LCBzaXpl ID0gJHtfY29sc314JHtyb3dzfSIKIAlpbmNyIF9yZXNpemVfY291bnQKICAgICB9CmRpZmYg LS1naXQgYS9nZGIvdHVpL3R1aS13aW4uYyBiL2dkYi90dWkvdHVpLXdpbi5jCmluZGV4IDNi MTdjYjhkZDI5Li43MTg2ZmI5N2Q2OCAxMDA2NDQKLS0tIGEvZ2RiL3R1aS90dWktd2luLmMK KysrIGIvZ2RiL3R1aS90dWktd2luLmMKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJn ZGJzdXBwb3J0L2V2ZW50LWxvb3AuaCIKICNpbmNsdWRlICJnZGJjbWQuaCIKICNpbmNsdWRl ICJhc3luYy1ldmVudC5oIgorI2luY2x1ZGUgInV0aWxzLmgiCiAKICNpbmNsdWRlICJ0dWkv dHVpLmgiCiAjaW5jbHVkZSAidHVpL3R1aS1pby5oIgpAQCAtNTI4LDYgKzUyOSw4IEBAIHR1 aV9yZXNpemVfYWxsICh2b2lkKQogICBpbnQgc2NyZWVuaGVpZ2h0LCBzY3JlZW53aWR0aDsK IAogICBybF9nZXRfc2NyZWVuX3NpemUgKCZzY3JlZW5oZWlnaHQsICZzY3JlZW53aWR0aCk7 CisgIHNjcmVlbndpZHRoICs9IHJlYWRsaW5lX2hpZGRlbl9jb2xzOworCiAgIHdpZHRoX2Rp ZmYgPSBzY3JlZW53aWR0aCAtIHR1aV90ZXJtX3dpZHRoICgpOwogICBoZWlnaHRfZGlmZiA9 IHNjcmVlbmhlaWdodCAtIHR1aV90ZXJtX2hlaWdodCAoKTsKICAgaWYgKGhlaWdodF9kaWZm IHx8IHdpZHRoX2RpZmYpCmRpZmYgLS1naXQgYS9nZGIvdXRpbHMuYyBiL2dkYi91dGlscy5j CmluZGV4IDZlYzFjYzBkNDhkLi44MjEzOGExZmMyYyAxMDA2NDQKLS0tIGEvZ2RiL3V0aWxz LmMKKysrIGIvZ2RiL3V0aWxzLmMKQEAgLTExMTYsNiArMTExNiwxMCBAQCBzdGF0aWMgYm9v bCBmaWx0ZXJfaW5pdGlhbGl6ZWQgPSBmYWxzZTsKIAogDAogCisvKiBTZWUgdXRpbHMuaC4g ICovCisKK2ludCByZWFkbGluZV9oaWRkZW5fY29scyA9IDA7CisKIC8qIEluaXRpYWxpemUg dGhlIG51bWJlciBvZiBsaW5lcyBwZXIgcGFnZSBhbmQgY2hhcnMgcGVyIGxpbmUuICAqLwog CiB2b2lkCkBAIC0xMTQ0LDYgKzExNDgsMjQgQEAgaW5pdF9wYWdlX2luZm8gKHZvaWQpCiAK ICAgICAgIC8qIEdldCB0aGUgc2NyZWVuIHNpemUgZnJvbSBSZWFkbGluZS4gICovCiAgICAg ICBybF9nZXRfc2NyZWVuX3NpemUgKCZyb3dzLCAmY29scyk7CisKKyAgICAgIC8qIFJlYWRs aW5lOgorCSAtIGlnbm9yZXMgdGhlIENPTFVNTlMgdmFyaWFibGUgd2hlbiBkZXRlY3Rpbmcg c2NyZWVuIHdpZHRoCisJICAgKGJlY2F1c2UgcmxfcHJlZmVyX2Vudl93aW5zaXplIGRlZmF1 bHRzIHRvIDApCisJIC0gcHV0cyB0aGUgZGV0ZWN0ZWQgc2NyZWVuIHdpZHRoIGluIHRoZSBD T0xVTU5TIHZhcmlhYmxlCisJICAgKGJlY2F1c2UgcmxfY2hhbmdlX2Vudmlyb25tZW50IGRl ZmF1bHRzIHRvIDEpCisJIC0gbWF5IHJlcG9ydCBvbmUgbGVzcyB0aGFuIHRoZSBkZXRlY3Rl ZCBzY3JlZW4gd2lkdGggaW4KKwkgICBybF9nZXRfc2NyZWVuX3NpemUgKHdoZW4gX3JsX3Rl cm1fYXV0b3dyYXAgPT0gMCkuCisJIFNldCByZWFkbGluZV9oaWRkZW5fY29scyBieSBjb21w YXJpbmcgQ09MVU1OUyB0byBjb2xzIGFzIHJldHVybmVkIGJ5CisJIHJsX2dldF9zY3JlZW5f c2l6ZS4gICovCisgICAgICBjaGFyICpjb2x1bW5zX2VudiA9IGdldGVudiAoIkNPTFVNTlMi KTsKKyAgICAgIGdkYl9hc3NlcnQgKGNvbHVtbnNfZW52ICE9IG51bGxwdHIpOworICAgICAg aW50IGNvbHVtbnNfZW52X3ZhbCA9IGF0b2kgKGNvbHVtbnNfZW52KTsKKyAgICAgIGdkYl9h c3NlcnQgKGNvbHVtbnNfZW52X3ZhbCAhPSAwKTsKKyAgICAgIHJlYWRsaW5lX2hpZGRlbl9j b2xzID0gY29sdW1uc19lbnZfdmFsIC0gY29sczsKKyAgICAgIGdkYl9hc3NlcnQgKHJlYWRs aW5lX2hpZGRlbl9jb2xzID49IDApOworICAgICAgZ2RiX2Fzc2VydCAocmVhZGxpbmVfaGlk ZGVuX2NvbHMgPD0gMSk7CisKICAgICAgIGxpbmVzX3Blcl9wYWdlID0gcm93czsKICAgICAg IGNoYXJzX3Blcl9saW5lID0gY29sczsKIApkaWZmIC0tZ2l0IGEvZ2RiL3V0aWxzLmggYi9n ZGIvdXRpbHMuaAppbmRleCBhMzgzMDM2YmNmZS4uMjlmZjM3NmJiNTIgMTAwNjQ0Ci0tLSBh L2dkYi91dGlscy5oCisrKyBiL2dkYi91dGlscy5oCkBAIC0zMzUsNCArMzM1LDExIEBAIGV4 dGVybiB2b2lkIGNvcHlfYml0d2lzZSAoZ2RiX2J5dGUgKmRlc3QsIFVMT05HRVNUIGRlc3Rf b2Zmc2V0LAogCQkJICBjb25zdCBnZGJfYnl0ZSAqc291cmNlLCBVTE9OR0VTVCBzb3VyY2Vf b2Zmc2V0LAogCQkJICBVTE9OR0VTVCBuYml0cywgaW50IGJpdHNfYmlnX2VuZGlhbik7CiAK Ky8qIFdoZW4gcmVhZGxpbmUgZGVjaWRlcyB0aGF0IHRoZSB0ZXJtaW5hbCBjYW5ub3QgYXV0 by13cmFwIGxpbmVzLCBpdCByZWR1Y2VzCisgICB0aGUgd2lkdGggb2YgdGhlIHJlcG9ydGVk IHNjcmVlbiB3aWR0aCBieSAxLiAgVGhpcyB2YXJpYWJsZSBpbmRpY2F0ZXMKKyAgIHdoZXRo ZXIgdGhhdCdzIHRoZSBjYXNlIG9yIG5vdCwgYWxsb3dpbmcgdXMgdG8gYWRkIGl0IGJhY2sg d2hlcmUKKyAgIG5lY2Vzc2FyeS4gIFNlZSBfcmxfdGVybV9hdXRvd3JhcCBpbiByZWFkbGlu ZS90ZXJtaW5hbC5jLiAgKi8KKworZXh0ZXJuIGludCByZWFkbGluZV9oaWRkZW5fY29sczsK KwogI2VuZGlmIC8qIFVUSUxTX0ggKi8KLS0gCjIuMzUuMwoK --------------6PJYzgr0ySHKuuLDgPwC2scX--