(hashfn_eq, hashfn_eql): Don't handle strings specially
[bpt/emacs.git] / src / ChangeLog
CommitLineData
6e264fad
KH
12000-08-11 Kenichi Handa <handa@etl.go.jp>
2
3 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
4 the multibyte form of eight-bit-control characters.
5 (Fccl_execute_on_string): Initialize ccl->multibyte.
6
7 * ccl.h (struct ccl_program): New member multibyte.
8
9 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
10
c371f69a
KH
112000-08-11 Kenichi Handa <handa@etl.go.jp>
12
13 * regex.c (regex_compile) <normal_char>: Pay attention to
14 multibyteness.
15 (analyse_first) <exactn>: Setup fastmap correctly for
16 eight-bit-control characters.
17
182000-08-11 Kenichi Handa <handa@etl.go.jp>
19
20 * termhooks.h (enum event_kind): New member
21 multibyte_char_keystroke.
22
23 * keyboard.c (make_lispy_event): Handle the new event type
24 multibyte_char_keystroke.
25
26 * xterm.c: Include coding.h.
27 (XTread_socket): Work around a bug of XmbLookupString. If the
28 input is from XIM, decode it according to the current locale. In
29 that case, generate multibyte_char_keystroke events.
30
b8ddbe71
KH
312000-08-11 Kenichi Handa <handa@etl.go.jp>
32
33 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
34 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
35
47589c8c
GM
362000-08-10 Gerd Moellmann <gerd@gnu.org>
37
38 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
39 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
40 (move_it_in_display_line_to): Record iterator's ascent and descent
41 before producing glyphs, and restore them when we know the glyph
42 doesn't fit on the line.
43 (move_it_to): Restructured so that it's easier to debug. If
44 moving to a vpos, and not moving to an x or character position,
45 stop as soon as the specified vpos is reached; don't move further
46 into that line because that might change the computed line height.
47 (try_cursor_movement): New function, extracted from the cursor
48 movement branch of redisplay_window. If ending on a partially
49 visible line, don't try to scroll if the cursor line is taller
50 than the window.
51 (redisplay_window): Use try_cursor_movement.
52
53 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
54 because that function doesn't cope with variable-height lines.
55
56 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
57 box cursor because that's better visible for large images.
58
c51bacd6
MB
592000-08-10 Miles Bader <miles@gnu.org>
60
61 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
62
bea56df7
GM
632000-08-10 Gerd Moellmann <gerd@gnu.org>
64
65 * xdisp.c (Vmessages_buffer_name): New variable.
66 (message_dolog): Use it.
67 (syms_of_xdisp): Initialize it.
68
99cd7364
EZ
692000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
70
71 * msdos.c (IT_note_mouse_highlight): Update the calls to
72 overlays_at.
73 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
74 redundant now that keyboard.h is included.
75
7d093d56
EZ
762000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
77
78 * keyboard.c (kbd_buffer_events_waiting): New function.
79
80 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
81
82 * msdos.c: Include keyboard.h.
83 (XMenuActivate): Empty no_event events from the event buffer. If
84 no events are left after that, call clear_input_pending.
85 (mouse_clear_clicks): New function, code moved from mouse_init.
86 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
87 mouse driver to ``forget'' any past clicks.
88
89 * Makefile.in (msdos.o): Depend on keyboard.h.
90
41e757a6
GM
912000-08-09 Gerd Moellmann <gerd@gnu.org>
92
8e7bd231
GM
93 * lisp.h (input_pending): External declaration.
94
95 * dispextern.h (Qredisplay_dont_pause): Declare extern.
96
97 * xdisp.c (echo_area_display): Display thoroughly if input is
98 pending. Bind redisplay-dont-pause to t during the redisplay.
99 in case input is pending.
100
101 * dispnew.c (Qredisplay_dont_pause): New variable.
102 (syms_of_display): Initialize and staticpro it.
103 (update_frame_1): Don't interrupt the display for pending input if
104 redisplay_dont_pause is set.
105
43028b7e
GM
106 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
107
41e757a6
GM
108 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
109
2f2174fa
KH
1102000-08-09 Miles Bader <miles@lsi.nec.co.jp>
111
112 * callproc.c (Fcall_process): Terminate the unwind-protect around
113 the post-read-conversion of coding system.
114
0a6fd67e
MB
115 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
116 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
117 * buffer.h (overlays_at): Update prototype.
118 * xdisp.c (next_overlay_change): Update call to overlays_at.
119 * xfaces.c (face_at_buffer_position): Likewise.
120 * textprop.c (Fget_char_property): Likewise.
121 * xterm.c (note_mouse_highlight): Likewise.
122
0c80756e
MB
123 * minibuf.c (do_completion): Don't consider a simple change of
124 case as `completion'.
125
975f250a
KR
1262000-08-08 Ken Raeburn <raeburn@gnu.org>
127
b347b3fd
KR
128 * keyboard.c (syms_of_keyboard): Initialize
129 last_point_position_buffer.
130 * undo.c (record_delete): Make sure last_point_position_buffer is
131 a buffer before comparing pointers.
132
133 * coding.h (decode_coding_string): Declare.
134
135 * intervals.h (Fprevious_single_char_property_change): Declare.
136
137 * textprop.c (Fprevious_single_char_property_change): Don't do
138 arithmetic directly on lisp objects.
139
25ad1371 140 * editfns.c (find_field): Use EQ, not ==, to compare Lisp
b347b3fd
KR
141 objects.
142
143 * keyboard.h (menu_item_eval_property): Declare.
144
145 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
146 reuse as buffer name, instead of recreating (and discarding) every
147 time a message is logged.
148 (with_echo_area_buffer): Make callback arg A2 a lisp object.
25ad1371
GM
149 (current_message_1, truncate_message_1, set_message_1)
150 (display_echo_area_1, resize_mini_window_1): Signatures changed.
151 (current_message, truncate_echo_area, display_echo_area)
152 (resize_echo_area_axactly): Changed calls.
b347b3fd 153
975f250a 154 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
25ad1371 155 Lisp object.
975f250a 156 (Ffind_coding_systems_region_internal): First argument to Fappend
25ad1371 157 must be an integer, not a Lisp object.
975f250a 158
46dc9912
KH
1592000-08-08 Kenichi Handa <handa@etl.go.jp>
160
161 * charset.c (Fchar_width): Doc fix.
162
9f6d1a6c
GM
1632000-08-08 Gerd Moellmann <gerd@gnu.org>
164
165 * charset.c (Fstring_width): Doc fix.
166
ff3d9573
GM
1672000-08-07 Gerd Moellmann <gerd@gnu.org>
168
41e757a6 169 * xdisp.c (start_display): When starting display on a continuation
49ad1d99
GM
170 line, clear ascent and descent members of the iterator structure;
171 the height of the continued line does not affect the height of the
172 continuation line.
173 (make_cursor_line_fully_visible): Do nothing if cursor is on a
174 line taller than the window.
175 (redisplay_window) <forced window start>: Handle case that the
176 middle of the window is not found in any row.
177 (dump_glyph_row): Show more information.
178 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
179 first text line in a glyph matrix.
180
181 * xterm.c (x_draw_image_foreground): Avoid drawing outside
182 of the clip area when image doesn't have a mask.
183
70fc58b3
GM
184 * fns.c (sweep_weak_table): Fix survival conditions for
185 key-or-value and key-and-value weakness.
186
187 * .gdbinit (xhashtable): New command.
188
ac0e96ee
GM
189 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
190 tables out of the list of all weak hash tables.
191
ff3d9573
GM
192 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
193 a new buffer is created, make sure echo_area_buffer[] references
194 the new buffer.
195
e0d8827b
EZ
1962000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
197
198 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
199 the doc string.
200
c6f35378
KH
2012000-08-07 Kenichi Handa <handa@etl.go.jp>
202
203 * syntax.c (skip_chars): Fix previous change. Make the handling
204 of unibyte string consistent with that of regex search.
205
1fd4c450
GM
2062000-08-05 Gerd Moellmann <gerd@gnu.org>
207
e49aa397
GM
208 * xmenu.c (popup_get_selection): Use xfree instead of free.
209
210 * fileio.c (Finsert_file_contents): Use xfree instead of free.
211
212 * editfns.c (Ftranspose_regions): Use xfree instead of free.
213
214 * callproc.c (child_setup): Use xfree instead of free.
215
216 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
217 instead of malloc.
218 (run_mac_command, closedir): Use `xfree' instead of `free'.
219
220 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
221
222 * eval.c (error): Use xfree instead of free.
223
1fd4c450
GM
224 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
225
226 * fns.c: Replace `illegal' with `invalid'.
e49aa397 227 (Fmake_hash_table, make_hash_table): Allow table size of 0.
1fd4c450 228
82d497fc
KH
2292000-08-05 Kenichi Handa <handa@etl.go.jp>
230
231 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
232 conversion.
233
59f953a2
NF
2342000-08-04 Noah Friedman <friedman@splode.com>
235
236 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
237 docstring.
238
688351f2
GM
2392000-08-04 Gerd Moellmann <gerd@gnu.org>
240
241 * syntax.c (skip_chars): Fix typo in error message.
242
2dad51cc
AS
2432000-08-04 Andreas Schwab <schwab@suse.de>
244
245 * m/ia64.h: Moved from s/ia64.h.
246
99bb2c60
KH
2472000-08-04 Kenichi Handa <handa@etl.go.jp>
248
082a1df2
KH
249 * process.c (read_process_output): Big simplification. Handle
250 composition and post-read-conversion of coding system correctly.
251 (send_process): Handle composition correctly.
252
253 * callproc.c (Fcall_process): Handle post-read-conversion of
254 coding system if any.
255
99bb2c60
KH
256 * coding.c (decode_coding_iso2022): More strict check for handling
257 single shifting.
082a1df2
KH
258 (coding_restore_composition): Pay attention to the case that
259 cmp_data is not set properly (because of invalid code in the
260 source text).
261 (run_pre_post_conversion_on_str): Include text properties in the
262 resulting string.
263 (decode_coding_string): Set members of coding correctly.
99bb2c60 264
f4988be7
GM
2652000-08-03 Gerd Moellmann <gerd@gnu.org>
266
267 * s/ia64.h: New file.
268
269 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
270 Use NULL instead of 0 at the end of variable argument list of
271 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
272 sizeof (int) < sizeof (void *).
273
274 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
275 of variable argument lists of XtVaGetValues and XtVaSetValues.
276
277 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
278 variable argument lists of XtVaGetValues and XtVaSetValues.
279
ead53494
GM
2802000-08-02 Gerd Moellmann <gerd@gnu.org>
281
282 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
283 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
284
285 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
286 prototype.
287
288 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
289 in call to Fsingle_key_description.
290
291 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
292 Callers changed.
293
2942000-08-02 Colin Walters <walters@cis.ohio-state.edu>
295
296 * window.c (display_buffer_reuse_frames): New variable.
297 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
298 frames displaying BUFFER.
299 (syms_of_window): Define Lisp variable
300 display-buffer-reuse-frames.
301
10b0f752
MB
3022000-08-01 Miles Bader <miles@gnu.org>
303
304 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
305 when to constrain NEW_POS (they were pretty screwed up before).
306
16425c4a
EZ
3072000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
308
309 * msdos.c (run_msdos_command): Save and restore the master
310 environment, for the case that child_setup signals an error.
311 When mirroring slashes in DOS shell commands, don't fail when
312 argv[2] has embedded blanks.
da288c14
EZ
313 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
314 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
315 (dos_ttraw): Call mouse_setup_buttons.
16425c4a
EZ
316
317 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
318 using alloca; free it after run_msdos_command returns.
319
27f73852
DL
3202000-07-27 Dave Love <fx@gnu.org>
321
322 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't
323 define.
324 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently
325 working.
326
327 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
328
c0261b5e
EZ
3292000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
330
331 * editfns.c (lisp_time_argument): Fix last change.
332
b548072f
GM
3332000-07-27 Gerd Moellmann <gerd@gnu.org>
334
3ab82477
GM
335 * fns.c (Fdelete): Make it work on vectors and strings in addition
336 to lists.
337
b548072f
GM
338 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
339 (syms_of_fns): Initialize new variables.
340 (sweep_weak_table): Handle weakness `key-or-value' and
341 `key-and-value'.
342 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
343 weakness, with t meaning the same as `key-and-value'.
344
91ae8751
KH
3452000-07-27 Kenichi Handa <handa@etl.go.jp>
346
347 * coding.h (struct coding_system): Member safe_charset deleted.
348
349 * coding.c (Qsafe_charsets): This variable deleted.
350 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system): New
351 variables.
352 (coding_safe_chars): New function.
353 (CODING_SAFE_CHAR_P): New macro.
354 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
355 checking safe_charsets member of the coding system. Caller
356 changed.
357 (detect_coding_iso2022): New local variable safe_chars.
358 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
359 safe_charsets member of the coding system.
360 (decode_coding_iso2022): New local variable safe_chars.
361 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
362 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
363 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
364 (ENCODE_UNSAFE_CHARACTER): New macro.
365 (encode_coding_iso2022): New local variable safe_chars. Check
366 unsafe chars.
367 (setup_coding_system): Delete the code to initialize
368 coding->safe_charses
369 (intersection, find_safe_codings): New functions.
370 (Ffind_coding_systems_region_internal): New function.
371 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
372 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
373 variable and initialize it.
374
375 * fns.c (char_table_ref_and_index): New function.
376
377 * lisp.h (char_table_ref_and_index): Add prototype.
378
34a7a267
SS
3792000-07-26 Sam Steingold <sds@gnu.org>
380
381 * editfns.c (lisp_time_argument): Added third argument `usec'.
3ab82477 382 (Ffloat_time): New built-in Lisp function.
34a7a267 383
a95cb10a
GM
3842000-07-26 Gerd Moellmann <gerd@gnu.org>
385
3353ef5a
GM
386 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
387 for the character code.
388
389 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
390 GNU/Linux.
391
a95cb10a
GM
392 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
393 if called for a popup menu.
394 (xmenu_show): Store help string in widget values.
395
b4a12321
DL
3962000-07-26 Dave Love <fx@gnu.org>
397
398 * syswait.h: Move some definitions.
399 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
400 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
401 perspicuous definitions.
402 (WTERMSIG): Fix bit pattern used.
403
13f5ad37
KH
4042000-07-26 Kenichi Handa <handa@etl.go.jp>
405
406 * print.c (print_object): If vector printing is truncated, print
407 "..." to indicate it as well as the case of list printing.
408
070fe99c
GM
4092000-07-25 Gerd Moellmann <gerd@gnu.org>
410
969065c3
GM
411 * xdisp.c (next_element_from_display_vector): Improve comments.
412
413 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
414 for the character code, and the rest for the face id as in 20.x.
415 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
416
417 * window.c (window_display_table): Cleaned up.
418
070fe99c
GM
419 * syntax.c (Fforward_word): Add last arg nil in call of
420 Fconstrain_to_field.
421
bad77ef7
EZ
4222000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
423
969065c3 424 * fileio.c (Frename_file) [DOS_NT]: If the file names are
bad77ef7
EZ
425 identical but for the letter-case, don't call
426 barf_or_query_if_file_exists.
427
c28da489
MB
4282000-07-25 Miles Bader <miles@gnu.org>
429
430 * editfns.c (find_field): Honor special `boundary' fields.
431 (Qboundary): New variables.
432 (syms_of_editfns): Initialize Qboundary.
433 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
434 Use scan_buffer instead of find_before_next_newline, because it
435 allows us to detect the boundary case where there's a newline at
436 the search limit.
437 * lisp.h (Fconstrain_to_field): Update external declaration.
438
e3c31fd5
GM
4392000-07-24 Gerd Moellmann <gerd@gnu.org>
440
441 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
442 if that is nil.
c28da489 443
c66c29a2
DL
4442000-07-24 Dave Love <fx@gnu.org>
445
446 * s/sunos4-0.h, s/sol2.h:
447 (LIBS_TERMCAP): Move from m/sparc.h.
448
449 * m/sparc.h (TERMINFO): Moved to system files (probably only
450 relevant for sunos4 judging by its vintage).
451 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
452 __arch64__.
453
fbe0a958
EZ
4542000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
455
456 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
457 name to single_keymap_panes.
458
7d88e5c9
AS
4592000-07-24 Andreas Schwab <schwab@suse.de>
460
461 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
462
e024b101
GM
4632000-07-24 Gerd Moellmann <gerd@gnu.org>
464
465 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
466 parameters instead of using int parameters. Expect FN to accept
467 EMACS_INT parameters.
468 (display_echo_area, resize_echo_area_axactly, current_message)
469 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
470 with new argument list.
471 (resize_mini_window_1): New callback function.
472 (current_message_1, truncate_message_1, set_message_1): Change
473 parameter lists to the new format expected by
474 with_echo_area_buffer.
475
25c1a9ce
KH
4762000-07-24 Kenichi Handa <handa@etl.go.jp>
477
478 * fontset.c (fontset_ref): Remove INLINE declaration.
479 (fontset_ref_via_base): Likewise.
480 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
481 to downcase.
482
7f987ac0
EZ
4832000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
484
485 * msdos.c (IT_note_mouse_highlight): Process overlays in the
486 correct order of priority. If help echo was found in an overlay,
487 use that overlay as the object in which the help echo was found.
488
e2db3069
MB
4892000-07-22 Miles Bader <miles@gnu.org>
490
491 * textprop.c (Fprevious_single_char_property_change): The initial
492 property value should be from the position preceding POSITION, not
493 following it.
494
5e3203e4
EZ
4952000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
496
497 * coding.c (syms_of_coding): Doc fix for
498 inhibit-iso-escape-detection.
499
62145073
GM
5002000-07-21 Gerd Moellmann <gerd@gnu.org>
501
c20aeb83
GM
502 * xterm.c (note_mouse_highlight): Process overlays in the right
503 order of priority.
34a7a267 504
743934db
GM
505 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
506
507 * xterm.c (note_mouse_highlight): If help-echo was found in an
508 overlay, use that overlay as the object in which the help was
509 found.
510
d1dc7e43 511 * window.c (foreach_window_1): Fix typo reversing an if-condition.
34a7a267 512
62145073
GM
513 * window.c (foreach_window): Instead of a fake variable argument
514 list, take one USER_DATA argument.
515 (foreach_window_1): Likewise, and call callback functions with two
516 args, the window and USER_DATA.
517 (struct check_window_data): New struct.
518 (check_window_containing): Use it.
519 (window_from_coordinates): Set up a struct check_window_data for
520 foreach_window.
521 (add_window_to_list, freeze_window_start): Change parameters
522 according to new calling convention.
523
524 * window.h (foreach_window): Change prototype.
525
526 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
527
5282000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
529
530 * xmenu.c (menu_help_callback): Call show_help_echo with
531 additional arguments OBJECT and POS.
532
11270583
KH
5332000-07-21 Kenichi Handa <handa@etl.go.jp>
534
07b14857
KH
535 * data.c (Faset): Allow storing any multibyte character in a
536 string. Convert unibyte string to multibyte if necessary.
537
11270583
KH
538 * xfns.c (x_encode_text): New function.
539 (x_set_name): Use x_encode_text.
540 (x_set_title): Likewise.
541
542 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
543
544 * xterm.h (x_encode_text): Add prototype.
545
bc75b4fd
DL
5462000-07-20 Dave Love <fx@gnu.org>
547
548 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
549 xfree, not free.
550
48c14970
EZ
5512000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
552
553 * msdos.c (help_echo_window): New variable.
554 (syms_of_msdos): Initialize and staticpro it.
555 (IT_note_mode_line_highlight): Set help_echo_window.
556 (IT_note_mouse_highlight): Ditto.
557 (dos_rawgetc): Store help_echo_window in the second event produced
558 for HELP_EVENTs.
559
560 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
561 Record the object that generated the help echo and the position of
562 that object in help_echo_object and help_echo_pos. Record that
563 some glyphs in a row are displayed in mouse-face.
564 (IT_update_begin): Don't clear mouse highlight unless one of the
565 enabled glyph rows is marked as being displayed in mouse-face.
566 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
567 and position recorded in help_echo_object and help_echo_pos to the
568 event queue.
569 (IT_menu_display): Accept a new argument PN: the pane number of
570 the current menu pane. Record the pane number and the item
571 number of the item which has associated help string.
572 (XMenuActivate): Update the prototype for help_callback in
573 function declaration. Call IT_menu_display with the current menu
574 pane number as an additional argument. Call help_callback with
575 two additional arguments: the pane number and the item number of
576 the menu item associated with the help text.
577 (help_echo_object, help_echo_pos): New variables.
578 (syms_of_msdos): Initialize them and staticpro help_echo_object.
579
580 * msdos.h (XMenuActivate): Update prototype.
581
4279296d
GM
5822000-07-19 Gerd Moellmann <gerd@gnu.org>
583
47db06aa
GM
584 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
585 Add some more prototypes.
586
587 * xterm.c, xterm.h: Add some more prototypes.
588
589 * lisp.h (Fnext_single_char_property_change): Add prototype.
590
591 * dispnew.c (direct_output_for_insert): Remove confusing
592 outer local variable mouse_face_overwritten_p.
593 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
594
4279296d
GM
595 * alloc.c (allocate_string_data): Don't copy old string contents.
596
670acd62
KH
5972000-07-19 Kenichi Handa <handa@etl.go.jp>
598
599 * coding.c (code_convert_region): Delete text properties before
600 shrinking the conversion region.
601
7cea38bc
GM
6022000-07-18 Gerd Moellmann <gerd@gnu.org>
603
dc1cac59
GM
604 * dispnew.c (update_text_area): Write the whole row if it
605 has mouse-face in it.
606
85a8aca9
GM
607 * xfaces.c (face-alternative-font-family-alist): Remove
608 DEFVAR_LISP; staticpro instead.
609
34a7a267 610 * xmenu.c (menu_help_callback): Call show_help_echo with
7cea38bc
GM
611 new arguments.
612
613 * keyboard.c (show_help_echo): Add parameter WINDOW.
614 (read_char): Call show_help_echo with window extracted from Lisp
615 help event.
616 (gen_help_event): Add parameter WINDOW.
617
618 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
619
620 * xterm.c (help_echo_window): New variable.
621 (note_mouse_highlight, note_tool_bar_highlight): Set
622 help_echo_window.
623 (XTread_socket): Pass help_echo_window to gen_help_event.
624 (syms_of_xterm): Initialize and staticpro help_echo_window.
625
f8276b77
DL
6262000-07-18 Dave Love <fx@gnu.org>
627
628 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
629 systime.h.
630
088831a6
GM
6312000-07-18 Gerd Moellmann <gerd@gnu.org>
632
3d6cd763
GM
633 * alloc.c (allocate_string_data): If string had already data
634 assigned, copy old contents to new string data.
635
636 * coding.c (syms_of_coding): Fix typo in spelling of variable
637 `inhibit-iso-escape-detection'.
638
088831a6
GM
639 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
640
641 * Makefile.in: Add dependencies on dispextern.h.
642 (alloca.o): Don't define malloc and define EMACS_FREE instead of
643 `free'; both can conflict with system header files.
644
bc8a8d55
KH
6452000-07-18 Kenichi Handa <handa@etl.go.jp>
646
647 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
648 undefined.
649
069f5950
DL
6502000-07-18 Dave Love <fx@gnu.org>
651
652 * window.c (Fwindow_list): Declare arg `window'.
653
aa96c820
KH
6542000-07-18 Kenichi Handa <handa@etl.go.jp>
655
656 * coding.c (setup_coding_system): Don't override the explicitly
657 specified designations.
658
06be8d32
MB
6592000-07-15 Miles Bader <miles@gnu.org>
660
661 * editfns.c (char_property_eq, char_property_stickiness): Renamed
662 from `text_property_eq' and `text_property_stickiness', respectively.
663 (find_field, Fconstrain_to_field, char_property_eq)
664 (char_property_stickiness): Changed to call char-property functions
665 instead of text-property-only ones.
666
667 * textprop.c (Fnext_single_char_property_change): Made a subr (was
668 `next_single_char_property_change'). Do more error checking, and
669 cleanup limit behavior.
670 (Fprevious_single_char_property_change): New function.
671 (syms_of_textprop): Initialize new subrs.
672
673 * xdisp.c (display_prop_end, invisible_text_between_p):
674 Call Fnext_single_char_property_change instead of
675 next_single_char_property_change.
676
3fddcdc3
JR
6772000-07-15 Jason Rumney <jasonr@gnu.org>
678
679 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
680 after menu is finished with.
681 (add_menu_item): Only consider wv->title as a menu title.
682 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
683
684 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
685 null title.
686 (FONT_REGEXP): Remove unused macro, and its sub-components.
687 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
688
689 * w32term.c (help_echo_object, help_echo_pos): New variables.
690 (note_mode_line_highlight): Store additional information about the
691 help-echo in help_echo_object and help_echo_pos. Check both
692 `local-map' and `keymap' properties for changing the cursor
693 (note_mouse_highlight): Store additional information about the
694 help-echo in help_echo_object and help_echo_pos.
695 (note_tool_bar_highlight): Set help_echo_object to nil and
696 help_echo_pos to -1.
697 (w32_read_socket): Use gen_help_event instead of filling
698 input_events manually.
699 (syms_of_w32term): Staticpro help_echo_object.
700 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
701 set, arrange for a mouse-highlight redisplay in
702 XTframe_up_to_date.
703 (x_clear_mouse_face): New function.
704 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
705 (x_update_window_begin): No need to turn off the mouse
706 highlight here.
707 (show_mouse_face): Set the mouse_face_p flag of glyph rows
708 depending on whether they contain glyphs highlighted in
709 mouse-face.
710 (x_fill_stretch_glyph_string): Consume runs of stretch
711 glyphs instead of a single one.
712 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
713 with new argument list.
714 (x_set_glyph_string_gc): Make sure the face's GC is valid.
715 (x_append_glyph, x_append_composite_glyph)
716 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
717 changes in struct glyph starting 1999-12-27. See comments for
718 xterm.c on 2000-07-05.
719
178c5d9c
SS
7202000-07-14 Sam Steingold <sds@gnu.org>
721
722 * xfaces.c (realize_x_face): Fix the last patch:
723 check `default_face' before dereferencing.
724
6fe533f6
DL
7252000-07-14 Dave Love <fx@gnu.org>
726
069f5950 727 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 728
dd7b81cf
KH
7292000-07-14 Kenichi Handa <handa@etl.go.jp>
730
0693904a 731 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 732 default_face's fontset, not using the default fontset.
0693904a 733
dd7b81cf
KH
734 * coding.c (inhibit_iso_escape_detection): New variable.
735 (syms_of_coding): Make it a Lisp variable.
736 (detect_coding_iso2022): If inhibit_iso_escape_detection is
737 nonzero, ignore ISO2022's escape sequence.
738
d5aa31d8
GM
7392000-07-14 Gerd Moellmann <gerd@gnu.org>
740
e5acf0ca
GM
741 * alloca.c (malloc) [emacs]: Define as xmalloc.
742
bd23a692
GM
743 * xfns.c (Fx_show_tip): If frame parameters contain a position,
744 use that instead of the mouse position. Add parameters DX and DY.
745
746 * dispextern.h (Fx_show_tip): Adjust number of parameters
747 in prototype.
748
9662da0b
GM
749 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
750 if HELP is a function, call it with OBJECT and POS as parameters
751 to get the help to display.
752 (gen_help_event, kbd_buffer_store_help_event): New functions.
753 (kbd_buffer_get_event): Construct the Lisp help-event differently.
754 (read_char): Call show_help_echo with new parameters.
755
178c5d9c 756 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
757 Add prototypes.
758
759 * xterm.c (help_echo_object, help_echo_pos): New variables.
760 (note_mode_line_highlight): Store additional information about the
761 help-echo in help_echo_object and help_echo_pos. Check both
762 `local-map' and `keymap' properties for changing the cursor
763 (note_mouse_highlight): Store additional information about the
764 help-echo in help_echo_object and help_echo_pos.
765 (note_tool_bar_highlight): Set help_echo_object to nil and
766 help_echo_pos to -1.
767 (XTread_socket): Use gen_help_event instead of filling
768 input_events manually.
769 (syms_of_xterm): Staticpro help_echo_object.
770
771 * xmenu.c (menu_highlight_callback): Use
772 kbd_buffer_store_help_event instead of setting up and input_event
773 structure manually.
774
775 * xdisp.c (eval_form): GCPRO argument sexpr.
776 (call_function): New function.
777 (handle_single_display_prop): Use call_function and FUNCTIONP
778 instead of checking whether if font_height is a symbol and
779 using eval_form.
780
781 * eval.c (internal_condition_case_2): New function.
782
783 * lisp.h (FUNCTIONP): New macro.
784 (internal_condition_case_2, call_function): Add prototypes.
785
d5aa31d8
GM
786 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
787 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
788 Always set `arg' member of input_events.
789 (construct_menu_click): Unused function removed.
790
791 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
792
793 * w32term.c (construct_mouse_click, construct_mouse_wheel)
794 (construct_drag_n_drop, x_scroll_bar_handle_click)
795 (w32_read_socket): Always set `arg' member of input_events.
796
797 * keyboard.c (show_help_echo): Use eval_form. Add comment.
798
799 * lisp.h (eval_form): Add prototype.
800
801 * xdisp.c (eval_form): Make it externally visible.
802
0f1a9b23
GM
8032000-07-13 Gerd Moellmann <gerd@gnu.org>
804
805 * xterm.c (x_handle_tool_bar_click): Store the frame in the
806 frame_or_window slot of TOOL_BAR_EVENT input events instead of
807 consing. For prefix events, store the frame in the `arg' slot of
808 the event, otherwise store the key there.
809 (XTread_socket): Instead of consing, use the frame_or_window slot
810 of HELP_EVENTs for the frame, and the `arg' slot for the help
811 string.
812
813 * xmenu.c (menu_highlight_callback): Store help string in the
814 `arg' member of the input event; don't cons.
815 (menubar_selection_callback): Use the `arg' slot of input events
816 to queue additional information, instead of consing.
817
818 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
819
820 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
821 TOOL_BAR_EVENTs.
822 (w32_read_socket): Adapt to changes in HELP_EVENTs.
823
824 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
825 input events to queue additional information, instead of consing.
826
827 * keyboard.c (kbd_buffer_gcpro): Renamed from
828 kbd_buffer_frame_or_window. Now used for all Lisp objects
829 referenced from the input queue.
830 (kbd_buffer_store_event): Always use structure assignment for
831 copying input events. Record all Lisp objects referenced from
832 events in kbd_buffer_gcpro.
833 (kbd_buffer_get_event): Construct Lisp `help-echo' events
834 differently from input events. Test for prefix menu_bar_events
835 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
836 event in kbd_buffer_gcpro to nil.
837 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
838 frame_or_window is equal to its arg member as prefix events.
839 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
840 used by an input event to nil.
841 (init_keyboard): Use two times the size of the input queue
842 for kbd_buffer_gcpro.
843 (syms_of_keyboard): Likewise.
844
845 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
846 USER_SIGNAL_EVENT.
847
848 * termhooks.h (struct input_event): Add member `arg'.
849 (MENU_BAR_EVENT): Renamed from menu_bar_event.
850 (USER_SIGNAL_EVENT): Renamed from user_signal.
851
852 * xfaces.c (ASET): Remove definition.
853
854 * lisp.h (AREF, ASET, ASIZE): New macros.
855
856 * fontset.c (AREF, ASIZE): Remove definitions.
857
858 * fns.c (AREF): Remove definition.
178c5d9c 859
0f1a9b23
GM
860 * composite.c (AREF): Remove definition.
861
712eaef2
GM
8622000-07-12 Gerd Moellmann <gerd@gnu.org>
863
d8ee7803
GM
864 * dispnew.c (redraw_overlapped_rows): Add missing local.
865 (scrolling_window): Remove debug code.
866
712eaef2
GM
867 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
868 Before scrolling, turn off a mouse-highlight in the window
869 being scrolled.
870
871 * xterm.c (x_update_window_end): Add parameter
872 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
873 redisplay in XTframe_up_to_date.
874 (x_clear_mouse_face): New function.
875 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
876
877 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
878 current glyph row.
879 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
880 it when any row is written to that contains glyphs highlighted in
881 mouse-face.
882 (update_window): Call the window update end hook with new
883 parameter MOUSE_FACE_OVERWRITTEN_P.
884 (direct_output_for_insert): Give up if row contains mouse-face.
885
886 * dispextern.h (struct redisplay_interface): Add parameter
887 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
888 (clear_mouse_face): New function pointer member.
889
02010917
SM
8902000-07-11 Stefan Monnier <monnier@cs.yale.edu>
891
892 * syntax.c (back_comment): Use one switch rather than a few `if's.
893 Obey open_paren_in_column_0_is_defun_start.
894 When reverting to the `slow' method, try to nicely handle the case
895 of nested comments by checking that the comment-starter we found
896 does indeed match the comment-ender.
897 (scan_sexps_forward, scan_sexps_forward):
898 Ignore excessive opening parenthesis rather than throwing an error.
899
d76c03ea
GM
9002000-07-11 Gerd Moellmann <gerd@gnu.org>
901
902 * doc.c (Fsubstitute_command_keys): Handle case that a GC
903 in Fwhere_is_internal or get_keymap_1 relocates string contents.
904
905 * dispnew.c (direct_output_forward_char): Give up if currently
906 displaying a message instead of the minibuffer contents.
907
908 * xterm.c (x_update_window_begin): No need to turn off the mouse
909 highlight here.
910 (show_mouse_face): Set the mouse_face_p flag of glyph rows
911 depending on whether they contain glyphs highlighted in
912 mouse-face.
913
914 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
915 compare the mouse_face_p flags of both rows.
916
917 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
918
d55ead18
EZ
9192000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
920
921 * keyboard.c (show_help_echo): Accept additional parameter
922 ok_to_overwrite_keystroke_echo.
923 (read_char): Call show_help_echo with a zero
924 ok_to_overwrite_keystroke_echo argument.
925 * keyboard.h (show_help_echo): Update prototype of
926 show_help_echo.
927 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
928 ok_to_overwrite_keystroke_echo argument.
929 * w32menu.c (w32_menu_display_help): Call show_help_echo with
930 non-zero ok_to_overwrite_keystroke_echo argument.
931
df75b1a3
GM
9322000-07-10 Gerd Moellmann <gerd@gnu.org>
933
4b92c49a
GM
934 * xdisp.c (try_window_id): If changes are all below what is
935 displayed in the window, and point is in the window, we still
936 might have to find point on the display.
937
938 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
939 glyphs instead of a single one.
940 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
941 with new argument list.
942 (x_set_glyph_string_gc): Make sure the face's GC is valid.
943
df75b1a3
GM
944 * keymap.c (get_keymap_1): Add comment that this function can GC.
945 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
946 comment that functions can GC.
947 (Fset_keymap_parent): GCPRO arg KEYMAP.
948
4314cf3e
EZ
9492000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
950
951 * msdos.c (XMenuActivate): After exiting the menu, restore the
952 echo area message and erase it.
953
ab49ce15
KH
9542000-07-10 Kenichi Handa <handa@etl.go.jp>
955
956 * fontset.c (Ffontset_info): Make the return value more compatible
957 with that of Emacs 20.
958
090a072f
GM
9592000-07-07 Gerd Moellmann <gerd@gnu.org>
960
961 * eval.c (Fsignal): Handle case that backtrace_list is null.
962
f92de4a6
KH
9632000-07-07 Kenichi Handa <handa@etl.go.jp>
964
965 * ccl.c (Fccl_execute): Typo fixed.
966
dd8888a1
GM
9672000-07-06 Gerd Moellmann <gerd@gnu.org>
968
e5c81191 969 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 970
dd8888a1
GM
971 * window.c (Fwindow_list): Reverse list at the end.
972 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
973 means allow windows on OWINDOW's frame, only.
974 (window_loop): Simplified; use Fwindow_list.
975
976 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
977
485266d0
GM
9782000-07-05 Gerd Moellmann <gerd@gnu.org>
979
980 * xterm.c (XTread_socket): Increment handling_signal at the start,
981 decrement it at the end.
982
983 * eval.c (handling_signal): New variable.
984 (Fsignal): Abort if handling_signal is non-zero.
985
986 * lisp.h (handling_signal): External declaration.
178c5d9c 987
485266d0
GM
988 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
989
80fcd514
KR
9902000-07-05 Ken Raeburn <raeburn@gnu.org>
991
992 Sound support for NetBSD through "Linux emulation" support:
993 * config.in (HAVE_SOUNDCARD_H): Undef.
994 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
995 * Makefile.in (LIBSOUND): New variable.
996 (LIBES): Include it.
997 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
998 <soundcard.h>.
999 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
1000 elsewhere.
1001 (vox_open): Use DEFAULT_SOUND_DEVICE.
1002 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
1003
d5c5cddd
GM
10042000-07-05 Gerd Moellmann <gerd@gnu.org>
1005
1006 * print.c (print_error_message): If Vsignaling_function is set,
1007 show it in *Messages*.
1008
1009 * lisp.h (Vsignaling_function): External declaration.
1010
1011 * eval.c (Vsignaling_function): New variable.
1012 (Fsignal): Compute it.
1013 (syms_of_eval): Staticpro it.
1014
65171e3a
DL
10152000-07-05 Dave Love <fx@gnu.org>
1016
1017 * syswait.h: Use the autoconf recommended approach. Old code
1018 #if'd out in case we need to revert.
1019
178c5d9c 1020 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 1021
e2c46326
AI
10222000-07-05 Andrew Innes <andrewi@gnu.org>
1023
1024 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
1025 when non-NULL instead of __morecore, to take account of buffer
1026 memory. This also solves a problem with spurious memory warnings
1027 on Windows.
1028
1029 * ralloc.c: Make real_morecore non-static.
1030
1031 * eval.c (internal_condition_case): Comment out abort if
1032 interrupt_input_blocked is not zero.
1033
1034 * makefile.nt: Add support for `bootstrap' and related targets.
1035 Include minimal debug info in emacs.exe in release build.
1036 Remove all dependencies on lisp.h, and fixup some others.
1037
1038 * w32.c (init_environment): Install code from 20.7 for providing
1039 default values for environment variables, based on the
1040 executable's own location.
1041 (map_w32_filename): Handle filenames that are longer than
1042 MAX_PATH.
1043 (sys_socket): Install socket inheritance bug fix from 20.7.
1044
1045 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
1046 here via blockinput.h).
1047
a027a91b
SM
10482000-07-05 Stefan Monnier <monnier@cs.yale.edu>
1049
e4b31601
SM
1050 * w32menu.c (w32_menu_display_help):
1051 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
1052
1053 * keyboard.h (show_help_echo): Declare.
1054
1055 * keyboard.c (show_help_echo): New function, extracted from read_char.
1056 Feval its `msg' argument if it's a cons cell.
1057 (read_char): Use it.
4cf8d9d5 1058 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 1059
178c5d9c 1060 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 1061 (note_tool_bar_highlight, XTread_socket):
178c5d9c 1062 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
1063 (dos_rawgetc):
1064 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
1065 (note_tool_bar_highlight, w32_read_socket):
1066 Do not gratuitously ignore non-string `help-echo' properties.
1067
88d75730
GM
10682000-07-05 Gerd Moellmann <gerd@gnu.org>
1069
969f7e79
GM
1070 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
1071
71201b00
GM
1072 * window.c (delete_all_subwindows): Reset Vwindow_list.
1073
88d75730
GM
1074 * xterm.c (x_append_glyph, x_append_composite_glyph)
1075 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
1076 changes in struct glyph starting 1999-12-27. Some bit-fields of
1077 struct glyph were not set, which made glyphs unequal when compared
1078 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
1079 effects were the result. This also depended on the contents of
1080 memory returned by xmalloc. If flickering happens again, activate
1081 the code in clear_glyph_row that's in #if 0. If the flickering is
1082 gone with that, chances are that it is caused by something
1083 similar.
1084
1085 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 1086
88d75730
GM
1087 * dispextern.h: Add some comments.
1088
1089 * window.c (add_window_to_list): Add parameter LIST.
1090 (window_list): Order list so that, for each frame, windows are
1091 in canonical order, and so that frames appear in the list in
1092 the order given by Vframe_list.
1093 (next_window): Reverse the handling of NEXT_P.
1094
53654733
GM
10952000-07-04 Gerd Moellmann <gerd@gnu.org>
1096
87efd256
GM
1097 * window.c (Vwindow_list): New variable.
1098 (make_window, delete_window): Set Vwindow_list to nil.
1099 (check_window_containing): New function.
1100 (window_from_coordinates): Rewritten.
1101 (add_window_to_list, window_list, candidate_window_p)
1102 (decode_next_window_args, next_window): New functions.
1103 (Fnext_window, Fprevious_window): Rewritten in terms of
1104 next_window.
1105 (Fwindow_list): New function.
1106 (Fother_window): Cleaned up.
1107 (foreach_window): Add a longer "variable argument list". Let
1108 callback function return 0 to indicate that cycling over windows
1109 should stop.
1110 (foreach_window_1): Likewise.
1111 (freeze_window_start): Return int.
1112 (init_window): New function.
1113 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
1114
1115 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
1116 input_event with bzero.
1117 (main): Call init_window.
1118
53654733
GM
1119 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
1120 a menu filter.
1121
4a8c194f
KH
11222000-07-04 Kenichi Handa <handa@etl.go.jp>
1123
1124 * composite.h (make_composition_value_copy): Extern it.
1125
1126 * composite.c (make_composition_value_copy): New function.
1127
1128 * editfns.c (Fformat): While copying text properties, make each
1129 composition property value a copy.
1130
1131 * fns.c (concat): While copying text properties, make each
1132 composition property value a copy.
1133
831a6cb0
GM
11342000-07-03 Gerd Moellmann <gerd@gnu.org>
1135
2f516940
GM
1136 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
1137
178c5d9c 1138 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
1139 marked already.
1140
831a6cb0
GM
1141 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
1142 include those frames as candidates which have their focus
1143 redirected to the minibuffer frame.
1144
d9c4f922
SM
11452000-07-03 Stefan Monnier <monnier@cs.yale.edu>
1146
1147 * fns.c (Fputhash): Return `value' rather than nil.
1148
3780bc22
GM
11492000-06-30 Gerd Moellmann <gerd@gnu.org>
1150
97d176db
GM
1151 * frame.c (next_frame): Don't check focus redirection in case
1152 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
1153 unless their focus is redirected, which contradicts the
1154 specification of next-frame, and leads to infinite loops in
1155 certain situations when cycling through windows with next-window.
1156
dca9961d
KH
11572000-06-30 Kenichi Handa <handa@etl.go.jp>
1158
1159 * coding.c (code_convert_region): Even if the length of text is
1160 zero, try to convert it if coding->type is coding_type_ccl.
1161 (decode_coding_string, encode_coding_string): Likewise.
1162
d5483ab1
GM
11632000-06-28 Gerd Moellmann <gerd@gnu.org>
1164
af5c25e1 1165 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 1166 the display if windows_or_buffers_changed.
af5c25e1
GM
1167
1168 * dispnew.c (struct row_entry): New structure.
1169 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
1170 (row_table_size, old_lines, new_lines, old_lines_size)
1171 (new_lines_size, run_pool, runs_size, runs): New variables.
1172 (add_row_entry): New function.
1173 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 1174 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
1175 holding them in local variables. Use a larger hash table whose
1176 size depends on glyph matrix sizes. Don't use bzero to clear the
1177 hash table; instead, clear used slots only.
1178
1179 * fns.c (next_almost_prime): Make it externally visible.
1180
1181 * lisp.h (next_almost_prime): Add prototype.
1182
d5483ab1
GM
1183 * s/isc4-0.h (sigunblock): Define.
1184
1185 * s/sco5.h (sigunblock): Define.
1186
93e40f40
DL
11872000-06-27 Dave Love <fx@gnu.org>
1188
1189 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
1190 (moved to osf5-0.h).
1191 [!NOT_C_CODE]: Protect string.h stuff.
1192
1193 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
1194 (sys_siglist, NSIG): Definitions moved here from osf1.h.
1195
3c4b7685
GM
11962000-06-27 Gerd Moellmann <gerd@gnu.org>
1197
97d176db 1198 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
1199 below the last line from the needed window height.
1200
32cad0aa
SM
12012000-06-26 Stefan Monnier <monnier@cs.yale.edu>
1202
1203 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
1204 (Fwidget_get): Use it.
1205 (syms_of_fns): Defsubr it.
1206
2c69ced2
GM
12072000-06-26 Gerd Moellmann <gerd@gnu.org>
1208
178c5d9c 1209 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
1210 display info for XIM.
1211 (xim_open_dpy): Likewise.
1212 (xim_close_dpy): Don't free the display info's XIM.
1213
1214 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
1215
1216 * config.in (USE_XIM): New define.
1217
3fc720e4
GM
1218 * keymap.c (get_keyelt): For menu-items containing a `:filter
1219 FILTER', apply FILTER to the menu-item's definition to get the
1220 real definition to use.
1221
1222 * lisp.h (QCfilter): External declaration.
1223
2c69ced2
GM
1224 * xfns.c (Fimage_size): New function.
1225 (syms_of_xfns): Defsubr it.
1226
f978b2a2
AS
12272000-06-26 Andreas Schwab <schwab@suse.de>
1228
1229 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
1230 Fstring_as_unibyte.
1231
94cc7892
DL
12322000-06-25 Dave Love <fx@gnu.org>
1233
1234 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
1235 tgetnum.
1236
1237 * Makefile.in (blockinput.h): Depend on atimer.h.
1238 (atimer.h): Depend on systime.h.
1239
1240 * blockinput.h: Protect against multiple inclusion. Include
1241 atimer.h.
1242
1243 * atimer.h: Protect against multiple inclusion. Include
1244 systime.h.
1245
1246 * lisp.h (swap_in_global_binding): Declare.
1247
b8c24556
KR
12482000-06-24 Ken Raeburn <raeburn@gnu.org>
1249
1250 * process.c (Fopen_network_stream): Turn off atimers for duration
1251 of call to connect. (Patch from Gerd.)
1252
8cf8560b
DL
12532000-06-23 Dave Love <fx@gnu.org>
1254
511c7541
DL
1255 * ralloc.c: Maybe include unistd.h
1256
8cf8560b
DL
1257 * emacs.c (setgrp): Undefine before defining.
1258 (malloc_warning, set_time_zone_rule, index): Prototype.
1259
1260 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
1261 HAVE_STRUCT_TIMEZONE.
1262
1263 * s/osf1.h: Move string.h hack here from alpha.h and make it
1264 conditional.
1265 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
1266 _XOPEN_SOURCE.
1267 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
1268 (SOCKLEN_TYPE): Don't define.
1269
1270 * m/alpha.h: Remove string.h hack.
1271
1272 * s/osf5-0.h: New file.
1273
1274 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
1275 include time.h, done by systime.h.
1276 [__FreeBSD__]: Remove redundant includes.
1277
3fc720e4 1278 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
1279 (delete_temp_file): Return Qnil to avoid warning.
1280
1281 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
1282
1283 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
1284 HAVE_X_WINDOWS.
1285
1286 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
1287
1288 * composite.h (compose_text): Declare.
1289
1290 * xterm.c: Don't include sys/types.h unconditionally. Don't
1291 protect its inclusion with !USG (following xmenu.c).
1292
ea055732
GM
12932000-06-23 Gerd Moellmann <gerd@gnu.org>
1294
1295 * xfns.c (x_create_tip_frame): Initialize frame's colors like
1296 in x_create_frame.
1297
74b01b80
EZ
12982000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
1299
1300 * coding.c (decode_eol_post_ccl): Special handling for undecided
1301 and inconsistent EOL types.
1302
64f3a166
GM
13032000-06-22 Gerd Moellmann <gerd@gnu.org>
1304
16cf31f7
GM
1305 * xrdb.c (x_load_resources): Add default resource for scroll bar's
1306 trough color and main window's background color.
1307
178c5d9c 1308 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
1309 differently.
1310
1311 * xterm.h (Xt_app_con): External declaration.
1312
1313 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 1314
486a103d
GM
1315 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
1316
64f3a166
GM
1317 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
1318 (handle_invisible_prop): Record the start of invisible text in
1319 it->add_overlay_start.
1320 (struct overlay_entry): Add member `overlay'.
1321 (handle_overlay_change): Simplify.
1322 (next_overlay_string): After having processed overlay strings at the
1323 end of the buffer, record that fact in
1324 it->overlay_strings_at_end_processed_p.
1325 (compare_overlay_entries): If before- and after-strings come
1326 from the same overlay, let before-strings come first.
1327 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
1328 (load_overlay_strings): Take it->add_overlay_start into account
1329 when adding overlay strings.
1330
1331 * dispextern.h (struct it): Add member add_overlay_start.
1332
bb746ea6
DL
13332000-06-22 Dave Love <fx@gnu.org>
1334
1335 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
1336
1337 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
1338
a8f573f3
KH
13392000-06-22 Kenichi Handa <handa@etl.go.jp>
1340
1341 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
1342 is greater than 0.
1343
9f2bbc92
DL
13442000-06-21 Dave Love <fx@gnu.org>
1345
178c5d9c 1346 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 1347
3ee5041c
SM
13482000-06-21 Stefan Monnier <monnier@cs.yale.edu>
1349
1350 * syntax.c (back_comment): Simplify string-parity counting (with
1351 the added benefit of handling multiple string-styles as long as
1352 they are not intertwined).
1353 Jump to the slow code as soon as a comment starter is found in
1354 a "string_lossage" position. Fixes the case: " /* " /* " */.
1355
4c343001
DL
13562000-06-21 Dave Love <fx@gnu.org>
1357
1358 * Makefile.in: Use GETLOADAVG_LIBS.
1359
1360 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
1361 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
1362
e6365855
SM
13632000-06-20 Stefan Monnier <monnier@cs.yale.edu>
1364
1365 * syntax.c (describe_syntax): Recognize the `n'estable bit.
1366 (Fforward_comment, scan_lists):
1367 Check the comstyle of single-char comment-starters.
1368 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
1369 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
1370 Check the comstyle of single-char comment-starters.
1371 Clarify control-flow around the Scomment case.
e6365855 1372
5700d2cc
DL
13732000-06-20 Dave Love <fx@gnu.org>
1374
d355bd8a
SM
1375 * fns.c (make_hash_table, maybe_resize_hash_table):
1376 Cast arg of next_almost_prime.
5700d2cc 1377
178c5d9c 1378 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
1379
1380 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
1381 and unistd.h.
1382
4a27bdfb
GM
13832000-06-20 Gerd Moellmann <gerd@gnu.org>
1384
a61d762c
GM
1385 * keyboard.c (adjust_point_for_property): Check if display
1386 property should be treated as intangible by looking at its
1387 value.
1388
178c5d9c 1389 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
1390 (display_prop_intangible_p): New functions.
1391
1392 * dispextern.h (display_prop_intangible_p): Add prototype.
1393
1394 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 1395
4a27bdfb
GM
1396 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
1397 argument to sigprocmask.
1398
1399 * s/sco5.h (sigblock): Redefined to pass a pointer as second
1400 argument to sigprocmask.
1401
1402 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
1403 sigprocmask_set, and pass a pointer to it to sigprocmask.
1404
1405 * sysdep.c (sigprocmask_set): New variable.
1406
1407 * fileio.c (make_temp_name): Don't use `%s' in string passed to
1408 report_file_error.
1409
427ec082
SS
14102000-06-20 Sam Steingold <sds@gnu.org>
1411
1412 * xrdb.c: Don't declare xmalloc, xrealloc.
1413
8972fe79 14142000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
1415
1416 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
1417 (re_comp): Cast gettext return value to avoid complaints when
1418 !HAVE_LIBINTL.
1419
074b6efe
DL
14202000-06-20 Dave Love <fx@gnu.org>
1421
f85c008a
DL
1422 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
1423 HAVE_GETTIMEOFDAY.
1424
5700d2cc 1425 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 1426
d355bd8a 1427 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
1428
1429 * m/alpha.h: Don't declare xmalloc, xrealloc.
1430
0af4f205
DL
1431 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
1432
1433 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
1434
1435 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
1436
1437 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
1438 HAVE_GETWD.
1439
074b6efe
DL
1440 * keyboard.h (poll_for_input_1): Declare.
1441
1442 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
1443
1444 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
1445
1446 * doprnt.c: Don't declare xmalloc, xrealloc.
1447
1448 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
1449 (getenv, ctime, getwd): Removed.
1450 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
1451
1452 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
1453 x_set_tool_bar_lines.
1454
1455 * config.in: Add HAVE_GETWD. Move some definitions above
1456 machine/system includes.
1457
68a5e97b
KH
14582000-06-20 Kenichi Handa <handa@etl.go.jp>
1459
95417e1e
KH
1460 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
1461
68a5e97b
KH
1462 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
1463 contain information about ENCODING.
1464
1465 * fontset.c (FONTSET_ASCII): Use the first element of char table
1466 for an ASCII font, not defalt slot.
1467 (fontset_ref_via_base): If FONTSET doesn't contain information for
1468 C, try the default fontset.
1469 (make_fontset): Don't copy the default fontset.
1470 (fontset_font_pattern): Likewise.
1471 (accumulate_font_info): If ELT is nil, use the corresponding
1472 element in the default fontset.
1473
3b4fa1b2
DL
14742000-06-19 Dave Love <fx@gnu.org>
1475
943e731c
DL
1476 * syntax.c (Fparse_partial_sexp): Doc fix.
1477
1478 * regex.h: Test PROTOTYPES as well as __STDC__.
1479
3b4fa1b2
DL
1480 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
1481 errno, strerror. Put text after #endif in comment.
1482
1483 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
1484 pcc).
1485
1486 * xterm.c (x_frame_of_widget): Likewise.
1487
cdf0357b
GM
14882000-06-19 Gerd Moellmann <gerd@gnu.org>
1489
1490 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
1491 to Vfundamental_mode_abbrev_table.
1492
1493 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
1494 bogus objects are marked. This slows down GC by ~80 percent, but
1495 it might be worth trying when debugging GC-related problems.
1496 This feature requires conservative stack marking to be enabled.
1497
1498 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
1499 returns XLookupChars, reset `modifiers' to zero.
1500
998e9f8c
DL
15012000-06-19 Dave Love <fx@gnu.org>
1502
1503 * mktime.c: Unprotoized.
1504
18e21ce8 15052000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
1506
1507 * data.c (set_internal): If variable is frame-local,
1508 store the new value immediately into the frame parameter alist.
1509
140c4ac6
KR
15102000-06-19 Ken Raeburn <raeburn@gnu.org>
1511
14358466
KR
1512 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
1513 in the custom handler pointer.
1514
140c4ac6
KR
1515 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
1516 value, or checks for CHAR_META can fail when Lisp_Object is a
1517 union type.
1518 * keymap.c (get_keyelt): Likewise.
1519
10d7bf84
KH
15202000-06-19 Kenichi Handa <handa@etl.go.jp>
1521
1522 * ccl.h (struct ccl_program): New member eol_type.
1523 (struct ccl_spec): New member cr_carryover.
1524
1525 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
1526 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
1527
1528 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
1529 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
1530 (decode_eol_post_ccl): New function.
1531 (decode_coding): Don't detect EOL format here for CCL based coding
1532 systems.
1533 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
1534 decode_eol_post_ccl after running the CCL program.
1535 (code_convert_region): Don't detect EOL format here for CCL based
1536 coding systems.
1537 (decode_coding_string): Likewise.
1538
52e386c2
KR
15392000-06-18 Ken Raeburn <raeburn@gnu.org>
1540
1541 * charset.c (update_charset_table): Use XINT on "iso_final_char"
1542 when treating it as an integer.
1543
1544 * coding.h (encode_coding_string): Declare.
1545
1546 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
1547 it as an integer.
1548
1549 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
1550 "xkeymap" to avoid shadowing the "enum map_type" value that needs
1551 to be passed to get_local_map.
1552
1553 * sound.c (Fplay_sound): Don't call make_number on
1554 Frun_hook_with_args count argument.
1555
1556 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
1557 for lisp objects in X event structure data field, when lisp
1558 objects are represented with unions.
1559 (x_scroll_bar_to_input_event): Ditto.
1560
b357b9d4
KR
15612000-06-16 Ken Raeburn <raeburn@gnu.org>
1562
1563 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
1564 termination of string. Fix sense of test whether
1565 Vline_number_display_limit is an integer.
b357b9d4 1566
a871441d
GM
15672000-06-16 Gerd Moellmann <gerd@gnu.org>
1568
a9021acd
GM
1569 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
1570 only if HAVE_X_WINDOWS.
1571
6344985d
GM
1572 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
1573 of titles.
1574
427ec082 1575 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
1576 out of bounds.
1577
228b083e
EZ
15782000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
1579
1580 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
1581 of its headers.
1582
c25b53a2
KH
15832000-06-15 Kenichi Handa <handa@etl.go.jp>
1584
1585 * coding.c (decode_coding_emacs_mule): Always set src_base at the
1586 start of the while loop.
1587
a6981b11
GM
15882000-06-15 Gerd Moellmann <gerd@gnu.org>
1589
e9924e52
GM
1590 * atimer.c (alarm_signal_handler): Add forward declaration.
1591
a6981b11
GM
1592 * data.c (set_internal): Remove debug code.
1593
25fa6deb
GM
15942000-06-14 Gerd Moellmann <gerd@gnu.org>
1595
dce6b995
GM
1596 * Makefile.in (bootstrap-temacs): Add `-I../src'.
1597
9f817ea4
GM
1598 * unexec.c (toplevel) [COFF]: Include coff.h.
1599
1600 * s/lynxos.h: New file.
1601
1602 * keymap.c (Fsingle_key_description): Enclose function key and
1603 event symbol names in angle brackets.
1604
8a4e3c0c
GM
1605 * xdisp.c (setup_echo_area_for_printing): Call
1606 message_log_maybe_newline if message_buf_print is not set.
1607
1608 * print.c (printchar, strout): Don't check message_buf_print
427ec082 1609 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
1610 function does something useful even when message_buf_print is
1611 already set.
1612
25fa6deb
GM
1613 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
1614 variables.
1615 (ensure_echo_area_buffers): Initialize echo buffer's
1616 truncate lines setting to nil.
1617 (with_echo_area_buffer): Don't set the echo buffer's truncate
1618 lines setting here.
8a4e3c0c 1619 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
1620 of message_truncate_lines.
1621 (resize_mini_window): Handle case that lines are truncated.
1622 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
1623 message-truncate-lines.
1624
1625 * keyboard.c (read_char): Bind message-truncate-lines to t
1626 while displaying a help-echo.
1627
1628 * lisp.h (Qmessage_truncate_lines): External declaration.
1629
163dcff3
GM
16302000-06-13 Gerd Moellmann <gerd@gnu.org>
1631
1681ead6
GM
1632 * xdisp.c (Vline_number_display_limit): Renamed from
1633 line_number_display_limit.
1634 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
1635 Extend documentation string. Initialize
1636 Vline_number_display_limit to nil meaning no limit.
1637 (decode_mode_spec): Use Vline_number_display_limit with its new
1638 meaning.
1639
163dcff3
GM
1640 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
1641
18e21ce8 16422000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
1643
1644 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 1645
163dcff3
GM
1646 * xfns.c (x_set_frame_parameters): Comment fix.
1647
1648 * frame.c (store_frame_param): Call swap_in_global_binding if the
1649 variable's current binding was chosen based on this frame.
1650
1651 * data.c (swap_in_global_binding): New function.
1652
a704139d
EZ
16532000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1654
1655 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
1656 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
1657
9b6610db
EZ
16582000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1659
1660 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
1661
c68833d2
JR
16622000-06-12 Jason Rumney <jasonr@gnu.org>
1663
1664 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
1665
1666 * w32.h (EMACS_W32_H): Renamed from _NT_H_
1667
1668 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
1669
1670 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
1671
ed1056b3
GM
16722000-06-12 Gerd Moellmann <gerd@gnu.org>
1673
1674 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
1675 (syms_of_xfaces): Defsubr Sdump_colors.
1676 (x_free_colors): Don't treat b&w specially on default visual.
1677 (x_free_dpy_colors): New function.
1678 (free_face_colors): Don't check visual class; it's done
1679 in x_free_colors.
1680
1681 * xterm.c (x_frame_of_widget): New function.
1682 (x_alloc_nearest_color_for_widget): Use it.
1683 (x_copy_dpy_color): New function.
1684 (x_destroy_window): Free various colors.
1685
5050a2ef
KH
16862000-06-12 Kenichi Handa <handa@etl.go.jp>
1687
1688 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
1689
1690 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
1691
1692 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
1693
1694 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
1695
1696 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
1697
fb1b041d
DL
16982000-06-11 Dave Love <fx@gnu.org>
1699
1700 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
1701
ff96b5f4
EZ
17022000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
1703
1704 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
1705
db8eeecd
GM
17062000-06-11 Gerd Moellmann <gerd@gnu.org>
1707
ed1056b3 1708 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
1709 to `XEvent *'.
1710
49b71c5f
KH
17112000-06-10 Kenichi Handa <handa@etl.go.jp>
1712
c479bd55
KH
1713 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
1714 (regex_compile): Fix the code for handling the case of single byte
1715 char and multibyte char being mixed in a range within [...].
1716
ff6a65c2
KH
1717 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
1718 and dst_multibyte members of coding.
1719
49b71c5f
KH
1720 * charset.c (update_charset_table): Update the table
1721 bytes_by_char_head.
1722 (init_charset_once): Initialize elements of bytes_by_char_head to
1723 1 except for leading codes for private charases.
1724
1725 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
1726 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
1727 sequence.
1728
9e80b57d
KR
17292000-06-09 Ken Raeburn <raeburn@gnu.org>
1730
1731 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
1732 access the data it doesn't point to.
1733
f83fe4b4
GM
17342000-06-08 Gerd Moellmann <gerd@gnu.org>
1735
1736 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 1737 will be translated to a switch-frame event when reading the
f83fe4b4
GM
1738 event queue. This is necessary because Emacs otherwise won't
1739 perform a switch-frame to a new frame until some other event, for
1740 example a keystroke event, forces it to do so. This has various
1741 effects, one visible being that the cursor of a frame created with
1742 C-x 5 2 or switched to with a window manager key binding like
1743 A-TAB stays hollow because selected_window isn't on the newly
1744 focused frame until the switch-frame is performed.
1745
1746 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
1747 generating a switch-frame event if necessary.
1748
1749 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
1750
1751 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
1752 it's an integer.
1753
0890801b
KH
17542000-06-08 Kenichi Handa <handa@etl.go.jp>
1755
1756 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
1757 charset.
1758
173cbca8
GM
17592000-06-07 Gerd Moellmann <gerd@gnu.org>
1760
3091c2a6
GM
1761 * window.c (displayed_window_lines): Take empty lines at
1762 the bottom of a window into account.
427ec082 1763
f38952fe
GM
1764 * window.c (displayed_window_lines): New function.
1765 (Fmove_to_window_line): Use displayed_window_lines to determine
1766 the number of lines to move, instead of using the window's height.
1767
1768 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
1769 to stop reading, even if the form read sets point to a different
1770 value when evaluated.
1771
427ec082 1772 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
1773 put the cursor.
1774
6ba6c818
KH
17752000-06-07 Kenichi Handa <handa@etl.go.jp>
1776
1777 * fileio.c (e_write): Free composition data if stored in
1778 coding->cmp_data.
1779
5f1aea9a
GM
17802000-06-06 Gerd Moellmann <gerd@gnu.org>
1781
666852af
GM
1782 * xdisp.c (display_line): Set row's and iterator's
1783 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
1784 Set cursor even if row ends in the middle of a character.
1785 (dump_glyph_row): Print values of new flags.
1786 (redisplay_window) <cursor movement in unchanged window>: When
1787 point has been moved forward, and PT is at the end of the cursor
1788 row, don't place the cursor in the next row if the cursor row ends
1789 in the middle of a character or at ZV.
1790
1791 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
1792 (struct glyph_row): Add starts_in_middle_of_char_p and
1793 ends_in_middle_of_char_p.
1794 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
1795 ends_in_middle_of_char_p flag.
1796 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
1797
d13f3e2e
GM
1798 * term.c (append_glyph): Revert change of 2000-06-06.
1799
1800 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
1801 padding glyph not fitting on line as whole character not
1802 fitting on line.
1803
5f1aea9a
GM
1804 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
1805 this isn't true for images with `:ascent 100'.
1806
10cda9b0
KH
18072000-06-06 Kenichi Handa <handa@etl.go.jp>
1808
ed00559d
KH
1809 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
1810 as modified if it is originally unmodified.
1811
10cda9b0
KH
1812 * term.c (encode_terminal_code): Change the way to check if
1813 terminal coding does any conversion.
1814 (append_glyph): Set glyph->pixel_width correctly.
1815
1816 * xdisp.c (display_line): While checking line continuation, pay
1817 attention to a padding glyph.
1818
1969fae2
GM
18192000-06-05 Gerd Moellmann <gerd@gnu.org>
1820
1821 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
1822
162ccef4
DL
18232000-06-05 Dave Love <fx@gnu.org>
1824
f19f32dd
DL
1825 * xdisp.c: Include fontset.h.
1826
1827 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
1828
1829 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1830
1831 * dispnew.c: Conditionally include term.h.
1832
1833 * coding.h: Declare code_convert_string_norecord.
1834
1835 * frame.h (struct frame): Use volatile unconditionally.
1836
1837 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
1838
1839 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
1840
1841 * systime.h: Protect against multiple inclusion.
1842 (timezone) [USG5_4]: Define as time_t.
1843
1844 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1845 (Foptimize_char_table, make_temp_name): Declare.
1846
1847 * Makefile.in (xdisp.o): Depend on fontset.h.
1848
1849 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1850
1851 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1852 (Foptimize_char_table, make_temp_name): Declare.
1853
427ec082 1854 * s/irix4-0.h:
162ccef4
DL
1855 * s/irix5-0.h:
1856 * s/netbsd.h: Don't define autoconfiscated MATHERR.
1857
2082fe81
DL
18582000-06-02 Dave Love <fx@gnu.org>
1859
1860 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
1861
dcf671d2
GM
18622000-06-02 Gerd Moellmann <gerd@gnu.org>
1863
1864 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 1865 result face, set flags in that face indicating that colors may not
dcf671d2
GM
1866 be freed.
1867
1868 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
1869 glyph, use the ASCII NUL character to determine the face.
1870
d42122a3
DL
18712000-06-02 Dave Love <fx@gnu.org>
1872
1873 * sysdep.c: Conditionally include stdlib.h, unistd.h.
1874 (VFORK_RETURN_TYPE): Remove.
427ec082 1875
d42122a3
DL
1876 * config.in: Add NO_MATHERR.
1877
dd432f16
DL
18782000-06-01 Dave Love <fx@gnu.org>
1879
90aa4ea8
DL
1880 * cmds.c (internal_self_insert): Don't check
1881 Vbefore_change_function, Vafter_change_function.
1882
1883 * insdel.c (signal_before_change, signal_after_change): Likewise.
1884
1885 * buffer.c (Vbefore_change_function, Vafter_change_function):
1886 Variables and their initializations deleted.
1887
2330c9d4
DL
1888 * callint.c (Fcall_interactively): Doc fix.
1889
dd432f16
DL
1890 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
1891
bf9e8804
DL
18922000-05-31 Dave Love <fx@gnu.org>
1893
1894 * textprop.c: Revert last change -- duplicated.
1895
3694b4ab
GM
18962000-05-31 Gerd Moellmann <gerd@gnu.org>
1897
1898 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
1899 in #if 0.
1900
1901 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
1902
f14156cd
JR
19032000-05-31 Jason Rumney <jasonr@gnu.org>
1904
8119aab8
JR
1905 * search.c (Fre_search_forward, Fre_search_backward)
1906 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
1907
f14156cd
JR
1908 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
1909
4aab9be3
JR
19102000-05-30 Jason Rumney <jasonr@gnu.org>
1911
1912 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
1913 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
1914
1915 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
1916 member.
1917
1918 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
1919 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
1920 expand a nil default_filename.
1921
1922 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
1923 pointer to glyph_to_pixel_coords, not a frame.
1924
1925 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
1926 coding.h to dependencies.
1927
1928 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
1929
1930 * w32console.c (glyph_to_pixel_coords): Change first parameter to
1931 window pointer to be consistent with w32term.c and xterm.c.
1932
1933 * w32fns.c: Format and doc changes to bring closer to xfns.c.
1934 (VIETNAMESE_CHARSET): Define if not defined in system headers.
1935 (Qline_spacing, Qcenter): New variables.
1936 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
1937 (x_set_line_spacing): New function.
1938 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
1939 macros.
1940 (x_specified_cursor_type): New function.
1941 (x_set_cursor_type): Use it.
1942 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
1943 and icon strings.
1944 (validate_x_resource_name, x_get_resource_string): Measure lengths
1945 of external strings in bytes.
1946 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
1947 GetTextExtentPoint32 with NULL title.
1948 (Fx_create_frame): Initialize Qline_spacing.
1949 (w32_load_system_font): Initialize font->double_byte_p.
1950 (x_to_w32_charset): Use Vw32_charset_info_alist.
1951 (Image, busy cursor, tooltip functions): Merged changes from
1952 xfns.c. Not yet functional on Windows.
1953
1954 * w32gui.h (W32FontStruct): Add double_byte_p member.
1955
1956 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
1957 (emacs_button_translation): Use it.
1958 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
1959 in `mask' to be set.
1960
1961 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
1962 menu strings.
1963
1964 * w32term.c: Format and doc changes to bring closer to xterm.c.
1965 (w32_char_font_type): New enum.
1966 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
1967 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
1968 (w32_encode_char): New function.
1969 (x_encode_char): Removed.
1970 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
1971 x_encode_char and w32_font_is_double_byte.
1972 (x_produce_image_glyph): Use image_ascent.
1973 (x_produce_glyphs): Use new version of w32_per_char_metric and
1974 handle NULL return value. Allow extra line spacing.
1975 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
1976 (w32_get_glyph_overhangs): Remove unicode_p param. Use
1977 w32_font_type member of glyph instead.
1978 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
1979 (fast_find_position): Make sure not to consider rows not visible
1980 in the window.
1981 (w32_read_socket) [WM_MENUSELECT]: Cannot call
1982 w32_menu_display_help with input blocked, as it can abort.
1983 (x_display_and_set_cursor): Choose cursor depending
1984 on buffer-local value of cursor_type.
1985 (x_draw_bar_cursor): Add parameter WIDTH.
1986
1987 * w32term.h (CP_DEFAULT): Define.
1988 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
1989
10fc3187
GM
19902000-05-30 Gerd Moellmann <gerd@gnu.org>
1991
1992 * search.c (Fre_search_forward, Fre_search_backward)
1993 (Fposix_search_backward, Fposix_search_forward): Doc fix.
1994
d0555360
KH
19952000-05-30 Kenichi Handa <handa@etl.go.jp>
1996
1997 * coding.c (detect_coding_iso2022): Fix code for checking
1998 CODING_CATEGORY_MASK_ISO_8_2.
1999
f1ad044f
SM
20002000-05-29 Stefan Monnier <monnier@cs.yale.edu>
2001
2002 * regex.c (PREFETCH_NOLIMIT): New function.
2003 (re_match_2_internal): Use it and adjust the end_match_2 logic.
2004
84ec3b4b
GM
20052000-05-29 Gerd Moellmann <gerd@gnu.org>
2006
66254a13
GM
2007 * syntax.c (find_defun_start): Move test for
2008 open_paren_in_column_0_is_defun_start outside of the loop.
2009
49e70dec
GM
2010 * xdisp.c (redisplay_window): Really switch buffers when
2011 displaying mode lines, and temporarily set selected_frame to the
2012 frame of the window that's redisplayed.
2013
84ec3b4b
GM
2014 * xfaces.c (free_realized_faces): Block/unblock input.
2015 (free_realized_multibyte_face): Ditto.
2016
869a3a14
DL
20172000-05-29 Dave Love <fx@gnu.org>
2018
2019 * textprop.c (Qkeymap): New variable.
2020 (syms_of_textprop): Intern it.
2021
2022 * keymap.c: Include intervals.h.
2023 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
2024
2025 * Makefile.in (keymap.o): Depend on intervals.h.
2026
2027 * keyboard.c (menu_bar_items, tool_bar_items)
2028 (Fexecute_extended_command): Deal with `keymap' property.
2029 (read_key_sequence): Track map from `keymap' property as well as
2030 `local_map'.
2031
2032 * intervals.c (get_local_map): Extra arg to allow looking for
2033 `keymap' too.
2034
2035 * intervals.h (map_property): New enum.
2036 (get_local_map): Extra arg using it.
2037 (Qkeymap): Declare.
2038
84ec3b4b 2039 * lisp.h (get_local_map): Don't declare here.
869a3a14 2040
89d0c844
KH
20412000-05-29 Kenichi Handa <handa@etl.go.jp>
2042
2043 * Makefile.in (callproc.o): Depend on composite.h.
2044
2045 * callproc.c: Include composite.h.
2046 (Fcall_process): Handle composition correctly.
2047
2048 * coding.h (coding_allocate_composition_data): Extern it.
2049 (coding_restore_composition): Likewise.
2050
2051 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
2052 yet allocated, finish decoding with result
2053 CODING_FINISH_INSUFFICIENT_CMP.
2054 (coding_allocate_composition_data): Make it non-static.
2055 (coding_restore_composition): Likewise.
2056
797a084a
EZ
20572000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
2058
2059 * charset.c (syms_of_charset): Revert last change.
2060
cf872af5
EZ
20612000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
2062
2063 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
2064 charsets as unibyte, with 1-column screen width. Sent by Kenichi
2065 Handa.
cf872af5 2066
5b1ae051
EZ
20672000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
2068
2069 * charset.c (syms_of_charset): Set width of character sets
2070 eight-bit-control and eight-bit-graphic to 1 column.
2071
34ec9ebe
GM
20722000-05-26 Gerd Moellmann <gerd@gnu.org>
2073
2074 * config.in (HAVE_SPEED_T): New define.
2075
2076 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
2077 `extern speed_t'.
2078
dd854dc2
DL
20792000-05-26 Dave Love <fx@gnu.org>
2080
2081 * coding.c (shrink_decoding_region): Initialize eol_conversion.
2082
2083 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
2084 (Fsubr_arity): New function.
2085 (syms_of_data): Install them.
2086
ba9f8f95
KH
20872000-05-26 Kenichi Handa <handa@etl.go.jp>
2088
0f3e0672
KH
2089 * charset.c (init_charset_once): Set the table bytes_by_char_head
2090 correctly.
2091
cebefb44
KH
2092 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
2093 the default fontset to what Emacs uses by default.
0f3e0672
KH
2094 (check_registry_encoding): This function deleted.
2095 (Fset_fontset_font): Remove the adhoc condition for the default
2096 fontset. Allow cons in FONTNAME.
cebefb44 2097
0f3e0672
KH
2098 * fns.c (map_char_table): Ignore char-table entries for
2099 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 2100
7a18af49
KR
21012000-05-25 Ken Raeburn <raeburn@gnu.org>
2102
2103 * emacs.c (main): Initialize keyboard syms before initializing
2104 window code, so face names are available.
2105
d2af47df
SM
21062000-05-25 Stefan Monnier <monnier@cs.yale.edu>
2107
2108 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
2109 of an anchor at the beginning of a shy-group.
2110
fc6a6a4e
GM
21112000-05-25 Gerd Moellmann <gerd@gnu.org>
2112
2113 * xdisp.c (handle_invisible_prop): Don't try to skip over
2114 invisible text if end of text is already reached.
2115
005f0d35
DL
21162000-05-25 Dave Love <fx@gnu.org>
2117
02513cdd
DL
2118 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
2119
005f0d35
DL
2120 * coding.c (encode_eol): Add null statement after label.
2121
89f6ca4e
EZ
21222000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
2123
2124 * w16select.c (Fw16_set_clipboard_data): Fix the change from
2125 2000-05-20.
2126
a4e1759e
KH
21272000-05-25 Kenichi Handa <handa@etl.go.jp>
2128
2129 * ccl.c (ccl_driver): Fix previous change.
2130
eacfd7fe
KH
21312000-05-25 Kenichi Handa <handa@etl.go.jp>
2132
46ab33a9
KH
2133 * coding.c (run_pre_post_conversion_on_str): Set point to the
2134 beginning of buffer before calling coding->post_read_conversion.
2135 (decode_coding_string): Give correct args to
2136 run_pre_post_conversion_on_str.
2137 (encode_coding_string): Likewise.
2138
eacfd7fe
KH
2139 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
2140 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
2141 eight-bit-graphic correctly.
2142
f8569325
DL
21432000-05-24 Kenichi HANDA <handa@etl.go.jp>
2144
2145 * fileio.c (Finsert_file_contents): Even if a file is not found,
2146 execute codes for setting up coding system. Call
2147 after-insert-file-functions unconditionally.
2148
04545643
GM
21492000-05-24 Gerd Moellmann <gerd@gnu.org>
2150
2151 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
2152 BSD_PGRPS are not defined.
2153
747d90ea
KH
21542000-05-24 Kenichi Handa <handa@etl.go.jp>
2155
2156 * charset.c (update_charset_table): Accept nil in LONG_NAME and
2157 DESCRIPTION.
2158 (syms_of_charset): Avoid building same strings.
2159
716e3b88
GM
21602000-05-23 Gerd Moellmann <gerd@gnu.org>
2161
2162 * lread.c (Fload): Add a comment about the meaning of
2163 Vuser_init_file being t.
2164
2165 * puresize.h (BASE_PURESIZE): Increase to 675000.
2166
2167 * s/gnu-linux.h (setpgrp): Don't define it here because this
2168 prevents compilation on GNU/Linux systems with glib 2.2.
2169
2170 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
2171 as setpgid.
427ec082 2172
9aeb39fa
EZ
21732000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
2174
2175 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
2176 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
2177 version.
2178 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
2179
29ced61b
KH
21802000-05-23 Kenichi Handa <handa@etl.go.jp>
2181
0574a2ed
KH
2182 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
2183 unconditionally.
2184
3d80f24d
KH
2185 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
2186
2187 * term.c (encode_terminal_code): Set coding->src_multibyte
2188 properly.
2189
29ced61b
KH
2190 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
2191
d7e00792
KH
21922000-05-22 Kenichi Handa <handa@etl.go.jp>
2193
c9d80d38
KH
2194 * keyboard.c (read_char): Allow character codes 128..255 to be
2195 handled by input-method-function.
2196
d7e00792
KH
2197 * insdel.c (adjust_markers_for_replace): Fix previous change.
2198 (adjust_after_replace): If PREV_TEXT is nil, call
2199 adjust_markers_for_insert, not adjust_markers_for_replace.
2200
087121cc 22012000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 2202
087121cc
GM
2203 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
2204 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
2205 [HAVE_GRANDPT]: Define.
2206 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
2207
2208 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
2209 like SYSV_PTYS.
2210
2211 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
2212
2213 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
2214
c9671f81
KH
22152000-05-20 Kenichi Handa <handa@etl.go.jp>
2216
2217 The following changes are to handle 8-bit characters in a
2218 multibyte buffer/string without facing with byte combining
2219 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
2220 eight-bit-graphic (for 0xA0..0xFF) are introduced.
2221
2222 * Makefile.in (fns.o): Depend on charset.h.
2223
2224 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
2225 convert it to unibyte.
2226 (make_string): Use parse_str_as_multibyte, not chars_in_text.
2227
2228 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
2229 apparent char boundary.
2230 (Fset_buffer_multibyte): Convert 8-bit characters in the range
2231 0x80..0x9F to/from multibyte form.
2232
2233 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
2234 to unibyte.
2235
2236 * callproc.c (Fcall_process): Always encode an argument string if
2237 it is multibyte. Setup src_multibyte and dst_multibyte members of
2238 process_coding properly.
ce75fd23 2239
c9671f81
KH
2240 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
2241 SPLIT_NON_ASCII_CHAR.
2242
2243 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
2244 as is.
2245 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
2246
2247 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
2248 variables.
2249 (SPLIT_CHARACTER_SEQ): This macro deleted.
2250 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
2251 valid.
2252 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
2253 and eight-bit-graphic.
2254 (char_to_string): Likewise. Signal an error for too large
2255 character code.
2256 (char_printable_p): Return 0 for 8-bit characters.
2257 (update_charset_table): Update iso_charset_table only when a final
2258 character is non-negative.
2259 (find_charset_in_text): Renamed from find_charset_in_str.
2260 Arguments and return value changed. Callers changed.
2261 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
2262 be -1 if CHARSET is used only internally.
2263 (Fmake_char_internal): Handle new charsets; eight-bit-control and
2264 eight-bit-graphic.
2265 (Fcharset_after): Simplified.
2266 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
2267 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
2268 (multibyte_chars_in_text): Simplified by assuming there's no
2269 invalid multibyte sequence.
2270 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
2271 str_as_unibyte): New functions.
2272 (Fstring): Simpified by assuming that byte combining never
2273 happens.
2274 (init_charset_once): Initialization for
2275 LEADING_CODE_8_BIT_CONTROL.
2276 (syms_of_charset): Intern and staticpro Qeight_bit_control and
2277 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
2278 eight-bit-control and eight-bit-graphic.
2279
2280 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
2281 CHARSET_8_BIT_GRAPHIC): New macros.
2282 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
2283 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
2284 (CHARSET_REVERSE_CHARSET): Likewise.
2285 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
2286 eight-bit-graphic.
2287 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
2288 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
2289 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
2290 encounter an invalid multibyte sequence.
2291 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
2292 sequence is always valid.
2293 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
2294 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
2295 macros.
2296 (CHAR_STRING): For 8-bit characters, call char_to_string.
2297 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
2298 multibyte sequence is always valid.
2299 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
2300 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
2301 str_as_unibyte): Extern them.
2302 (BCOPY_SHORT): Fix a bug.
2303 (CHAR_LEN): This macro deleted. Callers changed to use
2304 CHAR_BYTES.
2305 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
2306 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
2307 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
2308
bd4bde7f 2309 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
2310 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
2311 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
2312 EMIT_BYTES): New macros.
2313 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
2314 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
2315 macros deleted.
2316 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
2317 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
2318 check the validity of multibyte sequence.
2319 (decode_coding_emacs_mule): New function.
2320 (encode_coding_emacs_mule): New macro.
2321 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
2322 the source.
2323 (DECODE_ISO_CHARACTER): Just return a character code.
2324 (DECODE_COMPOSITION_START): Set coding->result instead of result.
2325 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
2326 EMIT_CHAR to produced decoded characters. Exit the loop only by
2327 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
2328 block here.
2329 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
2330 only position codes for an invalid character.
2331 (encode_designation_at_bol): Return new destination pointer. 5th
2332 arg DSTP is changed to DST.
2333 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
2334 from the source by ONE_MORE_CHAR. Don't handle the case of last
2335 block here.
2336 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
2337 macros deleted.
2338 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
2339 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
2340 TWO_MORE_BYTES to fetch a byte from the source.
2341 (encode_eol): Pay attention to coding->src_multibyte.
2342 (detect_coding, detect_eol): Preserve members src_multibyte and
2343 dst_multibyte.
2344 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
2345 (encoding_buffer_size): Set magnification to 3 for all coding
2346 systems that require encoding.
2347 (ccl_coding_driver): For decoding, be sure that the result is
2348 valid multibyte sequence.
2349 (decode_coding): Initialize coding->errors and coding->result.
2350 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
2351 and raw-text, always call decode_eol. Handle the case of last
2352 block here. If not coding->dst_multibyte, convert the resulting
2353 sequence to unibyte.
2354 (encode_coding): Initialize coding->errors and coding->result.
2355 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
2356 and raw-text, always call encode_eol. Handle the case of last
2357 block here.
2358 (shrink_decoding_region, shrink_encoding_region): Detect cases
2359 that we can't skip data more rigidly.
2360 (code_convert_region): Setup src_multibyte and dst_multibyte
2361 members of coding. For decoding, if the buffer is multibyte,
2362 convert the source sequence to unibyte in advance. For encoding,
2363 if the buffer is multibyte, convert the resulting sequence to
2364 multibyte afterward.
2365 (run_pre_post_conversion_on_str): New function.
2366 (code_convert_string): Deleted and divided into the following two.
2367 (decode_coding_string, encode_coding_string): New functions.
2368 (code_convert_string1, code_convert_string_norecord): Call one of
2369 above.
2370 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
2371 MAKE_NON_ASCII_CHAR.
2372 (Fset_terminal_coding_system_internal,
2373 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
2374 and dst_multibyte members.
2375 (init_coding_once): Initialize iso_code_class with new enum
2376 ISO_control_0 and ISO_control_1.
2377
2378 * coding.h (enum iso_code_class_type): Member ISO_control_code is
2379 devided into ISO_control_0 and ISO_control_1.
2380 (struct coding_system): New members src_multibyte, dst_multibyte,
2381 errors, and result. Delete member fake_multibyte.
2382 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
2383 nonzero.
2384 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
2385 nonzero.
2386
2387 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
2388 (Faset): Likewise.
2389
2390 * editfns.c (Fformat): Be sure to convert 8-bit characters to
2391 multibyte form.
2392 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
2393 combining occurs.
2394 (Ftranspose_region): Delete codes for handling byte combining.
2395
2396 * fileio.c (Finsert_file_contents): Setup src_multibyte and
2397 dst_multibyte members of coding. On handling REPLACE on unibyte
2398 buffer, convert the result of decode_coding to unibyte. On
2399 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 2400 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
2401 multibyteness of the source (buffer or string).
2402
2403 * fns.c (concat): Handle 8-bit characters correctly.
2404 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
2405 unibyte in the result.
2406 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
2407 valid multibyte form in the result.
2408 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
2409 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
2410 return -1, signal an error.
2411 (base64_encode_1): New arg MULTIBYTE. Get each character by
2412 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
2413 character is found, return -1.
2414 (Fbase64_decode_region): Delete codes for handling byte-combining.
2415 Treat each decoded byte as a unibyte character.
2416 (Fbase64_decode_string): Return unibyte string.
2417 (Fcompare_strings, concat, string_byte_to_char): Use
2418 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
2419 FETCH_STRING_CHAR_ADVANCE.
2420 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
2421 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
2422
2423 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
2424 SPLIT_NON_ASCII_CHAR.
2425 (fontset_ref_via_base, fontset_set): Likewise
2426
2427 * insdel.c (adjust_markers_for_record_delete): Deleted.
2428 (adjust_markers_for_insert): Argument changed. Caller changed.
2429 (adjust_markers_for_replace): Likewise.
2430 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
2431 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
2432 (copy_text): Delete unused local varialbe c_save. For converting
2433 to multibyte, be sure to make all 8-bit characters in valid
2434 multibyte form.
2435 (count_size_as_multibyte): Handle 8-bit characters correctly.
2436 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
2437 adjust_after_replace, replace_range, del_range_2)
2438 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
2439 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
2440 adjust_after_replace, replace_range, del_range_2) Delete codes for
2441 handling byte combining.
2442 (adjust_before_replace): Deleted.
427ec082 2443
c9671f81
KH
2444 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
2445 SPLIT_NON_ASCII_CHAR.
2446 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
2447 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
2448 unconditionally.
2449 (Fkey_description): Likewise.
2450
2451 * lread.c (read1): On reading multibyte string, be sure to make
2452 all 8-bit chararacters in valid multibyte form.
2453 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
2454
2455 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
2456 unconditionally.
2457
2458 * process.c (Fstart_process): GCPRO current_dir before calling
2459 Ffind_operation_coding_system. Encode arguments here.
2460 (create_process): Don't encode arguments here. Setup
2461 src_multibyte and dst_multibyte members of struct coding.
2462 (read_process_output): Setup src_multibyte and dst_multibyte
2463 members of struct coding. If the output is to multibyte buffer,
2464 always decode the output of the process. Adjust the
2465 representation of 8-bit characters to the multibyteness of the
2466 output.
2467 (send_process): Setup coding->src_multibyte according to the
2468 multibyteness of the source.
2469
2470 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
2471 unconditionally.
2472 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
2473 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
2474
2475 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
2476 CHAR_LEN.
2477
2478 * w16select.c (Fw16_set_clipboard_data): Setup members
2479 src_multibyte and dst_multibyte of coding. Adjusted for the
2480 change for find_charset_in_str.
2481 (Fw16_get_clipboard_data): Likewise.
2482
2483 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
2484 dst_multibyte of coding.
2485 (x_to_w32_font): Likewise.
2486
2487 * w32select.c (Fw32_set_clipboard_data): Setup members
2488 src_multibyte and dst_multibyte of coding. Adjusted for the
2489 change for find_charset_in_str.
2490 (Fw32_get_clipboard_data): Likewise.
2491
2492 * xdisp.c (get_next_display_element): Handle 8-bit characters
2493 correctly.
2494 (next_element_from_display_vector): Use CHAR_BYTES instead of
2495 CHAR_LEN.
2496 (disp_char_vector): Use SPLIT_CHAR instead of
2497 SPLIT_NON_ASCII_CHAR.
2498
2499 * xselect.c (selection_data_to_lisp_data): Setup members
2500 src_multibyte and dst_multibyte of coding. Adjusted for the
2501 change for find_charset_in_str.
2502 (lisp_data_to_selection_data): Likewise.
2503
5f64c9e0
GM
25042000-05-19 Gerd Moellmann <gerd@gnu.org>
2505
2b63d473
GM
2506 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
2507 buffer.
2508
5f64c9e0
GM
2509 * dispextern.h (Vimage_types): Add extern declaration.
2510
2511 * xdisp.c (Vimage_types): Moved here from xfns.c.
2512 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
2513
2514 * xfns.c (Vimages_types): Moved to xdisp.c.
2515 (syms_of_xfns): Move `image-types' to xdisp.c.
2516
2517 * w32fns.c (Vimage_types): Removed.
2518 (syms_of_w32fns): Remove `image-types'.
2519
813086ea
KH
25202000-05-18 Kenichi Handa <handa@etl.go.jp>
2521
2522 * fns.c (map_char_table): Pay attention to character number of
2523 charset. Check the validity of charset at the first level. For
2524 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
2525 the default value.
2526
2527 * fontset.c: Include "buffer.h".
2528 (fs_load_font): If the face has fontset, record the face ID in
2529 that fontset.
2530 (Finternal_char_font): New function.
2531 (accumulate_font_info): New function.
2532 (Ffontset_info): Rewritten for the new fontset implementation.
2533 (syms_of_fontset): Register Vdefault_fontset in the first element
2534 of Vfontset_table. Include Vdefault_fontset in
2535 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
2536 function.
2537
bdaebbf0
DL
25382000-05-16 Dave Love <fx@gnu.org>
2539
2540 * m/iris5d.h: Deleted -- unused.
2541
cb613bb8
GM
25422000-05-16 Gerd Moellmann <gerd@gnu.org>
2543
b15f3b77
GM
2544 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
2545 `invalid' instead of `illegal'.
2546
2547 * indent.c (Fmove_to_column): When ending within a tab, insert
2548 spaces first so that markers at the end of the tab get adjusted.
2549
835c1b36
GM
2550 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
2551 buffer list that wasn't selected in that frame.
2552
cb613bb8
GM
2553 * filelock.c (get_boot_time): To obtain an 8 char file name, which
2554 is needed on mescaline, use a 2 char prefix, and call
2555 make_temp_name with second arg non-zero.
2556
2557 * fileio.c (make_temp_name): New function, extracted from
2558 Fmake_temp_name.
2559 (Fmake_temp_name): Use it.
2560
f685bea9
EZ
25612000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
2562
2563 * window.c (coordinates_in_window): Subtract 1 when computing
2564 right_x.
2565
a1b8d58b
GM
25662000-05-15 Gerd Moellmann <gerd@gnu.org>
2567
2568 * Makefile.in (lisp): Add env.elc.
2569
2570 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
2571
a265079f
GM
25722000-05-12 Gerd Moellmann <gerd@gnu.org>
2573
2574 * search.c (Freplace_match): Handle case of `\N' in the
2575 replacement when there's no group N.
2576
da4496b6
GM
25772000-05-11 Gerd Moellmann <gerd@gnu.org>
2578
0ace421a
GM
2579 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
2580 of the message to message_dolog.
2581
1172eb8d
GM
2582 * keyboard.c (read_char): Don't clear current message for help
2583 events; let the code handling help events handle this. Change
2584 code detecting help events that should be ignored.
2585
da4496b6
GM
2586 * xdisp.c (handle_single_display_prop): Don't try to set PT if
2587 we're interating over a string.
2588
0623e40f
DL
25892000-05-09 Dave Love <fx@gnu.org>
2590
2591 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
2592 that offset before writing. Move gcpro region past call of
2593 Ffile_regular_p.
2594
bae2503b
DL
25952000-05-04 Dave Love <fx@gnu.org>
2596
2597 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
2598
ec82fb2f
GM
25992000-05-04 Gerd Moellmann <gerd@gnu.org>
2600
2601 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
2602 of inserted characters when BUF equals the current buffer, and PT
2603 is in front of or equal to FROM.
2604
cbf18892
GM
26052000-05-03 Gerd Moellmann <gerd@gnu.org>
2606
4ff40dd0
GM
2607 * xdisp.c (handle_single_display_prop): If display property value
2608 is invalid, or something not supported on the frame, restore
2609 iterator's position to what it was initially. Make sure to return
2610 0 for invalid and unsupported property values.
2611
cbf18892
GM
2612 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
2613 that x_per_char_metric returns null.
2614
1b0672c3
GM
26152000-05-02 Gerd Moellmann <gerd@gnu.org>
2616
576da55d
GM
2617 * xterm.h (struct face): Add forward declaration.
2618 (struct image): Ditto.
2619 (image_ascent): Add prototype.
2620
2621 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
2622 (x_draw_image_relief, x_draw_image_foreground_1): Call function
2623 image_ascent instead of using IMAGE_ASCENT.
2624
2625 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
2626 (IMAGE_ASCENT): Removed.
2627
2628 * xfns.c (Qcenter): New variable.
2629 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
2630 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
2631 (image_ascent): New function.
2632 (lookup_image): Recognize `:ascent center'.
2633 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
2634 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
2635 (xbm_load): Don't set image's ascent here.
2636 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
2637 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
2638 check ascent values here.
2639 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
2640 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
2641 (syms_of_xfns): Initialize Qcenter.
2642
1b0672c3
GM
2643 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
2644 to the limits, increase the limits.
2645
0d7811ed
KH
26462000-05-01 Kenichi Handa <handa@etl.go.jp>
2647
2648 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
2649 Check Vfont_encoding_alist against the full name of the opened
2650 font.
2651
a943a5ca
GM
26522000-04-28 Gerd Moellmann <gerd@gnu.org>
2653
2654 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
2655 taller than the window.
2656
5dba1e29
KH
26572000-04-28 Kenichi Handa <handa@etl.go.jp>
2658
2659 * xfaces.c (realize_x_face): Fix the argument of the second
2660 xassert. BASE_FACE may not be a face for ASCII.
2661
353964e3
GM
26622000-04-27 Gerd Moellmann <gerd@gnu.org>
2663
c76e04a8
GM
2664 * print.c (print_object): Treat print-length < 0 as nil.
2665
2666 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
2667
2668 * s/freebsd.h (TERMCAP_OBJ): Removed.
2669 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
2670
2671 * lread.c (read1): Don't treat period followed by certain
2672 characters as symbol start.
2673
2674 * xfns.c (slurp_file): New function.
2675 (xbm_image_p): Handle case of in-memory XBM files.
2676 (xbm_scan): Rewritten to work on memory buffers instead of files.
2677 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
2678 Work on memory buffers instead of files. If DATA is null test
2679 if buffer looks like an in-memory XBM file.
2680 (xbm_load_image): Renamed from xbm_load_image_file. Work on
2681 memory buffers instead of files.
2682 (xbm_file_p): New function.
2683 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
2684
353964e3
GM
2685 * lread.c (end_of_file_error): New function.
2686 (read1): Call it instead of signaling `end-of-file' directly.
2687
427ec082 2688 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
2689 with Fprinc instead of Fprin1.
2690
24d744ac
KR
26912000-04-26 Ken Raeburn <raeburn@gnu.org>
2692
2693 * window.c (freeze_window_start): Check that minibuffer scroll
2694 window isn't nil before extracting the window structure pointer
2695 from it.
2696
2697 * undo.c (record_delete): If we hit the end of the undo list, stop
2698 picking elements apart.
2699
7464346d
GM
27002000-04-26 Gerd Moellmann <gerd@gnu.org>
2701
2702 * xdisp.c (display_line): If lines are continued, restore
2703 iterator's ascent/descent information to the values before the
2704 first glyph not fitting on the line.
2705
612839b6
GM
27062000-04-25 Gerd Moellmann <gerd@gnu.org>
2707
2708 * xdisp.c (try_window_id) <all changes above window start>: Adjust
2709 positions in glyph matrix. Don't compute new window end
2710 positions.
2711
2712 * dispnew.c (increment_matrix_positions): Renamed from
2713 increment_glyph_matrix_buffer_positions.
2714 (increment_row_positions): Renamed from
2715 increment_glyph_row_buffer_positions.
2716
2717 * dispextern.h: Change names of renamed functions from dispnew.c
2718 in prototypes.
2719
cc181e95
GM
27202000-04-24 Gerd Moellmann <gerd@gnu.org>
2721
abfcc168
GM
2722 * fileio.c (Fdo_auto_save): Create directories for auto-save
2723 list file if necessary.
2724
cc181e95
GM
2725 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
2726 from buffer or frame.
2727 (automatic_hscrolling_p): New variable.
2728 (hscroll_windows): Scroll windows horizontally only if automatic
2729 hscrolling is allowed.
2730 (syms_of_xdisp): New variable `automatic-hscrolling'.
2731
2732 * frame.h (struct frame): Add member extra_line_spacing.
2733
2734 * xfns.c (x_set_line_spacing): New function.
2735 (Fx_create_frame): Set line spacing from resources.
2736 (Qline_spacing): New variable.
2737 (syms_of_xfns): Initialize Qline_spacing.
427ec082 2738
cc181e95
GM
2739 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
2740
2741 * buffer.c (init_buffer_once): Handle extra_line_spacing.
2742 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 2743 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
2744 extra_line_spacing from default value.
2745 (init_buffer_once): Initialize default value of extra_line_spacing.
2746
2747 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
2748 and extra3.
2749
2750 * xterm.c (x_produce_glyphs): Remove reference to struct it's
2751 prompt_width. Add extra line spacing.
2752
2753 * term.c (produce_glyphs): Remove reference to struct it's
2754 prompt_width.
2755
2756 * dispextern.h (struct it): Remove member prompt_width, add
2757 extra_line_spacing.
2758
58827478
GM
27592000-04-22 Gerd Moellmann <gerd@gnu.org>
2760
2761 * dispnew.c (update_frame_line): When writing a whole line, make
2762 sure cursor is in the right row afterwards, otherwise a use of
2763 capability `ch' in cmgoto might leave the cursor in the row below.
2764
25a87f42
GM
27652000-04-21 Gerd Moellmann <gerd@gnu.org>
2766
2767 * lisp.h (struct Lisp_Buffer_Cons): Remove.
2768
2769 * keyboard.c (timer_check): Fix typo in comment.
2770
54edf5c2
KH
27712000-04-21 Kenichi Handa <handa@etl.go.jp>
2772
2773 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
2774 name change: ch -> character.
2775
3a64eef5
GM
27762000-04-20 Gerd Moellmann <gerd@gnu.org>
2777
2778 * keyboard.c (echo_message_buffer): New variable.
2779 (echo_now): Set echo_message_buffer to the echo area buffer used
2780 to display the echo.
2781 (cancel_echoing): Reset echo_message_buffer to nil.
2782 (read_char): Code rewritten that handles canceling an echo or
2783 echoing a dash, respectively.
2784
2785 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
2786 directory doesn't exist.
2787
6142fdcb
DL
27882000-04-19 Dave Love <fx@gnu.org>
2789
2790 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
2791 (concat): Don't allow numeric args.
2792 (Fconcat): Doc change.
6142fdcb 2793
ac6b5352
SM
27942000-04-19 Stefan Monnier <monnier@cs.yale.edu>
2795
2796 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
2797 instead define end_match(1|2) more carefully.
2798 Use GET_CHAR_BEFORE_2 for `begline'.
2799
cb9215e4
GM
28002000-04-19 Gerd Moellmann <gerd@gnu.org>
2801
5e3dac3f
GM
2802 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
2803 on 64-bit systems where NULL is defined as `0'.
2804
2805 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
2806 the `variable argument list' to make it work on Alpha.
2807
cb9215e4
GM
2808 * m/alpha.h (_LP64) [!_LP64]: Define.
2809 (ORDINARY_LINK): Define for NetBSD.
2810
2811 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 2812
f532dca0
DL
28132000-04-19 Dave Love <fx@gnu.org>
2814
c750667e
DL
2815 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
2816 change.
2817
2818 * Makefile.in (LIBS): Don't use.
2819 (GETLOADAVG_OBJ): Define again.
2820 (otherobj): Add GETLOADAVG_OBJ.
2821
f532dca0
DL
2822 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
2823
1c7e22fd
GM
28242000-04-18 Gerd Moellmann <gerd@gnu.org>
2825
f6d3257b
GM
2826 * lread.c (read_filtered_event): Cancel and start busy cursor.
2827
427ec082 2828 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
2829 that the per-character metrics may be null.
2830
e10f64e7
GM
28312000-04-17 Gerd Moellmann <gerd@gnu.org>
2832
0daee095
GM
2833 * buffer.c (clone_per_buffer_values): New function.
2834 (Fmake_indirect_buffer): Add optional argument CLONE. Call
2835 clone_per_buffer_values if CLONE is not nil.
2836
e10f64e7
GM
2837 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
2838
38687d43
DL
28392000-04-16 Dave Love <fx@gnu.org>
2840
2841 * Makefile.in: Remove obsolete localcpp stuff.
2842 (GETLOADAVG_OBJ): Don't define.
2843 (obj): Move LIBOBJS...
2844 (otherobj): ... to here.
2845 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
2846 whitespace-only lines after the continuation (Irix).
2847
c21c7262
GM
28482000-04-14 Gerd Moellmann <gerd@gnu.org>
2849
2850 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
2851
2852 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
2853
314767c0
DL
28542000-04-14 Dave Love <fx@gnu.org>
2855
2856 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
2857 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
2858 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
2859 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
2860 NLIST_STRUCT.
2861
2862 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
2863 autoconfiscated HAVE_GETLOADAVG.
2864
2865 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
2866 BROKEN_MKTIME.
2867
a2522dca
GM
28682000-04-14 Gerd Moellmann <gerd@gnu.org>
2869
2870 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
2871 (fill_in_lock_file_name): Avoid existing files that aren't
2872 links.
2873
33744b5d
DL
28742000-04-14 Dave Love <fx@gnu.org>
2875
c21c7262 2876 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
2877 (INTERVAL_SRC): Convert to make variable.
2878 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
2879 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
2880 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
2881 add LIBOBJS.
2882 (SOME_MACHINE_OBJECTS): Remove interval stuff.
2883 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
2884 (shortlisp): Add facemenu, float-sup, frame.
2885 (SOME_MACHINE_LISP): Remove them from here.
2886 (LIBES): Change unused LDLIBS to autoconf LIBS.
2887
2888 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
2889
9d3d5916
KH
28902000-04-14 Kenichi Handa <handa@etl.go.jp>
2891
2892 * composite.c (update_compositions): If FROM and TO are not in a
2893 valid range, do nothing.
2894
198e3c7a
GM
28952000-04-13 Gerd Moellmann <gerd@gnu.org>
2896
2897 * tparam.c (tparam1): Abort when encountering an unknown
2898 `%'-specifier.
2899
2900 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
2901 terminfo.o.
2902
2903 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
2904 as TERMCAP_OBJ.
2905
055a28c9
EZ
29062000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
2907
2908 * fileio.c (a_write): Remove redundant semi-colons.
2909 (e_write): Return -1 if failed to write all the data.
2910 This fixes the changes made at 1999-12-15.
2911
f5c75033
DL
29122000-04-12 Dave Love <fx@gnu.org>
2913
2914 * fns.c (mapcar1): Test for null vals to support mapc.
2915 (Fmapc): New function.
2916
0c3cfc51
EZ
29172000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
2918
2919 * msdos.c (NUM_MOUSE_BUTTONS): Define.
2920 (IT_frame_up_to_date): Support the buffer local value of
2921 cursor-type, if defined.
2922
33465a31
DL
29232000-04-10 Dave Love <fx@gnu.org>
2924
2925 * editfns.c (preceding-char, following-char): Doc fix.
2926
6ed56568
KR
29272000-04-10 Ken Raeburn <raeburn@gnu.org>
2928
2929 * Makefile.in (temacs): Revert 2000-03-12 change.
2930
7cf80d4e
JR
29312000-04-10 Jason Rumney <jasonr@gnu.org>
2932
2933 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
2934
34f3f342
GM
29352000-04-10 Gerd Moellmann <gerd@gnu.org>
2936
1a1b1895
GM
2937 * xdisp.c (setup_echo_area_for_printing): Choose an echo
2938 area buffer, if it's not set up yet.
2939
34f3f342
GM
2940 * indent.c (compute_motion): Set immediate_quit.
2941
be0dbdab
GM
29422000-04-09 Gerd Moellmann <gerd@gnu.org>
2943
c45be9ac
GM
2944 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
2945 variable.
2946 (realize_tty_face): Suppress boldness if colors are the inverse of
2947 the default colors, and tty_suppress_bold_inverse_default_colors_p
2948 is set.
2949 (Ftty_suppress_bold_inverse_default_colors): New function.
2950 (syms_of_xfaces): Defsubr it.
2951
be0dbdab
GM
2952 * buffer.c (Frestore_buffer_modified_p): New function.
2953 (syms_of_buffer): Defsubr it.
2954
e8413c3b
KR
29552000-04-08 Ken Raeburn <raeburn@gnu.org>
2956
87f67317
KR
2957 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
2958 charset id (int) argument, not a charset (Lisp_Object).
2959
e8413c3b
KR
2960 * coding.h (code_convert_string): Declare.
2961 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
2962 object, as the fourth argument to code_convert_string.
2963
2964 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
2965 value.
2966 (Fset_fontset_font): Use EQ to compare lisp objects.
2967
7c752c80
KR
29682000-04-05 Ken Raeburn <raeburn@gnu.org>
2969
c0333abc
KR
2970 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
2971 a pointer that looks like a lisp object.
2972 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
2973 zero, instead see whether it's an integer object, since they can't
2974 have intervals.
2975 (GET_INTERVAL_OBJECT): Simply assign to the destination.
2976
7c752c80
KR
2977 * dispnew.c (allocate_matrices_for_frame_redisplay,
2978 direct_output_forward_char): Use X(U)INT and make_number as needed
2979 to convert between (unsigned) int values and lisp integers.
2980 * keyboard.c (read_key_sequence): Likewise.
2981 * lread.c (substitute_object_recurse): Likewise.
2982 * fns.c (concat, hash_lookup, hash_remove): Likewise.
2983 * minibuf.c (do_completion, Fminibuffer_complete_word,
2984 Fminibuffer_completion_help): Likewise.
2985 * term.c (produce_special_glyphs): Likewise.
2986
2987 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
2988 * print.c (print_preprocess, print_object): Likewise.
2989
2990 * search.c (compile_pattern): Use NILP when checking for nil.
2991
74e49b38
KR
2992 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
2993 __OPTIMIZE__]: Provide a GNU C macro version that handles
2994 lisp-object unions.
2995 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
2996 field, to better cope with ENABLE_CHECKING and calls that modify a
2997 Lisp_Object using its old value.
2998
685e5ed2
GM
29992000-04-04 Gerd Moellmann <gerd@gnu.org>
3000
c407c570
GM
3001 * window.c (compare_window_configurations): Signal an error
3002 if parameters C1 or C2 aren't window configurations.
3003
685e5ed2
GM
3004 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
3005 AFTER_POTENTIAL_GC calls around calls to functions that can
3006 signal an error and thus invoke the debugger.
3007
587a49ab
GM
30082000-04-03 Gerd Moellmann <gerd@gnu.org>
3009
62f20204
GM
3010 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
3011 an error if decoding fails.
3012
587a49ab
GM
3013 * keyboard.c (lispy_mouse_names): Variable removed.
3014 (Vlispy_mouse_stem): New variable.
3015 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
3016 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
3017 for any mouse button number. Increase size of mouse_syms and
3018 button_down_location as needed. Call modify_event_symbol with
3019 different arguments.
3020 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
3021 Call modify_event_symbol with different arguments.
3022 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
3023 for any button number. Call modify_event_symbol with different
3024 arguments.
3025 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
3026 Accept a string for NAME_ALIST_OR_STEM.
3027
3028 * lisp.h (larger_vector): Add prototype.
3029
3030 * fns.c (larger_vector): Make externally visible.
3031
3032 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
3033
2d1675e4
SM
30342000-04-02 Stefan Monnier <monnier@cs.yale.edu>
3035
3036 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
3037 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
3038 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
3039 we are between str1 and str2.
3040 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
3041 (PATFETCH): Use `TRANSLATE'.
3042 (PATFETCH_RAW): Fetch multibyte char if applicable.
3043 (PATUNFETCH): Remove.
3044 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
3045 When writing a char, write it directly into the pattern buffer rather
3046 than going needlessly through a temp char-array.
3047 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
3048 multibyte magic and remove the useless `#ifdef emacs'.
3049 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
3050 buffer.
3051
3052 * regex.h (struct re_pattern_buffer): Make field `multibyte'
3053 conditional on `emacs'.
3054
3055 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
3056
cc2d8c6b
KR
30572000-04-01 Ken Raeburn <raeburn@gnu.org>
3058
3059 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
3060 non-union-type versions of XMARK and friends here, because XMARK
3061 and friends won't work on an integer field if NO_UNION_TYPE is not
3062 defined.
3063 (make_number): Define as a function if it's not defined as a
3064 macro.
3065
09654086
KR
3066 * composite.c (run_composite_function): Use NILP when checking for
3067 nil.
3068 (syms_of_composite): Delete local var NARGS, pass an int as first
3069 argument to Fmake_hash_table.
3070
2387b382
KR
3071 * editfns.c (text_property_stickiness): Use NILP to test
3072 Lisp_Object boolean value.
3073 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
3074 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
3075 problems reading from and changing the same lisp value in an
3076 XSETSTRING call.
3077
27660e89
GM
30782000-04-01 Gerd Moellmann <gerd@gnu.org>
3079
3080 * term.c (TN_no_color_video): New variable.
3081 (term_init): Intitialize TN_no_color_video.
3082 (enum no_color_bit): New enumeration.
3083 (MAY_USE_WITH_COLORS_P): New macro.
3084 (turn_on_face): Use it to determine if attributes may be used
3085 combined with colors.
3086
3578db3c
KR
30872000-04-01 Ken Raeburn <raeburn@gnu.org>
3088
3089 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
3090 with int lvalues via casts; instead, just yield lisp object
3091 lvalues.
3092 (enlarge_window): Variable sizep now points to Lisp_Object. Use
3093 proper accessor macros.
3094 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
3095 (grow_mini_window): Fix typo getting int value of root->height.
3096
6fc556fd
KR
3097 * xdisp.c (compute_string_pos): Fix order of arguments to
3098 string_pos_nchars_ahead.
3099 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
3100 count arg to variable-arg routines like Frun_hook_with_args and
3101 Fformat.
587a49ab
GM
3102 (back_to_previous_visible_line_start)
3103 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
3104 fixed-arg routines like Fget_char_property and Fmake_string.
3105 (reconsider_clip_changes): Use XINT when comparing integer lisp
3106 objects, or passing them as int arguments.
587a49ab
GM
3107 (mark_window_display_accurate, insert_left_trunc_glyphs)
3108 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
3109 storing or passing integer values as lisp objects.
3110 (set_cursor_from_row, highlight_trailing_whitespace): Use
3111 INTEGERP, not implicit test against zero, for glyph object.
3112 (try_window_id): Don't use make_number when we want an int value.
3113
3114 * xfaces.c (xlfd_symbolic_value): Make last argument a
3115 Lisp_Object, to be consistent with callers.
3116 (Fbitmap_spec_p): Use XINT to get numeric value of height.
3117 (lface_hash): Apply XFASTINT to lisp values before folding in.
3118
3119 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
3120 fill in window width and height. Pass an int, not a lisp object,
3121 as first arg to Finsert.
3122
6e7b2457
GM
31232000-04-01 Gerd Moellmann <gerd@gnu.org>
3124
610d841e
GM
3125 * xfaces.c (realize_basic_faces): Block input while realizing
3126 the faces.
3127
6e7b2457
GM
3128 * keyboard.c (lispy_mouse_names): Add additional mouse names.
3129
3130 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
3131
aa110c0c
GM
31322000-03-31 Gerd Moellmann <gerd@gnu.org>
3133
3134 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 3135 or ASCII, handle case that per-char metric is null.
aa110c0c 3136
8801a864
KR
31372000-03-30 Ken Raeburn <raeburn@gnu.org>
3138
c6129d7e
KR
3139 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
3140
8801a864
KR
3141 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
3142 XSUBR, XBUFFER): Verify correct object type before returning
3143 pointer, using eassert.
3144 * frame.h (XFRAME): Likewise.
3145
3146 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
3147 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
3148 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
3149 type.
3150 * data.c (set_internal): Likewise.
3151 * dispextern.h (WINDOW_WANTS_MODELINE_P,
3152 WINDOW_WANTS_HEADER_LINE_P): Likewise.
3153 * fileio.c (auto_save_1): Likewise.
3154 * insdel.c (check_markers): Likewise.
3155 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
3156 * undo.c (record_insert): Likewise.
3157 * vmsproc.c (child_sig): Likewise.
3158 * window.c (unshow_buffer, window_loop): Likewise.
3159 * xterm.c (x_erase_phys_cursor): Likewise.
3160
8e7af858
GM
31612000-03-30 Gerd Moellmann <gerd@gnu.org>
3162
3163 * xfns.c (free_image_cache): Free the cache structure itself
3164 last, after all its members have been freed.
3165
3166 * lisp.h (xstrdup): Add prototype.
3167
3168 * alloc.c (xstrdup): Moved here from xfaces.c.
3169 (allocating_for_lisp): Variable removed.
3170 (lisp_malloc): Block input around the calls to malloc and
3171 mem_insert.
3172
3173 * xfaces.c (realize_tty_face): Use find_symbol_value instead
3174 of Fsymbol_value.
3175 (xstrdup): Moved to alloc.c.
3176
e0b8c689
KR
31772000-03-29 Ken Raeburn <raeburn@gnu.org>
3178
b96f9fb7
KR
3179 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
3180
3181 * emacs.c (main): Fix sense of no-loadup test.
3182
e0b8c689
KR
3183 * config.in (ENABLE_CHECKING): Undef.
3184
3185 * lisp.h (struct interval): Replace "parent" field with a union of
3186 interval pointer and Lisp_Object; add new bitfield to use as
3187 discriminant. Change other flag fields to bitfields.
3188 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
3189 is defined and the supplied test fails, print a message and
3190 abort.
3191 (eassert): New macro. Use CHECK to provide an assert-like
3192 facility.
3193
3194 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
3195 pointers; abort if the value looks like a lisp object.
3196 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
3197 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
3198 Modify for new interval parent definition.
3199
3200 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
3201 UNMARK_BALANCE_INTERVALS): Update references that need an
3202 addressable lisp object in the interval structure.
3203 (die): New function.
3204 (suppress_checking): New variable.
3205
3206 * intervals.c (interval_start_pos): Just return 0 if there's no
3207 parent object.
3208
f83c5440
GM
32092000-03-29 Gerd Moellmann <gerd@gnu.org>
3210
3211 * lread.c (read1): Accept `.' (period) as symbol start like in CL
3212 and earlier Emacs versions.
3213
3214 * keyboard.c (Ftop_level): Cancel busy-cursor.
3215
3216 * eval.c (call_debugger): Cancel busy-cursor.
3217
fdce64ff
KH
32182000-03-29 Kenichi Handa <handa@etl.go.jp>
3219
3220 * search.c (Freplace_match): Adjust multibyteness of the current
3221 buffer and NEWTEXT. Free allocated memory before signaling an
3222 error.
3223
f6a3f532
SM
32242000-03-28 Stefan Monnier <monnier@cs.yale.edu>
3225
3226 * regex.c (analyse_first): New function obtained by ripping out most
3227 of re_compile_fastmap and generalizing it a little bit so that it
3228 can also just return whether a given (sub)pattern can match the empty
3229 string or not.
3230 (regex_compile): Use `analyse_first' to decide whether the loop-check
3231 needs to be done or not for *, +, *? and +? (the loop check is costly
3232 for non-greedy repetition).
3233 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
3234
e9b309ac
DL
32352000-03-28 Dave Love <fx@gnu.org>
3236
bb15bd9a
DL
3237 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
3238 alpha.
3239
e9b309ac
DL
3240 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
3241
ed0767d8
SM
32422000-03-27 Stefan Monnier <monnier@cs.yale.edu>
3243
3244 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
3245 an expression.
3246 (enum re_opcode_t): Update description of succeed_n.
3247 (PATFETCH): Always define.
3248 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
3249 operators, char classes, shy-groups and intervals).
3250 Optimize special cases of intervals so as to only use succeed_n and
3251 jump_n when really needed.
3252 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
3253 that we don't have to handle the special cases any more.
3254 Simplify on_failure_jump handling as well.
3255
e11e7e46
JR
32562000-03-28 Jason Rumney <jasonr@gnu.org>
3257
3258 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
3259
88faab89
GM
32602000-03-27 Gerd Moellmann <gerd@gnu.org>
3261
182ff242
GM
3262 * s/freebsd.h (GC_SETJMP_WORKS): Define.
3263
3264 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 3265
182ff242
GM
3266 * alloc.c (mark_maybe_object): New function.
3267 (mark_memory): Use it.
3268 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
3269 (setjmp_tested_p, longjmp_done): New variables.
3270 (test_setjmp): New function.
3271 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
3272 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
3273
c1005d06
GM
3274 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
3275 to DEC_TEXT_POS and INC_TEXT_POS.
3276
3277 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
3278 with parameter MULTIBYTE_P.
3279
427ec082 3280 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
3281 MULTIBYTE_P.
3282
7439e5b9 3283 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
3284 buffers because it looks for multibyte character byte sequences
3285 which don't exist in unibyte text.
7439e5b9 3286
d9c545da
GM
3287 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
3288
11fd416e 3289 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
3290 [DEBUG_X_COLORS]: New functions.
3291 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
3292
3293 * xfns.c (x_set_cursor_color): Get color reference counts right.
3294
3295 * xterm.c (x_copy_color): New function.
3296 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
3297
3298 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
3299 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
3300 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
3301 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
3302 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
3303 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
3304 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
3305 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
3306 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
3307 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
3308
11fd416e
GM
3309 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
3310 names for handling per-buffer variables.
d9c545da
GM
3311
3312 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
3313 instead of MAX_BUFFER_LOCAL_VARS.
3314 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
3315
3316 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
3317
88faab89
GM
3318 * xfns.c (x_specified_cursor_type): New function.
3319 (x_set_cursor_type): Use it.
3320
3321 * buffer.h (struct buffer): Add cursor_type.
3322
d80f42b7
SM
33232000-03-26 Stefan Monnier <monnier@cs.yale.edu>
3324
3325 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 3326 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 3327 opcode.
d80f42b7
SM
3328 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
3329 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
3330 executing it as well as when popping it off the stack to find infinite
3331 loops in non-greedy repetition operators.
3332
89e80928
GM
33332000-03-26 Gerd Moellmann <gerd@gnu.org>
3334
3d4ff2dd
GM
3335 * doc.c (Qfunction_documentation): New variable.
3336 (syms_of_doc): Initialize Qfunction_documentation.
3337 (Fdocumentation): If FUNCTION is a symbol with non-nil
3338 `function-documentation' property, return a documentation derived
3339 from that.
3340
bd96bd79
GM
3341 * buffer.c (syms_of_buffer): Add default-cursor-type.
3342 (init_buffer_once): Don't let cursor_type have a local value
3343 in every buffer.
3344
19d1bc27
GM
3345 * xterm.c (x_display_and_set_cursor): Choose cursor depending
3346 on buffer-local value of cursor_type.
3347 (x_draw_bar_cursor): Add parameter WIDTH.
3348
3349 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
3350 (init_buffer_once): Set default cursor_type value to t.
3351 Mark cursor_type as local everywhere.
3352 (syms_of_buffer): New per-buffer variable cursor-type.
3353
89e80928
GM
3354 * buffer.h (struct buffer): Remove member local_var_flags,
3355 add local_flags.
3356 (MAX_BUFFER_LOCAL_VARS): New macro.
3357 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
3358 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
3359 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
3360 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
3361
3362 * print.c (print_object): Use new macros for per-buffer
3363 variables.
3364
3365 * category.c (Fset_category_table): Use new macros for per-buffer
3366 variables.
3367
3368 * buffer.c (buffer_permanent_local_flags): Make a char array.
3369 (max_buffer_local_idx): New variable.
3370 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
3371 for new handling of per-buffer variables.
3372 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
3373 (init_buffer_once): Initialize per-buffer vars differently.
3374 Set max_buffer_local_idx.
3375
3376 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
3377 variables.
3378
3379 * lread.c (defvar_per_buffer): Use new macros for per-buffer
3380 variables.
3381
3382 * data.c (do_symval_forwarding, store_symval_forwarding)
3383 (find_symbol_value, set_internal, default_value, Fset_default)
3384 (Fkill_local_variable, Flocal_variable_p): Use new macros for
3385 per-buffer variables.
3386
3387 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
3388
9a0dd3dc
GM
33892000-03-24 Gerd Moellmann <gerd@gnu.org>
3390
b68c375f
GM
3391 * xterm.c (x_term_init): Unblock input around call1 of
3392 Qvendor_specific_keysyms.
3393
9a0dd3dc
GM
3394 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
3395 (find_defun_start): Consider an open parenthesis in column 0
3396 a defun start only if open_paren_in_column_0_is_defun_start is set.
3397 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
3398
7973e637
SM
33992000-03-24 Stefan Monnier <monnier@cs.yale.edu>
3400
3401 * eval.c (Fautoload): Add entry in load-history (if after dump).
3402 * lread.c (load-history): Update docstring.
3403
39210e90
GM
34042000-03-24 Gerd Moellmann <gerd@gnu.org>
3405
3406 * indent.c (Fvertical_motion): Always use the current buffer.
3407 Temporarily change the window's buffer, if necessary.
3408
72db3ab5
GM
34092000-03-23 Gerd Moellmann <gerd@gnu.org>
3410
3411 * xterm.c (fast_find_position): Make sure not to consider rows
3412 not visible in the window.
3413
990b2375
SM
34142000-03-22 Stefan Monnier <monnier@cs.yale.edu>
3415
3416 * regex.c (enum syntaxcode): Provide default for non-Emacs.
3417 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
3418
ff4df011
JR
34192000-03-22 Jason Rumney <jasonr@gnu.org>
3420
3421 * w32menu.c (single_submenu): Set help string to NULL if none.
3422 (w32_menu_show): Set help string correctly.
3423 (add-menu-item): Set help string in MIIM_DATA for menu item.
3424 Load SetMenuItemInfoA explicitly.
3425 (w32_menu_display_help): New function.
427ec082 3426
ff4df011
JR
3427 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
3428 (QCdata): Moved to xdisp.c.
3429
3430 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
3431 (Vw32_charset_to_codepage_alist): Removed.
3432 (Vw32_charset_info_alist): New variable.
3433 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
3434 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
3435 greek, hebrew, thai, johab, mac, unicode]): New symbols.
3436 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
3437 with TODO comment.
3438 (w32_codepage_for_font): Use Vw32_charset_info_alist.
3439 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
3440 Define Vw32_charset_info_alist and w32_charset symbols.
3441
34422000-03-22 Jason Rumney <jasonr@gnu.org>
3443
3444 * makefile.nt (w32bdf.obj): Update dependencies.
3445
3446 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
3447
3448 * w32fns.c: Include fontset.h after dispextern.h.
3449 (Fx_create_frame): Do not create fontset.
3450 (w32_load_system_font): Doc fix.
3451 (Fx_close_connection): Free full_name if it is not shared.
3452
3453 * w32term.c: Include fontset.h after dispextern.h.
3454 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
3455 updated.
3456 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
3457 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
3458 (w32_font_is_double_byte): New function, needs body.
3459 (x_append_glyph): Set glyph->glyph_not_available_p.
3460 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
3461 it->charset. If it->multibyte_p is zero and it->c is a multibyte
3462 character, convert it to a unibyte character.
3463 (struct glyph_string): Delete member `charset'.
3464 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
3465 calculating it is found.
3466 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
3467 the case that per char metric is not available correctly.
3468 (x_fill_glyph_string): Handle the case that the specific glyph is
3469 not available correctly.
3470 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
3471 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
3472 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
3473 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
3474 fontset. Don't call FS_LOAD_FONT.
3475
439d5cb4
KR
34762000-03-22 Ken Raeburn <raeburn@gnu.org>
3477
3478 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
3479 (INT_LISPLIKE): New macro.
3480 (NULL_INTERVAL_P): Use it.
3481 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
3482 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
3483 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
3484
3485 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
3486 explicit references to "parent" field of struct interval and
3487 associated unclean type conversions.
3488 * intervals.c (create_root_interval, root_interval, rotate_right,
3489 rotate_left, balance_possible_root_interval, split_interval_right,
3490 split_interval_left, interval_start_pos, find_interval,
3491 next_interval, previous_interval, update_interval,
3492 adjust_intervals_for_insertion, delete_node, delete_interval,
3493 adjust_intervals_for_deletion, merge_interval_right,
3494 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
3495 copy_intervals_to_string): Likewise.
3496 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
3497 Likewise.
3498 * syntax.c (update_syntax_table): Likewise.
3499
3500 * intervals.c (reproduce_tree_obj): New function, like
3501 reproduce_tree but takes a Lisp_Object for the parent. Declare
3502 with prototype.
3503 (graft_intervals_into_buffer): Use it when appropriate.
3504 (reproduce_tree): Declare with prototype.
3505 (balance_possible_root_interval): Check that the parent is a lisp
3506 object before trying to examine its type.
3507
ee1c5b21
GM
35082000-03-22 Gerd Moellmann <gerd@gnu.org>
3509
3510 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
3511 as strings only if both are known to be strings.
3512
3513 * s/openbsd.h (LIBS_TERMCAP): Undef.
3514
1fb352e0
SM
35152000-03-21 Stefan Monnier <monnier@cs.yale.edu>
3516
3517 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
3518 definitions for non-Emacs compilation.
3519 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
3520 outside of `#ifdef emacs'.
3521 (print_partial_compiled_pattern): Update.
3522 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
3523 (re_compile_fastmap): Merge handling of charset and charset_not (for
3524 emacs and non-emacs compilation as well).
3525 Similarly for (not)categoryspec and (not)syntaxspec.
3526 Don't use the fastmap when reaching `anychar' since the added
3527 complexity is not justified.
3528 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
3529 and (not)syntaxspec. Merge (not)categoryspec.
3530
fdaa1f77
KH
35312000-03-22 Kenichi Handa <handa@etl.go.jp>
3532
ff1a0d8e
KH
3533 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
3534 FACE_FOR_CHAR): Define them differently for the configuration of
3535 --without-x.
fdaa1f77 3536
d152fb46
DL
35372000-03-21 Dave Love <fx@gnu.org>
3538
3539 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
3540 doc string.
3541
d2cafc8c
GM
35422000-03-21 Gerd Moellmann <gerd@gnu.org>
3543
3544 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
3545 (lface_fully_specified_p): Don't check contents of
3546 LFACE_FONT_INDEX because that attribute is optional.
3547 (realize_x_face): Remove now unwarranted xassert.
3548
9111d4b5
KH
35492000-03-21 Kenichi HANDA <handa@etl.go.jp>
3550
3551 The following changes are to make font selection based on
3552 characters, not charset. In addition, they recover fontset
3553 facilities while utilizing the new font selection mechanism.
3554
6c4bfdc0
KH
3555 * Makefile.in (fontset.o): Depend on dispextern.h.
3556
3557 * alloc.c (mark_face_cache): Don't mark face->registry.
3558
9111d4b5
KH
3559 * dispextern.h (struct glyph): New member glyph_not_available_p.
3560 Use 22 bits for face_id.
3561 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
3562 (struct face): Delete member registry, new member ascii_face.
3563 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
3564 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
3565 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
3566 (struct it): Delete member charset, new member
3567 glyph_not_available_p.
3568
3569 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
3570 (struct fontset_info, struct fontset_data): Structs removed.
3571 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
3572 Vglobale_fontset_alist, font_idx_temp): Externs removed.
3573 (fs_load_font, fs_query_fontset): Adjusted for new argument.
3574 (fs_free_face_fontset, fontset_font_pattern,
3575 face_suitable_for_char_p, face_for_char,
3576 make_fontset_for_ascii_face): Extern them.
3577 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
3578 (FS_LOAD_FACE_FONT): New macro.
3579
3580 * fontset.c: All codes rewritten or adjusted for the change of
3581 fontset implementation. Now fontset is represented by char table.
3582 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
3583 removed.
3584 (my_strcasecmp): Function removed.
3585 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
3586 variables.
3587 (AREF, ASIZE): New macros.
3588 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
3589 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
3590 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
3591 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
3592 fontset_id_valid_p, font_family_registry, fontset_name,
3593 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
3594 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
3595 New functions.
3596 (fs_load_font): New arg FACE. Caller changed.
3597 (fs_query_fontset): Argument changed. Caller changed.
3598 (Fquery_fontset): call fs_query_fontset.
3599 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
3600 Functions removed.
3601 (clear_fontset_elements, check_registry_encoding,
3602 check_fontset_name): New functions.
3603 (syms_of_fontset): Set char-table-extra-slots property of fontset
3604 to 3. Staticpro and initialize Vfontset_table and
3605 Vdefault_fontset. Defsubr fontset_font and fontset_list.
3606
3607 * frame.h (struct frame): Member `fontset_data' removed.
3608 (FRAME_FONTSET_DATA): Macro removed.
3609
3610 * frame.c (make_frame): Don't allocate f->fontset_data.
3611 (Fdelete_frame): Don't free f->fontset_data.
3612
6c4bfdc0
KH
3613 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
3614
9111d4b5
KH
3615 * xdisp.c (charset_at_position): Function removed.
3616 (init_iterator): Don't set member charset of struct `it'.
3617 (handle_face_prop, reseat_to_string, set_iterator_to_next,
3618 next_element_from_display_vector, insert_left_trunc_glyphs):
3619 Likewise.
3620 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
3621 FACE_FOR_CHARSET.
3622 (get_next_display_element, append_space,
3623 extend_face_to_end_of_line): Likewise.
3624
3625 * xfaces.c (Qx_charset_registry, Vface_default_registry):
3626 Variables removed.
3627 (clear_font_table, frame_update_line_height, load_face_font):
3628 Adjusted for the change of fontset implementation.
3629 (load_face_fontset_font): Function removed.
3630 (pixel_point_size): New function.
3631 (font_list): Argument type changed. Caller changed.
3632 (LFACE_FONT): New macro.
3633 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
3634 (set_lface_from_font_name): Type of arg FONTNAME is changed to
3635 Lisp_Object. Determine the font name by actually loading a font
3636 by the specified pattern. Set LFACE_FONT (lface) to the specified
3637 pattern. Even if a font is not found, don't try alternatives.
3638 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
3639 (set_font_frame_param): If `font' is specified in lface, use it.
3640 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
3641 (lface_same_font_attributes_p): Likewise.
3642 (make_realized_face): Arguent changed. Caller changed. Set
3643 face->ascii_face to face itself.
3644 (free_realized_face): Free face->fontset if face is for ASCII.
3645 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
3646 deduce_unibyte_registry, x_charset_registry): Functions removed.
3647 (free_realized_multibyte_face): New function.
3648 (lookup_face, lookup_named_face, lookup_derived_face): Argument
3649 changed. Caller changed.
3650 (try_font_list): Argument type changed.
3651 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
3652 (choose_face_font): Argument changed. Handle fontset properly.
3653 (choose_face_fontset_font): Function removed.
3654 (realize_default_face, realize_named_face): Don't remove the
3655 former face here.
3656 (realize_face): Argument changed. Caller changed. Remove face
3657 with the arg former_face_id in advance. Load font for the new
3658 face.
3659 (realize_x_face): Argument changed. Caller changed. For a
3660 multibyte character, share fontset with base_face. For a single
3661 byte character, make a new realized fontset. Don't load a font
3662 here.
3663 (realize_tty_face): Argument changed. Caller changed.
3664 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
3665 (face_at_buffer_position): Don't check multibyte_p for returning
3666 DEFAULT_FACE_ID.
3667 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
3668 FACE_SUITABLE_FOR_CHARSET_P.
3669 (syms_of_xfaces): Remove code for Qx_charset_registry and
3670 Vface_default_registry.
3671
6c4bfdc0
KH
3672 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
3673 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
3674 (x_per_char_metric): Don't try FONT->default_char. Even if
3675 pcm->width is zero, glyph bits may exist.
3676 (x_encode_char): Always initialize char2b->byte1.
3677 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
3678 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
3679 changed.
3680 (x_append_glyph): Set glyph->glyph_not_available_p.
3681 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
3682 it->charset. Handle the case that per char metric is not
3683 available. If it->multibyte_p is zero and it->c is a multibyte
3684 character, convert it to a unibyte character.
3685 (struct glyph_string): Delete member `charset'.
3686 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
3687 the case that per char metric is not available correctly.
3688 (x_fill_glyph_string): Handle the case that the specific glyph is
3689 not available correctly.
3690 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
3691 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
3692 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
3693 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
3694 fontset. Don't call FS_LOAD_FONT.
3695
3696 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
3697 (x_create_tip_frame): Likewise.
3698 (Fx_close_connection): Free full_name of font_info.
3699
3700 * fns.c (optimize_sub_char_table): New function.
3701 (Foptimize_char_table): New function.
3702 (syms_of_fns): Defsubr Soptimize_char_table.
3703
b33dd3b0
GM
37042000-03-20 Gerd Moellmann <gerd@gnu.org>
3705
3706 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
3707 only if buffer is displayed in some window.
3708
3709 * xdisp.c (handle_single_display_prop): Initialize local `value'.
3710 (try_window_reusing_current_matrix): Don't call scroll run
3711 function if run's current and desired position are the same;
3712 this prevents cursor flickering.
3713
4e8a9132
SM
37142000-03-19 Stefan Monnier <monnier@cs.yale.edu>
3715
3716 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
3717
3718 * regex.c (RE_STRING_CHAR): New macro.
3719 (GET_CHAR_AFER_2): Remove.
3720 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
3721 (enum re_opcode_t): Remove on_failure_jump_exclusive.
3722 (print_partial_compiled_pattern, re_compile_fastmap)
3723 (re_match_2_internal): Remove on_failure_jump_exclusive.
3724 (regex_compile): Turn optimizable P+ loops into PP*, so that the
3725 optimization only need to work for * (ie. can use of_keep_string_jump).
3726 Remove the special case for .*\n since it is now covered by the general
3727 optimization.
3728 (re_search_2): Don't bother with `room'.
3729 (skip_one_char): New function.
3730 (skip_noops): Simplify since `memory' is not needed any more.
3731 (mutually_exclusive_p): Restructure slightly to use `switch' and
3732 add handling for "all" remaining cases.
3733 (re_match_2_internal): Change on_failure_jump_smart to use
3734 on_failure_keep_string_jump (and redirect the end-of-loop jump)
3735 rather than on_failure_jump_exclusive.
3736
2136fdd4
GM
37372000-03-19 Gerd Moellmann <gerd@gnu.org>
3738
3739 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
3740 number of bits per RGB because it's everywhere used as the depth
3741 of the visual.
3742
3743 * term.c (calculate_costs): Remove code dealing with X frames.
3744
18e21ce8 37452000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
3746
3747 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
3748
d7b511c4
GM
37492000-03-18 Gerd Moellmann <gerd@gnu.org>
3750
3751 * lread.c (read_integer): Unread the last char not consumed.
3752
16b5d424
GM
37532000-03-17 Gerd Moellmann <gerd@gnu.org>
3754
3755 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 3756 which are in the process of being deleted.
16b5d424 3757
1fa28578
GM
37582000-03-16 Gerd Moellmann <gerd@gnu.org>
3759
83488cce
GM
3760 * Makefile.in (mostlyclean): Add `*.core'.
3761 (clean): Add `bootstrap-emacs'.
3762
1fa28578
GM
3763 * lread.c (read_integer): New function.
3764 (read1): Support read syntax #o, #x, #b, #r.
3765
99633e97
SM
37662000-03-15 Stefan Monnier <monnier@cs.yale.edu>
3767
1fa28578
GM
3768 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
3769 make sure POINTER_TO_OFFSET gives the same value before and after
3770 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
3771 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
3772 (debug): Now only active if > 0 rather than if != 0.
3773 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
3774 (print_partial_compiled_pattern): Add missing `succeed' case. Use
3775 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
3776 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
3777 (store_op1, store_op2, insert_op1, insert_op2)
3778 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
3779 (group_in_compile_stack): Move to after its arg's types are
3780 declared and add a prototype.
99633e97 3781 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
3782 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
3783 wrapper.
99633e97 3784 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
3785 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
3786 indentation of the greedy-op and shy-group code.
99633e97
SM
3787 (at_(beg|end)line_loc_p): Fix argument's types.
3788 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
3789 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
3790 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
3791 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
3792 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
3793 QUIT unconditionally.
99633e97 3794
699238d9
GM
37952000-03-15 Gerd Moellmann <gerd@gnu.org>
3796
3797 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
3798 a sole completion.
3799
3800 * process.c (send_process): Add a hint that the function
3801 can call Lisp code to its comment.
3802
3803 * lread.c (load_dangerous_libraries): New variable.
3804 (Vbytecomp_version_regexp): New variable.
3805 (safe_to_load_p): New function.
3806 (Fload): Handle files not compiled with Emacs specially.
3807 (syms_of_lread): New Lisp variable load-dangerous-libraries.
3808
34e23e5a
GM
38092000-03-14 Gerd Moellmann <gerd@gnu.org>
3810
9c763cca
GM
3811 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
3812
3813 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
3814 support functions only if HAVE_X11R6_XIM is defined.
3815 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
3816
3817 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
3818
3819 * xfns.c (X_I18N_INHIBITED): Don't define.
3820 (create_frame_xic): Remove conditional compilation on
3821 X_I18N_INHIBITED.
3822 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
3823
3824 * config.in (HAVE_X_I18N): Moved here from xterm.h.
3825 (HAVE_X11R6_XIM): Define.
3826
3827 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
3828
34e23e5a
GM
3829 * xterm.c (x_term_init): Add support for X resource `synchronous'.
3830 If set, call XSynchronize.
3831
66f0296e
SM
38322000-03-13 Stefan Monnier <monnier@cs.yale.edu>
3833
34e23e5a
GM
3834 * regex.c: Declare a new type `re_char' used throughout the code
3835 for the string char type. It's `const unsigned char' to match the
3836 rest of Emacs. Consistently make sure all pointers to strings use
3837 it and make sure all pointers into the pattern use `unsigned
3838 char'.
66f0296e 3839 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
3840 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
3841 code duplication.
66f0296e
SM
3842
3843 * charset.h (GET_CHAR_AFTER_2): Remove.
3844 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
3845
854a025c
KR
38462000-03-12 Ken Raeburn <raeburn@gnu.org>
3847
3848 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
3849 variable before the invocation of YMF_PASS_LDFLAGS, in case both
3850 of them try to use backquotes.
3851
b9d2c7e2
DL
38522000-03-12 Dave Love <fx@gnu.org>
3853
3854 * unexelf.c: Restore changes of 1999-10-19.
3855 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
3856 fix its type and alignment; copy it from current process.
3857
5e5dff44
GM
38582000-03-12 Gerd Moellmann <gerd@gnu.org>
3859
9b2f3c38
GM
3860 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
3861 has been found. Fix bug not computing timer's predecessor.
3862
427ec082 3863 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
3864 file name.
3865
e1cff360
GM
3866 * window.c (Fsave_window_excursion): Doc fix.
3867
5e5dff44
GM
3868 * xfns.c (x_defined_color): Rewritten to use
3869 x_allocate_nearest_color.
3870
e411ce4b
EZ
38712000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
3872
3873 * msdos.c (vga_installed): New function, code moved from
3874 dos_set_window_size.
3875 (Qbar, Qcursor_type, outside_cursor): New variables.
3876 (syms_of_msdos): Intern and staticpro them.
3877 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
3878 shape used outside Emacs when called for the first time.
3879 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
3880 cursor shape used outside Emacs.
3881 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
3882 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
3883 type has changed.
3884 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
3885 parameters specify the cursor. Make qreverse a global
3886 variable (renamed to Qreverse).
3887
80460654
GM
38882000-03-09 Gerd Moellmann <gerd@gnu.org>
3889
3890 * fns.c (Fy_or_n_p): Cancel busy-cursor.
3891
95cd4c40
SM
38922000-03-08 Stefan Monnier <monnier@cs.yale.edu>
3893
3894 This is a big redesign of failure-stack and register handling, prompted
3895 by bugs revealed when trying to add shy-groups. Overall, what happened
3896 is that loops are now structured a little differently, groups can be
3897 shy and the code is a little simpler.
3898
3899 * regex.h: Update the copyright.
3900 (RE_SHY_GROUPS): New value.
3901 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
3902 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
3903
80460654
GM
3904 * regex.c (enum re_opcode_t): Remove jump_past_alt,
3905 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
3906 on_failure_jump_(exclusive, loop and smart). Also fix the comment
3907 for (start|stop)_memory since they now only take one argument (the
3908 second has becomes unnecessary).
3909 (print_partial_compiled_pattern): Adjust for changes in
3910 re_opcode_t.
3911 (print_compiled_pattern): Use %ld to printf long ints and flush to
3912 make debugging a little easier.
95cd4c40
SM
3913 (union fail_stack_elt): Make the integer unsigned.
3914 (struct fail_stack_type): Add a `frame' element.
3915 (INIT_FAIL_STACK): Init `frame' as well.
3916 (POP_PATTERN_OP): New macro for re_compile_fastmap.
3917 (DEBUG_PUSH, DEBUG_POP): Remove.
3918 (NUM_REG_ITEMS): Remove.
3919 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
3920 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
3921 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 3922 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
3923 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
3924 macros.
3925 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
3926 address pushed is not the destination of the jump but the source
3927 of it instead.
95cd4c40
SM
3928 (NUM_FAILURE_ITEMS): Remove.
3929 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
3930 registers before the actual failure point). Don't hardcode any
3931 meaning for str==NULL anymore.
95cd4c40 3932 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
3933 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
3934 Remove.
95cd4c40
SM
3935 (REG_UNSET_VALUE): Use NULL (why not?).
3936 (compile_range): Remove declaration since it doesn't exist.
3937 (struct compile_stack_elt_t): Remove inner_group_offset.
3938 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
3939 (regex_grow_registers): Remove dead code.
3940 (FIXUP_ALT_JUMP): New macro.
80460654
GM
3941 (regex_compile): Add shy-groups Change loops to use
3942 on_failure_jump_smart&jump instead of
3943 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
3944 initial (dummy_failure_)jump. Remove c1_base (looks like unused
3945 variable to me). Use `jump' instead of `jump_past_alt' and don't
3946 bother with push_dummy_failure in alternatives since it is now
3947 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
3948 emacs' for (re)allocating the stack.
3949 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
3950 from loop when bufp->can_be_null rather than jumping to `done'.
3951 Avoid jumping backwards so as to ensure termination. Use
3952 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
3953 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 3954 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
3955 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
3956 improve mutually_exclusive_p to handle ".+\n".
3957 (lowest_active_reg, highest_active_reg,
3958 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
3959 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
3960 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
3961 variables. Push register (in `start_memory') on the stack rather
3962 than storing it in old_reg(start|end). Remove the cycle detection
3963 from `stop_memory', replaced by the use of on_failure_jump_loop
3964 for greedy loops. Add code for the new on_failure_jump_<foo>.
3965 Remove ad-hoc code in `on_failure_jump' to push more registers in
3966 the case of a loop. Take out code from `maybe_pop_jump' into
3967 separate functions and adapt it to the semantics of
3968 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
3969 and push_dummy_failure. Remove dummy_failure handling and
3970 handling of `failures to jump to on_failure_jump' (this last one
3971 was already dead code, it seems).
3972 (group_match_null_string_p, alt_match_null_string_p)
3973 (common_op_match_null_string_p): Remove.
95cd4c40 3974
7397acc4
DL
39752000-03-08 Dave Love <fx@gnu.org>
3976
3977 * config.in: Don't depend on __STDC__ for volatile.
3978 Add POINTER_TYPE, PTR, PROTOTYPES.
3979
3980 * hftctl.c, strftime.c: Use PROTOTYPES.
3981 * eval.c (find_handler_clause): Likewise.
3982
3983 * mem-limits.h: Use POINTER_TYPE.
3984
3985 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
3986 (memory_warnings): Declare using POINTER_TYPE.
3987
5e91ff9e
GM
39882000-03-08 Gerd Moellmann <gerd@gnu.org>
3989
feab4fba
GM
3990 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
3991
25edb08f
GM
3992 * xdisp.c (display_echo_area): Temporarily inhibit garbage
3993 collection.
3994
5e91ff9e
GM
3995 * xfns.c: Remove obsolete code in #if 0.
3996 (Fx_focus_frame): New function.
3997
a735b7e1
KH
39982000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3999
4000 * coding.c (coding_category_name): Add coding-category-utf-8,
4001 coding-category-utf-16-be, coding-category-utf-16-le.
4002 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
4003 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
4004 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
4005 (detect_coding_utf_8): New function.
4006 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
4007 UTF_16_LOW_SURROGATE_P): New macros.
4008 (detect_coding_utf_16): New function
4009 (detect_coding_mask): When priorities are specified, skip any
4010 categories that have `nil' coding-system. Fix bug of returning
4011 wrong mask when PRIORITIES is specified and detect_coding_XXX()
4012 returns a mask not set in PRIORITIES.
4013 (detect_eol_type_in_2_octet_form): New function.
4014 (detect_eol): selects detect_eol_type_XXX to call according to
4015 cooding->category_idx.
4016 (detect_coding_system): Remove `nil' coding-system in the result.
4017 (Fupdate_coding_systems_internal): Update all coding-categories.
4018
4019 * coding.h (CODING_CATEGORY_IDX_UTF_8,
4020 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
4021 macros.
4022 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
4023 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
4024 CODING_CATEGORY_IDX_UTF_16_LE.
4025 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
4026 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
4027 (CODING_CATEGORY_MASK_ANY): Include the above macros.
4028 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
4029
9994cc69
GM
40302000-03-07 Gerd Moellmann <gerd@gnu.org>
4031
e9b4e5ff
GM
4032 * doc.c (Fdocumentation_property): If value is not a string,
4033 and doesn't refer to etc/DOC, evaluate it to obtain a string.
4034
f7daf1e1
GM
4035 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
4036 close the display with XtCloseDisplay. This caused a bus error
4037 on OpenWindows.
4038
9994cc69
GM
4039 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
4040 complete but not unique.
4041
4336c705
GM
40422000-03-06 Gerd Moellmann <gerd@gnu.org>
4043
18bb0684
GM
4044 * process.c (send_process): Remove local variable `procname' that
4045 might become invalid when a GC happens. Instead, access the
4046 process name slot directly.
4047
4336c705
GM
4048 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
4049 orig_height if set.
4050
4051 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
4052 orig_height if set.
4053
515d0d0e
EZ
40542000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
4055
4056 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
4057 glyph matrices have been freed.
4058
100b3cbb
GM
40592000-03-05 Gerd Moellmann <gerd@gnu.org>
4060
50df5e5a 4061 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 4062 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
4063
4064 * xfns.c (QCdata): Moved to xdisp.c.
4065
4066 * xdisp.c (QCdata): Moved here from xfns.c.
4067 (syms_of_xdisp): Initialize QCdata.
4068
4069 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
4070
4071 * window.c (coordinates_in_window): Use
4072 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
4073 FRAME_INTERNAL_BORDER_WIDTH.
4074
100b3cbb 4075 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 4076 it is obviously invalid.
100b3cbb
GM
4077
4078 * xterm.c (x_term_init): Create a colormap if not using the
4079 default visual.
4080
4081 * xterm.h (select_visual): Change prototype.
4082
4083 * xfns.c (select_visual): Rewritten. Recognize user-specified
4084 visual classes.
4085 (visual_classes): New variable.
4086
64d739c4
GM
40872000-03-04 Gerd Moellmann <gerd@gnu.org>
4088
4089 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
4090 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
4091 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
4092 (x_decode_color): Don't handle allocation of white and black
4093 specially.
4094 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
4095 XtNcolormap resources.
4096 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
4097 (Fx_create_frame): Initialize color members of x_output structure.
4098 (xpm_load): Pass colormap to XPM lib.
4099
4100 * xfaces.c (x_free_colors): Access colormap of frame using
4101 FRAME_X_COLORMAP. Be paranoid about freeing black and white
4102 when default colormap is used.
4103
4104 * xterm.c (x_term_init): Set Colormap member of x_display_info
4105 structure. Copy colormap if resource `privateColormap' is
4106 specified (PseudoColor only).
4107 (x_setup_relief_color): Access colormap of frame using
4108 FRAME_X_COLORMAP.
4109
4110 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
4111 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
4112
c3cee013
JR
41132000-03-04 Jason Rumney <jasonr@gnu.org>
4114
4115 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
4116 other non-platform-specific equivalents.
64d739c4 4117 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
4118 specific functions and macros as their w32 equivalents where
4119 non-platform-specifics are not available.
4120 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
4121 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
4122 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
4123 (frame_update_line_height): Use macros to access f->output_data.
4124 (defined_color): Remove FIXME comments; fixed.
4125 (x_face_list_fonts, prepare_face_for_display): Put X specifics
4126 into #ifdef blocks. Add WINDOWSNT blocks.
4127 (Fx_list_fonts): Use macros for accessing font data.
4128 (set_lface_from_font_name): Different default fonts for X and
4129 WINDOWSNT.
4130 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
4131 scalable for backward compatibility.
64d739c4 4132 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
4133 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
4134
64d739c4 4135 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
4136 syms_of_w32faces.
4137
4138 * makefile.nt (w32faces.obj): Remove.
4139 (xfaces.obj): Add.
4140
807cc41c
JR
41412000-03-03 Jason Rumney <jasonr@gnu.org>
4142
4143 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
4144 correct parameters.
4145
0007072a
KR
41462000-03-03 Ken Raeburn <raeburn@gnu.org>
4147
4148 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
4149 standard ELF definitions here if the system header does not.
4150
71a6ba55
GM
41512000-03-03 Gerd Moellmann <gerd@gnu.org>
4152
4153 * xterm.c (PER_CHAR_METRIC): Removed.
4154 (x_per_char_metric_1, x_default_char): New functions.
4155 (x_per_char_metric): If font's default char is invalid, return
4156 metrics of a suitably chosen usable default char.
4157 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
4158 char, replace occurrences of unprintable chars with a suitably
4159 chosen usable default char.
71a6ba55 4160
900fa1f1
GM
41612000-03-02 Gerd Moellmann <gerd@gnu.org>
4162
42f55fe0
GM
4163 * xterm.c (note_mouse_highlight): Return quickly if frame's
4164 glyph matrices have been freed.
4165
4166 * dispnew.c (free_glyphs): Block input while freeing matrices.
4167
900fa1f1
GM
4168 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
4169
4170 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
4171 x_free_colors.
4172
4173 * dispextern.h (x_free_colors): Add prototype.
4174
4175 * xfaces.c (x_free_colors): New function.
4176 (unload_color, free_face_colors): Use it.
4177
2f950292
EZ
41782000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
4179
4180 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
4181
4182 * window.c [MSDOS]: Include msdos.h.
4183
54d04320
DL
41842000-03-02 Dave Love <fx@gnu.org>
4185
4186 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
4187
4188 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
4189 set C_OPTIMIZE_SWITCH for gcc.
4190
0ba93ac4
KH
41912000-03-02 Kenichi Handa <handa@etl.go.jp>
4192
4193 * coding.c (coding_save_composition): Be sure to allocate
4194 composition data area in coding even if there's no composition in
4195 the current run.
4196
a2bc11d4
JR
41972000-03-01 Jason Rumney <jasonr@gnu.org>
4198
4199 * w32term.c: Equivalent changes to those made to xterm.c on
4200 2000-02-25 and 2000-02-24.
4201
4202 * w32fns.c: Equivalent changes to those made to xfns.c on
4203 2000-02-25 and 2000-02-21.
4204
4205 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
4206 correct line-end convention is followed.
4207
4208 * w32menu.c [HAVE_BOXES]: Remove #undef.
4209 (single_keymap_panes): Remove code for simulating checkmarks.
4210 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
4211 Remove code for drawing simulated checkmarks.
4212 (w32_menu_show): make unibyte help string correctly.
4213 (add_menu_item): draw standard Windows checkmarks. Draw radio
4214 buttons as radio buttons if possible.
4215
72d19d75
GM
42162000-03-01 Gerd Moellmann <gerd@gnu.org>
4217
2df636f4
GM
4218 * sysdep.c (start_of_text): Don't define this function for NetBSD
4219 with ELF.
4220
427ec082 4221 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
4222 Don't define.
4223 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
4224 (LINKER): Don't undef if __NetBSD__ is defined.
4225
4226 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
4227
4228 * fileio.c [__NetBSD__]: Define `unix'.
4229
72d19d75
GM
4230 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
4231
ed4d0512
GM
42322000-02-29 Gerd Moellmann <gerd@gnu.org>
4233
50b1039f
GM
4234 * atimer.c (start_atimer): Don't abort when timers are stopped.
4235 (append_atimer_lists): New function.
4236 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
4237 arbitrary lists of stopped and running atimers.
4238
ed4d0512
GM
4239 * atimer.c (cancel_atimer): Handle canceling an atimer when
4240 some timers are stopped.
4241
4242 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
4243 after canceling it.
4244
4245 * fns.c (maybe_resize_hash_table): Handle case of new size
4246 coming out as being the same as old size.
4247
387023ee
JR
42482000-02-27 Jason Rumney <jasonr@gnu.org>
4249
4250 * makefile.nt: Add atimer.h to dependencies.
4251 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
4252 * w32console.c: Only disable window system features for dispextern.h
4253 (initialize_w32_display): Build a display info for the console.
4254 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
4255 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
4256 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
4257 as 2 button mice.
4258 * w32gui.h (struct W32FontStruct): Revert last change after change
4259 to xdisp.c.
4260 * w32menu.c (single_submenu): Set up help string.
4261 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
4262 (w32_dialog_show): Set up help string.
4263 * w32term.c (w32_display_info_for_display): Remove unused function.
4264 (w32_draw_bitmap): Use pre-built bitmaps.
4265 (w32_initialize_display_info): New function to initialize parts of
4266 display info that are common to both GUI and console frames.
4267 (w32_term_init): Use w32_initialize_display_info. Do not set
4268 Vw32_num_mouse_buttons here, as it is not called for console
4269 frames. Build bitmaps for indicating truncated lines etc.
4270 (x_delete_display): Destroy pre-built bitmaps.
4271 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
4272 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
4273
4516715a
DL
42742000-02-27 Dave Love <fx@gnu.org>
4275
4276 * lisp.h: Add a bunch of prototypes.
4277
171ca836
KH
42782000-02-26 Kenichi Handa <handa@etl.go.jp>
4279
4280 * keyboard.c (read_char): Set `usec' correctly.
4281
4013921d
KH
42822000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
4283
4284 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
4285 `lambda', set reg[RRR] to the map index.
4286 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
4287 reg[RRR] to 0. Otherwise, set it to -1.
4288
9244a058
GM
42892000-02-25 Gerd Moellmann <gerd@gnu.org>
4290
2df636f4 4291 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 4292
18e21ce8 42932000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 4294
f43d79c1
GM
4295 * fileio.c (Ffile_symlink_p): If result starts with a `/'
4296 and contains a `:', prepend `/:'.
4297
4298 * window.c (select_window_1): If selected_window is nil,
4299 don't "swap out" the buffer's point.
4300 (Fset_window_configuration): Set selected_window to nil
4301 before calling Fselect_window.
4302 (unshow_buffer): Don't set point in buffer from window's point
4303 if another more recently selected window also shows the buffer.
4304
bed0c171
GM
43052000-02-25 Gerd Moellmann <gerd@gnu.org>
4306
449c3c52
GM
4307 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
4308
f5b58615
GM
4309 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
4310 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
4311 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
4312 variables.
4313 (DEFAULT_BUSY_CURSOR_DELAY): New define.
4314 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
4315 (hide_busy_cursor): New functions.
4316 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
4317
4318 * minibuf.c (read_minibuf): Cancel busy-cursor.
4319
4320 * keyboard.c (command_loop_1): Call start_busy_cursor before
4321 Fcommand_execute and cancel_busy_cursor after it.
4322 (timer_check): Remove busy-cursor code.
4323 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
4324 cursor timer.
4325
4326 * process.c (wait_reading_process_input): Remove busy-cursor code.
4327
4328 * eval.c (Fsignal): Call cancel_busy_cursor instead of
4329 Fx_hide_busy_cursor.
4330
4331 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
4332 Remove prototyoes.
4333 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
4334
4335 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
4336
4337 * xterm.c (XTread_socket): Remove busy-cursor code.
4338
4eb8436f
GM
4339 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
4340 (build_frame_matrix_from_leaf_window): Put code handling
4341 glyph row's not being a slice of a frame row in #if 0.
4342 (sync_window_with_frame_matrix_rows): New function.
4343 (frame_row_to_window): New function.
4344 (mirror_line_dance): Handle copies between windows.
4345
3cb65b0e
GM
4346 * lread.c (Fload): Use `xfree' instead of `free'.
4347 (init_obarray): Use `xmalloc' instead of `malloc'.
4348
bed0c171
GM
4349 * window.c (Fset_window_buffer): Set WINDOW to the window
4350 after decoding.
2add4349
GM
4351 (coordinates_in_window): Take frame's internal border width
4352 into account.
bed0c171 4353
42088c12
GM
43542000-02-24 Gerd Moellmann <gerd@gnu.org>
4355
4356 * xterm.c (x_display_and_set_cursor): Display cursor of
4357 non-selected windows depending on the setting of
4358 cursor_in_non_selected_windows.
4359
4360 * xdisp.c (cursor_in_non_selected_windows): New variable.
4361 (syms_of_xdisp): DEFVAR_BOOL it.
4362
d1e103b2
GM
43632000-02-23 Gerd Moellmann <gerd@gnu.org>
4364
723e779c
GM
4365 * data.c (Fstring_to_number): If number is greater than what
4366 fits into an integer, return a float.
4367
d1e103b2
GM
4368 * eval.c (specbind): Remove references to
4369 keyword_symbols_constant_flag.
4370
4371 * data.c (keyword_symbols_constant_flag): Removed.
4372 (Fmakunbound, set_internal, syms_of_data): Remove references to
4373 keyword_symbols_constant_flag.
4374
4375 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
4376
214f877f
KH
43772000-02-23 Kenichi Handa <handa@etl.go.jp>
4378
4379 * syntax.c (multibyte_syntax_as_symbol): New variable.
4380 (syms_of_syntax): Declare it as a Lisp variable.
4381 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
4382 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
4383 nonzero, treat all multibyte characters as symbol.
42088c12 4384 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
4385 characters.
4386
130adcb7
EZ
43872000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
4388
3cb65b0e 4389 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 4390 a deleted frame.
130adcb7 4391
17cbbf95
GM
43922000-02-21 Gerd Moellmann <gerd@gnu.org>
4393
4394 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
4395
4396 * xfns.c (x_window_to_frame, x_any_window_to_frame)
4397 (x_non_menubar_window_to_frame): Check the busy-cursor window.
4398
beb0bc36
DL
43992000-02-21 Dave Love <fx@gnu.org>
4400
4401 * frame.c (Vmouse_position_function): New variable.
4402 (Fmouse_position): Use it.
4403 (syms_of_frame): Install it.
4404
4405 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
4406
1d92afcd
GM
44072000-02-20 Gerd Moellmann <gerd@gnu.org>
4408
4409 * fileio.c (Finsert_file_contents): Unbind the binding of
4410 standard-output done by temp_output_buffer_setup.
329eed9f
GM
4411
4412 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
4413 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
4414 (specbind, unbind_to): Handle most common case of non-constant
4415 symbol with trivial value specially.
4416
4417 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
4418
18e21ce8 44192000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
4420
4421 * data.c (Fmake_variable_buffer_local): Doc fix.
4422 Init found_for_buffer to 0.
4423 (Fmake_variable_frame_local): If the variable has already
4424 been buffer-local, set the check_frame field.
4425
1d4311c3
EZ
44262000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
4427
4428 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
4429 produced for CODING_MODE_LAST_BLOCK requires.
4430
2dc95ddd
DL
44312000-02-18 Dave Love <fx@gnu.org>
4432
4433 * keyboard.c (echo_keystrokes): Remove declaration.
4434 (Vecho_keystrokes) New variable.
4435 (read_char, record_menu_key, read_key_sequence): Use it to allow
4436 use of float value.
4437 (syms_of_keyboard): Change Vecho_keystrokes declaration.
4438
4439 * lread.c: Undef feature selection macros before defining.
4440
f0930f35
GM
44412000-02-18 Gerd Moellmann <gerd@gnu.org>
4442
4443 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
4444 for symbols other than the symbol in question.
4445
e3d4de90
DL
44462000-02-17 Dave Love <fx@gnu.org>
4447
4448 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
4449
0b378936
GM
44502000-02-17 Gerd Moellmann <gerd@gnu.org>
4451
d621caf7
GM
4452 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
4453
0b378936
GM
4454 * alloc.c (enum mem_type): Compile unconditionally.
4455
3b451f74
EZ
44562000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
4457
4458 * xfaces.c (tty_defined_color): Don't return faulire indication
4459 for unspecified-fg and unspecified-bg pseudo-colors.
4460
10689a01
GM
44612000-02-17 Gerd Moellmann <gerd@gnu.org>
4462
1216f5e4
GM
4463 * alloc.c (mark_object): Don't mark symbol names in pure space.
4464 (gc_sweep): Don't unmark symbol names in pure space.
4465
4466 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
4467 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
4468 [GC_MARK_STACK]: New defines.
427ec082 4469 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
4470 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
4471
4472 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
4473
4474 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
4475 allocate_buffer instead of xmalloc.
4476
4477 * alloc.c (toplevel): Include setjmp.h.
4478 (PURE_POINTER_P): New define.
4479 (enum mem_type) [GC_MARK_STACK]: New enumeration.
4480 (Vdead) [GC_MARK_STACK]: New variable.
4481 (lisp_malloc): Add parameter TYPE, call mem_insert if
4482 GC_MARK_STACK is defined.
4483 (allocate_buffer): New function.
427ec082 4484 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
4485 (free_float) [GC_MARK_STACK]: Set type to Vdead.
4486 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
4487 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
4488 (MEM_NIL) [GC_MARK_STACK]: New define.
4489 (struct mem_node) [GC_MARK_STACK]: New structure.
4490 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
4491 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
4492 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
4493 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
4494 (mark_stack) [GC_MARK_STACK]: New functions.
4495 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
4496 (clear_marks): Removed.
4497 (gc_sweep): Set free conses' car, free floats' type, free
4498 symbols' function to Vdead. Use lisp_free to free buffers.
4499 (init_alloc_once): Initialize Vdead.
4500 (survives_gc_p): Return non-zero for pure objects.
4501
4502 * alloc.c: Add comments throughout the file.
4503
2503c8b1
GM
4504 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
4505 that unblocks alarms.
4506
8389e1e2
GM
4507 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
4508 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
4509 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
4510
10689a01 4511 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 4512
bfc17d18
KH
45132000-02-17 Kenichi Handa <handa@etl.go.jp>
4514
4a09dee0
KH
4515 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
4516 avoid infinite error signaling. Allocate sufficient memory for
4517 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 4518
2b927d02
SM
45192000-02-17 Stefan Monnier <monnier@cs.yale.edu>
4520
4521 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
4522 depends on the previous behavior.
4523
b49cb764
GM
45242000-02-16 Gerd Moellmann <gerd@gnu.org>
4525
4526 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
4527
99e95407
GM
45282000-02-15 Gerd Moellmann <gerd@gnu.org>
4529
4530 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
4531
4532 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 4533 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
4534 write(2).
4535
6ffd3cf7
RS
45362000-02-15 Richard M. Stallman <rms@gnu.org>
4537
4538 * data.c (set_internal): Don't make variable buffer-local
4539 if within a let-binding for the same buffer.
4540 (let_shadows_buffer_binding_p): New function.
4541
4542 * eval.c (specbind): For buffer-local value,
4543 record the current buffer also.
4544 (unbind_to): Cope with that change.
4545
cad53475
GM
45462000-02-15 Gerd Moellmann <gerd@gnu.org>
4547
4548 * window.c (Fsave_window_excursion): Doc fix.
4549
1aa963c8
SM
45502000-02-15 Stefan Monnier <monnier@cs.yale.edu>
4551
4552 * syntax.c (back_comment): Make sure we only consider comment-starters
4553 of the relevant style and return -1 in case of a failure to find the
4554 beginning of the comment.
4555 (Fforward_comment): If back_comment fails, go back to the position just
4556 after the comment-end.
4557 (scan_lists): Add comment describing a very minor bug.
4558
b9b84fd3
SM
45592000-02-14 Stefan Monnier <monnier@cs.yale.edu>
4560
4561 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
4562 `completion-regexp-list' in the docstring.
4563
3a28db80
DL
45642000-02-14 Dave Love <fx@gnu.org>
4565
4566 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
4567
fb4a568d
SM
45682000-02-14 Stefan Monnier <monnier@cs.yale.edu>
4569
4570 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
4571 to Emacs' syntax. Also fix the comment about set/not-set meanings
4572 since Emacs syntax is not the value 0 any more.
4573 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
4574 since it's now part of RE_SYNTAX_EMACS.
4575
1063ebb5
DL
45762000-02-12 Dave Love <fx@gnu.org>
4577
4578 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
4579 Alpha.
4580
fb07a302
GM
45812000-02-12 Gerd Moellmann <gerd@gnu.org>
4582
4583 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
4584
aaf2320c
DL
45852000-02-12 Dave Love <fx@gnu.org>
4586
4587 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
4588
4589 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
4590 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
4591 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
4592
4593 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
4594
4595 * s/nextstep.h: Don't define HAVE_ALLOCA.
4596
4597 * config.in: Add vfork bits.
4598
eedf8bde
GM
45992000-02-12 Gerd Moellmann <gerd@gnu.org>
4600
4601 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
4602 unwind function to undo the effect of stopping atimers.
4603
4604 * keyboard.c (bind_polling_period): Stop all timers except
4605 poll_timer.
4606
4607 * atimer.c (stopped_atimers): New variable.
4608 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
4609 New functions.
4610
4611 * atimer.h (stop_other_atimers, run_all_atimers)
4612 (unwind_stop_other_atimers): Add function prototypes.
427ec082 4613
eedf8bde
GM
4614 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
4615
8476c2f8
KR
46162000-02-11 Ken Raeburn <raeburn@gnu.org>
4617
4618 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
4619 library may depend on jpeg.
4620 (atimer.o): Depends on atimer.c.
4621
0e85e4a3
KH
46222000-02-11 Kenichi Handa <handa@etl.go.jp>
4623
4624 * insdel.c (del_range_1): Call update_compositions.
4625 (del_range_both): Call update_compositions just once..
4626
97fa0cc8
DL
46272000-02-10 Dave Love <fx@gnu.org>
4628
4629 * xfns.c (create_frame_xic): Fix initialization of automatic
4630 aggregates for pcc.
4631
25566a3c
KH
46322000-02-09 Kenichi Handa <handa@etl.go.jp>
4633
4634 * ccl.c (CCL_MAKE_CHAR): New macro.
4635 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
4636 registers by CCL_MAKE_CHAR before calling translate_char.
4637 <CCL_TranslateCharacterConstTbl> Likewise.
4638
69da54ba
DL
46392000-02-08 Dave Love <fx@gnu.org>
4640
4641 * lread.c (__EXTENSIONS__): Define.
4642
f7136ee8
GM
46432000-02-08 Gerd Moellmann <gerd@gnu.org>
4644
4645 * puresize.h (BASE_PURESIZE): Increase to 650000.
4646
7768790b
EZ
46472000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
4648
4649 * msdos.c (XMenuActivate): Turn off the cursor after displaying
4650 the help message.
4651
38fd211b
EZ
46522000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
4653
4654 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
4655 md, mh, mb, mr, and me to the fake termcap entry.
4656
66e4690f
KR
46572000-02-06 Ken Raeburn <raeburn@gnu.org>
4658
4659 * sound.c (sound_cleanup): Don't call device close routine if the
4660 function pointer is null.
4661
a75dfea0
AI
46622000-02-06 Andrew Innes <andrewi@gnu.org>
4663
4664 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
4665 around image definitions and prototypes.
4666 (gamma_correct) [WINDOWSNT]: New prototype.
4667
4668 * w32term.c (x_make_frame_visible): Replace call to
4669 input_poll_signal with poll_for_input.
4670
4671 * window.c [WINDOWSNT]: Include w32term.h.
4672
4673 * xdisp.c [WINDOWSNT]: Include w32term.h.
4674
4675 * makefile.nt: Add dependencies on w32gui.h.
4676 (OBJ1): Include atimer.obj.
4677 ($(BLD)\atimer.obj): New dependency rule.
4678
4679 * w32.c (sigmask): New function (does nothing).
4680 (sigunblock): Ditto.
4681
4682 * frame.c [WINDOWSNT]: Include w32term.h.
4683
4684 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
4685
4686 * lread.c (syms_of_lread): Fix literal newlines.
4687
4688 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
4689 the string constant limit (2048 bytes) in MSVC.
4690 (main): Ditto.
4691
59ddecde
GM
46922000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
4693
4694 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
4695 area.
4696 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
4697 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
4698 dispatch the event.
4699
07590973
DL
47002000-02-04 Dave Love <fx@gnu.org>
4701
4702 * fileio.c: Remove some unused vars.
4703 (_GNU_SOURCE): Define (for euidaccess).
4704
4705 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
4706
4707 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
4708 gcpro1, gcpro2.
4709 (read_minibuf): Deal with allow_props correctly.
4710
649351f9
EZ
47112000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
4712
4713 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
4714
66e4690f 47152000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
4716
4717 * search.c (compile_pattern): If a cache entry has a nil regexp,
4718 fill in that entry instead of clobbering a previously cached
4719 string regexp.
4720
66e4690f 47212000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
4722
4723 * puresize.h (BASE_PURESIZE): Increase to 610000.
4724
d240a249
GM
47252000-02-02 Gerd Moellmann <gerd@gnu.org>
4726
4727 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
4728 can GC.
4729
ca91fb26
KH
47302000-02-02 Kenichi Handa <handa@etl.go.jp>
4731
25660570
KH
4732 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
4733 instead of incrementing ic directly.
4734 <CCL_WriteExprConst> Likewise.
4735 <ccl_set_expr>: Set ic to jump_address.
4736
ca91fb26
KH
4737 * fileio.c (e_write): Fix the handling of
4738 CODING_FINISH_INSUFFICIENT_SRC.
4739
2ede9689
DL
47402000-02-01 Dave Love <fx@gnu.org>
4741
4742 * editfns.c (Fpropertize): Doc fix.
4743
4744 * process.c (Fstart_process): Doc fix.
4745
4746 * eval.c: Fix various doc strings not to duplicate information
4747 from help-manyarg-func-alist.
4748
4749 * window.c (Fset_window_margins): Don't make interactive. Doc
4750 fix.
4751
4752 * doc.c (Vhelp_manyarg_func_alist): New variable.
4753 (Fdocumentation): Use it.
4754 (syms_of_doc): Define it.
4755
b6680a0e
GM
47562000-01-31 Gerd Moellmann <gerd@gnu.org>
4757
2cb750ba
GM
4758 * xterm.c (xim_open_dpy): Remove unused local variable.
4759
74e9213b
GM
4760 * emacs.c (USAGE): Use term `display options' instead of `X
4761 options'.
4762
4763 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
4764 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
4765
b6680a0e
GM
4766 * fns.c (sweep_weak_table): New function.
4767 (sweep_weak_hash_tables): Use it. Keep on marking until there
4768 is no more change.
4769
994c5afe
GM
47702000-01-30 Gerd Moellmann <gerd@gnu.org>
4771
4772 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
4773 that XTread_socket does not crash by trying to call XNoOp on a
4774 closed display.
427ec082 4775
f00276e3
JR
47762000-01-30 Jason Rumney <jasonr@gnu.org>
4777
4778 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4779 Change selected_frame to SELECTED_FRAME ().
4780 (w32_console_mouse_position): Remove #ifndef MULE from around
4781 `insist' parameter.
4782
4783 * makefile.nt: Remove dosfns.obj.
4784
4785 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
4786
4787 * w32fns.c (w32_defined_color): Check for valid frame before
4788 applying gamma correction. Eliminate dependency on frame elsewhere.
4789 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
4790 (w32_to_x_font): Use resx and resy not height_in and width_in.
4791 (x_to_w32_font): Doc fix.
4792 (xlfd_strip_height): New function to strip and return font height.
4793 (w32_font_match): Compare height separately from rest of xlfd
4794 spec, using xlfd_strip_height.
4795
4796 * w32term.c (w32_term_init): Swap resx and height_in, resy and
4797 width_in. Use w32_defined_color in place of defined_color.
4798
4799 * w32faces.c: Merge more of DOS and X specifics in preparation for
4800 merge with xfaces.c.
4801 (defined_color): Remove FIXME comment.
4802 (tty_color_name): Provide w32-specific function.
4803 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
4804
4805 * w32console.c (turn_on_face, turn_off_face): Removed.
4806 (w32_face_attributes): New function.
4807 (Global_variables): Reduce scope where possible.
4808 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
4809 fill attribute.
4810 (hl_mode): Don't modify text attributes.
4811 (write_glyphs): Don't do anything if len <= 0. Use
4812 w32_face_attributes to get attributes for drawing. Write
4813 terminating codes using char_attr_normal.
4814 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
4815 (update_begin, update_end): Likewise.
4816 (vga_stdcolor_name): New function.
4817 (initialize_w32_display): Remove char_attr_reverse and char_attr.
4818 (Fset_screen_color): Remove char_attr_reverse.
4819
b08e8bb2
GM
48202000-01-29 Gerd Moellmann <gerd@gnu.org>
4821
4822 * xfns.c (xic_set_preeditarea): Take window parameter and
4823 window-relative pixel-positions.
4824
4825 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
4826 is its frame's selected window.
4827 (xim_instantiate_callback): Likewise.
4828
4829 * xfns.c (x_create_im): Removed.
4830 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
4831 (supported_xim_styles): Renamed from supported_styles.
4832 (best_xim_style): Renamed from best_style.
4833 (create_frame_xic): Renamed from xic_create_frame.
4834 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 4835
b08e8bb2
GM
48362000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
4837
4838 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
4839 our frames, call XFilterEvent with 2nd parameter `None'.
4840 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
4841 returning XBufferOverflow.
4842 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
4843 area.
4844 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
4845 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
4846 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
4847 (xim_initialize, xim_close)
4848 [HAVE_X_I18N && HAVE_X11R6]: New functions.
4849 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
4850 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
4851 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
4852
4853 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
4854 and `xim_styles'.
4855 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
4856 `xic_style' and `xic_xfs'.
4857 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
4858 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
4859 (FRAME_XIM): Removed.
4860
4861 * xfns.c (supported_styles): New variable.
4862 (DEFAULT_STYLE, DEFAULT_FONT): New macros
4863 (xic_create_xfontset, best_style, xic_create_frame)
4864 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
4865 (xic_set_xfontset): New functions.
4866
142e109c
DL
48672000-01-28 Dave Love <fx@gnu.org>
4868
4869 * s/irix6-5.h: Revert last change after change to irix5-0.h.
4870
4871 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
4872
b02786f9
GM
48732000-01-28 Gerd Moellmann <gerd@gnu.org>
4874
d060bc9f
GM
4875 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
4876 for *scratch* if it already existed.
4877
b02786f9
GM
4878 * emacs.c (USAGE): New macro.
4879 (main): Use it to display usage information.
4880
2c52d7e4
EZ
48812000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4882
4883 Support for the menu-help feature:
4884
4885 * msdos.h: Change prototypes of XMenuAddSelection and
4886 XMenuActivate.
4887
4888 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
4889 part of the line to the termscript file.
4890 (IT_clear_to_end): Clear the entire line, not just its beginning.
4891 (menu_help_message, prev_menu_help_message): New variables.
4892 (IT_menu_make_room): Make room for the help_text member.
4893 (IT_menu_display): New argument disp_help; all callers changed.
4894 If disp_help is non-zero, store the help text of the active menu
4895 item in menu_help_message.
4896 (XMenuAddPane): Initialize the help_text member to NULL.
4897 (XMenuAddSelection): New argument help_text. Store it in the
4898 XMenu structure.
4899 (XMenuActivate): New argument help_callback. If the value of
4900 menu_help_message has changed since the last time, display the
4901 menu help message text while waiting for the mouse to move. Clear
4902 the echo area before exiting.
4903 (XMenuDestroy): Free the help_text member.
4904
ffe0bcd1
GM
49052000-01-27 Gerd Moellmann <gerd@gnu.org>
4906
4907 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
4908 XMenuAddSelection. Pass help callback to XMenuActivate.
4909 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
4910
50dbd23f
EZ
49112000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4912
4913 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
4914 and EMACS_SET_USECS.
4915
f5941bf8
GM
49162000-01-26 Dave Love <fx@gnu.org>
4917
6c67ddee
DL
4918 * editfns.c (Fchar_after, Fchar_before): Doc fix.
4919
f5941bf8
GM
4920 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
4921 an error may be signalled.
4922
9e49c990
GM
49232000-01-26 Gerd Moellmann <gerd@gnu.org>
4924
fc3cb460
GM
4925 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
4926 LD_SWITCH_SYSTEM inherited from irix5-0.h.
4927
9e49c990
GM
4928 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
4929
d0c037d8
GM
49302000-01-25 Gerd Moellmann <gerd@gnu.org>
4931
4932 * charset.c (Fstring): If there is a multibyte char among
4933 the args, always return a multibyte string.
4934
e12489f9
GM
49352000-01-25 Gerd Moellmann <gerd@gnu.org>
4936
4937 * sysdep.c (sys_select): Turn atimers off and on instead of
4938 recording and restoring old alarm handler
4939
4940 * process.c (toplevel): Include atimer.h.
4941 (create_process_1): Rewritten.
4942 (create_process): Use atimers instead of alarm.
4943 (wait_reading_process_input) [hpux]: Turn atimers off instead
4944 of turning off SIGALRM.
4945 (wait_reading_process_input): Turn off atimers instead off
4946 calling stop_polling.
4947
4948 * emacs.c (main): Call init_atimer.
4949
4950 * keyboard.c (toplevel): Include systime.h and atimer.h.
4951 (polling_for_input): Removed because unused.
4952 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
4953 (poll_timer): New variable.
4954 (poll_for_input, poll_for_input_1): New functions.
4955 (start_polling, stop_polling): Rewritten.
4956
4957 * keyboard.h (polling_for_input): Removed.
427ec082 4958
e12489f9
GM
4959 * atimer.h, atimer.c: New files.
4960
4961 * Makefile.in (obj): Add atimer.o.
4962 (atimer.o): New target.
4963
4964 * blockinput.h (pending_atimers): Add extern declaration.
4965 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
4966
4967 * lisp.h (popup_activated_flag): Add extern declaration.
4968
4969 * xmenu.c (popup_activated_flag): Make externally visible.
4970 (popup_activate_callback) [USE_MOTIF]: Increment
4971 popup_activated_flag.
4972 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
4973
4974 * xterm.c (toplevel): Include atimer.h.
4975 (toolkit_scroll_bar_interaction): New variable.
4976 (Fxt_process_timeouts): Removed.
4977 (x_process_timeouts): New function.
4978 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
4979 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
4980 (x_make_frame_visible): Call poll_for_input_1 instead of
4981 input_poll_signal. Don't call alarm.
4982 (x_initialize): Install timer calling x_process_timeouts.
427ec082 4983
1e5279b9
DL
49842000-01-24 Dave Love <fx@gnu.org>
4985
6c67ddee 4986 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
4987 Don't use -cckr -- apparently not now necessary.
4988
edf6aeb8
EZ
49892000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
4990
4991 * msdos.c (IT_menu_display): Truncate long menu lines at the right
4992 screen boundary.
4993
9badad41
JR
49942000-01-23 Jason Rumney <jasonr@gnu.org>
4995
4996 * w32fns.c (w32_defined_color): Apply gamma correction before
4997 trying to map to the palette.
4998 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
4999 to w32_clear_rect.
5000
5001 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
5002 here. Callers changed to always pass real device context.
5003 (w32_draw_bitmap): Likewise.
5004 (w32_get_glyph_overhangs): Likewise.
5005 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
5006 one.
5007 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
5008 pfnSetScrollInfo and SetScrollRange.
5009 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
5010 back into MULE characters after decoding them.
5011 (x_get_glyph_face_and_encoding): Likewise.
5012 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
5013 GetCharABCWidthsW fails, since this is defined on Windows 9x.
5014 (x_produce_glyphs): Calculate per char metrics for a character
5015 that we know exists in default font when font_not_found_p is true.
5016
63bd786b
JR
50172000-01-22 Jason Rumney <jasonr@gnu.org>
5018
5019 * makefile.nt (intervals.obj, composite.obj): New modules.
5020 (composite.h): Added as dependency where appropriate.
5021
5022 * w32gui.h (XGCValue): New struct for emulating X GCs.
5023
5024 * w32term.h (XCharStruct): New struct for emulating X.
5025
5026 * w32console.c (turn_on_face, turn_off_face): New functions.
5027 (change_line_highlight): New prototype for new redisplay.
5028 (write_glyphs): Support multibyte text. Support faces.
5029
5030 * w32faces.c: Complete rewrite for new redisplay based on new
5031 xfaces.c.
5032
5033 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
5034 throughout. struct frame * in place of FRAME_PTR.
5035 Skeleton support for images, toolbars, tooltips from xfns.c.
5036 (Fx_create_frame): Use system default for default scroll bar
5037 width.
5038 (w32_get_arg): Renamed from x_get_arg.
5039 (Fx_file_dialog): New function.
5040 (w32_list_fonts): Check cache before asking system.
5041 (Vw32_enable_synthesized_fonts): New variable.
5042 (Vw32_enable_italics): Obsolete, removed.
5043
5044 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
5045 Use SELECTED_FRAME macro.
5046
5047 * w32menu.c: Add skeleton support for help strings on menus.
5048 (add_menu_item): Native checkbox and radio support added, but not
5049 yet enabled due to bugs.
5050 (push_menu_item): Add parameters type, selection and help.
5051 Callers updated.
5052 Formatting changes to reduce unnecessary diffs with xmenu.c.
5053
5054 * w32select.c (Fw32_set_clipboard_data): Update call to
5055 find_charset_in_str.
5056
5057 * w32term.c: Complete rewrite for new redisplay based on new
5058 xterm.c with necessary sections merged back in from old w32term.c.
5059
6ffd3cf7 50602000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
5061
5062 * data.c (set_internal): Further fix in same criterion.
5063
6ffd3cf7 50642000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
5065
5066 * data.c (set_internal): Fix the criteria for whether
5067 to swap out the old cached binding.
5068
60af03f1
DL
50692000-01-19 Dave Love <fx@gnu.org>
5070
5071 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
5072
f9be074f
KH
50732000-01-18 Kenichi Handa <handa@etl.go.jp>
5074
5075 * regex.c (re_compile_fastmap): While checking a range table for
5076 `charset', skip flag bits for a character class correctly.
5077
52b8dbf9
GM
50782000-01-17 Gerd Moellmann <gerd@gnu.org>
5079
d36100c9
GM
5080 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
5081
52b8dbf9
GM
5082 * xfns.c (x_window): Call lw_create_widget with new parameter
5083 list.
5084
5085 * widget.c (EmacsFrameSetCharSize): Change size of children first
5086 because of problems with main window geometry management under
5087 Lesstif.
5088
5089 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
5090 MENU_ITEMS_ITEM_.*.
5091 (MENU_ITEMS_ITEM_HELP): New enumerator.
5092 (push_menu_item): Add parameter HELP. Record help in menu_items.
5093 (single_menu_item, single_submenu, list_of_items): Call
5094 push_menu_item with new parameter.
5095 (single_submenu): Set help string in widget value.
5096 (menu_highlight_callback): New function.
5097 (set_frame_menubar): Call lw_create_widget with new
5098 parameter list.
5099 (xmenu_show, xdialog_show): Ditto.
5100
3139018f
GM
51012000-01-13 Gerd Moellmann <gerd@gnu.org>
5102
5103 * sound.c (Fplay_sound): Improve doc string.
5104
83c8f461
RS
51052000-01-11 Richard M. Stallman <rms@gnu.org>
5106
5107 * lisp.h (set_internal): Enter the new arg.
5108
5109 * eval.c (specbind): Record buffer-local variables specially,
5110 indicating which buffer's binding was saved.
5111 (unbind_to): Restore buffer-local variables specially
5112 in the proper buffer.
5113
5114 * data.c (set_internal): New arg BUF.
427ec082 5115
83c8f461
RS
5116 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
5117 * data.c (Fset): Pass new arg to set_internal.
5118 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 5119
1fab1775
GM
51202000-01-11 Gerd Moellmann <gerd@gnu.org>
5121
5122 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
5123 xprintsym.
5124
83c8f461 51252000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
5126
5127 * minibuf.c (Ftry_completion): Doc fix.
5128
7a85e4df
GM
51292000-01-11 Gerd Moellmann <gerd@gnu.org>
5130
5131 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
5132 vector, too.
5133
a970dae4
AS
51342000-01-11 Andreas Schwab <schwab@suse.de>
5135
5136 * coding.c (code_convert_region): Initialize total_skip.
5137
c65d14ee
DL
51382000-01-08 Dave Love <fx@gnu.org>
5139
5140 * eval.c (Fuser_variable_p): Check customizability too.
5141
834938d2
GM
51422000-01-07 Gerd Moellmann <gerd@gnu.org>
5143
5144 * minibuf.c (Fcompleting_read): Doc fix.
5145
e0303cd6
GM
51462000-01-05 Gerd Moellmann <gerd@gnu.org>
5147
8a26744b
GM
5148 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
5149 -L /usr/local/lib.
5150
e0303cd6
GM
5151 * xfns.c (x_create_im): New function to set IM and IC of a frame.
5152 Check that input style is supported before trying to create an
5153 IC for it.
5154 (x_window): Call x_create_im.
427ec082 5155
2e471eb5
GM
51562000-01-04 Gerd Moellmann <gerd@gnu.org>
5157
560a7bd2
GM
5158 * xfns.c (current_gif_memory_src): New variable.
5159 (gif_load): Record the address of the current memory source
5160 in current_gif_memory_src.
5161 (gif_read_from_memory): Use current_gif_memory_src.
5162
f9ee84a3
GM
5163 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
5164 macros statement form.
5165
d1299cde
GM
5166 * sound.c (struct sound): Renamed from struct sound_file.
5167 (struct sound): Add members `data' and `header_size'.
5168 (enum sound_attr): Add SOUND_DATA.
5169 (current_sound, current_sound_device): Variables renamed from
5170 sound_file and sound_device.
5171 (parse_sound): Parse :data.
5172 (parse_sound): Handle sound data in strings.
5173 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 5174 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
5175 needed header size.
5176 (wav_play, au_play): Play sounds from string data.
5177
2e471eb5
GM
5178 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
5179
5180 * lisp.h: Add prototype for allocate_string_data.
5181
5182 * alloc.c (Fgarbage_collect): Return number of live and free
5183 strings.
5184
5185 * alloc.c (mark_buffer): Remove code in #if 0.
5186 (gc_sweep): Ditto.
5187 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
5188 (strings_consed): New variable.
5189 (allocate_string): Set it.
5190 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
5191 (Fmemory_use_counts): Return strings_consed. Use Flist.
5192
5193 * alloc.c: General cleanup in comments etc. Remove conditional
5194 compilation for `standalone'.
5195
5196 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
5197
5198 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
5199 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
5200 (DONT_COPY_FLAG): Removed.
5201 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
5202 (struct sdata, struct sblock): New
5203 (struct string_block): Rewritten.
5204 (STRINGS_IN_STRING_BLOCK): New macro.
5205 (oldest_sblock, current_sblock, total_strings, total_free_strings)
5206 (large_sblocks, string_blocks, string_free_list): New variables.
5207 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
5208 (init_strings): Rewritten.
5209 (allocate_string, allocate_string_data, compact_small_strings)
5210 (free_large_strings, sweep_strings): New functions.
5211 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
5212 (struct string_block_head, current_string_block)
5213 (first_string_block, large_string_blocks, STRING_FULLSIZE)
5214 (STRING_PAD): Removed.
5215 (make_uninit_multibyte_string, make_pure_string): Rewritten.
5216 (Fgarbage_collect): Don't set mark bit in large strings.
5217 (mark_object): Mark strings differently. Mark symbol names
5218 differently.
5219 (survives_gc_p): Test marked strings differently.
427ec082 5220 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
5221 symbol names.
5222 (compact_strings): Removed.
5223
42608ba8
EZ
52242000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
5225
5226 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
5227 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
5228
e0a09e1a
KH
52292000-01-04 Kenichi Handa <handa@etl.go.jp>
5230
dd9f0750 5231 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 5232 in a non-empty buffer.
dd9f0750 5233
3c0f3b15 5234 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 5235
44cd3ae5
GM
52362000-01-03 Gerd Moellmann <gerd@gnu.org>
5237
5238 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
5239 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
5240
5241 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
5242
c182a70f
EZ
52432000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
5244
5245 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
5246 need to test for MSDOS frames.
5247
24480d5b
EZ
52482000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
5249
5250 * dosfns.c (unspecified_colors): Remove.
5251 (msdos_stdcolor_idx): Use global variables unspecified_fg and
5252 unspecified_bg.
5253 (msdos_stdcolor_name): Return strings for unspecified fore- and
5254 back-ground colors.
5255
5256 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 5257 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
5258 (tty_color_name): Return Lisp strings for unspecified fore- and
5259 back-ground colors.
5260 (Finternal_set_lisp_face_attribute): Remove the special treatment
5261 for Qunspecified_{f,b}g.
5262 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
5263 string.
5264
047f434a
GM
52652000-01-03 Gerd Moellmann <gerd@gnu.org>
5266
5267 * xdisp.c (reseat_at_next_visible_line_start): Position before
5268 newline only if ending up on a newline.
5269 (next_element_from_ellipsis): Return success. Handle case of
5270 displaying no ellipsis. Fix case of ellipsis defined in display
5271 table.
5272 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
5273 returns 0.
5274
d684c676
EZ
52752000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
5276
5277 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
5278 (Fcolor_supported_p): Renamed from face-color-supported-p.
5279
5fe1d139
EZ
52802000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
5281
5282 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
5283 list of colors renamed to tty-defined-color-alist.
5284 (tty_color_name): Pass the frame to tty-color-by-index.
5285 (realize_tty_face): tty-color-alist is now a function which
5286 accepts the frame as argument.
5287
5288 * term.c (Ftty_display_color_p): Accept an optional argument
5289 FRAME.
5290
816be8b8
EZ
52912000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
5292
5293 * term.c (insert_glyphs): Pass glyph, not &glyph, to
5294 encode_terminal_code.
5295
b635321e
EZ
52962000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
5297
5298 * dispnew.c (mode_line_string): Support termcap frames as well.
5299
9b784e96
GM
53002000-01-01 Gerd Moellmann <gerd@gnu.org>
5301
27189709
GM
5302 * syntax.c (Fforward_word): Undo previous change.
5303
5304 * editfns.c (Fconstrain_to_field): Don't constrain if
5305 inhibit-field-text-motion is non-nil.
5306 (Fline_beginning_position): Undo previous change.
5307 (Fline_end_position): Ditto.
5308
5309 * syntax.c (Fforward_word): Notice field boundaries only if
5310 inhibit-field-text-motion is nil.
5311
5312 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
5313
5314 * editfns.c (Vinhibit_field_text_motion): New variable.
5315 (inhibit-field-text-motion): New DEFVAR_LISP.
5316 (Fline_beginning_position, Fline_end_position): Notice field
5317 boundaries only if inhibit-field-text-motion is nil.
5318
45158a91
GM
5319 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
5320 All calls adjusted.
5321 (x_build_heuristic_mask): Likewise.
5322 (xbm_load_image_from_file): Change error output.
5323 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
5324 (gif_load, gs_load, x_kill_gs_process): Ditto.
5325
9b784e96
GM
5326 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
5327 color indices when accessing raster pixels.
63cec32f
GM
5328 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
5329 one of :file or :data.
5330 (enum pbm_keyword_index): Add PBM_DATA.
5331 (pbm_format): Add :data.
5332 (pbm_image_p): Allow either :file or :data.
5333 (pbm_read_file): New function.
5334 (pbm_scan_number): Rewritten to read from string.
5335 (pbm_load): Support :data.
9b784e96 5336
2cb085db 5337See ChangeLog.8 for earlier changes.