From unknown Sun Aug 10 09:11:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77544: (WIP) [PATCH] Prettify page separators. Resent-From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 05 Apr 2025 05:02:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 77544@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.1743829277464 (code B ref -1); Sat, 05 Apr 2025 05:02:02 +0000 Received: (at submit) by debbugs.gnu.org; 5 Apr 2025 05:01:17 +0000 Received: from localhost ([127.0.0.1]:41061 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u0vee-00007P-UD for submit@debbugs.gnu.org; Sat, 05 Apr 2025 01:01:17 -0400 Received: from lists.gnu.org ([2001:470:142::17]:46030) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u0veb-000077-Nj for submit@debbugs.gnu.org; Sat, 05 Apr 2025 01:01:14 -0400 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 1u0veW-0006G6-6J for bug-gnu-emacs@gnu.org; Sat, 05 Apr 2025 01:01:08 -0400 Received: from mail-ot1-x343.google.com ([2607:f8b0:4864:20::343]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u0veU-00045J-C3 for bug-gnu-emacs@gnu.org; Sat, 05 Apr 2025 01:01:07 -0400 Received: by mail-ot1-x343.google.com with SMTP id 46e09a7af769-72bc3987a05so1464943a34.1 for ; Fri, 04 Apr 2025 22:01:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743829264; x=1744434064; darn=gnu.org; h=mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=9LIIq7v1p6xLhq1WZ+RncoHVuIWEketpuAheoYkeIeE=; b=K1PRRtaa95zJ2C/GZp3cGE0ueCXD+viMnPE/Asxs1Hsrp3j10rT34YSBuXl5fLJ/Er ZlFwknwCROH7Y2GG43n5vEuH+X8h93Jl3pt8t9QCDUgL8sOiuZ7Mdup3wlAPwUoMDa/X e3WfCLSshI1OpLhO4NgCaaNSs88L25CNT5oq2wNIVdQ5Suqf5ezGKSYo2bc/WyrKAWLa cB0WVVQ7oAmpB3xKtmABkHD1Z9cGv2OpKGxFzVbm7Uo1TOC7o00LtuApuF2hQnAlagFL K3gA4GHX1ULb5WEd+9sXc9qyQWeEAe/ykK5gV0ZaSko6P5VPYvLD/+azNSgPnJ7PjkwH yL6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743829264; x=1744434064; h=mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=9LIIq7v1p6xLhq1WZ+RncoHVuIWEketpuAheoYkeIeE=; b=XMzqzR3VvkgR8HADlOBYD2DbOGIsRoBfSxEbjlWY3Lx7X4dCZNIxnFW7+lF0fnU75I wwP/bVlI1Fh69dTe7DZIjETJh1iOQUGrYkAFN3PFQ5W6YLCklllDYzvC5hZ4646GZfvT dlhKIKgdX60mmURxFdZyuPtaIoOFeqlCOb8KYcc5+xUsR8C3YOEdSNEkOsQZ5+umnGoK yDmyl+1Sb7CT8Z0K/D/sOaKicrFz338q3S4e2y4FkJV7Y6HJL/Mdqs6hH8djrWVWM2nA /TRXaADdpZ5NQJ1LfZAMGieFPV6BJN0V4LNRqi6qhV/FD8Mdkl0EBSsNrd8MwtnS8lJ9 FbLA== X-Gm-Message-State: AOJu0YzqaZJAoWw0Yfz2rl7+ad+l67wvBO/Nk7ezyuNQ6MPbiCFlJuEn SWHcOiq4clv+Xvp6hvO1E6aSifWXK1VUkrW4BC6AjhhdD+hQ+ajArUcBuTPf X-Gm-Gg: ASbGncvpJsIKWErGjPh4Sz7+bVzatQHfZuAF2i4k8HJkkwvlR7pX9Lr3TxeDbMbo4Va 3NxkC6ZBm8qe+Z2XJso3gKJUWImTOaN0f4XKU7+7stOrSdh3o4JDEyn1SER37C0wkjspk21Z47k mvMaHnNFIl73FfaTbvn92X4bLSIsqioZ6tp1k3DxlfMenygPOD3Sgb01f/OdbSQOGKW4+zKSvj7 AG6SdCDtVG1ex8Os6mODoKqOwTPhebpNLUCPYggl7uziQZh9BatftlyF1wq6fL+1t2pNP30isv1 AklmyVxC5afz X-Google-Smtp-Source: AGHT+IHmS4NLTyS6HkuTpNUHkqyAbKvK7sxA6P2sHxA1xLPI27AmNDL/XaVRBp/Z7YQXc0O1iY6Qiw== X-Received: by 2002:a05:6830:14c1:b0:727:3115:4e78 with SMTP id 46e09a7af769-72e2e1f98c9mr5872372a34.13.1743829264110; Fri, 04 Apr 2025 22:01:04 -0700 (PDT) Received: from fedora ([2806:10ae:e:79da::1]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-72e30529b4asm953452a34.36.2025.04.04.22.01.03 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Apr 2025 22:01:03 -0700 (PDT) From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Date: Fri, 04 Apr 2025 23:01:02 -0600 Message-ID: <87bjtbyzg1.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=2607:f8b0:4864:20::343; envelope-from=eg642616@gmail.com; helo=mail-ot1-x343.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.2 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Tags: patch This feature prettify the page separator character (^L) with a horizontal line (to end of buffer) only if the character is at beginning of line. Unlike popular packages like page-break-lines and form-feed(-st), this one is written in C and does not present performance problems (I hope). Content analysis details: (1.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2001:470:142:0:0:0:0:17 listed in] [list.dnswl.org] 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit (eg642616[at]gmail.com) -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (eg642616[at]gmail.com) 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 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.2 (/) --=-=-= Content-Type: text/plain Tags: patch This feature prettify the page separator character (^L) with a horizontal line (to end of buffer) only if the character is at beginning of line. Unlike popular packages like page-break-lines and form-feed(-st), this one is written in C and does not present performance problems (I hope). This package tries to be close to page-break-lines and be an alternative to make-separator-line. This partially works, however there are a few bugs that I can't find a solution for: - It won't display the characters inserted in front. I want to make it similar to display-fill-column, that only insert the horizontal line character if the row is empty. - For some reason it inserts newlines after inserting the character. - The highlighting stops when inserting or deleting newlines from previous or next line. I would like to hear your suggestions. Thanks. --=-=-= Content-Type: text/patch Content-Disposition: attachment; filename=0001-Prettify-page-separators.-bug.patch >From 1e058cc212fd5b46b2aed60b3ef3846f7a89bb15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?El=C3=ADas=20Gabriel=20P=C3=A9rez?= Date: Fri, 4 Apr 2025 22:17:23 -0600 Subject: [PATCH] Prettify page separators. (bug#) Prettify page separator characters (^L) with a horizontal line. * src/xdisp.c (get_next_display_element): TODO: --- src/xdisp.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/xdisp.c b/src/xdisp.c index c396b213b92..9d5056d2bce 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -8430,6 +8430,34 @@ get_next_display_element (struct it *it) int lface_id = 0; int escape_glyph; + if (c == '\f' && it->current_x == it->first_visible_x) + { + const int save_face_id = it->face_id; + const int save_char = it->char_to_display; + const int save_current_x = it->current_x; + const int save_ascent = it->ascent; + const int save_descent = it->descent; + + face_id = + merge_faces (it->w, Qtrailing_whitespace, 0, it->face_id); + XSETINT (it->ctl_chars[0], 0); + ctl_len = 0; + + it->char_to_display = '-'; + it->face_id = face_id; + for ( ; it->current_x - it->end_charpos <= it->last_visible_x; it->current_x++) + { + PRODUCE_GLYPHS (it); + } + + it->current_x = save_current_x; + it->face_id = save_face_id; + it->char_to_display = save_char; + it->ascent = save_ascent; + it->descent = save_descent; + goto display_control; + } + /* Handle control characters with ^. */ if (ASCII_CHAR_P (c) && it->ctl_arrow_p) -- 2.49.0 --=-=-= Content-Type: text/plain -- - E.G via GNU Emacs and Org. --=-=-=-- From unknown Sun Aug 10 09:11:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77544: (WIP) [PATCH] Prettify page separators. Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 05 Apr 2025 07:41:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= , Gerd =?UTF-8?Q?M=C3=B6llmann?= Cc: 77544@debbugs.gnu.org Received: via spool by 77544-submit@debbugs.gnu.org id=B77544.17438388419413 (code B ref 77544); Sat, 05 Apr 2025 07:41:01 +0000 Received: (at 77544) by debbugs.gnu.org; 5 Apr 2025 07:40:41 +0000 Received: from localhost ([127.0.0.1]:41332 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u0y8u-0002Rl-NL for submit@debbugs.gnu.org; Sat, 05 Apr 2025 03:40:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43614) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u0y8r-0002RS-OQ for 77544@debbugs.gnu.org; Sat, 05 Apr 2025 03:40:38 -0400 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 1u0y8m-0002s5-Ax; Sat, 05 Apr 2025 03:40:32 -0400 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=iUpTfBMBcaii72JieraRiyPfkNwsOPHSzXOoGKuiJpM=; b=SnmKq/8RXtkwD+r/gW9S blfP7pn7FE+2hPYuFyvialMOPhyTXGsPOIXUnlR6FglNmW15BOAxhiaM3OwIIpaVJytsT2uSNc6yh /O5MXk07CrlRVjEjWyATuLLsVTWIf5M9eDJefV5fysspXgowCTmHQJ8qQtyrXqlbI72gSAL0Zl8sp y5dfzCjgDIp+vBLe8qJG90n+CByVjR1keRAaxLeHD+0E3/06VjeM/qYNoeb+8gM3bUdAsURC0HrOM S2nuSZeFAao1v19uAXSP7AWkywsHHFzvPU8ZRwEo2BEY7nUVvD4+blI8+pITaR8/rtxLRDN3Mrmp1 L37alYY9s3aFEg==; Date: Sat, 05 Apr 2025 10:40:25 +0300 Message-Id: <86ldsfxdhy.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87bjtbyzg1.fsf@gmail.com> (message from Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= on Fri, 04 Apr 2025 23:01:02 -0600) References: <87bjtbyzg1.fsf@gmail.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) 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: Elijah Gabe Pérez > Date: Fri, 04 Apr 2025 23:01:02 -0600 > > This feature prettify the page separator character (^L) with > a horizontal line (to end of buffer) only if the character > is at beginning of line. > > Unlike popular packages like page-break-lines and form-feed(-st), this > one is written in C and does not present performance problems (I hope). > > This package tries to be close to page-break-lines and be an alternative > to make-separator-line. > > This partially works, however there are a few bugs that I can't find a > solution for: > > - It won't display the characters inserted in front. > I want to make it similar to display-fill-column, that only > insert the horizontal line character if the row is empty. > - For some reason it inserts newlines after inserting the character. > - The highlighting stops when inserting or deleting newlines from > previous or next line. > > I would like to hear your suggestions. Thanks, please see a fewe comments below. > --- a/src/xdisp.c > +++ b/src/xdisp.c > @@ -8430,6 +8430,34 @@ get_next_display_element (struct it *it) > int lface_id = 0; > int escape_glyph; > > + if (c == '\f' && it->current_x == it->first_visible_x) IMO, this condition is incorrect. You should test for the previous character being a newline. The it->first_visible_x condition will be wrong in a continuation line, when the window is hscrolled, and when display-line-numbers-mode is turned on, as well as in some other situations (line/wrap-prefix etc.). > + { > + const int save_face_id = it->face_id; > + const int save_char = it->char_to_display; > + const int save_current_x = it->current_x; > + const int save_ascent = it->ascent; > + const int save_descent = it->descent; > + > + face_id = > + merge_faces (it->w, Qtrailing_whitespace, 0, it->face_id); > + XSETINT (it->ctl_chars[0], 0); > + ctl_len = 0; > + > + it->char_to_display = '-'; > + it->face_id = face_id; > + for ( ; it->current_x - it->end_charpos <= it->last_visible_x; it->current_x++) This condition is also incorrect, IMO: it->current_x is the pixel coordinate, whereas it->end_charpos is a character position in the buffer, so you cannot meaningfully subtract them. Also, I think this will be incorrect when the window has display margins. The right way to figure out the usable width is to call the function window_box_width or window_box_right_offset. These wrong conditions are probably the reasons for at least part of the problems you see with this patch. > + { > + PRODUCE_GLYPHS (it); > + } I think it's not a good idea to call PRODUCE_GLYPHS inside get_next_display_element. And in any case, this implementation is unnecessarily complicated, because we should probably use the display vector instead. The only complication here is that the number of glyphs in the display vector cannot be the one you need, since we need to produce the number of glyphs according to the window width. So we will need some special flag in the iterator object to keep producing glyphs from the display vector until we hit the right edge of the window's text area. Alternatively, we could implement this entirely in the terminal-specific back-end of the display engine (xterm.c, w32term.c, etc.), where we could detect the "^L" glyph sequence and replace it with a horizontal line of a suitable width and thickness. That would allow us to produce a separator that is much better-looking than just showing a long line of dashes. In any case, this must be an optional feature, so we will need a user option to control it, by default off. Adding Gerd in case he has ideas, suggestions, or further comments. Thanks for working on this. From unknown Sun Aug 10 09:11:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77544: (WIP) [PATCH] Prettify page separators. Resent-From: Gerd =?UTF-8?Q?M=C3=B6llmann?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 05 Apr 2025 08:54:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= , 77544@debbugs.gnu.org Received: via spool by 77544-submit@debbugs.gnu.org id=B77544.174384319922268 (code B ref 77544); Sat, 05 Apr 2025 08:54:02 +0000 Received: (at 77544) by debbugs.gnu.org; 5 Apr 2025 08:53:19 +0000 Received: from localhost ([127.0.0.1]:41478 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u0zHD-0005n5-3X for submit@debbugs.gnu.org; Sat, 05 Apr 2025 04:53:19 -0400 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]:44238) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u0zH9-0005mm-Am for 77544@debbugs.gnu.org; Sat, 05 Apr 2025 04:53:16 -0400 Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-43cf58eea0fso14278035e9.0 for <77544@debbugs.gnu.org>; Sat, 05 Apr 2025 01:53:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743843188; x=1744447988; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=wmZFKvXqWRFeGh6MOveeFw9ko03hSz8L48c9rXemjg0=; b=RxOIDJBrxpEljg7WyIrfAK596ITaLZk+oXs7lGyZ7VgXNAtAUJVjjRW8ws2sTMF+jO xlvzHVp85QiBOWPF37DB8A+jBk8AH+t5kg67bYKir1IdqZo4l0EF5a5gRCr3GaUsgGbh qpfy2qIOxVHWMRqsyGuBWoQVKH4+nxPD48CudnDfl2a/XWOeHHA/uGacUU7DHdgyUAZI 9OMNlr3bA/siVbeXV13P1YR0DqWhtDLVqrfhhvpNteeiesROPw3gO72KcfR4Wm+w5KKs ENc7KEl8YWTcN+sMfa3gwt2xBxIgSk2cF423EQJOBjw8hWgGAjpAgimS/OradVRI0zzs maOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743843188; x=1744447988; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=wmZFKvXqWRFeGh6MOveeFw9ko03hSz8L48c9rXemjg0=; b=ha6xr6oNwt9AI5nF73CV1ME5Gvr9cQ5g2RsMeLKPK9YSJFqTo3p3PzD3vwzNAJWL4c q8Eg6r8PldIQsEg30WHLSo7rzOwZ4gcRGzWOqaW+pHecgweuQ0gA5Ca77DbdHvamn0Ju h3fIKFQDbLGX65RxQ/yT84Z5rpk9/BGdYFeLji2MoIJkPSIvFzMfhGqoOkKenYnFxkkJ 4V2Ot3XoB5nT15I3CEz2nq+PsKyZJyw7Ybhwy4ChGa8lVn7FOK98IbxCfofNGfDUgncX WriNxUJ4Q5lw21qYCDWR0A/Qm3k6jzP+BM1NupdziIX9T+jZVKypZXDx4atw23JK1O86 o0wA== X-Forwarded-Encrypted: i=1; AJvYcCXa1rRS7T0LOaY/owTIlabUn/KyMI6fdkVrolIQ6rzwclyp49V/YY7Lm7FS/kCZPfMdVX/s0Q==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyD/1kfRv8SfUZt2ehkWq/21tfMI5vTfpXODECsfMN/op2RBM9+ KNR1w4/IDHSIM66GYK+SHYM/G9xrLDhOb4pIx2QVFHB918ybshqIJYRACQ== X-Gm-Gg: ASbGncsIkNDdosm1pq9w8gKu1do51dJ82dPH8yfAjpDsHrEJfV3aTHgS4OqtXdDpeUw 8Y87FMJhrkh3+jiTdJmhUXk3jWpCokyTFqkCgg/4tEjw2u1CUhlQ6n8Bi1a56JnIA9No4u53TPO eP5j2wPEp3lcjb4xMqAyiUVwJQxR2FP4n/uDvlg9tZFT647EUcHp0a/s2RSkvhoUeYat2vLZYpP 21g/LZmJuDVYQxSO2lIy4PngQ9DJwQHdWy/8dlDWGLVfYgPYPu8KallSM2iY5CLSz0P/DCH1kUs LGihxfgmygn07770ddreJUV7Ea7ATBupNfTyjt8B1XFmeH0YQ3K1VAusY/rbEpbHEzT2MgfsnRn P12Pdh/qrC47RdAbzOVdmi/DvSipQEkhHLjbaotYSfx493aY1hM6JqQ== X-Google-Smtp-Source: AGHT+IEhE5c9Zaj1h2c9G9XHtl/H8vMfu4BKIic5umSVz7rhBUL9Y50j0wt7BKqQ265rvCnty3BQgg== X-Received: by 2002:a05:600c:1f0c:b0:43c:f81d:34 with SMTP id 5b1f17b1804b1-43ecf85db8bmr54316355e9.9.1743843188315; Sat, 05 Apr 2025 01:53:08 -0700 (PDT) Received: from pro2 (p200300e0b71e7700b416b1a5f2164327.dip0.t-ipconnect.de. [2003:e0:b71e:7700:b416:b1a5:f216:4327]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39c301a7225sm6284763f8f.26.2025.04.05.01.53.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Apr 2025 01:53:07 -0700 (PDT) From: Gerd =?UTF-8?Q?M=C3=B6llmann?= In-Reply-To: <86ldsfxdhy.fsf@gnu.org> References: <87bjtbyzg1.fsf@gmail.com> <86ldsfxdhy.fsf@gnu.org> Date: Sat, 05 Apr 2025 10:53:06 +0200 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) 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: > Adding Gerd in case he has ideas, suggestions, or further comments. Nothing to add to your comments ATM, but maybe an alternative idea: how about solving this with a new type of display property for drawing a horizontal line? Say `horizontal-line WIDTH' where WIDTH could be nil or something to draw a line to the end of the display area? That would have the advantage that it would be a relatively locally confined change and would have no impact when not used, and hopefully little potential to break unrelated things when not used. One would have to have some Lisp though that puts the display property on form-feeds. From unknown Sun Aug 10 09:11:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77544: (WIP) [PATCH] Prettify page separators. Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 05 Apr 2025 10:34:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Gerd =?UTF-8?Q?M=C3=B6llmann?= Cc: eg642616@gmail.com, 77544@debbugs.gnu.org Received: via spool by 77544-submit@debbugs.gnu.org id=B77544.17438492238085 (code B ref 77544); Sat, 05 Apr 2025 10:34:02 +0000 Received: (at 77544) by debbugs.gnu.org; 5 Apr 2025 10:33:43 +0000 Received: from localhost ([127.0.0.1]:41669 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u10qN-00026L-3L for submit@debbugs.gnu.org; Sat, 05 Apr 2025 06:33:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53288) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u10qK-000266-Oe for 77544@debbugs.gnu.org; Sat, 05 Apr 2025 06:33:41 -0400 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 1u10qF-0001bH-Bo; Sat, 05 Apr 2025 06:33:35 -0400 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=24oZ494Z9Ao5AHsrn22wHV1q3v+wac1AgXWVdd01edM=; b=px3ujuDeGqt3vAA82OE9 LYVAGGSlpmFHkTBVPfqviwQBnrpXrHlBX4VoeqvdqXu8ZaqPKjxaTC2OWpT2qv2Q87/EQZmUuuM+y huS/LKJmV5Ii5TtBBQW1maYXi4HQENWSBxIL/jJbvgSmwEoENv4fpxqTlWRx4+4Je2DsmR0a42qS+ MfzSNCFmAJu0Smgl9UoDv33J33wqtEarywUjkH0aFFWUPJi986qxfqOi7SO5lr++yB6G2utgdUCm7 UV2koqcFA15cYu6kjuYDaO6uS3dNVK8uA9/mxpSz668VaqwovwXKQyHGqxHg/qz4PeZSYV8EXGPD5 o3g8bU/ptMTQcA==; Date: Sat, 05 Apr 2025 13:33:31 +0300 Message-Id: <86mscux5hg.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: (message from Gerd =?UTF-8?Q?M=C3=B6llmann?= on Sat, 05 Apr 2025 10:53:06 +0200) References: <87bjtbyzg1.fsf@gmail.com> <86ldsfxdhy.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) 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: Gerd Möllmann > Cc: Elijah Gabe Pérez , > 77544@debbugs.gnu.org > Date: Sat, 05 Apr 2025 10:53:06 +0200 > > Eli Zaretskii writes: > > > Adding Gerd in case he has ideas, suggestions, or further comments. > > Nothing to add to your comments ATM, but maybe an alternative idea: how > about solving this with a new type of display property for drawing a > horizontal line? Say `horizontal-line WIDTH' where WIDTH could be nil or > something to draw a line to the end of the display area? That would have > the advantage that it would be a relatively locally confined change and > would have no impact when not used, and hopefully little potential to > break unrelated things when not used. Thanks, sounds like a good idea. > One would have to have some Lisp though that puts the display property > on form-feeds. Right. Maybe a minor mode? Or an optional feature of whitespace-mode? From unknown Sun Aug 10 09:11:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77544: (WIP) [PATCH] Prettify page separators. Resent-From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 05 Apr 2025 17:58:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: Gerd =?UTF-8?Q?M=C3=B6llmann?= , 77544@debbugs.gnu.org Received: via spool by 77544-submit@debbugs.gnu.org id=B77544.174387587410436 (code B ref 77544); Sat, 05 Apr 2025 17:58:02 +0000 Received: (at 77544) by debbugs.gnu.org; 5 Apr 2025 17:57:54 +0000 Received: from localhost ([127.0.0.1]:44686 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u17mD-0002iE-Ns for submit@debbugs.gnu.org; Sat, 05 Apr 2025 13:57:54 -0400 Received: from mail-oa1-x41.google.com ([2001:4860:4864:20::41]:43454) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u17mB-0002hv-9g for 77544@debbugs.gnu.org; Sat, 05 Apr 2025 13:57:52 -0400 Received: by mail-oa1-x41.google.com with SMTP id 586e51a60fabf-2c72cb91e9cso2437342fac.1 for <77544@debbugs.gnu.org>; Sat, 05 Apr 2025 10:57:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743875865; x=1744480665; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=A/pT7k9Kq7Qe1ahVLfz6ER8zUkB6sZi9La6o1crVYPE=; b=R/st1w0vk+a+MkqEhWQVexD4M6AWeST2Dn/fTwv9/zOSiyH09eqyMQ8IO2QXMLa49B o9R1lIP+NdRuWmssFM2+BipF9ObtIAZ3DQgRsKHBNMjKDoFDv4cYhZu5iSk3zeEfXY1y GqrbOkDiVwAKct4nERITG5I2aAgvG1NO1PhpgxzdiTCzRYeld2m3lwMflCkcPGQcRb2H 1u4omMuetxcfzehxbCEWK0BQQmNSDErEsBq4okVCAz4vA3ABtjdPm1Kp8w85sIQjXtCL OB5r/1ev7nQMGqugMAAmBAa82wbEb2ZQ4UaSe2OWnDAnPaM332qkdguXOvxALhAuj/+g Nk6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743875865; x=1744480665; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=A/pT7k9Kq7Qe1ahVLfz6ER8zUkB6sZi9La6o1crVYPE=; b=pYRG/SCSwG5d55EnFaxeM2GwlA29ErVXKkeVYUSld9NoE2uAj185sQ9DdYqh7DgHCO eD2zPZtJushd4FgjBgDFg5GQXKxGgMvRD2rSYgUFyXTwjq9TPmkqxoaW6gsQuqlO/SxM y9f/42Hi1BoYbIKWDFvMbHg5BjbpjGfvrEJ9fiFSnCJoyfUfFzOMJcioybmm4TIWKhnp lzwzJgYbXwW7/Gk69yJG7zgzgbCENA9v7YX8wKg6OhPsueWUiZr8fipFTi90ImAQI7xW Lju/xmzS1RjEInkf8YtpGytMQr/EgfMMQkjVYqeGk44VWNKlGAvNmO3Zw9tcXnux+QYv m3EA== X-Forwarded-Encrypted: i=1; AJvYcCVVlrPCv3BOD7BeWxJGKs8fRB4bSZeTNXu4eFvpwX0Q4vp3MuQR3bVJKJPjlqmSKekeS60Ntw==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yzg+6JRT5BE2EwOCIE1iGLr34xcU1tYYFovQ/4JN5YA3SPKJSIb +yZRjYdbHg5iCeQDtq8qAnYGjfOYuRK8KlG6Q/Hr2giQuZyrer4rWjUdhmiR X-Gm-Gg: ASbGncv/71Ke0muez7K1lv8xw/Btatx01x3WuWPJUfssqctFpvQ/nyVcnmrDgzjfMod R24xQFA4KvBs36T22EpRQjkjl91GWGA62DzmwYXr/9a+dP2kUU4B8N0v5NjhkhTgBNbd6VwLbRv Uh+1YVLKFknPRDEMrN9sjoKc3kgpAl7wwgk0hSu2w7FlsSo7Ii62Zt32PUI8qmkyCPQADR8HGF2 DhU/JjNX/NRrO/VUWM5hrOlKbuBgz/cA00kS/sxzgCM9VzwM6wR4tlA9m+L7o+zyFf5SWEO4By1 P3TLd9focMgq9fQCTpUiUOc= X-Google-Smtp-Source: AGHT+IGOC6/KhFB2Ecqf/QJL8FZsW0ECuZ/btJ7Io2PSOMc4uvpu6XIOHb9HIVbmpxD2aUkbICMxfQ== X-Received: by 2002:a05:6871:7292:b0:2b8:5d9e:d0d9 with SMTP id 586e51a60fabf-2cc7a595721mr6277109fac.4.1743875864916; Sat, 05 Apr 2025 10:57:44 -0700 (PDT) Received: from fedora ([2806:10ae:e:79da::1]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-2cc84be9376sm1310947fac.50.2025.04.05.10.57.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Apr 2025 10:57:44 -0700 (PDT) From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= In-Reply-To: <86ldsfxdhy.fsf@gnu.org> References: <87bjtbyzg1.fsf@gmail.com> <86ldsfxdhy.fsf@gnu.org> Date: Sat, 05 Apr 2025 11:57:42 -0600 Message-ID: <877c3yebjd.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 2.7 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Eli Zaretskii writes: >> --- a/src/xdisp.c >> +++ b/src/xdisp.c >> @@ -8430,6 +8430,34 @@ get_next_display_element (struct it *it) >> int lface_id = 0; >> int escape_glyph; >> >> + if (c == '\f' && it->current_x == it->fir [...] Content analysis details: (2.7 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit (eg642616[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (eg642616[at]gmail.com) -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2001:4860:4864:20:0:0:0:41 listed in] [list.dnswl.org] 0.0 HTML_MESSAGE BODY: HTML included in message 2.4 HTML_OBFUSCATE_20_30 BODY: Message is 20% to 30% HTML obfuscation 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 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Eli Zaretskii writes: >> --- a/src/xdisp.c >> +++ b/src/xdisp.c >> @@ -8430,6 +8430,34 @@ get_next_display_element (struct it *it) >> int lface_id = 0; >> int escape_glyph; >> >> + if (c == '\f' && it->current_x == it->fir [...] Content analysis details: (1.7 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2001:4860:4864:20:0:0:0:41 listed in] [list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit (eg642616[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (eg642616[at]gmail.com) 0.0 HTML_MESSAGE BODY: HTML included in message 2.4 HTML_OBFUSCATE_20_30 BODY: Message is 20% to 30% HTML obfuscation -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager --=-=-= Content-Type: multipart/alternative; boundary="==-=-=" --==-=-= Content-Type: text/plain Eli Zaretskii writes: >> --- a/src/xdisp.c >> +++ b/src/xdisp.c >> @@ -8430,6 +8430,34 @@ get_next_display_element (struct it *it) >> int lface_id = 0; >> int escape_glyph; >> >> + if (c == '\f' && it->current_x == it->first_visible_x) > > IMO, this condition is incorrect. You should test for the previous > character being a newline. The it->first_visible_x condition will be > wrong in a continuation line, when the window is hscrolled, and when > display-line-numbers-mode is turned on, as well as in some other > situations (line/wrap-prefix etc.). > >> + { >> + const int save_face_id = it->face_id; >> + const int save_char = it->char_to_display; >> + const int save_current_x = it->current_x; >> + const int save_ascent = it->ascent; >> + const int save_descent = it->descent; >> + >> + face_id = >> + merge_faces (it->w, Qtrailing_whitespace, 0, it->face_id); >> + XSETINT (it->ctl_chars[0], 0); >> + ctl_len = 0; >> + >> + it->char_to_display = '-'; >> + it->face_id = face_id; >> + for ( ; it->current_x - it->end_charpos <= it->last_visible_x; it->current_x++) > > This condition is also incorrect, IMO: it->current_x is the pixel > coordinate, whereas it->end_charpos is a character position in the > buffer, so you cannot meaningfully subtract them. Also, I think this > will be incorrect when the window has display margins. > > The right way to figure out the usable width is to call the function > window_box_width or window_box_right_offset. > > These wrong conditions are probably the reasons for at least part of > the problems you see with this patch. I'll take it into account. Thanks. >> + { >> + PRODUCE_GLYPHS (it); >> + } > > I think it's not a good idea to call PRODUCE_GLYPHS inside > get_next_display_element. I originally wanted to put this in display_line, however, get_next_display_element was overriding the character face so i thought that adding it to get_next_display_element (where ^L is displayed) would be a better solution. > Alternatively, we could implement this entirely in the > terminal-specific back-end of the display engine (xterm.c, w32term.c, > etc.), where we could detect the "^L" glyph sequence and replace it > with a horizontal line of a suitable width and thickness. That would > allow us to produce a separator that is much better-looking than just > showing a long line of dashes. The dashes are temporal, I'm planning to add a variable that store the character to display (like display-fill-column-indicator-character). I don't think it would be better display a line instead a character, in that case, I would have preferred to use a face with a strike-through. This should work for both Terminal and GUI frames. > In any case, this must be an optional feature, so we will need a user > option to control it, by default off. Yeah, this will be buffer-local and have an user option (not minor mode) for enable/disable it (disabled by default), i didn't added the options yet because first i was testing if this works well, the same for the face used. --==-=-= Content-Type: text/html

Eli Zaretskii <eliz@gnu.org> writes:

— a/src/xdisp.c
+ b/src/xdisp.c
@@ -8430,6 8430,34 @@ getnextdisplayelement (struct it *it)
int lfaceid = 0;
int escapeglyph;

+ if (c = '\f' && it->current_x = it->firstvisiblex)

IMO, this condition is incorrect. You should test for the previous
character being a newline. The it->firstvisiblex condition will be
wrong in a continuation line, when the window is hscrolled, and when
display-line-numbers-mode is turned on, as well as in some other
situations (line/wrap-prefix etc.).

+ {
+ const int savefaceid = it->faceid;
+ const int savechar = it->chartodisplay;
+ const int savecurrentx = it->currentx;
+ const int saveascent = it->ascent;
+ const int savedescent = it->descent;
+
+ faceid =
+ mergefaces (it->w, Qtrailingwhitespace, 0, it->faceid);
+ XSETINT (it->ctlchars[0], 0);
+ ctllen = 0;
+
+ it->chartodisplay = '-';
+ it->faceid = faceid;
+ for ( ; it->currentx - it->endcharpos <= it->lastvisiblex; it->currentx+)

This condition is also incorrect, IMO: it->currentx is the pixel
coordinate, whereas it->endcharpos is a character position in the
buffer, so you cannot meaningfully subtract them. Also, I think this
will be incorrect when the window has display margins.

The right way to figure out the usable width is to call the function
windowboxwidth or windowboxrightoffset.

These wrong conditions are probably the reasons for at least part of
the problems you see with this patch.

I'll take it into account. Thanks.

+ {
+ PRODUCEGLYPHS (it);
+ }

I think it's not a good idea to call PRODUCEGLYPHS inside
getnextdisplayelement.

I originally wanted to put this in displayline, however,
getnextdisplayelement was overriding the character face so i thought
that adding it to getnextdisplayelement (where ^L is displayed)
would be a better solution.

Alternatively, we could implement this entirely in the
terminal-specific back-end of the display engine (xterm.c, w32term.c,
etc.), where we could detect the "L" glyph sequence and replace it
with a horizontal line of a suitable width and thickness. That would
allow us to produce a separator that is much better-looking than just
showing a long line of dashes.

The dashes are temporal, I'm planning to add a variable that store
the character to display (like display-fill-column-indicator-character).

I don't think it would be better display a line instead a character, in
that case, I would have preferred to use a face with a strike-through.

This should work for both Terminal and GUI frames.

In any case, this must be an optional feature, so we will need a user
option to control it, by default off.

Yeah, this will be buffer-local and have an user option (not minor mode)
for enable/disable it (disabled by default), i didn't added the options
yet because first i was testing if this works well, the same for the
face used.

--==-=-=-- --=-=-= Content-Type: text/plain -- - E.G via GNU Emacs and Org. --=-=-=-- From unknown Sun Aug 10 09:11:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77544: (WIP) [PATCH] Prettify page separators. Resent-From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 05 Apr 2025 18:09:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Gerd =?UTF-8?Q?M=C3=B6llmann?= Cc: Eli Zaretskii , 77544@debbugs.gnu.org Received: via spool by 77544-submit@debbugs.gnu.org id=B77544.174387649312378 (code B ref 77544); Sat, 05 Apr 2025 18:09:02 +0000 Received: (at 77544) by debbugs.gnu.org; 5 Apr 2025 18:08:13 +0000 Received: from localhost ([127.0.0.1]:44708 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u17wC-0003DZ-Kg for submit@debbugs.gnu.org; Sat, 05 Apr 2025 14:08:12 -0400 Received: from mail-oi1-x244.google.com ([2607:f8b0:4864:20::244]:61709) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u17wA-0003DJ-AS for 77544@debbugs.gnu.org; Sat, 05 Apr 2025 14:08:10 -0400 Received: by mail-oi1-x244.google.com with SMTP id 5614622812f47-3fa6c54cdb2so2552826b6e.3 for <77544@debbugs.gnu.org>; Sat, 05 Apr 2025 11:08:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743876484; x=1744481284; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=lxMVBH1hQ1YgoXiTZBZZ6x/88fjRZe/50/G2ZsOWWpI=; b=lqhOe0387y+XkQDgv5X81WZPhUc06rHB4n8zdNioFE5J0211jMUnDSzDyZ1vr24rXu 2ZrMDBJ3UMwNsU2L4aTUzF5C5zrEifRalhUQDISidv2lczAh1gL7pvl7iIkOoWQ4cBCy H0TKQNdU4ItXA23+Ap4Mt6jFMR75lVeG1SNzQQ00mNq6jMMPdZzG3VdSM1uIMNn8Sh51 QIxmn6I9RH0mugoD/miEvd3WIJWe6V8Z9r+yC8D7UCEAKLNOYAgLGpUJxjpUnnMc8yNj uCR/Byd9aKIOk0gEuPpYt2V4pXAGj8GtmTf3SLqaoFSz/hBdVNGNO6fcbm2LlU8IM8Yc yl0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743876484; x=1744481284; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=lxMVBH1hQ1YgoXiTZBZZ6x/88fjRZe/50/G2ZsOWWpI=; b=cCGz1RqIAWT1wu/9ZxnMl0MnBnFCeGxan5PoL7LzrAT5UmCLUGwDEwPfsb72nFLWVf OLBVEmjosj3hIq3XVGarlVrpx7arj8c3ASR/Hfsgv9Ia0jm/qof59qLRSzstkobVNeXN 32/4zqkG9vzAD0fXbmIZuFZUyAZg+gZHt6o7Un03bBx+oEOt3E05KAn1fWHcinkKJbfo KWSbg2ByB5IBc66E9XOGQoZ962dtmFO3h0AtCSdK/TV+jjr7O/h4eN2AdNOSX/qozgtc zEV8q+L00AwpBsKqQYMs6XCUIqf4w0UCP4Z0icFqaE9TgtEKI5Ce9V6P0Cy0b1S+cSiz pYuw== X-Forwarded-Encrypted: i=1; AJvYcCWA1RqJsP0OcKwDpMOYGLboNwXYdXfaOLSqlLhQ3Aw8eschA9kaE7KiarRNYYqIuoXzdo/d9g==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyTDnhVDrg6QF9l42xG6sNISL2dF8JRfBZaNcWyDZG9I6N4Uyhe viNUtKNl01CvrxFeEIC50gqISlqxhgseZawbjPiucEoT3pK0qarbKi11FvjZ X-Gm-Gg: ASbGnctTi7K2fxoWTPNAsHUE8A+iuy/3PQkWX5TZLLW1NKgLOme7pIGHcI8KTn6cs1l sZ3Jg/ZvSgmq1k7wMV+Fx+X+pVhZz9xlbQy3iWqEvFhnIexnnmOWx6Eg9EH51cG3Uzo8wI8Xt+n 8z4ymMGeSFEMUuaEIrERQsyzP+svvnbZb+dFStqB1ptjpVdoCqLEPDerXe4NSM6/hLJGC6ry59n z5aLcTJZ/ososQ6P6HF8fVagB584gQs+4+2vpNWgh/CH/zXSt0bJ6GLNgqmxEfW/tX1rHXuNNoP /aAULhtR/OcP X-Google-Smtp-Source: AGHT+IH0FoGIPOpEp+sVBwuC3uAODCSJz6i24Kq/Q5ELtTm2QYs3BC5mG8i8limxJFUiZm59umbk0A== X-Received: by 2002:a05:6808:1b8b:b0:3f3:f90b:f1b9 with SMTP id 5614622812f47-400463f8a75mr3980161b6e.0.1743876484060; Sat, 05 Apr 2025 11:08:04 -0700 (PDT) Received: from fedora ([2806:10ae:e:79da::1]) by smtp.gmail.com with ESMTPSA id 5614622812f47-4003ff99759sm1086868b6e.21.2025.04.05.11.08.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Apr 2025 11:08:03 -0700 (PDT) From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= In-Reply-To: References: <87bjtbyzg1.fsf@gmail.com> <86ldsfxdhy.fsf@gnu.org> Date: Sat, 05 Apr 2025 12:08:02 -0600 Message-ID: <87zfgucwhp.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.3 (/) 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.7 (/) --=-=-= Content-Type: multipart/alternative; boundary="==-=-=" --==-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Gerd M=C3=B6llmann writes: > Nothing to add to your comments ATM, but maybe an alternative idea: how > about solving this with a new type of display property for drawing a > horizontal line? Say `horizontal-line WIDTH' where WIDTH could be nil or > something to draw a line to the end of the display area? That would have > the advantage that it would be a relatively locally confined change and > would have no impact when not used, and hopefully little potential to > break unrelated things when not used. I like this idea. > One would have to have some Lisp though that puts the display property > on form-feeds. In this case I would move this code to Lisp instead of C. --==-=-= Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable

Gerd M=C3=B6llmann <gerd.moellmann@gmail.com> writes:

Nothing to add to your comments ATM, but maybe an alternative idea: ho= w
about solving this with a new type of display property for drawing a
horizontal line? Say `horizontal-line WIDTH' where WIDTH could be nil or something to draw a line to the end of the display area? That would have the advantage that it would be a relatively locally confined change and
would have no impact when not used, and hopefully little potential to
break unrelated things when not used.

I like this idea.

One would have to have some Lisp though that puts the display property=
on form-feeds.

In this case I would move this code to Lisp instead of C.

--==-=-=-- --=-=-= Content-Type: text/plain -- - E.G via GNU Emacs and Org. --=-=-=-- From unknown Sun Aug 10 09:11:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77544: (WIP) [PATCH] Prettify page separators. Resent-From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 05 Apr 2025 18:14:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: Gerd =?UTF-8?Q?M=C3=B6llmann?= , 77544@debbugs.gnu.org Received: via spool by 77544-submit@debbugs.gnu.org id=B77544.174387681613280 (code B ref 77544); Sat, 05 Apr 2025 18:14:02 +0000 Received: (at 77544) by debbugs.gnu.org; 5 Apr 2025 18:13:36 +0000 Received: from localhost ([127.0.0.1]:44715 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u181Q-0003S8-Af for submit@debbugs.gnu.org; Sat, 05 Apr 2025 14:13:36 -0400 Received: from mail-oo1-xc42.google.com ([2607:f8b0:4864:20::c42]:56339) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u181O-0003Rs-4h for 77544@debbugs.gnu.org; Sat, 05 Apr 2025 14:13:34 -0400 Received: by mail-oo1-xc42.google.com with SMTP id 006d021491bc7-6040465b9e2so1660469eaf.0 for <77544@debbugs.gnu.org>; Sat, 05 Apr 2025 11:13:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743876808; x=1744481608; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=XoiHUhIEdYPgZIE6mzy2+/mEa5MPlqW7SWbYuCvdB+E=; b=Y0c/19q3vtZMa/UBLvF1fO2E20+iiX+J/kuwu/nqZqb7jgFkv4Q41BAv9SzKdTHmzG 8aXJVEdc3pDKivWnXKKna7ZQ+j8KdEZRZVJykKzSvzZMlP2LmEawXfZARqf22zXk1YRi D0aH4f/en9L25inIFL6Pl/TLTbqhLLWdgaVzaZydL2gcGZL8CBdBKtky2I+6gFEzcuDo 0dwNeeZiy6ACDm+62i0hL7PbaM0jysKLUi+UsAgsnZNqtVION0Suggstic2ZOtXyLhef CheJ0nK+e/X51JZhgDOC9xotxtAFGna9hoaldX/CnNRgMSG6YxOz8awaV6+g/KVuA42x WHWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743876808; x=1744481608; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=XoiHUhIEdYPgZIE6mzy2+/mEa5MPlqW7SWbYuCvdB+E=; b=SwBHyk8UbyGHfjhQLBQvrFMotGmgX6g0/wCpmY8dBo/P8NpxoEgcjsPSgABTSPqH8X 8i9ZderivXOxvvqWtQrOR9uvFWkpFBm4gqVnA2EvrtVGzDOxj6XktzlZ/fkQnD5JgiUd hC09WIl/NseI4HmEo0MSKwYl+W4y9BSqBHBfvdsgDNqes/u6njXd3my0EiUH34SU04xG 6OV4Mbtcl+TgOAZgjRqVc2VjCEWsoXv9KBGeXszdcIn3ynvbdS8RLojYqlm7i9yR6W4F as7H7xqkRXf+hwKIH9pJIOdxkRY34o0jusdx8X7gJ8bBWh5re3K+9yrYu2fsjyAcn3vr LQRg== X-Forwarded-Encrypted: i=1; AJvYcCWdL64fdM+0Gy8lsTS+dbpLnekhVzAzCBGLLJXg3v6eY1ZU6M1v056PImhHsx8CJAFzlV7AdQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwkeaeQHdrF8WtYHc7/rb0f9/zBt3HH7KG2TYmIAroZaMlgiEsR LlVhDdaIpZgoxBpXtmO4Rg+tQLY5X5ZB4TCReFgOWrAVTH5sDghFjcmnafIY X-Gm-Gg: ASbGncuzubMldzsXP6o3hXJfxP3j/ajrCt2Mowf33K1+EwLy1W1uWMXECxyus9XHsWq rRE7kF8qvXwxFgiXkZ0eIf4UkWntBtCNiYuU61zfpSjseOJtyHMklVOHEVD1umrwAxVhlFYgVkO Gxb62GUIl9NTukG0uy0HZzP3J0naIb2WBogkd1C9WhoOJLd1Y8f7KEwx+5JT32Gz2L+P/57fRUN L2pXy3E24ivwyIfoZYqXGn3r2PJyyhyylSpdpDVXQBK0usXtTN1mbH76szvk0NDtN2ty1/Ww/Ma 7rIXL3AgMf2e X-Google-Smtp-Source: AGHT+IG2qMNrcZMnj0cKqcT5zx6KjiFk4DQXQkytUDZS88ElTrjIzjjuU7dNk1kHQwmW2/bTYOksJg== X-Received: by 2002:a05:6820:1c81:b0:603:f9b2:e2e9 with SMTP id 006d021491bc7-60416720fddmr3331508eaf.7.1743876807728; Sat, 05 Apr 2025 11:13:27 -0700 (PDT) Received: from fedora ([2806:10ae:e:79da::1]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-6040c4ea8dbsm1127854eaf.18.2025.04.05.11.13.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Apr 2025 11:13:27 -0700 (PDT) From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= In-Reply-To: <86mscux5hg.fsf@gnu.org> References: <87bjtbyzg1.fsf@gmail.com> <86ldsfxdhy.fsf@gnu.org> <86mscux5hg.fsf@gnu.org> Date: Sat, 05 Apr 2025 12:13:26 -0600 Message-ID: <87v7ricw8p.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.3 (/) 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.7 (/) --=-=-= Content-Type: multipart/alternative; boundary="==-=-=" --==-=-= Content-Type: text/plain Eli Zaretskii writes: >> One would have to have some Lisp though that puts the display property >> on form-feeds. > > Right. Maybe a minor mode? I think a minor mode would be better. > Or an optional feature of whitespace-mode? I don't think whitespace-mode is related to this. --==-=-= Content-Type: text/html

Eli Zaretskii <eliz@gnu.org> writes:

One would have to have some Lisp though that puts the display property
on form-feeds.

Right. Maybe a minor mode?

I think a minor mode would be better.

Or an optional feature of whitespace-mode?

I don't think whitespace-mode is related to this.

--==-=-=-- --=-=-= Content-Type: text/plain -- - E.G via GNU Emacs and Org. --=-=-=-- From unknown Sun Aug 10 09:11:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77544: (WIP) [PATCH] Prettify page separators. Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 06 Apr 2025 05:07:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Cc: gerd.moellmann@gmail.com, 77544@debbugs.gnu.org Received: via spool by 77544-submit@debbugs.gnu.org id=B77544.17439159987524 (code B ref 77544); Sun, 06 Apr 2025 05:07:01 +0000 Received: (at 77544) by debbugs.gnu.org; 6 Apr 2025 05:06:38 +0000 Received: from localhost ([127.0.0.1]:45690 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u1IDN-0001xI-OB for submit@debbugs.gnu.org; Sun, 06 Apr 2025 01:06:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47596) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u1IDL-0001x2-Hg for 77544@debbugs.gnu.org; Sun, 06 Apr 2025 01:06:35 -0400 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 1u1IDF-0006QC-Ui; Sun, 06 Apr 2025 01:06:29 -0400 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=zOKYcdOeELqR6Dhr1NqTG4gx4C8Zp4nxv0gLq/+iT0k=; b=ris8lIiuwXQ2RSCqF21r iPllGb/5x313EBW8geUX+15L7/OH2BsjaL8osFS17Z+5148/k+lHGO4PMO8U3m9JJFIK3UyeYncgc H0B9mVXX/tsCU9G2TF/q30zegrm85f8pIhW9b1/gLwEOwbF9LxTLTD8dN/Kq6NaXdr6TtRjIlbWp8 gDuoPhEUXdlOzaCJkG9zSnv1bCe+vvIPDLPCL5nbzHbF9/92YMNyCBE47On8QoBUPubzhcyLhVaJg b9Uwh7ApQy0CnPfz/UftkWZF7FdNs8Fktg2LayNrmPt0Y3NrvErnsSHeVzknBW245NGdjJsm4vQSH SDI83hhZVU/lOQ==; Date: Sun, 06 Apr 2025 08:06:27 +0300 Message-Id: <86o6x9vpyk.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87zfgucwhp.fsf@gmail.com> (message from Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= on Sat, 05 Apr 2025 12:08:02 -0600) References: <87bjtbyzg1.fsf@gmail.com> <86ldsfxdhy.fsf@gnu.org> <87zfgucwhp.fsf@gmail.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) 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: Elijah Gabe Pérez > Cc: Eli Zaretskii , 77544@debbugs.gnu.org > Date: Sat, 05 Apr 2025 12:08:02 -0600 > > Gerd Möllmann writes: > > Nothing to add to your comments ATM, but maybe an alternative idea: how > about solving this with a new type of display property for drawing a > horizontal line? Say `horizontal-line WIDTH' where WIDTH could be nil or > something to draw a line to the end of the display area? That would have > the advantage that it would be a relatively locally confined change and > would have no impact when not used, and hopefully little potential to > break unrelated things when not used. > > I like this idea. > > One would have to have some Lisp though that puts the display property > on form-feeds. > > In this case I would move this code to Lisp instead of C. A new kind of display property must be implemented in C. The rest of the code can be in Lisp. From unknown Sun Aug 10 09:11:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77544: (WIP) [PATCH] Prettify page separators. Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 06 Apr 2025 05:08:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Cc: gerd.moellmann@gmail.com, 77544@debbugs.gnu.org Received: via spool by 77544-submit@debbugs.gnu.org id=B77544.17439160408054 (code B ref 77544); Sun, 06 Apr 2025 05:08:02 +0000 Received: (at 77544) by debbugs.gnu.org; 6 Apr 2025 05:07:20 +0000 Received: from localhost ([127.0.0.1]:45695 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u1IE4-00025p-8M for submit@debbugs.gnu.org; Sun, 06 Apr 2025 01:07:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57960) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u1IE1-00024U-Oj for 77544@debbugs.gnu.org; Sun, 06 Apr 2025 01:07:18 -0400 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 1u1IDw-0006SC-GD; Sun, 06 Apr 2025 01:07:12 -0400 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=s5m/VLT+nUnP06Tt2mQ8AYvYOniR0T4Sj8O2dRl1u7g=; b=fF3QQJ5pdKKhurc3hLb/ ffVa8wPWdIiXXi5O4RQ7p6JdyESqQ5tai1kPqPqfdIWEbpgXEYg320aQihQGBx5+6BIgymlaHCJF2 u+50fIZialFqV3TH+ASgTlRwxJWxARLJF5ufMGMNFvc8ZR59nwg+2a+XM0gxGoF7RRmmYSHfgHa5k Nxie7X92ZMqElHDzjTF2XGzZLhIG85uDD1RLeIJlnblTssXC9hv9G4gNbqWbZ8Nz6gCdK5XoFtCUF ZgKFOWZ+McCDCrjtBSMLU5TEX4qeYYrq2rIJ8A4rTvUz6icnrKQXVYbfL+Hlyh5E88uabdZmt2yzN xN7C2lVnm70xKQ==; Date: Sun, 06 Apr 2025 08:07:09 +0300 Message-Id: <86msctvpxe.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87v7ricw8p.fsf@gmail.com> (message from Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= on Sat, 05 Apr 2025 12:13:26 -0600) References: <87bjtbyzg1.fsf@gmail.com> <86ldsfxdhy.fsf@gnu.org> <86mscux5hg.fsf@gnu.org> <87v7ricw8p.fsf@gmail.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) 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: Elijah Gabe Pérez > Cc: Gerd Möllmann , > 77544@debbugs.gnu.org > Date: Sat, 05 Apr 2025 12:13:26 -0600 > > Eli Zaretskii writes: > > One would have to have some Lisp though that puts the display property > on form-feeds. > > Right. Maybe a minor mode? > > I think a minor mode would be better. > > Or an optional feature of whitespace-mode? > > I don't think whitespace-mode is related to this. The form-feed ^L character is one of whitespace characters. From unknown Sun Aug 10 09:11:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77544: (WIP) [PATCH] Prettify page separators. Resent-From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 06 Apr 2025 05:26:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: gerd.moellmann@gmail.com, 77544@debbugs.gnu.org Received: via spool by 77544-submit@debbugs.gnu.org id=B77544.174391711311307 (code B ref 77544); Sun, 06 Apr 2025 05:26:01 +0000 Received: (at 77544) by debbugs.gnu.org; 6 Apr 2025 05:25:13 +0000 Received: from localhost ([127.0.0.1]:45708 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u1IVM-0002vg-Rf for submit@debbugs.gnu.org; Sun, 06 Apr 2025 01:25:13 -0400 Received: from mail-qv1-xf44.google.com ([2607:f8b0:4864:20::f44]:57803) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u1IVK-0002ul-DF for 77544@debbugs.gnu.org; Sun, 06 Apr 2025 01:25:10 -0400 Received: by mail-qv1-xf44.google.com with SMTP id 6a1803df08f44-6e904f53151so28883576d6.3 for <77544@debbugs.gnu.org>; Sat, 05 Apr 2025 22:25:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743917104; x=1744521904; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Hg8867Z+c/o8MoH2eeiipLLB+R6xjeYnpEZEGLby1sE=; b=Sv84wLLk9tGiYGPEO6OPaZczBdtXjQMUiOQWTNNaWdfyc7/rZB3nRGwZM/moQbFB0T CFzHAYxh8f3ZaC9uD+orfQe5lEmlxAD0dOo9t6eilDDJyS9oI27RTjDTU2vU/U25dNRW oaez6OlPZRSMXMY2vC5NJsFqNm6sntQOKSHWiTUmkSWIi3RNhM8QsHN/6ikOHHI9zyoO PffbxYgt8Zfr2oa3TCdikji6jTZdNI2Bfn15kkG1g+wCBWFwfYyjEBLVM5undVWALBBO depvek/N0Hxe8zsh8/hg5Fl7YhUFHgzJrmnq8Gh6WdTqqBrqPcSOVJGcXaIzrxCCLg/+ aJ4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743917104; x=1744521904; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Hg8867Z+c/o8MoH2eeiipLLB+R6xjeYnpEZEGLby1sE=; b=FRFray0bMllY7A4deqbTY2AnctPmQweRLe0C/7GPB2THqoFMOk2plged4TqF8s52Pt 5mGicJ+/iCNZYrZVo5sEW//SJKWszLEsMW8Ll+5IJN62ebAJgy7nnpICCvr83+aV8196 l6o9RT41bg0rABjMt+fGmv79sb6nrXumUNkaPgU/39WtCclKMeolj2M95NBbRH89U3/9 HFYigzhLMiL47HCB2OvCNsQl1DPdCxypDtjAp8ZjHPXSMQmxwDLoG325O5Xy9W4MC6Kb lE6Y9N8Xaq9aRUG2fsUy/3He8s0j90mgicloq43NIU3l/JffvROUVqZZKHroz1SAc5sg Vufw== X-Forwarded-Encrypted: i=1; AJvYcCXGhqhLWVUDwN3TOt7llm2ZXKl+hefrva749kmnt5yQRelXhb3FlSij85Q5Xg56+stY1w/dSA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxqFZDbS7/lzsFW7mvAkXD/EQhqm/u3htzLT18u+WqqhyusLg13 XHxe91xgWS06SnSehKfzBqJnMbOH4qZFM3kVSGA/cry9QStoSVMDWYO/Ec5rxFa426TbE0KxLIP F+8Y0YawA5+9l1HYeRzwx+5PnlYg= X-Gm-Gg: ASbGnct1hEO/2uzPz4zemmTggbpE70B5XlDs1agicUIK+3KJZhdbRiey7e2MEGpPB8v i3zp4L/9i2MCJD//CJGYW0KfUmVwEVb6veAiKZbMola1/YtpX01y5enZUgsTsf+HcnC/TSv3x2G kroJQ8e2vpXQUdQCHQlfg4yZ/GL09t+UfYUGHeAoelEHEd7qfWgR90DFPo X-Google-Smtp-Source: AGHT+IGP1qjY+5j+S/OO3eIZVn0gTjDEXMsC+EOUwsWJvOS4GoP7budtj3YHSirUggKq8EIzNXgvKVZr3BENg84syMo= X-Received: by 2002:a05:6214:d61:b0:6e8:ff8d:cb68 with SMTP id 6a1803df08f44-6f064aef187mr107461856d6.35.1743917104702; Sat, 05 Apr 2025 22:25:04 -0700 (PDT) MIME-Version: 1.0 References: <87bjtbyzg1.fsf@gmail.com> <86ldsfxdhy.fsf@gnu.org> <87zfgucwhp.fsf@gmail.com> <86o6x9vpyk.fsf@gnu.org> In-Reply-To: <86o6x9vpyk.fsf@gnu.org> From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Date: Sat, 5 Apr 2025 23:24:54 -0600 X-Gm-Features: ATxdqUFnolqrOjkID7Ub07lnUKFVijGo4zhb1AP0dD5DBeuil49LDJy5XWFZpYA Message-ID: Content-Type: multipart/alternative; boundary="0000000000008b28ee06321557f1" X-Spam-Score: 0.3 (/) 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.7 (/) --0000000000008b28ee06321557f1 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Eli Zaretskii writes: > > From: Elijah Gabe P=C3=A9rez > > Cc: Eli Zaretskii , 77544@debbugs.gnu.org > > Date: Sat, 05 Apr 2025 12:08:02 -0600 > > > > Gerd M=C3=B6llmann writes: > > > > Nothing to add to your comments ATM, but maybe an alternative idea: ho= w > > about solving this with a new type of display property for drawing a > > horizontal line? Say `horizontal-line WIDTH' where WIDTH could be nil = or > > something to draw a line to the end of the display area? That would ha= ve > > the advantage that it would be a relatively locally confined change an= d > > would have no impact when not used, and hopefully little potential to > > break unrelated things when not used. > > > > I like this idea. > > > > One would have to have some Lisp though that puts the display property > > on form-feeds. > > > > In this case I would move this code to Lisp instead of C. > > A new kind of display property must be implemented in C. The rest of > the code can be in Lisp. > I meant to make that form feed characters use the new display property. > --0000000000008b28ee06321557f1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Eli Zaretskii <eliz@gnu.org= > writes:
> From: Elijah = Gabe P=C3=A9rez <eg642616@gmail.com>
> Cc: Eli Zaretskii <eliz@gnu.org>,=C2=A0 77544@debbugs.gnu.org
> Date: Sat, 05 Apr 2025 12:08:02 -0600
>
> Gerd M=C3=B6llmann <
gerd.moellmann@gmail.com> writes:<= br> >
>=C2=A0 Nothing to add to your comments ATM, but maybe an alternative id= ea: how
>=C2=A0 about solving this with a new type of display property for drawi= ng a
>=C2=A0 horizontal line? Say `horizontal-line WIDTH' where WIDTH cou= ld be nil or
>=C2=A0 something to draw a line to the end of the display area? That wo= uld have
>=C2=A0 the advantage that it would be a relatively locally confined cha= nge and
>=C2=A0 would have no impact when not used, and hopefully little potenti= al to
>=C2=A0 break unrelated things when not used.
>
> I like this idea.
>
>=C2=A0 One would have to have some Lisp though that puts the display pr= operty
>=C2=A0 on form-feeds.
>
> In this case I would move this code to Lisp instead of C.

A new kind of display property must be implemented in C.=C2=A0 The rest of<= br> the code can be in Lisp.

=
I meant to make that form feed characters use the n= ew display property.
--0000000000008b28ee06321557f1-- From unknown Sun Aug 10 09:11:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77544: (WIP) [PATCH] Prettify page separators. Resent-From: Gerd =?UTF-8?Q?M=C3=B6llmann?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 06 Apr 2025 05:40:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= , 77544@debbugs.gnu.org Received: via spool by 77544-submit@debbugs.gnu.org id=B77544.174391797814163 (code B ref 77544); Sun, 06 Apr 2025 05:40:02 +0000 Received: (at 77544) by debbugs.gnu.org; 6 Apr 2025 05:39:38 +0000 Received: from localhost ([127.0.0.1]:45728 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u1IjK-0003gN-Eq for submit@debbugs.gnu.org; Sun, 06 Apr 2025 01:39:38 -0400 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]:48185) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u1IjH-0003g6-Uf for 77544@debbugs.gnu.org; Sun, 06 Apr 2025 01:39:36 -0400 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-43edb40f357so11533515e9.0 for <77544@debbugs.gnu.org>; Sat, 05 Apr 2025 22:39:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743917969; x=1744522769; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xLOWV7uUkgtrme3RkqpK9t7DocwPgMC5D2bY6c0ePes=; b=RiKKGZ5n1Bvc0T/V3Gnj1JNG+hWF4egOHFMzmDPCeAXbLwJ4q1CEyrkvUX3lOhwpWM 1qXMNfh1aZwd5aqYzKm9ZWraVB6APqPcc/zb6qVFmcPdKz+nz4qNzaTPleQ7erUdpJkA Dj0pQ8Cowk7LaHN8/16JlN/kSr7hOk9FxnWm0BA6Xc09dFSEiKf82EZ9DKFN3FZZON7n IE7cJ2BAvoQaHfMnI/TIOUHRn0qsxM1lRrcb2RNdIY/tupCdp4B/2DLczjquaUEpnF39 OTQVLbU40vTsk7LKaNXMphJvS8Rw4y6T9fkYZDyANPnkkd0OovJsAyPo8QSjZFYm6Vbu gdtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743917969; x=1744522769; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=xLOWV7uUkgtrme3RkqpK9t7DocwPgMC5D2bY6c0ePes=; b=OomOzzSO0TZbi2fkRKvTUt20WgvYnTHTQlnFefbC+rclxmfWh/SEZTQ2xOLUXDDPu5 Cf4omotjr2BvkUx/s82nQuE4ptOLSfv1470xHMQkRcQDdyQGp+dYu7T5sEbV1EdlnzHi GbfBSQ2WpKnjMKLJdwvlEP8mEDVon5o6lhqsHrAzYyfvEWplGleU1b8J/JHbXvKz3kNX UBp8QzxldVW7qQLBSbfE0A5Rl9QgFQ34LA0GYXy0kHr2uxUXsMWL6xwE5/DBgHPe2yl4 VJcYvP3IP/4UdkW5m8mj8N+BLkOZL7+eDKzssBGFKRB4DGnwZ2XKRdkUFhjAmfqP/EgY AWsw== X-Forwarded-Encrypted: i=1; AJvYcCVMExjy3b7+7KcBne2604Dk9GBsXtVmg6Avze+3cavlvtx328kNXN4pWAnOW8kKNbHSQ+4png==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxvfaOu3TzM1LXQ+IJ8bzf1umzx73ygmoLDt0lKih9/x3Xwcd4V 4hBnTKC+zKeCyykowLK6Q6SHSPEGogyXxeAkw+S0tzOn0HCMQUZcslolgEWA X-Gm-Gg: ASbGncsecDJnn1HEDQINO8MIZnodxIpi6sCl/U1mIADP7a58ZMNHnwSO44yCmzPRDcd /rXpq19OAgfWV+mHaqRXXXKliB0E1aUEM3CfD5Aw+f0ONzuQ1Q2CUCJBFZF1baIfnllc93+2BP1 59f2RAkh0GRCDvG0o9Z0RL29xBIXebt3B3jkUEVjYq2ort75hsRiitdGmD9Hl/Y2/C7Dd4BJXcZ GRpq/Bnsucz443aubhzex3xtai+iwjYWX4kTxF/KokT2Iugr2VtO//VBzXH6PXSXcSUpt08si5n KRfG9qSGmH3+lxktRwcmiEl961cDXPOQTkTxp3X96DdS4LB4I8rNQGTtqOqhYh0vU7VuMV6iC6A G4eWYaEK5bbXUvdrpaUoiqU72e2t5cmK2MNbJ/GiH9iBSFtx+nsQqPg== X-Google-Smtp-Source: AGHT+IG8ti0zFeKAcUudM8Bj5Xazs0AZ77QeKYt8ukitX5Mdlab/qaP9Rjco+ui0O28hGo4GhD0+gA== X-Received: by 2002:a05:600c:4fd6:b0:43b:c5a3:2e1a with SMTP id 5b1f17b1804b1-43ee0616f6fmr44238795e9.2.1743917969198; Sat, 05 Apr 2025 22:39:29 -0700 (PDT) Received: from pro2 (p200300e0b7278a003128f733a5af3bcd.dip0.t-ipconnect.de. [2003:e0:b727:8a00:3128:f733:a5af:3bcd]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43ec163156asm94925485e9.7.2025.04.05.22.39.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Apr 2025 22:39:28 -0700 (PDT) From: Gerd =?UTF-8?Q?M=C3=B6llmann?= In-Reply-To: <86msctvpxe.fsf@gnu.org> References: <87bjtbyzg1.fsf@gmail.com> <86ldsfxdhy.fsf@gnu.org> <86mscux5hg.fsf@gnu.org> <87v7ricw8p.fsf@gmail.com> <86msctvpxe.fsf@gnu.org> Date: Sun, 06 Apr 2025 07:39:27 +0200 Message-ID: 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-Score: 0.0 (/) 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: Elijah Gabe P=C3=A9rez >> Cc: Gerd M=C3=B6llmann , >> 77544@debbugs.gnu.org >> Date: Sat, 05 Apr 2025 12:13:26 -0600 >>=20 >> Eli Zaretskii writes: >>=20 >> One would have to have some Lisp though that puts the display property >> on form-feeds. >>=20 >> Right. Maybe a minor mode? >>=20 >> I think a minor mode would be better. >>=20 >> Or an optional feature of whitespace-mode? >>=20 >> I don't think whitespace-mode is related to this. > > The form-feed ^L character is one of whitespace characters. And white-space-mode already displays spaces, tabs, and newlines differently, AFAIR. Looks like a good fit. From unknown Sun Aug 10 09:11:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77544: (WIP) [PATCH] Prettify page separators. Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 06 Apr 2025 06:54:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Cc: gerd.moellmann@gmail.com, 77544@debbugs.gnu.org Received: via spool by 77544-submit@debbugs.gnu.org id=B77544.174392239928349 (code B ref 77544); Sun, 06 Apr 2025 06:54:01 +0000 Received: (at 77544) by debbugs.gnu.org; 6 Apr 2025 06:53:19 +0000 Received: from localhost ([127.0.0.1]:45806 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u1Jsd-0007NA-Fv for submit@debbugs.gnu.org; Sun, 06 Apr 2025 02:53:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44406) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u1Jsa-0007Mt-HZ for 77544@debbugs.gnu.org; Sun, 06 Apr 2025 02:53:17 -0400 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 1u1JsV-000179-65; Sun, 06 Apr 2025 02:53:11 -0400 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=f8yqWUYcw5l1BOOzCAwCLVcMKGsnskqh2sJvvQj24Ps=; b=jbFtxzawwKTvijdu0ukh cPyz2KxyAcHFnBCMP0DxBffSWzJvsEczja+g06aYnSxTWNpsdqzeoHqJ+O7I9b1rtT0TKNDqxtiHC Gltfq5WIb5mSwv26V/wPpiZ7pu7cqnIC+g/K1fWpxayLIU6VOq5OTa5s6Vd7skZIEWvv72WTIepbk raiH974JHbJQV7gM+gKYP9Iey2XAWRyYVqy2P4+2vwju5+gpffCpRg+kNqWWzL9LnKnbVzxgQS1eo afaqt2hrax7m/UE3VQQW33ib0J4Z+YUIv7+R3kEYyeSrxlL3SUus0tlaDOYykMGNrnNJ33gpOzbJ0 fKKonIwDjVVLFA==; Date: Sun, 06 Apr 2025 09:53:08 +0300 Message-Id: <86bjt9vl0r.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: (message from Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= on Sat, 5 Apr 2025 23:33:04 -0600) References: <87bjtbyzg1.fsf@gmail.com> <86ldsfxdhy.fsf@gnu.org> <86mscux5hg.fsf@gnu.org> <87v7ricw8p.fsf@gmail.com> <86msctvpxe.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) 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: Elijah Gabe Pérez > Date: Sat, 5 Apr 2025 23:33:04 -0600 > > Eli Zaretskii writes: > > > From: Elijah Gabe Pérez > > Cc: Gerd Möllmann , > > 77544@debbugs.gnu.org > > Date: Sat, 05 Apr 2025 12:13:26 -0600 > > > > Or an optional feature of whitespace-mode? > > > > I don't think whitespace-mode is related to this. > > The form-feed ^L character is one of whitespace characters. > > Right, but I don't think this should be whitespace-mode exclusive. IMO this new minor mode can be used as > alternative to make-separator-line (for example in shortdoc buffers) which looks ugly in both terminal and GUI > frames. Sure, but why is it a problem to make this part of whitespace-mode? It already has a number of optional features, each one of which can be turned on and off separately. The advantage is that we don't need to have yet another minor mode, yet another mode-line lighter, etc. Also, some people already turn on whitespace-mode in text modes. So I think this is something to be considered seriously. But we can delay this discussion until you have the feature implemented. From unknown Sun Aug 10 09:11:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77544: (WIP) [PATCH] Prettify page separators. Resent-From: Visuwesh Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 06 Apr 2025 06:58:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Cc: Gerd =?UTF-8?Q?M=C3=B6llmann?= , Eli Zaretskii , 77544@debbugs.gnu.org Received: via spool by 77544-submit@debbugs.gnu.org id=B77544.174392267129200 (code B ref 77544); Sun, 06 Apr 2025 06:58:02 +0000 Received: (at 77544) by debbugs.gnu.org; 6 Apr 2025 06:57:51 +0000 Received: from localhost ([127.0.0.1]:45817 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u1Jx1-0007at-Fn for submit@debbugs.gnu.org; Sun, 06 Apr 2025 02:57:51 -0400 Received: from mail-pl1-x642.google.com ([2607:f8b0:4864:20::642]:49525) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u1Jwz-0007ac-MS for 77544@debbugs.gnu.org; Sun, 06 Apr 2025 02:57:50 -0400 Received: by mail-pl1-x642.google.com with SMTP id d9443c01a7336-227a8cdd241so38546475ad.3 for <77544@debbugs.gnu.org>; Sat, 05 Apr 2025 23:57:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743922663; x=1744527463; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=E8jB2RowIfxH78wS3UmzmpWYsHy2xrkmgRT5BNiwjRg=; b=BwusJrawimDj9ExcGYMFFvi7WzE/QAC5PYWc0nLckL3y0cqvmt5JStjw0O8nIhuRqg 3eIGalfH2c16uEgCGZv5dj+E6lcS6tv1pTHY1Frz6mUC6pgAWbUed6hpiHH93Iekkppq bsM5NZrxRGq7Se1obs4E15LCLruJ5WdHtwBdKWIH5UQuMPkmw+hV9B8PBI9gpk/rVnMb +Wm0GGERSUuRTLTKLzIxx8IgwtvejDPG2HRLnioo/wttRn7i6s35Uaxhm0mEHgsK5Lud /BONQAeBkvOT1jrmYuMHh8vcHnCCmdF8HVbYjZ0kFSYfpQys1R5NVvhUs/zIRPjYW1Sq l8sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743922663; x=1744527463; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=E8jB2RowIfxH78wS3UmzmpWYsHy2xrkmgRT5BNiwjRg=; b=Z7mHAbtzs0VsWR1jh9gXSiiHOT6pQ5CK/QsejOalTTp+28tomWDUQzuRYQ5md+7Qkx s0LIfJ4A4pgGNEi1snwpElm9EiG8CgaFzDo1MNaH5YcvCb/ANwS3w3kDzgJSHnEtbZvc Qf83n37pSjPbUFT5YKiDq3CpAnj0iI5ehYH3qA9SmtSWrwv77qp6bv5SwTKR91iLh4oW ANzwuVRTQhYXQRqrC1PvAUJdW1cEPwwwY9tx2cSa0U7KyqycZBSkmbSGKRt96xxQCJH0 +M+/4sXHHL8v0bBiQC4oc7JHGA/I4AldxfBEB5J5arfp/JzB+PlAWS2yD6AOA5WZZaz4 P7yw== X-Forwarded-Encrypted: i=1; AJvYcCXdCWS6NYq1jZJH6+RcUPSp4LE6oVxIZO6XN0rHMfHhGRWYIBDxF5Z0yi1raJDsiVPH71vNbQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxLiMVcajBcMEurhsx1VtJ/J59RN+uIeGGmNmS1BCjUcEn4lGe4 36JVhgMvJO8l1kNqRYArJREd9DJzs4mxgkcoZSzCmuMdoy+vVtyT X-Gm-Gg: ASbGncvEds8APq+iibf8lvIprIcyHUblzPE8LNlCHjfoCzX7MuRGLv2Yqdtv5coKSU1 +0q/GLwvoZcNDeG+oUotHvDbQ8DKVMKn888H47zc7Ie9cGdPHJrHYN+ta85JmkLKRGKpt28zray lWQUBWKfmFVUVbXPB6C+saq8lOk2yay05sgdOQE2BljaQ3PK0FuheK7gRwGllboUd7qoml+cZoI X5Jvvy5cp1aAGxlB7EUPlVZGmvthTqwR+pKBXhvvebggeqdDuot7VAzSpV5oGog9C7cCF+APt5k Hi8f1FaL++8hO6az/3L6RypHXKpFoCJSkVESHDVeCA== X-Google-Smtp-Source: AGHT+IEBGY0KH6s+yEWlzunVq3rOZ6HfuMVHNyRgDvebQSe8Jf3pSd78Lhbo+cvLlEcSSNx4JNYyyg== X-Received: by 2002:a17:903:3c6b:b0:224:24d3:6103 with SMTP id d9443c01a7336-22a955734f5mr82984365ad.35.1743922663150; Sat, 05 Apr 2025 23:57:43 -0700 (PDT) Received: from localhost ([115.240.90.130]) by smtp.gmail.com with UTF8SMTPSA id d9443c01a7336-229787778e3sm59111545ad.254.2025.04.05.23.57.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Apr 2025 23:57:42 -0700 (PDT) From: Visuwesh In-Reply-To: <87zfgucwhp.fsf@gmail.com> References: <87bjtbyzg1.fsf@gmail.com> <86ldsfxdhy.fsf@gnu.org> <87zfgucwhp.fsf@gmail.com> Date: Sun, 06 Apr 2025 12:27:39 +0530 Message-ID: <87h631pyjg.fsf@gmail.com> 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-Score: 0.0 (/) 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 (-) [=E0=AE=9A=E0=AE=A9=E0=AE=BF =E0=AE=8F=E0=AE=AA=E0=AF=8D=E0=AE=B0=E0=AE=B2= =E0=AF=8D 05, 2025] Elijah Gabe P=C3=A9rez wrote: > Gerd M=C3=B6llmann writes: > >> Nothing to add to your comments ATM, but maybe an alternative idea: how >> about solving this with a new type of display property for drawing a >> horizontal line? Say `horizontal-line WIDTH' where WIDTH could be nil or >> something to draw a line to the end of the display area? That would have >> the advantage that it would be a relatively locally confined change and >> would have no impact when not used, and hopefully little potential to >> break unrelated things when not used. > > I like this idea. Do we need a new display property when we have the :strike-through face attribute? The following achieves the same effect, albeit the newline is required for the :extend attribute to work properly AFAIU: (font-lock-add-keywords=20 nil '(("\f\n" (0 (prog1 nil (put-text-property (match-beginning 0) (1- (match-end 0= )) 'display " ") (put-text-property (match-beginning 0) (match-end 0) 'face '(:strike-through t :extend t)= )))))) (push 'display font-lock-extra-managed-props) From unknown Sun Aug 10 09:11:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77544: (WIP) [PATCH] Prettify page separators. Resent-From: Gerd =?UTF-8?Q?M=C3=B6llmann?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 06 Apr 2025 07:14:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Visuwesh Cc: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= , 77544@debbugs.gnu.org, Eli Zaretskii Received: via spool by 77544-submit@debbugs.gnu.org id=B77544.174392358631968 (code B ref 77544); Sun, 06 Apr 2025 07:14:01 +0000 Received: (at 77544) by debbugs.gnu.org; 6 Apr 2025 07:13:06 +0000 Received: from localhost ([127.0.0.1]:45833 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u1KBm-0008JX-4v for submit@debbugs.gnu.org; Sun, 06 Apr 2025 03:13:06 -0400 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]:56439) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u1KBj-0008Iu-Kj for 77544@debbugs.gnu.org; Sun, 06 Apr 2025 03:13:04 -0400 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-43ce70f9afbso36153535e9.0 for <77544@debbugs.gnu.org>; Sun, 06 Apr 2025 00:13:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743923577; x=1744528377; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=8VrUaA04CUySiAMsb1nXYLVohkLvH+sjQVFJf7VwhwY=; b=fccp9RTQpinZJfF0VbGgRmfZSdDnTt0JZ9+K+gwPSk7y7VlO2bFGIj+PeuqFxCF9FK 1AoO/7AAO9YnW8zo7vCqPfAAw5XRFLq1hFx/+Ne2doAW1LmCz6EXD85M2crdTYOpWTu/ 3iNJE/Hfgl5lHSnB2AlIk0EaMyEwl+glfrArqVWD/ONKHFOQtiyHAVCBUsfVSTdLLzbp +d5jAFhSBdDwPZ2KH7MASy6ZbgeO7oK5Cbhv3I8IJi1FI+SJzlbZIzD4Q9SZiQD3DYhT SoYYGtG2oZLLAqEWvvkthqKBVPdmvDbAbH0XSYk0FHXqnGAxw97kaUV1DO+ZgWwM2/6V dvnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743923577; x=1744528377; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=8VrUaA04CUySiAMsb1nXYLVohkLvH+sjQVFJf7VwhwY=; b=q5K8f705Mpw6jkbOo/Eoa5/XAAsAoPXRdfDSlcitNf/Ena9C9CNFJqtp3AUWQ/M5EY FtstPmE7EpAEZfT0JRjPin/DPl6ne0Q0dFo65HatfpHhcLukrWPNZJHs6OBz2Q4wcsOv CVcE0JWtEtXyQb0JG3UjTGJrDV+lOoMLAax4j6qITBWK9//zJorF+AfjGPt3r2fwNI44 K+ID+IhC+qWNeaFRVGrQPjS7Z8F1nzII/eIIgL2ZoDqx3tewN//AWG6TmqjAIJoesplm uEa6/71I0tacyN7j3pMTL0zIFJWJOsniPz2/P3gIS3BTTSFknaVemobyLrk3J8jASdM5 fZSg== X-Forwarded-Encrypted: i=1; AJvYcCUt65s7xOVv09/HloXSXshmiVEpnYl8qFDgBA7Pb03tdHnt0KGhq5fN5I0DomDE/5RBYflGJw==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwE0BhncXW5Wk4WnmkBbGoFRoLIPsaeYmHm5SOHSL9w7YanNJ1b UlSjjgAR+wxyxNCCHhJNtm7Xjk1GXGe/EjeKVUhQs/LUuj0vUML/woO7EX9R X-Gm-Gg: ASbGncsNH1xOiz39b6abxY+BsaN2coDDFIuJqAEZqvwu8IwcFNW1zNml/5nmfHpY0bk RV2s8jgMKJ25FwAYXhaWj3itOs8l4ZrzOYxVvmWNDEZCBMnOEmAQINiklOR1AwAQczMAItb4SnB fQW0RjR6l8Q1BugTBZExmOR0aOmjJ+Lnl8MpbMed6N1UnDTBseooaTkbDE8oV5CDpQn4pRHJOCM ghlmjJqUtJ/z8uaLdJtAOC50o0qxWp2h/wV/bFEjfzsUKfgOlv56LR9NBweHyxToeuWlnU9Nodo 4PI99s6OAaY4BgTBWpmzkpJbftSW81BBkcTDukGU9FK92yJgtCnJm8hqFArJo2x7bXbcjaWrlbC lCHDxx9ASRyguPYOnz/MkB4gGuas3JmX/vaD75jPqgstMPK4DtVRpzQ== X-Google-Smtp-Source: AGHT+IGS64hoTB5l9vpVmz8454uWFbU8jXtdKXRcKwRl6ro02XJU43xm7y8EVBxFhzSg3psECQd7Lg== X-Received: by 2002:a05:600c:3b08:b0:43c:fb5b:84d8 with SMTP id 5b1f17b1804b1-43ed0c50883mr64936165e9.16.1743923576639; Sun, 06 Apr 2025 00:12:56 -0700 (PDT) Received: from pro2 (p200300e0b7278a003128f733a5af3bcd.dip0.t-ipconnect.de. [2003:e0:b727:8a00:3128:f733:a5af:3bcd]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43ec1663060sm96454675e9.14.2025.04.06.00.12.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 06 Apr 2025 00:12:56 -0700 (PDT) From: Gerd =?UTF-8?Q?M=C3=B6llmann?= In-Reply-To: <87h631pyjg.fsf@gmail.com> References: <87bjtbyzg1.fsf@gmail.com> <86ldsfxdhy.fsf@gnu.org> <87zfgucwhp.fsf@gmail.com> <87h631pyjg.fsf@gmail.com> Date: Sun, 06 Apr 2025 09:12:55 +0200 Message-ID: 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-Score: 0.0 (/) 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 (-) Visuwesh writes: > [=E0=AE=9A=E0=AE=A9=E0=AE=BF =E0=AE=8F=E0=AE=AA=E0=AF=8D=E0=AE=B0=E0=AE= =B2=E0=AF=8D 05, 2025] Elijah Gabe P=C3=A9rez wrote: > >> Gerd M=C3=B6llmann writes: >> >>> Nothing to add to your comments ATM, but maybe an alternative idea: how >>> about solving this with a new type of display property for drawing a >>> horizontal line? Say `horizontal-line WIDTH' where WIDTH could be nil or >>> something to draw a line to the end of the display area? That would have >>> the advantage that it would be a relatively locally confined change and >>> would have no impact when not used, and hopefully little potential to >>> break unrelated things when not used. >> >> I like this idea. > > Do we need a new display property when we have the :strike-through face > attribute? The following achieves the same effect, albeit the newline > is required for the :extend attribute to work properly AFAIU: > > (font-lock-add-keywords=20 > nil > '(("\f\n" (0 (prog1 nil > (put-text-property (match-beginning 0) (1- (match-end= 0)) > 'display " ") > (put-text-property (match-beginning 0) (match-end 0) > 'face '(:strike-through t :extend = t))))))) > (push 'display font-lock-extra-managed-props) Hm, that's right. And at least on my tty (iTerm2 on macOS) (display-supports-face-attributes-p '(:strike-through t)) =3D> t and it actually works, too. From unknown Sun Aug 10 09:11:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77544: (WIP) [PATCH] Prettify page separators. Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 06 Apr 2025 07:32:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Visuwesh Cc: gerd.moellmann@gmail.com, eg642616@gmail.com, 77544@debbugs.gnu.org Received: via spool by 77544-submit@debbugs.gnu.org id=B77544.17439246853200 (code B ref 77544); Sun, 06 Apr 2025 07:32:02 +0000 Received: (at 77544) by debbugs.gnu.org; 6 Apr 2025 07:31:25 +0000 Received: from localhost ([127.0.0.1]:45892 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u1KTU-0000pY-Th for submit@debbugs.gnu.org; Sun, 06 Apr 2025 03:31:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53850) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u1KTS-0000p8-I0 for 77544@debbugs.gnu.org; Sun, 06 Apr 2025 03:31:23 -0400 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 1u1KTL-0005P8-SP; Sun, 06 Apr 2025 03:31:16 -0400 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=3Z3ZSiRG7/V/xWHXMw++u+kgKq/EPCsvb9dKinCKq+c=; b=VMHZbcTWcZvQe/oV9NwF kaUHcCzUs8oqNhauDwHlkqDkITP8oQImn//TxLv8x1qro79GpITW8u+f7keZAtMVO0ObOTZiMrcJ3 mSN/oa1w1CERcxezA6VwTL4jnQakdp6U1x710EwignvDjPocYXXLqoAmNaPiReREElA5swhsMkKqP U1dV9ZPP7uo0BJ+Vf1oCJt4ox9mcXABqzaH/B1gVqj6/x5aaOvs1GNmLfO+FFMBhmH9u7l5nA0U85 nfZbrYrNHxgtmV6vZMIkuyzoDXa8h8IVR5ocm0Jj4XmP8V8iObhhgYQy83+b9DvYeSRq/OS/oQ95z +YC6+olMy9+ZCw==; Date: Sun, 06 Apr 2025 10:31:13 +0300 Message-Id: <867c3xvj9a.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87h631pyjg.fsf@gmail.com> (message from Visuwesh on Sun, 06 Apr 2025 12:27:39 +0530) References: <87bjtbyzg1.fsf@gmail.com> <86ldsfxdhy.fsf@gnu.org> <87zfgucwhp.fsf@gmail.com> <87h631pyjg.fsf@gmail.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) 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: Visuwesh > Cc: Gerd Möllmann , Eli > Zaretskii , > 77544@debbugs.gnu.org > Date: Sun, 06 Apr 2025 12:27:39 +0530 > > [சனி ஏப்ரல் 05, 2025] Elijah Gabe Pérez wrote: > > > Gerd Möllmann writes: > > > >> Nothing to add to your comments ATM, but maybe an alternative idea: how > >> about solving this with a new type of display property for drawing a > >> horizontal line? Say `horizontal-line WIDTH' where WIDTH could be nil or > >> something to draw a line to the end of the display area? That would have > >> the advantage that it would be a relatively locally confined change and > >> would have no impact when not used, and hopefully little potential to > >> break unrelated things when not used. > > > > I like this idea. > > Do we need a new display property when we have the :strike-through face > attribute? The following achieves the same effect, albeit the newline > is required for the :extend attribute to work properly AFAIU: > > (font-lock-add-keywords > nil > '(("\f\n" (0 (prog1 nil > (put-text-property (match-beginning 0) (1- (match-end 0)) > 'display " ") > (put-text-property (match-beginning 0) (match-end 0) > 'face '(:strike-through t :extend t))))))) > (push 'display font-lock-extra-managed-props) Thanks, but what does this do on TTY frames? We'd want to show dashes, I think. Besides, we don't have any control on the thickness of the strike-through line, something that would be a natural extension here. And it sounds like a kludge to me, TBH. From unknown Sun Aug 10 09:11:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77544: (WIP) [PATCH] Prettify page separators. Resent-From: Visuwesh Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 06 Apr 2025 10:38:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: gerd.moellmann@gmail.com, eg642616@gmail.com, 77544@debbugs.gnu.org Received: via spool by 77544-submit@debbugs.gnu.org id=B77544.17439358384499 (code B ref 77544); Sun, 06 Apr 2025 10:38:01 +0000 Received: (at 77544) by debbugs.gnu.org; 6 Apr 2025 10:37:18 +0000 Received: from localhost ([127.0.0.1]:46170 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u1NNO-0001AV-FQ for submit@debbugs.gnu.org; Sun, 06 Apr 2025 06:37:18 -0400 Received: from mail-pl1-x643.google.com ([2607:f8b0:4864:20::643]:46393) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u1NNM-0001AF-6H for 77544@debbugs.gnu.org; Sun, 06 Apr 2025 06:37:16 -0400 Received: by mail-pl1-x643.google.com with SMTP id d9443c01a7336-227b828de00so32486345ad.1 for <77544@debbugs.gnu.org>; Sun, 06 Apr 2025 03:37:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743935830; x=1744540630; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KSpY4FRHv1LM2MlH/rCLAvIMGd2Eq0lex1maQm1+0AM=; b=g/CLwkViuuur93G0XN0V6qCW/y7gPR7R4FsgosFhukPKVBMbNNgx4RGOwai/nKmO1P 120dnNKL4Ecvo3s3p8TPAd7MmbUVkX2Z6XFueS29YXloMDampiHgbKU7DUDq1Fd0obVo yOMno9dEkiZtH8jQ2o+as58klb4GyMxLUkO+1sskfHO4IczSHUQv46RgkV7Gj5vEJx3N UKqCklfKUd6/0krobiVlEFN7fK0VWXZH5QAQ19z+k2oBSPL6fLXZ2yhUKz67TjVieHKy DcqHxOhrPbrinvS5z/qU19kLDUQYzUGA7ISXighg4AW9rN5yM1/lsrmK+5xnAZpouTXm 7L+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743935830; x=1744540630; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=KSpY4FRHv1LM2MlH/rCLAvIMGd2Eq0lex1maQm1+0AM=; b=nwjwDS4McoMQj51aTYZtxwZsqWrZH7lpnjT3EFtASPdBL+9w31OKPwMQ0Oo5jWa4NQ f1zkJVPE1/xMXX0dT2mgaWFPmDdB90T53f4hnvytz3U4UQ2MP/COMpZWUYOP1As4cl4X 6RAhpahefJ6WwykLj3o1xTWPQWi3zNnFSR5lJzubCDb92EJKF0dXn8uCuNSB8iXhpnOT yB7qXoAXmoNooSuQbnMWRfOwxQyvr6Rn1/nslqX+q0s+TUooFDVQ1tU+rKBsNm2/TVjL gHWq0WN1Xa78u+xAq+PK0cjSTM5z2wGV/LKUDZkFsH8SffWWSIFsBzQgtW0OAsuDrJln vidg== X-Forwarded-Encrypted: i=1; AJvYcCWZcjj8og2ufoUK8j3crbdtrD2+jGDV3Kn3qaoqylS8uq9ZkJCvPbHcifW4dXb1XqogtwCj2w==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yx9OsR3MzYUjKJ7q4eg46mq2SMFa7q3PJjt8GBR0g9po0AOgiBM J+rmkA7sHaMADx+QCj2gdThpwmnZImStgP2dlnQUGYyeMyNqvtPq X-Gm-Gg: ASbGnct3a0rLzs/rJenWCAZlj4cxUApOIJcMBX6f7owTzVyhKVY2kMr2Et3wHrPOoC6 QrC4uV2OEslTOjmbSsh+eoEHeVtSYvSiQWXfzGUIsaKn/rSJ4YQ7K2iji5ez9r9f51XjUBJ56jZ VP73C9QSTCzhCagc9QXTDnTHvQWetmzlqaqdecauFUe0nezaHbKAe+p4H48y/tl0ZXQBfSXwF1m Ahx342GK/p75Nqk3Pl+lZ8PX5Ue3qvmIwp9ZO2LksGbUaqw7IxFLHNNo5tv8ZKQXuTxe8moZNB0 EZlo4Iz1v8MD4v3Uppu1MYLJFOPyg0MZhGFPWIekcMr/Pg== X-Google-Smtp-Source: AGHT+IETIHB+Yw0VtfAMJduthHdqZ/4O4fkbcGdxp3vkSWwX6ouGJm6IycbrZjzRTnEstgkF6SwU+g== X-Received: by 2002:a17:903:19c6:b0:223:50f0:b97 with SMTP id d9443c01a7336-22a955a19a0mr75791425ad.52.1743935830095; Sun, 06 Apr 2025 03:37:10 -0700 (PDT) Received: from localhost ([1.7.159.71]) by smtp.gmail.com with UTF8SMTPSA id d9443c01a7336-2297865e454sm61295385ad.107.2025.04.06.03.37.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 06 Apr 2025 03:37:09 -0700 (PDT) From: Visuwesh In-Reply-To: <867c3xvj9a.fsf@gnu.org> References: <87bjtbyzg1.fsf@gmail.com> <86ldsfxdhy.fsf@gnu.org> <87zfgucwhp.fsf@gmail.com> <87h631pyjg.fsf@gmail.com> <867c3xvj9a.fsf@gnu.org> Date: Sun, 06 Apr 2025 16:07:06 +0530 Message-ID: <87cydppodp.fsf@gmail.com> 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-Score: 3.6 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: =?UTF-8?Q?[=E0=AE=9E=E0=AE=BE=E0=AE=AF=E0=AE=BF=E0=AE=B1=E0=AF=81_?= =?UTF-8?Q?=E0=AE=8F=E0=AE=AA=E0=AF=8D=E0=AE=B0=E0=AE=B2=E0=AF=8D?= 06, 2025] Eli Zaretskii wrote: >> Do we need a new display property when we have the :strike-through face >> attribute? The following achieves the same effect, albeit the newline >> is required for the :extend attribute to work pro [...] Content analysis details: (3.6 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:643 listed in] [list.dnswl.org] 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [1.7.159.71 listed in zen.spamhaus.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (visuweshm[at]gmail.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: 2.6 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: =?UTF-8?Q?[=E0=AE=9E=E0=AE=BE=E0=AE=AF=E0=AE=BF=E0=AE=B1=E0=AF=81_?= =?UTF-8?Q?=E0=AE=8F=E0=AE=AA=E0=AF=8D=E0=AE=B0=E0=AE=B2=E0=AF=8D?= 06, 2025] Eli Zaretskii wrote: >> Do we need a new display property when we have the :strike-through face >> attribute? The following achieves the same effect, albeit the newline >> is required for the :extend attribute to work pro [...] Content analysis details: (2.6 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:643 listed in] [list.dnswl.org] 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [1.7.159.71 listed in zen.spamhaus.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (visuweshm[at]gmail.com) -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager [=E0=AE=9E=E0=AE=BE=E0=AE=AF=E0=AE=BF=E0=AE=B1=E0=AF=81 =E0=AE=8F=E0=AE=AA= =E0=AF=8D=E0=AE=B0=E0=AE=B2=E0=AF=8D 06, 2025] Eli Zaretskii wrote: >> Do we need a new display property when we have the :strike-through face >> attribute? The following achieves the same effect, albeit the newline >> is required for the :extend attribute to work properly AFAIU: >>=20 >> (font-lock-add-keywords=20 >> nil >> '(("\f\n" (0 (prog1 nil >> (put-text-property (match-beginning 0) (1- (match-en= d 0)) >> 'display " ") >> (put-text-property (match-beginning 0) (match-end 0) >> 'face '(:strike-through t :extend= t))))))) >> (push 'display font-lock-extra-managed-props) > > Thanks, but what does this do on TTY frames? We'd want to show > dashes, I think. I see no difference from the line in show in a GUI frame, and in xterm. However, I don't see a line at all in the Linux tty thingy. The font used in xterm does not seem to matter either. > Besides, we don't have any control on the thickness of the > strike-through line, something that would be a natural extension here. > And it sounds like a kludge to me, TBH. More styling for the horizontal line, similar to what have for :underline, would be nice to have too. And I agree, it is a bit of hack. From unknown Sun Aug 10 09:11:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77544: (WIP) [PATCH] Prettify page separators. Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 06 Apr 2025 11:00:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Visuwesh Cc: gerd.moellmann@gmail.com, eg642616@gmail.com, 77544@debbugs.gnu.org Received: via spool by 77544-submit@debbugs.gnu.org id=B77544.17439371428294 (code B ref 77544); Sun, 06 Apr 2025 11:00:01 +0000 Received: (at 77544) by debbugs.gnu.org; 6 Apr 2025 10:59:02 +0000 Received: from localhost ([127.0.0.1]:46194 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u1NiQ-00029h-1J for submit@debbugs.gnu.org; Sun, 06 Apr 2025 06:59:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34388) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u1NiN-000297-JI for 77544@debbugs.gnu.org; Sun, 06 Apr 2025 06:59:00 -0400 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 1u1NiI-0001XV-8G; Sun, 06 Apr 2025 06:58:54 -0400 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=8mS78FkK3fUuezH7/Qm7ux4YXv41XaiGwNG1s0pdbV0=; b=r2PHja5BL/sk1kNSXCnd e5vad7hRWywTbqc44H1Jz0xzHvz23i5GZ/ku7BP218zqy4qjLisR8wlai0bZ5/M4ZormfK+9l5slf /eQ/hdP3mrJBe9JJF7/3sjpfWbT5mPJnlIzTO4FI8V4V+ybmxBGBLvqLW10mr9k6pe1eg2n4gBNrq j1ALq0QxT4/ZZjQZvz9qQeDciTiMroO2LzJ/meNN+NgWhp/KY6lKJEo5sgS/GqBQufbPySAD6GsrR 1usUeNbNauxx5ZQRdwQFxX8tjnhxOQ+6MyH+wC97NkYqmvV8HZ/XCqd7+Qxegw2KznsOC00b6hReb 6kCrVtkQ1bVzIA==; Date: Sun, 06 Apr 2025 13:58:50 +0300 Message-Id: <8634elv9n9.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87cydppodp.fsf@gmail.com> (message from Visuwesh on Sun, 06 Apr 2025 16:07:06 +0530) References: <87bjtbyzg1.fsf@gmail.com> <86ldsfxdhy.fsf@gnu.org> <87zfgucwhp.fsf@gmail.com> <87h631pyjg.fsf@gmail.com> <867c3xvj9a.fsf@gnu.org> <87cydppodp.fsf@gmail.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) 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: Visuwesh > Cc: eg642616@gmail.com, gerd.moellmann@gmail.com, 77544@debbugs.gnu.org > Date: Sun, 06 Apr 2025 16:07:06 +0530 > > [ஞாயிறு ஏப்ரல் 06, 2025] Eli Zaretskii wrote: > > > Thanks, but what does this do on TTY frames? We'd want to show > > dashes, I think. > > I see no difference from the line in show in a GUI frame, and in xterm. > However, I don't see a line at all in the Linux tty thingy. The font > used in xterm does not seem to matter either. > > > Besides, we don't have any control on the thickness of the > > strike-through line, something that would be a natural extension here. > > And it sounds like a kludge to me, TBH. > > More styling for the horizontal line, similar to what have for > :underline, would be nice to have too. And I agree, it is a bit of > hack. I think a new kind of display property is a cleaner solution. It will also make it easier to extend the feature, e.g., if we want the visual appearance be more like what word processors show for a "page break". From unknown Sun Aug 10 09:11:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77544: (WIP) [PATCH] Prettify page separators. Resent-From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 06 Apr 2025 13:28:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: gerd.moellmann@gmail.com, 77544@debbugs.gnu.org Received: via spool by 77544-submit@debbugs.gnu.org id=B77544.174394604315532 (code B ref 77544); Sun, 06 Apr 2025 13:28:02 +0000 Received: (at 77544) by debbugs.gnu.org; 6 Apr 2025 13:27:23 +0000 Received: from localhost ([127.0.0.1]:46592 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u1Q1y-00042R-Oq for submit@debbugs.gnu.org; Sun, 06 Apr 2025 09:27:23 -0400 Received: from mail-qv1-xf43.google.com ([2607:f8b0:4864:20::f43]:46197) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u1Q1v-00042B-Lh for 77544@debbugs.gnu.org; Sun, 06 Apr 2025 09:27:20 -0400 Received: by mail-qv1-xf43.google.com with SMTP id 6a1803df08f44-6e8f6970326so34687746d6.0 for <77544@debbugs.gnu.org>; Sun, 06 Apr 2025 06:27:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743946034; x=1744550834; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=qjZc/Hig2n56pMTfZxh06ynxq22RCqwzC9qpO4T2qP0=; b=j81bnV3eaVjQ5Z9qeGHzJuvWwHbjE2R9aqMoQdNQIbq4unraFziBlFF4AW4YhpL2CE 1IVgIq+hG2H4lj4jPYTqWCbXnhahtwfsy4DfXGF66Hn5Isf6w4fdK3fk6B033ygnTdzS W+p1F9Qo9NczSafTg1NVv0G1q5nvH55LNTrpVydlT3m1U4QhFQfN7H0YZVcDlroRpEEK TaDWIdBlHZyGvs5sCruUAfSEttWX9CK+UNNXMl+eTB8ZZPjoo+f9qjXgokmjuvHX0XHw xpnQxZr0Mnan/wuRTkaONuOF38qBOl/lbGZRDqV7EVFgxHOif4eubgfQakRX8cvyt8Gg rV/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743946034; x=1744550834; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=qjZc/Hig2n56pMTfZxh06ynxq22RCqwzC9qpO4T2qP0=; b=nqzaUqaTmvuQo7I115NGSbpPyEP60rDvSUpPj2c1GivhpZQaXdYFu/gORBYZ8bP32H 2A3ZJFUNEbdx7mtHE/RPR+0NM4xuvfUImQCrxb1pF8tVGqIrKdDnFFfqdRGw9rrSfsLs MeHeciJ/rjhvIptIXMYGe0zuvSxEYo6jM/Yr6wL5XKs4aqArlmZZ7YLkJv6XC1w89gEX iutBIOl/uyFUf67UgfvSx2E3I+2kW+QUm/O54aubA4uSoFE7zMxMhWKlcBt+FQ4GXL8y jY3OwyBRZ7zZntBlTf1U5TcHWuHM4sRRnHkBkpALp9URvtAnOdw6rTLDUjWqlfw/UNwR jlTw== X-Forwarded-Encrypted: i=1; AJvYcCXxChyiGdbuYx6seaRcdUshkIEWbiUNFdsHGZ0qyym8w4899gLHtoV36dlG70w4EoKh80YclA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxKuXQsikiFPzdRuLxVicmSsH9W477CDpJduuEk/o3vzJqRLgnG eQnDMLZNKExWK/saMZ3+Q8iXFuWg0F8XumSbvsN9Vo83Xpvbl5amWAD6ZvAGKffBzwyv47tLYuc bt5Mec5tW9K49mu4YJF4K2qUI/NU= X-Gm-Gg: ASbGncucnXVms+1Qdv8rHQmgIt8Wl47NecW3PVD2CrAnJyuBxLTAd6jqjXxz6AjkCEV +Q9FNmeyaFgjZJ2VL8wSYOU6fiK276xAX0UvGZP8pyFJgUg5/Bx/0vONGJAI9+NCqDoSSTZKzJT e60pZWH1WTYeJwk1oOxLAIbHVY0AwmRfOsezikMaKljjhdIVpmO6vdM9A= X-Google-Smtp-Source: AGHT+IE2tkXXsPCIj+xWrr4jYDrHpAdSFp5ULRqNwUTicv+P0c13wgsZYHHA5AOhSJQLU+/9Kvnidw96ZYz6vX2SXUc= X-Received: by 2002:a05:6214:20a5:b0:6e8:fa33:2969 with SMTP id 6a1803df08f44-6f0b7413861mr107473546d6.10.1743946033952; Sun, 06 Apr 2025 06:27:13 -0700 (PDT) MIME-Version: 1.0 References: <87bjtbyzg1.fsf@gmail.com> <86ldsfxdhy.fsf@gnu.org> <86mscux5hg.fsf@gnu.org> <87v7ricw8p.fsf@gmail.com> <86msctvpxe.fsf@gnu.org> <86bjt9vl0r.fsf@gnu.org> In-Reply-To: <86bjt9vl0r.fsf@gnu.org> From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Date: Sun, 6 Apr 2025 07:27:01 -0600 X-Gm-Features: ATxdqUH4WwE6FxDtlsvKLx9YPX7k9LXFmoPAWomHUEIcBAcmXmGt2FeJEAM0GOo Message-ID: Content-Type: multipart/alternative; boundary="000000000000dc7a9b06321c13d9" X-Spam-Score: 0.3 (/) 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.7 (/) --000000000000dc7a9b06321c13d9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Eli Zaretskii writes: > > From: Elijah Gabe P=C3=A9rez > > Date: Sat, 5 Apr 2025 23:33:04 -0600 > > > > Eli Zaretskii writes: > > > > > From: Elijah Gabe P=C3=A9rez > > > Cc: Gerd M=C3=B6llmann , > > > 77544@debbugs.gnu.org > > > Date: Sat, 05 Apr 2025 12:13:26 -0600 > > > > > > Or an optional feature of whitespace-mode? > > > > > > I don't think whitespace-mode is related to this. > > > > The form-feed ^L character is one of whitespace characters. > > > > Right, but I don't think this should be whitespace-mode exclusive. IMO > this new minor mode can be used as > > alternative to make-separator-line (for example in shortdoc buffers) > which looks ugly in both terminal and GUI > > frames. > > Sure, but why is it a problem to make this part of whitespace-mode? > It already has a number of optional features, each one of which can > be turned on and off separately. > > The advantage is that we don't need to have yet another minor mode, > yet another mode-line lighter, etc. Also, some people already turn on > whitespace-mode in text modes. > It makes sense, since ^L characters are often used in files. > --000000000000dc7a9b06321c13d9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Eli Zaretskii <eliz@gnu.org> writes:
> From: Elijah Gabe P=C3=A9rez <eg64261= 6@gmail.com>
> Date: Sat, 5 Apr 2025 23:33:04 -0600
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
>=C2=A0 > From: Elijah Gabe P=C3=A9rez <eg642616@gmail.= com>
>=C2=A0 > Cc: Gerd M=C3=B6llmann <gerd.moellmann@= gmail.com>,
>=C2=A0 >=C2=A0 =C2=A077544@debbugs.gnu.org
>=C2=A0 > Date: Sat, 05 Apr 2025 12:13:26 -0600
>=C2=A0 >
>=C2=A0 >=C2=A0 Or an optional feature of whitespace-mode?
>=C2=A0 >
>=C2=A0 > I don't think whitespace-mode is related to this.
>
>=C2=A0 The form-feed ^L character is one of whitespace characters.
>
> Right, but I don't think this should be whitespace-mode exclusive.= =C2=A0 IMO this new minor mode can be used as
> alternative to make-separator-line (for example in shortdoc buffers) w= hich looks ugly in both terminal and GUI
> frames.

Sure, but why is it a problem to make this part of whitespace-mode?
It already has a number of optional features, each one of which can
be turned on and off separately.

The advantage is that we don't need to have yet another minor mode,
yet another mode-line lighter, etc.=C2=A0 Also, some people already turn on=
whitespace-mode in text modes.


It makes sense, since ^L characters are often used in files.
Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Aug 2025 05:10:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: gerd.moellmann@gmail.com, 77544@debbugs.gnu.org, Visuwesh Received: via spool by 77544-submit@debbugs.gnu.org id=B77544.17547161695407 (code B ref 77544); Sat, 09 Aug 2025 05:10:01 +0000 Received: (at 77544) by debbugs.gnu.org; 9 Aug 2025 05:09:29 +0000 Received: from localhost ([127.0.0.1]:39803 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ukbpg-0001P5-SJ for submit@debbugs.gnu.org; Sat, 09 Aug 2025 01:09:29 -0400 Received: from mail-oi1-x244.google.com ([2607:f8b0:4864:20::244]:52365) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ukbpb-0001On-5s for 77544@debbugs.gnu.org; Sat, 09 Aug 2025 01:09:25 -0400 Received: by mail-oi1-x244.google.com with SMTP id 5614622812f47-4358a73e8a3so1481396b6e.0 for <77544@debbugs.gnu.org>; Fri, 08 Aug 2025 22:09:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754716157; x=1755320957; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=jBNC8W3Nsw4BlJo9wjBd2U8bzp2ObuN+3zlC6h59JzU=; b=GxwIJU9x0nvthfPLUebB3/d/F3H9O3mq+JU/CbMpvHDqrZFd2mjaCCIoycwnHQvTNJ jZl871KBq3EIXz442CgNe+3Cr55F0BUZ4zrAbgdJDbVTjsLCIwzHbpc27luyLwfvSSKP dJ71K/Es8s3U+aJJ5kvrN3Orm20n8h2WM3xtzrDZBEEMN81aoPGydXCknGLeZMehVMLT TXXa9rfT5WguAslRgUHF8+SvGym7De9tuOIFyJxgZHLLf4XJtD8WeWlxok471PKBPr/x BStX9ko3y2Zohn7axzU141O9+XQMQUBq9cDA+agJ8sA/SJ/YU2bvlKch0ffUNumJMyFI LQBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754716157; x=1755320957; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=jBNC8W3Nsw4BlJo9wjBd2U8bzp2ObuN+3zlC6h59JzU=; b=vuJrDcJVJ5piOrGmKtzzNg235WcoIjIvqF3qPkRRali3tm0L62RqzoGCCFB6CERRoY R012gkbl6xy+lX+w0o3NUjq8rb3E56W2kKXt73fn+20q1XJa5mB4hssJ2sMa/Ki1+P/L xHIpGJNweMSnFuJ/P7YxWdd/72+hmHtZMeUN1qehtXsc1iqYUA2vSSSy9qCR69WA7FQH WmyNQedg3cjcH/wF32Tqx1F2dDpZYj5TsqeGZHsJR4LWPmg6BUiIeJNRPQ6CPZUnz66e druJC7eb2/NxPN+53OPPCojnAFsVFURe7KcZCOgOdbuVM2zlt+1AnnRfiuw44/283tp3 3xpA== X-Forwarded-Encrypted: i=1; AJvYcCWNbCDK2ixCtOt4VYQ3PUgTglQzqFZRMsalzLXRp2tCo3TfKaJVl40jcUumYBRDJdT2cuYmuA==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yz0SMKYMtOFk7BFfEWeAqGmmIFO3IxCFOucGPLBcHPMZDmKfU+i UjazWFR7HMsXLbJRqUSUXEEVwbPDrajDsCUGbrSj0qVTjwTAjIGntQlAbQ61lBeS X-Gm-Gg: ASbGncvfgDsl1AK1whvK8u+5nTHWB/ZtAMH2r4IodrcFx92UkuUrsHiRp+04QAnW3iq fpKIlY3kEtY41avAU5ZhNGNU3m292BqrBMu3xEihTAiuSvlSswaUSs0fcusYgqVd97QboSmQAje 4BW3PfktA2Q6MF8pL7WgtFx5phn1FMgoiwxbmAuFxP1VVdE5gek18sHkU6X/HDP7espChbBIVjh L4AlyU4hCxMxMxCCUCwYouBvU5rO9t3Pq45YUwPjVdV2kPqhrCyFIW4afOxorz1/kLIB/uLwmTD w2YdCZZpcWKg0FB2GyylmyHiI7lep2C6EBW3To6lp/Fr1Ksa1mWA3oLZ32TSpw8HE9CporQX67s /hzxboBJ68iVF7dI= X-Google-Smtp-Source: AGHT+IEmVW/aukdp3H7MrDJVg7HzHd3l08tmugvyUciX02XQVpFuhQ2nakgNDYa9bqem2X//xrVLWw== X-Received: by 2002:a05:6808:2229:b0:433:f07e:eeb1 with SMTP id 5614622812f47-43597d315d0mr2855944b6e.11.1754716156557; Fri, 08 Aug 2025 22:09:16 -0700 (PDT) Received: from fedora ([189.215.161.127]) by smtp.gmail.com with ESMTPSA id 5614622812f47-43358891df0sm4418541b6e.23.2025.08.08.22.09.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 22:09:15 -0700 (PDT) From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= In-Reply-To: <8634elv9n9.fsf@gnu.org> References: <87bjtbyzg1.fsf@gmail.com> <86ldsfxdhy.fsf@gnu.org> <87zfgucwhp.fsf@gmail.com> <87h631pyjg.fsf@gmail.com> <867c3xvj9a.fsf@gnu.org> <87cydppodp.fsf@gmail.com> <8634elv9n9.fsf@gnu.org> Date: Fri, 08 Aug 2025 23:09:03 -0600 Message-ID: <87o6spf5e8.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.3 (/) 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.7 (/) --=-=-= Content-Type: text/plain Sorry for the delay, i tried to make the strike-through face property support the same line styles as the underline, but i couldn't figure out how, as it seems that strike-through is designed to support only 1 style. My solution was to make a kind of hack to display the underline as strike-through, and it worked. Another solution was to reuse the code from display space type, for make a new display property type (as suggested by Gerd), but I ended up getting lost when I saw too many references to this in the source code, so for now the hack was the only solution I could think of. This should work well in both GUI and TUI frames. In GUI, the line will be displayed as a double horizontal line (as shown in the screenshot) --=-=-= Content-Type: image/png Content-Disposition: inline; filename="Captura desde 2025-08-08 23-05-44.png" Content-Transfer-Encoding: base64 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 2g9nH55K+VVVVQmtVmsXT0lJER06dJCf2z580tLShKenp9i5c2ez8rJ9OLzxxhtyTi+99JLIzc2V 89u0aZP8+g0bNghfX19RW1srf7jX1taKxMREkZiYKG9v9+7dqvp/3rx54r777pPj9957r5g/f75d /zTWvhpN9Y+a7T///PNi9OjRcnz06NHiueeeE0IIceHCBQFAVFdXi02bNolNmzaJqqoqAcCu/5ra /6b632QyCU9PT7v1k5OT7T6co6OjxWuvvSY/P3z4sEhNTVXVN0Ll+BcqitOrKV6V+s+WX3JysrzO m2++2ez8Gnv/qjn+Sv2r1WrFypUr5edffPGF8PLyEiaTSQghxJ133im++eYbOf7+++/Lf9CV3t+u GP9KWpK/0vhsaf6u3P7VjF+lzze122/J+Gvq80G44P1/vX8+1ld0okgsxmJRdr5Mdf9Q++QWc15t P0jgpXWe7pAhQ+RpAkOGDLH7yqq4uBg1NTWIjIyUl/Xt2xdVVVUoKipCly5dAAA9e/aU47169cKl S5dU56fT6VBdXW23TKvVyvNwm6KUnxAC1dXVdvHp06dj1KhRdtspLCzEQw89hAULFmDChAlXlV90 dLQcW7x4MQAgLy8PNTU16Nevn/y6gQMHwmQyKX41JYRQ1f/x8fGYPXs2rFYrhBD4+uuvkZqaatc/ jbUfGhqqav8a6x812x8/fjz+/ve/w2g0QqPRYO/evXj55ZcBAN27d4fBYEBBQQFeffVVaDQaxMTE wM/PD127dpX7T2n8NdX/FovFbv2oqCi7fR0/fjySk5PRp08fxMXFYdCgQRg0aFCTx6ahloz/llDq P5u+ffvaPXZVfmqPv1L/9ujRQ34cHh4Os9mMkpISdO3a1eE2Xz179pS/di0uLm7y/e2K8a/m/XG1 +ZeUlDQ5Pluavyu231pc8eOUzcnf2ecDVLz/f+2fj/V5+Uo1hKWWd4Rwd25RvPr4+QAATCUmBPQI aNa6tqJWo6m7tZaHhzTVt/4tTRrGm3O7k/3799vNsa3fRmvkp9VqER4ebredlStXwmKxYOjQoVed n7MLDmzrOftAUHM/RDX7N3bsWJhMJhw6dAhWqxVVVVW4/fbbVbevZv8a6x8127/11lvh7e2N3bt3 w8PDA15eXhgxYoT8usjISOTl5SE/Px+48oFq+zBVe3yh0P/O1rdJSkqC0WhEYmIizGYzZsyYgWXL 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 e/bswfz58+228d577+Htt9/G3r17cebMGbtfiNm+fTuWLFmC4OBgZGRkICMjA++8847L9k8pv3nz 5uHgwYP4+OOP8f7772PXrl1YsGCB02298MILyM7ORkpKCjQajdPXNKTUfy319NNP4+TJk1i/fj02 bdqErKwsPPXUU3aveeuttzB//nx8+OGHyMjIaPQXeoKjglF2rgy1lbVO4wHdwlFRmAdztclpPCoK OHcOaKT2R58+NyAn5xcYjTXN3U0iIiK6Btzi52FNv0iFiG+wr9P4999/j6NHj2L27NnYs2cPfHx8 EBQUBACorq7GJ598go0bN2Ly5MkAAKvVivvvvx8ffPABvL29AQCJiYm46aabAAALFy7EkiVL5O33 798fR44cgZeXF2JiYly6b0r5Wa1WrF+/Hhs2bEB8fDwAwGg04qmnnsKKFSvstpWeno433ngD27dv b9b81Kb6zxWOHj2KmTNnIi4uDgCQkpKCn3/+2e41Dz74IKZMmQIAOH/+PN58802n29IH6wEAphIT vA3eDnGtfwcAQPXlMnhpHcdLcLD035ISwGBw3H7HjtLC0lIj9HqfZu4pERERtTa3KF5tP0jgpXWe 7pAhQ+SvuYcMGWL3lXVxcTFqamoQGRkpL+vbty+qqqpQVFSELl26AAB69uwpx3v16oVLl9TfMkmn 06G6utpumVarleeRNkUpPyEEqqur7eLTp0/HqFGj7LZTWFiIhx56CAsWLMCECROalV9T/ecK48eP R3JyMvr06YO4uDgMGjQIgwYNsntN37597R431v9evtIYsNRanMd9tAAAq8XsNO57pZ6tdX7iFjqd 95W48+0TERFR23KL4tXHTzoDZioxIaBHQLPWtRVl9b9C9/CQZkvY5nk6i9ePKdm/f7/DHFFbG62R n1arRXh4uN12Vq5cCYvFgqFDh7o0P1dISkqC0WhEYmIizGYzZsyYgWXLlsHfv+7iu/r75+np2Wj/ G4ukX9rS+mudxqvKpbmy3r5OTqsCsE219Xd+3R9KSqT5BH5+zrdPREREbcstildDZwO89d4ozylH SHTzbtdkK9LqX7xke+zp6al6Ow3nj5aVlcHHxwe+vr4OZxFdmZ/tcf14TU0NLl26hO7du8vLDAYD HnjgATzzzDOIj4+3Kwxbkp/afaifX8PCU6vV4u2338brr7+O9PR0LFq0CE888QQ+/PDDZrd1Oe8y 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 /Jqye/duaDQajBkzBiEhIfjggw/QuXNn3HfffY1uf86cOSgvL5fjOTk5uOOOO2AwGDB27FgUFhba tdGS/IiIiIhcSrSy9PR0ERwc7LA8KChIfPnll0IIIbRarYiNjRUbN24UGzduFCEhIeKJJ56QX5uT kyMyMjLE3LlzxZ133umwraNHj4olS5aI4OBgkZGRITIyMsTZs2fl+MyZM0VERITYunWr2LJli+jd u7eYPXu2HH/wwQfFwIEDxeeffy6++OILER0dLWbMmCHHtVqtuP3228XRo0fF8ePHxbBhw0R8fLwc v+eee0R0dLTYsWOH2LhxowgLCxOzZs2yaz8qKkps375drF+/XoSFhYnHHntMdX5N+e677wQAkZ6e LoYNGyZuueUWkZaWJgCIkydPytuPjIwU27ZtE1u3bhURERF2+cXFxcnxTZs2idjYWKHVal2SHxER EZErtXrxeuHCBQFAVFdXi02bNolNmzaJqqoqAUDk5uYKcaU4TE5Oltd58803RXh4uMO2nn/+eafF qxBCrFmzRoSEhDgsr6qqEj4+PmLTpk3ysg0bNghfX19RW1srhBAiOjpavPbaa3L88OHDIjU1VX6u 1WrFypUr5edffPGF8PLyEiaTSQghxJ133im++eYbOf7+++/LBXtVVZXQarVi27ZtcjwlJUV06NBB dX5NsRWvtbW1IjExUSQmJora2loBQOzevVvefv32N2/eLHQ6naipqREmk0l4enraxZOTk+XitaX5 EREREblSq8957d69OwwGAwoKCvDqq69Co9EgJiYGfn5+6Nq1q/y6vn372j2+dOmSS9ovLi5GTU0N +vXrJy8bOHAgTCYTioqKEBoaivHjxyM5ORl9+vRBXFwcBg0ahEGDBtltp0ePHvLj8PBwmM1mlJSU oGvXrg63+erZs6f8tXpxcTGqq6sRGRkpx6dPn45Ro0apzk+n06G6utquDa1Wi6qqqib3XQghb79+ +3379kVVVRWKiooghIDFYrGLR0VFNav/iIiIiK6Va3LBVmRkJPLy8pCfnw8AyMvLsyuWAECj0ciP PT09XXY7LKvVCjQoyGxs94tNSkqC0WhEYmIizGYzZsyYgWXLlsHf399pfrbHtm1nZ2fj2WefxVdf fYXi4mLgSnFZ/zX119dqtQgPD1ed3/79++XX2Xh4qJuu7Kx927r1+9hZXG1+RERERNfKNSteDxw4 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 --=-=-= Content-Type: text/plain And in TUI, it will be displayed as a normal underline (or strike-through if underline is not supported). Optionally, I've added a new minor mode to enable this outside whitespace-mode (an example of use in this would be in the NEWS file or in *Compile-Log* buffers). --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-whitespace-mode-Prettify-page-delimiters-characters..patch >From 751e8c3ab69fca962afcaa20e3b3fc23e5d6a2b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?El=C3=ADas=20Gabriel=20P=C3=A9rez?= Date: Fri, 4 Apr 2025 22:17:23 -0600 Subject: [PATCH] whitespace-mode: Prettify page delimiters characters. (bug#77544) This makes whitespace-mode display the page delimiter character "^L" as a pretty horizontal line. This also add a new minor mode to display these character outside of whitespace-mode. * lisp/whitespace.el (whitespace-style): Add page-delimiters option. (whitespace-page-delimiter): New face. (whitespace--page-delimiters-keyword): New variable. (whitespace-page-delimiters-mode): New minor mode. (whitespace-style-face-p, whitespace-color-on): Rework for display the page-delimiters. --- etc/NEWS | 8 ++++++ lisp/whitespace.el | 69 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index e12a9dcb127..1bd901c2960 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1112,6 +1112,14 @@ slot. Symbol macros are created for the accessor functions using If 'whitespace-style' includes 'missing-newline-at-eof' (which is the default), the 'whitespace-cleanup' function will now add the newline. +--- +*** 'whitespace-mode' now can prettify page delimiters characters (^L). +If 'page-delimiters' is set in 'whitespace-style', or the new minor mode +'whitespace-page-delimiters-mode' is on, the page delimiters characters +(^L) are displayed as a pretty horizontal line that spans the entire +width of the window. The new 'whitespace-page-delimiter' face, can be +used for customize the appearence + ** Bookmark --- diff --git a/lisp/whitespace.el b/lisp/whitespace.el index 58ba0db8c90..79afb8cf298 100644 --- a/lisp/whitespace.el +++ b/lisp/whitespace.el @@ -326,6 +326,11 @@ whitespace-style This has effect only if `face' (see above) is present in `whitespace-style'. + page-delimiters visualize page delimiters characters (^L) + as horizontal lines. + This has effect only if `face' (see above) + is present in `whitespace-style'. + empty visualize empty lines at beginning and/or end of buffer via faces. This has effect only if `face' (see above) @@ -440,6 +445,7 @@ whitespace-style (const :tag "(Face) NEWLINEs" newline) (const :tag "(Face) Missing newlines at EOB" missing-newline-at-eof) + (const :tag "(Face) Page delimiters" page-delimiters) (const :tag "(Face) Empty Lines At BOB And/Or EOB" empty) (const :tag "(Face) Indentation SPACEs" indentation::tab) (const :tag "(Face) Indentation TABs" @@ -622,6 +628,14 @@ whitespace-space-after-tab See `whitespace-space-after-tab-regexp'.") +(defface whitespace-page-delimiter + '((((supports :underline (:color foreground-color :style double-line))) + :underline (:color foreground-color :style double-line) + :extend t :inherit shadow) + (((supports :strike-through t)) + :strike-through t :extend t :inherit shadow) + (t :extend t :inherit shadow :inverse-video t)) + "Face used to visualize page delimiter characters.") (defcustom whitespace-hspace-regexp "\\(\u00A0+\\)" @@ -934,6 +948,29 @@ whitespace-action (const :tag "Abort On Bogus" abort-on-bogus) (const :tag "Warn If Read-Only" warn-if-read-only))))) +(defvar whitespace--page-delimiters-keyword + `((,(concat page-delimiter "\n") 0 + (prog1 nil + ;; HACK: Due :strike-through, doesn't support the same line + ;; styles as in :underline, for GUI frames raise the invisible ^L + ;; character to give the illusion of a centered line (unless + ;; whitespace-page-delimiter doesn't have the :underline attribute). + ;; In TUI, this is only displayed as an normal underline. + ;; FIXME: Rewrite this when :strike-through supports this. + (if (not (eq (internal-get-lisp-face-attribute + 'whitespace-page-delimiter :underline) + 'unspecified)) + (progn + ;; :underline + (put-text-property (match-beginning 0) (1- (match-end 0)) + 'display (propertize " " 'display '(raise 0.5))) + (put-text-property (1- (match-end 0)) (match-end 0) 'display '(raise 0.5)) + (add-face-text-property (match-beginning 0) (match-end 0) '(:inherit whitespace-page-delimiter :height 0.5))) + ;; :strike-through + (put-text-property (match-beginning 0) (1- (match-end 0)) 'display " ") + (add-face-text-property (match-beginning 0) (match-end 0) 'whitespace-page-delimiter))))) + "Used to add page delimiters keywords to `whitespace-font-lock-keywords'.") + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; User commands - Local mode @@ -976,6 +1013,25 @@ whitespace-newline-mode ;; sync states (running a batch job) (setq whitespace-newline-mode whitespace-mode)) +;;;###autoload +(define-minor-mode whitespace-page-delimiters-mode + "Display page delimiters characters as horizontal lines." + :group 'whitespace + (cond + ((and whitespace-mode (not (memq 'page-delimiters whitespace-style))) + (setq-local whitespace-style + (cons 'page-delimiters whitespace-style)) + (whitespace-mode +1)) + (whitespace-page-delimiters-mode + (font-lock-add-keywords nil whitespace--page-delimiters-keyword) + (unless (memq 'display font-lock-extra-managed-props) + (setq-local font-lock-extra-managed-props + (cons 'display font-lock-extra-managed-props))) + (font-lock-flush)) + (t + (font-lock-remove-keywords nil whitespace--page-delimiters-keyword) + (font-lock-flush)))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; User commands - Global mode @@ -1044,6 +1100,7 @@ whitespace-style-value-list tabs spaces trailing + page-delimiters lines lines-tail lines-char @@ -1071,6 +1128,7 @@ whitespace-toggle-option-alist '((?f . face) (?t . tabs) (?s . spaces) + (?p . page-delimiters) (?r . trailing) (?l . lines) (?L . lines-tail) @@ -1156,6 +1214,7 @@ whitespace-toggle-options t toggle TAB visualization s toggle SPACE and HARD SPACE visualization r toggle trailing blanks visualization + p toggle page delimiters visualization l toggle \"long lines\" visualization L toggle \"long lines\" tail visualization n toggle NEWLINE visualization @@ -1186,6 +1245,7 @@ whitespace-toggle-options tabs toggle TAB visualization spaces toggle SPACE and HARD SPACE visualization trailing toggle trailing blanks visualization + page-delimiters toggle page delimiters visualization lines toggle \"long lines\" visualization lines-tail toggle \"long lines\" tail visualization newline toggle NEWLINE visualization @@ -1237,6 +1297,7 @@ global-whitespace-toggle-options t toggle TAB visualization s toggle SPACE and HARD SPACE visualization r toggle trailing blanks visualization + p toggle page delimiters visualization l toggle \"long lines\" visualization L toggle \"long lines\" tail visualization C-l toggle \"long lines\" one character visualization @@ -1268,6 +1329,7 @@ global-whitespace-toggle-options tabs toggle TAB visualization spaces toggle SPACE and HARD SPACE visualization trailing toggle trailing blanks visualization + page-delimiters toggle page delimiters visualization lines toggle \"long lines\" visualization lines-tail toggle \"long lines\" tail visualization lines-char toggle \"long lines\" one character visualization @@ -2035,6 +2097,7 @@ whitespace-style-face-p (memq 'lines-tail whitespace-active-style) (memq 'lines-char whitespace-active-style) (memq 'newline whitespace-active-style) + (memq 'page-delimiters whitespace-active-style) (memq 'empty whitespace-active-style) (memq 'indentation whitespace-active-style) (memq 'indentation::tab whitespace-active-style) @@ -2108,6 +2171,12 @@ whitespace-color-on ;; first overflowing character ((memq 'lines-char whitespace-active-style) 3)) whitespace-line prepend))) + ,@(when (memq 'page-delimiters whitespace-active-style) + (unless (memq 'display font-lock-extra-managed-props) + (setq-local font-lock-extra-managed-props + (cons 'display font-lock-extra-managed-props))) + ;; Show page delimiters characters + whitespace--page-delimiters-keyword) ,@(when (or (memq 'space-before-tab whitespace-active-style) (memq 'space-before-tab::tab whitespace-active-style) (memq 'space-before-tab::space whitespace-active-style)) -- 2.50.1 --=-=-= Content-Type: text/plain -- - E.G via Gnus and Org. --=-=-=-- From unknown Sun Aug 10 09:11:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77544: (WIP) [PATCH] Prettify page separators. Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Aug 2025 09:36:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Cc: gerd.moellmann@gmail.com, 77544@debbugs.gnu.org, visuweshm@gmail.com Received: via spool by 77544-submit@debbugs.gnu.org id=B77544.175473211521734 (code B ref 77544); Sat, 09 Aug 2025 09:36:02 +0000 Received: (at 77544) by debbugs.gnu.org; 9 Aug 2025 09:35:15 +0000 Received: from localhost ([127.0.0.1]:40219 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ukfyt-0005eT-BN for submit@debbugs.gnu.org; Sat, 09 Aug 2025 05:35:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49664) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ukfyp-0005ar-Sg for 77544@debbugs.gnu.org; Sat, 09 Aug 2025 05:35:13 -0400 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 1ukfyk-0004Lh-9H; Sat, 09 Aug 2025 05:35:06 -0400 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=JNbLZPG5hZqzFdSbzpxA594p2Oj+DEekeRr6EIUhfds=; b=DnG6RtdA1UTjCBxetiEN NFemWH+fwGl9KAu7qUsvNImBMj56R0YIrH8YYrQDhIXVJKTVvR/ozylaKqj5C5K5UE3+dmWk3dD9/ E8S3h6cooy7vz/qqMBiGJMU/by6FZm3UJGGfQIQR4WeuTzKFaklCyDEziArTzQlYQJ0E+oPwGt3VY rik4EARb8veCIRYam5Vb+7idyveY9l26KvBnVjK1hJ6yyg61o8dgq38mruJAymcT53zEtacFuL4l4 tmBhtP1l1itHwopXUc0LJw0bpegfgaSqpHNjmAMq3kj5uH8P4to+JMzqxrywtKnoObpIaWiuBOdgI od7Rt4dC5X0GFg==; Date: Sat, 09 Aug 2025 12:35:01 +0300 Message-Id: <86fre0n8hm.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87o6spf5e8.fsf@gmail.com> (message from Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= on Fri, 08 Aug 2025 23:09:03 -0600) References: <87bjtbyzg1.fsf@gmail.com> <86ldsfxdhy.fsf@gnu.org> <87zfgucwhp.fsf@gmail.com> <87h631pyjg.fsf@gmail.com> <867c3xvj9a.fsf@gnu.org> <87cydppodp.fsf@gmail.com> <8634elv9n9.fsf@gnu.org> <87o6spf5e8.fsf@gmail.com> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) 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: Elijah Gabe Prez > Cc: Visuwesh , gerd.moellmann@gmail.com, > 77544@debbugs.gnu.org > Date: Fri, 08 Aug 2025 23:09:03 -0600 > > Sorry for the delay, i tried to make the strike-through face property > support the same line styles as the underline, but i couldn't figure out > how, as it seems that strike-through is designed to support only 1 > style. > > My solution was to make a kind of hack to display the underline as > strike-through, and it worked. Why is it a problem to show a normal underline? > Optionally, I've added a new minor mode to enable this outside > whitespace-mode (an example of use in this would be in the NEWS file or > in *Compile-Log* buffers). I'm not sure it is justified to have a separate mode for this. > +--- > +*** 'whitespace-mode' now can prettify page delimiters characters (^L). > +If 'page-delimiters' is set in 'whitespace-style', or the new minor mode > +'whitespace-page-delimiters-mode' is on, the page delimiters characters ^^^^^^^^^^ "delimiter", singular. > +(^L) are displayed as a pretty horizontal line that spans the entire > +width of the window. The new 'whitespace-page-delimiter' face, can be ^ That comma should be deleted. > +used for customize the appearence ^^^^^^^^^^^^^ Either "to customize" or "for customizing". I think we should also mention that font-lock must be ON for this to work. E.g., does it work in Fundamental mode? > +;;;###autoload > +(define-minor-mode whitespace-page-delimiters-mode > + "Display page delimiters characters as horizontal lines." > + :group 'whitespace > + (cond > + ((and whitespace-mode (not (memq 'page-delimiters whitespace-style))) > + (setq-local whitespace-style > + (cons 'page-delimiters whitespace-style)) > + (whitespace-mode +1)) > + (whitespace-page-delimiters-mode > + (font-lock-add-keywords nil whitespace--page-delimiters-keyword) > + (unless (memq 'display font-lock-extra-managed-props) > + (setq-local font-lock-extra-managed-props > + (cons 'display font-lock-extra-managed-props))) > + (font-lock-flush)) > + (t > + (font-lock-remove-keywords nil whitespace--page-delimiters-keyword) > + (font-lock-flush)))) Is it wise to support this minor mode outside of whitespace-mode? Why shouldn't this work only if whitespace-mode is ON? It complicates the implementation, and adds 'display' properties to font-lock-keywords, but I don't quite see the justification. From unknown Sun Aug 10 09:11:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77544: (WIP) [PATCH] Prettify page separators. Resent-From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 10 Aug 2025 00:26:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: gerd.moellmann@gmail.com, 77544@debbugs.gnu.org, visuweshm@gmail.com Received: via spool by 77544-submit@debbugs.gnu.org id=B77544.175478555111190 (code B ref 77544); Sun, 10 Aug 2025 00:26:02 +0000 Received: (at 77544) by debbugs.gnu.org; 10 Aug 2025 00:25:51 +0000 Received: from localhost ([127.0.0.1]:43358 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uktsk-0002uP-F3 for submit@debbugs.gnu.org; Sat, 09 Aug 2025 20:25:51 -0400 Received: from mail-ot1-x343.google.com ([2607:f8b0:4864:20::343]:43479) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uktsg-0002u7-DM for 77544@debbugs.gnu.org; Sat, 09 Aug 2025 20:25:48 -0400 Received: by mail-ot1-x343.google.com with SMTP id 46e09a7af769-741a254d4a0so4306992a34.1 for <77544@debbugs.gnu.org>; Sat, 09 Aug 2025 17:25:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754785540; x=1755390340; darn=debbugs.gnu.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=GhCMJA7iCiLQVbbCN+CxOe6JU6f/lyQ9Li11+Bi8P3o=; b=SQkMW8dsnVr4TT81++HizkObxV7F4rt4fzqNHWEx6kUOe+n3TNHS6/3Dh4NhFfp2gp z3JevnaiqWCg0aFyx7A0tk37EuX0WMbRcXK6ggP1up6beqzAQBrLRJzWS7WVIlJp8OFK ppWD6L6HjvxaL+YKRvKDvg/vg5qdtcuKh2NZtJUniEcOdCsExfGke2CMNP/xaOk61+jK eNYrcG63U6L0oKuEY5/DoM6QiOfXkbYDmFMDE7CinpH1tLRqZ7mCEp27MMce7CTdsq7n M/r539/d+GZrkj6L6ca9GV2AEwh+zvirEcueM/GsPs/i6YFk26blED85LaPkW0ayTumb lNcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754785540; x=1755390340; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=GhCMJA7iCiLQVbbCN+CxOe6JU6f/lyQ9Li11+Bi8P3o=; b=Fw16lCkb+agfHKyWiwKMUCyzoneKn44AG1wj8K1SKhw5qlAqXODNXPKIIRnHP0qxhw 57nv6dr6bPAklovDYRnGc2cDezW24s2h/elPdXvvtxy1hunzXb0bBIjzbPgln0lWhCg6 CE7LTUDHDdKYWkEw6Wj2NUUr6x9OJ2yMApNbWlVE9eIYRvjF43LOXc1XtCMUZ3Ekg6EJ 7tG/Lw3tQ9DoWkFzGFHn09FA6HEpM/H79nS2FVl2xy4SyqpzGNKkHx5P1nNX7Oud10JW aTXy/fFNY/u7TFo36AHOX/PTueYd1oqtARWw9L0FwXRUbcWsm8LgmIm09lffWBeFMpPX 5gxw== X-Forwarded-Encrypted: i=1; AJvYcCWHDV6aQS+jUathofKdCJp5Q4soDkZW0XZ+LbLE4OpAk2oYv3MJ7K8zl/shHinWWH2spnndAg==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yz7ql/+oUU4Ra2JXI8RQ+vqAFqxNIOvge9jcee19XTyPbKEt2JS NR07OEMdCbZBLb7voUh+zvGxhhax5lOnCLFQqm1jm+5M1xJnTP0iCJjp X-Gm-Gg: ASbGncuKQpZf869xmHL29v6m2jtK/9HisMWb6De0Ut/x0Tq4SiYFdhy6EqrQjceV8LP ot07v6uu34dbN3MA/k51sui1o+nxsqG21CpFbY0wJ/bWJqLWCaY1+ExPkseWspqV9Te8DHxMNLE WNas9yqrps5O5VtkGoNQl+7r3FDQBa+45VwN4QhDxePjESgHaeb2hrr8/Zd6ORVf78oyochDlXt 2TatBIcZFhhcVjOThR1U/fm8e02rt4bEs2YihtzwJfdbMMOT0tIVMtnQfO/6rC3j7ntl03rmOxU 7dErH2JlYwFi5vtP9rDU4oKbmFq+2cCQgyKGJQxpGIPJFaKMh8+taZX15DnlUT0KDvMHEUY9qZJ 9hZyAYSOnqf5fH5KwZF5kup+wCQ== X-Google-Smtp-Source: AGHT+IE2TxycjKxvk9MnFLP9miCXQjwBbOIAk+t3fT1IwLtk162+dOs0yPihJ8DgtZux6NXyJ+W+eg== X-Received: by 2002:a05:6808:d4f:b0:435:8506:9652 with SMTP id 5614622812f47-43599837051mr4717620b6e.4.1754785539751; Sat, 09 Aug 2025 17:25:39 -0700 (PDT) Received: from fedora ([189.215.161.127]) by smtp.gmail.com with ESMTPSA id 5614622812f47-434e9a77e2dsm2669044b6e.24.2025.08.09.17.25.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 09 Aug 2025 17:25:38 -0700 (PDT) From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= In-Reply-To: <86fre0n8hm.fsf@gnu.org> References: <87bjtbyzg1.fsf@gmail.com> <86ldsfxdhy.fsf@gnu.org> <87zfgucwhp.fsf@gmail.com> <87h631pyjg.fsf@gmail.com> <867c3xvj9a.fsf@gnu.org> <87cydppodp.fsf@gmail.com> <8634elv9n9.fsf@gnu.org> <87o6spf5e8.fsf@gmail.com> <86fre0n8hm.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 Date: Sat, 09 Aug 2025 18:25:36 -0600 Message-ID: <87jz3cuinz.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 1.3 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Eli Zaretskii writes: >> From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= >> Cc: Visuwesh , gerd.moellmann@gmail.com, >> 77544@debbugs.gnu.org >> Date: Fri, 08 Aug 2025 23:09:03 -0600 >> >> Sorry for the delay, i tried to make the strike-throu [...] Content analysis details: (1.3 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (eg642616[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit (eg642616[at]gmail.com) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.0 FREEMAIL_REPLY From and body contain different freemails 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.7 (/) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Eli Zaretskii writes: >> From: Elijah Gabe P=C3=A9rez >> Cc: Visuwesh , gerd.moellmann@gmail.com, >> 77544@debbugs.gnu.org >> Date: Fri, 08 Aug 2025 23:09:03 -0600 >>=20 >> Sorry for the delay, i tried to make the strike-through face property >> support the same line styles as the underline, but i couldn't figure out >> how, as it seems that strike-through is designed to support only 1 >> style. >>=20 >> My solution was to make a kind of hack to display the underline as >> strike-through, and it worked. > > Why is it a problem to show a normal underline? Actually it is more for stylistic reasons than anything else, many third party packages that implement this functionality always use the strike-through property, never underline (mainly to show it as a horizontal rule), to mention a few: form-feed, form-feed-st, page-break-lines, and org-modern. Some users or themes may prefer to use the same styles that underline now provides (for this horizontal rule), which however are not available in strike-through, to maintain this consistency, if the face has the underline property, it will be displayed as if it were a strike-through, otherwise it will be displayed normally. >> Optionally, I've added a new minor mode to enable this outside >> whitespace-mode (an example of use in this would be in the NEWS file or >> in *Compile-Log* buffers). > > I'm not sure it is justified to have a separate mode for this. I don't see why not, whitespace.el have 'whitespace-newline-mode', which is only used for toggle the newline visualization. This avoids having to enable whitespace-mode (which can include spaces and tabs marks in the buffer) to enable just this cosmetic. >> +;;;###autoload >> +(define-minor-mode whitespace-page-delimiters-mode >> + "Display page delimiters characters as horizontal lines." >> + :group 'whitespace >> + (cond >> + ((and whitespace-mode (not (memq 'page-delimiters whitespace-style))) >> + (setq-local whitespace-style >> + (cons 'page-delimiters whitespace-style)) >> + (whitespace-mode +1)) >> + (whitespace-page-delimiters-mode >> + (font-lock-add-keywords nil whitespace--page-delimiters-keyword) >> + (unless (memq 'display font-lock-extra-managed-props) >> + (setq-local font-lock-extra-managed-props >> + (cons 'display font-lock-extra-managed-props))) >> + (font-lock-flush)) >> + (t >> + (font-lock-remove-keywords nil whitespace--page-delimiters-keyword) >> + (font-lock-flush)))) > > Is it wise to support this minor mode outside of whitespace-mode? Why > shouldn't this work only if whitespace-mode is ON? It complicates the > implementation, and adds 'display' properties to font-lock-keywords, > but I don't quite see the justification. A better alternative is to make this minor mode act as 'whitespace-newline-mode', to toggle the visibility of page delimiters if whitespace-mode is activated, otherwise, activate whitespace-mode to only display them. I've updated the patch, so the minor should work in fundamental-mode and toggle the page-delimiter visualization. --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-whitespace-mode-Prettify-page-delimiters-characters..patch >From 2347cd9555947d4cf407f9daec119c127b34c9bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?El=C3=ADas=20Gabriel=20P=C3=A9rez?= Date: Fri, 4 Apr 2025 22:17:23 -0600 Subject: [PATCH] whitespace-mode: Prettify page delimiters characters. (bug#77544) This makes whitespace-mode display the page delimiter character "^L" as a pretty horizontal line. This also add a new minor mode to toggle these visualisations. * lisp/whitespace.el (whitespace-style): Add page-delimiters option. (whitespace-page-delimiter): New face. (whitespace--page-delimiters-keyword): New variable. (whitespace-page-delimiters-mode): New minor mode. (whitespace-style-face-p, whitespace-color-on): Rework for display the page-delimiters. --- etc/NEWS | 8 ++++++ lisp/whitespace.el | 63 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index e12a9dcb127..b9d224be14a 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1112,6 +1112,14 @@ slot. Symbol macros are created for the accessor functions using If 'whitespace-style' includes 'missing-newline-at-eof' (which is the default), the 'whitespace-cleanup' function will now add the newline. +--- +*** 'whitespace-mode' now can prettify page delimiter characters (^L). +If 'page-delimiters' is set in 'whitespace-style', or the new minor mode +'whitespace-page-delimiters-mode' is on, the page delimiter characters +(^L) are displayed as a pretty horizontal line that spans the entire +width of the window. The new 'whitespace-page-delimiter' face can be +used to customize the appearence. + ** Bookmark --- diff --git a/lisp/whitespace.el b/lisp/whitespace.el index 58ba0db8c90..dbcc0081685 100644 --- a/lisp/whitespace.el +++ b/lisp/whitespace.el @@ -326,6 +326,11 @@ whitespace-style This has effect only if `face' (see above) is present in `whitespace-style'. + page-delimiters visualize page delimiters characters (^L) + as horizontal lines. + This has effect only if `face' (see above) + is present in `whitespace-style'. + empty visualize empty lines at beginning and/or end of buffer via faces. This has effect only if `face' (see above) @@ -440,6 +445,7 @@ whitespace-style (const :tag "(Face) NEWLINEs" newline) (const :tag "(Face) Missing newlines at EOB" missing-newline-at-eof) + (const :tag "(Face) Page delimiters" page-delimiters) (const :tag "(Face) Empty Lines At BOB And/Or EOB" empty) (const :tag "(Face) Indentation SPACEs" indentation::tab) (const :tag "(Face) Indentation TABs" @@ -622,6 +628,14 @@ whitespace-space-after-tab See `whitespace-space-after-tab-regexp'.") +(defface whitespace-page-delimiter + '((((supports :underline (:color foreground-color :style double-line))) + :underline (:color foreground-color :style double-line) + :extend t :inherit shadow) + (((supports :strike-through t)) + :strike-through t :extend t :inherit shadow) + (t :extend t :inherit shadow :inverse-video t)) + "Face used to visualize page delimiter characters.") (defcustom whitespace-hspace-regexp "\\(\u00A0+\\)" @@ -934,6 +948,29 @@ whitespace-action (const :tag "Abort On Bogus" abort-on-bogus) (const :tag "Warn If Read-Only" warn-if-read-only))))) +(defvar whitespace--page-delimiters-keyword + `((,(concat page-delimiter "\n") 0 + (prog1 nil + ;; HACK: Due :strike-through, doesn't support the same line + ;; styles as in :underline, for GUI frames raise the invisible ^L + ;; character to give the illusion of a centered line (unless + ;; whitespace-page-delimiter doesn't have the :underline attribute). + ;; In TUI, this is only displayed as an normal underline. + ;; FIXME: Rewrite this when there is an easy way to implement this. + (if (not (eq (internal-get-lisp-face-attribute + 'whitespace-page-delimiter :underline) + 'unspecified)) + (progn + ;; underline + (put-text-property (match-beginning 0) (1- (match-end 0)) + 'display (propertize " " 'display '(raise 0.5))) + (put-text-property (1- (match-end 0)) (match-end 0) 'display '(raise 0.5)) + (add-face-text-property (match-beginning 0) (match-end 0) '(:inherit whitespace-page-delimiter :height 0.5))) + ;; not underline + (put-text-property (match-beginning 0) (1- (match-end 0)) 'display " ") + (add-face-text-property (match-beginning 0) (match-end 0) 'whitespace-page-delimiter))))) + "Used to add page delimiters keywords to `whitespace-font-lock-keywords'.") + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; User commands - Local mode @@ -976,6 +1013,19 @@ whitespace-newline-mode ;; sync states (running a batch job) (setq whitespace-newline-mode whitespace-mode)) +;;;###autoload +(define-minor-mode whitespace-page-delimiters-mode + "Display page delimiters characters as horizontal lines. + +Use `whitespace-page-delimiters-mode' only for PAGE DELIMITER +character visualization exclusively. For other visualizations, +including PAGE DELIMITER visualization together with (HARD) +SPACEs and/or TABs, please, use `whitespace-mode'." + :group 'whitespace + (let ((whitespace-style '(face page-delimiters))) + (whitespace-mode (if whitespace-page-delimiters-mode + 1 -1)))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; User commands - Global mode @@ -1044,6 +1094,7 @@ whitespace-style-value-list tabs spaces trailing + page-delimiters lines lines-tail lines-char @@ -1071,6 +1122,7 @@ whitespace-toggle-option-alist '((?f . face) (?t . tabs) (?s . spaces) + (?p . page-delimiters) (?r . trailing) (?l . lines) (?L . lines-tail) @@ -1156,6 +1208,7 @@ whitespace-toggle-options t toggle TAB visualization s toggle SPACE and HARD SPACE visualization r toggle trailing blanks visualization + p toggle page delimiters visualization l toggle \"long lines\" visualization L toggle \"long lines\" tail visualization n toggle NEWLINE visualization @@ -1186,6 +1239,7 @@ whitespace-toggle-options tabs toggle TAB visualization spaces toggle SPACE and HARD SPACE visualization trailing toggle trailing blanks visualization + page-delimiters toggle page delimiters visualization lines toggle \"long lines\" visualization lines-tail toggle \"long lines\" tail visualization newline toggle NEWLINE visualization @@ -1237,6 +1291,7 @@ global-whitespace-toggle-options t toggle TAB visualization s toggle SPACE and HARD SPACE visualization r toggle trailing blanks visualization + p toggle page delimiters visualization l toggle \"long lines\" visualization L toggle \"long lines\" tail visualization C-l toggle \"long lines\" one character visualization @@ -1268,6 +1323,7 @@ global-whitespace-toggle-options tabs toggle TAB visualization spaces toggle SPACE and HARD SPACE visualization trailing toggle trailing blanks visualization + page-delimiters toggle page delimiters visualization lines toggle \"long lines\" visualization lines-tail toggle \"long lines\" tail visualization lines-char toggle \"long lines\" one character visualization @@ -2035,6 +2091,7 @@ whitespace-style-face-p (memq 'lines-tail whitespace-active-style) (memq 'lines-char whitespace-active-style) (memq 'newline whitespace-active-style) + (memq 'page-delimiters whitespace-active-style) (memq 'empty whitespace-active-style) (memq 'indentation whitespace-active-style) (memq 'indentation::tab whitespace-active-style) @@ -2108,6 +2165,12 @@ whitespace-color-on ;; first overflowing character ((memq 'lines-char whitespace-active-style) 3)) whitespace-line prepend))) + ,@(when (memq 'page-delimiters whitespace-active-style) + (unless (memq 'display font-lock-extra-managed-props) + (setq-local font-lock-extra-managed-props + (cons 'display font-lock-extra-managed-props))) + ;; Show page delimiters characters + whitespace--page-delimiters-keyword) ,@(when (or (memq 'space-before-tab whitespace-active-style) (memq 'space-before-tab::tab whitespace-active-style) (memq 'space-before-tab::space whitespace-active-style)) -- 2.50.1 --=-=-= Content-Type: text/plain -- - E.G via Gnus and Org. --=-=-=-- From unknown Sun Aug 10 09:11:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77544: (WIP) [PATCH] Prettify page separators. Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 10 Aug 2025 05:24:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77544 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Cc: gerd.moellmann@gmail.com, 77544@debbugs.gnu.org, visuweshm@gmail.com Received: via spool by 77544-submit@debbugs.gnu.org id=B77544.175480342620614 (code B ref 77544); Sun, 10 Aug 2025 05:24:02 +0000 Received: (at 77544) by debbugs.gnu.org; 10 Aug 2025 05:23:46 +0000 Received: from localhost ([127.0.0.1]:43658 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ukyX4-0005MN-2r for submit@debbugs.gnu.org; Sun, 10 Aug 2025 01:23:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57990) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ukyX2-0005M1-5R for 77544@debbugs.gnu.org; Sun, 10 Aug 2025 01:23:44 -0400 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 1ukyWw-0000vC-D8; Sun, 10 Aug 2025 01:23:38 -0400 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=8ADOT4iocbMTraimrgrQ8H84fGDVLVdIWq87LUE76l0=; b=iMS88bOrvhSkHfIinYPA hAuRiKSS6+mBsGpE5Ywf9ToArffcyjGzTOpUladsjZfGQDk3/Ro+n1dWd8kXXKVy4gAEJcXeSgfy9 aY9HSIkiKm8fzY0GPQndWagOiub94KI2UnaV4xRXnP45YXHvjY3vvXjSrOXXCkMMWqX97lieQO6mH PCm9jx0DPtKB2lid/mC7YMlEUyJyie1mcCQUh8WX1Dd3v6d9jdbBTgvBv+nnS6792PnOkaYqynhVt LvxHppE9IOE+LWhP8zcVC+LAPNHISoevg/2QWIYhrk7o2iqX1Fpsnb9zQHcqh7NjtdZyjWQevW6kr r/hx7OexA/H2lQ==; Date: Sun, 10 Aug 2025 08:23:35 +0300 Message-Id: <86zfc7kaw8.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87jz3cuinz.fsf@gmail.com> (message from Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= on Sat, 09 Aug 2025 18:25:36 -0600) References: <87bjtbyzg1.fsf@gmail.com> <86ldsfxdhy.fsf@gnu.org> <87zfgucwhp.fsf@gmail.com> <87h631pyjg.fsf@gmail.com> <867c3xvj9a.fsf@gnu.org> <87cydppodp.fsf@gmail.com> <8634elv9n9.fsf@gnu.org> <87o6spf5e8.fsf@gmail.com> <86fre0n8hm.fsf@gnu.org> <87jz3cuinz.fsf@gmail.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) 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: Elijah Gabe Pérez > Cc: gerd.moellmann@gmail.com, 77544@debbugs.gnu.org, visuweshm@gmail.com > Date: Sat, 09 Aug 2025 18:25:36 -0600 > > >> My solution was to make a kind of hack to display the underline as > >> strike-through, and it worked. > > > > Why is it a problem to show a normal underline? > > Actually it is more for stylistic reasons than anything else, many third > party packages that implement this functionality always use the > strike-through property, never underline (mainly to show it as a > horizontal rule), to mention a few: form-feed, form-feed-st, > page-break-lines, and org-modern. > > Some users or themes may prefer to use the same styles that underline > now provides (for this horizontal rule), which however are not available > in strike-through, to maintain this consistency, if the face has the > underline property, it will be displayed as if it were a strike-through, > otherwise it will be displayed normally. I still ask why not show a normal underline? why do we need to install kludges just because other packages do something? (And this is even before we test the kludge on all supported terminal types and see what it yields.) Emacs code should provide clean implementations, with as few kludges as possible and only where nothing else will solve the problem. This is not that case, is it? Did you try to use the same trick as we do in the definition of the log-edit-headers-separator face? It is known to work on all GUI terminals, and looks quite pretty. > >> Optionally, I've added a new minor mode to enable this outside > >> whitespace-mode (an example of use in this would be in the NEWS file or > >> in *Compile-Log* buffers). > > > > I'm not sure it is justified to have a separate mode for this. > > I don't see why not, whitespace.el have 'whitespace-newline-mode', which > is only used for toggle the newline visualization. But whitespace-newline-mode can only be activated if whitespace-mode is active, right? > > Is it wise to support this minor mode outside of whitespace-mode? Why > > shouldn't this work only if whitespace-mode is ON? It complicates the > > implementation, and adds 'display' properties to font-lock-keywords, > > but I don't quite see the justification. > > A better alternative is to make this minor mode act as > 'whitespace-newline-mode', to toggle the visibility of page delimiters > if whitespace-mode is activated, otherwise, activate whitespace-mode to > only display them. Yes.