comparison src/eval.c @ 298:70ad99077275 r21-0b47

Import from CVS: tag r21-0b47
author cvs
date Mon, 13 Aug 2007 10:39:40 +0200
parents 90d73dddcdc4
children 33bdb3d4b97f
comparison
equal deleted inserted replaced
297:deca3c1083ac 298:70ad99077275
3724 { 3724 {
3725 if (EQ (XCAR (val), Qt)) 3725 if (EQ (XCAR (val), Qt))
3726 { 3726 {
3727 /* t indicates this hook has a local binding; 3727 /* t indicates this hook has a local binding;
3728 it means to run the global binding too. */ 3728 it means to run the global binding too. */
3729 Lisp_Object globals; 3729 Lisp_Object globals = Fdefault_value (sym);
3730 3730
3731 for (globals = Fdefault_value (sym); 3731 if ((! CONSP (globals) || EQ (XCAR (globals), Qlambda)) &&
3732 CONSP (globals) && ((cond == RUN_HOOKS_TO_COMPLETION) 3732 ! NILP (globals))
3733 || (cond == RUN_HOOKS_UNTIL_SUCCESS
3734 ? NILP (ret)
3735 : !NILP (ret)));
3736 globals = XCDR (globals))
3737 { 3733 {
3738 args[0] = XCAR (globals); 3734 args[0] = globals;
3739 /* In a global value, t should not occur. If it does, we 3735 ret = Ffuncall (nargs, args);
3740 must ignore it to avoid an endless loop. */ 3736 }
3741 if (!EQ (args[0], Qt)) 3737 else
3742 ret = Ffuncall (nargs, args); 3738 {
3739 for (;
3740 CONSP (globals) && ((cond == RUN_HOOKS_TO_COMPLETION)
3741 || (cond == RUN_HOOKS_UNTIL_SUCCESS
3742 ? NILP (ret)
3743 : !NILP (ret)));
3744 globals = XCDR (globals))
3745 {
3746 args[0] = XCAR (globals);
3747 /* In a global value, t should not occur. If it does, we
3748 must ignore it to avoid an endless loop. */
3749 if (!EQ (args[0], Qt))
3750 ret = Ffuncall (nargs, args);
3751 }
3743 } 3752 }
3744 } 3753 }
3745 else 3754 else
3746 { 3755 {
3747 args[0] = XCAR (val); 3756 args[0] = XCAR (val);