Mercurial > hg > xemacs-beta
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); |