/[emacs]/emacs/src/eval.c
ViewVC logotype

Diff of /emacs/src/eval.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.167 by miles, Sun Oct 21 15:22:49 2001 UTC revision 1.168 by pj, Wed Oct 31 15:08:26 2001 UTC
# Line 286  do_debug_on_call (code) Line 286  do_debug_on_call (code)
286     The definition of `For' shows what you have to do.  */     The definition of `For' shows what you have to do.  */
287    
288  DEFUN ("or", For, Sor, 0, UNEVALLED, 0,  DEFUN ("or", For, Sor, 0, UNEVALLED, 0,
289    "Eval args until one of them yields non-nil, then return that value.\n\         doc: /* Eval args until one of them yields non-nil, then return that value.
290  The remaining args are not evalled at all.\n\  The remaining args are not evalled at all.
291  If all args return nil, return nil.\n\  If all args return nil, return nil.
292  usage: (or CONDITIONS ...)")  usage: (or CONDITIONS ...)  */)
293    (args)       (args)
294       Lisp_Object args;       Lisp_Object args;
295  {  {
296    register Lisp_Object val;    register Lisp_Object val;
# Line 317  usage: (or CONDITIONS ...)") Line 317  usage: (or CONDITIONS ...)")
317  }  }
318    
319  DEFUN ("and", Fand, Sand, 0, UNEVALLED, 0,  DEFUN ("and", Fand, Sand, 0, UNEVALLED, 0,
320    "Eval args until one of them yields nil, then return nil.\n\    doc: /* Eval args until one of them yields nil, then return nil.
321  The remaining args are not evalled at all.\n\  The remaining args are not evalled at all.
322  If no arg yields nil, return the last arg's value.\n\  If no arg yields nil, return the last arg's value.
323  usage: (and CONDITIONS ...)")  usage: (and CONDITIONS ...)  */)
324    (args)       (args)
325       Lisp_Object args;       Lisp_Object args;
326  {  {
327    register Lisp_Object val;    register Lisp_Object val;
# Line 348  usage: (and CONDITIONS ...)") Line 348  usage: (and CONDITIONS ...)")
348  }  }
349    
350  DEFUN ("if", Fif, Sif, 2, UNEVALLED, 0,  DEFUN ("if", Fif, Sif, 2, UNEVALLED, 0,
351    "If COND yields non-nil, do THEN, else do ELSE...\n\    doc: /* If COND yields non-nil, do THEN, else do ELSE...
352  Returns the value of THEN or the value of the last of the ELSE's.\n\  Returns the value of THEN or the value of the last of the ELSE's.
353  THEN must be one expression, but ELSE... can be zero or more expressions.\n\  THEN must be one expression, but ELSE... can be zero or more expressions.
354  If COND yields nil, and there are no ELSE's, the value is nil.\n\  If COND yields nil, and there are no ELSE's, the value is nil.
355  usage: (if COND THEN ELSE...)")  usage: (if COND THEN ELSE...)  */)
356    (args)       (args)
357       Lisp_Object args;       Lisp_Object args;
358  {  {
359    register Lisp_Object cond;    register Lisp_Object cond;
# Line 369  usage: (if COND THEN ELSE...)") Line 369  usage: (if COND THEN ELSE...)")
369  }  }
370    
371  DEFUN ("cond", Fcond, Scond, 0, UNEVALLED, 0,  DEFUN ("cond", Fcond, Scond, 0, UNEVALLED, 0,
372    "Try each clause until one succeeds.\n\         doc: /* Try each clause until one succeeds.
373  Each clause looks like (CONDITION BODY...).  CONDITION is evaluated\n\  Each clause looks like (CONDITION BODY...).  CONDITION is evaluated
374  and, if the value is non-nil, this clause succeeds:\n\  and, if the value is non-nil, this clause succeeds:
375  then the expressions in BODY are evaluated and the last one's\n\  then the expressions in BODY are evaluated and the last one's
376  value is the value of the cond-form.\n\  value is the value of the cond-form.
377  If no clause succeeds, cond returns nil.\n\  If no clause succeeds, cond returns nil.
378  If a clause has one element, as in (CONDITION),\n\  If a clause has one element, as in (CONDITION),
379  CONDITION's value if non-nil is returned from the cond-form.\n\  CONDITION's value if non-nil is returned from the cond-form.
380  usage: (cond CLAUSES...)")  usage: (cond CLAUSES...)  */)
381    (args)       (args)
382       Lisp_Object args;       Lisp_Object args;
383  {  {
384    register Lisp_Object clause, val;    register Lisp_Object clause, val;
# Line 404  usage: (cond CLAUSES...)") Line 404  usage: (cond CLAUSES...)")
404  }  }
405    
406  DEFUN ("progn", Fprogn, Sprogn, 0, UNEVALLED, 0,  DEFUN ("progn", Fprogn, Sprogn, 0, UNEVALLED, 0,
407    "Eval BODY forms sequentially and return value of last one.\n\         doc: /* Eval BODY forms sequentially and return value of last one.
408  usage: (progn BODY ...)")  usage: (progn BODY ...)  */)
409    (args)       (args)
410       Lisp_Object args;       Lisp_Object args;
411  {  {
412    register Lisp_Object val, tem;    register Lisp_Object val, tem;
# Line 443  usage: (progn BODY ...)") Line 443  usage: (progn BODY ...)")
443  }  }
444    
445  DEFUN ("prog1", Fprog1, Sprog1, 1, UNEVALLED, 0,  DEFUN ("prog1", Fprog1, Sprog1, 1, UNEVALLED, 0,
446    "Eval FIRST and BODY sequentially; value from FIRST.\n\         doc: /* Eval FIRST and BODY sequentially; value from FIRST.
447  The value of FIRST is saved during the evaluation of the remaining args,\n\  The value of FIRST is saved during the evaluation of the remaining args,
448  whose values are discarded.\n\  whose values are discarded.
449  usage: (prog1 FIRST BODY...)")  usage: (prog1 FIRST BODY...)  */)
450    (args)       (args)
451       Lisp_Object args;       Lisp_Object args;
452  {  {
453    Lisp_Object val;    Lisp_Object val;
# Line 477  usage: (prog1 FIRST BODY...)") Line 477  usage: (prog1 FIRST BODY...)")
477  }  }
478    
479  DEFUN ("prog2", Fprog2, Sprog2, 2, UNEVALLED, 0,  DEFUN ("prog2", Fprog2, Sprog2, 2, UNEVALLED, 0,
480    "Eval X, Y and BODY sequentially; value from Y.\n\         doc: /* Eval X, Y and BODY sequentially; value from Y.
481  The value of Y is saved during the evaluation of the remaining args,\n\  The value of Y is saved during the evaluation of the remaining args,
482  whose values are discarded.\n\  whose values are discarded.
483  usage: (prog2 X Y BODY...)")  usage: (prog2 X Y BODY...)  */)
484    (args)       (args)
485       Lisp_Object args;       Lisp_Object args;
486  {  {
487    Lisp_Object val;    Lisp_Object val;
# Line 513  usage: (prog2 X Y BODY...)") Line 513  usage: (prog2 X Y BODY...)")
513  }  }
514    
515  DEFUN ("setq", Fsetq, Ssetq, 0, UNEVALLED, 0,  DEFUN ("setq", Fsetq, Ssetq, 0, UNEVALLED, 0,
516    "Set each SYM to the value of its VAL.\n\         doc: /* Set each SYM to the value of its VAL.
517  The symbols SYM are variables; they are literal (not evaluated).\n\  The symbols SYM are variables; they are literal (not evaluated).
518  The values VAL are expressions; they are evaluated.\n\  The values VAL are expressions; they are evaluated.
519  Thus, (setq x (1+ y)) sets `x' to the value of `(1+ y)'.\n\  Thus, (setq x (1+ y)) sets `x' to the value of `(1+ y)'.
520  The second VAL is not computed until after the first SYM is set, and so on;\n\  The second VAL is not computed until after the first SYM is set, and so on;
521  each VAL can use the new value of variables set earlier in the `setq'.\n\  each VAL can use the new value of variables set earlier in the `setq'.
522  The return value of the `setq' form is the value of the last VAL.\n\  The return value of the `setq' form is the value of the last VAL.
523  usage: (setq SYM VAL SYM VAL ...)")  usage: (setq SYM VAL SYM VAL ...)  */)
524    (args)       (args)
525       Lisp_Object args;       Lisp_Object args;
526  {  {
527    register Lisp_Object args_left;    register Lisp_Object args_left;
# Line 548  usage: (setq SYM VAL SYM VAL ...)") Line 548  usage: (setq SYM VAL SYM VAL ...)")
548  }  }
549            
550  DEFUN ("quote", Fquote, Squote, 1, UNEVALLED, 0,  DEFUN ("quote", Fquote, Squote, 1, UNEVALLED, 0,
551    "Return the argument, without evaluating it.  `(quote x)' yields `x'.\n\         doc: /* Return the argument, without evaluating it.  `(quote x)' yields `x'.
552  usage: (quote ARG)")  usage: (quote ARG)  */)
553    (args)       (args)
554       Lisp_Object args;       Lisp_Object args;
555  {  {
556    return Fcar (args);    return Fcar (args);
557  }  }
558            
559  DEFUN ("function", Ffunction, Sfunction, 1, UNEVALLED, 0,  DEFUN ("function", Ffunction, Sfunction, 1, UNEVALLED, 0,
560    "Like `quote', but preferred for objects which are functions.\n\         doc: /* Like `quote', but preferred for objects which are functions.
561  In byte compilation, `function' causes its argument to be compiled.\n\  In byte compilation, `function' causes its argument to be compiled.
562  `quote' cannot do that.\n\  `quote' cannot do that.
563  usage: (function ARG)")  usage: (function ARG)  */)
564    (args)       (args)
565       Lisp_Object args;       Lisp_Object args;
566  {  {
567    return Fcar (args);    return Fcar (args);
# Line 569  usage: (function ARG)") Line 569  usage: (function ARG)")
569    
570    
571  DEFUN ("interactive-p", Finteractive_p, Sinteractive_p, 0, 0, 0,  DEFUN ("interactive-p", Finteractive_p, Sinteractive_p, 0, 0, 0,
572    "Return t if function in which this appears was called interactively.\n\         doc: /* Return t if function in which this appears was called interactively.
573  This means that the function was called with call-interactively (which\n\  This means that the function was called with call-interactively (which
574  includes being called as the binding of a key)\n\  includes being called as the binding of a key)
575  and input is currently coming from the keyboard (not in keyboard macro).")  and input is currently coming from the keyboard (not in keyboard macro).  */)
576    ()       ()
577  {  {
578    return interactive_p (1) ? Qt : Qnil;    return interactive_p (1) ? Qt : Qnil;
579  }  }
# Line 637  interactive_p (exclude_subrs_p) Line 637  interactive_p (exclude_subrs_p)
637    
638    
639  DEFUN ("defun", Fdefun, Sdefun, 2, UNEVALLED, 0,  DEFUN ("defun", Fdefun, Sdefun, 2, UNEVALLED, 0,
640    "Define NAME as a function.\n\         doc: /* Define NAME as a function.
641  The definition is (lambda ARGLIST [DOCSTRING] BODY...).\n\  The definition is (lambda ARGLIST [DOCSTRING] BODY...).
642  See also the function `interactive'.\n\  See also the function `interactive'.
643  usage: (defun NAME ARGLIST [DOCSTRING] BODY...)")  usage: (defun NAME ARGLIST [DOCSTRING] BODY...)  */)
644    (args)       (args)
645       Lisp_Object args;       Lisp_Object args;
646  {  {
647    register Lisp_Object fn_name;    register Lisp_Object fn_name;
# Line 657  usage: (defun NAME ARGLIST [DOCSTRING] B Line 657  usage: (defun NAME ARGLIST [DOCSTRING] B
657  }  }
658    
659  DEFUN ("defmacro", Fdefmacro, Sdefmacro, 2, UNEVALLED, 0,  DEFUN ("defmacro", Fdefmacro, Sdefmacro, 2, UNEVALLED, 0,
660    "Define NAME as a macro.\n\         doc: /* Define NAME as a macro.
661  The definition is (macro lambda ARGLIST [DOCSTRING] BODY...).\n\  The definition is (macro lambda ARGLIST [DOCSTRING] BODY...).
662  When the macro is called, as in (NAME ARGS...),\n\  When the macro is called, as in (NAME ARGS...),
663  the function (lambda ARGLIST BODY...) is applied to\n\  the function (lambda ARGLIST BODY...) is applied to
664  the list ARGS... as it appears in the expression,\n\  the list ARGS... as it appears in the expression,
665  and the result should be a form to be evaluated instead of the original.\n\  and the result should be a form to be evaluated instead of the original.
666  usage: (defmacro NAME ARGLIST [DOCSTRING] BODY...)")  usage: (defmacro NAME ARGLIST [DOCSTRING] BODY...)  */)
667    (args)       (args)
668       Lisp_Object args;       Lisp_Object args;
669  {  {
670    register Lisp_Object fn_name;    register Lisp_Object fn_name;
# Line 681  usage: (defmacro NAME ARGLIST [DOCSTRING Line 681  usage: (defmacro NAME ARGLIST [DOCSTRING
681    
682    
683  DEFUN ("defvaralias", Fdefvaralias, Sdefvaralias, 2, 2, 0,  DEFUN ("defvaralias", Fdefvaralias, Sdefvaralias, 2, 2, 0,
684    "Make SYMBOL a variable alias for symbol ALIASED.\n\         doc: /* Make SYMBOL a variable alias for symbol ALIASED.
685  Setting the value of SYMBOL will subsequently set the value of ALIASED,\n\  Setting the value of SYMBOL will subsequently set the value of ALIASED,
686  and getting the value of SYMBOL will return the value ALIASED has.\n\  and getting the value of SYMBOL will return the value ALIASED has.
687  ALIASED nil means remove the alias; SYMBOL is unbound after that.")  ALIASED nil means remove the alias; SYMBOL is unbound after that.  */)
688    (symbol, aliased)       (symbol, aliased)
689       Lisp_Object symbol, aliased;       Lisp_Object symbol, aliased;
690  {  {
691    struct Lisp_Symbol *sym;    struct Lisp_Symbol *sym;
# Line 707  ALIASED nil means remove the alias; SYMB Line 707  ALIASED nil means remove the alias; SYMB
707    
708    
709  DEFUN ("defvar", Fdefvar, Sdefvar, 1, UNEVALLED, 0,  DEFUN ("defvar", Fdefvar, Sdefvar, 1, UNEVALLED, 0,
710    "Define SYMBOL as a variable.\n\         doc: /* Define SYMBOL as a variable.
711  You are not required to define a variable in order to use it,\n\  You are not required to define a variable in order to use it,
712  but the definition can supply documentation and an initial value\n\  but the definition can supply documentation and an initial value
713  in a way that tags can recognize.\n\n\  in a way that tags can recognize.
714  INITVALUE is evaluated, and used to set SYMBOL, only if SYMBOL's value is void.\n\  
715  If SYMBOL is buffer-local, its default value is what is set;\n\  INITVALUE is evaluated, and used to set SYMBOL, only if SYMBOL's value is void.
716   buffer-local values are not affected.\n\  If SYMBOL is buffer-local, its default value is what is set;
717  INITVALUE and DOCSTRING are optional.\n\   buffer-local values are not affected.
718  If DOCSTRING starts with *, this variable is identified as a user option.\n\  INITVALUE and DOCSTRING are optional.
719   This means that M-x set-variable recognizes it.\n\  If DOCSTRING starts with *, this variable is identified as a user option.
720   See also `user-variable-p'.\n\   This means that M-x set-variable recognizes it.
721  If INITVALUE is missing, SYMBOL's value is not set.\n\   See also `user-variable-p'.
722  usage: (defvar SYMBOL [INITVALUE DOCSTRING])")  If INITVALUE is missing, SYMBOL's value is not set.
723    (args)  usage: (defvar SYMBOL [INITVALUE DOCSTRING])  */)
724         (args)
725       Lisp_Object args;       Lisp_Object args;
726  {  {
727    register Lisp_Object sym, tem, tail;    register Lisp_Object sym, tem, tail;
# Line 756  usage: (defvar SYMBOL [INITVALUE DOCSTRI Line 757  usage: (defvar SYMBOL [INITVALUE DOCSTRI
757  }  }
758    
759  DEFUN ("defconst", Fdefconst, Sdefconst, 2, UNEVALLED, 0,  DEFUN ("defconst", Fdefconst, Sdefconst, 2, UNEVALLED, 0,
760    "Define SYMBOL as a constant variable.\n\         doc: /* Define SYMBOL as a constant variable.
761  The intent is that neither programs nor users should ever change this value.\n\  The intent is that neither programs nor users should ever change this value.
762  Always sets the value of SYMBOL to the result of evalling INITVALUE.\n\  Always sets the value of SYMBOL to the result of evalling INITVALUE.
763  If SYMBOL is buffer-local, its default value is what is set;\n\  If SYMBOL is buffer-local, its default value is what is set;
764   buffer-local values are not affected.\n\   buffer-local values are not affected.
765  DOCSTRING is optional.\n\  DOCSTRING is optional.
766  usage: (defconst SYMBOL INITVALUE [DOCSTRING])")  usage: (defconst SYMBOL INITVALUE [DOCSTRING])  */)
767    (args)       (args)
768       Lisp_Object args;       Lisp_Object args;
769  {  {
770    register Lisp_Object sym, tem;    register Lisp_Object sym, tem;
# Line 788  usage: (defconst SYMBOL INITVALUE [DOCST Line 789  usage: (defconst SYMBOL INITVALUE [DOCST
789  }  }
790    
791  DEFUN ("user-variable-p", Fuser_variable_p, Suser_variable_p, 1, 1, 0,  DEFUN ("user-variable-p", Fuser_variable_p, Suser_variable_p, 1, 1, 0,
792    "Returns t if VARIABLE is intended to be set and modified by users.\n\         doc: /* Returns t if VARIABLE is intended to be set and modified by users.
793  \(The alternative is a variable used internally in a Lisp program.)\n\  \(The alternative is a variable used internally in a Lisp program.)
794  Determined by whether the first character of the documentation\n\  Determined by whether the first character of the documentation
795  for the variable is `*' or if the variable is customizable (has a non-nil\n\  for the variable is `*' or if the variable is customizable (has a non-nil
796  value of any of `custom-type', `custom-loads' or `standard-value'\n\  value of any of `custom-type', `custom-loads' or `standard-value'
797  on its property list).")  on its property list).  */)
798    (variable)       (variable)
799       Lisp_Object variable;       Lisp_Object variable;
800  {  {
801    Lisp_Object documentation;    Lisp_Object documentation;
# Line 823  on its property list).") Line 824  on its property list).")
824  }    }  
825    
826  DEFUN ("let*", FletX, SletX, 1, UNEVALLED, 0,  DEFUN ("let*", FletX, SletX, 1, UNEVALLED, 0,
827    "Bind variables according to VARLIST then eval BODY.\n\         doc: /* Bind variables according to VARLIST then eval BODY.
828  The value of the last form in BODY is returned.\n\  The value of the last form in BODY is returned.
829  Each element of VARLIST is a symbol (which is bound to nil)\n\  Each element of VARLIST is a symbol (which is bound to nil)
830  or a list (SYMBOL VALUEFORM) (which binds SYMBOL to the value of VALUEFORM).\n\  or a list (SYMBOL VALUEFORM) (which binds SYMBOL to the value of VALUEFORM).
831  Each VALUEFORM can refer to the symbols already bound by this VARLIST.\n\  Each VALUEFORM can refer to the symbols already bound by this VARLIST.
832  usage: (let* VARLIST BODY...)")  usage: (let* VARLIST BODY...)  */)
833    (args)       (args)
834       Lisp_Object args;       Lisp_Object args;
835  {  {
836    Lisp_Object varlist, val, elt;    Lisp_Object varlist, val, elt;
# Line 862  usage: (let* VARLIST BODY...)") Line 863  usage: (let* VARLIST BODY...)")
863  }  }
864    
865  DEFUN ("let", Flet, Slet, 1, UNEVALLED, 0,  DEFUN ("let", Flet, Slet, 1, UNEVALLED, 0,
866    "Bind variables according to VARLIST then eval BODY.\n\         doc: /* Bind variables according to VARLIST then eval BODY.
867  The value of the last form in BODY is returned.\n\  The value of the last form in BODY is returned.
868  Each element of VARLIST is a symbol (which is bound to nil)\n\  Each element of VARLIST is a symbol (which is bound to nil)
869  or a list (SYMBOL VALUEFORM) (which binds SYMBOL to the value of VALUEFORM).\n\  or a list (SYMBOL VALUEFORM) (which binds SYMBOL to the value of VALUEFORM).
870  All the VALUEFORMs are evalled before any symbols are bound.\n\  All the VALUEFORMs are evalled before any symbols are bound.
871  usage: (let VARLIST BODY...)")  usage: (let VARLIST BODY...)  */)
872    (args)       (args)
873       Lisp_Object args;       Lisp_Object args;
874  {  {
875    Lisp_Object *temps, tem;    Lisp_Object *temps, tem;
# Line 920  usage: (let VARLIST BODY...)") Line 921  usage: (let VARLIST BODY...)")
921  }  }
922    
923  DEFUN ("while", Fwhile, Swhile, 1, UNEVALLED, 0,  DEFUN ("while", Fwhile, Swhile, 1, UNEVALLED, 0,
924    "If TEST yields non-nil, eval BODY... and repeat.\n\         doc: /* If TEST yields non-nil, eval BODY... and repeat.
925  The order of execution is thus TEST, BODY, TEST, BODY and so on\n\  The order of execution is thus TEST, BODY, TEST, BODY and so on
926  until TEST returns nil.\n\  until TEST returns nil.
927  usage: (while TEST BODY...)")  usage: (while TEST BODY...)  */)
928    (args)       (args)
929       Lisp_Object args;       Lisp_Object args;
930  {  {
931    Lisp_Object test, body, tem;    Lisp_Object test, body, tem;
# Line 946  usage: (while TEST BODY...)") Line 947  usage: (while TEST BODY...)")
947  }  }
948    
949  DEFUN ("macroexpand", Fmacroexpand, Smacroexpand, 1, 2, 0,  DEFUN ("macroexpand", Fmacroexpand, Smacroexpand, 1, 2, 0,
950    "Return result of expanding macros at top level of FORM.\n\         doc: /* Return result of expanding macros at top level of FORM.
951  If FORM is not a macro call, it is returned unchanged.\n\  If FORM is not a macro call, it is returned unchanged.
952  Otherwise, the macro is expanded and the expansion is considered\n\  Otherwise, the macro is expanded and the expansion is considered
953  in place of FORM.  When a non-macro-call results, it is returned.\n\n\  in place of FORM.  When a non-macro-call results, it is returned.
954  The second optional arg ENVIRONMENT specifies an environment of macro\n\  
955  definitions to shadow the loaded ones for use in file byte-compilation.")  The second optional arg ENVIRONMENT specifies an environment of macro
956    (form, environment)  definitions to shadow the loaded ones for use in file byte-compilation.  */)
957         (form, environment)
958       Lisp_Object form;       Lisp_Object form;
959       Lisp_Object environment;       Lisp_Object environment;
960  {  {
# Line 1024  definitions to shadow the loaded ones fo Line 1026  definitions to shadow the loaded ones fo
1026  }  }
1027    
1028  DEFUN ("catch", Fcatch, Scatch, 1, UNEVALLED, 0,  DEFUN ("catch", Fcatch, Scatch, 1, UNEVALLED, 0,
1029    "Eval BODY allowing nonlocal exits using `throw'.\n\         doc: /* Eval BODY allowing nonlocal exits using `throw'.
1030  TAG is evalled to get the tag to use; it must not be nil.\n\  TAG is evalled to get the tag to use; it must not be nil.
1031  \n\  
1032  Then the BODY is executed.\n\  Then the BODY is executed.
1033  Within BODY, (throw TAG) with same tag exits BODY and exits this `catch'.\n\  Within BODY, (throw TAG) with same tag exits BODY and exits this `catch'.
1034  If no throw happens, `catch' returns the value of the last BODY form.\n\  If no throw happens, `catch' returns the value of the last BODY form.
1035  If a throw happens, it specifies the value to return from `catch'.\n\  If a throw happens, it specifies the value to return from `catch'.
1036  usage: (catch TAG BODY...)")  usage: (catch TAG BODY...)  */)
1037    (args)       (args)
1038       Lisp_Object args;       Lisp_Object args;
1039  {  {
1040    register Lisp_Object tag;    register Lisp_Object tag;
# Line 1135  unwind_to_catch (catch, value) Line 1137  unwind_to_catch (catch, value)
1137  }  }
1138    
1139  DEFUN ("throw", Fthrow, Sthrow, 2, 2, 0,  DEFUN ("throw", Fthrow, Sthrow, 2, 2, 0,
1140    "Throw to the catch for TAG and return VALUE from it.\n\         doc: /* Throw to the catch for TAG and return VALUE from it.
1141  Both TAG and VALUE are evalled.")  Both TAG and VALUE are evalled.  */)
1142    (tag, value)       (tag, value)
1143       register Lisp_Object tag, value;       register Lisp_Object tag, value;
1144  {  {
1145    register struct catchtag *c;    register struct catchtag *c;
# Line 1156  Both TAG and VALUE are evalled.") Line 1158  Both TAG and VALUE are evalled.")
1158    
1159    
1160  DEFUN ("unwind-protect", Funwind_protect, Sunwind_protect, 1, UNEVALLED, 0,  DEFUN ("unwind-protect", Funwind_protect, Sunwind_protect, 1, UNEVALLED, 0,
1161    "Do BODYFORM, protecting with UNWINDFORMS.\n\         doc: /* Do BODYFORM, protecting with UNWINDFORMS.
1162  If BODYFORM completes normally, its value is returned\n\  If BODYFORM completes normally, its value is returned
1163  after executing the UNWINDFORMS.\n\  after executing the UNWINDFORMS.
1164  If BODYFORM exits nonlocally, the UNWINDFORMS are executed anyway.\n\  If BODYFORM exits nonlocally, the UNWINDFORMS are executed anyway.
1165  usage: (unwind-protect BODYFORM UNWINDFORMS...)")  usage: (unwind-protect BODYFORM UNWINDFORMS...)  */)
1166    (args)       (args)
1167       Lisp_Object args;       Lisp_Object args;
1168  {  {
1169    Lisp_Object val;    Lisp_Object val;
# Line 1181  usage: (unwind-protect BODYFORM UNWINDFO Line 1183  usage: (unwind-protect BODYFORM UNWINDFO
1183  struct handler *handlerlist;  struct handler *handlerlist;
1184    
1185  DEFUN ("condition-case", Fcondition_case, Scondition_case, 2, UNEVALLED, 0,  DEFUN ("condition-case", Fcondition_case, Scondition_case, 2, UNEVALLED, 0,
1186    "Regain control when an error is signaled.\n\         doc: /* Regain control when an error is signaled.
1187  executes BODYFORM and returns its value if no error happens.\n\  executes BODYFORM and returns its value if no error happens.
1188  Each element of HANDLERS looks like (CONDITION-NAME BODY...)\n\  Each element of HANDLERS looks like (CONDITION-NAME BODY...)
1189  where the BODY is made of Lisp expressions.\n\n\  where the BODY is made of Lisp expressions.
1190  A handler is applicable to an error\n\  
1191  if CONDITION-NAME is one of the error's condition names.\n\  A handler is applicable to an error
1192  If an error happens, the first applicable handler is run.\n\  if CONDITION-NAME is one of the error's condition names.
1193  \n\  If an error happens, the first applicable handler is run.
1194  The car of a handler may be a list of condition names\n\  
1195  instead of a single condition name.\n\  The car of a handler may be a list of condition names
1196  \n\  instead of a single condition name.
1197  When a handler handles an error,\n\  
1198  control returns to the condition-case and the handler BODY... is executed\n\  When a handler handles an error,
1199  with VAR bound to (SIGNALED-CONDITIONS . SIGNAL-DATA).\n\  control returns to the condition-case and the handler BODY... is executed
1200  VAR may be nil; then you do not get access to the signal information.\n\  with VAR bound to (SIGNALED-CONDITIONS . SIGNAL-DATA).
1201  \n\  VAR may be nil; then you do not get access to the signal information.
1202  The value of the last BODY form is returned from the condition-case.\n\  
1203  See also the function `signal' for more info.\n\  The value of the last BODY form is returned from the condition-case.
1204  usage: (condition-case VAR BODYFORM HANDLERS...)")  See also the function `signal' for more info.
1205    (args)  usage: (condition-case VAR BODYFORM HANDLERS...)  */)
1206         (args)
1207       Lisp_Object args;       Lisp_Object args;
1208  {  {
1209    Lisp_Object val;    Lisp_Object val;
# Line 1404  internal_condition_case_2 (bfun, nargs, Line 1407  internal_condition_case_2 (bfun, nargs,
1407  static Lisp_Object find_handler_clause ();  static Lisp_Object find_handler_clause ();
1408    
1409  DEFUN ("signal", Fsignal, Ssignal, 2, 2, 0,  DEFUN ("signal", Fsignal, Ssignal, 2, 2, 0,
1410    "Signal an error.  Args are ERROR-SYMBOL and associated DATA.\n\         doc: /* Signal an error.  Args are ERROR-SYMBOL and associated DATA.
1411  This function does not return.\n\n\  This function does not return.
1412  An error symbol is a symbol with an `error-conditions' property\n\  
1413  that is a list of condition names.\n\  An error symbol is a symbol with an `error-conditions' property
1414  A handler for any of those names will get to handle this signal.\n\  that is a list of condition names.
1415  The symbol `error' should normally be one of them.\n\  A handler for any of those names will get to handle this signal.
1416  \n\  The symbol `error' should normally be one of them.
1417  DATA should be a list.  Its elements are printed as part of the error message.\n\  
1418  If the signal is handled, DATA is made available to the handler.\n\  DATA should be a list.  Its elements are printed as part of the error message.
1419  See also the function `condition-case'.")  If the signal is handled, DATA is made available to the handler.
1420    (error_symbol, data)  See also the function `condition-case'.  */)
1421         (error_symbol, data)
1422       Lisp_Object error_symbol, data;       Lisp_Object error_symbol, data;
1423  {  {
1424    /* When memory is full, ERROR-SYMBOL is nil,    /* When memory is full, ERROR-SYMBOL is nil,
# Line 1740  error (m, a1, a2, a3) Line 1744  error (m, a1, a2, a3)
1744  }  }
1745    
1746  DEFUN ("commandp", Fcommandp, Scommandp, 1, 1, 0,  DEFUN ("commandp", Fcommandp, Scommandp, 1, 1, 0,
1747    "T if FUNCTION makes provisions for interactive calling.\n\         doc: /* Non-nil if FUNCTION makes provisions for interactive calling.
1748  This means it contains a description for how to read arguments to give it.\n\  This means it contains a description for how to read arguments to give it.
1749  The value is nil for an invalid function or a symbol with no function\n\  The value is nil for an invalid function or a symbol with no function
1750  definition.\n\  definition.
1751  \n\  
1752  Interactively callable functions include strings and vectors (treated\n\  Interactively callable functions include strings and vectors (treated
1753  as keyboard macros), lambda-expressions that contain a top-level call\n\  as keyboard macros), lambda-expressions that contain a top-level call
1754  to `interactive', autoload definitions made by `autoload' with non-nil\n\  to `interactive', autoload definitions made by `autoload' with non-nil
1755  fourth argument, and some of the built-in functions of Lisp.\n\  fourth argument, and some of the built-in functions of Lisp.
1756  \n\  
1757  Also, a symbol satisfies `commandp' if its function definition does so.")  Also, a symbol satisfies `commandp' if its function definition does so.  */)
1758    (function)       (function)
1759       Lisp_Object function;       Lisp_Object function;
1760  {  {
1761    register Lisp_Object fun;    register Lisp_Object fun;
# Line 1802  Also, a symbol satisfies `commandp' if i Line 1806  Also, a symbol satisfies `commandp' if i
1806    
1807  /* ARGSUSED */  /* ARGSUSED */
1808  DEFUN ("autoload", Fautoload, Sautoload, 2, 5, 0,  DEFUN ("autoload", Fautoload, Sautoload, 2, 5, 0,
1809    "Define FUNCTION to autoload from FILE.\n\         doc: /* Define FUNCTION to autoload from FILE.
1810  FUNCTION is a symbol; FILE is a file name string to pass to `load'.\n\  FUNCTION is a symbol; FILE is a file name string to pass to `load'.
1811  Third arg DOCSTRING is documentation for the function.\n\  Third arg DOCSTRING is documentation for the function.
1812  Fourth arg INTERACTIVE if non-nil says function can be called interactively.\n\  Fourth arg INTERACTIVE if non-nil says function can be called interactively.
1813  Fifth arg TYPE indicates the type of the object:\n\  Fifth arg TYPE indicates the type of the object:
1814     nil or omitted says FUNCTION is a function,\n\     nil or omitted says FUNCTION is a function,
1815     `keymap' says FUNCTION is really a keymap, and\n\     `keymap' says FUNCTION is really a keymap, and
1816     `macro' or t says FUNCTION is really a macro.\n\     `macro' or t says FUNCTION is really a macro.
1817  Third through fifth args give info about the real definition.\n\  Third through fifth args give info about the real definition.
1818  They default to nil.\n\  They default to nil.
1819  If FUNCTION is already defined other than as an autoload,\n\  If FUNCTION is already defined other than as an autoload,
1820  this does nothing and returns nil.")  this does nothing and returns nil.  */)
1821    (function, file, docstring, interactive, type)       (function, file, docstring, interactive, type)
1822       Lisp_Object function, file, docstring, interactive, type;       Lisp_Object function, file, docstring, interactive, type;
1823  {  {
1824  #ifdef NO_ARG_ARRAY  #ifdef NO_ARG_ARRAY
# Line 1926  do_autoload (fundef, funname) Line 1930  do_autoload (fundef, funname)
1930    
1931    
1932  DEFUN ("eval", Feval, Seval, 1, 1, 0,  DEFUN ("eval", Feval, Seval, 1, 1, 0,
1933    "Evaluate FORM and return its value.")         doc: /* Evaluate FORM and return its value.  */)
1934    (form)       (form)
1935       Lisp_Object form;       Lisp_Object form;
1936  {  {
1937    Lisp_Object fun, val, original_fun, original_args;    Lisp_Object fun, val, original_fun, original_args;
# Line 2137  DEFUN ("eval", Feval, Seval, 1, 1, 0, Line 2141  DEFUN ("eval", Feval, Seval, 1, 1, 0,
2141  }  }
2142    
2143  DEFUN ("apply", Fapply, Sapply, 2, MANY, 0,  DEFUN ("apply", Fapply, Sapply, 2, MANY, 0,
2144    "Call FUNCTION with our remaining args, using our last arg as list of args.\n\         doc: /* Call FUNCTION with our remaining args, using our last arg as list of args.
2145  Then return the value FUNCTION returns.\n\  Then return the value FUNCTION returns.
2146  Thus, (apply '+ 1 2 '(3 4)) returns 10.\n\  Thus, (apply '+ 1 2 '(3 4)) returns 10.
2147  usage: (apply FUNCTION &rest ARGUMENTS)")  usage: (apply FUNCTION &rest ARGUMENTS)  */)
2148    (nargs, args)       (nargs, args)
2149       int nargs;       int nargs;
2150       Lisp_Object *args;       Lisp_Object *args;
2151  {  {
# Line 2222  usage: (apply FUNCTION &rest ARGUMENTS)" Line 2226  usage: (apply FUNCTION &rest ARGUMENTS)"
2226  enum run_hooks_condition {to_completion, until_success, until_failure};  enum run_hooks_condition {to_completion, until_success, until_failure};
2227    
2228  DEFUN ("run-hooks", Frun_hooks, Srun_hooks, 0, MANY, 0,  DEFUN ("run-hooks", Frun_hooks, Srun_hooks, 0, MANY, 0,
2229    "Run each hook in HOOKS.  Major mode functions use this.\n\         doc: /* Run each hook in HOOKS.  Major mode functions use this.
2230  Each argument should be a symbol, a hook variable.\n\  Each argument should be a symbol, a hook variable.
2231  These symbols are processed in the order specified.\n\  These symbols are processed in the order specified.
2232  If a hook symbol has a non-nil value, that value may be a function\n\  If a hook symbol has a non-nil value, that value may be a function
2233  or a list of functions to be called to run the hook.\n\  or a list of functions to be called to run the hook.
2234  If the value is a function, it is called with no arguments.\n\  If the value is a function, it is called with no arguments.
2235  If it is a list, the elements are called, in order, with no arguments.\n\  If it is a list, the elements are called, in order, with no arguments.
2236  \n\  
2237  To make a hook variable buffer-local, use `make-local-hook',\n\  To make a hook variable buffer-local, use `make-local-hook',
2238  not `make-local-variable'.\n\  not `make-local-variable'.
2239  usage: (run-hooks &rest HOOKS)")  usage: (run-hooks &rest HOOKS)  */)
2240    (nargs, args)       (nargs, args)
2241       int nargs;       int nargs;
2242       Lisp_Object *args;       Lisp_Object *args;
2243  {  {
# Line 2250  usage: (run-hooks &rest HOOKS)") Line 2254  usage: (run-hooks &rest HOOKS)")
2254  }  }
2255                
2256  DEFUN ("run-hook-with-args", Frun_hook_with_args,  DEFUN ("run-hook-with-args", Frun_hook_with_args,
2257    Srun_hook_with_args, 1, MANY, 0,         Srun_hook_with_args, 1, MANY, 0,
2258    "Run HOOK with the specified arguments ARGS.\n\         doc: /* Run HOOK with the specified arguments ARGS.
2259  HOOK should be a symbol, a hook variable.  If HOOK has a non-nil\n\  HOOK should be a symbol, a hook variable.  If HOOK has a non-nil
2260  value, that value may be a function or a list of functions to be\n\  value, that value may be a function or a list of functions to be
2261  called to run the hook.  If the value is a function, it is called with\n\  called to run the hook.  If the value is a function, it is called with
2262  the given arguments and its return value is returned.  If it is a list\n\  the given arguments and its return value is returned.  If it is a list
2263  of functions, those functions are called, in order,\n\  of functions, those functions are called, in order,
2264  with the given arguments ARGS.\n\  with the given arguments ARGS.
2265  It is best not to depend on the value return by `run-hook-with-args',\n\  It is best not to depend on the value return by `run-hook-with-args',
2266  as that may change.\n\  as that may change.
2267  \n\  
2268  To make a hook variable buffer-local, use `make-local-hook',\n\  To make a hook variable buffer-local, use `make-local-hook',
2269  not `make-local-variable'.\n\  not `make-local-variable'.
2270  usage: (run-hook-with-args HOOK &rest ARGS)")  usage: (run-hook-with-args HOOK &rest ARGS)  */)
2271    (nargs, args)       (nargs, args)
2272       int nargs;       int nargs;
2273       Lisp_Object *args;       Lisp_Object *args;
2274  {  {
# Line 2272  usage: (run-hook-with-args HOOK &rest AR Line 2276  usage: (run-hook-with-args HOOK &rest AR
2276  }  }
2277    
2278  DEFUN ("run-hook-with-args-until-success", Frun_hook_with_args_until_success,  DEFUN ("run-hook-with-args-until-success", Frun_hook_with_args_until_success,
2279    Srun_hook_with_args_until_success, 1, MANY, 0,         Srun_hook_with_args_until_success, 1, MANY, 0,
2280    "Run HOOK with the specified arguments ARGS.\n\         doc: /* Run HOOK with the specified arguments ARGS.
2281  HOOK should be a symbol, a hook variable.  Its value should\n\  HOOK should be a symbol, a hook variable.  Its value should
2282  be a list of functions.  We call those functions, one by one,\n\  be a list of functions.  We call those functions, one by one,
2283  passing arguments ARGS to each of them, until one of them\n\  passing arguments ARGS to each of them, until one of them
2284  returns a non-nil value.  Then we return that value.\n\  returns a non-nil value.  Then we return that value.
2285  If all the functions return nil, we return nil.\n\  If all the functions return nil, we return nil.
2286  \n\  
2287  To make a hook variable buffer-local, use `make-local-hook',\n\  To make a hook variable buffer-local, use `make-local-hook',
2288  not `make-local-variable'.\n\  not `make-local-variable'.
2289  usage: (run-hook-with-args-until-success HOOK &rest ARGS)")  usage: (run-hook-with-args-until-success HOOK &rest ARGS)  */)
2290    (nargs, args)       (nargs, args)
2291       int nargs;       int nargs;
2292       Lisp_Object *args;       Lisp_Object *args;
2293  {  {
# Line 2291  usage: (run-hook-with-args-until-success Line 2295  usage: (run-hook-with-args-until-success
2295  }  }
2296    
2297  DEFUN ("run-hook-with-args-until-failure", Frun_hook_with_args_until_failure,  DEFUN ("run-hook-with-args-until-failure", Frun_hook_with_args_until_failure,
2298    Srun_hook_with_args_until_failure, 1, MANY, 0,         Srun_hook_with_args_until_failure, 1, MANY, 0,
2299    "Run HOOK with the specified arguments ARGS.\n\         doc: /* Run HOOK with the specified arguments ARGS.
2300  HOOK should be a symbol, a hook variable.  Its value should\n\  HOOK should be a symbol, a hook variable.  Its value should
2301  be a list of functions.  We call those functions, one by one,\n\  be a list of functions.  We call those functions, one by one,
2302  passing arguments ARGS to each of them, until one of them\n\  passing arguments ARGS to each of them, until one of them
2303  returns nil.  Then we return nil.\n\  returns nil.  Then we return nil.
2304  If all the functions return non-nil, we return non-nil.\n\  If all the functions return non-nil, we return non-nil.
2305  \n\  
2306  To make a hook variable buffer-local, use `make-local-hook',\n\  To make a hook variable buffer-local, use `make-local-hook',
2307  not `make-local-variable'.\n\  not `make-local-variable'.
2308  usage: (run-hook-with-args-until-failure HOOK &rest ARGS)")  usage: (run-hook-with-args-until-failure HOOK &rest ARGS)  */)
2309    (nargs, args)       (nargs, args)
2310       int nargs;       int nargs;
2311       Lisp_Object *args;       Lisp_Object *args;
2312  {  {
# Line 2626  call6 (fn, arg1, arg2, arg3, arg4, arg5, Line 2630  call6 (fn, arg1, arg2, arg3, arg4, arg5,
2630  }  }
2631    
2632  DEFUN ("funcall", Ffuncall, Sfuncall, 1, MANY, 0,  DEFUN ("funcall", Ffuncall, Sfuncall, 1, MANY, 0,
2633    "Call first argument as a function, passing remaining arguments to it.\n\         doc: /* Call first argument as a function, passing remaining arguments to it.
2634  Return the value that function returns.\n\  Return the value that function returns.
2635  Thus, (funcall 'cons 'x 'y) returns (x . y).\n\  Thus, (funcall 'cons 'x 'y) returns (x . y).
2636  usage: (funcall FUNCTION &rest ARGUMENTS)")  usage: (funcall FUNCTION &rest ARGUMENTS)  */)
2637    (nargs, args)       (nargs, args)
2638       int nargs;       int nargs;
2639       Lisp_Object *args;       Lisp_Object *args;
2640  {  {
# Line 2906  funcall_lambda (fun, nargs, arg_vector) Line 2910  funcall_lambda (fun, nargs, arg_vector)
2910  }  }
2911    
2912  DEFUN ("fetch-bytecode", Ffetch_bytecode, Sfetch_bytecode,  DEFUN ("fetch-bytecode", Ffetch_bytecode, Sfetch_bytecode,
2913    1, 1, 0,         1, 1, 0,
2914    "If byte-compiled OBJECT is lazy-loaded, fetch it now.")         doc: /* If byte-compiled OBJECT is lazy-loaded, fetch it now.  */)
2915    (object)       (object)
2916       Lisp_Object object;       Lisp_Object object;
2917  {  {
2918    Lisp_Object tem;    Lisp_Object tem;
# Line 3143  top_level_set (symbol, newval) Line 3147  top_level_set (symbol, newval)
3147  #endif /* 0 */  #endif /* 0 */
3148    
3149  DEFUN ("backtrace-debug", Fbacktrace_debug, Sbacktrace_debug, 2, 2, 0,  DEFUN ("backtrace-debug", Fbacktrace_debug, Sbacktrace_debug, 2, 2, 0,
3150    "Set the debug-on-exit flag of eval frame LEVEL levels down to FLAG.\n\         doc: /* Set the debug-on-exit flag of eval frame LEVEL levels down to FLAG.
3151  The debugger is entered when that frame exits, if the flag is non-nil.")  The debugger is entered when that frame exits, if the flag is non-nil.  */)
3152    (level, flag)       (level, flag)
3153       Lisp_Object level, flag;       Lisp_Object level, flag;
3154  {  {
3155    register struct backtrace *backlist = backtrace_list;    register struct backtrace *backlist = backtrace_list;
# Line 3165  The debugger is entered when that frame Line 3169  The debugger is entered when that frame
3169  }  }
3170    
3171  DEFUN ("backtrace", Fbacktrace, Sbacktrace, 0, 0, "",  DEFUN ("backtrace", Fbacktrace, Sbacktrace, 0, 0, "",
3172    "Print a trace of Lisp function calls currently active.\n\         doc: /* Print a trace of Lisp function calls currently active.
3173  Output stream used is value of `standard-output'.")  Output stream used is value of `standard-output'.  */)
3174    ()       ()
3175  {  {
3176    register struct backtrace *backlist = backtrace_list;    register struct backtrace *backlist = backtrace_list;
3177    register int i;    register int i;
# Line 3223  Output stream used is value of `standard Line 3227  Output stream used is value of `standard
3227  }  }
3228    
3229  DEFUN ("backtrace-frame", Fbacktrace_frame, Sbacktrace_frame, 1, 1, NULL,  DEFUN ("backtrace-frame", Fbacktrace_frame, Sbacktrace_frame, 1, 1, NULL,
3230    "Return the function and arguments NFRAMES up from current execution point.\n\         doc: /* Return the function and arguments NFRAMES up from current execution point.
3231  If that frame has not evaluated the arguments yet (or is a special form),\n\  If that frame has not evaluated the arguments yet (or is a special form),
3232  the value is (nil FUNCTION ARG-FORMS...).\n\  the value is (nil FUNCTION ARG-FORMS...).
3233  If that frame has evaluated its arguments and called its function already,\n\  If that frame has evaluated its arguments and called its function already,
3234  the value is (t FUNCTION ARG-VALUES...).\n\  the value is (t FUNCTION ARG-VALUES...).
3235  A &rest arg is represented as the tail of the list ARG-VALUES.\n\  A &rest arg is represented as the tail of the list ARG-VALUES.
3236  FUNCTION is whatever was supplied as car of evaluated list,\n\  FUNCTION is whatever was supplied as car of evaluated list,
3237  or a lambda expression for macro calls.\n\  or a lambda expression for macro calls.
3238  If NFRAMES is more than the number of frames, the value is nil.")  If NFRAMES is more than the number of frames, the value is nil.  */)
3239    (nframes)       (nframes)
3240       Lisp_Object nframes;       Lisp_Object nframes;
3241  {  {
3242    register struct backtrace *backlist = backtrace_list;    register struct backtrace *backlist = backtrace_list;
# Line 3265  void Line 3269  void
3269  syms_of_eval ()  syms_of_eval ()
3270  {  {
3271    DEFVAR_INT ("max-specpdl-size", &max_specpdl_size,    DEFVAR_INT ("max-specpdl-size", &max_specpdl_size,
3272      "*Limit on number of Lisp variable bindings & unwind-protects.\n\                doc: /* *Limit on number of Lisp variable bindings & unwind-protects.
3273  If Lisp code tries to make more than this many at once,\n\  If Lisp code tries to make more than this many at once,
3274  an error is signaled.");  an error is signaled.  */);
3275    
3276    DEFVAR_INT ("max-lisp-eval-depth", &max_lisp_eval_depth,    DEFVAR_INT ("max-lisp-eval-depth", &max_lisp_eval_depth,
3277      "*Limit on depth in `eval', `apply' and `funcall' before error.\n\                doc: /* *Limit on depth in `eval', `apply' and `funcall' before error.
3278  This limit is to catch infinite recursions for you before they cause\n\  This limit is to catch infinite recursions for you before they cause
3279  actual stack overflow in C, which would be fatal for Emacs.\n\  actual stack overflow in C, which would be fatal for Emacs.
3280  You can safely make it considerably larger than its default value,\n\  You can safely make it considerably larger than its default value,
3281  if that proves inconveniently small.");  if that proves inconveniently small.  */);
3282    
3283    DEFVAR_LISP ("quit-flag", &Vquit_flag,    DEFVAR_LISP ("quit-flag", &Vquit_flag,
3284      "Non-nil causes `eval' to abort, unless `inhibit-quit' is non-nil.\n\                 doc: /* Non-nil causes `eval' to abort, unless `inhibit-quit' is non-nil.
3285  Typing C-g sets `quit-flag' non-nil, regardless of `inhibit-quit'.");  Typing C-g sets `quit-flag' non-nil, regardless of `inhibit-quit'.  */);
3286    Vquit_flag = Qnil;    Vquit_flag = Qnil;
3287    
3288    DEFVAR_LISP ("inhibit-quit", &Vinhibit_quit,    DEFVAR_LISP ("inhibit-quit", &Vinhibit_quit,
3289      "Non-nil inhibits C-g quitting from happening immediately.\n\                 doc: /* Non-nil inhibits C-g quitting from happening immediately.
3290  Note that `quit-flag' will still be set by typing C-g,\n\  Note that `quit-flag' will still be set by typing C-g,
3291  so a quit will be signaled as soon as `inhibit-quit' is nil.\n\  so a quit will be signaled as soon as `inhibit-quit' is nil.
3292  To prevent this happening, set `quit-flag' to nil\n\  To prevent this happening, set `quit-flag' to nil
3293  before making `inhibit-quit' nil.");  before making `inhibit-quit' nil.  */);
3294    Vinhibit_quit = Qnil;    Vinhibit_quit = Qnil;
3295    
3296    Qinhibit_quit = intern ("inhibit-quit");    Qinhibit_quit = intern ("inhibit-quit");
# Line 3322  before making `inhibit-quit' nil."); Line 3326  before making `inhibit-quit' nil.");
3326    staticpro (&Qand_optional);    staticpro (&Qand_optional);
3327    
3328    DEFVAR_LISP ("stack-trace-on-error", &Vstack_trace_on_error,    DEFVAR_LISP ("stack-trace-on-error", &Vstack_trace_on_error,
3329      "*Non-nil means automatically display a backtrace buffer\n\                 doc: /* *Non-nil means automatically display a backtrace buffer
3330  after any error that is handled by the editor command loop.\n\  after any error that is handled by the editor command loop.
3331  If the value is a list, an error only means to display a backtrace\n\  If the value is a list, an error only means to display a backtrace
3332  if one of its condition symbols appears in the list.");  if one of its condition symbols appears in the list.  */);
3333    Vstack_trace_on_error = Qnil;    Vstack_trace_on_error = Qnil;
3334    
3335    DEFVAR_LISP ("debug-on-error", &Vdebug_on_error,    DEFVAR_LISP ("debug-on-error", &Vdebug_on_error,
3336      "*Non-nil means enter debugger if an error is signaled.\n\                 doc: /* *Non-nil means enter debugger if an error is signaled.
3337  Does not apply to errors handled by `condition-case' or those\n\  Does not apply to errors handled by `condition-case' or those
3338  matched by `debug-ignored-errors'.\n\  matched by `debug-ignored-errors'.
3339  If the value is a list, an error only means to enter the debugger\n\  If the value is a list, an error only means to enter the debugger
3340  if one of its condition symbols appears in the list.\n\  if one of its condition symbols appears in the list.
3341  When you evaluate an expression interactively, this variable\n\  When you evaluate an expression interactively, this variable
3342  is temporarily non-nil if `eval-expression-debug-on-error' is non-nil.\n\  is temporarily non-nil if `eval-expression-debug-on-error' is non-nil.
3343  See also variable `debug-on-quit'.");  See also variable `debug-on-quit'.  */);
3344    Vdebug_on_error = Qnil;    Vdebug_on_error = Qnil;
3345    
3346    DEFVAR_LISP ("debug-ignored-errors", &Vdebug_ignored_errors,    DEFVAR_LISP ("debug-ignored-errors", &Vdebug_ignored_errors,
3347      "*List of errors for which the debugger should not be called.\n\      doc: /* *List of errors for which the debugger should not be called.
3348  Each element may be a condition-name or a regexp that matches error messages.\n\  Each element may be a condition-name or a regexp that matches error messages.
3349  If any element applies to a given error, that error skips the debugger\n\  If any element applies to a given error, that error skips the debugger
3350  and just returns to top level.\n\  and just returns to top level.
3351  This overrides the variable `debug-on-error'.\n\  This overrides the variable `debug-on-error'.
3352  It does not apply to errors handled by `condition-case'.");  It does not apply to errors handled by `condition-case'.  */);
3353    Vdebug_ignored_errors = Qnil;    Vdebug_ignored_errors = Qnil;
3354    
3355    DEFVAR_BOOL ("debug-on-quit", &debug_on_quit,    DEFVAR_BOOL ("debug-on-quit", &debug_on_quit,
3356      "*Non-nil means enter debugger if quit is signaled (C-g, for example).\n\                 doc: /* *Non-nil means enter debugger if quit is signaled (C-g, for example).
3357  Does not apply if quit is handled by a `condition-case'.\n\  Does not apply if quit is handled by a `condition-case'.
3358  When you evaluate an expression interactively, this variable\n\  When you evaluate an expression interactively, this variable
3359  is temporarily non-nil if `eval-expression-debug-on-quit' is non-nil.");  is temporarily non-nil if `eval-expression-debug-on-quit' is non-nil.  */);
3360    debug_on_quit = 0;    debug_on_quit = 0;
3361    
3362    DEFVAR_BOOL ("debug-on-next-call", &debug_on_next_call,    DEFVAR_BOOL ("debug-on-next-call", &debug_on_next_call,
3363      "Non-nil means enter debugger before next `eval', `apply' or `funcall'.");                 doc: /* Non-nil means enter debugger before next `eval', `apply' or `funcall'.  */);
3364    
3365    DEFVAR_BOOL ("debugger-may-continue", &debugger_may_continue,    DEFVAR_BOOL ("debugger-may-continue", &debugger_may_continue,
3366      "Non-nil means debugger may continue execution.\n\                 doc: /* Non-nil means debugger may continue execution.
3367  This is nil when the debugger is called under circumstances where it\n\  This is nil when the debugger is called under circumstances where it
3368  might not be safe to continue.");  might not be safe to continue.  */);
3369    debugger_may_continue = 1;    debugger_may_continue = 1;
3370    
3371    DEFVAR_LISP ("debugger", &Vdebugger,    DEFVAR_LISP ("debugger", &Vdebugger,
3372      "Function to call to invoke debugger.\n\                 doc: /* Function to call to invoke debugger.
3373  If due to frame exit, args are `exit' and the value being returned;\n\  If due to frame exit, args are `exit' and the value being returned;
3374   this function's value will be returned instead of that.\n\   this function's value will be returned instead of that.
3375  If due to error, args are `error' and a list of the args to `signal'.\n\  If due to error, args are `error' and a list of the args to `signal'.
3376  If due to `apply' or `funcall' entry, one arg, `lambda'.\n\  If due to `apply' or `funcall' entry, one arg, `lambda'.
3377  If due to `eval' entry, one arg, t.");  If due to `eval' entry, one arg, t.  */);
3378    Vdebugger = Qnil;    Vdebugger = Qnil;
3379    
3380    DEFVAR_LISP ("signal-hook-function", &Vsignal_hook_function,    DEFVAR_LISP ("signal-hook-function", &Vsignal_hook_function,
3381      "If non-nil, this is a function for `signal' to call.\n\                 doc: /* If non-nil, this is a function for `signal' to call.
3382  It receives the same arguments that `signal' was given.\n\  It receives the same arguments that `signal' was given.
3383  The Edebug package uses this to regain control.");  The Edebug package uses this to regain control.  */);
3384    Vsignal_hook_function = Qnil;    Vsignal_hook_function = Qnil;
3385    
3386    Qmocklisp_arguments = intern ("mocklisp-arguments");    Qmocklisp_arguments = intern ("mocklisp-arguments");
3387    staticpro (&Qmocklisp_arguments);    staticpro (&Qmocklisp_arguments);
3388    DEFVAR_LISP ("mocklisp-arguments", &Vmocklisp_arguments,    DEFVAR_LISP ("mocklisp-arguments", &Vmocklisp_arguments,
3389      "While in a mocklisp function, the list of its unevaluated args.");                 doc: /* While in a mocklisp function, the list of its unevaluated args.  */);
3390    Vmocklisp_arguments = Qt;    Vmocklisp_arguments = Qt;
3391    
3392    DEFVAR_LISP ("debug-on-signal", &Vdebug_on_signal,    DEFVAR_LISP ("debug-on-signal", &Vdebug_on_signal,
3393      "*Non-nil means call the debugger regardless of condition handlers.\n\                 doc: /* *Non-nil means call the debugger regardless of condition handlers.
3394  Note that `debug-on-error', `debug-on-quit' and friends\n\  Note that `debug-on-error', `debug-on-quit' and friends
3395  still determine whether to handle the particular condition.");  still determine whether to handle the particular condition.  */);
3396    Vdebug_on_signal = Qnil;    Vdebug_on_signal = Qnil;
3397    
3398    Vrun_hooks = intern ("run-hooks");    Vrun_hooks = intern ("run-hooks");

Legend:
Removed from v.1.167  
changed lines
  Added in v.1.168

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26