GNU bug report logs -
#67404
30.0.50; Issue with :box face attribute
Previous Next
Reported by: David Ponce <da_vid <at> orange.fr>
Date: Thu, 23 Nov 2023 15:24:02 UTC
Severity: normal
Found in version 30.0.50
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Thu, 30 Nov 2023 19:53:40 +0200
with message-id <83msuvb00r.fsf <at> gnu.org>
and subject line Re: bug#67404: 30.0.50; Issue with :box face attribute
has caused the debbugs.gnu.org bug report #67404,
regarding 30.0.50; Issue with :box face attribute
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
67404: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67404
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Hello,
The below face with specified :box attribute can be defined and further
used without problem:
(defface test-face
'((t
(:box (:style released-button :line-width (3 . 0)))
))
"Test face.")
(insert (propertize "XXXXX" 'face 'test-face))
However, it is not possible to apply any change to this face with
`customize-face', for example to change :line-width (3 . 0) to
:line-width (2 . 0), or to add a :foreground color, etc. This fails
with the message "set-face-attribute: Invalid face box: :line-width,
<value>, :style, <value>", and the :box attribute is discarded.
AFAICS, :box attribute with any zero :line-width value works as
expected: the box line with zero width is not displayed. But zero is
not considered as a valid value by `set-face-attribute' (in fact, the
internal function `internal-set-lisp-face-attribute').
For consistency, a zero :line-width value either should be accepted by
`internal-set-lisp-face-attribute', or never accepted at all.
Thanks
In GNU Emacs 30.0.50 (build 3, x86_64-pc-linux-gnu, GTK+ Version
3.24.38, cairo version 1.18.0) of 2023-11-21
Repository revision: 3328c327254b5846782990f6171175bea216eba9
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12014000
System Description: Fedora Linux 39 (KDE Plasma)
Configured using:
'configure --with-x-toolkit=gtk3 --with-cairo-xcb
--with-native-compilation=no
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig'
Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB
Important settings:
value of $LC_TIME: fr_FR.utf8
value of $LANG: fr_FR.UTF-8
locale-coding-system: utf-8-unix
[Message part 3 (message/rfc822, inline)]
> Date: Thu, 30 Nov 2023 17:20:44 +0100
> Cc: 67404 <at> debbugs.gnu.org
> From: David Ponce <da_vid <at> orange.fr>
>
> I confirm that with your fix on master branch, the behavior is now
> consistent between defface and customize-face: both signal an error
> on value zero for line-width :-)
Thanks for testing, I'm therefore closing this bug.
> However, please note that it remains possible to use a value zero for
> line-width on an anonymous face. For example, in the *scratch* buffer
> you still can eval the below expression without error:
>
> (insert
> (propertize "xxxx" 'font-lock-face
> '(:box (:style released-button :line-width (3 . 0)))))
This seems to be a general issue with anonymous faces: their
attributes are validated much more leniently than those of defface.
For example, try:
(insert
(propertize "xxxx" 'font-lock-face
'(:box (:style foobar :line-width 'bogus))))
or
(insert
(propertize "xxxx" 'font-lock-face
'(:underline (foo bar :style bogus :position))))
You get a face that effectively ignores the invalid attributes. I'm
not sure we need to change that.
This bug report was last modified 1 year and 227 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.