Mercurial > hg > xemacs-beta
comparison src/eval.c @ 2421:ab71ad6ff3dd
[xemacs-hg @ 2004-12-06 03:50:53 by ben]
(none)
README.packages: Document use of --package-prefix.
Fix error in specifying standard package location.
make-docfile.c: Use QXE_PATH_MAX.
info.el: Correct doc string giving example package path.
menubar-items.el: Move Prefix Rectangle command up one level.
xemacs/packages.texi: Add long form of Lisp Reference Manual to links.
Add links pointing to Lisp Reference Manual for more detailed
package discussion.
lispref/range-tables.texi: Document range-table changes.
internals/internals.texi: Update history section.
elhash.c, elhash.h, profile.c: Create inchash_eq() to allow direct incrementing of hash-table
entry. Use in profile.c to try to reduce profiling overhead.
Increase initial size of profile hash tables to reduce profiling
overhead.
buffer.c, device-msw.c, dialog-msw.c, dired-msw.c, editfns.c, event-msw.c, events.c, glyphs-msw.c, keymap.c, objects-msw.c, process-nt.c, syswindows.h, text.c, text.h, unexnt.c: Rename xetcs* -> qxetcs* for consistency with qxestr*.
Rename ei*_c(_*) -> ei*_ascii(_*) since they work with ASCII-only
strings not "C strings", whatever those are. This is the last
place where "c" was incorrectly being used for "ascii".
dialog-msw.c, dumper.c, event-msw.c, fileio.c, glyphs-gtk.c, glyphs-x.c, nt.c, process-nt.c, realpath.c, sysdep.c, sysfile.h, unexcw.c, unexnext.c, unexnt.c: Try to avoid differences in systems that do or do not include
final null byte in PATH_MAX. Create PATH_MAX_INTERNAL and
PATH_MAX_EXTERNAL and use them everywhere. Rewrite code in
dumper.c to avoid use of PATH_MAX. When necessary in nt.c,
use _MAX_PATH instead of MAX_PATH to be consistent with
other places.
text.c: Code to short-circuit when binary or Unicode was not working
due to EOL wrapping. Fix this code to work when either no
EOL autodetection or no CR's or LF's in the text.
lisp.h, rangetab.c, rangetab.h, regex.c, search.c: Implement different types of ranges (open/closed start and end).
Change default to be start-closed, end-open.
author | ben |
---|---|
date | Mon, 06 Dec 2004 03:52:23 +0000 |
parents | ecf1ebac70d8 |
children | 3d8143fc88e1 |
comparison
equal
deleted
inserted
replaced
2420:ad56e5a6d09f | 2421:ab71ad6ff3dd |
---|---|
1 /* Evaluator for XEmacs Lisp interpreter. | 1 /* Evaluator for XEmacs Lisp interpreter. |
2 Copyright (C) 1985-1987, 1992-1994 Free Software Foundation, Inc. | 2 Copyright (C) 1985-1987, 1992-1994 Free Software Foundation, Inc. |
3 Copyright (C) 1995 Sun Microsystems, Inc. | 3 Copyright (C) 1995 Sun Microsystems, Inc. |
4 Copyright (C) 2000, 2001, 2002, 2003 Ben Wing. | 4 Copyright (C) 2000, 2001, 2002, 2003, 2004 Ben Wing. |
5 | 5 |
6 This file is part of XEmacs. | 6 This file is part of XEmacs. |
7 | 7 |
8 XEmacs is free software; you can redistribute it and/or modify it | 8 XEmacs is free software; you can redistribute it and/or modify it |
9 under the terms of the GNU General Public License as published by the | 9 under the terms of the GNU General Public License as published by the |
1152 The return value of the `setq' form is the value of the last VAL. | 1152 The return value of the `setq' form is the value of the last VAL. |
1153 */ | 1153 */ |
1154 (args)) | 1154 (args)) |
1155 { | 1155 { |
1156 /* This function can GC */ | 1156 /* This function can GC */ |
1157 Lisp_Object symbol, tail, val = Qnil; | |
1158 int nargs; | 1157 int nargs; |
1159 struct gcpro gcpro1; | 1158 Lisp_Object retval = Qnil; |
1160 | 1159 |
1161 GET_LIST_LENGTH (args, nargs); | 1160 GET_LIST_LENGTH (args, nargs); |
1162 | 1161 |
1163 if (nargs & 1) /* Odd number of arguments? */ | 1162 if (nargs & 1) /* Odd number of arguments? */ |
1164 Fsignal (Qwrong_number_of_arguments, list2 (Qsetq, make_int (nargs))); | 1163 Fsignal (Qwrong_number_of_arguments, list2 (Qsetq, make_int (nargs))); |
1165 | 1164 |
1166 GCPRO1 (val); | 1165 GC_PROPERTY_LIST_LOOP_3 (symbol, val, args) |
1167 | |
1168 PROPERTY_LIST_LOOP (tail, symbol, val, args) | |
1169 { | 1166 { |
1170 val = Feval (val); | 1167 val = Feval (val); |
1171 Fset (symbol, val); | 1168 Fset (symbol, val); |
1172 } | 1169 retval = val; |
1173 | 1170 } |
1174 UNGCPRO; | 1171 |
1175 return val; | 1172 END_GC_PROPERTY_LIST_LOOP (symbol); |
1173 | |
1174 return retval; | |
1176 } | 1175 } |
1177 | 1176 |
1178 DEFUN ("quote", Fquote, 1, UNEVALLED, 0, /* | 1177 DEFUN ("quote", Fquote, 1, UNEVALLED, 0, /* |
1179 Return the argument, without evaluating it. `(quote x)' yields `x'. | 1178 Return the argument, without evaluating it. `(quote x)' yields `x'. |
1180 */ | 1179 */ |
4823 { | 4822 { |
4824 struct call_trapping_problems *p = | 4823 struct call_trapping_problems *p = |
4825 (struct call_trapping_problems *) get_opaque_ptr (opaque); | 4824 (struct call_trapping_problems *) get_opaque_ptr (opaque); |
4826 | 4825 |
4827 if (!(inhibit_flags & INHIBIT_WARNING_ISSUE) | 4826 if (!(inhibit_flags & INHIBIT_WARNING_ISSUE) |
4828 && !warning_will_be_discarded (current_warning_level ())) | 4827 && !warning_will_be_discarded (current_warning_level ()) |
4828 && !EQ (error_conditions, Qquit)) | |
4829 { | 4829 { |
4830 struct gcpro gcpro1; | 4830 struct gcpro gcpro1; |
4831 Lisp_Object lstream = Qnil; | 4831 Lisp_Object lstream = Qnil; |
4832 int speccount = specpdl_depth (); | 4832 int speccount = specpdl_depth (); |
4833 | 4833 |
4896 Qnil, 3, | 4896 Qnil, 3, |
4897 build_msg_string (warning_string ? warning_string : "error"), | 4897 build_msg_string (warning_string ? warning_string : "error"), |
4898 p->thrown_tag, p->thrown_value); | 4898 p->thrown_tag, p->thrown_value); |
4899 warn_when_safe_lispobj (Qerror, current_warning_level (), errstr); | 4899 warn_when_safe_lispobj (Qerror, current_warning_level (), errstr); |
4900 } | 4900 } |
4901 else if (p->caught_error) | 4901 else if (p->caught_error && !EQ (p->error_conditions, Qquit)) |
4902 { | 4902 { |
4903 Lisp_Object errstr; | 4903 Lisp_Object errstr; |
4904 /* #### This should call | 4904 /* #### This should call |
4905 (with-output-to-string (display-error (cons error_conditions | 4905 (with-output-to-string (display-error (cons error_conditions |
4906 data)) | 4906 data)) |