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