GNU bug report logs - #74536
30.0.50; undocumented box behaviour in faces

Previous Next

Package: emacs;

Reported by: Al Haji-Ali <abdo.haji.ali <at> gmail.com>

Date: Mon, 25 Nov 2024 19:35:02 UTC

Severity: normal

Tags: notabug

Found in version 30.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 74536 in the body.
You can then email your comments to 74536 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#74536; Package emacs. (Mon, 25 Nov 2024 19:35:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Al Haji-Ali <abdo.haji.ali <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 25 Nov 2024 19:35:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Al Haji-Ali <abdo.haji.ali <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.0.50; undocumented box behaviour in faces
Date: Mon, 25 Nov 2024 19:34:41 +0000
The output of the following code is

--8<---------------cut here---------------start------------->8---
(progn
  (fundamental-mode)
  (insert (concat "\n"
                  (propertize "hello" 'face '(:box (:line-width (3 . 0) :color "red")))
                  (propertize " again" 'face '(:box (:line-width (3 . 0) :color "yellow")))
                  (propertize " other" 'face '(:box (:line-width (3 . 0) :color "green"))))
          "\n"))
--8<---------------cut here---------------end--------------->8---


|hello again other|

where the left border is red and the right one is green and the yellow border is completely hidden. Having negative line-width produces the same output.

It seems that one cannot have multiple adjacent borders unless one has some text in between without a border, like this
--8<---------------cut here---------------start------------->8---
(progn
  (fundamental-mode)
  (insert (concat "\n"
                  (propertize "hello" 'face '(:box (:line-width (3 . 0) :color "red")))
                  " "
                  (propertize " again" 'face '(:box (:line-width (3 . 0) :color "yellow")))
                  (propertize " othe " 'face '(:box (:line-width (3 . 0) :color "green"))))
          "\n"))
--8<---------------cut here---------------end--------------->8---

produces

|hello| | again other|

with (red, red, yellow, green) borders.

I find this behaviour, if intended, sometimes helpful as it allows one to have a one-sided border. Though it would be helpful if the exact mechanism is documented.

In any case, I was also originally expecting, and wanting, an output like this
|hello| again | other|

with `(red, yellow, green, green)` and no text in between, but it seems there is no way to achieve such output? Is that correct?

-- Al




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74536; Package emacs. (Mon, 25 Nov 2024 19:46:02 GMT) Full text and rfc822 format available.

Message #8 received at 74536 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Al Haji-Ali <abdo.haji.ali <at> gmail.com>
Cc: 74536 <at> debbugs.gnu.org
Subject: Re: bug#74536: 30.0.50; undocumented box behaviour in faces
Date: Mon, 25 Nov 2024 21:44:51 +0200
tags 74536 notabug
thanks

> From: Al Haji-Ali <abdo.haji.ali <at> gmail.com>
> Date: Mon, 25 Nov 2024 19:34:41 +0000
> 
> 
> The output of the following code is
> 
> --8<---------------cut here---------------start------------->8---
> (progn
>   (fundamental-mode)
>   (insert (concat "\n"
>                   (propertize "hello" 'face '(:box (:line-width (3 . 0) :color "red")))
>                   (propertize " again" 'face '(:box (:line-width (3 . 0) :color "yellow")))
>                   (propertize " other" 'face '(:box (:line-width (3 . 0) :color "green"))))
>           "\n"))
> --8<---------------cut here---------------end--------------->8---
> 
> 
> |hello again other|
> 
> where the left border is red and the right one is green and the yellow border is completely hidden. Having negative line-width produces the same output.

As expected.

> It seems that one cannot have multiple adjacent borders unless one has some text in between without a border, like this
> --8<---------------cut here---------------start------------->8---
> (progn
>   (fundamental-mode)
>   (insert (concat "\n"
>                   (propertize "hello" 'face '(:box (:line-width (3 . 0) :color "red")))
>                   " "
>                   (propertize " again" 'face '(:box (:line-width (3 . 0) :color "yellow")))
>                   (propertize " othe " 'face '(:box (:line-width (3 . 0) :color "green"))))
>           "\n"))
> --8<---------------cut here---------------end--------------->8---
> 
> produces
> 
> |hello| | again other|
> 
> with (red, red, yellow, green) borders.

Yes.  Basically, Emacs doesn't examine box face changes unless it
changes from box to no-box or vice versa.

> I find this behaviour, if intended, sometimes helpful as it allows one to have a one-sided border. Though it would be helpful if the exact mechanism is documented.

What mechanism would you like to be documented?

> In any case, I was also originally expecting, and wanting, an output like this
> |hello| again | other|
> 
> with `(red, yellow, green, green)` and no text in between, but it seems there is no way to achieve such output? Is that correct?

Yes.




Added tag(s) notabug. Request was from Eli Zaretskii <eliz <at> gnu.org> to control <at> debbugs.gnu.org. (Mon, 25 Nov 2024 19:46:03 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74536; Package emacs. (Mon, 25 Nov 2024 21:19:01 GMT) Full text and rfc822 format available.

Message #13 received at 74536 <at> debbugs.gnu.org (full text, mbox):

From: Al Haji-Ali <abdo.haji.ali <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 74536 <at> debbugs.gnu.org
Subject: Re: bug#74536: 30.0.50; undocumented box behaviour in faces
Date: Mon, 25 Nov 2024 21:08:48 +0000
Thanks for the response.

On 25/11/2024, Eli Zaretskii wrote:
>> I find this behaviour, if intended, sometimes helpful as it allows one to have a one-sided border. Though it would be helpful if the exact mechanism is documented.
>
> What mechanism would you like to be documented?
>

Exactly what you explained:

> Yes.  Basically, Emacs doesn't examine box face changes unless it
> changes from box to no-box or vice versa.


-- Al




Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Sat, 30 Nov 2024 10:46:01 GMT) Full text and rfc822 format available.

Notification sent to Al Haji-Ali <abdo.haji.ali <at> gmail.com>:
bug acknowledged by developer. (Sat, 30 Nov 2024 10:46:02 GMT) Full text and rfc822 format available.

Message #18 received at 74536-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Al Haji-Ali <abdo.haji.ali <at> gmail.com>
Cc: 74536-done <at> debbugs.gnu.org
Subject: Re: bug#74536: 30.0.50; undocumented box behaviour in faces
Date: Sat, 30 Nov 2024 12:44:56 +0200
> From: Al Haji-Ali <abdo.haji.ali <at> gmail.com>
> Cc: 74536 <at> debbugs.gnu.org
> Date: Mon, 25 Nov 2024 21:08:48 +0000
> 
> 
> Thanks for the response.
> 
> On 25/11/2024, Eli Zaretskii wrote:
> >> I find this behaviour, if intended, sometimes helpful as it allows one to have a one-sided border. Though it would be helpful if the exact mechanism is documented.
> >
> > What mechanism would you like to be documented?
> >
> 
> Exactly what you explained:

Done.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 28 Dec 2024 12:24:09 GMT) Full text and rfc822 format available.

This bug report was last modified 171 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.