]> git.eshelyaron.com Git - emacs.git/commitdiff
Bind *package* in hooks
authorGerd Möllmann <gerd@gnu.org>
Mon, 2 Oct 2023 09:04:22 +0000 (11:04 +0200)
committerGerd Möllmann <gerd@gnu.org>
Mon, 2 Oct 2023 09:04:22 +0000 (11:04 +0200)
* src/eval.c (run_hook_with_args): Bind *package* to the emacs
package.

src/eval.c

index 4d2475562648796937e20ba78c48d279669c107a..68a30631fb00f3d8aad2d70a0fd8353813af4086 100644 (file)
@@ -2853,10 +2853,16 @@ run_hook_with_args (ptrdiff_t nargs, Lisp_Object *args,
 
   if (BASE_EQ (val, Qunbound) || NILP (val))
     return ret;
-  else if (!CONSP (val) || FUNCTIONP (val))
+
+  specpdl_ref count = SPECPDL_INDEX ();
+  specbind (Qearmuffs_package, Vemacs_package);
+
+  if (!CONSP (val) || FUNCTIONP (val))
     {
       args[0] = val;
-      return funcall (nargs, args);
+      const Lisp_Object ret = funcall (nargs, args);
+      unbind_to (count, Qnil);
+      return ret;
     }
   else
     {
@@ -2899,6 +2905,7 @@ run_hook_with_args (ptrdiff_t nargs, Lisp_Object *args,
            }
        }
 
+      unbind_to (count, Qnil);
       return ret;
     }
 }