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