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