]> git.eshelyaron.com Git - emacs.git/commitdiff
Merge remote-tracking branch 'origin/master' into scratch/pkg
authorGerd Möllmann <gerd@gnu.org>
Mon, 17 Jul 2023 06:40:02 +0000 (08:40 +0200)
committerGerd Möllmann <gerd@gnu.org>
Mon, 17 Jul 2023 06:40:02 +0000 (08:40 +0200)
38 files changed:
1  2 
etc/emacs_lldb.py
lisp/emacs-lisp/bytecomp.el
lisp/emacs-lisp/macroexp.el
lisp/loadup.el
lisp/minibuffer.el
lisp/obarray.el
src/.lldbinit
src/Makefile.in
src/alloc.c
src/callint.c
src/coding.c
src/data.c
src/doc.c
src/editfns.c
src/emacs.c
src/eval.c
src/fns.c
src/font.c
src/frame.c
src/image.c
src/json.c
src/keyboard.c
src/keymap.c
src/lisp.h
src/lread.c
src/minibuf.c
src/pdumper.c
src/print.c
src/process.c
src/term.c
src/treesit.c
src/xdisp.c
src/xfaces.c
test/lisp/emacs-lisp/gv-tests.el
test/lisp/progmodes/elisp-mode-tests.el
test/src/editfns-tests.el
test/src/emacs-module-tests.el
test/src/fns-tests.el

Simple merge
Simple merge
Simple merge
diff --cc lisp/loadup.el
Simple merge
Simple merge
diff --cc lisp/obarray.el
Simple merge
diff --cc src/.lldbinit
Simple merge
diff --cc src/Makefile.in
Simple merge
diff --cc src/alloc.c
Simple merge
diff --cc src/callint.c
Simple merge
diff --cc src/coding.c
Simple merge
diff --cc src/data.c
Simple merge
diff --cc src/doc.c
Simple merge
diff --cc src/editfns.c
Simple merge
diff --cc src/emacs.c
Simple merge
diff --cc src/eval.c
Simple merge
diff --cc src/fns.c
Simple merge
diff --cc src/font.c
Simple merge
diff --cc src/frame.c
Simple merge
diff --cc src/image.c
Simple merge
diff --cc src/json.c
Simple merge
diff --cc src/keyboard.c
Simple merge
diff --cc src/keymap.c
Simple merge
diff --cc src/lisp.h
index 80009d0887287f26b2a3fd160cec9b4c92ccbe6a,99f6858c281a45c29796cce0b4da1f60ab240290..89132e5f51c458cef69f44416922a20f2a66ce6f
@@@ -806,12 -808,21 +808,12 @@@ INLINE voi
     help static checking.  */
  typedef struct { void const *fwdptr; } lispfwd;
  \f
 -/* Interned state of a symbol.  */
 -
 -enum symbol_interned
 -{
 -  SYMBOL_UNINTERNED,                /* not interned anywhere */
 -  SYMBOL_INTERNED,                  /* interned but not in initial obarray */
 -  SYMBOL_INTERNED_IN_INITIAL_OBARRAY  /* interned in initial obarray */
 -};
 -
  enum symbol_redirect
  {
-   SYMBOL_PLAINVAL  = 4,
-   SYMBOL_VARALIAS  = 1,
-   SYMBOL_LOCALIZED = 2,
-   SYMBOL_FORWARDED = 3
+   SYMBOL_PLAINVAL,   /* plain var, value is in the `value' field */
+   SYMBOL_VARALIAS,   /* var alias, value is really in the `alias' symbol */
+   SYMBOL_LOCALIZED,  /* localized var, value is in the `blv' object */
+   SYMBOL_FORWARDED   /* forwarding var, value is in `forward' */
  };
  
  enum symbol_trapped_write
@@@ -829,18 -840,14 +831,11 @@@ struct Lisp_Symbo
      {
        bool_bf gcmarkbit : 1;
  
-       /* Indicates where the value can be found:
-        0 : it's a plain var, the value is in the `value' field.
-        1 : it's a varalias, the value is really in the `alias' symbol.
-        2 : it's a localized var, the value is in the `blv' object.
-        3 : it's a forwarding variable, the value is in `forward'.  */
-       ENUM_BF (symbol_redirect) redirect : 3;
+       /* Indicates where the value can be found.  */
+       ENUM_BF (symbol_redirect) redirect : 2;
  
-       /* 0 : normal case, just set the value
-        1 : constant, cannot set, e.g. nil, t, :keywords.
-        2 : trap the write, call watcher functions.  */
        ENUM_BF (symbol_trapped_write) trapped_write : 2;
  
 -      /* Interned state of the symbol.  */
 -      ENUM_BF (symbol_interned) interned : 2;
 -
        /* True means that this variable has been explicitly declared
         special (with `defvar' etc), and shouldn't be lexically bound.  */
        bool_bf declared_special : 1;
diff --cc src/lread.c
Simple merge
diff --cc src/minibuf.c
Simple merge
diff --cc src/pdumper.c
Simple merge
diff --cc src/print.c
Simple merge
diff --cc src/process.c
Simple merge
diff --cc src/term.c
Simple merge
diff --cc src/treesit.c
index 67b0f4b1810fc27224b40a4979ebcfe9ca6bedd1,1f694e472012de6965ce1e00db15b1f531d4c448..26a8ccc7abc061b88cb75441c22726813308f6c8
@@@ -2397,18 -2640,22 +2640,22 @@@ treesit_predicate_match (Lisp_Object ar
  
  /* Handles predicate (#pred FN ARG...).  Return true if FN returns
     non-nil; return false otherwise.  The arity of FN must match the
-    number of ARGs  */
+    number of ARGs.  If everything goes fine, don't touch SIGNAL_DATA;
+    if error occurs, set it to a suitable signal data.  */
  static bool
- treesit_predicate_pred (Lisp_Object args, struct capture_range captures)
+ treesit_predicate_pred (Lisp_Object args, struct capture_range captures,
+                       Lisp_Object *signal_data)
  {
-   if (XFIXNUM (Flength (args)) < 2)
-     xsignal2 (Qtreesit_query_error,
-             build_pure_c_string ("Predicate `pred' requires "
-                                  "at least two arguments, "
-                                  "but was only given"),
-             Flength (args));
+   if (list_length (args) < 2)
+     {
+       *signal_data = list2 (build_string ("Predicate `pred' requires "
+                                         "at least two arguments, "
+                                         "but only got"),
+                           Flength (args));
+       return false;
+     }
  
 -  Lisp_Object fn = Fintern (XCAR (args), Qnil);
 +  Lisp_Object fn = Fintern (XCAR (args), Qnil, Qnil);
    Lisp_Object nodes = Qnil;
    Lisp_Object tail = XCDR (args);
    FOR_EACH_TAIL (tail)
diff --cc src/xdisp.c
Simple merge
diff --cc src/xfaces.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge