From unknown Sat Sep 20 23:52:05 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#67925 <67925@debbugs.gnu.org> To: bug#67925 <67925@debbugs.gnu.org> Subject: Status: 29.1; delete-rectangle fails on multi-column characters Reply-To: bug#67925 <67925@debbugs.gnu.org> Date: Sun, 21 Sep 2025 06:52:05 +0000 retitle 67925 29.1; delete-rectangle fails on multi-column characters reassign 67925 emacs submitter 67925 awrhygty@outlook.com severity 67925 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 20 05:59:09 2023 Received: (at submit) by debbugs.gnu.org; 20 Dec 2023 10:59:09 +0000 Received: from localhost ([127.0.0.1]:38717 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rFuI8-0001eT-GK for submit@debbugs.gnu.org; Wed, 20 Dec 2023 05:59:08 -0500 Received: from lists.gnu.org ([2001:470:142::17]:53006) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rFuI6-0001dx-8w for submit@debbugs.gnu.org; Wed, 20 Dec 2023 05:59:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rFuHx-0000np-LM for bug-gnu-emacs@gnu.org; Wed, 20 Dec 2023 05:58:57 -0500 Received: from mail-tyzapc01olkn2072.outbound.protection.outlook.com ([40.92.107.72] helo=APC01-TYZ-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rFuHv-0001OQ-L9 for bug-gnu-emacs@gnu.org; Wed, 20 Dec 2023 05:58:57 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BhoHF417wI4VwuiLSxo1j3d1hgFKsuGYPxfG8+HZiSHrkmKQ6WDW6AmuHAHyENpY448mjxu7OwpVsO63YxJ4RcFY30g8ft6/9+SHjay+250cF1iYtShl27a38v+s0PoUfa6mbTg5CxR4hnzPwuVhGkNbBle8M4zKMMAtwsbAXS7i9KHaxwykeFyuIxpfcpsMGSuubiLnWGQPswWs+nFm//Xvye0XfIRRMS2hIpGa4+/T9pPEjh56Fzds3MWgnrP2RY0weEYfKobSTYHnmZLoC9HEQhP8nxaPtF2CN5UJnPu2+7Q4J3DLezQRvd41mERZJlzIovY1uqMKss4Xx0dNdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Jgwv45At+GFfunylY36Ye7HNRmTqbKOyhQ9y97owGUs=; b=NAPl0+u6PL6w5XVj36QxSiZsM7LhS0Ucubsron+nWwKIlwWGYW2z3adJHMZgo/pgCoqtuaQqe62g4WFxcU70b1FqE3k2tjzYoHCQNSIAbAoCBPM1A1J6oTJB0zI/PolECxdJhzQpOAC+EvrKAgHsmA+Zc8pnKIyN5QcAx7ji+MJ3QZmMdbka+BMYCgnKAS1i8+0ELGM3Ma4OsOTeMzy6iCRDcxgmKuyRrhReWDJfo81UvFPNuGe6PIKE5INSDCfXQ7gfGf3mOAuE/CAeFFzi/3m6w13Ip4BBWEXG9IFuDQ1W+Y4V4tySDbeivqKSsouBeRaBNmrlUw7atZtJ3HXmsQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Jgwv45At+GFfunylY36Ye7HNRmTqbKOyhQ9y97owGUs=; b=bR+hLFPWsj3UzvmAJjLVaqhlrZWR5vMtlQlm95ywAbf7zYM+S0xtoGpvgZc/JIVhUHMe1Gy0jj5uVDiA8rn6MBS78SSQ3g2eeTRUPESqjK5vgIrU5tH6y7QlFH3f+5rY7ipXUwhhYYi8gpjBduizhJhwChuCGfeszwRGPD3/1r5pBhfGnKuNsPOm76Ai0c3q4v2OOx9cd2OdLzXZ+j8PIErRfG0VyTBNedhGi4goauany2ad37uweVlF89nFcDjP1EPn39jmCeJDHscJbX53fqowLvEacN2EIKcmyoObRsRuZuN0iXRddNQbVbhzHk5HKULxccf/MBMk9XIEblu0QA== Received: from TYZPR01MB3920.apcprd01.prod.exchangelabs.com (2603:1096:400:30::11) by OSQPR01MB6168.apcprd01.prod.exchangelabs.com (2603:1096:604:27c::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.38; Wed, 20 Dec 2023 10:58:50 +0000 Received: from TYZPR01MB3920.apcprd01.prod.exchangelabs.com ([fe80::72b8:7298:fbc2:f8e7]) by TYZPR01MB3920.apcprd01.prod.exchangelabs.com ([fe80::72b8:7298:fbc2:f8e7%5]) with mapi id 15.20.7113.016; Wed, 20 Dec 2023 10:58:50 +0000 From: awrhygty@outlook.com To: bug-gnu-emacs@gnu.org Subject: 29.1; delete-rectangle fails on multi-column characters Date: Wed, 20 Dec 2023 19:58:49 +0900 Message-ID: Content-Type: text/plain; charset=iso-2022-jp X-TMN: [WTSN5EgLA4Lq4PJuxYjS3/C7TkfsREaGIFqfSc3XQwY=] X-ClientProxiedBy: OS0P286CA0028.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:9d::15) To TYZPR01MB3920.apcprd01.prod.exchangelabs.com (2603:1096:400:30::11) X-Microsoft-Original-Message-ID: <86ttodm97a.fsf@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYZPR01MB3920:EE_|OSQPR01MB6168:EE_ X-MS-Office365-Filtering-Correlation-Id: 94e4e82f-80ac-42e1-0537-08dc014aa5fc X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Fti3r7QrxZIQDllKNlXDIo63VxzJqofk9eVsB5h5ZveALTlXY5TLCYW6U8d2NXwu528lycymQXNnIQ3MbI/mD3LQTzgnrsxCySeA88CMqXnqXJxBee5KkWIottVBBCnbhRJnF+L5PUOPDLXAOzoGRaKRfJdV0U/UYmJ2QCEJNEsh++bqcZdpTD5+NnNaMBYkFJ4bRs5iM4IfCp/YW12RJWUASlwN25Hgz9/ouGjTcf0Cyxm9Eard6ldRnNjlGAemA0n5WT2lEGSwa4zZ7SZPsuHZFrDNmNKaDMee4iW4/TMKzTI7ccKwIJKSEVpTgJFj8tovxQOT6AH2nAhwlnEAkl3rWaIuEX/CN7qJoxQoKV3/+ojZVcyGZzvAIM04R6C2icTM/KLJZkoE326is3xvGGRXgzxn0b7fn8gGz5b5XHZDyGOUv0olzsoWpwsk3cL5FHNFsm9etrjDXlnKiYQh4uXByR2PKFfegeBKayPjV67gBtg+Jzv60PvctJ/SjrmVaCBeo/+bVM5oebJORl2UT6qGd1OHfE3Tdj+blgpvyBLMWOA0nlK9V6Tfp1rbok08 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?iso-2022-jp?B?bWdOZ1d6ZDZMZUk4V3FURzJ0NTJaeVRLNFBhU1VCUVA3Uk9IZVcrdGNl?= =?iso-2022-jp?B?eWd2WUV4YjRrRjNPMkhUN0N4QjZoZTRiQ0xWT2Y3VnlsdVQ3UHZFdTA5?= =?iso-2022-jp?B?eWRUaDdsKzlBbVVTMzQwMThUWWFuOS90YitKb2JjVjVoQ3JhTTNCYjdk?= =?iso-2022-jp?B?L0dhdHZCRjU1WWtpMXZPRXJCMHVVdEN3djlnQ2pQWFJIbDRNcm9CSEtT?= =?iso-2022-jp?B?em1nYjIvRW16R0t0bVFkaFpFWGI5cElsVkF3dlExdk9Cc3BaeHhHR3pY?= =?iso-2022-jp?B?RG5sb3pUSDFDQXByVi9VeTBzQlBHK0plR1UxNW9CUkpjSUs1UURMRXRY?= =?iso-2022-jp?B?NVRGUVdWemowKzVqaEl3YzlaWXk5cHZwZlphSVFmdm5aM1kzY1hvYzZw?= =?iso-2022-jp?B?SHlIR0dpR29vamRqZE5SWXkwNEx4dHRqVnNIU21rKzR0RkF1K2VoQkkz?= =?iso-2022-jp?B?V2ROZlo2MUZrblRFRldvc0dGcGxwaEQ2YUErZmcreW4vKzNyZkFuTUow?= =?iso-2022-jp?B?aXUyQjdjSC9GSnN3STg4bXR3WUJiWDF2UTkyK3Z0ZW0yU1RXaTBDK2wr?= =?iso-2022-jp?B?VHpFZEdWTXF2MWJYQkZ1UUx6UUtTZGIxVFUrMW5zQWx0dVo1M21ZS29q?= =?iso-2022-jp?B?QjV6UHNSRklST2lFSDlOVHIzSUxtazN5RStNZ0Z5VEkzQTdyWCtYMTlm?= =?iso-2022-jp?B?NldCbUV1a2g3QWpyTklZeDMvV1lNNHVycG5MV2t6aEM1cm9ML2N6N0pa?= =?iso-2022-jp?B?aEFnUE1HTDlwYVBSZ002Q21vYUdHK1IyT2V5dFVHMFRIblhENDZRVExz?= =?iso-2022-jp?B?MGwrcjlSSTJQb1VIbjI1dzI4QjExUnBTb3UvYUx2amZsUTJtakw3RjdF?= =?iso-2022-jp?B?bkcvcmJDL0RVQmR2RHJwS1RING9mNytqTnJ0aVMzSmpJc2U4aDhBWS91?= =?iso-2022-jp?B?NzNRUnBGcnNxRlU2cFZEWUliZTA4cVV0VnRLL2pkRFA0Ymx1TUhUbzBY?= =?iso-2022-jp?B?QzdSeklPalN0akZQK1NiZHorcnYzSlNZSks1bU9SdUpHKy96aTRlZ0Ux?= =?iso-2022-jp?B?d2hRcVoyVHpYdlloNDJNYUNYNC9RMHIwYzVZOWpGV2U4azFPTnVVb0hE?= =?iso-2022-jp?B?NGJoUE0yWitaWjducWxoTUZXbWh4Zy9RMjk4akZqTTBkTkErVHdvSFEw?= =?iso-2022-jp?B?TDhORmh6OU0xQ2pIU29DY0s5NHZtOVI3SEtiaHA5SzFmdnJqL0RuV1Vy?= =?iso-2022-jp?B?NlB4eXVFWm9YZVdTVW1LMlJWc0JMeFJ4MzhYNHFKWGpqWUIxam9YZzlk?= =?iso-2022-jp?B?eGRmcFovbU5vNlFNRmVqTDZLUUt1dkhFU2FpMytPMFJaYW1FQVFXUlR5?= =?iso-2022-jp?B?VE56eFdZTitWNXQvVU9SU0hZOCs5SHBhK1NjWHJzcG9BQ3NTSWdPMVFm?= =?iso-2022-jp?B?ZE1sWjBCb0trQjYxTXpSakdCMWo2Q0QzYzV3RGVZWURrM1praHVKa3d5?= =?iso-2022-jp?B?T1hVdEFmekpNMytZYUlVL3UyQ09VaFRxWEw5ZDY4Um01WkxqUTBHOEZT?= =?iso-2022-jp?B?blNWQUVXS3NnVkFLd2hJc1I5QlczTXRCUEdmTzV6ZXM5S0VSYVBvT3A1?= =?iso-2022-jp?B?dUNVcnZWMWlocWthd3N1RzRmczhHaGRIR2tQU3krV2FnRXBmb3NJOXA4?= =?iso-2022-jp?B?OUFjQzBncC84YmZocHAwNERjd284ai81c1ZQWmxTbWtoYzdwSXBzbDRB?= =?iso-2022-jp?B?TWZ4RVVURnFWOUhQaVJ1dUJCTlJVMjhtRE4vajl1VW45WHM0cVg0REk9?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 94e4e82f-80ac-42e1-0537-08dc014aa5fc X-MS-Exchange-CrossTenant-AuthSource: TYZPR01MB3920.apcprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Dec 2023 10:58:50.6017 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSQPR01MB6168 Received-SPF: pass client-ip=40.92.107.72; envelope-from=awrhygty@outlook.com; helo=APC01-TYZ-obe.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) If a multi-column character is crossing the start column of a intended rectangle, no characters are deleted in the same line. For example, type 'C-x r d'(delete-rectangle) from column 1 to column 4 of the text below, the second line characters are not deleted. 01234 $B0lFs(B4 01234 result: 04 $B0lFs(B4 04 This does not apply to #'kill-rectangle. kill-rectangle result: 04 $B0l(B4 04 To keep the table layout, multi-column characters crossing the start(or end) column of the rectangle should be replaced with space characters of the same width before deletion. In GNU Emacs 29.1 (build 2, x86_64-w64-mingw32) of 2023-08-02 built on AVALON Windowing system distributor 'Microsoft Corp.', version 10.0.19045 System Description: Microsoft Windows 10 Pro (v10.0.2009.19045.3803) Configured using: 'configure --with-modules --without-dbus --with-native-compilation=aot --without-compress-install --with-tree-sitter CFLAGS=-O2' Configured features: ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY W32NOTIFY PDUMPER PNG RSVG SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XPM ZLIB (NATIVE_COMP present but libgccjit not available) Important settings: value of $LANG: JPN locale-coding-system: cp932 Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t line-number-mode: t indent-tabs-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: None found. Features: (gnutls network-stream nsm mailalias smtpmail textsec uni-scripts url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util url-parse auth-source cl-seq eieio eieio-core cl-macs json map byte-opt gv bytecomp byte-compile url-vars idna-mapping ucs-normalize uni-confusable textsec-check help-mode pp shadow sort mail-extr emacsbug message mailcap yank-media puny dired dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068 epg-config gnus-util text-property-search time-date subr-x mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs cl-lib sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils term/bobcat japan-util rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel dos-w32 ls-lisp disp-table term/w32-win w32-win w32-vars term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads w32notify w32 lcms2 multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 213033 11994) (symbols 48 7296 2) (strings 32 35632 2250) (string-bytes 1 744757) (vectors 16 38986) (vector-slots 8 785110 26020) (floats 8 47 293) (intervals 56 590 0) (buffers 984 12)) From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 20 09:11:02 2023 Received: (at 67925) by debbugs.gnu.org; 20 Dec 2023 14:11:02 +0000 Received: from localhost ([127.0.0.1]:38950 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rFxHq-0006vV-2i for submit@debbugs.gnu.org; Wed, 20 Dec 2023 09:11:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:59096) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rFxHl-0006vB-Tt for 67925@debbugs.gnu.org; Wed, 20 Dec 2023 09:11:00 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rFxHc-00071s-R0; Wed, 20 Dec 2023 09:10:48 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=I7oBg0D4QpNVqjbYfzatC3AlnrG3BoOu8VPW88RL3Yk=; b=FfwGeCG1KWhP5SVtGlA7 4kknhI7oNmrTASGw67Z9Ya8xkT37nTyFGLmjWi8F7QYFgKRMp9alRcbqH8Z939ryZuoFegD/q4mVP AW85cHtESGyuwqjvFWSudDHYy4JCx5g52MG7pE2DYhbyLffkQXwMelu4ED9yuRXEj6NRZZFxJK8js JxP9K0aZH1oDfFHD1byvJnVhl+HiY+Ur7AL8d8mu5ZgaY4Sm6uEpw/V708mzKld4eRyEljIYRh9/N 8kqu9ixVLgeQ8Ty3W5wh3eFPOHOWpFLovCOd3zRu/h7TVUQpuzp6eLxvP3IYyPUWpM+YgbKvKDFdP Ph+AYVScPmDYgw==; Date: Wed, 20 Dec 2023 16:09:56 +0200 Message-Id: <83il4tge2z.fsf@gnu.org> From: Eli Zaretskii To: awrhygty@outlook.com In-Reply-To: (awrhygty@outlook.com) Subject: Re: bug#67925: 29.1; delete-rectangle fails on multi-column characters References: MIME-version: 1.0 Content-type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67925 Cc: 67925@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: awrhygty@outlook.com > Date: Wed, 20 Dec 2023 19:58:49 +0900 > > > If a multi-column character is crossing the start column of a intended > rectangle, no characters are deleted in the same line. > > For example, type 'C-x r d'(delete-rectangle) from column 1 to column 4 > of the text below, the second line characters are not deleted. > > 01234 > $B0lFs(B4 > 01234 > > result: > 04 > $B0lFs(B4 > 04 > > This does not apply to #'kill-rectangle. > kill-rectangle result: > 04 > $B0l(B4 > 04 Thanks. Does the patch below give good results? diff --git a/lisp/rect.el b/lisp/rect.el index 8dc188b..9049e32 100644 --- a/lisp/rect.el +++ b/lisp/rect.el @@ -212,7 +212,10 @@ rectangle-dimensions (cons width height)))) (defun delete-rectangle-line (startcol endcol fill) - (when (= (move-to-column startcol (if fill t 'coerce)) startcol) + ;; We use >= here, not =, for characters that use more than one + ;; column on display, when STARTCOL is in the middle of such a + ;; character. + (when (>= (move-to-column startcol (if fill t 'coerce)) startcol) (delete-region (point) (progn (move-to-column endcol 'coerce) (point))))) From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 21 02:30:58 2023 Received: (at 67925) by debbugs.gnu.org; 21 Dec 2023 07:30:58 +0000 Received: from localhost ([127.0.0.1]:42314 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rGDWE-0006dk-F1 for submit@debbugs.gnu.org; Thu, 21 Dec 2023 02:30:58 -0500 Received: from mail-tyzapc01olkn2051.outbound.protection.outlook.com ([40.92.107.51]:31974 helo=APC01-TYZ-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rGDW9-0006MZ-Tf for 67925@debbugs.gnu.org; Thu, 21 Dec 2023 02:30:57 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=a965tXqUN4R4XIsPO1c82eqRv4pQxn0uB0vRrikxxVT1LTcVo0GZYPOADW4s3CnDAWQwZqFt4lWwmo7dHRFQSeNfsCdWzwNRBILxRQXSGtnYyXjoYPZcnjPyhun1qereeBbWY/TClnCPdltefiz9ydFJ5o7AqLv6Xl4IU0d1sVt0703tSw9Zuo04xQdoSCObXurSeqJj4WBrd7g04T/Zf3G5SpYluBFN3XxSaaVSSozSH9mCmyYllQqkQT3UCQzH7YRFG98PddOp0vFG3EBm58OIlu6P4//wmC91j04dF54meCDesJu+Ia8bQG1Sn8tKSWi2iwhzjEaWmLYxDcY5Qg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=HoDtjVJpk+5JWSdQYjriUqfGSTi3ZIL81hEhp/Tuxq4=; b=a/n7J5k/UxYD9r/LLQz2z53W9xDj4x0OGmF8Zxfdtlee2hX8ozsOV4MGqavJ3l8GPPour3nfXwYSQ4N0+gdpxvBSRFrCrxmSIPInZZgP0ceL3jYKZqxUnWpJPG2gh8h/fSsBdFuTQofihJgxrKVC/o/JQJmyAF8n+AG7iaApTNvmrspxlQ11lF3dYkgGqOyKGYH173rkA+byuew9V85ev21WXWNn1lzrFCGvAoDVK6f7bpoxy9v4y0YsiOZoc/kqnhwF4cUHPhzUIy0OdMfKbydTR3Pq6bQnPC6Sw4gaVSX6BRML3K+HWlwea+cb0g8E4BbxVhG8M4D8ov1eKGfwtA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HoDtjVJpk+5JWSdQYjriUqfGSTi3ZIL81hEhp/Tuxq4=; b=JJaGIAmd46eiU729LYjOQ9QZI4apnhZ8Vei4XIX9AIY+Fl4UnTw6IQsH51QN3kQxiLxmdZoe4DT1rvnbEUHH3q/IoLB+r+pMPN+tmCd/MZAqqssodAXLarOlnAV9hIwh1NpafxE/GYcuhp1EXf52pC/TSthP2JyUeGaxwPHeF4vB1p3Pe1On/BCusMA+9Ha9WO4DVl1es588yEAhM7LbD2DuefcrYmLajU+lNUk5St7LGE2/RFcYJ1Zhgd8gXNvBXm2Ph/9m8CiuBY3P1kxmTCtl+ywkU7Ebgky6f6oz8BHNEGLUiXCxckgaHgCsBobm6OFe4CmXcc355k/WlW1qMg== Received: from TYZPR01MB3920.apcprd01.prod.exchangelabs.com (2603:1096:400:30::11) by TYZPR01MB5327.apcprd01.prod.exchangelabs.com (2603:1096:400:33e::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.18; Thu, 21 Dec 2023 07:30:42 +0000 Received: from TYZPR01MB3920.apcprd01.prod.exchangelabs.com ([fe80::72b8:7298:fbc2:f8e7]) by TYZPR01MB3920.apcprd01.prod.exchangelabs.com ([fe80::72b8:7298:fbc2:f8e7%5]) with mapi id 15.20.7113.016; Thu, 21 Dec 2023 07:30:42 +0000 From: awrhygty@outlook.com To: Eli Zaretskii Subject: Re: bug#67925: 29.1; delete-rectangle fails on multi-column characters In-Reply-To: <83il4tge2z.fsf@gnu.org> (Eli Zaretskii's message of "Wed, 20 Dec 2023 09:10:49 -0500") References: <83il4tge2z.fsf@gnu.org> Date: Thu, 21 Dec 2023 16:30:39 +0900 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Content-Type: text/plain; charset=iso-2022-jp X-TMN: [TOExVN8PAbkAHiC+u3UbG34YG2OVOMs4JtKCOLftIUU=] X-ClientProxiedBy: OSAPR01CA0369.jpnprd01.prod.outlook.com (2603:1096:604:35::21) To TYZPR01MB3920.apcprd01.prod.exchangelabs.com (2603:1096:400:30::11) X-Microsoft-Original-Message-ID: <868r5o6mhs.fsf@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYZPR01MB3920:EE_|TYZPR01MB5327:EE_ X-MS-Office365-Filtering-Correlation-Id: de3781c2-b8c6-43be-1a6b-08dc01f6bc8f X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lGkRj0ANUAuqDxK0jlj4V+uJgcdM2e1HBKJLAk4gvZwH+/rqTWk5X8zKWbhsrR+0Q1RZTAdt3HGHQCsPkqqbZAv/aUboQlbVt/kApMeEkywhxbGZDPQvGYxdYIJE1JFeKjGEfUqGONTx0nshGrjO40iIuCK0Jcb8cArv4vcKCONXAJqIHL/zII6HxTQUCG12bvehdAAW/YexV5St+Z/4MCqGF5029sV7ryGAHsgO6n0N/bRwr5ZqTlr0sXyb2NN+qONkXPHFKYUBSsDtXP6qXgE4VMWJBY2Ad9ukBPUBhseNrbJIfmNCnPCRUt8LKNp8PdM6BJfsg5PBEDPLJ1SQnn390Sblv+CkMpQzevvJQXXMpIXmsGXaD72zihHjTgkqXNzBjL+k/QeGjFdFJcIwxlGCT+boiWVz7M1rZY0w/h3nWPVFlcQ6hAvAaBp1tZ6AGGD8gzJrnbBOIpE0vYrHN9TrqnQsNmnbYJU6U71GF7VTCk1tgPcDfLAxZNGNgTijaF6zkXk9axyGGgM5V23dWyZaUW9JCjo1lJNm2ZaSoVQFkKdm3Ps7bUVhFWvHdtBq X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?iso-2022-jp?B?MGdSSkRNd01LcUNpbXhpd1A0a3BOVE1ZSDc3QkxrbXFuemRZVUhSbG44?= =?iso-2022-jp?B?T2w5cHU2c1lMcjZRUmQwL0M1RTdYSkNhUytMNEtGTGpna2lmU2M2UHBr?= =?iso-2022-jp?B?WUVvYUZOb2VaRzZ5M1NlNnFibnVabWdyNHVIeTMxL1lBQkRRTmRYUlFB?= =?iso-2022-jp?B?dTNhOGxYSDhpdVgyU05BQjhzMytyV3JPZUNaOEltOVBwSDhXbHRldTYz?= =?iso-2022-jp?B?V2Z0MnBUNGFHZllpeEc3MTUxSTVyblFKUlhjdWhWeGRENmJYZkZuSStU?= =?iso-2022-jp?B?N21GOWd5Z1llcmJWVHJQVkpqL1NCNGxDVXlzbEZ1YkxEYVFGd296QjRD?= =?iso-2022-jp?B?d3lSZzdvVDRKMklWcHRVZ3JIQ2ZpNkx6N2d0cDRUbm9yNmp5N0tGemMz?= =?iso-2022-jp?B?MENyL2FXek9Ia0RDL0xnOURhK1o0YXU4Qk5OdVBROEhwME4zZlZueFhx?= =?iso-2022-jp?B?eWFIZnRSbkkrS2NueDIxNVhIZFpsdzVnUEpCYzBWRmJ0ck5STXRTM25L?= =?iso-2022-jp?B?bTNCcUhKT0VaMkFEcC90SW1ZdnhPcnFPTTV0UDFUODBPellqYjJ0YmRj?= =?iso-2022-jp?B?L2orbXd4RDZuU29hY1p6Q21DbHV6Z0pOOHpxbzZOcFFJNGdJUnNVSlV1?= =?iso-2022-jp?B?aVZpWEJad3o5elRuYXlkUUZ2VFk0SzNKS1Z3ZzRIejZhaFBhVVcxWE04?= =?iso-2022-jp?B?dzVLUW5PUk1TWkdKeGx4ZEtpU3p1QlN1clFnb244TTVHUEhpNDAwOU54?= =?iso-2022-jp?B?dXpxSkErOHk3V09uMURqZDRHWUZJRWtrMUNHMWE5Vm5KVzVBZ2dDY29x?= =?iso-2022-jp?B?Rld2elhxM0p5ZlpPcWRkbXh2RmVwRUZmTkl0MXNRMFVyb1h1czNPQVNG?= =?iso-2022-jp?B?SFN3MVFnQUpUQldJQXkwenRkWURONEI4NUg2N1c2MHUwaXY1VzdzQmhn?= =?iso-2022-jp?B?aUR5ejQ0UXc5VmFNUEl6V3N0KzgvQkFmYmxBZFhNYlkzNTdZZmZka2N4?= =?iso-2022-jp?B?NGV2U292L2gyemRJQ2dFUkRTVHdUQkljd1VCT2dCR3locllyU1hEdGcy?= =?iso-2022-jp?B?RkZVRlZWRVppNUFIMDl2ZVJzb0tWYWNxL0NLRzJRM3hvdWt4V3prWlk5?= =?iso-2022-jp?B?bmVBTngzUnpjMHYzY3Q1SktYYkxXRlk4aHlJMzR1bGlXSkJhWWZhZ0Ry?= =?iso-2022-jp?B?SVRqZzU3dHJxcUIzcnZIS2tsWC9jZVEwWk1xUnVEalZpRmRFVXV0NHFR?= =?iso-2022-jp?B?WHhxZHlZQ0N6dzMwRkNhKzVSQTVOVUQ2OWJlaWk4SnJ6TjVhZXlWRjkw?= =?iso-2022-jp?B?SGMwTUpkczYxekE1T2t0UnNoOTd0RVhSbVlHM2p1cGYzWUZhOXNMRHhu?= =?iso-2022-jp?B?Z25KVXNiZm5QS2tZUEtPS3I3QmF3a1UwNlhYOHFsMnRTZk9KN2hsdy9k?= =?iso-2022-jp?B?Qnl5a0ZaMzREdmdVWVl2UUFlQXJ6bHZZdVM0eWx5SjZLeFJoUEJFdTBJ?= =?iso-2022-jp?B?SWlaaTUxdWpDZmphVFhMSHNlTU9LRVZmZnlJdHZqVldFdVRURXdVWisw?= =?iso-2022-jp?B?UHZRaENkeUM3NXVKNlRzZ3o3MS9LQklLM05WdEZVazRwN05ZeE9XQ05t?= =?iso-2022-jp?B?RFNvMzJaZFp2R0hPNWc4bHJqbjZBVDcyajBtdGJFL0p2SnBmaENHUk0r?= =?iso-2022-jp?B?cVpMMVg0NjZBSCtyUms0ZUJ6TGg4VzBGT3htTElxN1VMSWlFUlpUN2Iz?= =?iso-2022-jp?B?YTJIdGZoWk0xK3EwbUdQZkRaNGRWdCt3TDlYOVNYOGRDR2V0a1F0Y1k9?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: de3781c2-b8c6-43be-1a6b-08dc01f6bc8f X-MS-Exchange-CrossTenant-AuthSource: TYZPR01MB3920.apcprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Dec 2023 07:30:42.6552 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR01MB5327 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 67925 Cc: 67925@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> From: awrhygty@outlook.com >> Date: Wed, 20 Dec 2023 19:58:49 +0900 >> >> >> If a multi-column character is crossing the start column of a intended >> rectangle, no characters are deleted in the same line. >> >> For example, type 'C-x r d'(delete-rectangle) from column 1 to column 4 >> of the text below, the second line characters are not deleted. >> >> 01234 >> $B0lFs(B4 >> 01234 >> >> result: >> 04 >> $B0lFs(B4 >> 04 >> >> This does not apply to #'kill-rectangle. >> kill-rectangle result: >> 04 >> $B0l(B4 >> 04 > > Thanks. Does the patch below give good results? > > diff --git a/lisp/rect.el b/lisp/rect.el > index 8dc188b..9049e32 100644 > --- a/lisp/rect.el > +++ b/lisp/rect.el > @@ -212,7 +212,10 @@ rectangle-dimensions > (cons width height)))) > > (defun delete-rectangle-line (startcol endcol fill) > - (when (= (move-to-column startcol (if fill t 'coerce)) startcol) > + ;; We use >= here, not =, for characters that use more than one > + ;; column on display, when STARTCOL is in the middle of such a > + ;; character. > + (when (>= (move-to-column startcol (if fill t 'coerce)) startcol) > (delete-region (point) > (progn (move-to-column endcol 'coerce) > (point))))) This patch gives similar result of kill-rectangle. In the example above, I want all '4' characters moved to same column. And TAB characters crossing the end column are not edited correctly with delete-rectangle if indent-tabs-mode is on. 012345678 8(TAB at head) 012345678 The text above is edited to the text below. 45678 8(TAB at head) 45678 If indent-tabs-mode is off, the result is the text below. 45678 8(four SPCs) 45678 From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 21 03:43:06 2023 Received: (at 67925) by debbugs.gnu.org; 21 Dec 2023 08:43:06 +0000 Received: from localhost ([127.0.0.1]:42353 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rGEe1-0002Kd-GD for submit@debbugs.gnu.org; Thu, 21 Dec 2023 03:43:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:35644) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rGEdv-0002K4-2h for 67925@debbugs.gnu.org; Thu, 21 Dec 2023 03:43:03 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rGEdl-0000qm-Pq; Thu, 21 Dec 2023 03:42:49 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=KEHwgiwyEqHDVE9n6cuxFaZvVm86HH2mrEYjQ69RNRs=; b=GrwLbmMrrqtv 3GlSPh1NLuP/8Rvj/6ZqNkXv3yXPaLPlHM5nKhMa7gW47sAkVfUxvkqjoSW4WHy9XFlKMYd8+ao0d 6z9ViPS6Oq2nj+FHp0gFRRpXNFSQpY6fg/+d5jiHcsufb4Lay0I1ONDP0gpcYetRq8cKX29djqiGU qGruR91gq82b8g0GbrOdB4NkW3UY7CbGSonRaPia0KRzJ/zVerRW79YpVDLeSygmlHmbdNagUz2j0 UeMNh+x/LFDG8Q67vlVDEWvJvuJFmGBg37+Slw1toD40Nw4TQRFWc6uV0BPphCAnoUd+U0b4TpmF1 HC2oTwbK0JdK2OeRR5BiRQ==; Date: Thu, 21 Dec 2023 10:42:35 +0200 Message-Id: <831qbggd50.fsf@gnu.org> From: Eli Zaretskii To: awrhygty@outlook.com In-Reply-To: (awrhygty@outlook.com) Subject: Re: bug#67925: 29.1; delete-rectangle fails on multi-column characters References: <83il4tge2z.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67925 Cc: 67925@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: awrhygty@outlook.com > Cc: 67925@debbugs.gnu.org > Date: Thu, 21 Dec 2023 16:30:39 +0900 > > Eli Zaretskii writes: > > > Thanks. Does the patch below give good results? > > > > diff --git a/lisp/rect.el b/lisp/rect.el > > index 8dc188b..9049e32 100644 > > --- a/lisp/rect.el > > +++ b/lisp/rect.el > > @@ -212,7 +212,10 @@ rectangle-dimensions > > (cons width height)))) > > > > (defun delete-rectangle-line (startcol endcol fill) > > - (when (= (move-to-column startcol (if fill t 'coerce)) startcol) > > + ;; We use >= here, not =, for characters that use more than one > > + ;; column on display, when STARTCOL is in the middle of such a > > + ;; character. > > + (when (>= (move-to-column startcol (if fill t 'coerce)) startcol) > > (delete-region (point) > > (progn (move-to-column endcol 'coerce) > > (point))))) > > This patch gives similar result of kill-rectangle. > In the example above, I want all '4' characters moved to same column. How can that be done, when the first character takes 2 or more columns? Deleting the first character is IMO wrong, since the other lines leave the first character intact. Adding SPC to other lines is also wrong, since delete-rectangle is not supposed to _add_ columns. So I think the effect you see after the patch I proposed is the only reasonable outcome. If that is not good enough for keeping the layout of some table (as you hint in your original report, without showing any details about the mode used in that case), then Lisp programs which allow you to keep such tables aligned should be modified to do something that cannot be done in general by delete-rectangle. IOW, the general issue in delete-rectangle cannot do anything smarter than the above, I think, and any solution specific to some particular implementation or use of rectangles will have to be fixed by code specific to that particular implementation (if that is some mode that is part of Emacs). > And TAB characters crossing the end column are not edited correctly > with delete-rectangle if indent-tabs-mode is on. > > 012345678 > 8(TAB at head) > 012345678 > > The text above is edited to the text below. > 45678 > 8(TAB at head) > 45678 > > If indent-tabs-mode is off, the result is the text below. > 45678 > 8(four SPCs) > 45678 This is a separate issue with the original code. It also happens with kill-rectangle, btw. We could fix it by temporarily binding indent-tabs-mode to nil inside these commands -- would that be acceptable? The result will be that the killed rectangle includes spaces, not the leading TAB. From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 21 09:26:23 2023 Received: (at 67925) by debbugs.gnu.org; 21 Dec 2023 14:26:23 +0000 Received: from localhost ([127.0.0.1]:42711 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rGK0E-00049o-Je for submit@debbugs.gnu.org; Thu, 21 Dec 2023 09:26:23 -0500 Received: from mail-psaapc01olkn2076.outbound.protection.outlook.com ([40.92.52.76]:55265 helo=APC01-PSA-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rGK0B-00049X-6J for 67925@debbugs.gnu.org; Thu, 21 Dec 2023 09:26:20 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QR+fPM55USWTi8VUhjA9leVJzjREjs+WtYbOz9N6TPJIR+ouxrLaZdkLFCj4JdAxQP4f2dRMluSgPMHuV2bMOB67nuNZ2xTFJNXRW/6CJr5fTDLlW6ONu7wtJZtQssBSJRVR+mYuNGMLUJzgk8AR4LeSjz5g17I7dY8sjPHpwIVGjd2pCdnQGIAkfwxZ/Z3Y6Yk7/zr86l+reZ6xErxi1OiH+W5DYHP5kLDBHKt25Zbo2+td7e0k/Cg4CmxeRTpkNsiSgK2xmC2Dsj3AUQ/QFjuMAxogYPgRzzwEraOUhQWcO5/NaKVd2suU2r5+7PuTsaZYBV5rZ52eWlOQYmsIRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=xgTBHcNw1erAuyDRM8DQ15aAHidkfzXIH9+iC1SX2Jc=; b=kyqZgIXKTV4c0txw93Owd7yOeytnQspCOxG/b3sITlDg5+9v7MgDGa9OccED/sc2coBWI9yIcpj3OreILbZcqhMjO6t5kQNp8F+G2XD36SNpd7TaJqC8E92/67r/QdBYwAdaE4CcLImFzqQUEpmVHghXRA+ruQfwvHQ+x0g/+v5rplRGRIH8gyhOkMv9CmcnSqpQD2CxMWtzi0zcETCi7Q6+QU3tWwjdYuLkLSyxdLPW3o/UHK96yaXpfXRdJqoDlmP8qS17RNsTbFi9i4qmE6ReawIa2aIJvnAkc40DTJczg2tUWDLzBOpxfMCWHxIJJhu/xT4ZteflT7Puqhx0Uw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xgTBHcNw1erAuyDRM8DQ15aAHidkfzXIH9+iC1SX2Jc=; b=s1pSBeA6c/t34TfsRmk6gI8g8GOlWI/GaBewZSmnXn517l3ADy1j8xxv44Rr8lESPc8pMTKAze4Utol2XEctaZXU2iEowDK4xUgf1mezvEgT+qke8fD5roTp2Vn0d+z/OTNLRCHLR+PgUUk5vKgyDq2hMCqghWtdXJPk63yF7ns9HYnPx0ZVdMrsxnv6YCOlQyKEPLBds2e3xVzVyD52sDHqkK5iAtQvmX5Tk8QoibvAhCTLRHdc0ZQ9FEEZ5dHDGzgpa/x/29atHLLMxbVfCCoc5M5feWUmqMR7rgYJ4uJMXZASHgszOxVi4DY0uVTIwTTp6fruer49pAywGd+rMg== Received: from TYZPR01MB3920.apcprd01.prod.exchangelabs.com (2603:1096:400:30::11) by KL1PR01MB4671.apcprd01.prod.exchangelabs.com (2603:1096:820:c7::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.20; Thu, 21 Dec 2023 14:26:07 +0000 Received: from TYZPR01MB3920.apcprd01.prod.exchangelabs.com ([fe80::72b8:7298:fbc2:f8e7]) by TYZPR01MB3920.apcprd01.prod.exchangelabs.com ([fe80::72b8:7298:fbc2:f8e7%5]) with mapi id 15.20.7113.019; Thu, 21 Dec 2023 14:26:07 +0000 From: awrhygty@outlook.com To: Eli Zaretskii Subject: Re: bug#67925: 29.1; delete-rectangle fails on multi-column characters In-Reply-To: <831qbggd50.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 21 Dec 2023 03:42:50 -0500") References: <83il4tge2z.fsf@gnu.org> <831qbggd50.fsf@gnu.org> Date: Thu, 21 Dec 2023 23:26:05 +0900 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Content-Type: text/plain X-TMN: [cw3hVtXraEmff8C9JeTPhqeraivUMzv7eUxqVV5+5ew=] X-ClientProxiedBy: TYCP286CA0014.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:26c::8) To TYZPR01MB3920.apcprd01.prod.exchangelabs.com (2603:1096:400:30::11) X-Microsoft-Original-Message-ID: <864jgb7htu.fsf@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYZPR01MB3920:EE_|KL1PR01MB4671:EE_ X-MS-Office365-Filtering-Correlation-Id: 60751082-d20c-4b4d-5890-08dc0230c483 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2CMlaTODweN7gZl8Ryek2g5TrBgNgesnGJ9hnjpOTEBhqs6ESg+kL6gOQeFI6qkKw7BkOxMzdJ2cCICzk9HkTq6JXEcV14babJ57myXgrJy1Q/4UwJOAsxtJucFMlGKodT4pkfI4Z4dNdEx+lgbk0teoRgXjkle7+fLYHgBESvUuFrjjaAIFQC3uZSJN+qAHf+DERn0uWDqvPtrLyAxAZobnT0k0PIdrysRswe2WdjUGPfHM4M9BDqIh3xPLWoY5/ETEgm/HRcliJKJr70iR8H6s+g101Nb4BVhSPHmlZ5E7aslu9gV/eA4sP0XSiC1qmFUPfCYDrgHRUDLULOwGmGxeibPYYdk+ato1/hn2mKyklox932NfpdAcEFYzpPfS9qaUPtG3KxxW0PqoZKPGgM8G9xgNYwbkWJzP6xjLDAJZYDEhJNe4H7ABE0FQtgI9p31ybVCuXKnGtbc13t1mphuVWhJSHyrrM3WetIA4tN9xbS7shAyt8XdqLDtgbhMgx8mW7kaPSkznQne8+TRbZMUA27+J30PRYlSCGCip9xpLgv5H9EpYkDBQOVIqniJG X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+2Vc++WiXj6Pr5EgFhvsdYlcO/XITZUAcAiPLHCXiENQOWtC91YfMAKTByrU?= =?us-ascii?Q?CT98YC4hBDRwenEtK0wDFcGXQVwavZkXm1SubRGgrbLeX1Iu6KIGcmAFUNEG?= =?us-ascii?Q?kwW+lUsUr0maTXFmZEDQzWNEkfUn8CnFhbaE5p/WsYq4Bi8JAcjOjPRI93Bf?= =?us-ascii?Q?NMdYWHnEnWQaRD6ft491BvuIrQty72hkqMtEX41xWmcqw/+A7ALq1U9xqDbv?= =?us-ascii?Q?oHNSkG5ujBF0E/OQLehixs7uTFLo0mP7SuRoCKk8NIPA2KPtfUcP/xUX1si4?= =?us-ascii?Q?2NK9zTxs7Tm7YpsN+bNpt9MNP/ymxdCzMqjm8o+N1fcrKRWc1mrV8iBq3vLR?= =?us-ascii?Q?YohZU8/t1U3ZYGJWJXuF0PqfpQ6CDvuAIR+mJxsBjeSEEAB45x+yIoxpH6iW?= =?us-ascii?Q?aKcszGoKAQkVtMPQKesThPixsPN3Vv6+XVYAMy9ModShhcaUVaFez5/Tdkup?= =?us-ascii?Q?AP+J42xtKhfCZEpvb7JOqzpnpr4FR95FK8d/iL+aPHrgWwHUfe5rZyz/6d6r?= =?us-ascii?Q?CrypYH9xTqEpo66bXKeD9JFboJMBXXL8RN9a90Th/YVXWxqorHq49f4FiT67?= =?us-ascii?Q?vNWWw4s66Lc2uF+5eDWEPaPlOCzoRx8rXtflpQwssQQHt/RNPhi6YGKHw2Zd?= =?us-ascii?Q?93c+p8IThyHHgmsxDgguY20KeLyiB33CMuNu2zHtSSbR20rqb52LECgzWlsU?= =?us-ascii?Q?AqqL6Ax7n+84RPtRiTnqlXXvHFooKsjQ2Uzo0iPYSpmCweDXvBydgfAQL792?= =?us-ascii?Q?BUlmnAzT7aRg3DN2h1m31DxHdkVshjC9CQ2VF7RXNioc4CS1evNXey8pyWBz?= =?us-ascii?Q?FpfXr/8Z30qnEaipiKZG0vZJQosuUwF8hG7QznyW/tGARYp2gNrbS9MVh4Xf?= =?us-ascii?Q?tMfeEU2yqVAwMhKB0VOQhmZxhX+pBmhyVd2v5cWC4Tcu9H1HDWk7dNYFjojN?= =?us-ascii?Q?omJxBcEKz64KjYHz2hHNdKpb+AADAkRJq0gAylCMBkl5ZOP8WWufozgyCKWS?= =?us-ascii?Q?c0tPgNuiUXfkPX+brU/FXMG703Up0q3qQSrMP3WqIAypq2svJefnTPTuStQT?= =?us-ascii?Q?yWpCKl33zLeL14yyPkYu7WH7pFPjE2f+Asmc7WgR7ELdvD1Ej0aWFUzrcknK?= =?us-ascii?Q?ZFiaik1yGhEMe6VwXQ4d2AZEn4yeun+rnrEEK6cQNPS7ktUGRlGXmSIqJ2UU?= =?us-ascii?Q?k40MUV9aPrKfXwdNbtDNKDKsj2QajWzVbamKcMXHYg1W+XL+Q23JVAcuXsY?= =?us-ascii?Q?=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 60751082-d20c-4b4d-5890-08dc0230c483 X-MS-Exchange-CrossTenant-AuthSource: TYZPR01MB3920.apcprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Dec 2023 14:26:06.6957 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR01MB4671 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 67925 Cc: 67925@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> From: awrhygty@outlook.com >> Cc: 67925@debbugs.gnu.org >> Date: Thu, 21 Dec 2023 16:30:39 +0900 >> >> Eli Zaretskii writes: >> >> > Thanks. Does the patch below give good results? >> > >> > diff --git a/lisp/rect.el b/lisp/rect.el >> > index 8dc188b..9049e32 100644 >> > --- a/lisp/rect.el >> > +++ b/lisp/rect.el >> > @@ -212,7 +212,10 @@ rectangle-dimensions >> > (cons width height)))) >> > >> > (defun delete-rectangle-line (startcol endcol fill) >> > - (when (= (move-to-column startcol (if fill t 'coerce)) startcol) >> > + ;; We use >= here, not =, for characters that use more than one >> > + ;; column on display, when STARTCOL is in the middle of such a >> > + ;; character. >> > + (when (>= (move-to-column startcol (if fill t 'coerce)) startcol) >> > (delete-region (point) >> > (progn (move-to-column endcol 'coerce) >> > (point))))) >> >> This patch gives similar result of kill-rectangle. >> In the example above, I want all '4' characters moved to same column. > > How can that be done, when the first character takes 2 or more > columns? Deleting the first character is IMO wrong, since the other > lines leave the first character intact. Adding SPC to other lines is > also wrong, since delete-rectangle is not supposed to _add_ columns. I think wide characters may be replaced with SPC like TAB. >> And TAB characters crossing the end column are not edited correctly >> with delete-rectangle if indent-tabs-mode is on. >> >> 012345678 >> 8(TAB at head) >> 012345678 >> >> The text above is edited to the text below. >> 45678 >> 8(TAB at head) >> 45678 >> >> If indent-tabs-mode is off, the result is the text below. >> 45678 >> 8(four SPCs) >> 45678 > > This is a separate issue with the original code. It also happens with > kill-rectangle, btw. We could fix it by temporarily binding > indent-tabs-mode to nil inside these commands -- would that be > acceptable? The result will be that the killed rectangle includes > spaces, not the leading TAB. I prefer that the killed rectangle has same column for each line. If TAB is included when yanking, the current column affects the width of the yanked string for each line. From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 21 11:46:56 2023 Received: (at 67925) by debbugs.gnu.org; 21 Dec 2023 16:46:57 +0000 Received: from localhost ([127.0.0.1]:45330 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rGMCG-0000pi-Gi for submit@debbugs.gnu.org; Thu, 21 Dec 2023 11:46:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49658) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rGMCE-0000pU-Fr for 67925@debbugs.gnu.org; Thu, 21 Dec 2023 11:46:54 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rGMC2-0002tD-P2; Thu, 21 Dec 2023 11:46:42 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=6Mcu8hjcbPwqj93uYjADalrIAT4iMY7xU9c4ShlsCV0=; b=nD+lxNTeM6np 5pG1tDLfOgF4Ve56ckfkt3j02klOcqpRk95CcXXNniTIwd9dHysb7yYtsI7Ux8q5x60Z3Om7jDGgl nrE9GVEzr81G9TJdaUK5y0ZiphraF6suOP3m9PnILFJiZzPFmNQ4FghNdi88dcXlhrMNGYLSqnTK1 gqZS8UyvyknxlgAvotXocBYMbbuXjv0hjzxpQ0HGWxRWGWnhEBpazzil5WDhDyieIWSxs8jWKO2NX M1Fet0lFgd5DIWcKWHyLIIyIQYtSYlwOsLkru5NzULsO79pFznlSYHQgonyNIH7MmVMa50mOmBGUh QsTX9YQbc2GdWhbt8UAHlQ==; Date: Thu, 21 Dec 2023 18:46:26 +0200 Message-Id: <83r0jffqql.fsf@gnu.org> From: Eli Zaretskii To: awrhygty@outlook.com, Stefan Monnier , Stefan Kangas , Juri Linkov In-Reply-To: (awrhygty@outlook.com) Subject: Re: bug#67925: 29.1; delete-rectangle fails on multi-column characters References: <83il4tge2z.fsf@gnu.org> <831qbggd50.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67925 Cc: 67925@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: awrhygty@outlook.com > Cc: 67925@debbugs.gnu.org > Date: Thu, 21 Dec 2023 23:26:05 +0900 > > Eli Zaretskii writes: > > >> This patch gives similar result of kill-rectangle. > >> In the example above, I want all '4' characters moved to same column. > > > > How can that be done, when the first character takes 2 or more > > columns? Deleting the first character is IMO wrong, since the other > > lines leave the first character intact. Adding SPC to other lines is > > also wrong, since delete-rectangle is not supposed to _add_ columns. > > I think wide characters may be replaced with SPC like TAB. I don't think I agree. Let's see what others think Stefan, Juri, Stefan, any opinions? Does anyone else have an opinion on this? > >> And TAB characters crossing the end column are not edited correctly > >> with delete-rectangle if indent-tabs-mode is on. > >> > >> 012345678 > >> 8(TAB at head) > >> 012345678 > >> > >> The text above is edited to the text below. > >> 45678 > >> 8(TAB at head) > >> 45678 > >> > >> If indent-tabs-mode is off, the result is the text below. > >> 45678 > >> 8(four SPCs) > >> 45678 > > > > This is a separate issue with the original code. It also happens with > > kill-rectangle, btw. We could fix it by temporarily binding > > indent-tabs-mode to nil inside these commands -- would that be > > acceptable? The result will be that the killed rectangle includes > > spaces, not the leading TAB. > > I prefer that the killed rectangle has same column for each line. > If TAB is included when yanking, the current column affects the width of > the yanked string for each line. Again, does anyone else have an opinion here? I tend to think that we should bind indent-tabs-mode to nil inside those functions. From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 21 16:13:10 2023 Received: (at 67925) by debbugs.gnu.org; 21 Dec 2023 21:13:10 +0000 Received: from localhost ([127.0.0.1]:45591 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rGQLt-0001Jg-N2 for submit@debbugs.gnu.org; Thu, 21 Dec 2023 16:13:09 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:1311) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rGQLs-0001JS-Hj for 67925@debbugs.gnu.org; Thu, 21 Dec 2023 16:13:08 -0500 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id BC08681FC1; Thu, 21 Dec 2023 16:12:58 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1703193177; bh=8NZykp2FuQaJuuSwDcAtdOtZ/MWlBFfPPm62VQ+1UBw=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=C5zpGHPpQSe05wTqu7Z5pdcluCrGV+pNYnCpn9Mnh6wCpflbR+KBm7Xk+38gMGN8L xHJnqj3INURgIADat8aTGnw65m6g6Rx3uQhE2rDjlto1LpVyQIUB+YqPMMYSqTrs5N HNpl0BxNVDOsGzCMs73vJ66BbjVm2Q5M0YMB1CXoUHLa04Q2F5digffJ6sFxdq2C1W 0kg5J/SHfMGMXuPbJgObiZ/e50j6RdzGHNT0J/T0cjoPEd384sSkThv607FUcCZ11/ zi6W5dlhObONMmP+NpCFwhNweWrlLn3lbsnT4fS7YhDcCxtZVkvOhkgIu6oYdA0ZiZ 7svA55yD1BCVA== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 97F628162C; Thu, 21 Dec 2023 16:12:57 -0500 (EST) Received: from pastel (65-110-221-238.cpe.pppoe.ca [65.110.221.238]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 5CF36120588; Thu, 21 Dec 2023 16:12:57 -0500 (EST) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#67925: 29.1; delete-rectangle fails on multi-column characters In-Reply-To: <83r0jffqql.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 21 Dec 2023 18:46:26 +0200") Message-ID: References: <83il4tge2z.fsf@gnu.org> <831qbggd50.fsf@gnu.org> <83r0jffqql.fsf@gnu.org> Date: Thu, 21 Dec 2023 16:12:56 -0500 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.170 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain T_SCC_BODY_TEXT_LINE -0.01 - X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67925 Cc: 67925@debbugs.gnu.org, Juri Linkov , Stefan Kangas , awrhygty@outlook.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) >> I think wide characters may be replaced with SPC like TAB. > I don't think I agree. Let's see what others think Stefan, Juri, > Stefan, any opinions? Does anyone else have an opinion on this? I think in those circumstances, all options suck, and I suspect that the preferred behavior will depend on not only who you ask, but also what the specific case looks like :-( IME inserting SPCs is wrong when the text you started from doesn't include any whitespace at all, for example. And not inserting SPC tends to be equally wrong when alignment needs to be preserved. There's no way to win, unless we can find a way to let the user control the behavior, which seems difficult to do without making the UI overlay complex. Stefan From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 22 03:18:28 2023 Received: (at 67925) by debbugs.gnu.org; 22 Dec 2023 08:18:28 +0000 Received: from localhost ([127.0.0.1]:46027 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rGajj-00019C-QZ for submit@debbugs.gnu.org; Fri, 22 Dec 2023 03:18:28 -0500 Received: from relay4-d.mail.gandi.net ([217.70.183.196]:57645) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rGaji-00018x-4z for 67925@debbugs.gnu.org; Fri, 22 Dec 2023 03:18:26 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 79878E0007; Fri, 22 Dec 2023 08:18:13 +0000 (UTC) From: Juri Linkov To: Eli Zaretskii Subject: Re: bug#67925: 29.1; delete-rectangle fails on multi-column characters In-Reply-To: <83r0jffqql.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 21 Dec 2023 18:46:26 +0200") Organization: LINKOV.NET References: <83il4tge2z.fsf@gnu.org> <831qbggd50.fsf@gnu.org> <83r0jffqql.fsf@gnu.org> Date: Fri, 22 Dec 2023 09:56:20 +0200 Message-ID: <86bkai64a3.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-GND-Sasl: juri@linkov.net X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 67925 Cc: 67925@debbugs.gnu.org, Stefan Kangas , Stefan Monnier , awrhygty@outlook.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) >> >> This patch gives similar result of kill-rectangle. >> >> In the example above, I want all '4' characters moved to same column. >> > >> > How can that be done, when the first character takes 2 or more >> > columns? Deleting the first character is IMO wrong, since the other >> > lines leave the first character intact. Adding SPC to other lines is >> > also wrong, since delete-rectangle is not supposed to _add_ columns. >> >> I think wide characters may be replaced with SPC like TAB. > > I don't think I agree. Let's see what others think Stefan, Juri, > Stefan, any opinions? Does anyone else have an opinion on this? Does the same problem exist for deleting rectangles in texts with a variable-pitch font? If you draw a vertical line it will cross a lot of characters in the middle. From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 22 06:46:26 2023 Received: (at 67925) by debbugs.gnu.org; 22 Dec 2023 11:46:26 +0000 Received: from localhost ([127.0.0.1]:46154 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rGdz0-00019W-99 for submit@debbugs.gnu.org; Fri, 22 Dec 2023 06:46:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:39770) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rGdyy-000137-5g for 67925@debbugs.gnu.org; Fri, 22 Dec 2023 06:46:25 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rGdyk-0003a9-Sw; Fri, 22 Dec 2023 06:46:11 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=U2fdTXCYPz6QO4KC9ACXAH7UwXnwp4rsU/xjsarvQk8=; b=EbOhLFlCvMD7 NoZ5ZDwQgCltCBw8XjtbXjeaHnS8LYwMzoCyQqkd23Bu5fCmUZYfQSIoiWpmfJ33nxEc6NO0oHXcB y0BOuDbl0ncN0jNEVP+1eo4msrYw499rfKCQLlntyimeNQa0IXezHsbo4wMxv0x8HQ3ufMvFsJePi lkflnEm8nAzhd4Y1MpIdGD6ARXnw9h27Fdd0F1PVq1pIp7GJUF5f7F5wnkMJgQaBrfgNLsWWGjIIh lszZ7cHA1urqfKK4XDrQXF5YxDfTzNZg29hgnvFuYYn5o1qzp2dotJH2+UliFgNhrR0X3m2ImnRU4 BvNY4XKw3YpJJYgi6FnGzg==; Date: Fri, 22 Dec 2023 13:45:56 +0200 Message-Id: <83il4qfojv.fsf@gnu.org> From: Eli Zaretskii To: Juri Linkov In-Reply-To: <86bkai64a3.fsf@mail.linkov.net> (message from Juri Linkov on Fri, 22 Dec 2023 09:56:20 +0200) Subject: Re: bug#67925: 29.1; delete-rectangle fails on multi-column characters References: <83il4tge2z.fsf@gnu.org> <831qbggd50.fsf@gnu.org> <83r0jffqql.fsf@gnu.org> <86bkai64a3.fsf@mail.linkov.net> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67925 Cc: 67925@debbugs.gnu.org, stefankangas@gmail.com, monnier@iro.umontreal.ca, awrhygty@outlook.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Juri Linkov > Cc: awrhygty@outlook.com, Stefan Monnier , > Stefan Kangas , 67925@debbugs.gnu.org > Date: Fri, 22 Dec 2023 09:56:20 +0200 > > >> >> This patch gives similar result of kill-rectangle. > >> >> In the example above, I want all '4' characters moved to same column. > >> > > >> > How can that be done, when the first character takes 2 or more > >> > columns? Deleting the first character is IMO wrong, since the other > >> > lines leave the first character intact. Adding SPC to other lines is > >> > also wrong, since delete-rectangle is not supposed to _add_ columns. > >> > >> I think wide characters may be replaced with SPC like TAB. > > > > I don't think I agree. Let's see what others think Stefan, Juri, > > Stefan, any opinions? Does anyone else have an opinion on this? > > Does the same problem exist for deleting rectangles in texts > with a variable-pitch font? If you draw a vertical line > it will cross a lot of characters in the middle. No, since columns still count correctly, as long as Emacs considers all characters to be of the same single-column width. IOW, the rectangle commands work by columns, not by pixel-coordinates. From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 22 09:27:35 2023 Received: (at 67925) by debbugs.gnu.org; 22 Dec 2023 14:27:35 +0000 Received: from localhost ([127.0.0.1]:46253 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rGgUw-0005yW-Qw for submit@debbugs.gnu.org; Fri, 22 Dec 2023 09:27:35 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:35980) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rGgUr-0005yD-NN for 67925@debbugs.gnu.org; Fri, 22 Dec 2023 09:27:33 -0500 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 9A6D1441486; Fri, 22 Dec 2023 09:27:19 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1703255238; bh=JCOrEnl33OFUt7CEb5tH5c6wqvbcPHMQh4lzIfbPPFg=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=f0QIPIEgpELyrtPHRjtboGsdOQzWYBIale/lv0aJDZLpwllVTKPzH7F35kr96Pavl 5t0K3e/qU6wkdW/h7ytNdOLwLtNkTFq1VMLQ4JHmkTVnIwwPGWTbRA/ugOXM/tCwis Zfa4pScmZH5e2nO+gAx2DPxq7IYgo0A+ETi8M8Sj5B/rw6y0aBi1ux61r53kccm43F To1iAh2asnr/JetGyFwntwNkNlXCMzHwtE0U8dpm4tqAdNTxUL3Atsdx5OGQr+C6G9 27SgLKEAofUwOCnCWK1vijBAUhG4BvrHyJNmZ6MPaq56le+/an7emeU00+9M065lT0 S8UHC3H8wGvtw== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 484ED44147B; Fri, 22 Dec 2023 09:27:18 -0500 (EST) Received: from pastel (65-110-221-238.cpe.pppoe.ca [65.110.221.238]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 0DC6C1205BC; Fri, 22 Dec 2023 09:27:18 -0500 (EST) From: Stefan Monnier To: Juri Linkov Subject: Re: bug#67925: 29.1; delete-rectangle fails on multi-column characters In-Reply-To: <86bkai64a3.fsf@mail.linkov.net> (Juri Linkov's message of "Fri, 22 Dec 2023 09:56:20 +0200") Message-ID: References: <83il4tge2z.fsf@gnu.org> <831qbggd50.fsf@gnu.org> <83r0jffqql.fsf@gnu.org> <86bkai64a3.fsf@mail.linkov.net> Date: Fri, 22 Dec 2023 09:27:16 -0500 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.073 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain T_SCC_BODY_TEXT_LINE -0.01 - X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67925 Cc: Eli Zaretskii , 67925@debbugs.gnu.org, Stefan Kangas , awrhygty@outlook.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Does the same problem exist for deleting rectangles in texts > with a variable-pitch font? No, with variable pitch fonts there is also a problem but it's a different one. Basically the rectangle commands operate by pretending your font is monospaced. You can see it with the rectangle highlighting of `C-x SPC` where the "rectangle" won't be very rectangular in the presence of variable pitch fonts. For such cases, it's not even clear what The Right Thing=E2=84=A2 should be. Stefan From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 23 12:37:06 2023 Received: (at 67925) by debbugs.gnu.org; 23 Dec 2023 17:37:06 +0000 Received: from localhost ([127.0.0.1]:51147 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rH5vu-0007MA-F4 for submit@debbugs.gnu.org; Sat, 23 Dec 2023 12:37:06 -0500 Received: from relay1-d.mail.gandi.net ([2001:4b98:dc4:8::221]:36409) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rH5vs-0007LJ-Ju for 67925@debbugs.gnu.org; Sat, 23 Dec 2023 12:37:04 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id E1749240006; Sat, 23 Dec 2023 17:36:49 +0000 (UTC) From: Juri Linkov To: Stefan Monnier Subject: Re: bug#67925: 29.1; delete-rectangle fails on multi-column characters In-Reply-To: (Stefan Monnier's message of "Fri, 22 Dec 2023 09:27:16 -0500") Organization: LINKOV.NET References: <83il4tge2z.fsf@gnu.org> <831qbggd50.fsf@gnu.org> <83r0jffqql.fsf@gnu.org> <86bkai64a3.fsf@mail.linkov.net> Date: Sat, 23 Dec 2023 19:30:03 +0200 Message-ID: <86a5q0j084.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-GND-Sasl: juri@linkov.net X-Debbugs-Envelope-To: 67925 Cc: Eli Zaretskii , 67925@debbugs.gnu.org, Stefan Kangas , awrhygty@outlook.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit >> Does the same problem exist for deleting rectangles in texts >> with a variable-pitch font? > > No, with variable pitch fonts there is also a problem but it's > a different one. Basically the rectangle commands operate by pretending > your font is monospaced. You can see it with the rectangle highlighting > of `C-x SPC` where the "rectangle" won't be very rectangular in the > presence of variable pitch fonts. > > For such cases, it's not even clear what The Right Thing™ should be. I tried "Block Area Selection" in LibreOffice with variable pitch fonts, and the vertical lines are not straight: --=-=-= Content-Type: image/png Content-Disposition: inline; filename=rect_libre.png Content-Transfer-Encoding: base64 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 --=-=-= Content-Type: text/plain So maybe it's impossible to draw straight rectangle boundaries. OTOH, with monospaced fonts LibreOffice selects such Block Area on the reported text: --=-=-= Content-Type: image/png Content-Disposition: inline; filename=mono_libre.png Content-Transfer-Encoding: base64 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 7LuumQAAAABJRU5ErkJggg== --=-=-= Content-Type: text/plain and DEL deletes the selected text. So maybe Emacs should do the same. --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 23 13:08:00 2023 Received: (at 67925) by debbugs.gnu.org; 23 Dec 2023 18:08:00 +0000 Received: from localhost ([127.0.0.1]:51200 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rH6Po-000505-5y for submit@debbugs.gnu.org; Sat, 23 Dec 2023 13:08:00 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:38852) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rH6Pm-0004zt-KQ for 67925@debbugs.gnu.org; Sat, 23 Dec 2023 13:07:59 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rH6Pb-00082L-1o; Sat, 23 Dec 2023 13:07:47 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=V8uYeY4hiRoo7y71UFzrYpacIptgkWJAJjo6gW4OfqY=; b=Lisi74dWxQJI 2YodQgCwcNmAUFver+8F/zPCp73hCLrW78Y2n7T342fLvtby1JVnLkT2AKmERTVNWZThG3dI8KpTv p2qWA8wJN6cpb4pVNEJf8ax0wftLxLMhjOtGHfpLfHpwu3VLjwuQnNq2S9v5YXN/xAHGy3pbu/cPO be9fwIDSv+HFEYrfrLddz/T17PbtCFsuaZT8HKaVOb8ugaYt2zvfoSdxSpNDCUTkzYgnCToQArCl7 0IGJg7hzqFoWJ/AEbGsTZgI5VoFwIVxgOS4wPsNfc6CFd0h9nDMMzqgPYR7SqbaPY+dPXPQLdA4Vx u5UQGaau0YzWzS1pMPp4Cw==; Date: Sat, 23 Dec 2023 20:07:38 +0200 Message-Id: <83le9kdc7p.fsf@gnu.org> From: Eli Zaretskii To: Juri Linkov In-Reply-To: <86a5q0j084.fsf@mail.linkov.net> (message from Juri Linkov on Sat, 23 Dec 2023 19:30:03 +0200) Subject: Re: bug#67925: 29.1; delete-rectangle fails on multi-column characters References: <83il4tge2z.fsf@gnu.org> <831qbggd50.fsf@gnu.org> <83r0jffqql.fsf@gnu.org> <86bkai64a3.fsf@mail.linkov.net> <86a5q0j084.fsf@mail.linkov.net> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67925 Cc: 67925@debbugs.gnu.org, stefankangas@gmail.com, monnier@iro.umontreal.ca, awrhygty@outlook.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Juri Linkov > Cc: Eli Zaretskii , awrhygty@outlook.com, Stefan Kangas > , 67925@debbugs.gnu.org > Date: Sat, 23 Dec 2023 19:30:03 +0200 > > OTOH, with monospaced fonts LibreOffice selects such Block Area > on the reported text: > > > and DEL deletes the selected text. So maybe Emacs should do the same. The patch I posted in https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67925#8 is supposed to do precisely that (and does it at least in this simple example). From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 24 03:34:58 2023 Received: (at 67925) by debbugs.gnu.org; 24 Dec 2023 08:34:58 +0000 Received: from localhost ([127.0.0.1]:51677 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rHJwo-0002Yt-1Q for submit@debbugs.gnu.org; Sun, 24 Dec 2023 03:34:58 -0500 Received: from relay8-d.mail.gandi.net ([2001:4b98:dc4:8::228]:50457) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rHJwm-0002Yb-0m for 67925@debbugs.gnu.org; Sun, 24 Dec 2023 03:34:56 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 204CF1BF204; Sun, 24 Dec 2023 08:34:41 +0000 (UTC) From: Juri Linkov To: Eli Zaretskii Subject: Re: bug#67925: 29.1; delete-rectangle fails on multi-column characters In-Reply-To: <83le9kdc7p.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 23 Dec 2023 20:07:38 +0200") Organization: LINKOV.NET References: <83il4tge2z.fsf@gnu.org> <831qbggd50.fsf@gnu.org> <83r0jffqql.fsf@gnu.org> <86bkai64a3.fsf@mail.linkov.net> <86a5q0j084.fsf@mail.linkov.net> <83le9kdc7p.fsf@gnu.org> Date: Sun, 24 Dec 2023 10:31:06 +0200 Message-ID: <86zfy0rohh.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-GND-Sasl: juri@linkov.net X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 67925 Cc: 67925@debbugs.gnu.org, stefankangas@gmail.com, monnier@iro.umontreal.ca, awrhygty@outlook.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) >> OTOH, with monospaced fonts LibreOffice selects such Block Area >> on the reported text: >> >> and DEL deletes the selected text. So maybe Emacs should do the same. > > The patch I posted in > > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67925#8 > > is supposed to do precisely that (and does it at least in this simple > example). I confirm this, so probably it's impossible to do anything better than that. From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 24 09:52:30 2023 Received: (at 67925) by debbugs.gnu.org; 24 Dec 2023 14:52:31 +0000 Received: from localhost ([127.0.0.1]:51886 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rHPqA-0002Hm-Jo for submit@debbugs.gnu.org; Sun, 24 Dec 2023 09:52:30 -0500 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]:57398) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rHPq5-0002HT-PV for 67925@debbugs.gnu.org; Sun, 24 Dec 2023 09:52:29 -0500 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-33666fb9318so3115867f8f.2 for <67925@debbugs.gnu.org>; Sun, 24 Dec 2023 06:52:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1703429533; x=1704034333; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:from:to:cc:subject:date:message-id:reply-to; bh=YE5p0I6gxtWFbmA7uk9wW4q/vHunXcxQ0AOhsw4bZrw=; b=XID3B3vIqxFSRiTBHAHE1D62aRVqPvZJNT2k+ksw3HNWWAUY83M3+ACyjr79v4r3h1 HRzhKIqq/AcYTKDUMQfOyIT5gatUPVRcXW4Uni+ONlzEvy6aD09M/qmRMM+KdMrQOs9n Rbj3VoLKqN7eunssGl/grztbfFiC9c714xDC7LLXVxEerWyX7Ntx3kLN5LOo3lWWL9yd 1ASPadRr6Vzn25IQhBuMmIcNCbkf0taKotBGymcfi8j9AMLUNyhUT2y1IkfwS0KGosDx frkQLkyW3vWzpAjPiEt8EAudVNxobtHu7vd7eiWsmMe/3fQbCflsHN9Z/ScY0/QXsSsL 9gaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703429533; x=1704034333; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=YE5p0I6gxtWFbmA7uk9wW4q/vHunXcxQ0AOhsw4bZrw=; b=DW7sSp/hC06M0F+aJwPICjAKMhISmxwGLDJq2SfnJNYw0U4D/ZJbOwK/Uexw4UZdTj Et29rDKt7RiXXiEpk7iLBpXjnHsk6TnVQ/H3GUCRP552oV0dXTzcuMCP8JhzR/gIoLd8 H04OQz3h1iaVhiImE/IW1ZPsIXPQrk4IzuWjwMdzGhs35Yx6734AYYHpyBfr84X2G47O eosgvW+uvK/wivglRCCoGNkXYJBbkjJMPuWLjKcocxV3oORo3J24x+O7x1sKyN5KNyUK RNrQEDPIr5+7mgkr828xWKwp4jkfkEQTmDKa5JOkNfxsqTwFyJRprD5qgrm6FhmH1oRK QXYA== X-Gm-Message-State: AOJu0Yxlu7rv7jLWdvJ8X2U/goHZTvrPZ16fcE+NxSo156dxZMStkzhb VyIQVUfganZB1KIvWWD4nBVc4jVazj7mUkY/aSc= X-Google-Smtp-Source: AGHT+IEQYkntYTbhrVc1trTussx1rVAxHxsXjOiaJlVAuQf2hFLf5fLXk7jwTyWuTw7/RRYnFSQgGOVDIQlxB/p3z24= X-Received: by 2002:a5d:40c6:0:b0:336:6e5f:97c2 with SMTP id b6-20020a5d40c6000000b003366e5f97c2mr2632359wrq.60.1703429533379; Sun, 24 Dec 2023 06:52:13 -0800 (PST) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Sun, 24 Dec 2023 06:52:13 -0800 From: Stefan Kangas In-Reply-To: <86zfy0rohh.fsf@mail.linkov.net> References: <83il4tge2z.fsf@gnu.org> <831qbggd50.fsf@gnu.org> <83r0jffqql.fsf@gnu.org> <86bkai64a3.fsf@mail.linkov.net> <86a5q0j084.fsf@mail.linkov.net> <83le9kdc7p.fsf@gnu.org> <86zfy0rohh.fsf@mail.linkov.net> MIME-Version: 1.0 Date: Sun, 24 Dec 2023 06:52:13 -0800 Message-ID: Subject: Re: bug#67925: 29.1; delete-rectangle fails on multi-column characters To: Juri Linkov , Eli Zaretskii Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 67925 Cc: 67925@debbugs.gnu.org, monnier@iro.umontreal.ca, awrhygty@outlook.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Juri Linkov writes: >>> OTOH, with monospaced fonts LibreOffice selects such Block Area >>> on the reported text: >>> >>> and DEL deletes the selected text. So maybe Emacs should do the same. >> >> The patch I posted in >> >> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67925#8 >> >> is supposed to do precisely that (and does it at least in this simple >> example). > > I confirm this, so probably it's impossible to do anything better than that. Doing as well as LibreOffice is probably already not bad. Perhaps we should add a comment pointing to this discussion, to explain why we have chosen this particular heuristic. From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 28 04:01:39 2023 Received: (at 67925-done) by debbugs.gnu.org; 28 Dec 2023 09:01:39 +0000 Received: from localhost ([127.0.0.1]:38423 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rImGo-0007vY-Ou for submit@debbugs.gnu.org; Thu, 28 Dec 2023 04:01:39 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:33608) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rImGl-0007r5-Nc for 67925-done@debbugs.gnu.org; Thu, 28 Dec 2023 04:01:37 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rImGg-0002Bh-97; Thu, 28 Dec 2023 04:01:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=PsHZXVeW1bjC1oSjOrd3ShjcQNzmo+S5+pJMExFDGqs=; b=ISxNaN+OOvNd x2eDVhnVBOfJHLCCo803Ulzhoa02RBY9Ul9uBtBM0NCOQnRyMGy0JEUptTtqgJFsWp/xhFM1PBKL3 6TRsdmhwJRA6zgIPrDUV8MWkQCZNlbtwEFvxYEd07QAB7qOS+TNXnh9XDRq0R2Ot4mZh0NHeVU1z3 sqlfldKcV/kDm4P+N4lx/7p1Nh4lejsT79OGa93b2zjL2umKgi5Xm2Gqj2+z6kRtG1BrXf4BJWdPn xXWgG4LeQ98FCtWR9bkPhEji3mtb0AC3rOfIaJ3o6poXP9xC8O0/Wd/lfVwYgkrLb8W7qLxDlXOmB dRs495quATHhXTlOdZbwBg==; Date: Thu, 28 Dec 2023 11:01:13 +0200 Message-Id: <8334vm8zvq.fsf@gnu.org> From: Eli Zaretskii To: Stefan Kangas In-Reply-To: (message from Stefan Kangas on Sun, 24 Dec 2023 06:52:13 -0800) Subject: Re: bug#67925: 29.1; delete-rectangle fails on multi-column characters References: <83il4tge2z.fsf@gnu.org> <831qbggd50.fsf@gnu.org> <83r0jffqql.fsf@gnu.org> <86bkai64a3.fsf@mail.linkov.net> <86a5q0j084.fsf@mail.linkov.net> <83le9kdc7p.fsf@gnu.org> <86zfy0rohh.fsf@mail.linkov.net> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67925-done Cc: 67925-done@debbugs.gnu.org, awrhygty@outlook.com, monnier@iro.umontreal.ca, juri@linkov.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Stefan Kangas > Date: Sun, 24 Dec 2023 06:52:13 -0800 > Cc: monnier@iro.umontreal.ca, awrhygty@outlook.com, 67925@debbugs.gnu.org > > Juri Linkov writes: > > >>> OTOH, with monospaced fonts LibreOffice selects such Block Area > >>> on the reported text: > >>> > >>> and DEL deletes the selected text. So maybe Emacs should do the same. > >> > >> The patch I posted in > >> > >> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67925#8 > >> > >> is supposed to do precisely that (and does it at least in this simple > >> example). > > > > I confirm this, so probably it's impossible to do anything better than that. > > Doing as well as LibreOffice is probably already not bad. > > Perhaps we should add a comment pointing to this discussion, to explain > why we have chosen this particular heuristic. Thanks. Since it sounds like everyone agreed with the solution I proposed, I have now installed that on the master branch, and I'm therefore closing this bug. From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 03 14:01:13 2024 Received: (at 67925-done) by debbugs.gnu.org; 3 Jan 2024 19:01:13 +0000 Received: from localhost ([127.0.0.1]:53212 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rL6UI-0004pp-2u for submit@debbugs.gnu.org; Wed, 03 Jan 2024 14:01:13 -0500 Received: from mail-psaapc01olkn2011.outbound.protection.outlook.com ([40.92.52.11]:6497 helo=APC01-PSA-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rL6UC-0004ZZ-Ep for 67925-done@debbugs.gnu.org; Wed, 03 Jan 2024 14:01:08 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cWc5ic/1tQwjEy/OQ4wClXhjmc/LU+ZhAyU13Yeb/0TVRsMKuJEXUosLj3VVuTTYDuRjzGYYmCWn/wcqBPwywVt7JSm31AiQmnIG8AgFk8+DeBMtHWqshvQGpwWJWm7lWtdofKvPWfETe4+ALPfgvrAuDurAvTaNRyfQlW6zNzHmlFpqXt8SNaUiYlqwljypoy8+U0VJoxdXuz6s75M2F7Ku5Lyg4WzPTXg3mQSpY5j+9/8ZZub7MURC95Sv2T9jD6woMbtX+cE4AfBJZ+jyEcx0E9KUdvt/i/Th321O8msh+bLe/vg5pVdUCXhulA9Y/j1xtDvHS8p+oHf9ju05Bg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=duCpnQwbRhs14k553S/sO0FfbKz+6USvh0PNksNvPzU=; b=FlX+nsGkoGwPg2F4hhS32hVjf+E/6S35CjJyGmAgKPy+GvQut24i5ijHJRsd+na2ECZnvwlsnQv1/gQk78utO5Esq3moATbEEYF6mG95A8IZPVGQEUsWbW+mjWDpa0HGU9aqZDzzRcGJZKG6uNkCsGeDMl2tMpj70A3qgwDt5454kd41XE2V/7q/37KW/z4otj4W1GIKultFR8LuUrDn7n0h6/x3ckJ9sbvNTrgtM7c8/ZgVHLgr/54KHaooFirX5T/J6N+s67kmNCXww+9/bdbEb8E72ZgDnibexNM2de0qABxw5evYU0uJnieKdnuZhI8w/T/Ly2bx8qCaVM4hqg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=duCpnQwbRhs14k553S/sO0FfbKz+6USvh0PNksNvPzU=; b=h9bvyhqj8AHfQKcM3HF3vYdDkIrD64HnbVcPnT0ffgb/gl5nYrPA8LY+Luk+GTeVl/OL/U45JLsSFEpLn1CdwJxJM7cbiSraaFLTMqVyujxk/a6Fry0cAI5wUdtHkxZsGSQ9rlBS/m7xTAy+I3eQ+JSevRtF6NIaGioyjv/MwsKIP5jLvl9nJlMXZ8wDLy+K9J8yGu9y/uBT+FKZCtmf2/um76wyJouH0E2mqVY1IJGfeQeOyoYxjXFQXAGq4F7udwB6Mvp0SkcUzxwVx/RgH9OxBOote1NknUUhBJ/e5TaBhk7jMUWMOjZ+fPxRq2S+WhtKH61pNymSIg1mjGS/Cw== Received: from TYZPR01MB3920.apcprd01.prod.exchangelabs.com (2603:1096:400:30::11) by SI2PR01MB3788.apcprd01.prod.exchangelabs.com (2603:1096:4:10e::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.13; Wed, 3 Jan 2024 19:00:52 +0000 Received: from TYZPR01MB3920.apcprd01.prod.exchangelabs.com ([fe80::72b8:7298:fbc2:f8e7]) by TYZPR01MB3920.apcprd01.prod.exchangelabs.com ([fe80::72b8:7298:fbc2:f8e7%5]) with mapi id 15.20.7159.013; Wed, 3 Jan 2024 19:00:52 +0000 From: awrhygty@outlook.com To: Eli Zaretskii Subject: Re: bug#67925: 29.1; delete-rectangle fails on multi-column characters In-Reply-To: <8334vm8zvq.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 28 Dec 2023 04:01:31 -0500") References: <83il4tge2z.fsf@gnu.org> <831qbggd50.fsf@gnu.org> <83r0jffqql.fsf@gnu.org> <86bkai64a3.fsf@mail.linkov.net> <86a5q0j084.fsf@mail.linkov.net> <83le9kdc7p.fsf@gnu.org> <86zfy0rohh.fsf@mail.linkov.net> <8334vm8zvq.fsf@gnu.org> Date: Thu, 04 Jan 2024 04:00:49 +0900 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Content-Type: text/plain; charset=iso-2022-jp X-TMN: [Dic1FZ2/WNHsAHNDFkbr43avQO0AZLF8DT7qKbrtZfI=] X-ClientProxiedBy: TYCPR01CA0045.jpnprd01.prod.outlook.com (2603:1096:405:1::33) To TYZPR01MB3920.apcprd01.prod.exchangelabs.com (2603:1096:400:30::11) X-Microsoft-Original-Message-ID: <86frze5jj2.fsf@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYZPR01MB3920:EE_|SI2PR01MB3788:EE_ X-MS-Office365-Filtering-Correlation-Id: 61fdca7a-54d5-4aed-13ae-08dc0c8e4de3 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jx4suZqjJGqkAfZpY9qtcGafDZWUmP/AEIJ2MHkWngux6B84Xra8WdOPywujXI3nTI/iogYkNusr7D1Hy1qnMp/MgFQV6b1X33DCyVVUDcAaGfMNERqhdrvsWgxhY5euxICl5KqqrgJ3O9aOM2ihMK5y8FLmVROHFyf4jgFlYNO+gxTiCd3lm4bc8rQY8BKumNJc0mlMUuDCxKZEHtdHNml0NoSocWPZBtVpFRANc5CZqztZx6SkH/1rR8oOD5QNRKEV3Ifr6j4//3cyHEBZDCIWvxRgLIUTeLWplzGf8C+HfrkG4TEo/tpCuXhsbLbsDNHRmCbSlq69xYlpSj/D1VtMsK7EbcX6RDLMVpI6Z6FgSOfrIstIuy3GHl67rSAGt5BZqGO5ojtA0SxQqQmT6wOtVPGluCw+JlDw26ag/hyauEBu5uKPErF7/v6zLFilRO2Hz2jYE6wOqKZSm2NwtvcrQC9dNktVOjvHmGLX9wf5HvCIA0SXKhD8EFWVevRiPGIk26ye+XLFJ4pEM3+LFwdzPRsWbD2QwC6Q1XExeGQdpYwmfwZVLg0qKrQPsLdrKSEXEiskdyW59iJwWjp3J+R8M4d+jpULrLLzmzoRy98= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?iso-2022-jp?B?eFVrMk5rQVdtOU9SMHBJYmNXSHlwWGVTNk1OelRzY3JoVnp0Nm9QWnVZ?= =?iso-2022-jp?B?TnRtODBtWnFIY1AxYUF0OVZZOHJxa2RkUGZ1RWFhNGQxT1hmUjlzQm1k?= =?iso-2022-jp?B?a0FMZExmUkZQS0t5NlZrNWVmK2NLVmI3TVRFRW52TTFMZGIzd0dpMThi?= =?iso-2022-jp?B?eHRvN2ZEWC9NMVVwR0ZHNVRkVEFUNno1Mmw5bmFsdnFMNzF1WldRQ1k2?= =?iso-2022-jp?B?cFhZK3p6aFRGd1U2OGZaMFZyRm9WMTBYWnVHRmk5WkRDL1RncVJtS3lG?= =?iso-2022-jp?B?SGFxSmJ4c0ovZWlFM3Vka1hsZHhNOEd0RG5KRUFTNkdGTkM2ckpZaHNP?= =?iso-2022-jp?B?Q1RyQitLaDJ2UVdlN2xCMjl3Q1pKQTgxQ2hjMkFBbWJRM1l6R1NBakJ1?= =?iso-2022-jp?B?Y2l0RGs2R2Fhc3lXVEcwOXl4VHhhS1dtRzgxdUZWM1RqWW9OK3dTVUdV?= =?iso-2022-jp?B?T3FGYzJUNkFXZXJVc0tBS2w1MVZLZDQvcFdUN3Mxd2FtSDR6NDVxU0xL?= =?iso-2022-jp?B?OHZVKy9IcGdBaEhvUyt0NEZLTFNoZmpEdUl2VUJDVzZ0Mm4xQlNPYUp4?= =?iso-2022-jp?B?bm9mbDhkNWVDa0IreXBndHFpbUxGd3NHR2hNRjk2WFlZZzlnUDkyVnZm?= =?iso-2022-jp?B?dktmNmJDVGhjbGpadkI1RWJrY1ZTWERPRVpkaVpEMTJvdkIwNjZ6NUNw?= =?iso-2022-jp?B?NmdFMndLbUxvTnZ5d3RoWjZRRjhVSVJIT1k3SFI4UU03TlJ4blVsMlc1?= =?iso-2022-jp?B?eGRJd3NTRFFxU1h5akZXS2RkNkFtcVpGS3JaQnc1bHEySUZyTStWUXF5?= =?iso-2022-jp?B?UDhCM3oxeGxFTGdLNGI1am51MDBta0xYdlVUcjc4ZzlTN0dCajc3dnlI?= =?iso-2022-jp?B?Y1ZyMGEyQ3E4MFZzWGhXdDlHK2U1d2ZVdytieDk0Mmp0ejhTV0RqZGxa?= =?iso-2022-jp?B?NEVvNUtWeW9BdjJqTkI5T3oxcnpiTmxIem1xdUdXTHBzZkNQUTc5d3U3?= =?iso-2022-jp?B?ZURmUzVmVjgrdzhsc3VuRG9JcGVzamxuN2lPNTlPZHA1SXROS1ZNakJs?= =?iso-2022-jp?B?Qzh5M09kREpuVElWYXA0WDJIU0lTeVBpbTcyZWJwSlRVbVhkSGNyQy93?= =?iso-2022-jp?B?aStYbjR6dGE1cHZZaFJGalU4bHJWN2xnSGluZWltY05HcFdUa1BPaU5Z?= =?iso-2022-jp?B?c2hwS1pZZC93Mm9ZaVlUMGdPWkhNYmtyTDdhc3JRUVhCRGlUY1hGQUFG?= =?iso-2022-jp?B?UWlGNUhUSTRuMktRWU0yWHlDTTZVSFB2ZU5VMXJGM2pkSlkweE40MjZj?= =?iso-2022-jp?B?Z1VEKy9IYUl3bUlvZ2lKQmhUQ0ZETWxHRG9sSlZhSjBNczE0dGNyMVlh?= =?iso-2022-jp?B?OFBoM0hkbk9zNEFRYStyMHREck52c29UbDFORFJNdHlDWFRyYlZIcldS?= =?iso-2022-jp?B?RjEydVUrblhYbXNvVThRNWltWlE2R1g3V0U1YmVDSkgzcG02Q200RHBO?= =?iso-2022-jp?B?YjJBNlpaMjNabmcwcWQ1ejRSUnQ5TFZrL2sxamd2ZWtJdmZsbFpTWkcy?= =?iso-2022-jp?B?U3FFMnNKTFZaeE95L3E1YlJPR0l4WFhHTDZDOUlYRmtGYUo4a1ZNZ1dz?= =?iso-2022-jp?B?WTlXZURJc2lITkRpbDc3QllXMVhrOFZCRjhrcGdCSjZUU1kxdTFSWGQv?= =?iso-2022-jp?B?VXIxL3YxNkNIOFhYOFdlV3VxaHE4VkNxQzhLODVxUk1NcXNsRXUyN0RW?= =?iso-2022-jp?B?MVErMjFQRUhpRFQvZ1p1YmJ4ZGZ0N1Y2QjI5VWVvTE0wWHFLb2FMcUk9?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 61fdca7a-54d5-4aed-13ae-08dc0c8e4de3 X-MS-Exchange-CrossTenant-AuthSource: TYZPR01MB3920.apcprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jan 2024 19:00:51.6984 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SI2PR01MB3788 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 67925-done Cc: 67925-done@debbugs.gnu.org, Stefan Kangas , monnier@iro.umontreal.ca, juri@linkov.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> From: Stefan Kangas >> Date: Sun, 24 Dec 2023 06:52:13 -0800 >> Cc: monnier@iro.umontreal.ca, awrhygty@outlook.com, 67925@debbugs.gnu.org >> >> Juri Linkov writes: >> >> >>> OTOH, with monospaced fonts LibreOffice selects such Block Area >> >>> on the reported text: >> >>> >> >>> and DEL deletes the selected text. So maybe Emacs should do the same. >> >> >> >> The patch I posted in >> >> >> >> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67925#8 >> >> >> >> is supposed to do precisely that (and does it at least in this simple >> >> example). >> > >> > I confirm this, so probably it's impossible to do anything better >> > than that. >> >> Doing as well as LibreOffice is probably already not bad. >> >> Perhaps we should add a comment pointing to this discussion, to explain >> why we have chosen this particular heuristic. > > Thanks. Since it sounds like everyone agreed with the solution I > proposed, I have now installed that on the master branch, and I'm > therefore closing this bug. The preview of 'C-x r t'(string-rectangle) seems different from the result. Before: 12345 $B0lFs(B5 12345 Preview: 1x2345 x $BFs(B5 1x2345 Result: 1x2345 $B0l(Bx$BFs(B5 1x2345 From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 03 14:31:59 2024 Received: (at 67925) by debbugs.gnu.org; 3 Jan 2024 19:31:59 +0000 Received: from localhost ([127.0.0.1]:53243 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rL6y3-0002iV-Tw for submit@debbugs.gnu.org; Wed, 03 Jan 2024 14:31:59 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:41824) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rL6xq-0002i5-4F for 67925@debbugs.gnu.org; Wed, 03 Jan 2024 14:31:54 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rL6xe-0003jM-Sz; Wed, 03 Jan 2024 14:31:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=xcL7lUo82nta25IjullFbguczQ99q8gB/kf0O3THrcg=; b=NIIbpZEzezE3ktWMJIyu QPoq6KxeiNXbDqhMvegCUuQIlbcm0XCLuycFI1y9fVXf0CsVF0xZx23AtQR0lOLrsdS1IOiIAEs+e wd4JaWAVCNcpbi/YOlpKdyQpnbGmzCNFApGwNdoe5d8xMYO4EwTSAhYfa2woLtGrthKbuuKtLeDTH fmNPMtnsG+YZ6TOp/HTF93sqbSQAqeJYHq6icVY+LcY9lNl4NniP3EHDTE9iPjfvHpXZmS6HOi1tm XqNWoYUa5ws3RFDj9aHLIIPjaeiZbcBkThhFO52Zc5ddpaPnihlqLMC0HOJB7CPEvcJv7/vVzP0+L u5FPTx1s3zMQzA==; Date: Wed, 03 Jan 2024 21:31:12 +0200 Message-Id: <83jzoqxlhb.fsf@gnu.org> From: Eli Zaretskii To: awrhygty@outlook.com In-Reply-To: (awrhygty@outlook.com) Subject: Re: bug#67925: 29.1; delete-rectangle fails on multi-column characters References: <83il4tge2z.fsf@gnu.org> <831qbggd50.fsf@gnu.org> <83r0jffqql.fsf@gnu.org> <86bkai64a3.fsf@mail.linkov.net> <86a5q0j084.fsf@mail.linkov.net> <83le9kdc7p.fsf@gnu.org> <86zfy0rohh.fsf@mail.linkov.net> <8334vm8zvq.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 67925 Cc: 67925@debbugs.gnu.org, stefankangas@gmail.com, monnier@iro.umontreal.ca, juri@linkov.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: awrhygty@outlook.com > Cc: Stefan Kangas , juri@linkov.net, > monnier@iro.umontreal.ca, 67925-done@debbugs.gnu.org > Date: Thu, 04 Jan 2024 04:00:49 +0900 > > Eli Zaretskii writes: > > >> From: Stefan Kangas > >> Date: Sun, 24 Dec 2023 06:52:13 -0800 > >> Cc: monnier@iro.umontreal.ca, awrhygty@outlook.com, 67925@debbugs.gnu.org > >> > >> Juri Linkov writes: > >> > >> >>> OTOH, with monospaced fonts LibreOffice selects such Block Area > >> >>> on the reported text: > >> >>> > >> >>> and DEL deletes the selected text. So maybe Emacs should do the same. > >> >> > >> >> The patch I posted in > >> >> > >> >> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67925#8 > >> >> > >> >> is supposed to do precisely that (and does it at least in this simple > >> >> example). > >> > > >> > I confirm this, so probably it's impossible to do anything better > >> > than that. > >> > >> Doing as well as LibreOffice is probably already not bad. > >> > >> Perhaps we should add a comment pointing to this discussion, to explain > >> why we have chosen this particular heuristic. > > > > Thanks. Since it sounds like everyone agreed with the solution I > > proposed, I have now installed that on the master branch, and I'm > > therefore closing this bug. > > The preview of 'C-x r t'(string-rectangle) seems different from the > result. > > Before: > 12345 > $B0lFs(B5 > 12345 > > Preview: > 1x2345 > x $BFs(B5 > 1x2345 > > Result: > 1x2345 > $B0l(Bx$BFs(B5 > 1x2345 I don't see this as a significant problem, and don't think we should waste time and efforts on trying to "fix" it. The current preview doesn't look less correct or more incorrect than what we had before the changes. Sorry, I don't want to try to change anything due to this new issue. From unknown Sat Sep 20 23:52:05 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Thu, 01 Feb 2024 12:24:10 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator