]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix validation of :box face attribute
authorEli Zaretskii <eliz@gnu.org>
Thu, 30 Nov 2023 15:17:02 +0000 (17:17 +0200)
committerEli Zaretskii <eliz@gnu.org>
Thu, 30 Nov 2023 15:17:02 +0000 (17:17 +0200)
* src/xfaces.c (Finternal_set_lisp_face_attribute): Fix the logic
of validating the :box attribute.  The previous code would always
allow invalid attributes of :box as long as the invalid attribute
was the last in the list.  (Bug#67404)

src/xfaces.c

index 96382e783973708596e2da3df1f3bff23452d7e4..a23f4c302eda3e4bc1a58e7fbfddd5817a8320b3 100644 (file)
@@ -3371,12 +3371,13 @@ FRAME 0 means change the face on all frames, and change the default
              if (!CONSP (tem))
                break;
              v = XCAR (tem);
-             tem = XCDR (tem);
 
              if (EQ (k, QCline_width))
                {
-                 if ((!CONSP(v) || !FIXNUMP (XCAR (v)) || XFIXNUM (XCAR (v)) == 0
-                                || !FIXNUMP (XCDR (v)) || XFIXNUM (XCDR (v)) == 0)
+                 if ((!CONSP(v)
+                      || !FIXNUMP (XCAR (v))
+                      || XFIXNUM (XCAR (v)) == 0
+                      || !FIXNUMP (XCDR (v)) || XFIXNUM (XCDR (v)) == 0)
                      && (!FIXNUMP (v) || XFIXNUM (v) == 0))
                    break;
                }
@@ -3393,6 +3394,8 @@ FRAME 0 means change the face on all frames, and change the default
                }
              else
                break;
+
+             tem = XCDR (tem);
            }
 
          valid_p = NILP (tem);