emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#67404: closed (30.0.50; Issue with :box face attribute)


From: GNU bug Tracking System
Subject: bug#67404: closed (30.0.50; Issue with :box face attribute)
Date: Thu, 30 Nov 2023 17:55:02 +0000

Your message dated Thu, 30 Nov 2023 19:53:40 +0200
with message-id <83msuvb00r.fsf@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@gnu.org.)


-- 
67404: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67404
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: 30.0.50; Issue with :box face attribute Date: Thu, 23 Nov 2023 16:23:15 +0100 User-agent: Mozilla Thunderbird
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



--- End Message ---
--- Begin Message --- Subject: Re: bug#67404: 30.0.50; Issue with :box face attribute Date: Thu, 30 Nov 2023 19:53:40 +0200
> Date: Thu, 30 Nov 2023 17:20:44 +0100
> Cc: 67404@debbugs.gnu.org
> From: David Ponce <da_vid@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.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]