diff options
author | Miles Bader <[email protected]> | 2005-04-09 02:16:29 +0000 |
---|---|---|
committer | Miles Bader <[email protected]> | 2005-04-09 02:16:29 +0000 |
commit | 768d4533ce51d61ce065b28f63aae43c7be0d1cc (patch) | |
tree | fb2d103d5c9354b3a15550b160bba0ff2e22c418 /src | |
parent | 918bcc18650840562677f841aa0bcaa34a069be5 (diff) | |
parent | 2a9e192d3815d2c34fdd41d52590027805bc9055 (diff) |
Revision: [email protected]/emacs--unicode--0--patch-35
Merge from emacs--cvs-trunk--0
Patches applied:
* emacs--cvs-trunk--0 (patch 228-240)
- Update from CVS
- Merge from gnus--rel--5.10
* gnus--rel--5.10 (patch 53-58)
- Merge from emacs--cvs-trunk--0
- Update from CVS
- Collapse feature addition/removal within single ChangeLog entry
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 38 | ||||
-rw-r--r-- | src/ChangeLog.6 | 4 | ||||
-rw-r--r-- | src/alloc.c | 4 | ||||
-rw-r--r-- | src/emacs.c | 2 | ||||
-rw-r--r-- | src/eval.c | 7 | ||||
-rw-r--r-- | src/lread.c | 56 | ||||
-rw-r--r-- | src/mac.c | 35 | ||||
-rw-r--r-- | src/macfns.c | 4 | ||||
-rw-r--r-- | src/xdisp.c | 2 |
9 files changed, 101 insertions, 51 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index a7c0dfdb8f..170838bef4 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,37 @@ +2005-04-09 Kim F. Storm <[email protected]> + + * lread.c (readevalloop): Add args START and END as region in + current buffer to read. Callers changed. + When specified, narrow to this region only when reading, + not during eval. Track next point to read from during eval. + Also restore point to "real" buffer position before eval. + (Feval_region): Don't save excursion and restriction here, and + don't narrow to region. Just pass region to readevalloop. + Note: Point is now preserved even when PRINTFLAG is nil. + +2005-04-08 Kim F. Storm <[email protected]> + + * xdisp.c (syms_of_xdisp): Init overlay-arrow-string to "=>". + +2005-04-06 Kim F. Storm <[email protected]> + + * emacs.c (standard_args): Add -Q, --bare-bones, -bare-bones. + +2005-04-06 YAMAMOTO Mitsuharu <[email protected]> + + * mac.c (cfdate_to_lisp): Add `const' for variable `epoch_gdate'. + (Fmac_get_preference): Doc fix. + + * macfns.c (Fx_create_frame, x_create_tip_frame): Add + "fontset-mac" to fallback font/fontsets. + +2005-04-04 Kim F. Storm <[email protected]> + + * alloc.c (Fgarbage_collect): Call CHECK_CONS_LIST before and after gc. + + * eval.c (Ffuncall): Always call CHECK_CONS_LIST on entry. + Call it again after autoload. + 2005-04-02 Jan Dj,Ad(Brv <[email protected]> * alloc.c (allocate_string_data): Call BLOCK_INPUT before calling @@ -2853,7 +2887,7 @@ * xfns.c (xic_create_xfontset): Initialize missing_list to NULL. -2004-10-21 K,Aa(Broly L$,1 q(Brentey <[email protected]> +2004-10-21 K,Ba(Broly L,Bu(Brentey <[email protected]> * xterm.h (x_output): New member `xic_base_fontname'. (FRAME_XIC_BASE_FONTNAME): New macro. @@ -4134,7 +4168,7 @@ * keyboard.c (cmd_error): Don't call any_kboard_state if inside a recursive edit level. -2004-06-13 Lorentey K,Aa(Broly <[email protected]> +2004-06-13 K,Ba(Broly L,Bu(Brentey <[email protected]> * keyboard.c (command_loop): Call any_kboard_state before command_loop_2 when at top level. diff --git a/src/ChangeLog.6 b/src/ChangeLog.6 index 52e48cac27..2da83619eb 100644 --- a/src/ChangeLog.6 +++ b/src/ChangeLog.6 @@ -1079,7 +1079,7 @@ scroll_bar_up_arrow, scroll_bar_down_arrow. (win32_scroll_bar_click): New enum constant. -1996-05-03 Andrw Innes <[email protected]> +1996-05-03 Andrew Innes <[email protected]> * makefile.nt (SUBSYSTEM) [NTGUI]: Remove conditional. (LINK_FLAGS): Explicitly set base address, and stack and heap sizes. @@ -4817,7 +4817,7 @@ (Fmemory_use_counts): New function. (syms_of_alloc): defsubr it. -1995-07-28 Gvran Uddeborg <[email protected]> +1995-07-28 Göran Uddeborg <[email protected]> * s/isc4-1.h: ISC 4.1 has termios. diff --git a/src/alloc.c b/src/alloc.c index aee09c3f16..1aa07b01da 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -4644,6 +4644,8 @@ returns nil, because real GC can't be done. */) if (pure_bytes_used_before_overflow) return Qnil; + CHECK_CONS_LIST (); + /* Don't keep undo information around forever. Do this early on, so it is no problem if the user quits. */ { @@ -4837,6 +4839,8 @@ returns nil, because real GC can't be done. */) UNBLOCK_INPUT; + CHECK_CONS_LIST (); + /* clear_marks (); */ gc_in_progress = 0; diff --git a/src/emacs.c b/src/emacs.c index feac88d71a..1ddde867d0 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -1814,6 +1814,8 @@ struct standard_args standard_args[] = { "-d", "--display", 60, 1 }, { "-display", 0, 60, 1 }, /* Now for the options handled in startup.el. */ + { "-Q", "--bare-bones", 55, 0 }, + { "-bare-bones", 0, 55, 0 }, { "-q", "--no-init-file", 50, 0 }, { "-no-init-file", 0, 50, 0 }, { "-no-site-file", "--no-site-file", 40, 0 }, diff --git a/src/eval.c b/src/eval.c index bf4fec4f8a..8700ca222c 100644 --- a/src/eval.c +++ b/src/eval.c @@ -2742,6 +2742,8 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */) if (debug_on_next_call) do_debug_on_call (Qlambda); + CHECK_CONS_LIST (); + retry: fun = args[0]; @@ -2750,9 +2752,7 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */) if (SUBRP (fun)) { - CHECK_CONS_LIST (); - - if (numargs < XSUBR (fun)->min_args + if (numargs < XSUBR (fun)->min_args || (XSUBR (fun)->max_args >= 0 && XSUBR (fun)->max_args < numargs)) { XSETFASTINT (lisp_numargs, numargs); @@ -2844,6 +2844,7 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */) else if (EQ (funcar, Qautoload)) { do_autoload (fun, args[0]); + CHECK_CONS_LIST (); goto retry; } else diff --git a/src/lread.c b/src/lread.c index 709db3bf29..9b0b5b90ec 100644 --- a/src/lread.c +++ b/src/lread.c @@ -218,6 +218,7 @@ static int read_emacs_mule_char P_ ((int, int (*) (int, Lisp_Object), static void readevalloop P_ ((Lisp_Object, FILE*, Lisp_Object, Lisp_Object (*) (), int, + Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object)); static Lisp_Object load_unwind P_ ((Lisp_Object)); static Lisp_Object load_descriptor_unwind P_ ((Lisp_Object)); @@ -1097,14 +1098,15 @@ Return t if file exists. */) = Fcons (make_number (fileno (stream)), load_descriptor_list); load_in_progress++; if (! version || version >= 22) - readevalloop (Qget_file_char, stream, file, Feval, 0, Qnil, Qnil); + readevalloop (Qget_file_char, stream, file, Feval, + 0, Qnil, Qnil, Qnil, Qnil); else { /* We can't handle a file which was compiled with byte-compile-dynamic by older version of Emacs. */ specbind (Qload_force_doc_strings, Qt); - readevalloop (Qget_emacs_mule_file_char, stream, file, Feval, 0, - Qnil, Qnil); + readevalloop (Qget_emacs_mule_file_char, stream, file, Feval, + 0, Qnil, Qnil, Qnil, Qnil); } unbind_to (count, Qnil); @@ -1483,16 +1485,19 @@ end_of_file_error () /* UNIBYTE specifies how to set load_convert_to_unibyte for this invocation. - READFUN, if non-nil, is used instead of `read'. */ + READFUN, if non-nil, is used instead of `read'. + START, END is region in current buffer (from eval-region). */ static void -readevalloop (readcharfun, stream, sourcename, evalfun, printflag, unibyte, readfun) +readevalloop (readcharfun, stream, sourcename, evalfun, + printflag, unibyte, readfun, start, end) Lisp_Object readcharfun; FILE *stream; Lisp_Object sourcename; Lisp_Object (*evalfun) (); int printflag; Lisp_Object unibyte, readfun; + Lisp_Object start, end; { register int c; register Lisp_Object val; @@ -1518,28 +1523,41 @@ readevalloop (readcharfun, stream, sourcename, evalfun, printflag, unibyte, read continue_reading_p = 1; while (continue_reading_p) { + int count1 = SPECPDL_INDEX (); + if (b != 0 && NILP (b->name)) error ("Reading from killed buffer"); + if (!NILP (start)) + { + record_unwind_protect (save_excursion_restore, save_excursion_save ()); + record_unwind_protect (save_restriction_restore, save_restriction_save ()); + Fgoto_char (start); + Fnarrow_to_region (make_number (BEGV), end); + } + instream = stream; + read_next: c = READCHAR; if (c == ';') { while ((c = READCHAR) != '\n' && c != -1); - continue; + goto read_next; + } + if (c < 0) + { + unbind_to (count1, Qnil); + break; } - if (c < 0) break; /* Ignore whitespace here, so we can detect eof. */ if (c == ' ' || c == '\t' || c == '\n' || c == '\f' || c == '\r') - continue; + goto read_next; if (!NILP (Vpurify_flag) && c == '(') { - int count1 = SPECPDL_INDEX (); record_unwind_protect (unreadpure, Qnil); val = read_list (-1, readcharfun); - unbind_to (count1, Qnil); } else { @@ -1565,6 +1583,10 @@ readevalloop (readcharfun, stream, sourcename, evalfun, printflag, unibyte, read val = read_internal_start (readcharfun, Qnil, Qnil); } + if (!NILP (start) && continue_reading_p) + start = Fpoint_marker (); + unbind_to (count1, Qnil); + val = (*evalfun) (val); if (printflag) @@ -1623,7 +1645,8 @@ This function preserves the position of point. */) specbind (Qstandard_output, tem); record_unwind_protect (save_excursion_restore, save_excursion_save ()); BUF_SET_PT (XBUFFER (buf), BUF_BEGV (XBUFFER (buf))); - readevalloop (buf, 0, filename, Feval, !NILP (printflag), unibyte, Qnil); + readevalloop (buf, 0, filename, Feval, + !NILP (printflag), unibyte, Qnil, Qnil, Qnil); unbind_to (count, Qnil); return Qnil; @@ -1655,15 +1678,10 @@ This function does not move point. */) tem = printflag; specbind (Qstandard_output, tem); - if (NILP (printflag)) - record_unwind_protect (save_excursion_restore, save_excursion_save ()); - record_unwind_protect (save_restriction_restore, save_restriction_save ()); - - /* This both uses start and checks its type. */ - Fgoto_char (start); - Fnarrow_to_region (make_number (BEGV), end); + /* readevalloop calls functions which check the type of start and end. */ readevalloop (cbuf, 0, XBUFFER (cbuf)->filename, Feval, - !NILP (printflag), Qnil, read_function); + !NILP (printflag), Qnil, read_function, + start, end); return unbind_to (count, Qnil); } @@ -364,13 +364,13 @@ cfnumber_to_lisp (number) /* CFDate to a list of three integers as in a return value of - `current-time'xo. */ + `current-time'. */ Lisp_Object cfdate_to_lisp (date) CFDateRef date; { - static CFGregorianDate epoch_gdate = {1970, 1, 1, 0, 0, 0.0}; + static const CFGregorianDate epoch_gdate = {1970, 1, 1, 0, 0, 0.0}; static CFAbsoluteTime epoch = 0.0, sec; int high, low; @@ -668,7 +668,7 @@ parse_resource_name (p) return Qnil; result = Fcons (component, result); - while (binding = parse_binding (p)) + while ((binding = parse_binding (p)) != '\0') { if (binding == '*') result = Fcons (LOOSE_BINDING, result); @@ -3662,7 +3662,7 @@ corresponding Lisp object as follows: CFDate List of three integers date (cf. `current-time') CFData Unibyte string data - CFArray Array array + CFArray Vector array CFDictionary Alist or hash table dictionary (depending on HASH-BOUND) @@ -4174,26 +4174,13 @@ syms_of_mac () staticpro (&QCLIPBOARD); #if TARGET_API_MAC_CARBON - Qstring = intern ("string"); - staticpro (&Qstring); - - Qnumber = intern ("number"); - staticpro (&Qnumber); - - Qboolean = intern ("boolean"); - staticpro (&Qboolean); - - Qdate = intern ("date"); - staticpro (&Qdate); - - Qdata = intern ("data"); - staticpro (&Qdata); - - Qarray = intern ("array"); - staticpro (&Qarray); - - Qdictionary = intern ("dictionary"); - staticpro (&Qdictionary); + Qstring = intern ("string"); staticpro (&Qstring); + Qnumber = intern ("number"); staticpro (&Qnumber); + Qboolean = intern ("boolean"); staticpro (&Qboolean); + Qdate = intern ("date"); staticpro (&Qdate); + Qdata = intern ("data"); staticpro (&Qdata); + Qarray = intern ("array"); staticpro (&Qarray); + Qdictionary = intern ("dictionary"); staticpro (&Qdictionary); Qxml = intern ("xml"); staticpro (&Qxml); diff --git a/src/macfns.c b/src/macfns.c index fa37a1b298..78365ce3c0 100644 --- a/src/macfns.c +++ b/src/macfns.c @@ -2632,6 +2632,8 @@ This function is an internal primitive--use `make-frame' instead. */) font = x_new_font (f, "-ETL-fixed-medium-r-*--*-160-*-*-*-*-iso8859-1"); /* If those didn't work, look for something which will at least work. */ if (! STRINGP (font)) + font = x_new_fontset (f, "fontset-mac"); + if (! STRINGP (font)) font = x_new_font (f, "-*-monaco-*-12-*-mac-roman"); if (! STRINGP (font)) font = x_new_font (f, "-*-courier-*-10-*-mac-roman"); @@ -3732,6 +3734,8 @@ x_create_tip_frame (dpyinfo, parms, text) font = x_new_font (f, "-ETL-fixed-medium-r-*--*-160-*-*-*-*-iso8859-1"); /* If those didn't work, look for something which will at least work. */ if (! STRINGP (font)) + font = x_new_fontset (f, "fontset-mac"); + if (! STRINGP (font)) font = x_new_font (f, "-*-monaco-*-12-*-mac-roman"); if (! STRINGP (font)) font = x_new_font (f, "-*-courier-*-10-*-mac-roman"); diff --git a/src/xdisp.c b/src/xdisp.c index 9fe8ac9a0e..13ef9b00ab 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -22757,7 +22757,7 @@ See also `overlay-arrow-string'. */); DEFVAR_LISP ("overlay-arrow-string", &Voverlay_arrow_string, doc: /* String to display as an arrow in non-window frames. See also `overlay-arrow-position'. */); - Voverlay_arrow_string = Qnil; + Voverlay_arrow_string = build_string ("=>"); DEFVAR_LISP ("overlay-arrow-variable-list", &Voverlay_arrow_variable_list, doc: /* List of variables (symbols) which hold markers for overlay arrows. |