(Frecenter): Use displayed_window_lines instead
[bpt/emacs.git] / src / ChangeLog
CommitLineData
3e32cc27
GM
12000-12-27 Gerd Moellmann <gerd@gnu.org>
2
12c8b416
GM
3 * window.c (Frecenter): Use displayed_window_lines instead
4 of window_internal_height.
5
6061fbf0
GM
6 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
7 instead of x-toolkit-scroll-bars-p.
8 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
9
10 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
11 instead of x-toolkit-scroll-bars-p.
12 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
13
3e32cc27
GM
14 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
15 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
16 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]: New
17 variables.
18 (add_window_display_history, add_frame_display_history)
19 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
20 (build_frame_matrix_from_leaf_window): Remove unused code.
21 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
22 redisplay history.
23 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
24 (update_window) [GLYPH_DEBUG]: Likewise.
25 (syms_of_display): Defsubr dump-redisplay-history.
26
31798cfe
GM
272000-12-23 Gerd Moellmann <gerd@gnu.org>
28
f717c2ba
GM
29 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
30 the end of the prompt. Set echo_after_prompt to the offset
31 of echoptr in echobuf.
32
aeb2b8fc
GM
33 * xdisp.c (init_from_display_pos): Pop until the iterator's
34 stack is empty; there may be frames for stretch or images
35 on the stack.
36
31798cfe
GM
37 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
38 (save_or_restore_current_matrix): New function for the same
39 purpose, but more efficient.
40 (adjust_frame_glyphs_for_frame_redisplay): Use it.
41
f8156156
EZ
422000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
43
44 * xdisp.c (syms_of_xdisp): Fix last change.
45
bdd6d4e8
GM
462000-12-23 Gerd Moellmann <gerd@gnu.org>
47
48 * xdisp.c (syms_of_xdisp): Doc fix.
49
50 * xdisp.c (redisplay_window): Remove label restore_buffers;
51 use finish_scroll_bars instead to make sure that scroll bars
52 are redeemed. If we don't do this, flickering can result from
53 scroll bars being destroyed and recreated.
54
9436cdf9
JR
552000-12-22 Jason Rumney <jasonr@gnu.org>
56
57 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
58 in the wrong colors when the foreground is not black.
59 (expose_window): Don't redraw the window that's currently being
60 updated.
61
951f9df5
GM
622000-12-22 Gerd Moellmann <gerd@gnu.org>
63
856ff7a7
GM
64 * window.c (size_window): When setting the window's too_small_ok
65 flag, compare old size with minimum size depending on WIDTH_P,
66 don't compare with window_min_width.
67
951f9df5
GM
68 * window.c (delete_window): Simplify somewhat.
69 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
70 freeing window matrices. The flag windows_or_buffers_changed is
71 set, so the next redisplay will consider all windows; this should
72 suffice.
73
886bc933
KH
742000-12-22 Kenichi Handa <handa@etl.go.jp>
75
76 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
77
78 * ccl.h (struct ccl_program): New member cr_consumed.
79
80 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
81 (CCL_READ_CHAR): Handle EOL conversion here.
82 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
83
177f4e88
GM
842000-12-21 Gerd Moellmann <gerd@gnu.org>
85
6ba384dc
GM
86 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg
87 GLYPHS.
88
89 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
90 otherwise tabs of different size compare equal.
91
92 * callint.c (Fcall_interactively): Prevent a compiler warning.
93
94 * print.c (print_unwind): Return nil.
95 (PRINTDECLARE): Initialize all local variables.
96 (print_preprocess): Add a default case.
97
8e15274f
GM
98 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
99
100 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
101
177f4e88
GM
102 * window.c (delete_window, Fsplit_window)
103 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
104
105 * dispextern.h (ensure_frame_matrix): Function declaration removed.
106
107 * dispnew.c (ensure_frame_matrix): Removed.
108 (save_frame_matrix, restore_frame_matrix): New functions.
109 (adjust_frame_glyphs_for_frame_redisplay): Use them.
110
111 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
112 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
113
99012074
AI
1142000-12-21 Andrew Innes <andrewi@gnu.org>
115
116 * w32term.c (x_update_begin): Regenerate the palette here, rather
117 than for each window.
118
119 * w32xfns.c (select_palette): Avoid calling SelectPalette if
120 palette is NULL, since this corrupts memory! Also get
121 display_info reference from frame.
122
29ef7d2d
JR
1232000-12-21 Jason Rumney <jasonr@gnu.org>
124
125 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
126
127 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
128 to avoid returning without releasing it.
3e27fa1f 129
3f9d67a6
KH
1302000-12-21 Kenichi Handa <handa@etl.go.jp>
131
587fc3f9
KH
132 * keymap.c (push_key_description): Don't convert eight-bit-control
133 and eight-bit-graphic to multibyte character.
134
3f9d67a6
KH
135 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
136 generic character and CODE1 is nil, return the smallest character
137 in CHARSET.
138
774ba8c9
DL
1392000-12-20 Dave Love <fx@gnu.org>
140
141 * s/osf5-0.h (NSIG): Don't redefine.
142
88416888
SM
1432000-12-20 Stefan Monnier <monnier@cs.yale.edu>
144
145 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
146 excluding menu-bar and tool-bar.
147 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
148 (menu_item_p): Remove.
149 (where_is_internal_1): Don't ignore menu-items.
150
a6426c6f
GM
1512000-12-20 Gerd Moellmann <gerd@gnu.org>
152
03ff8aab
GM
153 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
154 into account.
155
156 * window.c (make_window): Initialize window's min_hscroll.
157 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
158 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
159 to zero.
160 (struct saved_window): New member min_hscroll.
161 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
162 (Fset_window_configuration): Set window's min_hscroll.
163 (save_window_save): Save window's min_hscroll.
164 (compare_window_configurations): Compare min_hscroll values.
165
166 * window.h (struct window): New member min_hscroll.
167
168 * keyboard.c (echo_prompt): Prevent a compiler warning.
169
8de4aaf8
GM
170 * xdisp.c (try_cursor_movement): Fix last change. The real
171 condition is that PT is at the end of the row, and should
172 be displayed at the start of the next row.
173
3f7e3031
GM
174 * xdisp.c (try_cursor_movement): If we end on a partially
175 visible line, end we already decided to scroll, return -1.
176
a6426c6f
GM
177 * dispextern.h (ensure_frame_matrix): Add prototype.
178
179 * window.c (delete_window, Fsplit_window)
180 (Fset_window_configuration): Call ensure_frame_matrix.
181
182 * dispnew.c (fake_current_matrices, ensure_frame_matrix): New
183 functions.
184 (adjust_frame_glyphs_for_frame_redisplay): If display has been
185 completed, call fake_current_matrices instead of marking frame
186 garbaged.
187
57fa2774
JR
1882000-12-20 Jason Rumney <jasonr@gnu.org>
189
190 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
191
d925df90
EZ
1922000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
193
194 * fns.c (Frequire): Doc fix.
195
7b93a85b
GM
1962000-12-19 Gerd Moellmann <gerd@gnu.org>
197
71d4497a
GM
198 * window.c (window_scroll_pixel_based): Don't use
199 move_it_vertically.
200
c74e645b
GM
201 * dispnew.c (direct_output_for_insert): Fix check for mini-window
202 currently displaying a message.
203
7b93a85b
GM
204 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
205 xterm.h.
206 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
207
90d97e64
AI
2082000-12-18 Andrew Innes <andrewi@gnu.org>
209
210 * w32.c (w32_strerror): New function.
211
212 * w32.h (w32_strerror): New extern.
213
214 * w32fns.c (Fw32_shell_execute): Use it.
215
91c9e6ce
GM
2162000-12-18 Gerd Moellmann <gerd@gnu.org>
217
218 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
219
6f4745e2
EZ
2202000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
221
222 * msdos.c (IT_set_face): Obey inverse_video.
223
c9e088ce
KH
2242000-12-18 Kenichi Handa <handa@etl.go.jp>
225
226 * dired.c (directory_files_internal): Always return decoded filenames.
227
c3695f5f
GM
2282000-12-18 Gerd Moellmann <gerd@gnu.org>
229
52d8e4ff
GM
230 * xterm.c (x_connection_closed): Prevent being called recursively
231 because of an error condition in XtCloseDisplay.
232
62be9979
GM
233 * xdisp.c (init_iterator): If noninteractive, and the frame's
234 face cache is null, make one.
235
5f7a1890
GM
236 * xfns.c (show_busy_cursor): Check for live frames more
237 thoroughly.
238
c3695f5f
GM
239 * process.c (wait_reading_process_input): Check for pending
240 input when running timers.
241
78555fbe
EZ
2422000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
243
244 * msdos.c (IT_write_glyphs): Compute the glyph face from
245 str->face_id.
246
b2b36264
KH
2472000-12-18 Kenichi Handa <handa@etl.go.jp>
248
249 * process.c (read_process_output): Don't run a filter if the code
250 decoder produces nothing but carryover.
251
9c543fbf
AI
2522000-12-17 Andrew Innes <andrewi@gnu.org>
253
254 * w32.c (sys_rename): Only check errno against EEXIST, and not
255 EACCES, when determining whether rename failed because the target
256 exists. This was resulting in indefinite looping on Windows 9x if
257 the source file was locked by another process.
258
259 * w32fns.c (Ffile_system_info): New function.
260 (syms_of_w32fns): Defsubr it.
261
10c2b5a8
GM
2622000-12-17 Gerd Moellmann <gerd@gnu.org>
263
b0228ace
GM
264 * window.c (coordinates_in_window): Fix computation for
265 position on vertical line between mode lines.
266
10c2b5a8
GM
267 * xfns.c (unwind_create_frame): Return t if frame was deleted.
268 Don't alter tip_frame or tip_window.
269 (unwind_create_tip_frame): Set tip_frame to nil only if frame
270 was deleted.
271
c844a81a
GM
272 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
273 Don't alter tip_frame or tip_window.
274 (unwind_create_tip_frame): Set tip_frame to nil only if frame
275 was deleted.
276
6c825f8e
EZ
2772000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
278
279 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
280 be consistent with the doc string. Reported by NAKAJIMA Mikio
281 <minakaji@osaka.email.ne.jp>.
282
af4bb4c8
KH
2832000-12-16 Kenichi Handa <handa@etl.go.jp>
284
285 * xfaces.c (Vface_ignored_fonts): New variable.
286 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
287 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
288
8062e53a
GM
2892000-12-15 Gerd Moellmann <gerd@gnu.org>
290
e87b8809
GM
291 * dispnew.c (update_window): Detect pending input every nth line
292 updated, i.e. do it depending on real work done, and not on the
293 vpos of the line.
294
295 * xterm.c (expose_window): Don't redraw the window that's
296 currently being updated.
297
a6768cc5
GM
298 * window.c (Fset_window_point): Remove test for
299 cursor_in_non_selected_windows.
300
4ea7fdca
GM
301 * lread.c (read1): Recognize end of file after `\\'.
302
8062e53a
GM
303 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
304 not unwind_create_frame.
305
bb7959c1
GM
3062000-12-15 Dave Love <fx@gnu.org>
307
308 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
309 bcopy & al.
310
311 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
312
ced04c42
KH
3132000-12-15 Kenichi Handa <handa@etl.go.jp>
314
c5443913
KH
315 * coding.c (setup_coding_system): Clear all members of the struct
316 coding_system at first.
bc137305
KH
317 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
318 argument.
319 (code_convert_region): Don't override coding->src_multibyte and
320 coding->dst_multibyte.
c5443913 321
ced04c42
KH
322 * fns.c (Fmd5): Docstring improved.
323
c2d7f289
MB
3242000-12-15 Miles Bader <miles@gnu.org>
325
326 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
327 are actually marked as mode-lines; otherwise use
328 estimate_mode_line_height.
329
9d7d9263
GM
3302000-12-14 Gerd Moellmann <gerd@gnu.org>
331
332 * editfns.c (Fformat): Prevent a buffer overrun when the format
333 specifies a precision.
334
7cf0153a
EZ
3352000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
336
337 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
338 argument is outside the range [2..3].
339
1de0f662
AI
3402000-12-14 Andrew Innes <andrewi@gnu.org>
341
342 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
343 nothing to do. Bind inhibit-quit.
344 (tip_frame): Make it a Lisp_Object.
345 (x_create_tip_frame): Set tip_frame after it has been added to
346 Vframe_list.
347 (Fx_show_tip): Don't set tip_frame here.
348 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New
349 variables.
350 (unwind_create_frame, unwind_create_tip_frame): New functions.
351 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
352 while a frame is only partially constructed.
353
354 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
355 (x_free_frame_resources): New function.
356 (x_destroy_window): Use it.
357
02387dcc
GM
3582000-12-14 Gerd Moellmann <gerd@gnu.org>
359
360 * xfns.c (Fx_backspace_delete_keys_p): New function.
361 (syms_of_xfns): Defsubr it.
362
363 * config.in (HAVE_XKBGETKEYBOARD): Add.
364
0544ef49
KH
3652000-12-14 Kenichi Handa <handa@etl.go.jp>
366
98d62747
KH
367 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
368 Always store string in multibyte representation in echobuf.
369 (echo_char): Always store string in multibyte representation in
370 echobuf.
371 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
372 (read_key_sequence): Adjusted for the change of echo_prompt.
373
a20193cd
KH
374 * fns.c (Fmd5): Docstring improved.
375
191b83b6
KH
376 * lisp.h (detect_coding_system): Prototype adjusted.
377
0544ef49
KH
378 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
379 (detect_coding_emacs_mule, detect_coding_iso2022,)
380 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
381 (detect_coding_utf_16, detect_coding_ccl): Make them static. New
382 argument MULTIBYTEP. Callers changed.
383 (detect_coding_mask, detect_coding_system): New argument
384 MULTIBYTEP. Callers changed.
1da1bb05
KH
385 (decode_coding_string): Set coding->src_multibyte and
386 coding->dst_multibyte before calling detect_coding and detect_eol.
387 Update them after some coding system is detected.
388
d5b3eb1b
SM
3892000-12-13 Stefan Monnier <monnier@cs.yale.edu>
390
391 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
392
393 * keyboard.c (menu_bar_items, tool_bar_items):
394 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
395
f7f8bb69
GM
3962000-12-13 Gerd Moellmann <gerd@gnu.org>
397
19f71add
GM
398 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
399 New variables.
400 (unwind_create_frame, unwind_create_tip_frame): New functions.
401 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
402 while a frame is only partially constructed.
403
404 * xterm.h (x_free_frame_resources): Declare.
405
406 * xterm.c (x_free_frame_resources): New function.
407 (x_destroy_window): Use it.
408
e10da507
GM
409 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
410 don't interrupt the update for pending input initially, i.e.
411 update at least some lines.
412
413 * keyboard.c (do_mouse_tracking): Make externally visible.
414
d5b3eb1b 415 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
f7f8bb69
GM
416
417 * xfns.c (gray_bitmap_bits): Declare `char *'.
418
90aa2856
GM
4192000-12-12 Gerd Moellmann <gerd@gnu.org>
420
421 * xdisp.c (display_tool_bar_line): Make sure that tool bar
422 lines start with a relief line.
423
a308c9cd
DL
4242000-12-12 Dave Love <fx@gnu.org>
425
426 * window.c (Fdisplay_buffer): Doc fix.
427 (Fwindow_list): Remove unused var.
428
429 * buffer.h (mmap_set_vars): Declare.
430
431 * window.h (Fset_window_point): Declare.
432
d575011f
EZ
4332000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
434
bf6282d2 435 * msdos.c (fast_find_position): Don't overstep the last window row.
d575011f
EZ
436 (IT_note_mouse_highlight): Initialize portion to -1. Remove
437 unused variable `area'. When looking for a row under (X,Y), give
438 up if some of the previous rows is not enabled.
439
ecf4d726
GM
4402000-12-12 Gerd Moellmann <gerd@gnu.org>
441
2ebf6139
GM
442 * window.c (Fset_window_point): If displaying cursors in windows
443 other than the selected window, make sure redisplay updates
444 other windows to show the new value of point in the window.
445
446 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
447
bfdb75ee
GM
448 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
449 the buffer is the sole visible buffer when in the mini-buffer.
450
4fdbd809
GM
451 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
452 Bind `inhibit-read-only' to t.
453 (unwind_with_echo_area_buffer): Use AREF.
454
c0006262
GM
455 * xfns.c (Fx_hide_tip): Simplified.
456
e9a59cad
GM
457 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use
458 GC_MAKE_GCPROS_NOOPS instead of `1'.
459
ecf4d726
GM
460 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
461
e5959a9a
GM
4622000-12-11 Gerd Moellmann <gerd@gnu.org>
463
a3642e49
GM
464 * xfns.c (Fx_hide_tip): Fix last change.
465
44b5a125
GM
466 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
467 nothing to do. Bind inhibit-quit.
468 (tip_frame): Make it a Lisp_Object.
469 (x_create_tip_frame): Set tip_frame after it has been added to
470 Vframe_list.
471 (Fx_show_tip): Don't set tip_frame here.
472
473 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
474
475 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
476 Lisp_Object.
477
478 * dispextern.h: Change external declaration of tip_frame.
479
d990421f
GM
480 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
481 return an empty string.
482
4db87380
GM
483 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
484 of the window's update_mode_line flag, since the former is set by
485 force-mode-line-update, not the latter. This makes
486 column-number-mode slightly faster.
487
e5959a9a
GM
488 * xdisp.c (try_window_id) <all changes above window start>:
489 Set the cursor.
490
169fe44e
GM
4912000-12-11 Paul Eggert <eggert@twinsun.com>
492
493 * config.in (HAVE_FTELLO): Remove.
494 (HAVE_FSEEKO): Add.
495 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
496 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
497 HAVE_FTELLO.
498 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
499 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
500
59ec59ae
MB
5012000-12-11 Miles Bader <miles@gnu.org>
502
503 * window.c (displayed_window_lines): Don't round up when
504 converting empty space at bottom to lines.
ff904dd6
MB
505 Handle non-newline-terminated final lines properly.
506 (Fwindow_text_height): New function (used to be in lisp).
507 (syms_of_window): Initialize it.
59ec59ae 508
42ebfa31
SM
5092000-12-09 Stefan Monnier <monnier@cs.yale.edu>
510
511 * syntax.c (scan_lists): Check that the right quote char has the
512 right Sstring syntax when jumping over strings.
513 (init_syntax_once): Use Smax rather than 13.
514
5cdb3cf3
MB
5152000-12-09 Miles Bader <miles@gnu.org>
516
517 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
518 with PARTIALLY, inverting the sense.
519 (window_scroll_pixel_based): Scroll partially visible lines into
520 place if we hit the beginning or end of the buffer.
a12167c5
MB
521 (displayed_window_lines): Don't include partially visible lines.
522 (Fmove_to_window_line): Skip past any partially visible first line.
5cdb3cf3 523
842b2a94
GM
5242000-12-08 Gerd Moellmann <gerd@gnu.org>
525
526 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
527
528 * tparam.c (tparam1): Change the way buffers are reallocated to be
529 portable and less obfuscated.
530
531 * termcap.c (tgetent): Change the way buffers are reallocated to
532 be portable and less obfuscated.
533
534 * macros.c (store_kbd_macro_char): Change the way buffers are
535 reallocated to be portable and less obfuscated.
536
537 * lread.c (read1): Change the way buffers are reallocated to be
538 portable and less obfuscated.
539
540 * doc.c (Fsubstitute_command_keys): Change the way buffers
541 are reallocated so that it is portable.
542
137cad7c
EZ
5432000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
544
545 * dosfns.c (Ffile_system_info): New function.
546 (syms_of_dosfns): Defsubr it.
547
5c7f629c
SM
5482000-12-07 Stefan Monnier <monnier@cs.yale.edu>
549
550 * alloc.c (gc_sweep): Add comment.
551
959e647d
GM
5522000-12-07 Gerd Moellmann <gerd@gnu.org>
553
28fcb7dc
GM
554 * sound.c (vox_configure): Change order of ioctls. Don't
555 set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
556 Ignore errors when changing volume.
557 (vox_close): Don't reset the device.
558
926b7e5e
GM
559 * process.c (read_process_output): Make sure the process marker's
560 position is valid when the process buffer is changed in
561 after-change functions. W3 does that.
562
959e647d
GM
563 * xfns.c (x_free_gcs): New function.
564
565 * xterm.h (x_free_gcs): Add prototype.
566
567 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
568 freeing GCs here.
569
570 * xterm.c (x_destroy_window): Call x_free_gcs so that
571 resources of non-toolkit X windows will be freed.
572
478ea067
AI
5732000-12-07 Andrew Innes <andrewi@gnu.org>
574
575 * w32fns.c (xlfd_charset_of_font): Fix last change.
576
fbee3231
DL
5772000-12-06 Dave Love <fx@gnu.org>
578
67292061
DL
579 * md5.h (__P): Don't define -- it comes from config.h.
580
fbee3231
DL
581 * strftime.c: Change some #if foo to #ifdef foo.
582
4ee87dbb
AI
5832000-12-06 Andrew Innes <andrewi@gnu.org>
584
585 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
586
587 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname
588 argument.
589 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
590 (w32_list_fonts): Don't choke if pattern doesn't specify a
591 codepage.
592
9765b4a4
GM
5932000-12-06 Gerd Moellmann <gerd@gnu.org>
594
d285b373
GM
595 * alloc.c (gc_sweep): Prevent symbols read during loadup
596 from being freed.
597
384333ee
GM
598 * xdisp.c (underlying_face_id): New function.
599 (handle_face_prop, face_before_or_after_it_pos): Use it
600 to determine the face ``under'' a string. Let strings inherit
601 the face of the buffer under them.
602
603 * xfaces.c (face_at_string_position): Update function comment.
604
d4b72d58
GM
605 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
606 matrix if the window's left position has changed; we need to
607 redraw it in this case.
608
609 * dispextern.h (struct glyph_matrix): Add member window_left_x.
610
e1d05387
GM
611 * window.c (coordinates_in_window): Check mouse on mode-line or
612 header-line first.
613
eb1b0c74
GM
614 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
615 advertized by the function documentation.
616
d94d636f
GM
617 * window.c (syms_of_window): Doc fix.
618
3887b449
GM
619 * sound.c (vox_configure): Set volume for left and right channel.
620 (sound_cleanup): Return nil.
621
efc8f57a
GM
622 * xdisp.c (move_it_by_lines): Fix paren typo.
623
9765b4a4
GM
624 * xterm.c (x_load_font): Don't use the font's max_bounds for
625 computing the height of the font. If max_bounds' ascent or
626 descent are greater than the font's ascent or descent, this means
627 glyphs overlap, which should be handled now by redisplay.
628
6529ed87
GM
629 * window.c (Veven_window_heights): New variable.
630 (syms_of_window): DEFVAR_LISP it.
631 (Fdisplay_buffer): Check Veven_window_heights before evening the
632 window heights.
633
0eb2ecde
MB
6342000-12-06 Miles Bader <miles@gnu.org>
635
636 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
637 update `default-frame-alist' instead of setting no frame parameters.
638
03d7a167
KH
6392000-12-06 Kenichi Handa <handa@etl.go.jp>
640
641 * composite.c (update_compositions): Fix typo (use the correct
642 variable).
643
5f8803c2
JR
6442000-12-05 Jason Rumney <jasonr@gnu.org>
645
646 * md5.h: Remove underscores from function declarations.
647 (__attribute__, __alignof__) [!__GNUC__]: Define.
648
649 * md5.c: Delay include of md5.h until after namespace cleaning.
650
c28a075b
JR
651 * makefile.w32-in (fns.o): Depend on md5.h
652 (md5.o): New target.
653 (sunfns.o): Remove.
654
655 * makefile.nt: Likewise.
656
ff3c7056
JR
6572000-12-05 Jason Rumney <jasonr@altavista.net>
658
659 * w32term.c (expose_area): Complete last change.
660
0c21eeeb
KR
6612000-12-05 Ken Raeburn <raeburn@gnu.org>
662
663 * minibuf.c: Include intervals.h.
664
f201d732
JR
6652000-12-05 Jason Rumney <jasonr@gnu.org>
666
667 * w32term.c (x_produce_glyphs): If a font for a component of
668 a composition is not found, use 1 pixel dot ascent and 0 dot
669 descent value to avoid displaying terribly tall empty boxes.
670 (expose_area): Pass x-coordinate relative to the exposed
671 area to x_draw_glyphs instead of a window-relative coordinate.
672
21999ab9
GM
6732000-12-05 Gerd Moellmann <gerd@gnu.org>
674
4d2036e4
GM
675 * xdisp.c (next_element_from_ellipsis): Save face before selective
676 display in saved_face_id, and set face_before_selective_p.
677 (reseat_1): Reset face_before_selective_p.
678 (append_space, extend_face_to_end_of_line): If iterator's
679 face_before_selective_p is set, use the face from saved_face_id.
680 (extend_face_to_end_of_line): For tty frames, make sure to
681 use the right face id when producing spaces at the end of
682 the line.
683
684 * dispextern.h (struct it): Add face_before_selective_p.
685
52be17cc
GM
686 * keyboard.c (record_char): Don't record identical help-echo
687 events in recent_keys.
688
8a4f36cc
GM
689 * xterm.c [USE_X_TOOLKIT]: Close the display.
690 (xim_close_dpy): Handle case that the display has been closed.
691
57d6e381
GM
692 * xterm.c (x_destroy_window): Reset the frame's X window after
693 destroying it.
694
21999ab9
GM
695 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
696 variable window_width.
697 (line_draw_cost): Fix code skipping over spaces at the end of the
698 line when must_write_spaces is not set.
699 (scrolling_window): Fix code inserting runs in list of all runs.
700
91372bb7
KH
7012000-12-05 Kenichi Handa <handa@etl.go.jp>
702
703 * coding.c (setup_coding_system): Be sure to initialize
704 coding->category_idx.
705
6c083b4c
GM
7062000-12-04 Gerd Moellmann <gerd@gnu.org>
707
0c68ce6f
GM
708 * xterm.c (PER_CHAR_METRIC): Removed because not used.
709
6452929e
GM
710 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
711 area to x_draw_glyphs instead of a window-relative coordinate.
712
d7f31e22
GM
713 * fileio.c (auto_save_error): Add parameter ERROR. Show the
714 error in the message.
715
ae18aa3b
GM
716 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
717 timer after having read a key. It's not good for code reading
718 several keys in a loop, like an input method.
719
caa15ef7
GM
720 * fileio.c (Finsert_file_contents): When VISIT is t, don't
721 record undo information for format-decode.
722
723 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
724 current buffer is read-only, not if it isn't.
725
6c083b4c
GM
726 * keyboard.c (record_char): Record `help-echo' input events
727 in recent_keys only if they display some help. Don't record
728 `help-echo' events as macro char.
729
caa15ef7
GM
7302000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
731
732 * editfns.c (save_excursion_restore): Don't move point
733 in another window if it is showing the wrong buffer.
734 Avoid the call to Fwindow_live_p, for speed.
735
5a13529b
KH
7362000-12-04 Kenichi Handa <handa@etl.go.jp>
737
e225faa7
KH
738 * xfaces.c (struct font_name): New member registry_priority.
739 (split_font_name): Initialize the above member to zero.
740 (concat_font_list): New function.
741 (font_list): Include fonts of all alternative registries.
742 (FONT_POINT_SIZE_QUANTUM): New macro.
743 (better_font_p): Ignore point size difference less than
744 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
745
e89648b4
KH
746 * xterm.c (x_produce_glyphs): If a font for a component of
747 a composition is not found, use 1 pixel dot ascent and 0 dot
748 descent value to avoid displaying terribly tall empty boxes.
749
5a13529b
KH
750 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
751
d7935eb6
KR
7522000-12-03 Ken Raeburn <raeburn@gnu.org>
753
754 * coding.h (code_convert_string1): Declare.
755
756 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
757
758 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name):
759 Declare.
760
0dd5e255
JR
7612000-12-02 Jason Rumney <jasonr@gnu.org>
762
763 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
764 correctly for single byte character case.
765 (w32_per_char_metric): Do not try to make any assumptions about
766 the metrics of BDF fonts.
250cfece
JR
767 (x_estimate_mode_line_height): If `mode-line' face
768 hasn't a font, use that of the frame, as drawing glyphs
769 does.
770 (note_mouse_highlight): Change the cursor shape on the vertical
771 border between windows [not enabled].
772
773 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
774
775 * w32fns.c (Fx_create_frame): Reintroduce the call to
776 face-set-after-frame-defaults.
777 (Vx_window_horizontal_drag_shape): New variable.
778 (syms_of_xfns): DEFVAR_LISP it.
779 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
780 enabled].
0dd5e255 781
b5d8d2ca
GM
7822000-12-02 Simon Josefsson <simon@josefsson.org>
783
784 * fns.c (Fmd5): Use a different logic to decide the coding system
785 to use.
786
787 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
788
fbb87147
EZ
7892000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
790
791 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is
792 NULL.
793
447e9da0
GM
7942000-12-01 Gerd Moellmann <gerd@gnu.org>
795
7708ced0
GM
796 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
797 height for YNegative.
798 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
799 height; also see comment there.
800
447e9da0
GM
801 * window.c (coordinates_in_window): Handle computations for
802 positions on the vertical bar and fringes differently for
803 window-system frames. Consider some pixels near the vertical bar
804 as on the bar if the frame doesn't have vertical scroll bars.
805 Associate positions between mode or header lines with the
806 right window, the left one.
807
86d1db20
JR
8082000-12-01 Jason Rumney <jasonr@gnu.org>
809
810 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
811
812 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
813 invalid frame.
814
a1d58e5b
GM
8152000-12-01 Gerd Moellmann <gerd@gnu.org>
816
817 * window.c (struct saved_window): Add members orig_top and
818 orig_height.
819 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
820 (save_window_save, Fset_window_configuration): Save/restore
821 window's orig_top and orig_height.
822
89c609af
JR
8232000-12-01 Jason Rumney <jasonr@gnu.org>
824
4d177746 825 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
86d1db20 826
89c609af
JR
827 * w32fns.c (x_set_cursor_color): Fix last change.
828
eccc05db
GM
8292000-11-30 Gerd Moellmann <gerd@gnu.org>
830
31b6671b
GM
831 * xdisp.c (echo_area_display): If cursor is in the echo area, make
832 sure that the next redisplay displays the minibuffer, so that
833 the cursor will be replaced with what the minibuffer wants.
834
eccc05db
GM
835 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
836 #ifndef instead of using #if.
837 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
838 USE_TOOLKIT_SCROLL_BARS is defined.
839
162de750
JR
8402000-11-30 Jason Rumney <jasonr@gnu.org>
841
842 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
843 x_display_cursor.
844
693c4692
GM
8452000-11-30 Gerd Moellmann <gerd@gnu.org>
846
847 * fns.c (Fmd5): Doc fix.
848
b5d8d2ca 8492000-11-30 Simon Josefsson <simon@josefsson.org>
edfb795e
GM
850
851 * fns.c (Fmd5): New function.
852 (syms_of_fns): Defsubr md5.
853
854 * Makefile.in (obj): Add md5.o
855
b02cd40b
GM
8562000-11-30 Gerd Moellmann <gerd@gnu.org>
857
edfb795e
GM
858 * md5.h, md5.c: New files, taken from glibc.
859
df3aedcf
GM
860 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
861
b02cd40b
GM
862 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
863 hasn't a font, use that of the frame, as drawing glyphs
864 does.
865
8b5176cd
SM
8662000-11-29 Stefan Monnier <monnier@cs.yale.edu>
867
868 * eval.c (Frun_hooks): Allow 0 arguments.
869
346598f1
GM
8702000-11-29 Gerd Moellmann <gerd@gnu.org>
871
f9396e03
GM
872 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
873 is over the menu bar widget, say it's not on the frame.
874
4a967a9b
GM
875 * xfns.c (Fx_create_frame): Reintroduce the call to
876 face-set-after-frame-defaults.
877
346598f1
GM
878 * eval.c (Fsignal): Reset handling_signal.
879
222456a1
JR
8802000-11-28 Jason Rumney <jasonr@gnu.org>
881
882 * w32menu.c (add_menu_item): Reset menu item text when changing
883 type to radio button.
884
8049ddc0
GM
8852000-11-28 Gerd Moellmann <gerd@gnu.org>
886
346598f1 887 * xselect.c: Update copyright.
f4f4ee4d 888
bebe4a2c
GM
889 * window.c (coordinates_in_window): If on a mode or header line,
890 but sufficiently close to its start, return ``on vertical
891 border''. This gives us a way to drag windows horizontally when
892 using toolkit scroll bars.
893
894 * xterm.c (note_mouse_highlight): Change the cursor shape
895 on the vertical border between windows.
896
897 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
898
899 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
900 (syms_of_xfns): DEFVAR_LISP it.
901 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
902
8d2c2642
GM
903 * textprop.c (text_read_only): New function.
904 (verify_interval_modification): Use it instead of signaling
905 `text-read-only'. This makes it easier to catch this error
906 with a breakpoint.:
907
8049ddc0
GM
908 * xdisp.c (forward_to_next_line_start): Check for newlines,
909 not end of line, which includes CR.
910
5a2bae6c
KH
9112000-11-28 Kenichi Handa <handa@etl.go.jp>
912
913 * coding.c (Ffind_coding_systems_region_internal): Be sure to
914 include no-conversion.
915
ae31f84d
JR
9162000-11-27 Jason Rumney <jasonr@gnu.org>
917
918 * w32fns.c (w32_load_system_font): Always mark font as double byte
919 if codepage is unicode.
920
67f1cf4c
GM
9212000-11-27 Gerd Moellmann <gerd@gnu.org>
922
4a74d071
GM
923 * xdisp.c (forward_to_next_line_start): If already on a newline,
924 just consume it to avoid unintended skipping over invisible text
925 below.
926
902ae620
GM
927 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
928 `vertical-line', `mode-line' and `header-line' events.
929
930 * xdisp.c (try_window_id): Avoid starting to display in the middle
67f1cf4c
GM
931 of a character, a TAB for instance. This is easier than to set
932 up the iterator exactly, and it's not a frequent case, so the
933 additional effort wouldn't really pay off.
934
c1e279c2
AC
9352000-11-26 Andrew Choi <akochoi@i-cable.com>
936
67f1cf4c 937 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
c1e279c2
AC
938 init_window_once.
939
a609568a
JR
9402000-11-25 Jason Rumney <jasonr@gnu.org>
941
48b21762
JR
942 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]: Args
943 to window_from_coordinates should be pixel coordinates.
944
a609568a
JR
945 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
946 redisplay handles them properly.
947
a658d039
MB
9482000-11-25 Miles Bader <miles@gnu.org>
949
950 * indent.c (compute_motion): Keep pos_byte in sync with pos.
951
d3416cca
JR
9522000-11-24 Jason Rumney <jasonr@gnu.org>
953
954 * w32.c (init_environment): Set LANG environment variable based on
955 locale settings, if not set.
956
957 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
958 making tool bar smaller. When clearing the frame, also
959 clear current matrices. Clear frame when tool bar disappears.
960 Don't use more lines for the tool-bar than is available.
961 (x_change_window_heights): New function.
962
ba193890
GM
9632000-11-24 Gerd Moellmann <gerd@gnu.org>
964
2be8f184
GM
965 * xdisp.c (init_from_display_pos): If POS says we're already after
966 an overlay string ending at POS, make sure to pop the iterator
967 because it will be in front of that overlay string. When POS is
968 ZV, we've thereby also ``processed'' overlay strings at ZV.
969
ba193890
GM
970 * xfaces.c (lface_from_face_name): Function comment fix.
971
1862a24e
MB
9722000-11-24 Miles Bader <miles@gnu.org>
973
974 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
975 apply `mode-line-inverse-video' -- zero means force display using
976 the default face, non-zero means display using the specialized face.
977 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
978
f07fa1b8
KH
9792000-11-23 Kenichi Handa <handa@etl.go.jp>
980
981 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
982 hard coded `4'.
983
2bcdf662
EZ
9842000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
985
986 * coding.c (decode_coding_emacs_mule): Fix the case of
987 CODING_EOL_LF, which used uninitialized value of c.
988
ba8299ff
SM
9892000-11-23 Stefan Monnier <monnier@cs.yale.edu>
990
991 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
992
f4117c4d
GM
9932000-11-22 Gerd Moellmann <gerd@gnu.org>
994
03e757c1
GM
995 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
996 buffer object.
997
f4117c4d
GM
998 * frame.h (struct frame): Replace desired_tool_bar_items,
999 current_tool_bar_items, n_desired_tool_bar_items,
cc362d76 1000 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
f4117c4d
GM
1001
1002 * frame.c (make_frame): Change initialization of tool bar
1003 items accordingly.
1004
1005 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
cc362d76 1006 Change references to members deleted from struct frame to use the
f4117c4d
GM
1007 new ones.
1008
1009 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
cc362d76 1010 references to members deleted from struct frame to use the new
f4117c4d
GM
1011 ones.
1012
1013 * dispnew.c (update_frame): Do nothing with frame's tool bar
1014 items.
1015
1016 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
1017
1018 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
cc362d76 1019 (note_tool_bar_highlight): Change references to members deleted
f4117c4d
GM
1020 from struct frame to use the new ones.
1021
f8e2f3f2
MB
10222000-11-23 Miles Bader <miles@gnu.org>
1023
1024 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
1025 the face's inverse-video attribute, rather than overriding it.
1026
60e8e0a5
GM
10272000-11-22 Gerd Moellmann <gerd@gnu.org>
1028
1029 * xfns.c (x_set_tool_bar_lines): Clear internal border when
1030 making tool bar smaller.
1031
92dd1b29
DL
10322000-11-22 Dave Love <fx@gnu.org>
1033
1034 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
1035
e672fdce
MB
10362000-11-22 Miles Bader <miles@gnu.org>
1037
3a17d6cc
MB
1038 * keyboard.c (Vminibuffer_message_timeout): New variable.
1039 (command_loop_1): Use it to determine message timeout.
1040 (syms_of_keyboard): Initialize it.
1041
60e8e0a5 1042 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
e672fdce 1043
e9655d81
KH
10442000-11-22 Kenichi Handa <handa@etl.go.jp>
1045
1046 * sysdep.c: Move the code for declaring h_errno after #include
1047 <netdb.h>.
1048
77270fac
GM
10492000-11-21 Gerd Moellmann <gerd@gnu.org>
1050
cd913aae
GM
1051 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
1052 the menu bar when the tooltip is unmapped.
1053
77270fac
GM
1054 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
1055 sole visible buffer when we're currently in the mini-buffer, and
1056 give up if so.
1057
556635d6
JR
10582000-11-21 Jason Rumney <jasonr@gnu.org>
1059
1060 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
1061 put on the clipboard.
1062 (Fw32_get_clipboard_data): Compare data on clipboard with saved
1063 copy of what Emacs last put there. If they are the same, do not
1064 use the clipboard copy to avoid losing data due to coding
1065 conversions.
1066
5b7bde64
MB
10672000-11-22 Miles Bader <miles@gnu.org>
1068
1069 * minibuf.c (Vminibuffer_prompt_properties): New variable.
1070 (syms_of_minibuf): Initialize it.
1071 (read_minibuf): Add properties from Vminibuffer_prompt_properties
1072 to prompt, don't make read-only.
1073
ff23e1dd
GM
10742000-11-21 Gerd Moellmann <gerd@gnu.org>
1075
3c64f287
GM
1076 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>: Add
1077 BEFORE/AFTER_POTENTIAL_GC.
1078
7aaf4388
GM
1079 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
1080
f5f47add 1081 * buffer.c (mmap_free_1): Avoid a compiler warning.
1a15cca0 1082
ff23e1dd
GM
1083 * term.c, cm.c: Don't try to include termcap.h; see comment there.
1084
37c35586
KH
10852000-11-21 Kenichi Handa <handa@etl.go.jp>
1086
1087 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
1088 ... #endif scope.
1089
ff9ab414
GM
10902000-11-20 Gerd Moellmann <gerd@gnu.org>
1091
c51d2b5e
GM
1092 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
1093 screen supports it.
1094
29a01b72
GM
1095 * s/gnu-linux.h: Don't use `#cpu'.
1096
09dfdf85
GM
1097 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
1098 not defined in mman.h.
1099
ff9ab414
GM
1100 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New
1101 variables.
1102 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
1103 and store an index in the XClientMessageEvent. Storing a
1104 Lisp_Object or pointer can fail on a 64 bit system, since X only
1105 transfers 32 bits.
1106 (x_scroll_bar_to_input_event): Get the window from
1107 scroll_bar_windows.
1108
81459ac9
DL
11092000-11-20 Dave Love <fx@gnu.org>
1110
1111 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
1112
56c13ae6
GM
11132000-11-20 Gerd Moellmann <gerd@gnu.org>
1114
1115 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
1116
495a6df3
KH
11172000-11-20 Kenichi Handa <handa@etl.go.jp>
1118
2bcf3714
KH
1119 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
1120 by WIDTH.
1121
495a6df3
KH
1122 * alloc.c (make_string): Fix previous change. Be sure to make
1123 unibyte string correctly.
1124
6d950f4c
GM
11252000-11-19 Gerd Moellmann <gerd@gnu.org>
1126
39b39373
GM
1127 * window.c (Fwindow_list): Change parameter list to be XEmacs
1128 compatible.
1129 (window_list_1): New function.
1130 (window_loop): Use it instead of Fwindow_list.
1131
b95b34e5
GM
1132 * sysdep.c (emacs_ospeed): New variable.
1133 (toplevel): Don't declare ospeed extern.
1134 (init_baud_rate): Use emacs_ospeed instead of ospeed.
1135
1136 * termcap.c (ospeed): Remove.
1137 (tputs) [!emacs]: Remove unused code.
1138 (tgetent): Avoid a compiler warning.
1139
e83dc917
GM
1140 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
1141 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
b95b34e5 1142 SCROLL_BAR_X_WIDGET with additional argument DPY.
e83dc917
GM
1143
1144 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
1145 removed.
1146 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
1147 Take the X display as additional argument.
1148 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
1149 `Widget' is a pointer type that's not easily stored in Lisp_Object
1150 form in a portable way.
1151
6d950f4c
GM
1152 * dispnew.c (update_text_area): Fix last change.
1153
e47306e6
GM
11542000-11-18 Gerd Moellmann <gerd@gnu.org>
1155
fb3cd89b
GM
1156 * xdisp.c: Use BINDING_STACK_SIZE throughout.
1157
1158 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
1159 clear current matrices.
1160
edaa9aed
GM
1161 * buffer.c (mmap_enlarge): Don't print a message on stderr
1162 if mapping new memory at the end of the existing region fails.
1163
e47306e6
GM
1164 * dispnew.c (update_text_area): Don't skip over equal glyphs
1165 when the last current glyph overlaps the glyph to its right.
1166
509633e3
MB
11672000-11-18 Miles Bader <miles@gnu.org>
1168
1169 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
1170 lines that *end* with "..." too (that's the most common case!).
1171
d392e9c5
GM
11722000-11-18 Gerd Moellmann <gerd@gnu.org>
1173
67988445
GM
1174 * xdisp.c (resize_mini_window): Temporarily change to the
1175 mini-window's buffer if necessary.
1bfdbe43 1176
d392e9c5
GM
1177 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
1178 the tooltip obscures less text under it.
1179
11802000-11-17 Gerd Moellmann <gerd@gnu.org>
1181
1182 * puresize.h (BASE_PURESIZE): Increase to 700000.
1183
92bb977f
JR
11842000-11-18 Jason Rumney <jasonr@gnu.org>
1185
1186 * w32term.c (w32_draw_bitmap): Use face to set colors.
1187
26fbf20b
DL
11882000-11-17 Dave Love <fx@gnu.org>
1189
1190 * lread.c (Fload): Fix #ifdef for pcc.
1191
100b593b
GM
11922000-11-17 Gerd Moellmann <gerd@gnu.org>
1193
1194 * xdisp.c (pos_visible_p): Compute the default character height
1195 differently.
1196
a288d0d1
GM
11972000-11-16 Gerd Moellmann <gerd@gnu.org>
1198
cac94de6
GM
1199 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
1200 knowing the line's height; use the default font's height in that
1201 case.
1202
a288d0d1
GM
1203 * xfaces.c (weight_table): Add `demi' with the same meaning as
1204 `demibold'.
1205
981fb6f6
KH
12062000-11-16 Kenichi Handa <handa@etl.go.jp>
1207
2cca872d 1208 * dispnew.c (null_row): New global static variable.
981fb6f6
KH
1209 (clear_glyph_row): Delete local static variable null_row.
1210
e5fa381b
JR
12112000-11-15 Jason Rumney <jasonr@gnu.org>
1212
1213 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
1214 (w32_alloc_lighter_color): Use new brightness calculations from
1215 xterm.c. Scale delta to be in the range expected by W32.
1216 (w32_draw_relief_rect): Use frame relief colors.
1217
8e42f043
GM
12182000-11-15 Gerd Moellmann <gerd@gnu.org>
1219
6d133d1f
GM
1220 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
1221 (Qinhibit_default_face_x_resources): New variable.
1222 (syms_of_frame): Initialize it.
1223 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
1224
1225 * xdisp.c (pos_visible_p): Improve function comment.
1226
1227 * lisp.h (BINDING_STACK_SIZE): New macro.
1228
8e42f043
GM
1229 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
1230 reading the directory if readdir returns null and errno is EAGAIN
1231 or EINTR.
1232
e8c87124
SM
12332000-11-14 Stefan Monnier <monnier@cs.yale.edu>
1234
1235 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
1236 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
1237 Set amount_to_scroll to max of dx and scroll_step so that
1238 scroll-conservatively doesn't defeat scroll-step>1.
1239 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
1240 scroll-conservatively for line-at-a-time scrolling.
1241
5f0c971d
GM
12422000-11-14 Gerd Moellmann <gerd@gnu.org>
1243
1244 * window.c (Fpos_visible_in_window_p): Call pos_visible with
1245 extra argument.
1246
1247 * xdisp.c (current_mode_line_height, current_header_line_height):
1248 New variables.
1249 (init_xdisp): Initialize them.
1250 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
1251 and use exact mode line heights if it is set.
1252
1253 * lisp.h (pos_visible_p): Change prototype.
1254
1255 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
1256 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
1257 and current_header_line_height first.
1258 (current_mode_line_height, current_header_line_height): Declare
1259 extern.
1260
d7361edf
MB
12612000-11-14 Miles Bader <miles@lsi.nec.co.jp>
1262
1263 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
1264 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
1265 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
1266
ee5e440a
MB
12672000-11-14 Miles Bader <miles@gnu.org>
1268
1269 * xterm.c (x_alloc_lighter_color): Include an additive component
1270 too for dark colors, because FACTOR isn't enough.
1271 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
1272 New macros.
1273
5ca020fc
GM
12742000-11-13 Gerd Moellmann <gerd@gnu.org>
1275
1276 * keyboard.c (show_help_echo): Call message3_nolog with number of
1277 bytes in the help string as 2nd parameter, instead of the number
1278 of characters.
1279
9d348294
MB
12802000-11-13 Miles Bader <miles@gnu.org>
1281
1282 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
1283 (Fload): Use new openp return protocol.
1284 Don't try to use Vload_source_file_function to load .elc files.
1285 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
1286 openp return protocol.
1287 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
1288
1729bb9a
KH
12892000-11-11 Kenichi Handa <handa@etl.go.jp>
1290
4e677396
KH
1291 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
1292
1293 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
1294 Defined these macros.
1295 (NLIST_STRUCT): Avoid re-defining it.
1296
1729bb9a
KH
1297 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
1298 -I/usr/contrib/X11R6/include.
1299 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
1300
a82fe213
JR
13012000-11-10 Jason Rumney <jasonr@gnu.org>
1302
1303 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
1304
1305 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
1306 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
1307
1308 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
1309 (Qw32_charset_vietnamese): New symbol.
1310 (xlfd_charset_of_font): New function.
1311 (w32_load_system_font): Use it.
1312 (x_to_w32_charset): Use Fassoc to find charset info. Special case
1313 when Vw32_charset_info_alist is nil to ensure default face always
1314 has font. Use Fcar and Fcdr for safety.
1315 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
1316 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
1317 pseudo-codepages for special cases.
1318 (w32_to_x_font): New parameter to allow charset portion to be
1319 specified where there is many to one mapping. Callers changed.
1320 (w32_list_fonts): Avoid listing fonts that won't display.
1321
52d89894
GM
13222000-11-10 Gerd Moellmann <gerd@gnu.org>
1323
1324 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
1325 (font_list_1): Renamed from font_list.
1326 (font_list): New function, trying alternative registries from
1327 Vface_alternative_font_registry_alist.
1328 (Finternal_set_alternative_font_registry_alist): New function.
1329 (syms_of_xfaces): Initialize and Staticpro
1330 Vface_alternative_font_registry_alist. Defsubr
1331 Finternal_set_alternative_font_registry_alist.
1332
651cd3da
KR
13332000-11-09 Ken Raeburn <raeburn@gnu.org>
1334
1335 * lisp.h (Flooking_at): Declare.
1336
388ac098
GM
13372000-11-09 Gerd Moellmann <gerd@gnu.org>
1338
778fbc46
GM
1339 * dired.c (directory_files_internal): Fix a braino.
1340
388ac098
GM
1341 * dired.c (directory_files_internal): Add missing GCPRO's.
1342 Some cleanup.
1343
ecaedde1
GM
13442000-11-08 Gerd Moellmann <gerd@gnu.org>
1345
f7eb32aa
GM
1346 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
1347 (resize_mini_window): Return quickly if Vresize_mini_window is
1348 nil. Don't return if Vmax_mini_window_height is nil.
1349
1350 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
1351 (syms_of_xdisp): Initialize them.
1352 (resize_mini_window): Act according to the setting of
1353 Vresize_mini_window.
1354 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
1355
ecaedde1
GM
1356 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
1357 scroll bar widget after configuring it, so that it will appear at
1358 the right position from the start.
1359 (XTredeem_scroll_bar): Cleaned up.
1360
3747ef2c
KH
13612000-11-08 Kenichi Handa <handa@etl.go.jp>
1362
1363 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
5d16e624 1364 font is taller than the frame line, we don't have to bias the
3747ef2c
KH
1365 division by two.
1366
1367 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
1368
03391420
DL
13692000-11-07 Dave Love <fx@gnu.org>
1370
7758f1c1 1371 * config.in (HAVE_MKSTEMP): Add.
03391420
DL
1372
1373 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
1374
b5de343d
GM
13752000-11-07 Gerd Moellmann <gerd@gnu.org>
1376
acad3c0b
GM
1377 * window.c (Fset_window_configuration): Don't try to preserve
1378 point in the current buffer, if that buffer is displayed in more
1379 than one window.
1380
b5de343d
GM
1381 * xfaces.c (lookup_named_face): If default face isn't realized,
1382 try to realize it. Return -1 if not successful.
1383 (Fx_list_fonts): Handle case that face cannot be determined.
1384 (Fface_font): Likewise.
1385
cdb1fe49
GM
13862000-11-06 Gerd Moellmann <gerd@gnu.org>
1387
1388 * window.c (displayed_window_lines): Detect partially
1389 visible lines at the bottom correctly.
1390
d3a67486
SM
13912000-11-06 Stefan Monnier <monnier@cs.yale.edu>
1392
1393 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
1394 when ensuring we don't do visit in indirect buffer.
1395
ff8dd5d5
KH
13962000-11-06 Kenichi Handa <handa@etl.go.jp>
1397
1398 * composite.h (compose_chars_in_text): Add prototype.
1399
1400 * composite.c (Vcomposition_function_table): New variable.
1401 (Qcomposition_function_table): New variable.
1402 (run_composition_function): Call
1403 Vcompose_chars_after_function with three arguments.
1404 (compose_chars_in_text): New function.
1405 (syms_of_composite): Modified the doc-string of
1406 Vcompose_chars_after_function. Declare composition-function-table
1407 as a lisp variable, and initialize it.
1408
1409 * xfns.c (x_encode_text): Suppress producing escape sequences for
1410 composition.
1411
1412 * xselect.c: Include composite.h.
1413 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
1414
d1145f85
AI
14152000-11-05 Andrew Innes <andrewi@gnu.org>
1416
1417 * w32term.c (x_produce_glyphs): Fix typo in enum name.
1418
1419 * sysdep.c (read_input_waiting): Remove extraneous argument to
1420 read_socket_hook.
1421
1422 * w32fns.c (Fx_server_version): Include w32_build_number in the
1423 return list.
1424
1425 * w32heap.c (w32_build_number): New variable.
1426 (cache_system_info): Set it.
1427
1428 * w32heap.h (w32_build_number): Add extern.
1429
1430 * emacs.c (syms_of_emacs): Update docstring for
1431 system-configuration, to reflect the actual usage on MS-Windows.
1432
e85ee976
GM
14332000-10-31 Gerd Moellmann <gerd@gnu.org>
1434
26dcb81b
GM
1435 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
1436 process idle timers while waiting for another event.
1437
0a894bad
GM
1438 * dispnew.c (update_frame_line): Handle case where spaces in
1439 the default face are colored.
1440
e85ee976
GM
1441 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
1442 window height hasn't changed.
1443
01b220b6
JR
14442000-10-31 Jason Rumney <jasonr@gnu.org>
1445
1446 * w32term.c (x_produce_glyphs): Handle composite characters.
1447 (x_draw_glyph_string_foreground)
1448 (x_draw_composite_glyph_string_foreground): Restore old font.
1449
4e6b7204
MB
14502000-10-31 Miles Bader <miles@lsi.nec.co.jp>
1451
1452 * minibuf.c (read_minibuf): Reset the undo history just before
1453 starting the recursive-edit.
1454
d4358b37
GM
14552000-10-30 Gerd Moellmann <gerd@gnu.org>
1456
563f68f1
GM
1457 * xfaces.c (menu_face_change_count): New variable.
1458 (Finternal_set_lisp_face_attribute): Increment it for changes
1459 of the `menu' face.
1460 (realize_basic_faces): Reflect changes in the `menu' faces
1461 in menu bars.
1462
82e274d1
GM
1463 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
1464 dy obtained from the iterator's y-position after moving from
1465 scroll_margin_pos to PT; see comment there.
1466
0dbf9fd2
GM
1467 * xdisp.c (safe_eval_handler): Call add_to_log.
1468
906b3b14
GM
1469 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
1470 is not a symbol or string.
1471
d4358b37
GM
1472 * xdisp.c (echo_area_display): Don't perform a display update from
1473 inside redisplay. The update will happen anyway at the end of
1474 redisplay, and it can confuse redisplay (GC messages while
1475 redisplaying, for instance.)
1476
70c825df
SM
14772000-10-30 Stefan Monnier <monnier@cs.yale.edu>
1478
cf9b4b0b
SM
1479 * xrdb.c (x_load_resources): Use the class name in the defaults.
1480
70c825df
SM
1481 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
1482 (regex_compile): Catch bogus \(\1\).
1483
a1d34b1e
GM
14842000-10-30 Gerd Moellmann <gerd@gnu.org>
1485
cae71efe
GM
1486 * xterm.c (x_alloc_nearest_color): Fix last change to compare
1487 RGB values.
1488
35efe0a1
GM
1489 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
1490 we have a color cache, check that the cached color equals the
1491 allocated color. If not, clear the color cache.
1492
1d3baf74
GM
1493 * window.c (displayed_window_lines): Change buffers if necessary.
1494 Fix computation of displayed lines.
1495
a1d34b1e
GM
1496 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
1497 update_menu_bindings to DEFVAR_BOOL.
1498
70737ea9
KH
14992000-10-30 Kenichi Handa <handa@etl.go.jp>
1500
70c825df 1501 * search.c (Fset_match_data): Be sure to make search_regs always sane.
80406070 1502
fa0cb51d
KH
1503 * puresize.h (BASE_PURESIZE): Increase to 680000.
1504
70737ea9
KH
1505 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
1506
0e4c08e8
JR
15072000-10-29 Jason Rumney <jasonr@gnu.org>
1508
1509 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
1510
1511 * w32term.c (w32_bdf_per_char_metric): Negate descent.
1512 (w32_cache_char_metrics): Handle possibility that 'x' does not
1513 exist in a BDF font.
1514 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
1515
1516 * w32bdf.h (bdffont): Add nchars.
1517
1518 * w32bdf.c (set_bdf_font_info): Set it.
1519 (w32_BDF_TextOut): Swap byte order of double byte characters.
1520 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
1521
45b84006
EZ
15222000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
1523
1524 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
1525 don't override the colors in frame's param_alist, unless they are
1526 unspecified.
1527
1528 * term.c (reassert_line_highlight): If inverse_video is non-zero,
1529 reverse the effect of the highlight flag.
1530
caf9deee
KR
15312000-10-27 Ken Raeburn <raeburn@gnu.org>
1532
1533 * window.h (Fwindow_live_p): Declare.
1534
ae0b9b46
KR
1535 * undo.c (record_delete): Check that last_undo_buffer is really a
1536 buffer before applying XBUFFER to it.
1537
1538 * keymap.c (where_is_internal): Pass lisp object, not integer, to
1539 Faref.
1540
02067692
SM
15412000-10-27 Stefan Monnier <monnier@cs.yale.edu>
1542
1543 * lisp.h (KEYMAPP): New macro.
1544 (get_keymap): Remove.
1545 (get_keymap_1): Rename get_keymap.
1546
1547 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
1548
1549 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
1550
1551 * xmenu.c (single_submenu): Use KEYMAPP.
1552 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
1553 Use KEYMAPP rather than Fkeymapp.
1554
1555 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
1556
1557 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
1558 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
1559 Use KEYMAPP rather than Fkeymapp.
1560 (single_submenu): Use KEYMAPP.
1561 (w32_menu_show, w32_dialog_show): Use TRUE.
1562
1563 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
1564
1565 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
1566 (Fkeymapp): Use KEYMAPP.
1567 (get_keymap): Rename from get_keymap_1. Remove old def.
1568 Return t when autoload=0 and error=0 and the keymap needs autoloading.
1569 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
1570 (Fminor_mode_key_binding): Don't raise an error if the binding
1571 is not a keymap.
1572 (Fuse_global_map, Fuse_local_map): Allow autoloading.
1573 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
1574
1575 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
1576 Allow Vspecial_event_map to be autoloaded.
1577 (menu_bar_items): Fetch the keymap rather than using keymapp.
1578 (menu_bar_one_keymap): No need to follow func-indirect any more.
1579 (parse_menu_item): get_keymap_1 -> get_keymap.
1580 (tool_bar_items): Fetch the keymap rather than using keymapp.
1581 (read_key_sequence): Use KEYMAPP.
1582
1583 * intervals.c (get_local_map): Use get_keymap rather than following
1584 function-indirections explicitly.
1585
1586 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
1587
f9d80af3
JR
15882000-10-27 Jason Rumney <jasonr@gnu.org>
1589
1590 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
1591 point, as Windows has oversized fonts.
1592
1593 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
1594
a3ba27da
GM
15952000-10-27 Gerd Moellmann <gerd@gnu.org>
1596
1597 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
1598 (freehook, reallochook): Handle null pointer arguments.
1599 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
1600
aa3b80cc
SM
16012000-10-27 Stefan Monnier <monnier@cs.yale.edu>
1602
1603 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
1604 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
1605 Giving in to popular pressure to shut up the compiler with casts.
1606
e24e84cc
GM
16072000-10-27 Gerd Moellmann <gerd@gnu.org>
1608
1609 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
1610 signed value, and use a default value computed from the font's
1611 maximum descent.
1612
05ea7ef2
MB
16132000-10-27 Miles Bader <miles@lsi.nec.co.jp>
1614
1615 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
1616 that specify a negative underline position can still use underlines.
1617
1618 * window.c (Fpos_visible_in_window_p): Make POS default to
1619 WINDOW's point, not the current buffer's point.
1620
0b95284b
DL
16212000-10-26 Dave Love <fx@gnu.org>
1622
1623 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
1624 when it's necessary.
1625
6c5b90af
GM
16262000-10-26 Gerd Moellmann <gerd@gnu.org>
1627
8b6d9dc9
GM
1628 * window.c (size_window): Compute size difference from sum of old
1629 child window sizes instead of from parent's size.
1630
6bc92b2e
GM
1631 * xdisp.c (pos_visible_p): Change current buffer if necessary.
1632 Handle obscured lines at the top of the window.
1633
1634 * frame.c (Fdelete_frame): Doc fix. Move running the hook
1635 down after the last error condition check.
1636
6c5b90af
GM
1637 * frame.c (Fdelete_frame): Run delete-frame-hook.
1638
42f92d4d
KH
16392000-10-26 Kenichi Handa <handa@etl.go.jp>
1640
1641 * coding.c (decode_coding): Fix previous change (check also
1642 CODING_MODE_LAST_BLOCK).
1643
d97151cb
SM
16442000-10-25 Stefan Monnier <monnier@cs.yale.edu>
1645
e7efc503
SM
1646 * regex.c: More `unsigned char' -> `re_char' changes.
1647 Also change several `int' into `re_wchar_t'.
1648 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
1649 (PUSH_FAILURE_POINTER): Don't cast any more.
1650 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
1651 We want GCC to complain, since this piece of code makes
1652 re_match non-reentrant, which *should* be fixed.
1653 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
1654 (EXTEND_BUFFER): Use RETALLOC.
1655 (SET_LIST_BIT): Don't cast.
1656 (re_wchar_t): New type.
1657 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
1658 that those two functions will always properly return.
1659 (IMMEDIATE_QUIT_CHECK): Cast to void.
1660 (analyse_first): Use recursion rather than an explicit stack.
1661 (re_compile_fastmap): Can't fail anymore.
1662 (re_search_2): Don't check re_compile_fastmap for failure.
1663 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
1664 Now also sets the new value (passed in a new argument).
1665 (re_match_2_internal): Use it.
1666 Also, use a new var `reg' of type size_t when looping through regs
1667 rather than reuse the inappropriate `mcnt'.
1668
d97151cb
SM
1669 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
1670 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
1671 (where_is_internal): Renamed from Fwhere_is_internal.
1672 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
1673 (Fwhere_is_internal): New function wrapping where_is_internal.
1674 (where_is_internal_1): Handle the case where we're filling the cache.
1675 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
1676
d5789b65
MB
16772000-10-25 Miles Bader <miles@gnu.org>
1678
1679 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
1680
4ecda532
GM
16812000-10-25 Gerd Moellmann <gerd@gnu.org>
1682
1683 * window.c (pos_fully_visible_p): Removed.
1684 (Fpos_visible_in_window_p): Use pos_visible_p to determine
1685 if position is visible and/or fully visible.
1686
1687 * lisp.h (pos_visible_p): Add prototype.
1688
1689 * xdisp.c (pos_visible_p): New function.
1690
68c3a137
KH
16912000-10-25 Kenichi Handa <handa@etl.go.jp>
1692
1693 * process.c (send_process): If OBJECT is t, it means that the data
1694 is from C string, but we should encode it. Before calling
1695 setup_raw_text_coding_system, be sure to flush out data by the
1696 previous coding system.
1697
7ae1c032
MB
16982000-10-25 Miles Bader <miles@lsi.nec.co.jp>
1699
ff4dcd4b
MB
1700 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
1701 assignment of startpos to prev when startpos == pos.
1702
7ae1c032
MB
1703 * editfns.c (find_field): Set the field stickiness correctly from
1704 overlay fields. Use renamed `text_property_stickiness'.
1705 (text_property_stickiness): Renamed from `char_property_stickiness'.
ebe2a441 1706 Only check text properties, not overlays.
7ae1c032
MB
1707 * textprop.c (get_char_property_and_overlay): New function.
1708 (Fget_char_property): Use it.
1709 * intervals.h (get_char_property_and_overlay): Add declaration.
1710
49801145
SM
17112000-10-25 Stefan Monnier <monnier@cs.yale.edu>
1712
1713 * keymap.c: Use AREF, ASET and ASIZE macros.
1714 (Fmake_sparse_keymap): Docstring fix.
1715 (synkey): Remove.
1716 (shadow_lookup): Move up.
1717 Handle the case where lookup-key returns an integer.
1718 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
1719 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
1720 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
1721 Simplify/rewrite the keymap-finding code.
1722 Add check for command shadowing, using shadow_lookup.
1723
39e776cd
SM
17242000-10-24 Stefan Monnier <monnier@cs.yale.edu>
1725
1726 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
1727 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
1728 a symbol.
1729
2488aba5
AI
17302000-10-24 Andrew Innes <andrewi@gnu.org>
1731
1732 * dired.c (directory_files_internal_unwind): New function.
1733 (directory_files_internal): Use it to ensure closedir is called
1734 even if expand-file-name or file-attributes throw, eg. because of
1735 a user interrupt. Also enable immediate_quit while calling
1736 re_search, so that matching can be interrupted as well.
1737
b94fdf61
AI
17382000-10-24 Andrew Innes <andrewi@gnu.org>
1739
1740 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
1741 NT-Emacs only.
1742 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
1743 so that re_search functions only quit when callers expect them to.
1744
17452000-10-24 Kenichi Handa <handa@etl.go.jp>
1746
1747 * regex.c (regex_compile): Change the way of handling a range from
1748 a char less than 256 to a char not less than 256.
1749
1946f901
GM
17502000-10-24 Gerd Moellmann <gerd@gnu.org>
1751
7ae2f10f
GM
1752 * window.c (size_window): Prevent setting window's width or
1753 height to a negative value (esp. with XSETFASTINT).
1754
5dcab13e
GM
1755 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
1756 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
1757 (protect_malloc_state) [GC_MALLOC_CHECK &&
1758 GC_PROTECT_MALLOC_STATE]: New function.
1759 (PROTECT_MALLOC_STATE): New macro.
1760 (__malloc_initialize, morecore, _malloc_internal)
1761 (_free_internal) _realloc_internal): Use it to make _heapinfo
1762 read-only outside of gmalloc.
1763
63e1b552
GM
1764 * keymap.c: Update copyright.
1765
1946f901
GM
1766 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
1767 a symbol.
1768
4fa09beb
GM
17692000-10-24 Colin Walters <walters@cis.ohio-state.edu>
1770
1771 * filelock.c (unlock_all_files): Use unlock_file to expand each
1772 buffer's file_truename before trying remove its lock file.
1773
23afac01
EZ
17742000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
1775
1776 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
1777 or CRLF, decode EOLs.
1778
04448b95
KH
17792000-10-24 Kenichi Handa <handa@etl.go.jp>
1780
1781 * window.c (Fdisplay_buffer): Fix doc.
1782
3090a5a5
JR
17832000-10-23 Jason Rumney <jasonr@gnu.org>
1784
1785 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
1786 ASCII font of default fontset on Windows.
1787
1788 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
1789 xterm.c comment below).
1790
1791 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
1792
a83fee2c
GM
17932000-10-23 Gerd Moellmann <gerd@gnu.org>
1794
1795 * xterm.c (x_connection_closed): Reset handling_signal.
1796
1797 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing
1798 null.
1799
6ffdb539
MB
18002000-10-23 Miles Bader <miles@gnu.org>
1801
1802 * window.c (window_scroll_pixel_based, window_scroll_line_based):
1803 Pass nil for FULLY argument to Fpos_visible_in_window_p to
1804 maintain old behavior.
1805 * minibuf.c (Fminibuffer_complete): Likewise.
1806
7f1c969b
MB
18072000-10-23 Miles Bader <miles@lsi.nec.co.jp>
1808
1809 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
1810 that when a font can't be exactly centered, it errs up rather than
1811 down.
1812
23afac01 18132000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
8ec118cd
SZ
1814
1815 * fns.c (Fbase64_decode_string): The decoded result should be
1816 unibyte.
1817
1a578e9b
AC
18182000-10-23 Andrew Choi <akochoi@i-cable.com>
1819
1820 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
1821
1822 * dispnew.c [macintosh]: Include macterm.h.
a83fee2c 1823 (init_display) [macintosh]: Initialization for window system.
1a578e9b
AC
1824
1825 * emacs.c (main) [macintosh]: Call syms_of_textprop,
1826 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
1827 syms_of_search, x_term_init, and init_keyboard before calling
1828 init_window_once. Also, call syms_of_xmenu.
1829
1830 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
1831 default fontset to Monaco.
1832
1833 * frame.c [macintosh]: Include macterm.h. Remove declarations of
1834 NewMacWindow and DisposeMacWindow.
1835 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
1836 instead of calling NewMacWindow and setting fields of
1837 f->output_data.mac directly. Call init_frame_faces.
1838 (Fdelete_frame) [macintosh]: Remove unused code.
1839 (Fmodify_frame_parameters) [macintosh]: Call
1840 x_set_frame_parameters instead of mac_set_frame_parameters.
1841
1842 * frame.h [macintosh]: Define menu_bar_lines field in struct
1843 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
1844
1845 * keyboard.c [macintosh]: Include macterm.h.
1846 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
1847 and menu_bar_activate_event type events as for X and NT.
1848 (make_lispy_event) [macintosh]: Construct lisp events of type
1849 MENU_BAR_EVENT as for X and NT.
1850
1851 * sysdep.c [macintosh]: Remove declaration for sys_signal.
1852 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
1853 (sys_subshell) [macintosh]: Remove definition entirely.
1854 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
1855 Vwindow_system_version here. Remove initialization of
1856 Vx_bitmap_file_path.
1857 (read_input_waiting): Correct the number of parameters passed to
1858 read_socket_hook.
1859 Move all Macintosh functions to mac/mac.c.
1860
1861 * term.c [macintosh]: Include macterm.h.
1862
1863 * window.c [macintosh]: Include macterm.h.
1864
1865 * xdisp.c [macintosh]: Include macterm.h. Declare
1866 set_frame_menubar and pending_menu_activation.
1867 (echo_area_display) [macintosh]: Do not return if terminal frame
1868 is the selected frame.
1869 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
1870 Allow only the selected frame to set menu bar.
1871 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
1872 calling FRAME_EXTERNAL_MENU_BAR (f).
1873 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
1874
1875 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
1876 and check_x. Declare XCreateGC. Define x_create_gc and
1877 x_free_gc. Initialize font_sort_order.
1878 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
1879 but call x_list_fonts instead of w32_list_fonts.
1880 (Finternal_face_x_get_resource) [macintosh]: Do not call
1881 display_x_get_resource.
1882 (prepare_face_for_display) [macintosh]: Set xgcv.font.
1883 (realize_x_face) [macintosh]: Load the font if it is specified in
1884 ATTRS.
1885 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed
1886 to Qt.
1887
1ffbabe3
SM
18882000-10-22 Stefan Monnier <monnier@cs.yale.edu>
1889
1890 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
1891 is nil: since we go to the end of submap anyway, we'd end up
1892 setting nil to nil.
1893 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
1894 doesn't obey autoload.
1895
bed43f1d
EZ
18962000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
1897
1ffbabe3 1898 * msdos.c (dos_set_window_size): Update screen dimension variables.
bed43f1d 1899
ea4233a7
JR
19002000-10-21 Jason Rumney <jasonr@gnu.org>
1901
1902 * w32term.c (w32_cache_char_metrics): Double check that font is
1903 really fixed pitch before trusting tmPitchAndFamily.
1904
f3d3c491
AI
19052000-10-21 Andrew Innes <andrewi@gnu.org>
1906
1907 * w32gui.h (w32_char_font_type): Move enum from w32term.c
1908
1909 * w32term.h: Extern decl for w32_cache_char_metrics.
1910
1911 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
1912
1913 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
1914 (w32_unload_font): Free per_char array if present.
1915
1916 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
1917 cached information in emulated XFontStruct to handle common cases
1918 quickly. Do not allocate XCharStruct for return.
1919 (w32_native_per_char_metric): New function.
1920 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
1921 allocating one.
1922 (x_produce_glyphs): Don't get an HDC. Change calls to
1923 w32_per_char_metric to match arg change above. Remove calls to
1924 free results.
1925 (w32_get_glyph_overhangs): Ditto.
1926 (w32_cache_char_metrics): New function.
1927
1928 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
1929 ($(BLD)/casefiddle.$(O)): Remove compile command.
1930 ($(BLD)/gmalloc.$(O)): Remove compile command.
1931 ($(BLD)/dispnew.obj):
1932 ($(BLD)/keyboard.obj):
1933 ($(BLD)/w32inevt.obj):
1934 ($(BLD)/w32bdf.obj):
1935 ($(BLD)/alloc.obj):
1936 ($(BLD)/buffer.obj):
1937 ($(BLD)/editfns.obj):
1938 ($(BLD)/emacs.obj):
1939 ($(BLD)/fileio.obj):
1940 ($(BLD)/fns.obj):
1941 ($(BLD)/indent.obj):
1942 ($(BLD)/insdel.obj):
1943 ($(BLD)/intervals.obj):
1944 ($(BLD)/minibuf.obj):
1945 ($(BLD)/print.obj):
1946 ($(BLD)/scroll.obj):
1947 ($(BLD)/sysdep.obj):
1948 ($(BLD)/textprop.obj):
1949 ($(BLD)/widget.obj):
1950 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
1951 ($(BLD)/term.obj): Add dependency on dispextern.h.
1952
1953 * makefile.nt ($(BLD)\dispnew.obj):
1954 ($(BLD)\keyboard.obj):
1955 ($(BLD)\w32inevt.obj):
1956 ($(BLD)\w32bdf.obj):
1957 ($(BLD)\alloc.obj):
1958 ($(BLD)\buffer.obj):
1959 ($(BLD)\editfns.obj):
1960 ($(BLD)\emacs.obj):
1961 ($(BLD)\fileio.obj):
1962 ($(BLD)\fns.obj):
1963 ($(BLD)\indent.obj):
1964 ($(BLD)\insdel.obj):
1965 ($(BLD)\intervals.obj):
1966 ($(BLD)\minibuf.obj):
1967 ($(BLD)\print.obj):
1968 ($(BLD)\scroll.obj):
1969 ($(BLD)\sysdep.obj):
1970 ($(BLD)\textprop.obj):
1971 ($(BLD)\widget.obj):
1972 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
1973 ($(BLD)\term.obj): Add dependency on dispextern.h
1974
18ad4821
EZ
19752000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
1976
1977 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
1978 with an additional argument of Qt.
1979
de54681a
MB
19802000-10-21 Miles Bader <miles@gnu.org>
1981
1982 * window.c (pos_fully_visible_in_window_p): New function.
1983 (Fpos_visible_in_window_p): Add FULLY argument.
1984 Use pos_fully_visible_in_window_p.
1985 (window_scroll_pixel_based, window_scroll_line_based): Update
1986 calls to Fpos_visible_in_window_p.
1987 * lisp.h (Fpos_visible_in_window_p): Update prototype
1988
13c844fb
GM
19892000-10-20 Gerd Moellmann <gerd@gnu.org>
1990
1991 * alloc.c (toplevel): Conditionalize compilation of mem_*
1992 functions differently.
1993
d9506268
JR
19942000-10-20 Jason Rumney <jasonr@gnu.org>
1995
1996 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
1997 mem_init where it used to be. mem_z etc not defined otherwise.
1998
8094989b
GM
19992000-10-20 Gerd Moellmann <gerd@gnu.org>
2000
2001 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
2002 GC_MALLOC_CHECK.
2003 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
2004 structure definition and related variabled to the top of the file.
2005 Include this code when GC_MALLOC_CHECK is defined.
2006 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
2007 register/unregister allocated region.
2008 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
2009 which isn't allocated.
2010 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
2011 something which is already in use.
2012 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
2013 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
2014 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
2015 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
2016
2017 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
2018 _malloc_internal instead of malloc.
2019 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
2020 of free.
2021
ea456eb4
AI
20222000-10-20 Andrew Innes <andrewi@gnu.org>
2023
2024 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
2025 Windows.
2026 (my_strftime) <macro>: Don't use macro arg list when redefining as
2027 _strftime_copytm.
2028 (my_strftime) <function>: Supply 0 as ut argument.
2029
e64c3a75
JR
20302000-10-19 Jason Rumney <jasonr@altavista.net>
2031
2032 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
2033 including dispextern.h, as it stops faces from working.
2034
2035 * w32fns.c (Fx_create_frame): Don't bother calling
2036 face-set-after-frame-default since the caller does it for us
2037 anyway. Clean up calls to x_get_arg to be consistent with X.
2038
2039 * w32term.c (x_produce_glyphs): Handle
2040 unibyte_display_via_language_environment correctly.
2041 (w32_draw_box_rect): Fix the calculation of width and height.
2042
2043 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
2044 as it has stopped working.
2045 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
2046 menu-bar.
2047
17401c97
GM
20482000-10-19 Gerd Moellmann <gerd@gnu.org>
2049
2050 * eval.c (skip_debugger): Prevent a compiler warning.
2051 (Fcondition_case): Likewise.
2052 (Fbacktrace_frame): Use a null interactive spec.
2053
773272d8
KH
20542000-10-19 Kenichi Handa <handa@etl.go.jp>
2055
2056 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
2057
a42943e9
GM
20582000-10-18 Gerd Moellmann <gerd@gnu.org>
2059
e50517d9
GM
2060 * strftime.c: Sync with glibc, file version 1.78.
2061 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
2062 should no longer be used according to ISO 8601.
2063
9035a35a
GM
2064 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
2065 no map for meta_prefix_char, don't try to use it as a keymap.
2066 Instead, if T_OK is non-zero, look up a default binding, if any,
2067 otherwise, if T_OK is zero, return nil.
2068
a42943e9
GM
2069 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
2070 (x_to_xcolors, png_load): Use x_query_color.
2071
2072 * xterm.c (x_color_cells, x_query_colors, x_query_color): New
2073 functions.
2074 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
2075 which can be slow.
2076 (x_copy_color, x_alloc_lighter_color): Likewise.
2077
2078 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
2079 (x_query_color, x_query_colors): Add prototype.
2080
2081 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
2082 check_string_bytes only if not noninteractive, increase count to 50.
2083
00de2987
MB
20842000-10-18 Miles Bader <miles@lsi.nec.co.jp>
2085
2086 * insdel.c (adjust_markers_for_delete): Handle before-insertion
2087 markers correctly.
2088
54918e2b
GM
20892000-10-17 Gerd Moellmann <gerd@gnu.org>
2090
1f0b3fd2
GM
2091 * alloc.c (pure_bytes_used): Renamed from pureptr.
2092 (ALIGN): New macro.
2093 (pure_alloc): New function.
2094 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
2095 Use it.
2096 (Fpurecopy): Use PURE_POINTER_P.
2097
68c5d1db
GM
2098 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
2099 PT has moved backward.
2100
9a038881
GM
2101 * xdisp.c (cursor_row_p): Take continued lines into account.
2102
361b097f
GM
2103 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
2104 string's size_byte.
2105 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
2106 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
2107 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
2108 string allocated.
2109
54918e2b
GM
2110 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
2111 of selective display off while searching for the next line start.
2112
03ed0806
KH
21132000-10-17 Kenichi Handa <handa@etl.go.jp>
2114
2115 * Makefile.in (term.o): Depend on dispextern.h.
2116
7e05cdaf
SM
21172000-10-16 Stefan Monnier <monnier@cs.yale.edu>
2118
2119 * keymap.c (keymap_memberp): Ensure that nil is not a member.
2120
a6801fd1
GM
21212000-10-16 Gerd Moellmann <gerd@gnu.org>
2122
483de32b
GM
2123 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
2124 the iterator at the beginning, so that they can be set later on,
2125 for instance in reseat_at_next_visible_line_start, without being
2126 overwritten.
2127
a6801fd1
GM
2128 * xfns.c (pbm_format): Add :foreground and :background keywords.
2129 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
483de32b 2130 (xbm_load): Recognize foreground and background color
a6801fd1
GM
2131 specifications.
2132
dbf1fcc1
EZ
21332000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
2134
2135 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
2136
2137 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern
2138 declaration.
2139
2140 * msdos.c (IT_set_face): Compare highlighted face with the default
2141 face, and invert colors if these faces' colors are identical.
2142 (Fmsdos_remember_default_colors): Don't swap foreground and
2143 background colors in initial_colors[].
2144 (IT_set_frame_parameters): Don't swap frame's foreground and
2145 background pixels. If ALIST includes "(reverse . t)", swap
2146 foreground-color and background-color properties in frame's
2147 param_alist. If the original frame's param_alist doesn't specify
2148 the colors, store unspecified-fg and unspecified-bg, reversed if
2149 required.
2150
2151 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
2152 the colors are unspecified and reversed, reverse fore- and back-
2153 ground in the returned value.
2154 (Fframe_parameter): Ditto.
2155
b41fe2c3
GM
21562000-10-16 Gerd Moellmann <gerd@gnu.org>
2157
3a6b59d9
GM
2158 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
2159 get_last_unchanged_at_beg_row.
2160 (find_first_unchanged_at_end_row): Renamed from
2161 get_first_unchanged_at_end_row.
2162 (find_first_unchanged_at_end_row): Convert assertions to
2163 unconditional tests which abort. When looking for a row in
2164 unchanged text, don't go further back than first_text_row.
2165
b41fe2c3
GM
2166 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
2167 Don't add in the last line's height when deciding if the new
2168 position is below the scroll margin.
9d1af64f 2169
b41fe2c3 21702000-10-16 Miles Bader <miles@gnu.org>
f657bbf6
MB
2171
2172 * editfns.c (Fconstrain_to_field): Check carefully for field
2173 boundaries if either OLD_POS or NEW_POS has a non-nil field
2174 property, even if they're the same.
2175
c412cb7b
KH
21762000-10-16 Kenichi Handa <handa@etl.go.jp>
2177
2178 * xterm.c (x_draw_box_rect): Fix the calculation of width and
2179 height for XFillRectangle.
2180
5586f3eb
SM
21812000-10-15 Stefan Monnier <monnier@cs.yale.edu>
2182
2183 * syntax.c (Fstring_to_syntax): New function extracted from
2184 Fmodify_syntax_entry.
2185 (Fmodify_syntax_entry): Use it and document the ! and | fences.
2186 (skip_chars, Fforward_comment): Remove unused variables.
2187 (syms_of_syntax): Add defsubr for string-to-syntax.
2188 (describe_syntax): Add code for comment and string fences.
2189
db785038
SM
21902000-10-14 Stefan Monnier <monnier@cs.yale.edu>
2191
2192 * keymap.c (access_keymap): Add AUTOLOAD parameter.
2193 Do the meta->esc mapping. Call get_keyelt before returning.
2194 Start scanning from the second element (the first is always `keymap')
2195 to make it easier to detect when we reach a parent map.
2196 Handle the case of inheriting from a symbol whose function is a map.
2197 (Fkeymap_parent): Also handle the `inherit from symbol' case.
2198 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
2199 (get_keyelt, Flookup_key): Update call to access_keymap.
2200 Remove the meta->esc mappings.
2201 (define_as_prefix): Delete old disabled code.
2202 (menu_item_p): New function.
2203 (where_is_internal_1): Skip over the few remaining menu items.
2204 * lisp.h (access_keymap): Update prototype.
2205 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
2206 Update call to access_keymap.
2207 (follow_key, read_key_sequence): Update calls to access_keymap.
2208 Remove the meta->esc mappings.
2209
cafafe0b
GM
22102000-10-13 Gerd Moellmann <gerd@gnu.org>
2211
a2e2a7f6
GM
2212 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
2213 with additional argument.
2214
cafafe0b
GM
2215 * xdisp.c (cursor_row_p): New function.
2216 (try_cursor_movement, display_line): Use it.
2217
2218 * xdisp.c (append_space): Also save/restore iterator's current
2219 character and its length.
2220
2221 * xdisp.c (init_from_display_pos): Add an assertion.
2222 (handle_stop): Don't set iterator's add_overlay_start.
2223 (handle_invisible_prop): Likewise.
2224 (load_overlay_strings): If text under an overlay is invisible,
2225 take both before- and after-strings into account when the iterator
2226 is positioned either at the start or at the end of the overlay.
2227 (forward_to_next_line_start): Rewritten.
2228 (reseat_at_next_visible_line_start): Rewritten.
2229 (set_iterator_to_next): Add parameter RESEAT_P.
2230
2231 * dispextern.h (struct it): Remove member add_overlay_start.
2232 (set_iterator_to_next): Change prototype.
2233
c744452b
KH
22342000-10-13 Kenichi Handa <handa@etl.go.jp>
2235
2236 * coding.c (code_convert_region): Be sure to initialize
2237 coding->category_idx.
e4a3f4e1
KH
2238 (decode_coding_string): Set coding->src_multibyte and
2239 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
2240 (encode_coding_string): Set coding->src_multibyte and
2241 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
c744452b 2242
321fd26f
SM
22432000-10-12 Stefan Monnier <monnier@cs.yale.edu>
2244
2245 * xfns.c (Fx_create_frame): Don't bother calling
2246 face-set-after-frame-default since the caller does it for us anyway.
2247
76832439
EZ
22482000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
2249
2250 * window.c (coordinates_in_window): Fix detection of vertical line
2251 on character terminals.
2252
2483cf58
GM
22532000-10-12 Gerd Moellmann <gerd@gnu.org>
2254
2255 * editfns.c (save_excursion_save): Additionally record the
2256 selected window.
2257 (save_excursion_restore): If buffer was visible in a window, and a
2258 different window was selected, and the old selected window is
2259 still live, restore point in that window.
2260
eb991b25
KH
22612000-10-12 Kenichi Handa <handa@etl.go.jp>
2262
8a0eba09
KH
2263 * xterm.c (x_produce_glyphs): Handle
2264 unibyte_display_via_language_environment correctly.
2265
20401fcc
KH
2266 * regex.c (regex_compile): Change the way of handling a range from
2267 unibyte char to multibyte char.
2268
2269 * syntax.c (skip_chars): Change the way of handling a range from
2270 unibyte char to multibyte char.
2271
eb991b25
KH
2272 * process.c (read_process_output): Cancel previous change.
2273
365dd325
EZ
22742000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
2275
c1b096cb
EZ
2276 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
2277
365dd325
EZ
2278 * charset.c (Ffind_charset_string): Doc fix.
2279 (Ffind_charset_region): Doc fix.
2280
eb483c2b
KH
22812000-10-11 Kenichi Handa <handa@mule.m17n.org>
2282
2283 * process.c (read_process_output): Fix previous change. Adjust
2284 multibyteness of text to insert in a buffer by
df3c11b9 2285 string_make_unibyte/multibyte instead of
eb483c2b
KH
2286 Fstring_as_unibyte/multibyte.
2287
b40bfb99
AS
22882000-10-10 Andreas Schwab <schwab@suse.de>
2289
2290 * alloc.c (mark_object): Remove all workarounds installed on
2291 1993-08-08.
2292
caff31d4
KH
22932000-10-10 Kenichi Handa <handa@etl.go.jp>
2294
2295 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before
2296 returning.
2297 (base64_encode_1): Make it work for a text of multibyte form.
2298 (Fbase64_decode_region): Allocate sufficient memory for multibyte
2299 case. Don't call str_to_multibyte because base64_decode_1
2300 produces correct multibyte form for eight-bit codes.
2301 (Fbase64_decode_string): Adjusted for the change of
2302 base64_decode_1.
2303 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
2304 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
2305 codes.
2306
2307 * charset.h (CHAR_STRING): Optimized for single byte characters.
2308
cba026ef
AS
23092000-10-09 Andreas Schwab <schwab@suse.de>
2310
2311 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
2312 -1 after socket is closed, to fall through to error processing.
2313
1e21fe48
EZ
23142000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
2315
2316 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
365dd325 2317 variables. If ALIST includes foreground-color or
1e21fe48
EZ
2318 background-color, change also the colors of the default face for
2319 this frame.
2320
a640322e
EZ
23212000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
2322
2323 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
2324 them extern (they are defined on xfaces.c).
2325 (syms_of_msdos): Don't intern and don't staticpro
2326 Qbackground_color and Qforeground_color.
2327
a115794c
EZ
23282000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
2329
2330 * frame.c (Fframe_parameter): For non-windowed frames, if
2331 f->param_alist says foreground or background color is unspecified,
2332 call tty_color_name to return the color name computed from the
2333 frame's current colors.
2334
f5533b63
DL
23352000-10-06 Dave Love <fx@gnu.org>
2336
2337 * terminfo.c (ospeed): Don't declare.
2338
2339 * sysdep.c: Don't include string.h.
2340 (h_errno): Declare conditional also on TRY_AGAIN.
2341
2342 * charset.c (Ffind_charset_string): Doc fix.
2343
2344 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
2345 (Fbase64_decode_region, Fbase64_decode_string): More explicit
2346 error messages.
2347
2b06561a
DL
23482000-10-05 Dave Love <fx@gnu.org>
2349
2350 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
2351 position like menu-bar.
2352
ca839c85
GM
23532000-10-05 Gerd Moellmann <gerd@gnu.org>
2354
2355 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
2356
2357 * xdisp.c (handle_single_display_prop): Use safe_call1.
2358 (safe_call): Renamed from call_function.
2359 (safe_call1): New function.
2360 (handle_fontified_prop): Use safe_call1 instead of call1.
2361 (safe_eval): Renamed from eval_form.
2362 (safe_eval_handler): Renamed from eval_handler.
2363 (handle_single_display_prop, display_mode_element): Use safe_eval
2364 instead of eval_form.
2365
2366 * xfaces.c (merge_face_heights): Use safe_call instead of
2367 call_function.
2368
2369 * keyboard.c (show_help_echo): Use safe_call instead of
2370 call_function; use safe_eval instead of eval_form.
2371
2372 * lisp.h (safe_call): Renamed from call_function.
2373 (safe_eval): Renamed from eval_form.
2374 (safe_call1): Add prototype.
2375
a3489ece
MB
23762000-10-05 Miles Bader <miles@lsi.nec.co.jp>
2377
2378 * xfns.c (image_ascent): Rearrange ascent calculation for the
2379 has-a-font case.
2380
35810b6f
SM
23812000-10-04 Stefan Monnier <monnier@cs.yale.edu>
2382
2383 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
2384 (where_is_internal_1): Don't bother ignoring menu-items any more.
2385
3dc78168
GM
23862000-10-04 Gerd Moellmann <gerd@gnu.org>
2387
2388 * keyboard.c (update_menu_bindings): New variable.
2389 (parse_menu_item): Use AREF. If update_menu_bindings
2390 is 0, don't update menu bindings.
2391 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
2392
1efc2bb9
EZ
23932000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
2394
2395 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
2396 to `mark_object'.
2397
3f679f55
SM
23982000-10-02 Stefan Monnier <monnier@cs.yale.edu>
2399
2400 * syntax.c (forw_comment): Match nestedness of ender/starter.
2401 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
2402 (prev_char_comstart_first): Remove.
2403 (back_comment): Check two-char comment markers more carefully
2404 to better handle overlapping cases like *//* or /* */* */ ...
2405 Match nestedness of ender/starter.
2406
2021ab61
DL
24072000-10-02 Dave Love <fx@gnu.org>
2408
2409 * config.in (HAVE_GAI_STRERROR): Add undef.
2410
2411 * process.c (Fopen_network_stream): Use it.
2412
2413 * m/alpha.h (NO_REMAP): Don't define.
2414
64e6cc18
GM
24152000-10-02 Gerd Moellmann <gerd@gnu.org>
2416
2417 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
2418 return with a string converted to an integer or vice versa when
2419 Vmocklisp_arguments is t.
2420 (Fsignal): Likewise. The function can return for `quit'.
2421 (struct gcpro): Declare member `var' to point to a volatile
2422 Lisp_Object.
2423
2424 * eval.c (error): Prevent compiler warning.
2425
b1904cd9
SM
24262000-09-30 Stefan Monnier <monnier@cs.yale.edu>
2427
2428 * keymap.c (keymap_memberp): New function.
2429 (Fset_keymap_parent): Use it.
2430 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
2431 Use keymap_memberp to avoid creating cycles.
2432 (access_keymap): Use KEYMAPP.
2433
71c9ec51
GM
24342000-09-30 Gerd Moellmann <gerd@gnu.org>
2435
2436 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
64e6cc18
GM
2437 gai_strerror. Make sure xerrno is set if connect fails. Improve
2438 error recovery.
71c9ec51 2439
c70c6b58
JR
24402000-09-29 Jason Rumney <jasonr@gnu.org>
2441
2442 * w32term.c (w32_char_font_type, w32_encode_char)
2443 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
2444 (w32_bdf_per_char_metric): New function.
2445 (w32_per_char_metric): Use it.
2446 (x_draw_glyph_string_background): Always draw background for BDF
2447 glyphs.
2448
2449 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
2450 GDI object which is a scarce resource.
2451
2452 * w32bdf.c (search_file_line): Fix skipping of whitespace.
2453 (get_quoted_string): Fix limit on memchr search.
2454 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
2455 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
2456 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
2457 (get_cached_font_char, cache_char_offset): Use macro
2458 BDF_CODEPOINT_RANGE_COVER_P.
2459 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
2460 (clear_cached_bitmap_slots): New function.
2461 (GET_HEX_VALUE): G-Z, g-z are not hex.
2462 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
2463 (get_bitmap_with_cache): Use new cache implementation.
2464 (create_offscreen_bitmap): New function.
2465 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
2466
2467 * w32term.c (x_produce_glyphs): If the distance from the current
2468 position to the next tab stop is less than a canonical character
2469 width, use the tab stop after that.
2470 (x_draw_glyphs): Handle case START and END are out of bounds more
2471 carefully.
2472 (x_clear_mouse_face): Block/unblock input.
2473 (x_display_and_set_cursor): Don't show a hollow box cursor for
2474 buffers whose cursor_type is nil.
2475
fe01239f
GM
24762000-09-29 Gerd Moellmann <gerd@gnu.org>
2477
2478 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar
2479 disappears.
2480
2481 * dispextern.h (updating_frame): Declare extern.
2482
e7c52f1f
AS
24832000-09-29 Andreas Schwab <schwab@suse.de>
2484
2485 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
2486
de6e1f7c
GM
24872000-09-29 Gerd Moellmann <gerd@gnu.org>
2488
25126faa
GM
2489 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
2490 use its function definition.
2491 (tool_bar_items): Likewise.
2492
de6e1f7c
GM
2493 * lisp.h (fatal): Declare NO_RETURN.
2494
454ee39b
KH
24952000-09-29 Kenichi Handa <handa@etl.go.jp>
2496
2497 * keymap.c: Remove the line "#undef NULL".
2498
96301c5f
GM
24992000-09-28 Gerd Moellmann <gerd@gnu.org>
2500
2501 * xterm.c (x_make_frame_visible): Try harder to make the frame
2502 visible.
2503
efffeeb4
DL
25042000-09-28 Dave Love <fx@gnu.org>
2505
ecb8b666
DL
2506 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
2507
dc3cd20f
DL
2508 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
2509
2510 * .gdbinit (xreload): Note its need on GNU/Linux.
2511
efffeeb4
DL
2512 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
2513 r_alloc, r_alloc_free.
2514
8610d903
KH
25152000-09-28 Kenichi Handa <handa@etl.go.jp>
2516
2517 * syntax.c (skip_chars): Handle negation correctly.
2518
8901d1ac
GM
25192000-09-27 Gerd Moellmann <gerd@gnu.org>
2520
6f22f1ad
GM
2521 * xfaces.c (realize_default_face): Call set_lface_from_font_name
2522 with non-zero FORCE_P argument.
2523
8901d1ac
GM
2524 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
2525 Add assertions.
2526
2527 * xdisp.c (window_box_height): Add an assertion.
2528
2529 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
2530 tool-bar than is available.
2531 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
2532
36f1966f
DL
25332000-09-27 Dave Love <fx@gnu.org>
2534
efffeeb4 2535 * s/irix6-5.h: Now works 64-bit. Tidied.
36f1966f 2536
31d929e5
GM
25372000-09-26 Gerd Moellmann <gerd@gnu.org>
2538
c98863bf
GM
2539 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
2540 instead of BITS_PER_INT.
2541 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
2542 EMACS_UINT, respectively.
2543 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
2544
2545 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
2546
2547 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
2548
77072ab1
GM
2549 * window.c (freeze_window_starts): Construct last argument for
2550 foreach_window differently.
2551
2552 * xfns.c (x_decode_color): Don't return a Lisp_Object.
2553
2554 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
2555 EMACS_UINT instead of `int' and `unsigned int'.
2556 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
2557
2558 * frame.h (struct frame): Make the `nothing' member of union
2559 output_data an EMACS_INT.
2560
31d929e5
GM
2561 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug
2562 hunting.
2563 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
2564 size in the sdata structure.
2565 (SDATA_NBYTES, SDATA_DATA): New macros.
2566 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
2567 differently for the different layout of the sdata structure.
2568 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
2569 in sdata.
2570 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
2571 Check that size recorded in the string size and size recorded in
2572 the sdata structure agree.
2573
3e60b029
DL
25742000-09-25 Dave Love <fx@gnu.org>
2575
2576 * buffer.c: Include stdio.h.
2577
2578 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
2579
2580 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
2581
2582 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
2583 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as
2584 size_t.
2585 (__malloc_extra_blocks): Declare as __malloc_size_t.
2586
8ff16b4e
GM
25872000-09-25 Gerd Moellmann <gerd@gnu.org>
2588
755a2ccd
GM
2589 * alloc.c (mark_image): Use GC_NILP instead of NILP.
2590
d8b4516f
GM
2591 * keyboard.c (show_help_echo): Set help_echo_showing_p.
2592 (read_char): If help-echo is showing, preserve the echo area
2593 when redisplaying.
2594
2595 * xdisp.c (help_echo_showing_p): New variable.
2596 (set_message): Reset it to 0.
2597 (init_xdisp): Initialize help_echo_showing_p.
2598
2599 * dispextern.h (help_echo_showing_p): Declare extern.
2600
2601 * config.in: Fix typo in __GNUC_MINOR__.
2602
2603 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
2604
b11af2dd
GM
2605 * s/freebsd.h (POSIX_SIGNALS): Define.
2606
8ff16b4e
GM
2607 * xterm.c (x_clear_mouse_face): Block/unblock input.
2608
844eb643
DL
26092000-09-24 Dave Love <fx@gnu.org>
2610
2611 * fns.c (base64_encode_1): Fix last change.
2612
b30ab1b3
GM
26132000-09-22 Gerd Moellmann <gerd@gnu.org>
2614
2615 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
2616
2617 * xdisp.c (try_window_reusing_current_matrix): More fixes
2618 for the case window has a header-line.
2619
c6cbe5f0
DL
26202000-09-22 Dave Love <fx@gnu.org>
2621
4c7c1f3f
DL
2622 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
2623 a doc string.
2624
2625 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
2626
c6cbe5f0
DL
2627 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
2628
550a625e
GM
26292000-09-21 Gerd Moellmann <gerd@gnu.org>
2630
4c7c1f3f 2631 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
fca99116
GM
2632 for GCC >= 2.5.
2633
2634 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error): Declare
2635 NO_RETURN.
2636
80d26f99
GM
2637 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
2638 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
2639 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
2640 warnings.
2641
2642 * marker.c (byte_char_debug_check): Return void.
2643
623a0aae
GM
2644 * xfns.c (Fx_create_frame): Set default frame parameter value
2645 for tool-bar-lines to 1.
2646
2647 * dispnew.c (scrolling_window): Compare y-positions of rows
2648 equal at the start. Some simplification.
2649
2650 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
2651 reused rows' y-position in the case window has a header-line, and
2652 new window start is greater than old window start.
2653
42ac0ae5
GM
2654 * process.c (process_sent_to): New variable.
2655 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
2656 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
2657 Declare more parameters volatile.
2658
550a625e
GM
2659 * lread.c (Vrecursive_load_depth_limit): New variable.
2660 (Fload): Check recursive loads whose recursion depth exceeds
2661 Vrecursive_load_depth_limit.
2662 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
2663
8320414c
GM
26642000-09-20 Gerd Moellmann <gerd@gnu.org>
2665
f46c275e
GM
2666 * fileio.c (Fread_file_name): Doc fix.
2667
2668 * editfns.c (Fmessage_or_box): Doc fix.
2669
2670 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
2671
b7e11c5b
GM
2672 * xfns.c (xbm_scan): Allow C-style comments.
2673
8320414c
GM
2674 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
2675 symbols are specified, add color translations to the cache.
2676 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New
2677 functions.
2678 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
2679 xpm_cache_color.
2680 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
2681 structures to xpm_init_color_cache.
2682
da1608d9
GM
26832000-09-19 Gerd Moellmann <gerd@gnu.org>
2684
2685 * dispnew.c (update_window_line): Make sure to always draw
2686 mode-lines.
2687
6badfa25
AI
26882000-09-19 Andrew Innes <andrewi@gnu.org>
2689
2690 * makefile.nt (bootstrap-emacs): Don't change directory.
2691
3a5f42bb
KH
26922000-09-19 Kenichi Handa <handa@etl.go.jp>
2693
1b7649bd
KH
2694 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
2695
3a5f42bb
KH
2696 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
2697 If output buffer is too small, signal an appropriated error.
2698
9f83cf0b
DL
26992000-09-18 Dave Love <fx@gnu.org>
2700
2701 * keyboard.c (menu_bar_items, tool_bar_items)
2702 (current_active_maps): Remove redundant get_local_map call.
2703
28c7826c
GM
27042000-09-18 Gerd Moellmann <gerd@gnu.org>
2705
5cefa566
GM
2706 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
2707 cursor for buffers whose cursor_type is nil.
2708
6fed3546
GM
2709 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
2710 a feature to implement that is already implemented.
2711 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
2712 warnings.
2713
2714 * xfns.c (x_clear_image_1): New function.
2715 (x_clear_image): Use it.
2716 (x_from_xcolors): Use x_clear_image_1; don't free the image's
2717 mask.
2718
05b1f851
GM
2719 * dispnew.c (update_window): Move test for invisible lines
2720 at the top to update_window_line.
2721 (update_window_line): Handle invisible lines here.
2722
f4779de9
GM
2723 * xfns.c (clear_image_cache): Clear current matrices of all
2724 frames sharing an image cache. Block input while freeing
2725 images. Fix timestamp comparison.
2726 (x_clear_image): Also free the mask.
2727
28c7826c
GM
2728 * xfns.c (lookup_image): Block input while loading the image so
2729 that we won't get interrupted in a state where the image isn't yet
2730 set up completely.
2731 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
2732 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
2733 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
2734 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock
2735 input.
2736
b7412313
GM
27372000-09-16 Gerd Moellmann <gerd@gnu.org>
2738
2739 * dispnew.c (update_window): Make sure to make desired rows
2740 current even if they are completely invisible at the top
2741 of a window.
2742
47e351a3
GM
27432000-09-15 Gerd Moellmann <gerd@gnu.org>
2744
7f8f1edc
GM
2745 * xfns.c (lookup_image): Build mask before applying an algorithm.
2746 Recognize algorithm `disabled'.
2747 (cross_disabled_images): New variable.
2748 (COLOR_INTENSITY): New macro.
2749 (x_detect_edges): Use COLOR_INTENSITY.
2750 (x_disable_image): New function.
2751 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
2752
2753 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
2754 disabled state, don't apply an image transformation algorithm if
2755 the user specified an image for the disabled state. Use
28c7826c 2756 `:algorithm disabled' for creating a disabled item's image if the
7f8f1edc
GM
2757 user hasn't specified an image.
2758
ebb8f116
GM
2759 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
2760 allocation functions with the XPM lib.
2761 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
2762 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
2763 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
2764 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
2765 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New
2766 functions.
2767 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
2768 functions, if possible, because these handle color allocation
2769 failure more gracefully.
2770 (Fimage_mask_p): New function.
2771
47e351a3
GM
2772 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
2773 (Qedge_detection, Qheuristic): New symbols.
2774 (syms_of_xfns): Initialize new symbols.
2775 (lookup_image): Handle `:mask X', `:algorithm emboss', and
2776 `algorithm (edge-detection ...)'.
2777 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
2778 (tiff_format, gif_format, gs_format): Add `:mask'.
2779 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
2780 (GIF_MASK, GS_MASK): New enumerators.
2781 (x_laplace_read_row, x_laplace_write_row): Functions removed.
2782 (emboss_matrix, laplace_matrix): New variables.
2783 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
2784 (x_edge_detection): New functions.
2785 (x_laplace): Rewritten in terms of x_detect_edges.
2786 (x_build_heuristic_mask): If image has a mask, free it.
2787
fe83b953
AI
27882000-09-14 Andrew Innes <andrewi@gnu.org>
2789
2790 * makefile.w32-in: Revert to Unix line endings.
2791
3021e816
AI
27922000-09-14 Andrew Innes <andrewi@gnu.org>
2793
2794 * makefile.w32-in: Standardize indentation somewhat.
2795 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
2796 cater for differences between shells.
2797
2798 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
2799
2a32b5ea
GM
28002000-09-14 Gerd Moellmann <gerd@gnu.org>
2801
2802 * xterm.c (x_produce_glyphs): If the distance from the current
2803 position to the next tab stop is less than a canonical character
2804 width, use the tab stop after that.
2805
b4331e96
DL
28062000-09-14 Dave Love <fx@gnu.org>
2807
2808 * buffer.c (alloc_buffer_text): Fix xmalloc call.
2809
ef9e4345
GM
28102000-09-14 Gerd Moellmann <gerd@gnu.org>
2811
085536c2
GM
2812 * xdisp.c (handle_fontified_prop): While running fontification
2813 functions, bind `fontification-functions' and
2814 `after-change-functions' to nil.
2815
ef9e4345
GM
2816 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
2817 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
2818
2819 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
2820
2821 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
2822 USE_MMAP_FOR_BUFFERS.
2823
2824 * insdel.c (make_gap): Use enlarge_buffer_text.
2825
2826 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
2827 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
2828 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
2829 from former r_alloc_* functions in ralloc.c.
2830 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New
2831 variables.
2832 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
2833 (mmap_init) [REL_ALLOC_MMAP]: New function.
2834 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
2835 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
2836 BUFFER_FREE.
2837
2838 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
2839 (enlarge_buffer_text): Add prototype.
2840
2841 * ralloc.c: Remove everything having to do with the use of mmap.
2842
f8608968
GM
28432000-09-13 Gerd Moellmann <gerd@gnu.org>
2844
2a494b2d
GM
2845 * sound.c (Fplay_sound): Doc fix.
2846
8c907a56
GM
2847 * keyboard.c: Avoid some more compiler warnings.
2848 (parse_tool_bar_item): Ignore cached key bindings.
2849
f8608968
GM
2850 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
2851 and allocation of Lisp data.
2852
6ab70e9a
GM
28532000-09-12 Gerd Moellmann <gerd@gnu.org>
2854
d12d0a9b
GM
2855 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
2856 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
2857 defaults first.
2858
6ab70e9a
GM
2859 * lread.c (Fload): Put code checking for recursive loads in #if 0.
2860
63c36c3c
KH
28612000-09-12 Miyashita Hisashi <himi@meadowy.org>
2862
2863 * ccl.c: Comment fixed.
2864 (MAX_MAP_SET_LEVEL): Increased to 30.
2865 (PUSH_MAPPING_STACK): Enclose with do-while block.
2866 (POP_MAPPING_STACK): Likewise.
2867 (stack_idx_of_map_multiple): New variable.
2868 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
2869 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
2870 call the corresponding CCL program by
2871 CCL_CALL_FOR_MAP_INSTRUCTION.
2872 (ccl_driver) <CCL_MapSingle>: Likewise.
2873 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
2874 with the case where looking up process reaches to the end of
2875 map-set, and call CCL programs as the above change.
2876
7ee3bd7b
GM
28772000-09-11 Gerd Moellmann <gerd@gnu.org>
2878
8ec8a5ec
GM
2879 * xfns.c (png_load, jpeg_load): Declare some variables volatile
2880 that might be clobbered by longjmp.
2881 (check_x_display_info, x_decode_color, create_frame_xic)
2882 (Fx_display_backing_store, Fx_display_visual_class)
2883 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler
2884 warnings.
2885
f74b0705
GM
2886 * lread.c (init_lread): Set Vloads_in_progress to nil.
2887 (Fload): Show list of recursively loaded files, when signaling an
2888 error.
2889
7ee3bd7b
GM
2890 * lread.c (Vloads_in_progress): New variable.
2891 (record_load_unwind): New function.
2892 (Fload): Check for recursive loads.
2893 (syms_of_lread): Initialize Vloads_in_progress.
2894 (read_integer, read1): Avoid some compiler warnings.
2895
2896 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
2897 compiler warnings.
2898
974e1e5b
MB
28992000-09-11 Miles Bader <miles@gnu.org>
2900
2901 * editfns.c (Fbuffer_string): Doc fix.
2902
9824c4e3
GM
29032000-09-10 Gerd Moellmann <gerd@gnu.org>
2904
2905 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
2906
6a72fdd1
KR
29072000-09-09 Ken Raeburn <raeburn@gnu.org>
2908
2909 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
2910 whether to include other header files.
2911
28e6fb66
GM
29122000-09-09 Gerd Moellmann <gerd@gnu.org>
2913
2914 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
9824c4e3 2915 by Fmemq as a boolean.
28e6fb66 2916
7f8b6551
SM
29172000-09-08 Stefan Monnier <monnier@cs.yale.edu>
2918
2919 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
2920
a8710abf
GM
29212000-09-08 Gerd Moellmann <gerd@gnu.org>
2922
d1a02881
GM
2923 * ralloc.c (mmap_fd): Remove initializer which can make it
2924 read-only in a dumped Emacs.
2925 (mmap_fd_1): New variable.
2926 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
2927 restore it from there.
2928 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
2929 unconditionally so that mmap_fd can be initialized there.
2930 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
2931 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
2932 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
2933
c454aac1
GM
2934 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
2935
2936 * xdisp.c (dump_glyph_row): Fix printf format string.
2937 (display_line, move_it_in_display_line_to): Avoid compiler
2938 warnings.
2939
fc653ef2
GM
2940 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
2941
3015eec0
GM
2942 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
2943 inheritance.
2944
bfe0ee88
GM
2945 * xdisp.c (try_window_id): When trying to locate cursor in
2946 unchanged rows at the top, handle the case that we can't find it.
2947
a8710abf
GM
2948 * xterm.c (x_draw_glyphs): Handle case START and END are out
2949 of bounds more carefully.
2950
6b7d4ae4
DL
29512000-09-08 Dave Love <fx@gnu.org>
2952
423193c5
DL
2953 * s/sol2.h (REL_ALLOC_MMAP): Define.
2954 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
2955
2956 * ralloc.c: Don't include string.h (redundant).
2957 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
2958 [!MAP_ANON]: Include fcntl.h.
2959 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
2960 (r_alloc, r_re_alloc, r_alloc_free)
2961 (mmap_enlarge, mmap_set_vars): Use it.
2962 (r_alloc_init_fd): New function.
2963 (__morecore) [SYSTEM_MALLOC]: Don't declare.
2964 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
2965 malloc type.
2966
2967 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
2968 Remove vm-limit.o.
2969
6b7d4ae4
DL
2970 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
2971 change to __NetBSD__.
2972
44d31981
KH
29732000-09-08 Kenichi Handa <handa@etl.go.jp>
2974
2975 * search.c (compile_pattern): Check the multibyteness of cached
2976 string and PATTERN.
2977
aad40737
MB
29782000-09-08 Miles Bader <miles@gnu.org>
2979
2980 * xfaces.c (default_face_vector): Function removed.
2981 (Finternal_merge_in_global_face): Restore old global/local
2982 attribute override order. Use inline loop instead of calling
2983 default_face_vector.
2984
91a211b5
GM
29852000-09-07 Gerd Moellmann <gerd@gnu.org>
2986
2987 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
2988 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
2989 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
2990 where necessary, in case POINTER_TYPE is `void'.
2991
03419440
EZ
29922000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
2993
2994 * frame.c (make_terminal_frame): Initialize frame foreground and
2995 background colors to unspecified, for the initial instance of an
2996 MSDOS frame.
2997
f46f845b
GM
29982000-09-07 Gerd Moellmann <gerd@gnu.org>
2999
24f76fbf
GM
3000 * ralloc.c (mmap_find): Fix overlap computation.
3001 (mmap_enlarge): Compute nbytes before trying to find an
3002 overlapping region.
3003
f46f845b
GM
3004 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
3005 instead of `!='.
3006
3007 * lread.c (syms_of_lread): Change value of regexp
3008 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
3009
3010 * xmenu.c (xdialog_show): When looking up the selection in
3011 menu_items, take `quote' boundaries into account; this corresponds
3012 to a nil ITEM in x-popup-dialog.
3013
3c014385
KH
30142000-09-07 Kenichi Handa <handa@etl.go.jp>
3015
fd6f711b
KH
3016 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
3017 not 0x81.
3018 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
3019
3c014385 3020 * coding.c (encode_coding_sjis_big5): Use translation table for
ed254191
KH
3021 encoding, not decoding. Fix the handling of latin-jisx0201.
3022 Check for the charset katakana-jisx0201 too.
3c014385 3023 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
f46f845b 3024 (detect_coding_sjis): Check the byte sequence more rigidly.
3c014385 3025
0da3ecef
GM
30262000-09-07 Gerd Moellmann <gerd@gnu.org>
3027
ab0ee409
GM
3028 * xfaces.c (Vparam_value_alist): New variable.
3029 (syms_of_xfaces): Initialize it.
3030 (Finternal_set_lisp_face_attribute): Avoid more consing.
3031
3032 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
3033 specially.
3034 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
3035 (Qbackground_mode): New variable.
3036 (syms_of_frame_1): Initialize Qbackground_mode.
3037
3038 * lisp.h (Qdisplay): Declare extern.
1091dd67 3039
0da3ecef
GM
3040 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
3041 change face on all frames, and change the default for new frames.
3042
b14654b9
DL
30432000-09-07 Dave Love <fx@gnu.org>
3044
3045 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
3046
d24fd56f
KH
30472000-09-07 Kenichi Handa <handa@etl.go.jp>
3048
794f3670
KH
3049 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
3050
0fddd0dc
KH
3051 * charset.c: Include composite.h
3052 (lisp_string_width): New function.
3053 (Fstring_width): Call lisp_string_width instead of strwidth.
3054
3055 * Makefile.in (charset.o): Depends on composite.h.
3056
d24fd56f
KH
3057 * process.c (read_process_output): Before inserting the decoded
3058 text in the buffer, adjust the multibyteness.
3059
fa0b693c
GM
30602000-09-06 Gerd Moellmann <gerd@gnu.org>
3061
73b77ee5
GM
3062 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
3063 buffer's text buffer is null, map new memory.
3064
0a58f946
GM
3065 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
3066 POINTER_TYPE and size_t.
3067 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
3068 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
3069 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
3070 [REL_ALLOC_MMAP]: New macros.
3071 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
3072 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
3073 [REL_ALLOC_MMAP]: New functions.
3074
3075 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
3076 before and after unexec.
3077
3078 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
3079 text buffers if necessary.
3080
3081 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
3082 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
3083 in prototypes.
3084
fa0b693c
GM
3085 * config.in (HAVE_MMAP): Add #undef.
3086
877055f6
GM
30872000-09-05 Gerd Moellmann <gerd@gnu.org>
3088
08ba3862
GM
3089 * frame.c (Qdisplay_type): New variable.
3090 (syms_of_frame_1): Initialize it.
3091 (Fframe_parameter): New function that avoids consing.
3092 (syms_of_frame): Defsubr it.
3093
66ffe51c
GM
3094 * buffer.c (Fother_buffer): Consider buffers as invisible when
3095 they are displayed in a window on an invisible frame.
3096
877055f6
GM
3097 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
3098 get-largest-window always return nil.
3099
bb970e67
GM
31002000-09-04 Gerd Moellmann <gerd@gnu.org>
3101
3102 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
3103 variable; recognize Emacs 19 elc files.
3104
7a3d0e0e
MB
31052000-09-04 Miles Bader <miles@gnu.org>
3106
3107 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
3108 before initially popping up the menu, so the menu doesn't flash
3109 when the face settings are significantly different from the
3110 defaults.
3111
14473664
SM
31122000-09-04 Stefan Monnier <monnier@cs.yale.edu>
3113
3114 * regex.c (WIDE_CHAR_SUPPORT): New macro.
3115 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
3116 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
3117 (BIT_UNIBYTE): Remove.
3118 (re_match_2_internal): Delete corresponding code and streamline the
3119 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
3120 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
3121 (re_wctype_t): New type.
3122 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
3123 (regex_compile): Use them and fix handling of overly long char classes.
3124
c1174479
AI
31252000-09-03 Andrew Innes <andrewi@gnu.org>
3126
f8803e97
AI
3127 * makefile.w32-in: Change to DOS line endings.
3128
c1174479
AI
3129 * s/ms-w32.h (ORDINARY_LINK): New define.
3130
3131 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
3132 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
3133
3134 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
3135 (distclean): Delete them here instead.
3136
44ef7cf6
AI
3137 * w32proc.c (compare_env): Convert to uppercase for comparison,
3138 not lowercase, to match how the native Windows shell works.
3139
49b3bd82
JR
31402000-09-03 Jason Rumney <jasonr@gnu.org>
3141
3142 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
3143 CVS changes the line-ends when checking in/out on DOS/Windows.
3144
3145 * makefile.nt (emacs): Do not change directory to run temacs, as
3146 the load-path is set relative to current directory.
3147
a3d35a39
MB
31482000-09-03 Miles Bader <miles@gnu.org>
3149
3150 * xterm.c (x_alloc_lighter_color_for_widget): New function.
3151
d276b0cf
GM
31522000-09-02 Gerd Moellmann <gerd@gnu.org>
3153
715e84c9
GM
3154 * xdisp.c (redisplay_mode_lines): New function.
3155 (display_mode_lines): Return number of mode lines displayed.
3156 (echo_area_display): Use redisplay_mode_lines to draw garbaged
3157 mode lines. Don't temporarily bind redisplay-dont-pause to t.
3158
8892f40b
GM
3159 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
3160 string.h and strings.h.
3161 (index) [HAVE_INDEX]: Add prototype.
3162
d276b0cf
GM
3163 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
3164 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
3165
3166 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
3167 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
3168
38404229
GM
31692000-09-01 Gerd Moellmann <gerd@gnu.org>
3170
3171 * lread.c (read1): Accept `?' as symbol constituent, for
3172 compatiblity with XEmacs.
3173
c0f9ea08
SM
31742000-08-31 Stefan Monnier <monnier@cs.yale.edu>
3175
3176 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
3177 (struct re_pattern_buffer): Remove newline_anchor.
3178 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
3179 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
3180 (re_max_failures, fail_stack): Use size_t rather than unsigned.
3181 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
3182 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
3183 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
3184 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
3185 Get rid of references to newline_anchor.
3186 (regcomp): Allocate and precompute a fastmap.
3187
8c0f83fe
GM
31882000-08-31 Gerd Moellmann <gerd@gnu.org>
3189
3190 * lread.c (openp): GCPRO local variable `filename'.
3191
4bb91c68
SM
31922000-08-30 Stefan Monnier <monnier@cs.yale.edu>
3193
3194 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
3195
3196 * regex.c: Merge some changes from GNU libc. Add prototypes.
3197 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
3198 Use memcmp and memcpy instead of bcopy and bcmp.
3199 (init_syntax_once): Use ISALNUM.
3200 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
3201 (REG_UNSET_VALUE): Remove. Use NULL instead.
3202 (REG_UNSET, re_match_2_internal): Use NULL.
3203 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
3204 New macros.
3205 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
3206 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
3207 (regex_compile): In handle_interval, return an error rather than try to
3208 unfetch the interval if we can't find the closing brace.
3209 Obey the RE_NO_GNU_OPS syntax bit.
3210 (TOLOWER): New macro.
3211 (regcomp): Use it.
3212 (regexec): Allocate regs.start and regs.end as one block.
3213
5226a931
GM
32142000-08-30 Gerd Moellmann <gerd@gnu.org>
3215
868dd24b
GM
3216 * xdisp.c (echo_area_display): Check display_completed instead
3217 of calling detect_input_pending.
3218
3219 * dispnew.c (update_frame): Only set display_completed here; move
3220 the update_begin and update_end calls here from update_frame_1.
3221 (update_frame_1): Don't set display_completed here, don't call
3222 update_begin/update_end.
3223
5226a931
GM
3224 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
3225 instead of store_frame_param.
3226
2a8bd25f
GM
32272000-08-29 Gerd Moellmann <gerd@gnu.org>
3228
3229 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
3230 desired window matrix hasn't been displayed, use the current row
3231 instead. Make sure that only those frame rows are updated for
3232 which there exists a corresponding enabled desired row.
3233
ba3478d9
MB
32342000-08-29 Miles Bader <miles@gnu.org>
3235
3236 * xfaces.c (default_face_vector): New function.
3237 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
3238
87d0f685
GM
32392000-08-29 Gerd Moellmann <gerd@gnu.org>
3240
3241 * lread.c (openp): Prevent temporary string passed to
3242 Ffile_readable_p from being garbage collected.
3243
6fa86045
DL
32442000-08-28 Dave Love <fx@gnu.org>
3245
3246 * keymap.c (store_in_keymap): Add `static' to declaration.
3247
bb17930d
GM
32482000-08-28 Gerd Moellmann <gerd@gnu.org>
3249
3250 * emacs.c, callint.c, doc.c, editfns.c
3251 (toplevel) [HAVE_STRING_H]: Include string.h.
3252 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
3253 (index): Remove prototypes which might conflict with non-standard
3254 definitions of index/strchr.
3255
3256 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
3257 (rindex): Define only if !HAVE_RINDEX.
3258
3259 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
3260
3261 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
3262
87188200
MB
32632000-08-28 Miles Bader <miles@gnu.org>
3264
3265 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
3266 made inconsistent by a font-related attribute in FROM.
3267 (merge_face_inheritance): Add function comment.
3268
41a68aef
KH
32692000-08-28 Kenichi Handa <handa@etl.go.jp>
3270
3271 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
3272 the 4th arg (PREV_EVENT) Qt to suppress input method.
3273
f7c436c1
SM
32742000-08-27 Stefan Monnier <monnier@cs.yale.edu>
3275
0b32bf0e
SM
3276 * regex.c: Indent cpp directives and remove parens after `defined'.
3277 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
3278 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
3279 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
3280 (re_compile_pattern): Use size_t for length.
3281 (init_syntax_once): Move to a better place.
3282 * regex.h: Merge changes from GNU libc. Indent cpp directives.
3283 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
3284
f7c436c1
SM
3285 * syntax.c (back_comment): Detect cases where a comment-starter is
3286 actually inside another comment as in: /* a // b */ c // d \n.
3287 Make it clear that `comstart_pos' is unused for nested comments.
3288
3289 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
3290 (KEYMAPP): New macro.
3291 (Fkeymap_parent, Fset_keymap_parent): Use it.
3292 (fix_submap_inheritance): Mark it static.
3293 (define_as_prefix, describe_buffer_bindings, describe_command)
3294 (describe_translation, describe_map): Complete prototypes.
3295
3296 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
3297
3298 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
3299 to better match the key-lookup behavior.
3300
6288c62f
GM
33012000-08-27 Gerd Moellmann <gerd@gnu.org>
3302
3303 * xfaces.c (lface_fully_specified_p): Handle :inherit.
3304 (Finternal_set_lisp_face_attribute): Fix typo in error message.
3305
e931344e
EZ
33062000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
3307
3308 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
3309 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
3310 (xterm.o): Depend on coding.h
3311
d10dfeef
KH
33122000-08-26 Kenichi Handa <handa@etl.go.jp>
3313
3314 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
3315 the corresponding '#endif'.
3316
2d73e8d3
MB
33172000-08-26 Miles Bader <miles@gnu.org>
3318
3319 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
3320 * xfaces.c (QCinherit): New variable.
3321 (syms_of_xfaces): Initialize it.
3322 (LFACE_INHERIT): New macro.
3323 (Finternal_get_lisp_face_attribute)
3324 (merge_face_vector_with_property)
3325 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
3326 (check_lface_attrs): Allow new types of face height. Check
3327 inherit attribute.
3328 (CYCLE_CHECK): New macro.
3329 (merge_face_inheritance): New function.
3330 (merge_face_vectors): Merge inherited faces too. Add F and
3331 CYCLE_CHECK arguments.
3332 (merge_face_vector_with_property, Finternal_merge_in_global_face)
3333 (lookup_named_face, lookup_derived_face, realize_named_face)
3334 (face_at_string_position, face_at_buffer_position): Supply
3335 new F and CYCLE_CHECK arguments to merge_face_vectors.
3336 (merge_face_heights): New function.
3337 (merge_face_vectors, merge_face_vector_with_property)
3338 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
3339 handle relative face heights.
3340 (lface_same_font_attributes_p): Compare heights using EQ.
3341
6ce974d4
KH
33422000-08-26 Kenichi Handa <handa@etl.go.jp>
3343
3344 * charset.c (char_to_string): Check the character validity.
3345 (char_valid_p): If C is not less than MAX_CHAR, be sure to return
3346 0.
3347
dc1e502d
SM
33482000-08-25 Stefan Monnier <monnier@cs.yale.edu>
3349
3350 * regex.c (PUSH_FAILURE_COUNT): New macro.
3351 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
3352 Handle popping of a register's or a counter's data.
3353 (POP_FAILURE_POINT): Use the new name.
3354 (re_match_2_internal): Push counter data on the stack for succeed_n,
3355 jump_n and set_number_at and remove misleading dead code in succeed_n.
3356
bd9d0f3f
GM
33572000-08-25 Gerd Moellmann <gerd@gnu.org>
3358
3359 * xdisp.c (redisplay_internal): If considering all windows on all
3360 frames, update the display for each frame as soon as possible,
3361 instead of first building all desired matrices for all frames, and
3362 then updating them all.
3363 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
3364
aa5b8e15
GM
33652000-08-24 Gerd Moellmann <gerd@gnu.org>
3366
17494071
GM
3367 * bytecode.c (mark_byte_stack): Add a comment.
3368
aa5b8e15
GM
3369 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
3370 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
3371 a graphical frame.
3372
c543db81
KH
33732000-08-24 Kenichi Handa <handa@etl.go.jp>
3374
d246d5f5
KH
3375 * minibuf.c (do_completion): Always use compare-string, not
3376 string-equal because the latter doesn't pay attention to
3377 multibyteness of strings.
3378
c543db81
KH
3379 * process.c (create_process): Don't setup raw-text coding here.
3380 (Fopen_network_stream): Don't set coding->src_multibyte and
3381 coding->dst_multibyte here.
3382 (read_process_output): For process filter, return unibyte string
3383 if default-enable-multibyte-characters is nil.
3384 (send_process): If OBJECT is multibyte text, be sure to encoded it
3385 by the specified coding system for the process. Otherwise, setup
3386 raw-text coding.
3387 (init_process): Don't initialize default-process-coding-system
3388 here.
3389
9b47cfe0
EZ
33902000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
3391
3392 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
3393 <scroll-down-aggressively>: Likewise.
3394
f5a36960
KH
33952000-08-23 Kenichi Handa <handa@etl.go.jp>
3396
3397 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
3398 zero. Set coding->produced_char correctly.
3399
69a7ffa7
AI
34002000-08-22 Andrew Innes <andrewi@gnu.org>
3401
3402 * makefile.w32-in: New file.
3403
3404 * unexw32.c (unexec): Ignore old_name, and use the actual location
3405 of the current executable instead. Base new_name on this.
3406
3407 * w32proc.c (create_child): Remove reference to security
3408 descriptor, which isn't needed and doesn't compile with mingw32.
3409
3410 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
3411 up dllimport attributes.
3412 (x_update_window_end): Update prototype.
3413
3414 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
3415 extern, which screws up dllimport attributes.
3416
3417 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
3418 up dllimport attributes.
3419
3420 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
3421 screws up dllimport attributes.
3422
3423 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
3424 up dllimport attributes.
3425 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
3426 screws up dllimport attributes.
3427
3428 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
3429 up dllimport attributes.
3430
3431 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
3432 screws up dllimport attributes.
3433
3434 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
3435 screws up dllimport attributes.
3436
3437 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
3438 up dllimport attributes.
3439
3440 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
3441 unnecessary extern, which screws up dllimport attributes.
3442 (main): Ditto.
3443
3444 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
3445 up dllimport attributes.
3446
3447 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
3448 unnecessary extern, which screws up dllimport attributes.
3449
3450 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
3451 screws up dllimport attributes.
3452
3453 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
3454 up dllimport attributes.
3455
3456 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
3457
3458 * w32bdf.c (search_file_line):
3459 (set_bdf_font_info):
3460 (seek_char):
3461 (w32_get_bdf_glyph):
3462 (w32_BDF_to_x_font): Fix compile warnings.
3463
3464 * w32menu.c: Include keyboard.h before frame.h. Fix compile
3465 warnings.
3466
3467 * w32select.c: Include keyboard.h before frame.h.
3468
3469 * w32fns.c (max): Define macro.
3470 (JOHAB_CHARSET): Define if not known.
3471 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
3472 (Fx_show_tip): Synch with X version.
3473
3474 * w32xfns.c: Include keyboard.h before frame.h.
3475
3476 * w32fns.c: Include keyboard.h before frame.h.
3477
3478 * w32term.c: Include keyboard.h before frame.h.
3479
3480 * fontset.c: Include keyboard.h before frame.h.
3481
3482 * w32inevt.c: Include keyboard.h before frame.h.
3483 (MOUSE_MOVED): Define if not known.
3484
3485 * minibuf.c: Include keyboard.h before frame.h.
3486
3487 * keyboard.c: Include keyboard.h before frame.h.
3488
3489 * indent.c: Include keyboard.h before frame.h.
3490
3491 * dispnew.c: Include keyboard.h before frame.h.
3492
3493 * buffer.c: Include keyboard.h before frame.h.
3494
3495 * alloc.c: Include keyboard.h before frame.h.
3496
3497 * print.c: Include keyboard.h before frame.h.
3498
3499 * process.c: Include keyboard.h before frame.h.
3500
3501 * scroll.c: Include keyboard.h before frame.h.
3502
3503 * sysdep.c: Include keyboard.h before frame.h.
3504
3505 * term.c: Include keyboard.h before frame.h.
3506
3507 * window.c: Include keyboard.h before frame.h.
3508
3509 * xdisp.c: Include keyboard.h before frame.h.
3510 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
3511
3512 * frame.c: Include keyboard.h before frame.h.
3513
3514 * w32heap.h: Undefine min, max.
3515
3516 * w32gui.h: Undefine min, max.
3517
3518 * unexw32.c: Change PUCHAR to PCHAR.
3519 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
3520 (relocate_offset):
3521 (get_section_info):
3522 (copy_executable_and_dump_data): Remove unnecessary static defs.
3523 (copy_executable_and_dump_data): Fix compile warnings.
3524
3525 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
3526
3527 * w32console.c (min): Define macro.
3528 (clear_frame, write_glyphs): Fix compile warning.
3529
3530 * w32proc.c (compare_env):
3531 (find_child_console): Fix compile warning.
3532
3533 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
3534 sys_errlist instead of _sys_errlist.
3535 (get_emacs_configuration_options): New function.
3536
3537 * s/ms-w32.h (sys_nerr): Provide default definition.
3538 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
3539 name with _ prepended.
3540 (NSIG): Define if not known.
3541 (get_emacs_configuration): Provide extern declaration.
3542 (get_emacs_configuration_options): Provide extern declaration.
3543 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
3544
3545 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
3546 (map_w32_filename):
3547 (read_unc_volume): Fix compile warning.
3548
3549 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
3550 definitions from being used.
3551
3552 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
3553
3554 * w32.c (unc_volume_file_attributes):
3555 (open_unc_volume): Make arg const.
3556
3557 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
3558 (read_input_waiting): Remove excess parameter.
3559
3560 * w32.c (init_environment): Call _access.
3561 (check_windows_init_file): Call _close.
3562 (init_user_info): Call _putenv.
3563 (init_environment): Call _putenv and _strdup.
3564 (init_ntproc): Reset volume info cache on startup.
3565
3566 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
3567 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
3568 cannot override the CRT malloc.
3569
3570 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
3571 (LINK_FLAGS): Append to original value of LINK_FLAGS.
3572
3573 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
3574 unless we are linking with a static CRT.
3575 (RVA_TO_PTR): Cast result to unsigned char*.
3576
3577 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
3578 (add_volume_info): Use xstrdup.
3579
25060080
SM
35802000-08-22 Stefan Monnier <monnier@cs.yale.edu>
3581
3582 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
3583 (do_completion, Fminibuffer_complete_word): Use it.
3584 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
3585 var so it can take non-boolean values.
3586
6917e6bb
GM
35872000-08-21 Gerd Moellmann <gerd@gnu.org>
3588
acb7cc89
GM
3589 * editfns.c (find_field): Formatting changes.
3590 (toplevel): Some old-style function forward declarations
3591 changed to prototypes, some new protypes added, some functions
3592 made static.
3593
3594 * lisp.h (set_time_zone_rule): Add prototype.
3595 (use_dialog_box): External declaration.
3596
0bbfdc25
GM
3597 * keyboard.c (gen_help_event): Add parameter SIZE.
3598 (kbd_buffer_events_waiting): Slightly rewritten.
3599 (clear_event): New function.
3600 (kbd_buffer_get_event): Use it, and clear the input_events of
3601 HELP_EVENTs.
3602 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
3603 don't fill the newly created array with nils.
3604 (toplevel): Convert some old-style function forward declarations
3605 to prototypes.
3606
3607 * keyboard.h (gen_help_event): Change prototype.
3608
3609 * xterm.c (XTread_socket): Change calls to gen_help_event.
3610
3611 * w32term.c (w32_read_socket): Change calls to gen_help_event.
3612
6917e6bb
GM
3613 * eval.c (Fmacroexpand): Doc fix.
3614
e5cd3d11
JR
36152000-08-20 Jason Rumney <jasonr@gnu.org>
3616
3617 * w32term.h (x_display_info_for_display): Remove as this function
3618 does not exist on W32.
3619
3620 * w32term.c (help_echo_window): New variable.
3621 (syms_of_w32term): staticpro it.
3622 (note_mode_line_highlight): Set it.
3623 (XTextExtents16): Removed as there is no equivalent on W32.
3624 (x_compute_glyph_string_overhangs): Incomplete body removed, as
3625 the X way of doing this will not work for W32.
3626 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
3627 (x_draw_image_foreground): Avoid drawing outside of the clip area
3628 when image doesn't have a mask.
3629 (note_mouse_highlight): Process overlays in the right order of
3630 priority. Set help_echo_window.
3631 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
3632 because that's more visible for large images.
3633
3634 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
3635 name to single_keymap_panes.
3636 (w32_menu_show): Set wv->title when dealing with titles.
3637 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
3638
6e69ab8c
MB
36392000-08-21 Miles Bader <miles@gnu.org>
3640
3641 * minibuf.c (do_completion): Try again if we rewrite the input
3642 string, but no completion was done, so that any completion message
3643 will be correct.
3644
511bd4eb
GM
36452000-08-20 Gerd Moellmann <gerd@gnu.org>
3646
3647 * xfaces.c (lface_equal_p): Compare strings differently.
3648 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
3649 (realize_tty_face): Use them.
3650 (syms_of_xfaces): Initialize new variables.
3651 (map_tty_color): New function, extracted from realize_tty_face.
3652 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
3653 foreground or background color, store the new color name in the
3654 realized face; previous code trying to do this had no effect.
3655 (realize_tty_face): Use map_tty_color.
3656 (Fclear_face_cache): Set face_change_count and ensure thorough
3657 redisplay.
3658
1433385f
GM
36592000-08-19 Gerd Moellmann <gerd@gnu.org>
3660
511bd4eb
GM
3661 * undo.c (record_first_change, record_marker_adjustment): Don't
3662 use XBUFFER on last_undo_buffer which might not be a buffer.
1433385f 3663
419ac0a2
KH
36642000-08-18 Kenichi Handa <handa@etl.go.jp>
3665
3666 * coding.c (decode_coding_string): Set members consumed,
3667 consumed_char, produced, produced_char of *coding correctly. If
3668 decode_coding doesn't consume any byte, don't try anymore.
3669 (encode_coding_string): Likewise.
3670
7eb9e30d
GM
36712000-08-18 Gerd Moellmann <gerd@gnu.org>
3672
511bd4eb
GM
3673 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
3674 conditional have void type, for Standard C compilers.
7eb9e30d
GM
3675
3676 * xdisp.c (redisplay_internal): Compare windows for equality with
3677 EQ, instead of applying XWINDOW to something that might not
3678 be a window.
3679
dd34a735
KH
36802000-08-18 Kenichi Handa <handa@etl.go.jp>
3681
3682 * fontset.c (Finternal_char_font): Search only the selected frame
3683 for a window of the current buffer.
3684
385ff9e3
GM
36852000-08-18 Gerd Moellmann <gerd@gnu.org>
3686
511bd4eb 3687 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
01cce3e7
GM
3688 Lisp_Objects.
3689
385ff9e3
GM
3690 * keyboard.c (kbd_buffer_get_event): Handle the case that the
3691 second half of a HELP_EVENT is found at the start of kbd_buffer.
3692
d6abb4c7
MB
36932000-08-18 Miles Bader <miles@gnu.org>
3694
4618074a
MB
3695 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
3696
d6abb4c7
MB
3697 * editfns.c (save_restriction_save): Rewrite to use markers.
3698 (save_restriction_restore): Rewrite to understand new form of data
3699 saved by save_restriction_save.
3700 (Fsave_restriction): Remove cautionary note in doc-string.
3701
a7b28523
GM
37022000-08-17 Gerd Moellmann <gerd@gnu.org>
3703
3704 * fileio.c (build_annotations): Add a comment explaining the
3705 return value of format-annotate-function. Replace a spurious call
3706 to Flength with a CONSP test. Call format-annotate-function with
3707 a fifth arg specifying how many times the function is been called
3708 in a row, to let it choose temporary buffers appropriately.
3709
03c9ed77
DL
37102000-08-17 Dave Love <fx@gnu.org>
3711
3712 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
3713 declare make_temp_name twice.
3714
3715 * lread.c: Prototype readevalloop, load_unwind,
3716 load_descriptor_unwind.
3717 (unreadpure): Give it an arg.
3718
3719 * unexalpha.c: Prototype fatal_unexec, mark_x,
3720 update_dynamic_symbols. Declare unexec as void.
3721
3722 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
3723 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
3724
3725 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
3726 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on
3727 DOUG_LEA_MALLOC.
3728
3729 * alloca.c: Use #error.
3730 [POINTER_TYPE]: Use it.
3731
3732 * eval.c (Fdefvar): Doc fix.
3733
3734 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
3735 INITIALIZE_INTERVAL.
3736
3737 * buffer.h: Avoid DECLARE_INTERVALS.
3738
3739 * config.in: Add size_t.
3740
aae41d97
EZ
37412000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
3742
3743 * w16select.c (set_clipboard_data): If there's not enough memory
3744 to put text into clipboard, return 1, as Fw16_set_clipboard_data
3745 expects. In case of other failures, return 3.
3746 (system_error_msg): New error message.
3747 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
3748 system_error_msg.
3749
65aa5e85
GM
37502000-08-16 Gerd Moellmann <gerd@gnu.org>
3751
3752 * term.c (write_glyphs): Also turn off inverse video after turning
3753 off other appearances in case TS_exit_attribute_mode is not equal
3754 to TS_end_standout_mode.
3755 (insert_glyphs): Turn inverse video on/off for each run of glyphs
3756 with the same face.
3757 (turn_off_face): Reset standout_mode only if
3758 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
3759 is equal to TS_end_standout_mode.
3760
ece23901
KH
37612000-08-16 Kenichi Handa <handa@etl.go.jp>
3762
9d7bcb2e
KH
3763 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
3764 sequence at the end of the source block.
3765
ece23901
KH
3766 * ccl.c (Fccl_program_p): Docstring modified.
3767 (Fccl_execute): Likewise.
3768 (Fccl_execute_on_string): Likewise.
3769
5e30eaa2
EZ
37702000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
3771
3772 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
3773
290602fd
KH
37742000-08-16 Kenichi Handa <handa@etl.go.jp>
3775
3776 The following changes are mainly to fix bugs of
3777 encode/decode-coding-string failing if encoding/decoding return
3778 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
3779 variable conversion_buffer.
3780
3781 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
3782 decrement dst_end to avoid buffer overflow in the later call of
3783 string_as_multibyte
3784
3785 * coding.h (conversion_buffer_size, conversion_buffer)
3786 (get_conversion_buffer): Extern deleted.
3787
3788 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
3789 (conversion_buffer, conversion_buffer_size): Variables deleted.
3790 (get_conversion_buffer): Function deleted.
3791 (struct conversion_buffer): New structure.
3792 (MAX_ALLOCA): New macro.
3793 (allocate_conversion_buffer): New macro.
3794 (extend_conversion_buffer, free_conversion_buffer): New functions.
3795 (ccl_coding_driver): Set coding->result.
3796 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
3797 this is the last block of source.
3798 (encode_coding): Likewise. Handle the source block as the last
3799 one only when the whole source text is consumed.
3800 (decode_coding_string): Handle the case that the output buffer is
3801 too small to decode the whole source text. Use
3802 allocate_conversion_buffer, extend_conversion_buffer and
3803 free_conversion_buffer, not get_conversion_buffer.
3804 (encode_coding_string): Likewise.
3805 (init_coding): Function deleted.
3806 (init_coding_once): Delete code to initialize
3807 conversion_buffer_size.
3808
3809 * emacs.c (main): Don't call init_coding.
3810
3811 * msdos.c (IT_write_glyphs): Use a locally declared
3812 conversion_buffer.
3813
3814 * term.c (write_glyphs): Use a locally declared conversion_buffer.
3815 (insert_glyphs): Likewise.
3816
3817 * w32console.c (write_glyphs): Use a locally declared
3818 conversion_buffer.
3819
b9f80d41
EZ
38202000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
3821
3822 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
3823 member of display_info is NULL.
3824
32dc52f7
GM
38252000-08-15 Gerd Moellmann <gerd@gnu.org>
3826
58ed0d3b
GM
3827 * alloc.c (compact_small_strings): Use safe_bcopy, add an
3828 assertion.
3829
32dc52f7 3830 * term.c (turn_off_face): Reset standout_mode when resetting
58ed0d3b 3831 appearances with capability `me'.
32dc52f7
GM
3832 (write_glyphs): Switch on inverse video before each face change.
3833
4eb22d33
DL
38342000-08-14 Dave Love <fx@gnu.org>
3835
3836 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
3837 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
3838 (lisp_free): Declare and make static.
3839
3840 * window.c: Fix embedded comment.
3841 (syms_of_window): Fix doc string.
3842
90cbf47e
GM
38432000-08-14 Gerd Moellmann <gerd@gnu.org>
3844
3845 * keymap.c (push_key_description): If C without modifiers is < 32,
3846 make sure to print `C-' before `M-', like in the manual.
3847
440fc135
GM
38482000-08-11 Gerd Moellmann <gerd@gnu.org>
3849
3850 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
3851 since they aren't relocated anymore.
3852 (sxhash_string): Make sure returned hash code fits in a Lisp
3853 integer.
3854
3855 * xdisp.c (try_cursor_movement): Fix handling of cursor in
3856 partially visible line which is smaller than the window's
3857 height.
3858
6e264fad
KH
38592000-08-11 Kenichi Handa <handa@etl.go.jp>
3860
3861 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
3862 the multibyte form of eight-bit-control characters.
3863 (Fccl_execute_on_string): Initialize ccl->multibyte.
3864
3865 * ccl.h (struct ccl_program): New member multibyte.
3866
3867 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
3868
c371f69a
KH
38692000-08-11 Kenichi Handa <handa@etl.go.jp>
3870
3871 * regex.c (regex_compile) <normal_char>: Pay attention to
3872 multibyteness.
3873 (analyse_first) <exactn>: Setup fastmap correctly for
3874 eight-bit-control characters.
3875
38762000-08-11 Kenichi Handa <handa@etl.go.jp>
3877
3878 * termhooks.h (enum event_kind): New member
3879 multibyte_char_keystroke.
3880
3881 * keyboard.c (make_lispy_event): Handle the new event type
3882 multibyte_char_keystroke.
3883
3884 * xterm.c: Include coding.h.
3885 (XTread_socket): Work around a bug of XmbLookupString. If the
3886 input is from XIM, decode it according to the current locale. In
3887 that case, generate multibyte_char_keystroke events.
3888
b8ddbe71
KH
38892000-08-11 Kenichi Handa <handa@etl.go.jp>
3890
3891 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
3892 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
3893
47589c8c
GM
38942000-08-10 Gerd Moellmann <gerd@gnu.org>
3895
3896 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
3897 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
3898 (move_it_in_display_line_to): Record iterator's ascent and descent
3899 before producing glyphs, and restore them when we know the glyph
3900 doesn't fit on the line.
3901 (move_it_to): Restructured so that it's easier to debug. If
3902 moving to a vpos, and not moving to an x or character position,
3903 stop as soon as the specified vpos is reached; don't move further
3904 into that line because that might change the computed line height.
3905 (try_cursor_movement): New function, extracted from the cursor
3906 movement branch of redisplay_window. If ending on a partially
3907 visible line, don't try to scroll if the cursor line is taller
3908 than the window.
3909 (redisplay_window): Use try_cursor_movement.
3910
3911 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
3912 because that function doesn't cope with variable-height lines.
3913
3914 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
3915 box cursor because that's better visible for large images.
3916
c51bacd6
MB
39172000-08-10 Miles Bader <miles@gnu.org>
3918
3919 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
3920
bea56df7
GM
39212000-08-10 Gerd Moellmann <gerd@gnu.org>
3922
3923 * xdisp.c (Vmessages_buffer_name): New variable.
3924 (message_dolog): Use it.
3925 (syms_of_xdisp): Initialize it.
3926
99cd7364
EZ
39272000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
3928
3929 * msdos.c (IT_note_mouse_highlight): Update the calls to
3930 overlays_at.
3931 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
3932 redundant now that keyboard.h is included.
3933
7d093d56
EZ
39342000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
3935
3936 * keyboard.c (kbd_buffer_events_waiting): New function.
3937
3938 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
3939
3940 * msdos.c: Include keyboard.h.
3941 (XMenuActivate): Empty no_event events from the event buffer. If
3942 no events are left after that, call clear_input_pending.
3943 (mouse_clear_clicks): New function, code moved from mouse_init.
3944 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
3945 mouse driver to ``forget'' any past clicks.
3946
3947 * Makefile.in (msdos.o): Depend on keyboard.h.
3948
41e757a6
GM
39492000-08-09 Gerd Moellmann <gerd@gnu.org>
3950
8e7bd231
GM
3951 * lisp.h (input_pending): External declaration.
3952
3953 * dispextern.h (Qredisplay_dont_pause): Declare extern.
3954
3955 * xdisp.c (echo_area_display): Display thoroughly if input is
3956 pending. Bind redisplay-dont-pause to t during the redisplay.
3957 in case input is pending.
3958
3959 * dispnew.c (Qredisplay_dont_pause): New variable.
3960 (syms_of_display): Initialize and staticpro it.
3961 (update_frame_1): Don't interrupt the display for pending input if
3962 redisplay_dont_pause is set.
3963
43028b7e
GM
3964 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
3965
41e757a6
GM
3966 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
3967
2f2174fa
KH
39682000-08-09 Miles Bader <miles@lsi.nec.co.jp>
3969
3970 * callproc.c (Fcall_process): Terminate the unwind-protect around
3971 the post-read-conversion of coding system.
3972
0a6fd67e
MB
3973 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
3974 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
3975 * buffer.h (overlays_at): Update prototype.
3976 * xdisp.c (next_overlay_change): Update call to overlays_at.
3977 * xfaces.c (face_at_buffer_position): Likewise.
3978 * textprop.c (Fget_char_property): Likewise.
3979 * xterm.c (note_mouse_highlight): Likewise.
3980
0c80756e
MB
3981 * minibuf.c (do_completion): Don't consider a simple change of
3982 case as `completion'.
3983
975f250a
KR
39842000-08-08 Ken Raeburn <raeburn@gnu.org>
3985
b347b3fd
KR
3986 * keyboard.c (syms_of_keyboard): Initialize
3987 last_point_position_buffer.
3988 * undo.c (record_delete): Make sure last_point_position_buffer is
3989 a buffer before comparing pointers.
3990
3991 * coding.h (decode_coding_string): Declare.
3992
3993 * intervals.h (Fprevious_single_char_property_change): Declare.
3994
3995 * textprop.c (Fprevious_single_char_property_change): Don't do
3996 arithmetic directly on lisp objects.
3997
25ad1371 3998 * editfns.c (find_field): Use EQ, not ==, to compare Lisp
b347b3fd
KR
3999 objects.
4000
4001 * keyboard.h (menu_item_eval_property): Declare.
4002
4003 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
4004 reuse as buffer name, instead of recreating (and discarding) every
4005 time a message is logged.
4006 (with_echo_area_buffer): Make callback arg A2 a lisp object.
25ad1371
GM
4007 (current_message_1, truncate_message_1, set_message_1)
4008 (display_echo_area_1, resize_mini_window_1): Signatures changed.
4009 (current_message, truncate_echo_area, display_echo_area)
4010 (resize_echo_area_axactly): Changed calls.
b347b3fd 4011
975f250a 4012 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
25ad1371 4013 Lisp object.
975f250a 4014 (Ffind_coding_systems_region_internal): First argument to Fappend
25ad1371 4015 must be an integer, not a Lisp object.
975f250a 4016
46dc9912
KH
40172000-08-08 Kenichi Handa <handa@etl.go.jp>
4018
4019 * charset.c (Fchar_width): Doc fix.
4020
9f6d1a6c
GM
40212000-08-08 Gerd Moellmann <gerd@gnu.org>
4022
4023 * charset.c (Fstring_width): Doc fix.
4024
ff3d9573
GM
40252000-08-07 Gerd Moellmann <gerd@gnu.org>
4026
41e757a6 4027 * xdisp.c (start_display): When starting display on a continuation
49ad1d99
GM
4028 line, clear ascent and descent members of the iterator structure;
4029 the height of the continued line does not affect the height of the
4030 continuation line.
4031 (make_cursor_line_fully_visible): Do nothing if cursor is on a
4032 line taller than the window.
4033 (redisplay_window) <forced window start>: Handle case that the
4034 middle of the window is not found in any row.
4035 (dump_glyph_row): Show more information.
4036 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
4037 first text line in a glyph matrix.
4038
4039 * xterm.c (x_draw_image_foreground): Avoid drawing outside
4040 of the clip area when image doesn't have a mask.
4041
70fc58b3
GM
4042 * fns.c (sweep_weak_table): Fix survival conditions for
4043 key-or-value and key-and-value weakness.
4044
4045 * .gdbinit (xhashtable): New command.
4046
ac0e96ee
GM
4047 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
4048 tables out of the list of all weak hash tables.
4049
ff3d9573
GM
4050 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
4051 a new buffer is created, make sure echo_area_buffer[] references
4052 the new buffer.
4053
e0d8827b
EZ
40542000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
4055
4056 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
4057 the doc string.
4058
c6f35378
KH
40592000-08-07 Kenichi Handa <handa@etl.go.jp>
4060
4061 * syntax.c (skip_chars): Fix previous change. Make the handling
4062 of unibyte string consistent with that of regex search.
4063
1fd4c450
GM
40642000-08-05 Gerd Moellmann <gerd@gnu.org>
4065
e49aa397
GM
4066 * xmenu.c (popup_get_selection): Use xfree instead of free.
4067
4068 * fileio.c (Finsert_file_contents): Use xfree instead of free.
4069
4070 * editfns.c (Ftranspose_regions): Use xfree instead of free.
4071
4072 * callproc.c (child_setup): Use xfree instead of free.
4073
4074 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
4075 instead of malloc.
4076 (run_mac_command, closedir): Use `xfree' instead of `free'.
4077
4078 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
4079
4080 * eval.c (error): Use xfree instead of free.
4081
1fd4c450
GM
4082 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
4083
4084 * fns.c: Replace `illegal' with `invalid'.
e49aa397 4085 (Fmake_hash_table, make_hash_table): Allow table size of 0.
1fd4c450 4086
82d497fc
KH
40872000-08-05 Kenichi Handa <handa@etl.go.jp>
4088
4089 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
4090 conversion.
4091
59f953a2
NF
40922000-08-04 Noah Friedman <friedman@splode.com>
4093
4094 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
4095 docstring.
4096
688351f2
GM
40972000-08-04 Gerd Moellmann <gerd@gnu.org>
4098
4099 * syntax.c (skip_chars): Fix typo in error message.
4100
2dad51cc
AS
41012000-08-04 Andreas Schwab <schwab@suse.de>
4102
4103 * m/ia64.h: Moved from s/ia64.h.
4104
99bb2c60
KH
41052000-08-04 Kenichi Handa <handa@etl.go.jp>
4106
082a1df2
KH
4107 * process.c (read_process_output): Big simplification. Handle
4108 composition and post-read-conversion of coding system correctly.
4109 (send_process): Handle composition correctly.
4110
4111 * callproc.c (Fcall_process): Handle post-read-conversion of
4112 coding system if any.
4113
99bb2c60
KH
4114 * coding.c (decode_coding_iso2022): More strict check for handling
4115 single shifting.
082a1df2
KH
4116 (coding_restore_composition): Pay attention to the case that
4117 cmp_data is not set properly (because of invalid code in the
4118 source text).
4119 (run_pre_post_conversion_on_str): Include text properties in the
4120 resulting string.
4121 (decode_coding_string): Set members of coding correctly.
99bb2c60 4122
f4988be7
GM
41232000-08-03 Gerd Moellmann <gerd@gnu.org>
4124
4125 * s/ia64.h: New file.
4126
4127 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
4128 Use NULL instead of 0 at the end of variable argument list of
4129 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
4130 sizeof (int) < sizeof (void *).
4131
4132 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
4133 of variable argument lists of XtVaGetValues and XtVaSetValues.
4134
4135 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
4136 variable argument lists of XtVaGetValues and XtVaSetValues.
4137
ead53494
GM
41382000-08-02 Gerd Moellmann <gerd@gnu.org>
4139
4140 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
4141 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
4142
4143 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
4144 prototype.
4145
4146 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
4147 in call to Fsingle_key_description.
4148
4149 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
4150 Callers changed.
4151
41522000-08-02 Colin Walters <walters@cis.ohio-state.edu>
4153
4154 * window.c (display_buffer_reuse_frames): New variable.
4155 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
4156 frames displaying BUFFER.
4157 (syms_of_window): Define Lisp variable
4158 display-buffer-reuse-frames.
4159
10b0f752
MB
41602000-08-01 Miles Bader <miles@gnu.org>
4161
4162 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
4163 when to constrain NEW_POS (they were pretty screwed up before).
4164
16425c4a
EZ
41652000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
4166
4167 * msdos.c (run_msdos_command): Save and restore the master
4168 environment, for the case that child_setup signals an error.
4169 When mirroring slashes in DOS shell commands, don't fail when
4170 argv[2] has embedded blanks.
da288c14
EZ
4171 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
4172 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
4173 (dos_ttraw): Call mouse_setup_buttons.
16425c4a
EZ
4174
4175 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
4176 using alloca; free it after run_msdos_command returns.
4177
27f73852
DL
41782000-07-27 Dave Love <fx@gnu.org>
4179
4180 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't
4181 define.
4182 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently
4183 working.
4184
4185 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
4186
c0261b5e
EZ
41872000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
4188
4189 * editfns.c (lisp_time_argument): Fix last change.
4190
b548072f
GM
41912000-07-27 Gerd Moellmann <gerd@gnu.org>
4192
3ab82477
GM
4193 * fns.c (Fdelete): Make it work on vectors and strings in addition
4194 to lists.
4195
b548072f
GM
4196 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
4197 (syms_of_fns): Initialize new variables.
4198 (sweep_weak_table): Handle weakness `key-or-value' and
4199 `key-and-value'.
4200 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
4201 weakness, with t meaning the same as `key-and-value'.
4202
91ae8751
KH
42032000-07-27 Kenichi Handa <handa@etl.go.jp>
4204
4205 * coding.h (struct coding_system): Member safe_charset deleted.
4206
4207 * coding.c (Qsafe_charsets): This variable deleted.
4208 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system): New
4209 variables.
4210 (coding_safe_chars): New function.
4211 (CODING_SAFE_CHAR_P): New macro.
4212 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
4213 checking safe_charsets member of the coding system. Caller
4214 changed.
4215 (detect_coding_iso2022): New local variable safe_chars.
4216 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
4217 safe_charsets member of the coding system.
4218 (decode_coding_iso2022): New local variable safe_chars.
4219 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
4220 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
4221 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
4222 (ENCODE_UNSAFE_CHARACTER): New macro.
4223 (encode_coding_iso2022): New local variable safe_chars. Check
4224 unsafe chars.
4225 (setup_coding_system): Delete the code to initialize
4226 coding->safe_charses
4227 (intersection, find_safe_codings): New functions.
4228 (Ffind_coding_systems_region_internal): New function.
4229 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
4230 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
4231 variable and initialize it.
4232
4233 * fns.c (char_table_ref_and_index): New function.
4234
4235 * lisp.h (char_table_ref_and_index): Add prototype.
4236
34a7a267
SS
42372000-07-26 Sam Steingold <sds@gnu.org>
4238
4239 * editfns.c (lisp_time_argument): Added third argument `usec'.
3ab82477 4240 (Ffloat_time): New built-in Lisp function.
34a7a267 4241
a95cb10a
GM
42422000-07-26 Gerd Moellmann <gerd@gnu.org>
4243
3353ef5a
GM
4244 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
4245 for the character code.
4246
4247 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
4248 GNU/Linux.
4249
a95cb10a
GM
4250 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
4251 if called for a popup menu.
4252 (xmenu_show): Store help string in widget values.
4253
b4a12321
DL
42542000-07-26 Dave Love <fx@gnu.org>
4255
4256 * syswait.h: Move some definitions.
4257 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
4258 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
4259 perspicuous definitions.
4260 (WTERMSIG): Fix bit pattern used.
4261
13f5ad37
KH
42622000-07-26 Kenichi Handa <handa@etl.go.jp>
4263
4264 * print.c (print_object): If vector printing is truncated, print
4265 "..." to indicate it as well as the case of list printing.
4266
070fe99c
GM
42672000-07-25 Gerd Moellmann <gerd@gnu.org>
4268
969065c3
GM
4269 * xdisp.c (next_element_from_display_vector): Improve comments.
4270
4271 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
4272 for the character code, and the rest for the face id as in 20.x.
4273 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
4274
4275 * window.c (window_display_table): Cleaned up.
4276
070fe99c
GM
4277 * syntax.c (Fforward_word): Add last arg nil in call of
4278 Fconstrain_to_field.
4279
bad77ef7
EZ
42802000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
4281
969065c3 4282 * fileio.c (Frename_file) [DOS_NT]: If the file names are
bad77ef7
EZ
4283 identical but for the letter-case, don't call
4284 barf_or_query_if_file_exists.
4285
c28da489
MB
42862000-07-25 Miles Bader <miles@gnu.org>
4287
4288 * editfns.c (find_field): Honor special `boundary' fields.
4289 (Qboundary): New variables.
4290 (syms_of_editfns): Initialize Qboundary.
4291 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
4292 Use scan_buffer instead of find_before_next_newline, because it
4293 allows us to detect the boundary case where there's a newline at
4294 the search limit.
4295 * lisp.h (Fconstrain_to_field): Update external declaration.
4296
e3c31fd5
GM
42972000-07-24 Gerd Moellmann <gerd@gnu.org>
4298
4299 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
4300 if that is nil.
c28da489 4301
c66c29a2
DL
43022000-07-24 Dave Love <fx@gnu.org>
4303
4304 * s/sunos4-0.h, s/sol2.h:
4305 (LIBS_TERMCAP): Move from m/sparc.h.
4306
4307 * m/sparc.h (TERMINFO): Moved to system files (probably only
4308 relevant for sunos4 judging by its vintage).
4309 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
4310 __arch64__.
4311
fbe0a958
EZ
43122000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
4313
4314 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
4315 name to single_keymap_panes.
4316
7d88e5c9
AS
43172000-07-24 Andreas Schwab <schwab@suse.de>
4318
4319 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
4320
e024b101
GM
43212000-07-24 Gerd Moellmann <gerd@gnu.org>
4322
4323 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
4324 parameters instead of using int parameters. Expect FN to accept
4325 EMACS_INT parameters.
4326 (display_echo_area, resize_echo_area_axactly, current_message)
4327 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
4328 with new argument list.
4329 (resize_mini_window_1): New callback function.
4330 (current_message_1, truncate_message_1, set_message_1): Change
4331 parameter lists to the new format expected by
4332 with_echo_area_buffer.
4333
25c1a9ce
KH
43342000-07-24 Kenichi Handa <handa@etl.go.jp>
4335
4336 * fontset.c (fontset_ref): Remove INLINE declaration.
4337 (fontset_ref_via_base): Likewise.
4338 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
4339 to downcase.
4340
7f987ac0
EZ
43412000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
4342
4343 * msdos.c (IT_note_mouse_highlight): Process overlays in the
4344 correct order of priority. If help echo was found in an overlay,
4345 use that overlay as the object in which the help echo was found.
4346
e2db3069
MB
43472000-07-22 Miles Bader <miles@gnu.org>
4348
4349 * textprop.c (Fprevious_single_char_property_change): The initial
4350 property value should be from the position preceding POSITION, not
4351 following it.
4352
5e3203e4
EZ
43532000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
4354
4355 * coding.c (syms_of_coding): Doc fix for
4356 inhibit-iso-escape-detection.
4357
62145073
GM
43582000-07-21 Gerd Moellmann <gerd@gnu.org>
4359
c20aeb83
GM
4360 * xterm.c (note_mouse_highlight): Process overlays in the right
4361 order of priority.
34a7a267 4362
743934db
GM
4363 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
4364
4365 * xterm.c (note_mouse_highlight): If help-echo was found in an
4366 overlay, use that overlay as the object in which the help was
4367 found.
4368
d1dc7e43 4369 * window.c (foreach_window_1): Fix typo reversing an if-condition.
34a7a267 4370
62145073
GM
4371 * window.c (foreach_window): Instead of a fake variable argument
4372 list, take one USER_DATA argument.
4373 (foreach_window_1): Likewise, and call callback functions with two
4374 args, the window and USER_DATA.
4375 (struct check_window_data): New struct.
4376 (check_window_containing): Use it.
4377 (window_from_coordinates): Set up a struct check_window_data for
4378 foreach_window.
4379 (add_window_to_list, freeze_window_start): Change parameters
4380 according to new calling convention.
4381
4382 * window.h (foreach_window): Change prototype.
4383
4384 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
4385
43862000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
4387
4388 * xmenu.c (menu_help_callback): Call show_help_echo with
4389 additional arguments OBJECT and POS.
4390
11270583
KH
43912000-07-21 Kenichi Handa <handa@etl.go.jp>
4392
07b14857
KH
4393 * data.c (Faset): Allow storing any multibyte character in a
4394 string. Convert unibyte string to multibyte if necessary.
4395
11270583
KH
4396 * xfns.c (x_encode_text): New function.
4397 (x_set_name): Use x_encode_text.
4398 (x_set_title): Likewise.
4399
4400 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
4401
4402 * xterm.h (x_encode_text): Add prototype.
4403
bc75b4fd
DL
44042000-07-20 Dave Love <fx@gnu.org>
4405
4406 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
4407 xfree, not free.
4408
48c14970
EZ
44092000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
4410
4411 * msdos.c (help_echo_window): New variable.
4412 (syms_of_msdos): Initialize and staticpro it.
4413 (IT_note_mode_line_highlight): Set help_echo_window.
4414 (IT_note_mouse_highlight): Ditto.
4415 (dos_rawgetc): Store help_echo_window in the second event produced
4416 for HELP_EVENTs.
4417
4418 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
4419 Record the object that generated the help echo and the position of
4420 that object in help_echo_object and help_echo_pos. Record that
4421 some glyphs in a row are displayed in mouse-face.
4422 (IT_update_begin): Don't clear mouse highlight unless one of the
4423 enabled glyph rows is marked as being displayed in mouse-face.
4424 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
4425 and position recorded in help_echo_object and help_echo_pos to the
4426 event queue.
4427 (IT_menu_display): Accept a new argument PN: the pane number of
4428 the current menu pane. Record the pane number and the item
4429 number of the item which has associated help string.
4430 (XMenuActivate): Update the prototype for help_callback in
4431 function declaration. Call IT_menu_display with the current menu
4432 pane number as an additional argument. Call help_callback with
4433 two additional arguments: the pane number and the item number of
4434 the menu item associated with the help text.
4435 (help_echo_object, help_echo_pos): New variables.
4436 (syms_of_msdos): Initialize them and staticpro help_echo_object.
4437
4438 * msdos.h (XMenuActivate): Update prototype.
4439
4279296d
GM
44402000-07-19 Gerd Moellmann <gerd@gnu.org>
4441
47db06aa
GM
4442 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
4443 Add some more prototypes.
4444
4445 * xterm.c, xterm.h: Add some more prototypes.
4446
4447 * lisp.h (Fnext_single_char_property_change): Add prototype.
4448
4449 * dispnew.c (direct_output_for_insert): Remove confusing
4450 outer local variable mouse_face_overwritten_p.
4451 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
4452
4279296d
GM
4453 * alloc.c (allocate_string_data): Don't copy old string contents.
4454
670acd62
KH
44552000-07-19 Kenichi Handa <handa@etl.go.jp>
4456
4457 * coding.c (code_convert_region): Delete text properties before
4458 shrinking the conversion region.
4459
7cea38bc
GM
44602000-07-18 Gerd Moellmann <gerd@gnu.org>
4461
dc1cac59
GM
4462 * dispnew.c (update_text_area): Write the whole row if it
4463 has mouse-face in it.
4464
85a8aca9
GM
4465 * xfaces.c (face-alternative-font-family-alist): Remove
4466 DEFVAR_LISP; staticpro instead.
4467
34a7a267 4468 * xmenu.c (menu_help_callback): Call show_help_echo with
7cea38bc
GM
4469 new arguments.
4470
4471 * keyboard.c (show_help_echo): Add parameter WINDOW.
4472 (read_char): Call show_help_echo with window extracted from Lisp
4473 help event.
4474 (gen_help_event): Add parameter WINDOW.
4475
4476 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
4477
4478 * xterm.c (help_echo_window): New variable.
4479 (note_mouse_highlight, note_tool_bar_highlight): Set
4480 help_echo_window.
4481 (XTread_socket): Pass help_echo_window to gen_help_event.
4482 (syms_of_xterm): Initialize and staticpro help_echo_window.
4483
f8276b77
DL
44842000-07-18 Dave Love <fx@gnu.org>
4485
4486 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
4487 systime.h.
4488
088831a6
GM
44892000-07-18 Gerd Moellmann <gerd@gnu.org>
4490
3d6cd763
GM
4491 * alloc.c (allocate_string_data): If string had already data
4492 assigned, copy old contents to new string data.
4493
4494 * coding.c (syms_of_coding): Fix typo in spelling of variable
4495 `inhibit-iso-escape-detection'.
4496
088831a6
GM
4497 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
4498
4499 * Makefile.in: Add dependencies on dispextern.h.
4500 (alloca.o): Don't define malloc and define EMACS_FREE instead of
4501 `free'; both can conflict with system header files.
4502
bc8a8d55
KH
45032000-07-18 Kenichi Handa <handa@etl.go.jp>
4504
4505 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
4506 undefined.
4507
069f5950
DL
45082000-07-18 Dave Love <fx@gnu.org>
4509
4510 * window.c (Fwindow_list): Declare arg `window'.
4511
aa96c820
KH
45122000-07-18 Kenichi Handa <handa@etl.go.jp>
4513
4514 * coding.c (setup_coding_system): Don't override the explicitly
4515 specified designations.
4516
06be8d32
MB
45172000-07-15 Miles Bader <miles@gnu.org>
4518
4519 * editfns.c (char_property_eq, char_property_stickiness): Renamed
4520 from `text_property_eq' and `text_property_stickiness', respectively.
4521 (find_field, Fconstrain_to_field, char_property_eq)
4522 (char_property_stickiness): Changed to call char-property functions
4523 instead of text-property-only ones.
4524
4525 * textprop.c (Fnext_single_char_property_change): Made a subr (was
4526 `next_single_char_property_change'). Do more error checking, and
4527 cleanup limit behavior.
4528 (Fprevious_single_char_property_change): New function.
4529 (syms_of_textprop): Initialize new subrs.
4530
4531 * xdisp.c (display_prop_end, invisible_text_between_p):
4532 Call Fnext_single_char_property_change instead of
4533 next_single_char_property_change.
4534
3fddcdc3
JR
45352000-07-15 Jason Rumney <jasonr@gnu.org>
4536
4537 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
4538 after menu is finished with.
4539 (add_menu_item): Only consider wv->title as a menu title.
4540 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
4541
4542 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
4543 null title.
4544 (FONT_REGEXP): Remove unused macro, and its sub-components.
4545 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
4546
4547 * w32term.c (help_echo_object, help_echo_pos): New variables.
4548 (note_mode_line_highlight): Store additional information about the
4549 help-echo in help_echo_object and help_echo_pos. Check both
4550 `local-map' and `keymap' properties for changing the cursor
4551 (note_mouse_highlight): Store additional information about the
4552 help-echo in help_echo_object and help_echo_pos.
4553 (note_tool_bar_highlight): Set help_echo_object to nil and
4554 help_echo_pos to -1.
4555 (w32_read_socket): Use gen_help_event instead of filling
4556 input_events manually.
4557 (syms_of_w32term): Staticpro help_echo_object.
4558 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
4559 set, arrange for a mouse-highlight redisplay in
4560 XTframe_up_to_date.
4561 (x_clear_mouse_face): New function.
4562 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
4563 (x_update_window_begin): No need to turn off the mouse
4564 highlight here.
4565 (show_mouse_face): Set the mouse_face_p flag of glyph rows
4566 depending on whether they contain glyphs highlighted in
4567 mouse-face.
4568 (x_fill_stretch_glyph_string): Consume runs of stretch
4569 glyphs instead of a single one.
4570 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
4571 with new argument list.
4572 (x_set_glyph_string_gc): Make sure the face's GC is valid.
4573 (x_append_glyph, x_append_composite_glyph)
4574 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
4575 changes in struct glyph starting 1999-12-27. See comments for
4576 xterm.c on 2000-07-05.
4577
178c5d9c
SS
45782000-07-14 Sam Steingold <sds@gnu.org>
4579
4580 * xfaces.c (realize_x_face): Fix the last patch:
4581 check `default_face' before dereferencing.
4582
6fe533f6
DL
45832000-07-14 Dave Love <fx@gnu.org>
4584
069f5950 4585 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 4586
dd7b81cf
KH
45872000-07-14 Kenichi Handa <handa@etl.go.jp>
4588
0693904a 4589 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 4590 default_face's fontset, not using the default fontset.
0693904a 4591
dd7b81cf
KH
4592 * coding.c (inhibit_iso_escape_detection): New variable.
4593 (syms_of_coding): Make it a Lisp variable.
4594 (detect_coding_iso2022): If inhibit_iso_escape_detection is
4595 nonzero, ignore ISO2022's escape sequence.
4596
d5aa31d8
GM
45972000-07-14 Gerd Moellmann <gerd@gnu.org>
4598
e5acf0ca
GM
4599 * alloca.c (malloc) [emacs]: Define as xmalloc.
4600
bd23a692
GM
4601 * xfns.c (Fx_show_tip): If frame parameters contain a position,
4602 use that instead of the mouse position. Add parameters DX and DY.
4603
4604 * dispextern.h (Fx_show_tip): Adjust number of parameters
4605 in prototype.
4606
9662da0b
GM
4607 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
4608 if HELP is a function, call it with OBJECT and POS as parameters
4609 to get the help to display.
4610 (gen_help_event, kbd_buffer_store_help_event): New functions.
4611 (kbd_buffer_get_event): Construct the Lisp help-event differently.
4612 (read_char): Call show_help_echo with new parameters.
4613
178c5d9c 4614 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
4615 Add prototypes.
4616
4617 * xterm.c (help_echo_object, help_echo_pos): New variables.
4618 (note_mode_line_highlight): Store additional information about the
4619 help-echo in help_echo_object and help_echo_pos. Check both
4620 `local-map' and `keymap' properties for changing the cursor
4621 (note_mouse_highlight): Store additional information about the
4622 help-echo in help_echo_object and help_echo_pos.
4623 (note_tool_bar_highlight): Set help_echo_object to nil and
4624 help_echo_pos to -1.
4625 (XTread_socket): Use gen_help_event instead of filling
4626 input_events manually.
4627 (syms_of_xterm): Staticpro help_echo_object.
4628
4629 * xmenu.c (menu_highlight_callback): Use
4630 kbd_buffer_store_help_event instead of setting up and input_event
4631 structure manually.
4632
4633 * xdisp.c (eval_form): GCPRO argument sexpr.
4634 (call_function): New function.
4635 (handle_single_display_prop): Use call_function and FUNCTIONP
4636 instead of checking whether if font_height is a symbol and
4637 using eval_form.
4638
4639 * eval.c (internal_condition_case_2): New function.
4640
4641 * lisp.h (FUNCTIONP): New macro.
4642 (internal_condition_case_2, call_function): Add prototypes.
4643
d5aa31d8
GM
4644 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
4645 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
4646 Always set `arg' member of input_events.
4647 (construct_menu_click): Unused function removed.
4648
4649 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
4650
4651 * w32term.c (construct_mouse_click, construct_mouse_wheel)
4652 (construct_drag_n_drop, x_scroll_bar_handle_click)
4653 (w32_read_socket): Always set `arg' member of input_events.
4654
4655 * keyboard.c (show_help_echo): Use eval_form. Add comment.
4656
4657 * lisp.h (eval_form): Add prototype.
4658
4659 * xdisp.c (eval_form): Make it externally visible.
4660
0f1a9b23
GM
46612000-07-13 Gerd Moellmann <gerd@gnu.org>
4662
4663 * xterm.c (x_handle_tool_bar_click): Store the frame in the
4664 frame_or_window slot of TOOL_BAR_EVENT input events instead of
4665 consing. For prefix events, store the frame in the `arg' slot of
4666 the event, otherwise store the key there.
4667 (XTread_socket): Instead of consing, use the frame_or_window slot
4668 of HELP_EVENTs for the frame, and the `arg' slot for the help
4669 string.
4670
4671 * xmenu.c (menu_highlight_callback): Store help string in the
4672 `arg' member of the input event; don't cons.
4673 (menubar_selection_callback): Use the `arg' slot of input events
4674 to queue additional information, instead of consing.
4675
4676 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
4677
4678 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
4679 TOOL_BAR_EVENTs.
4680 (w32_read_socket): Adapt to changes in HELP_EVENTs.
4681
4682 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
4683 input events to queue additional information, instead of consing.
4684
4685 * keyboard.c (kbd_buffer_gcpro): Renamed from
4686 kbd_buffer_frame_or_window. Now used for all Lisp objects
4687 referenced from the input queue.
4688 (kbd_buffer_store_event): Always use structure assignment for
4689 copying input events. Record all Lisp objects referenced from
4690 events in kbd_buffer_gcpro.
4691 (kbd_buffer_get_event): Construct Lisp `help-echo' events
4692 differently from input events. Test for prefix menu_bar_events
4693 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
4694 event in kbd_buffer_gcpro to nil.
4695 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
4696 frame_or_window is equal to its arg member as prefix events.
4697 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
4698 used by an input event to nil.
4699 (init_keyboard): Use two times the size of the input queue
4700 for kbd_buffer_gcpro.
4701 (syms_of_keyboard): Likewise.
4702
4703 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
4704 USER_SIGNAL_EVENT.
4705
4706 * termhooks.h (struct input_event): Add member `arg'.
4707 (MENU_BAR_EVENT): Renamed from menu_bar_event.
4708 (USER_SIGNAL_EVENT): Renamed from user_signal.
4709
4710 * xfaces.c (ASET): Remove definition.
4711
4712 * lisp.h (AREF, ASET, ASIZE): New macros.
4713
4714 * fontset.c (AREF, ASIZE): Remove definitions.
4715
4716 * fns.c (AREF): Remove definition.
178c5d9c 4717
0f1a9b23
GM
4718 * composite.c (AREF): Remove definition.
4719
712eaef2
GM
47202000-07-12 Gerd Moellmann <gerd@gnu.org>
4721
d8ee7803
GM
4722 * dispnew.c (redraw_overlapped_rows): Add missing local.
4723 (scrolling_window): Remove debug code.
4724
712eaef2
GM
4725 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
4726 Before scrolling, turn off a mouse-highlight in the window
4727 being scrolled.
4728
4729 * xterm.c (x_update_window_end): Add parameter
4730 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
4731 redisplay in XTframe_up_to_date.
4732 (x_clear_mouse_face): New function.
4733 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
4734
4735 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
4736 current glyph row.
4737 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
4738 it when any row is written to that contains glyphs highlighted in
4739 mouse-face.
4740 (update_window): Call the window update end hook with new
4741 parameter MOUSE_FACE_OVERWRITTEN_P.
4742 (direct_output_for_insert): Give up if row contains mouse-face.
4743
4744 * dispextern.h (struct redisplay_interface): Add parameter
4745 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
4746 (clear_mouse_face): New function pointer member.
4747
02010917
SM
47482000-07-11 Stefan Monnier <monnier@cs.yale.edu>
4749
4750 * syntax.c (back_comment): Use one switch rather than a few `if's.
4751 Obey open_paren_in_column_0_is_defun_start.
4752 When reverting to the `slow' method, try to nicely handle the case
4753 of nested comments by checking that the comment-starter we found
4754 does indeed match the comment-ender.
4755 (scan_sexps_forward, scan_sexps_forward):
4756 Ignore excessive opening parenthesis rather than throwing an error.
4757
d76c03ea
GM
47582000-07-11 Gerd Moellmann <gerd@gnu.org>
4759
4760 * doc.c (Fsubstitute_command_keys): Handle case that a GC
4761 in Fwhere_is_internal or get_keymap_1 relocates string contents.
4762
4763 * dispnew.c (direct_output_forward_char): Give up if currently
4764 displaying a message instead of the minibuffer contents.
4765
4766 * xterm.c (x_update_window_begin): No need to turn off the mouse
4767 highlight here.
4768 (show_mouse_face): Set the mouse_face_p flag of glyph rows
4769 depending on whether they contain glyphs highlighted in
4770 mouse-face.
4771
4772 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
4773 compare the mouse_face_p flags of both rows.
4774
4775 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
4776
d55ead18
EZ
47772000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
4778
4779 * keyboard.c (show_help_echo): Accept additional parameter
4780 ok_to_overwrite_keystroke_echo.
4781 (read_char): Call show_help_echo with a zero
4782 ok_to_overwrite_keystroke_echo argument.
4783 * keyboard.h (show_help_echo): Update prototype of
4784 show_help_echo.
4785 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
4786 ok_to_overwrite_keystroke_echo argument.
4787 * w32menu.c (w32_menu_display_help): Call show_help_echo with
4788 non-zero ok_to_overwrite_keystroke_echo argument.
4789
df75b1a3
GM
47902000-07-10 Gerd Moellmann <gerd@gnu.org>
4791
4b92c49a
GM
4792 * xdisp.c (try_window_id): If changes are all below what is
4793 displayed in the window, and point is in the window, we still
4794 might have to find point on the display.
4795
4796 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
4797 glyphs instead of a single one.
4798 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
4799 with new argument list.
4800 (x_set_glyph_string_gc): Make sure the face's GC is valid.
4801
df75b1a3
GM
4802 * keymap.c (get_keymap_1): Add comment that this function can GC.
4803 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
4804 comment that functions can GC.
4805 (Fset_keymap_parent): GCPRO arg KEYMAP.
4806
4314cf3e
EZ
48072000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
4808
4809 * msdos.c (XMenuActivate): After exiting the menu, restore the
4810 echo area message and erase it.
4811
ab49ce15
KH
48122000-07-10 Kenichi Handa <handa@etl.go.jp>
4813
4814 * fontset.c (Ffontset_info): Make the return value more compatible
4815 with that of Emacs 20.
4816
090a072f
GM
48172000-07-07 Gerd Moellmann <gerd@gnu.org>
4818
4819 * eval.c (Fsignal): Handle case that backtrace_list is null.
4820
f92de4a6
KH
48212000-07-07 Kenichi Handa <handa@etl.go.jp>
4822
4823 * ccl.c (Fccl_execute): Typo fixed.
4824
dd8888a1
GM
48252000-07-06 Gerd Moellmann <gerd@gnu.org>
4826
e5c81191 4827 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 4828
dd8888a1
GM
4829 * window.c (Fwindow_list): Reverse list at the end.
4830 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
4831 means allow windows on OWINDOW's frame, only.
4832 (window_loop): Simplified; use Fwindow_list.
4833
4834 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
4835
485266d0
GM
48362000-07-05 Gerd Moellmann <gerd@gnu.org>
4837
4838 * xterm.c (XTread_socket): Increment handling_signal at the start,
4839 decrement it at the end.
4840
4841 * eval.c (handling_signal): New variable.
4842 (Fsignal): Abort if handling_signal is non-zero.
4843
4844 * lisp.h (handling_signal): External declaration.
178c5d9c 4845
485266d0
GM
4846 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
4847
80fcd514
KR
48482000-07-05 Ken Raeburn <raeburn@gnu.org>
4849
4850 Sound support for NetBSD through "Linux emulation" support:
4851 * config.in (HAVE_SOUNDCARD_H): Undef.
4852 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
4853 * Makefile.in (LIBSOUND): New variable.
4854 (LIBES): Include it.
4855 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
4856 <soundcard.h>.
4857 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
4858 elsewhere.
4859 (vox_open): Use DEFAULT_SOUND_DEVICE.
4860 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
4861
d5c5cddd
GM
48622000-07-05 Gerd Moellmann <gerd@gnu.org>
4863
4864 * print.c (print_error_message): If Vsignaling_function is set,
4865 show it in *Messages*.
4866
4867 * lisp.h (Vsignaling_function): External declaration.
4868
4869 * eval.c (Vsignaling_function): New variable.
4870 (Fsignal): Compute it.
4871 (syms_of_eval): Staticpro it.
4872
65171e3a
DL
48732000-07-05 Dave Love <fx@gnu.org>
4874
4875 * syswait.h: Use the autoconf recommended approach. Old code
4876 #if'd out in case we need to revert.
4877
178c5d9c 4878 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 4879
e2c46326
AI
48802000-07-05 Andrew Innes <andrewi@gnu.org>
4881
4882 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
4883 when non-NULL instead of __morecore, to take account of buffer
4884 memory. This also solves a problem with spurious memory warnings
4885 on Windows.
4886
4887 * ralloc.c: Make real_morecore non-static.
4888
4889 * eval.c (internal_condition_case): Comment out abort if
4890 interrupt_input_blocked is not zero.
4891
4892 * makefile.nt: Add support for `bootstrap' and related targets.
4893 Include minimal debug info in emacs.exe in release build.
4894 Remove all dependencies on lisp.h, and fixup some others.
4895
4896 * w32.c (init_environment): Install code from 20.7 for providing
4897 default values for environment variables, based on the
4898 executable's own location.
4899 (map_w32_filename): Handle filenames that are longer than
4900 MAX_PATH.
4901 (sys_socket): Install socket inheritance bug fix from 20.7.
4902
4903 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
4904 here via blockinput.h).
4905
a027a91b
SM
49062000-07-05 Stefan Monnier <monnier@cs.yale.edu>
4907
e4b31601
SM
4908 * w32menu.c (w32_menu_display_help):
4909 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
4910
4911 * keyboard.h (show_help_echo): Declare.
4912
4913 * keyboard.c (show_help_echo): New function, extracted from read_char.
4914 Feval its `msg' argument if it's a cons cell.
4915 (read_char): Use it.
4cf8d9d5 4916 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 4917
178c5d9c 4918 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 4919 (note_tool_bar_highlight, XTread_socket):
178c5d9c 4920 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
4921 (dos_rawgetc):
4922 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
4923 (note_tool_bar_highlight, w32_read_socket):
4924 Do not gratuitously ignore non-string `help-echo' properties.
4925
88d75730
GM
49262000-07-05 Gerd Moellmann <gerd@gnu.org>
4927
969f7e79
GM
4928 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
4929
71201b00
GM
4930 * window.c (delete_all_subwindows): Reset Vwindow_list.
4931
88d75730
GM
4932 * xterm.c (x_append_glyph, x_append_composite_glyph)
4933 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
4934 changes in struct glyph starting 1999-12-27. Some bit-fields of
4935 struct glyph were not set, which made glyphs unequal when compared
4936 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
4937 effects were the result. This also depended on the contents of
4938 memory returned by xmalloc. If flickering happens again, activate
4939 the code in clear_glyph_row that's in #if 0. If the flickering is
4940 gone with that, chances are that it is caused by something
4941 similar.
4942
4943 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 4944
88d75730
GM
4945 * dispextern.h: Add some comments.
4946
4947 * window.c (add_window_to_list): Add parameter LIST.
4948 (window_list): Order list so that, for each frame, windows are
4949 in canonical order, and so that frames appear in the list in
4950 the order given by Vframe_list.
4951 (next_window): Reverse the handling of NEXT_P.
4952
53654733
GM
49532000-07-04 Gerd Moellmann <gerd@gnu.org>
4954
87efd256
GM
4955 * window.c (Vwindow_list): New variable.
4956 (make_window, delete_window): Set Vwindow_list to nil.
4957 (check_window_containing): New function.
4958 (window_from_coordinates): Rewritten.
4959 (add_window_to_list, window_list, candidate_window_p)
4960 (decode_next_window_args, next_window): New functions.
4961 (Fnext_window, Fprevious_window): Rewritten in terms of
4962 next_window.
4963 (Fwindow_list): New function.
4964 (Fother_window): Cleaned up.
4965 (foreach_window): Add a longer "variable argument list". Let
4966 callback function return 0 to indicate that cycling over windows
4967 should stop.
4968 (foreach_window_1): Likewise.
4969 (freeze_window_start): Return int.
4970 (init_window): New function.
4971 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
4972
4973 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
4974 input_event with bzero.
4975 (main): Call init_window.
4976
53654733
GM
4977 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
4978 a menu filter.
4979
4a8c194f
KH
49802000-07-04 Kenichi Handa <handa@etl.go.jp>
4981
4982 * composite.h (make_composition_value_copy): Extern it.
4983
4984 * composite.c (make_composition_value_copy): New function.
4985
4986 * editfns.c (Fformat): While copying text properties, make each
4987 composition property value a copy.
4988
4989 * fns.c (concat): While copying text properties, make each
4990 composition property value a copy.
4991
831a6cb0
GM
49922000-07-03 Gerd Moellmann <gerd@gnu.org>
4993
2f516940
GM
4994 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
4995
178c5d9c 4996 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
4997 marked already.
4998
831a6cb0
GM
4999 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
5000 include those frames as candidates which have their focus
5001 redirected to the minibuffer frame.
5002
d9c4f922
SM
50032000-07-03 Stefan Monnier <monnier@cs.yale.edu>
5004
5005 * fns.c (Fputhash): Return `value' rather than nil.
5006
3780bc22
GM
50072000-06-30 Gerd Moellmann <gerd@gnu.org>
5008
97d176db
GM
5009 * frame.c (next_frame): Don't check focus redirection in case
5010 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
5011 unless their focus is redirected, which contradicts the
5012 specification of next-frame, and leads to infinite loops in
5013 certain situations when cycling through windows with next-window.
5014
dca9961d
KH
50152000-06-30 Kenichi Handa <handa@etl.go.jp>
5016
5017 * coding.c (code_convert_region): Even if the length of text is
5018 zero, try to convert it if coding->type is coding_type_ccl.
5019 (decode_coding_string, encode_coding_string): Likewise.
5020
d5483ab1
GM
50212000-06-28 Gerd Moellmann <gerd@gnu.org>
5022
af5c25e1 5023 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 5024 the display if windows_or_buffers_changed.
af5c25e1
GM
5025
5026 * dispnew.c (struct row_entry): New structure.
5027 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
5028 (row_table_size, old_lines, new_lines, old_lines_size)
5029 (new_lines_size, run_pool, runs_size, runs): New variables.
5030 (add_row_entry): New function.
5031 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 5032 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
5033 holding them in local variables. Use a larger hash table whose
5034 size depends on glyph matrix sizes. Don't use bzero to clear the
5035 hash table; instead, clear used slots only.
5036
5037 * fns.c (next_almost_prime): Make it externally visible.
5038
5039 * lisp.h (next_almost_prime): Add prototype.
5040
d5483ab1
GM
5041 * s/isc4-0.h (sigunblock): Define.
5042
5043 * s/sco5.h (sigunblock): Define.
5044
93e40f40
DL
50452000-06-27 Dave Love <fx@gnu.org>
5046
5047 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
5048 (moved to osf5-0.h).
5049 [!NOT_C_CODE]: Protect string.h stuff.
5050
5051 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
5052 (sys_siglist, NSIG): Definitions moved here from osf1.h.
5053
3c4b7685
GM
50542000-06-27 Gerd Moellmann <gerd@gnu.org>
5055
97d176db 5056 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
5057 below the last line from the needed window height.
5058
32cad0aa
SM
50592000-06-26 Stefan Monnier <monnier@cs.yale.edu>
5060
5061 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
5062 (Fwidget_get): Use it.
5063 (syms_of_fns): Defsubr it.
5064
2c69ced2
GM
50652000-06-26 Gerd Moellmann <gerd@gnu.org>
5066
178c5d9c 5067 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
5068 display info for XIM.
5069 (xim_open_dpy): Likewise.
5070 (xim_close_dpy): Don't free the display info's XIM.
5071
5072 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
5073
5074 * config.in (USE_XIM): New define.
5075
3fc720e4
GM
5076 * keymap.c (get_keyelt): For menu-items containing a `:filter
5077 FILTER', apply FILTER to the menu-item's definition to get the
5078 real definition to use.
5079
5080 * lisp.h (QCfilter): External declaration.
5081
2c69ced2
GM
5082 * xfns.c (Fimage_size): New function.
5083 (syms_of_xfns): Defsubr it.
5084
f978b2a2
AS
50852000-06-26 Andreas Schwab <schwab@suse.de>
5086
5087 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
5088 Fstring_as_unibyte.
5089
94cc7892
DL
50902000-06-25 Dave Love <fx@gnu.org>
5091
5092 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
5093 tgetnum.
5094
5095 * Makefile.in (blockinput.h): Depend on atimer.h.
5096 (atimer.h): Depend on systime.h.
5097
5098 * blockinput.h: Protect against multiple inclusion. Include
5099 atimer.h.
5100
5101 * atimer.h: Protect against multiple inclusion. Include
5102 systime.h.
5103
5104 * lisp.h (swap_in_global_binding): Declare.
5105
b8c24556
KR
51062000-06-24 Ken Raeburn <raeburn@gnu.org>
5107
5108 * process.c (Fopen_network_stream): Turn off atimers for duration
5109 of call to connect. (Patch from Gerd.)
5110
8cf8560b
DL
51112000-06-23 Dave Love <fx@gnu.org>
5112
511c7541
DL
5113 * ralloc.c: Maybe include unistd.h
5114
8cf8560b
DL
5115 * emacs.c (setgrp): Undefine before defining.
5116 (malloc_warning, set_time_zone_rule, index): Prototype.
5117
5118 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
5119 HAVE_STRUCT_TIMEZONE.
5120
5121 * s/osf1.h: Move string.h hack here from alpha.h and make it
5122 conditional.
5123 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
5124 _XOPEN_SOURCE.
5125 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
5126 (SOCKLEN_TYPE): Don't define.
5127
5128 * m/alpha.h: Remove string.h hack.
5129
5130 * s/osf5-0.h: New file.
5131
5132 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
5133 include time.h, done by systime.h.
5134 [__FreeBSD__]: Remove redundant includes.
5135
3fc720e4 5136 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
5137 (delete_temp_file): Return Qnil to avoid warning.
5138
5139 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
5140
5141 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
5142 HAVE_X_WINDOWS.
5143
5144 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
5145
5146 * composite.h (compose_text): Declare.
5147
5148 * xterm.c: Don't include sys/types.h unconditionally. Don't
5149 protect its inclusion with !USG (following xmenu.c).
5150
ea055732
GM
51512000-06-23 Gerd Moellmann <gerd@gnu.org>
5152
5153 * xfns.c (x_create_tip_frame): Initialize frame's colors like
5154 in x_create_frame.
5155
74b01b80
EZ
51562000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
5157
5158 * coding.c (decode_eol_post_ccl): Special handling for undecided
5159 and inconsistent EOL types.
5160
64f3a166
GM
51612000-06-22 Gerd Moellmann <gerd@gnu.org>
5162
16cf31f7
GM
5163 * xrdb.c (x_load_resources): Add default resource for scroll bar's
5164 trough color and main window's background color.
5165
178c5d9c 5166 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
5167 differently.
5168
5169 * xterm.h (Xt_app_con): External declaration.
5170
5171 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 5172
486a103d
GM
5173 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
5174
64f3a166
GM
5175 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
5176 (handle_invisible_prop): Record the start of invisible text in
5177 it->add_overlay_start.
5178 (struct overlay_entry): Add member `overlay'.
5179 (handle_overlay_change): Simplify.
5180 (next_overlay_string): After having processed overlay strings at the
5181 end of the buffer, record that fact in
5182 it->overlay_strings_at_end_processed_p.
5183 (compare_overlay_entries): If before- and after-strings come
5184 from the same overlay, let before-strings come first.
5185 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
5186 (load_overlay_strings): Take it->add_overlay_start into account
5187 when adding overlay strings.
5188
5189 * dispextern.h (struct it): Add member add_overlay_start.
5190
bb746ea6
DL
51912000-06-22 Dave Love <fx@gnu.org>
5192
5193 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
5194
5195 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
5196
a8f573f3
KH
51972000-06-22 Kenichi Handa <handa@etl.go.jp>
5198
5199 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
5200 is greater than 0.
5201
9f2bbc92
DL
52022000-06-21 Dave Love <fx@gnu.org>
5203
178c5d9c 5204 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 5205
3ee5041c
SM
52062000-06-21 Stefan Monnier <monnier@cs.yale.edu>
5207
5208 * syntax.c (back_comment): Simplify string-parity counting (with
5209 the added benefit of handling multiple string-styles as long as
5210 they are not intertwined).
5211 Jump to the slow code as soon as a comment starter is found in
5212 a "string_lossage" position. Fixes the case: " /* " /* " */.
5213
4c343001
DL
52142000-06-21 Dave Love <fx@gnu.org>
5215
5216 * Makefile.in: Use GETLOADAVG_LIBS.
5217
5218 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
5219 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
5220
e6365855
SM
52212000-06-20 Stefan Monnier <monnier@cs.yale.edu>
5222
5223 * syntax.c (describe_syntax): Recognize the `n'estable bit.
5224 (Fforward_comment, scan_lists):
5225 Check the comstyle of single-char comment-starters.
5226 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
5227 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
5228 Check the comstyle of single-char comment-starters.
5229 Clarify control-flow around the Scomment case.
e6365855 5230
5700d2cc
DL
52312000-06-20 Dave Love <fx@gnu.org>
5232
d355bd8a
SM
5233 * fns.c (make_hash_table, maybe_resize_hash_table):
5234 Cast arg of next_almost_prime.
5700d2cc 5235
178c5d9c 5236 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
5237
5238 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
5239 and unistd.h.
5240
4a27bdfb
GM
52412000-06-20 Gerd Moellmann <gerd@gnu.org>
5242
a61d762c
GM
5243 * keyboard.c (adjust_point_for_property): Check if display
5244 property should be treated as intangible by looking at its
5245 value.
5246
178c5d9c 5247 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
5248 (display_prop_intangible_p): New functions.
5249
5250 * dispextern.h (display_prop_intangible_p): Add prototype.
5251
5252 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 5253
4a27bdfb
GM
5254 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
5255 argument to sigprocmask.
5256
5257 * s/sco5.h (sigblock): Redefined to pass a pointer as second
5258 argument to sigprocmask.
5259
5260 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
5261 sigprocmask_set, and pass a pointer to it to sigprocmask.
5262
5263 * sysdep.c (sigprocmask_set): New variable.
5264
5265 * fileio.c (make_temp_name): Don't use `%s' in string passed to
5266 report_file_error.
5267
427ec082
SS
52682000-06-20 Sam Steingold <sds@gnu.org>
5269
5270 * xrdb.c: Don't declare xmalloc, xrealloc.
5271
8972fe79 52722000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
5273
5274 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
5275 (re_comp): Cast gettext return value to avoid complaints when
5276 !HAVE_LIBINTL.
5277
074b6efe
DL
52782000-06-20 Dave Love <fx@gnu.org>
5279
f85c008a
DL
5280 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
5281 HAVE_GETTIMEOFDAY.
5282
5700d2cc 5283 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 5284
d355bd8a 5285 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
5286
5287 * m/alpha.h: Don't declare xmalloc, xrealloc.
5288
0af4f205
DL
5289 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
5290
5291 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
5292
5293 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
5294
5295 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
5296 HAVE_GETWD.
5297
074b6efe
DL
5298 * keyboard.h (poll_for_input_1): Declare.
5299
5300 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
5301
5302 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
5303
5304 * doprnt.c: Don't declare xmalloc, xrealloc.
5305
5306 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
5307 (getenv, ctime, getwd): Removed.
5308 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
5309
5310 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
5311 x_set_tool_bar_lines.
5312
5313 * config.in: Add HAVE_GETWD. Move some definitions above
5314 machine/system includes.
5315
68a5e97b
KH
53162000-06-20 Kenichi Handa <handa@etl.go.jp>
5317
95417e1e
KH
5318 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
5319
68a5e97b
KH
5320 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
5321 contain information about ENCODING.
5322
5323 * fontset.c (FONTSET_ASCII): Use the first element of char table
5324 for an ASCII font, not defalt slot.
5325 (fontset_ref_via_base): If FONTSET doesn't contain information for
5326 C, try the default fontset.
5327 (make_fontset): Don't copy the default fontset.
5328 (fontset_font_pattern): Likewise.
5329 (accumulate_font_info): If ELT is nil, use the corresponding
5330 element in the default fontset.
5331
3b4fa1b2
DL
53322000-06-19 Dave Love <fx@gnu.org>
5333
943e731c
DL
5334 * syntax.c (Fparse_partial_sexp): Doc fix.
5335
5336 * regex.h: Test PROTOTYPES as well as __STDC__.
5337
3b4fa1b2
DL
5338 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
5339 errno, strerror. Put text after #endif in comment.
5340
5341 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
5342 pcc).
5343
5344 * xterm.c (x_frame_of_widget): Likewise.
5345
cdf0357b
GM
53462000-06-19 Gerd Moellmann <gerd@gnu.org>
5347
5348 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
5349 to Vfundamental_mode_abbrev_table.
5350
5351 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
5352 bogus objects are marked. This slows down GC by ~80 percent, but
5353 it might be worth trying when debugging GC-related problems.
5354 This feature requires conservative stack marking to be enabled.
5355
5356 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
5357 returns XLookupChars, reset `modifiers' to zero.
5358
998e9f8c
DL
53592000-06-19 Dave Love <fx@gnu.org>
5360
5361 * mktime.c: Unprotoized.
5362
18e21ce8 53632000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
5364
5365 * data.c (set_internal): If variable is frame-local,
5366 store the new value immediately into the frame parameter alist.
5367
140c4ac6
KR
53682000-06-19 Ken Raeburn <raeburn@gnu.org>
5369
14358466
KR
5370 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
5371 in the custom handler pointer.
5372
140c4ac6
KR
5373 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
5374 value, or checks for CHAR_META can fail when Lisp_Object is a
5375 union type.
5376 * keymap.c (get_keyelt): Likewise.
5377
10d7bf84
KH
53782000-06-19 Kenichi Handa <handa@etl.go.jp>
5379
5380 * ccl.h (struct ccl_program): New member eol_type.
5381 (struct ccl_spec): New member cr_carryover.
5382
5383 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
5384 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
5385
5386 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
5387 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
5388 (decode_eol_post_ccl): New function.
5389 (decode_coding): Don't detect EOL format here for CCL based coding
5390 systems.
5391 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
5392 decode_eol_post_ccl after running the CCL program.
5393 (code_convert_region): Don't detect EOL format here for CCL based
5394 coding systems.
5395 (decode_coding_string): Likewise.
5396
52e386c2
KR
53972000-06-18 Ken Raeburn <raeburn@gnu.org>
5398
5399 * charset.c (update_charset_table): Use XINT on "iso_final_char"
5400 when treating it as an integer.
5401
5402 * coding.h (encode_coding_string): Declare.
5403
5404 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
5405 it as an integer.
5406
5407 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
5408 "xkeymap" to avoid shadowing the "enum map_type" value that needs
5409 to be passed to get_local_map.
5410
5411 * sound.c (Fplay_sound): Don't call make_number on
5412 Frun_hook_with_args count argument.
5413
5414 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
5415 for lisp objects in X event structure data field, when lisp
5416 objects are represented with unions.
5417 (x_scroll_bar_to_input_event): Ditto.
5418
b357b9d4
KR
54192000-06-16 Ken Raeburn <raeburn@gnu.org>
5420
5421 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
5422 termination of string. Fix sense of test whether
5423 Vline_number_display_limit is an integer.
b357b9d4 5424
a871441d
GM
54252000-06-16 Gerd Moellmann <gerd@gnu.org>
5426
a9021acd
GM
5427 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
5428 only if HAVE_X_WINDOWS.
5429
6344985d
GM
5430 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
5431 of titles.
5432
427ec082 5433 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
5434 out of bounds.
5435
228b083e
EZ
54362000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
5437
5438 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
5439 of its headers.
5440
c25b53a2
KH
54412000-06-15 Kenichi Handa <handa@etl.go.jp>
5442
5443 * coding.c (decode_coding_emacs_mule): Always set src_base at the
5444 start of the while loop.
5445
a6981b11
GM
54462000-06-15 Gerd Moellmann <gerd@gnu.org>
5447
e9924e52
GM
5448 * atimer.c (alarm_signal_handler): Add forward declaration.
5449
a6981b11
GM
5450 * data.c (set_internal): Remove debug code.
5451
25fa6deb
GM
54522000-06-14 Gerd Moellmann <gerd@gnu.org>
5453
dce6b995
GM
5454 * Makefile.in (bootstrap-temacs): Add `-I../src'.
5455
9f817ea4
GM
5456 * unexec.c (toplevel) [COFF]: Include coff.h.
5457
5458 * s/lynxos.h: New file.
5459
5460 * keymap.c (Fsingle_key_description): Enclose function key and
5461 event symbol names in angle brackets.
5462
8a4e3c0c
GM
5463 * xdisp.c (setup_echo_area_for_printing): Call
5464 message_log_maybe_newline if message_buf_print is not set.
5465
5466 * print.c (printchar, strout): Don't check message_buf_print
427ec082 5467 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
5468 function does something useful even when message_buf_print is
5469 already set.
5470
25fa6deb
GM
5471 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
5472 variables.
5473 (ensure_echo_area_buffers): Initialize echo buffer's
5474 truncate lines setting to nil.
5475 (with_echo_area_buffer): Don't set the echo buffer's truncate
5476 lines setting here.
8a4e3c0c 5477 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
5478 of message_truncate_lines.
5479 (resize_mini_window): Handle case that lines are truncated.
5480 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
5481 message-truncate-lines.
5482
5483 * keyboard.c (read_char): Bind message-truncate-lines to t
5484 while displaying a help-echo.
5485
5486 * lisp.h (Qmessage_truncate_lines): External declaration.
5487
163dcff3
GM
54882000-06-13 Gerd Moellmann <gerd@gnu.org>
5489
1681ead6
GM
5490 * xdisp.c (Vline_number_display_limit): Renamed from
5491 line_number_display_limit.
5492 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
5493 Extend documentation string. Initialize
5494 Vline_number_display_limit to nil meaning no limit.
5495 (decode_mode_spec): Use Vline_number_display_limit with its new
5496 meaning.
5497
163dcff3
GM
5498 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
5499
18e21ce8 55002000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
5501
5502 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 5503
163dcff3
GM
5504 * xfns.c (x_set_frame_parameters): Comment fix.
5505
5506 * frame.c (store_frame_param): Call swap_in_global_binding if the
5507 variable's current binding was chosen based on this frame.
5508
5509 * data.c (swap_in_global_binding): New function.
5510
a704139d
EZ
55112000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
5512
5513 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
5514 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
5515
9b6610db
EZ
55162000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
5517
5518 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
5519
c68833d2
JR
55202000-06-12 Jason Rumney <jasonr@gnu.org>
5521
5522 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
5523
5524 * w32.h (EMACS_W32_H): Renamed from _NT_H_
5525
5526 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
5527
5528 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
5529
ed1056b3
GM
55302000-06-12 Gerd Moellmann <gerd@gnu.org>
5531
5532 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
5533 (syms_of_xfaces): Defsubr Sdump_colors.
5534 (x_free_colors): Don't treat b&w specially on default visual.
5535 (x_free_dpy_colors): New function.
5536 (free_face_colors): Don't check visual class; it's done
5537 in x_free_colors.
5538
5539 * xterm.c (x_frame_of_widget): New function.
5540 (x_alloc_nearest_color_for_widget): Use it.
5541 (x_copy_dpy_color): New function.
5542 (x_destroy_window): Free various colors.
5543
5050a2ef
KH
55442000-06-12 Kenichi Handa <handa@etl.go.jp>
5545
5546 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
5547
5548 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
5549
5550 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
5551
5552 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
5553
5554 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
5555
fb1b041d
DL
55562000-06-11 Dave Love <fx@gnu.org>
5557
5558 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
5559
ff96b5f4
EZ
55602000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
5561
5562 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
5563
db8eeecd
GM
55642000-06-11 Gerd Moellmann <gerd@gnu.org>
5565
ed1056b3 5566 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
5567 to `XEvent *'.
5568
49b71c5f
KH
55692000-06-10 Kenichi Handa <handa@etl.go.jp>
5570
c479bd55
KH
5571 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
5572 (regex_compile): Fix the code for handling the case of single byte
5573 char and multibyte char being mixed in a range within [...].
5574
ff6a65c2
KH
5575 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
5576 and dst_multibyte members of coding.
5577
49b71c5f
KH
5578 * charset.c (update_charset_table): Update the table
5579 bytes_by_char_head.
5580 (init_charset_once): Initialize elements of bytes_by_char_head to
5581 1 except for leading codes for private charases.
5582
5583 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
5584 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
5585 sequence.
5586
9e80b57d
KR
55872000-06-09 Ken Raeburn <raeburn@gnu.org>
5588
5589 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
5590 access the data it doesn't point to.
5591
f83fe4b4
GM
55922000-06-08 Gerd Moellmann <gerd@gnu.org>
5593
5594 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 5595 will be translated to a switch-frame event when reading the
f83fe4b4
GM
5596 event queue. This is necessary because Emacs otherwise won't
5597 perform a switch-frame to a new frame until some other event, for
5598 example a keystroke event, forces it to do so. This has various
5599 effects, one visible being that the cursor of a frame created with
5600 C-x 5 2 or switched to with a window manager key binding like
5601 A-TAB stays hollow because selected_window isn't on the newly
5602 focused frame until the switch-frame is performed.
5603
5604 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
5605 generating a switch-frame event if necessary.
5606
5607 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
5608
5609 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
5610 it's an integer.
5611
0890801b
KH
56122000-06-08 Kenichi Handa <handa@etl.go.jp>
5613
5614 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
5615 charset.
5616
173cbca8
GM
56172000-06-07 Gerd Moellmann <gerd@gnu.org>
5618
3091c2a6
GM
5619 * window.c (displayed_window_lines): Take empty lines at
5620 the bottom of a window into account.
427ec082 5621
f38952fe
GM
5622 * window.c (displayed_window_lines): New function.
5623 (Fmove_to_window_line): Use displayed_window_lines to determine
5624 the number of lines to move, instead of using the window's height.
5625
5626 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
5627 to stop reading, even if the form read sets point to a different
5628 value when evaluated.
5629
427ec082 5630 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
5631 put the cursor.
5632
6ba6c818
KH
56332000-06-07 Kenichi Handa <handa@etl.go.jp>
5634
5635 * fileio.c (e_write): Free composition data if stored in
5636 coding->cmp_data.
5637
5f1aea9a
GM
56382000-06-06 Gerd Moellmann <gerd@gnu.org>
5639
666852af
GM
5640 * xdisp.c (display_line): Set row's and iterator's
5641 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
5642 Set cursor even if row ends in the middle of a character.
5643 (dump_glyph_row): Print values of new flags.
5644 (redisplay_window) <cursor movement in unchanged window>: When
5645 point has been moved forward, and PT is at the end of the cursor
5646 row, don't place the cursor in the next row if the cursor row ends
5647 in the middle of a character or at ZV.
5648
5649 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
5650 (struct glyph_row): Add starts_in_middle_of_char_p and
5651 ends_in_middle_of_char_p.
5652 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
5653 ends_in_middle_of_char_p flag.
5654 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
5655
d13f3e2e
GM
5656 * term.c (append_glyph): Revert change of 2000-06-06.
5657
5658 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
5659 padding glyph not fitting on line as whole character not
5660 fitting on line.
5661
5f1aea9a
GM
5662 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
5663 this isn't true for images with `:ascent 100'.
5664
10cda9b0
KH
56652000-06-06 Kenichi Handa <handa@etl.go.jp>
5666
ed00559d
KH
5667 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
5668 as modified if it is originally unmodified.
5669
10cda9b0
KH
5670 * term.c (encode_terminal_code): Change the way to check if
5671 terminal coding does any conversion.
5672 (append_glyph): Set glyph->pixel_width correctly.
5673
5674 * xdisp.c (display_line): While checking line continuation, pay
5675 attention to a padding glyph.
5676
1969fae2
GM
56772000-06-05 Gerd Moellmann <gerd@gnu.org>
5678
5679 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
5680
162ccef4
DL
56812000-06-05 Dave Love <fx@gnu.org>
5682
f19f32dd
DL
5683 * xdisp.c: Include fontset.h.
5684
5685 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
5686
5687 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
5688
5689 * dispnew.c: Conditionally include term.h.
5690
5691 * coding.h: Declare code_convert_string_norecord.
5692
5693 * frame.h (struct frame): Use volatile unconditionally.
5694
5695 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
5696
5697 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
5698
5699 * systime.h: Protect against multiple inclusion.
5700 (timezone) [USG5_4]: Define as time_t.
5701
5702 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
5703 (Foptimize_char_table, make_temp_name): Declare.
5704
5705 * Makefile.in (xdisp.o): Depend on fontset.h.
5706
5707 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
5708
5709 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
5710 (Foptimize_char_table, make_temp_name): Declare.
5711
427ec082 5712 * s/irix4-0.h:
162ccef4
DL
5713 * s/irix5-0.h:
5714 * s/netbsd.h: Don't define autoconfiscated MATHERR.
5715
2082fe81
DL
57162000-06-02 Dave Love <fx@gnu.org>
5717
5718 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
5719
dcf671d2
GM
57202000-06-02 Gerd Moellmann <gerd@gnu.org>
5721
5722 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 5723 result face, set flags in that face indicating that colors may not
dcf671d2
GM
5724 be freed.
5725
5726 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
5727 glyph, use the ASCII NUL character to determine the face.
5728
d42122a3
DL
57292000-06-02 Dave Love <fx@gnu.org>
5730
5731 * sysdep.c: Conditionally include stdlib.h, unistd.h.
5732 (VFORK_RETURN_TYPE): Remove.
427ec082 5733
d42122a3
DL
5734 * config.in: Add NO_MATHERR.
5735
dd432f16
DL
57362000-06-01 Dave Love <fx@gnu.org>
5737
90aa4ea8
DL
5738 * cmds.c (internal_self_insert): Don't check
5739 Vbefore_change_function, Vafter_change_function.
5740
5741 * insdel.c (signal_before_change, signal_after_change): Likewise.
5742
5743 * buffer.c (Vbefore_change_function, Vafter_change_function):
5744 Variables and their initializations deleted.
5745
2330c9d4
DL
5746 * callint.c (Fcall_interactively): Doc fix.
5747
dd432f16
DL
5748 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
5749
bf9e8804
DL
57502000-05-31 Dave Love <fx@gnu.org>
5751
5752 * textprop.c: Revert last change -- duplicated.
5753
3694b4ab
GM
57542000-05-31 Gerd Moellmann <gerd@gnu.org>
5755
5756 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
5757 in #if 0.
5758
5759 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
5760
f14156cd
JR
57612000-05-31 Jason Rumney <jasonr@gnu.org>
5762
8119aab8
JR
5763 * search.c (Fre_search_forward, Fre_search_backward)
5764 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
5765
f14156cd
JR
5766 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
5767
4aab9be3
JR
57682000-05-30 Jason Rumney <jasonr@gnu.org>
5769
5770 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
5771 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
5772
5773 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
5774 member.
5775
5776 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
5777 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
5778 expand a nil default_filename.
5779
5780 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
5781 pointer to glyph_to_pixel_coords, not a frame.
5782
5783 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
5784 coding.h to dependencies.
5785
5786 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
5787
5788 * w32console.c (glyph_to_pixel_coords): Change first parameter to
5789 window pointer to be consistent with w32term.c and xterm.c.
5790
5791 * w32fns.c: Format and doc changes to bring closer to xfns.c.
5792 (VIETNAMESE_CHARSET): Define if not defined in system headers.
5793 (Qline_spacing, Qcenter): New variables.
5794 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
5795 (x_set_line_spacing): New function.
5796 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
5797 macros.
5798 (x_specified_cursor_type): New function.
5799 (x_set_cursor_type): Use it.
5800 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
5801 and icon strings.
5802 (validate_x_resource_name, x_get_resource_string): Measure lengths
5803 of external strings in bytes.
5804 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
5805 GetTextExtentPoint32 with NULL title.
5806 (Fx_create_frame): Initialize Qline_spacing.
5807 (w32_load_system_font): Initialize font->double_byte_p.
5808 (x_to_w32_charset): Use Vw32_charset_info_alist.
5809 (Image, busy cursor, tooltip functions): Merged changes from
5810 xfns.c. Not yet functional on Windows.
5811
5812 * w32gui.h (W32FontStruct): Add double_byte_p member.
5813
5814 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
5815 (emacs_button_translation): Use it.
5816 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
5817 in `mask' to be set.
5818
5819 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
5820 menu strings.
5821
5822 * w32term.c: Format and doc changes to bring closer to xterm.c.
5823 (w32_char_font_type): New enum.
5824 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
5825 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
5826 (w32_encode_char): New function.
5827 (x_encode_char): Removed.
5828 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
5829 x_encode_char and w32_font_is_double_byte.
5830 (x_produce_image_glyph): Use image_ascent.
5831 (x_produce_glyphs): Use new version of w32_per_char_metric and
5832 handle NULL return value. Allow extra line spacing.
5833 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
5834 (w32_get_glyph_overhangs): Remove unicode_p param. Use
5835 w32_font_type member of glyph instead.
5836 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
5837 (fast_find_position): Make sure not to consider rows not visible
5838 in the window.
5839 (w32_read_socket) [WM_MENUSELECT]: Cannot call
5840 w32_menu_display_help with input blocked, as it can abort.
5841 (x_display_and_set_cursor): Choose cursor depending
5842 on buffer-local value of cursor_type.
5843 (x_draw_bar_cursor): Add parameter WIDTH.
5844
5845 * w32term.h (CP_DEFAULT): Define.
5846 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
5847
10fc3187
GM
58482000-05-30 Gerd Moellmann <gerd@gnu.org>
5849
5850 * search.c (Fre_search_forward, Fre_search_backward)
5851 (Fposix_search_backward, Fposix_search_forward): Doc fix.
5852
d0555360
KH
58532000-05-30 Kenichi Handa <handa@etl.go.jp>
5854
5855 * coding.c (detect_coding_iso2022): Fix code for checking
5856 CODING_CATEGORY_MASK_ISO_8_2.
5857
f1ad044f
SM
58582000-05-29 Stefan Monnier <monnier@cs.yale.edu>
5859
5860 * regex.c (PREFETCH_NOLIMIT): New function.
5861 (re_match_2_internal): Use it and adjust the end_match_2 logic.
5862
84ec3b4b
GM
58632000-05-29 Gerd Moellmann <gerd@gnu.org>
5864
66254a13
GM
5865 * syntax.c (find_defun_start): Move test for
5866 open_paren_in_column_0_is_defun_start outside of the loop.
5867
49e70dec
GM
5868 * xdisp.c (redisplay_window): Really switch buffers when
5869 displaying mode lines, and temporarily set selected_frame to the
5870 frame of the window that's redisplayed.
5871
84ec3b4b
GM
5872 * xfaces.c (free_realized_faces): Block/unblock input.
5873 (free_realized_multibyte_face): Ditto.
5874
869a3a14
DL
58752000-05-29 Dave Love <fx@gnu.org>
5876
5877 * textprop.c (Qkeymap): New variable.
5878 (syms_of_textprop): Intern it.
5879
5880 * keymap.c: Include intervals.h.
5881 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
5882
5883 * Makefile.in (keymap.o): Depend on intervals.h.
5884
5885 * keyboard.c (menu_bar_items, tool_bar_items)
5886 (Fexecute_extended_command): Deal with `keymap' property.
5887 (read_key_sequence): Track map from `keymap' property as well as
5888 `local_map'.
5889
5890 * intervals.c (get_local_map): Extra arg to allow looking for
5891 `keymap' too.
5892
5893 * intervals.h (map_property): New enum.
5894 (get_local_map): Extra arg using it.
5895 (Qkeymap): Declare.
5896
84ec3b4b 5897 * lisp.h (get_local_map): Don't declare here.
869a3a14 5898
89d0c844
KH
58992000-05-29 Kenichi Handa <handa@etl.go.jp>
5900
5901 * Makefile.in (callproc.o): Depend on composite.h.
5902
5903 * callproc.c: Include composite.h.
5904 (Fcall_process): Handle composition correctly.
5905
5906 * coding.h (coding_allocate_composition_data): Extern it.
5907 (coding_restore_composition): Likewise.
5908
5909 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
5910 yet allocated, finish decoding with result
5911 CODING_FINISH_INSUFFICIENT_CMP.
5912 (coding_allocate_composition_data): Make it non-static.
5913 (coding_restore_composition): Likewise.
5914
797a084a
EZ
59152000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
5916
5917 * charset.c (syms_of_charset): Revert last change.
5918
cf872af5
EZ
59192000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
5920
5921 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
5922 charsets as unibyte, with 1-column screen width. Sent by Kenichi
5923 Handa.
cf872af5 5924
5b1ae051
EZ
59252000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
5926
5927 * charset.c (syms_of_charset): Set width of character sets
5928 eight-bit-control and eight-bit-graphic to 1 column.
5929
34ec9ebe
GM
59302000-05-26 Gerd Moellmann <gerd@gnu.org>
5931
5932 * config.in (HAVE_SPEED_T): New define.
5933
5934 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
5935 `extern speed_t'.
5936
dd854dc2
DL
59372000-05-26 Dave Love <fx@gnu.org>
5938
5939 * coding.c (shrink_decoding_region): Initialize eol_conversion.
5940
5941 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
5942 (Fsubr_arity): New function.
5943 (syms_of_data): Install them.
5944
ba9f8f95
KH
59452000-05-26 Kenichi Handa <handa@etl.go.jp>
5946
0f3e0672
KH
5947 * charset.c (init_charset_once): Set the table bytes_by_char_head
5948 correctly.
5949
cebefb44
KH
5950 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
5951 the default fontset to what Emacs uses by default.
0f3e0672
KH
5952 (check_registry_encoding): This function deleted.
5953 (Fset_fontset_font): Remove the adhoc condition for the default
5954 fontset. Allow cons in FONTNAME.
cebefb44 5955
0f3e0672
KH
5956 * fns.c (map_char_table): Ignore char-table entries for
5957 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 5958
7a18af49
KR
59592000-05-25 Ken Raeburn <raeburn@gnu.org>
5960
5961 * emacs.c (main): Initialize keyboard syms before initializing
5962 window code, so face names are available.
5963
d2af47df
SM
59642000-05-25 Stefan Monnier <monnier@cs.yale.edu>
5965
5966 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
5967 of an anchor at the beginning of a shy-group.
5968
fc6a6a4e
GM
59692000-05-25 Gerd Moellmann <gerd@gnu.org>
5970
5971 * xdisp.c (handle_invisible_prop): Don't try to skip over
5972 invisible text if end of text is already reached.
5973
005f0d35
DL
59742000-05-25 Dave Love <fx@gnu.org>
5975
02513cdd
DL
5976 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
5977
005f0d35
DL
5978 * coding.c (encode_eol): Add null statement after label.
5979
89f6ca4e
EZ
59802000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
5981
5982 * w16select.c (Fw16_set_clipboard_data): Fix the change from
5983 2000-05-20.
5984
a4e1759e
KH
59852000-05-25 Kenichi Handa <handa@etl.go.jp>
5986
5987 * ccl.c (ccl_driver): Fix previous change.
5988
eacfd7fe
KH
59892000-05-25 Kenichi Handa <handa@etl.go.jp>
5990
46ab33a9
KH
5991 * coding.c (run_pre_post_conversion_on_str): Set point to the
5992 beginning of buffer before calling coding->post_read_conversion.
5993 (decode_coding_string): Give correct args to
5994 run_pre_post_conversion_on_str.
5995 (encode_coding_string): Likewise.
5996
eacfd7fe
KH
5997 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
5998 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
5999 eight-bit-graphic correctly.
6000
f8569325
DL
60012000-05-24 Kenichi HANDA <handa@etl.go.jp>
6002
6003 * fileio.c (Finsert_file_contents): Even if a file is not found,
6004 execute codes for setting up coding system. Call
6005 after-insert-file-functions unconditionally.
6006
04545643
GM
60072000-05-24 Gerd Moellmann <gerd@gnu.org>
6008
6009 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
6010 BSD_PGRPS are not defined.
6011
747d90ea
KH
60122000-05-24 Kenichi Handa <handa@etl.go.jp>
6013
6014 * charset.c (update_charset_table): Accept nil in LONG_NAME and
6015 DESCRIPTION.
6016 (syms_of_charset): Avoid building same strings.
6017
716e3b88
GM
60182000-05-23 Gerd Moellmann <gerd@gnu.org>
6019
6020 * lread.c (Fload): Add a comment about the meaning of
6021 Vuser_init_file being t.
6022
6023 * puresize.h (BASE_PURESIZE): Increase to 675000.
6024
6025 * s/gnu-linux.h (setpgrp): Don't define it here because this
6026 prevents compilation on GNU/Linux systems with glib 2.2.
6027
6028 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
6029 as setpgid.
427ec082 6030
9aeb39fa
EZ
60312000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
6032
6033 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
6034 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
6035 version.
6036 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
6037
29ced61b
KH
60382000-05-23 Kenichi Handa <handa@etl.go.jp>
6039
0574a2ed
KH
6040 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
6041 unconditionally.
6042
3d80f24d
KH
6043 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
6044
6045 * term.c (encode_terminal_code): Set coding->src_multibyte
6046 properly.
6047
29ced61b
KH
6048 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
6049
d7e00792
KH
60502000-05-22 Kenichi Handa <handa@etl.go.jp>
6051
c9d80d38
KH
6052 * keyboard.c (read_char): Allow character codes 128..255 to be
6053 handled by input-method-function.
6054
d7e00792
KH
6055 * insdel.c (adjust_markers_for_replace): Fix previous change.
6056 (adjust_after_replace): If PREV_TEXT is nil, call
6057 adjust_markers_for_insert, not adjust_markers_for_replace.
6058
087121cc 60592000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 6060
087121cc
GM
6061 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
6062 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
6063 [HAVE_GRANDPT]: Define.
6064 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
6065
6066 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
6067 like SYSV_PTYS.
6068
6069 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
6070
6071 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
6072
c9671f81
KH
60732000-05-20 Kenichi Handa <handa@etl.go.jp>
6074
6075 The following changes are to handle 8-bit characters in a
6076 multibyte buffer/string without facing with byte combining
6077 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
6078 eight-bit-graphic (for 0xA0..0xFF) are introduced.
6079
6080 * Makefile.in (fns.o): Depend on charset.h.
6081
6082 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
6083 convert it to unibyte.
6084 (make_string): Use parse_str_as_multibyte, not chars_in_text.
6085
6086 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
6087 apparent char boundary.
6088 (Fset_buffer_multibyte): Convert 8-bit characters in the range
6089 0x80..0x9F to/from multibyte form.
6090
6091 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
6092 to unibyte.
6093
6094 * callproc.c (Fcall_process): Always encode an argument string if
6095 it is multibyte. Setup src_multibyte and dst_multibyte members of
6096 process_coding properly.
ce75fd23 6097
c9671f81
KH
6098 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
6099 SPLIT_NON_ASCII_CHAR.
6100
6101 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
6102 as is.
6103 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
6104
6105 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
6106 variables.
6107 (SPLIT_CHARACTER_SEQ): This macro deleted.
6108 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
6109 valid.
6110 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
6111 and eight-bit-graphic.
6112 (char_to_string): Likewise. Signal an error for too large
6113 character code.
6114 (char_printable_p): Return 0 for 8-bit characters.
6115 (update_charset_table): Update iso_charset_table only when a final
6116 character is non-negative.
6117 (find_charset_in_text): Renamed from find_charset_in_str.
6118 Arguments and return value changed. Callers changed.
6119 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
6120 be -1 if CHARSET is used only internally.
6121 (Fmake_char_internal): Handle new charsets; eight-bit-control and
6122 eight-bit-graphic.
6123 (Fcharset_after): Simplified.
6124 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
6125 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
6126 (multibyte_chars_in_text): Simplified by assuming there's no
6127 invalid multibyte sequence.
6128 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
6129 str_as_unibyte): New functions.
6130 (Fstring): Simpified by assuming that byte combining never
6131 happens.
6132 (init_charset_once): Initialization for
6133 LEADING_CODE_8_BIT_CONTROL.
6134 (syms_of_charset): Intern and staticpro Qeight_bit_control and
6135 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
6136 eight-bit-control and eight-bit-graphic.
6137
6138 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
6139 CHARSET_8_BIT_GRAPHIC): New macros.
6140 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
6141 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
6142 (CHARSET_REVERSE_CHARSET): Likewise.
6143 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
6144 eight-bit-graphic.
6145 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
6146 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
6147 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
6148 encounter an invalid multibyte sequence.
6149 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
6150 sequence is always valid.
6151 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
6152 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
6153 macros.
6154 (CHAR_STRING): For 8-bit characters, call char_to_string.
6155 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
6156 multibyte sequence is always valid.
6157 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
6158 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
6159 str_as_unibyte): Extern them.
6160 (BCOPY_SHORT): Fix a bug.
6161 (CHAR_LEN): This macro deleted. Callers changed to use
6162 CHAR_BYTES.
6163 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
6164 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
6165 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
6166
bd4bde7f 6167 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
6168 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
6169 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
6170 EMIT_BYTES): New macros.
6171 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
6172 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
6173 macros deleted.
6174 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
6175 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
6176 check the validity of multibyte sequence.
6177 (decode_coding_emacs_mule): New function.
6178 (encode_coding_emacs_mule): New macro.
6179 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
6180 the source.
6181 (DECODE_ISO_CHARACTER): Just return a character code.
6182 (DECODE_COMPOSITION_START): Set coding->result instead of result.
6183 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
6184 EMIT_CHAR to produced decoded characters. Exit the loop only by
6185 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
6186 block here.
6187 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
6188 only position codes for an invalid character.
6189 (encode_designation_at_bol): Return new destination pointer. 5th
6190 arg DSTP is changed to DST.
6191 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
6192 from the source by ONE_MORE_CHAR. Don't handle the case of last
6193 block here.
6194 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
6195 macros deleted.
6196 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
6197 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
6198 TWO_MORE_BYTES to fetch a byte from the source.
6199 (encode_eol): Pay attention to coding->src_multibyte.
6200 (detect_coding, detect_eol): Preserve members src_multibyte and
6201 dst_multibyte.
6202 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
6203 (encoding_buffer_size): Set magnification to 3 for all coding
6204 systems that require encoding.
6205 (ccl_coding_driver): For decoding, be sure that the result is
6206 valid multibyte sequence.
6207 (decode_coding): Initialize coding->errors and coding->result.
6208 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
6209 and raw-text, always call decode_eol. Handle the case of last
6210 block here. If not coding->dst_multibyte, convert the resulting
6211 sequence to unibyte.
6212 (encode_coding): Initialize coding->errors and coding->result.
6213 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
6214 and raw-text, always call encode_eol. Handle the case of last
6215 block here.
6216 (shrink_decoding_region, shrink_encoding_region): Detect cases
6217 that we can't skip data more rigidly.
6218 (code_convert_region): Setup src_multibyte and dst_multibyte
6219 members of coding. For decoding, if the buffer is multibyte,
6220 convert the source sequence to unibyte in advance. For encoding,
6221 if the buffer is multibyte, convert the resulting sequence to
6222 multibyte afterward.
6223 (run_pre_post_conversion_on_str): New function.
6224 (code_convert_string): Deleted and divided into the following two.
6225 (decode_coding_string, encode_coding_string): New functions.
6226 (code_convert_string1, code_convert_string_norecord): Call one of
6227 above.
6228 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
6229 MAKE_NON_ASCII_CHAR.
6230 (Fset_terminal_coding_system_internal,
6231 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
6232 and dst_multibyte members.
6233 (init_coding_once): Initialize iso_code_class with new enum
6234 ISO_control_0 and ISO_control_1.
6235
6236 * coding.h (enum iso_code_class_type): Member ISO_control_code is
6237 devided into ISO_control_0 and ISO_control_1.
6238 (struct coding_system): New members src_multibyte, dst_multibyte,
6239 errors, and result. Delete member fake_multibyte.
6240 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
6241 nonzero.
6242 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
6243 nonzero.
6244
6245 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
6246 (Faset): Likewise.
6247
6248 * editfns.c (Fformat): Be sure to convert 8-bit characters to
6249 multibyte form.
6250 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
6251 combining occurs.
6252 (Ftranspose_region): Delete codes for handling byte combining.
6253
6254 * fileio.c (Finsert_file_contents): Setup src_multibyte and
6255 dst_multibyte members of coding. On handling REPLACE on unibyte
6256 buffer, convert the result of decode_coding to unibyte. On
6257 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 6258 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
6259 multibyteness of the source (buffer or string).
6260
6261 * fns.c (concat): Handle 8-bit characters correctly.
6262 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
6263 unibyte in the result.
6264 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
6265 valid multibyte form in the result.
6266 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
6267 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
6268 return -1, signal an error.
6269 (base64_encode_1): New arg MULTIBYTE. Get each character by
6270 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
6271 character is found, return -1.
6272 (Fbase64_decode_region): Delete codes for handling byte-combining.
6273 Treat each decoded byte as a unibyte character.
6274 (Fbase64_decode_string): Return unibyte string.
6275 (Fcompare_strings, concat, string_byte_to_char): Use
6276 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
6277 FETCH_STRING_CHAR_ADVANCE.
6278 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
6279 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
6280
6281 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
6282 SPLIT_NON_ASCII_CHAR.
6283 (fontset_ref_via_base, fontset_set): Likewise
6284
6285 * insdel.c (adjust_markers_for_record_delete): Deleted.
6286 (adjust_markers_for_insert): Argument changed. Caller changed.
6287 (adjust_markers_for_replace): Likewise.
6288 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
6289 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
6290 (copy_text): Delete unused local varialbe c_save. For converting
6291 to multibyte, be sure to make all 8-bit characters in valid
6292 multibyte form.
6293 (count_size_as_multibyte): Handle 8-bit characters correctly.
6294 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
6295 adjust_after_replace, replace_range, del_range_2)
6296 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
6297 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
6298 adjust_after_replace, replace_range, del_range_2) Delete codes for
6299 handling byte combining.
6300 (adjust_before_replace): Deleted.
427ec082 6301
c9671f81
KH
6302 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
6303 SPLIT_NON_ASCII_CHAR.
6304 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
6305 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
6306 unconditionally.
6307 (Fkey_description): Likewise.
6308
6309 * lread.c (read1): On reading multibyte string, be sure to make
6310 all 8-bit chararacters in valid multibyte form.
6311 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
6312
6313 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
6314 unconditionally.
6315
6316 * process.c (Fstart_process): GCPRO current_dir before calling
6317 Ffind_operation_coding_system. Encode arguments here.
6318 (create_process): Don't encode arguments here. Setup
6319 src_multibyte and dst_multibyte members of struct coding.
6320 (read_process_output): Setup src_multibyte and dst_multibyte
6321 members of struct coding. If the output is to multibyte buffer,
6322 always decode the output of the process. Adjust the
6323 representation of 8-bit characters to the multibyteness of the
6324 output.
6325 (send_process): Setup coding->src_multibyte according to the
6326 multibyteness of the source.
6327
6328 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
6329 unconditionally.
6330 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
6331 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
6332
6333 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
6334 CHAR_LEN.
6335
6336 * w16select.c (Fw16_set_clipboard_data): Setup members
6337 src_multibyte and dst_multibyte of coding. Adjusted for the
6338 change for find_charset_in_str.
6339 (Fw16_get_clipboard_data): Likewise.
6340
6341 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
6342 dst_multibyte of coding.
6343 (x_to_w32_font): Likewise.
6344
6345 * w32select.c (Fw32_set_clipboard_data): Setup members
6346 src_multibyte and dst_multibyte of coding. Adjusted for the
6347 change for find_charset_in_str.
6348 (Fw32_get_clipboard_data): Likewise.
6349
6350 * xdisp.c (get_next_display_element): Handle 8-bit characters
6351 correctly.
6352 (next_element_from_display_vector): Use CHAR_BYTES instead of
6353 CHAR_LEN.
6354 (disp_char_vector): Use SPLIT_CHAR instead of
6355 SPLIT_NON_ASCII_CHAR.
6356
6357 * xselect.c (selection_data_to_lisp_data): Setup members
6358 src_multibyte and dst_multibyte of coding. Adjusted for the
6359 change for find_charset_in_str.
6360 (lisp_data_to_selection_data): Likewise.
6361
5f64c9e0
GM
63622000-05-19 Gerd Moellmann <gerd@gnu.org>
6363
2b63d473
GM
6364 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
6365 buffer.
6366
5f64c9e0
GM
6367 * dispextern.h (Vimage_types): Add extern declaration.
6368
6369 * xdisp.c (Vimage_types): Moved here from xfns.c.
6370 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
6371
6372 * xfns.c (Vimages_types): Moved to xdisp.c.
6373 (syms_of_xfns): Move `image-types' to xdisp.c.
6374
6375 * w32fns.c (Vimage_types): Removed.
6376 (syms_of_w32fns): Remove `image-types'.
6377
813086ea
KH
63782000-05-18 Kenichi Handa <handa@etl.go.jp>
6379
6380 * fns.c (map_char_table): Pay attention to character number of
6381 charset. Check the validity of charset at the first level. For
6382 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
6383 the default value.
6384
6385 * fontset.c: Include "buffer.h".
6386 (fs_load_font): If the face has fontset, record the face ID in
6387 that fontset.
6388 (Finternal_char_font): New function.
6389 (accumulate_font_info): New function.
6390 (Ffontset_info): Rewritten for the new fontset implementation.
6391 (syms_of_fontset): Register Vdefault_fontset in the first element
6392 of Vfontset_table. Include Vdefault_fontset in
6393 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
6394 function.
6395
bdaebbf0
DL
63962000-05-16 Dave Love <fx@gnu.org>
6397
6398 * m/iris5d.h: Deleted -- unused.
6399
cb613bb8
GM
64002000-05-16 Gerd Moellmann <gerd@gnu.org>
6401
b15f3b77
GM
6402 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
6403 `invalid' instead of `illegal'.
6404
6405 * indent.c (Fmove_to_column): When ending within a tab, insert
6406 spaces first so that markers at the end of the tab get adjusted.
6407
835c1b36
GM
6408 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
6409 buffer list that wasn't selected in that frame.
6410
cb613bb8
GM
6411 * filelock.c (get_boot_time): To obtain an 8 char file name, which
6412 is needed on mescaline, use a 2 char prefix, and call
6413 make_temp_name with second arg non-zero.
6414
6415 * fileio.c (make_temp_name): New function, extracted from
6416 Fmake_temp_name.
6417 (Fmake_temp_name): Use it.
6418
f685bea9
EZ
64192000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
6420
6421 * window.c (coordinates_in_window): Subtract 1 when computing
6422 right_x.
6423
a1b8d58b
GM
64242000-05-15 Gerd Moellmann <gerd@gnu.org>
6425
6426 * Makefile.in (lisp): Add env.elc.
6427
6428 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
6429
a265079f
GM
64302000-05-12 Gerd Moellmann <gerd@gnu.org>
6431
6432 * search.c (Freplace_match): Handle case of `\N' in the
6433 replacement when there's no group N.
6434
da4496b6
GM
64352000-05-11 Gerd Moellmann <gerd@gnu.org>
6436
0ace421a
GM
6437 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
6438 of the message to message_dolog.
6439
1172eb8d
GM
6440 * keyboard.c (read_char): Don't clear current message for help
6441 events; let the code handling help events handle this. Change
6442 code detecting help events that should be ignored.
6443
da4496b6
GM
6444 * xdisp.c (handle_single_display_prop): Don't try to set PT if
6445 we're interating over a string.
6446
0623e40f
DL
64472000-05-09 Dave Love <fx@gnu.org>
6448
6449 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
6450 that offset before writing. Move gcpro region past call of
6451 Ffile_regular_p.
6452
bae2503b
DL
64532000-05-04 Dave Love <fx@gnu.org>
6454
6455 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
6456
ec82fb2f
GM
64572000-05-04 Gerd Moellmann <gerd@gnu.org>
6458
6459 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
6460 of inserted characters when BUF equals the current buffer, and PT
6461 is in front of or equal to FROM.
6462
cbf18892
GM
64632000-05-03 Gerd Moellmann <gerd@gnu.org>
6464
4ff40dd0
GM
6465 * xdisp.c (handle_single_display_prop): If display property value
6466 is invalid, or something not supported on the frame, restore
6467 iterator's position to what it was initially. Make sure to return
6468 0 for invalid and unsupported property values.
6469
cbf18892
GM
6470 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
6471 that x_per_char_metric returns null.
6472
1b0672c3
GM
64732000-05-02 Gerd Moellmann <gerd@gnu.org>
6474
576da55d
GM
6475 * xterm.h (struct face): Add forward declaration.
6476 (struct image): Ditto.
6477 (image_ascent): Add prototype.
6478
6479 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
6480 (x_draw_image_relief, x_draw_image_foreground_1): Call function
6481 image_ascent instead of using IMAGE_ASCENT.
6482
6483 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
6484 (IMAGE_ASCENT): Removed.
6485
6486 * xfns.c (Qcenter): New variable.
6487 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
6488 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
6489 (image_ascent): New function.
6490 (lookup_image): Recognize `:ascent center'.
6491 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
6492 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
6493 (xbm_load): Don't set image's ascent here.
6494 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
6495 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
6496 check ascent values here.
6497 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
6498 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
6499 (syms_of_xfns): Initialize Qcenter.
6500
1b0672c3
GM
6501 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
6502 to the limits, increase the limits.
6503
0d7811ed
KH
65042000-05-01 Kenichi Handa <handa@etl.go.jp>
6505
6506 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
6507 Check Vfont_encoding_alist against the full name of the opened
6508 font.
6509
a943a5ca
GM
65102000-04-28 Gerd Moellmann <gerd@gnu.org>
6511
6512 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
6513 taller than the window.
6514
5dba1e29
KH
65152000-04-28 Kenichi Handa <handa@etl.go.jp>
6516
6517 * xfaces.c (realize_x_face): Fix the argument of the second
6518 xassert. BASE_FACE may not be a face for ASCII.
6519
353964e3
GM
65202000-04-27 Gerd Moellmann <gerd@gnu.org>
6521
c76e04a8
GM
6522 * print.c (print_object): Treat print-length < 0 as nil.
6523
6524 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
6525
6526 * s/freebsd.h (TERMCAP_OBJ): Removed.
6527 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
6528
6529 * lread.c (read1): Don't treat period followed by certain
6530 characters as symbol start.
6531
6532 * xfns.c (slurp_file): New function.
6533 (xbm_image_p): Handle case of in-memory XBM files.
6534 (xbm_scan): Rewritten to work on memory buffers instead of files.
6535 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
6536 Work on memory buffers instead of files. If DATA is null test
6537 if buffer looks like an in-memory XBM file.
6538 (xbm_load_image): Renamed from xbm_load_image_file. Work on
6539 memory buffers instead of files.
6540 (xbm_file_p): New function.
6541 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
6542
353964e3
GM
6543 * lread.c (end_of_file_error): New function.
6544 (read1): Call it instead of signaling `end-of-file' directly.
6545
427ec082 6546 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
6547 with Fprinc instead of Fprin1.
6548
24d744ac
KR
65492000-04-26 Ken Raeburn <raeburn@gnu.org>
6550
6551 * window.c (freeze_window_start): Check that minibuffer scroll
6552 window isn't nil before extracting the window structure pointer
6553 from it.
6554
6555 * undo.c (record_delete): If we hit the end of the undo list, stop
6556 picking elements apart.
6557
7464346d
GM
65582000-04-26 Gerd Moellmann <gerd@gnu.org>
6559
6560 * xdisp.c (display_line): If lines are continued, restore
6561 iterator's ascent/descent information to the values before the
6562 first glyph not fitting on the line.
6563
612839b6
GM
65642000-04-25 Gerd Moellmann <gerd@gnu.org>
6565
6566 * xdisp.c (try_window_id) <all changes above window start>: Adjust
6567 positions in glyph matrix. Don't compute new window end
6568 positions.
6569
6570 * dispnew.c (increment_matrix_positions): Renamed from
6571 increment_glyph_matrix_buffer_positions.
6572 (increment_row_positions): Renamed from
6573 increment_glyph_row_buffer_positions.
6574
6575 * dispextern.h: Change names of renamed functions from dispnew.c
6576 in prototypes.
6577
cc181e95
GM
65782000-04-24 Gerd Moellmann <gerd@gnu.org>
6579
abfcc168
GM
6580 * fileio.c (Fdo_auto_save): Create directories for auto-save
6581 list file if necessary.
6582
cc181e95
GM
6583 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
6584 from buffer or frame.
6585 (automatic_hscrolling_p): New variable.
6586 (hscroll_windows): Scroll windows horizontally only if automatic
6587 hscrolling is allowed.
6588 (syms_of_xdisp): New variable `automatic-hscrolling'.
6589
6590 * frame.h (struct frame): Add member extra_line_spacing.
6591
6592 * xfns.c (x_set_line_spacing): New function.
6593 (Fx_create_frame): Set line spacing from resources.
6594 (Qline_spacing): New variable.
6595 (syms_of_xfns): Initialize Qline_spacing.
427ec082 6596
cc181e95
GM
6597 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
6598
6599 * buffer.c (init_buffer_once): Handle extra_line_spacing.
6600 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 6601 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
6602 extra_line_spacing from default value.
6603 (init_buffer_once): Initialize default value of extra_line_spacing.
6604
6605 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
6606 and extra3.
6607
6608 * xterm.c (x_produce_glyphs): Remove reference to struct it's
6609 prompt_width. Add extra line spacing.
6610
6611 * term.c (produce_glyphs): Remove reference to struct it's
6612 prompt_width.
6613
6614 * dispextern.h (struct it): Remove member prompt_width, add
6615 extra_line_spacing.
6616
58827478
GM
66172000-04-22 Gerd Moellmann <gerd@gnu.org>
6618
6619 * dispnew.c (update_frame_line): When writing a whole line, make
6620 sure cursor is in the right row afterwards, otherwise a use of
6621 capability `ch' in cmgoto might leave the cursor in the row below.
6622
25a87f42
GM
66232000-04-21 Gerd Moellmann <gerd@gnu.org>
6624
6625 * lisp.h (struct Lisp_Buffer_Cons): Remove.
6626
6627 * keyboard.c (timer_check): Fix typo in comment.
6628
54edf5c2
KH
66292000-04-21 Kenichi Handa <handa@etl.go.jp>
6630
6631 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
6632 name change: ch -> character.
6633
3a64eef5
GM
66342000-04-20 Gerd Moellmann <gerd@gnu.org>
6635
6636 * keyboard.c (echo_message_buffer): New variable.
6637 (echo_now): Set echo_message_buffer to the echo area buffer used
6638 to display the echo.
6639 (cancel_echoing): Reset echo_message_buffer to nil.
6640 (read_char): Code rewritten that handles canceling an echo or
6641 echoing a dash, respectively.
6642
6643 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
6644 directory doesn't exist.
6645
6142fdcb
DL
66462000-04-19 Dave Love <fx@gnu.org>
6647
6648 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
6649 (concat): Don't allow numeric args.
6650 (Fconcat): Doc change.
6142fdcb 6651
ac6b5352
SM
66522000-04-19 Stefan Monnier <monnier@cs.yale.edu>
6653
6654 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
6655 instead define end_match(1|2) more carefully.
6656 Use GET_CHAR_BEFORE_2 for `begline'.
6657
cb9215e4
GM
66582000-04-19 Gerd Moellmann <gerd@gnu.org>
6659
5e3dac3f
GM
6660 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
6661 on 64-bit systems where NULL is defined as `0'.
6662
6663 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
6664 the `variable argument list' to make it work on Alpha.
6665
cb9215e4
GM
6666 * m/alpha.h (_LP64) [!_LP64]: Define.
6667 (ORDINARY_LINK): Define for NetBSD.
6668
6669 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 6670
f532dca0
DL
66712000-04-19 Dave Love <fx@gnu.org>
6672
c750667e
DL
6673 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
6674 change.
6675
6676 * Makefile.in (LIBS): Don't use.
6677 (GETLOADAVG_OBJ): Define again.
6678 (otherobj): Add GETLOADAVG_OBJ.
6679
f532dca0
DL
6680 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
6681
1c7e22fd
GM
66822000-04-18 Gerd Moellmann <gerd@gnu.org>
6683
f6d3257b
GM
6684 * lread.c (read_filtered_event): Cancel and start busy cursor.
6685
427ec082 6686 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
6687 that the per-character metrics may be null.
6688
e10f64e7
GM
66892000-04-17 Gerd Moellmann <gerd@gnu.org>
6690
0daee095
GM
6691 * buffer.c (clone_per_buffer_values): New function.
6692 (Fmake_indirect_buffer): Add optional argument CLONE. Call
6693 clone_per_buffer_values if CLONE is not nil.
6694
e10f64e7
GM
6695 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
6696
38687d43
DL
66972000-04-16 Dave Love <fx@gnu.org>
6698
6699 * Makefile.in: Remove obsolete localcpp stuff.
6700 (GETLOADAVG_OBJ): Don't define.
6701 (obj): Move LIBOBJS...
6702 (otherobj): ... to here.
6703 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
6704 whitespace-only lines after the continuation (Irix).
6705
c21c7262
GM
67062000-04-14 Gerd Moellmann <gerd@gnu.org>
6707
6708 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
6709
6710 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
6711
314767c0
DL
67122000-04-14 Dave Love <fx@gnu.org>
6713
6714 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
6715 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
6716 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
6717 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
6718 NLIST_STRUCT.
6719
6720 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
6721 autoconfiscated HAVE_GETLOADAVG.
6722
6723 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
6724 BROKEN_MKTIME.
6725
a2522dca
GM
67262000-04-14 Gerd Moellmann <gerd@gnu.org>
6727
6728 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
6729 (fill_in_lock_file_name): Avoid existing files that aren't
6730 links.
6731
33744b5d
DL
67322000-04-14 Dave Love <fx@gnu.org>
6733
c21c7262 6734 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
6735 (INTERVAL_SRC): Convert to make variable.
6736 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
6737 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
6738 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
6739 add LIBOBJS.
6740 (SOME_MACHINE_OBJECTS): Remove interval stuff.
6741 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
6742 (shortlisp): Add facemenu, float-sup, frame.
6743 (SOME_MACHINE_LISP): Remove them from here.
6744 (LIBES): Change unused LDLIBS to autoconf LIBS.
6745
6746 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
6747
9d3d5916
KH
67482000-04-14 Kenichi Handa <handa@etl.go.jp>
6749
6750 * composite.c (update_compositions): If FROM and TO are not in a
6751 valid range, do nothing.
6752
198e3c7a
GM
67532000-04-13 Gerd Moellmann <gerd@gnu.org>
6754
6755 * tparam.c (tparam1): Abort when encountering an unknown
6756 `%'-specifier.
6757
6758 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
6759 terminfo.o.
6760
6761 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
6762 as TERMCAP_OBJ.
6763
055a28c9
EZ
67642000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
6765
6766 * fileio.c (a_write): Remove redundant semi-colons.
6767 (e_write): Return -1 if failed to write all the data.
6768 This fixes the changes made at 1999-12-15.
6769
f5c75033
DL
67702000-04-12 Dave Love <fx@gnu.org>
6771
6772 * fns.c (mapcar1): Test for null vals to support mapc.
6773 (Fmapc): New function.
6774
0c3cfc51
EZ
67752000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
6776
6777 * msdos.c (NUM_MOUSE_BUTTONS): Define.
6778 (IT_frame_up_to_date): Support the buffer local value of
6779 cursor-type, if defined.
6780
33465a31
DL
67812000-04-10 Dave Love <fx@gnu.org>
6782
6783 * editfns.c (preceding-char, following-char): Doc fix.
6784
6ed56568
KR
67852000-04-10 Ken Raeburn <raeburn@gnu.org>
6786
6787 * Makefile.in (temacs): Revert 2000-03-12 change.
6788
7cf80d4e
JR
67892000-04-10 Jason Rumney <jasonr@gnu.org>
6790
6791 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
6792
34f3f342
GM
67932000-04-10 Gerd Moellmann <gerd@gnu.org>
6794
1a1b1895
GM
6795 * xdisp.c (setup_echo_area_for_printing): Choose an echo
6796 area buffer, if it's not set up yet.
6797
34f3f342
GM
6798 * indent.c (compute_motion): Set immediate_quit.
6799
be0dbdab
GM
68002000-04-09 Gerd Moellmann <gerd@gnu.org>
6801
c45be9ac
GM
6802 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
6803 variable.
6804 (realize_tty_face): Suppress boldness if colors are the inverse of
6805 the default colors, and tty_suppress_bold_inverse_default_colors_p
6806 is set.
6807 (Ftty_suppress_bold_inverse_default_colors): New function.
6808 (syms_of_xfaces): Defsubr it.
6809
be0dbdab
GM
6810 * buffer.c (Frestore_buffer_modified_p): New function.
6811 (syms_of_buffer): Defsubr it.
6812
e8413c3b
KR
68132000-04-08 Ken Raeburn <raeburn@gnu.org>
6814
87f67317
KR
6815 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
6816 charset id (int) argument, not a charset (Lisp_Object).
6817
e8413c3b
KR
6818 * coding.h (code_convert_string): Declare.
6819 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
6820 object, as the fourth argument to code_convert_string.
6821
6822 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
6823 value.
6824 (Fset_fontset_font): Use EQ to compare lisp objects.
6825
7c752c80
KR
68262000-04-05 Ken Raeburn <raeburn@gnu.org>
6827
c0333abc
KR
6828 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
6829 a pointer that looks like a lisp object.
6830 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
6831 zero, instead see whether it's an integer object, since they can't
6832 have intervals.
6833 (GET_INTERVAL_OBJECT): Simply assign to the destination.
6834
7c752c80
KR
6835 * dispnew.c (allocate_matrices_for_frame_redisplay,
6836 direct_output_forward_char): Use X(U)INT and make_number as needed
6837 to convert between (unsigned) int values and lisp integers.
6838 * keyboard.c (read_key_sequence): Likewise.
6839 * lread.c (substitute_object_recurse): Likewise.
6840 * fns.c (concat, hash_lookup, hash_remove): Likewise.
6841 * minibuf.c (do_completion, Fminibuffer_complete_word,
6842 Fminibuffer_completion_help): Likewise.
6843 * term.c (produce_special_glyphs): Likewise.
6844
6845 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
6846 * print.c (print_preprocess, print_object): Likewise.
6847
6848 * search.c (compile_pattern): Use NILP when checking for nil.
6849
74e49b38
KR
6850 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
6851 __OPTIMIZE__]: Provide a GNU C macro version that handles
6852 lisp-object unions.
6853 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
6854 field, to better cope with ENABLE_CHECKING and calls that modify a
6855 Lisp_Object using its old value.
6856
685e5ed2
GM
68572000-04-04 Gerd Moellmann <gerd@gnu.org>
6858
c407c570
GM
6859 * window.c (compare_window_configurations): Signal an error
6860 if parameters C1 or C2 aren't window configurations.
6861
685e5ed2
GM
6862 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
6863 AFTER_POTENTIAL_GC calls around calls to functions that can
6864 signal an error and thus invoke the debugger.
6865
587a49ab
GM
68662000-04-03 Gerd Moellmann <gerd@gnu.org>
6867
62f20204
GM
6868 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
6869 an error if decoding fails.
6870
587a49ab
GM
6871 * keyboard.c (lispy_mouse_names): Variable removed.
6872 (Vlispy_mouse_stem): New variable.
6873 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
6874 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
6875 for any mouse button number. Increase size of mouse_syms and
6876 button_down_location as needed. Call modify_event_symbol with
6877 different arguments.
6878 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
6879 Call modify_event_symbol with different arguments.
6880 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
6881 for any button number. Call modify_event_symbol with different
6882 arguments.
6883 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
6884 Accept a string for NAME_ALIST_OR_STEM.
6885
6886 * lisp.h (larger_vector): Add prototype.
6887
6888 * fns.c (larger_vector): Make externally visible.
6889
6890 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
6891
2d1675e4
SM
68922000-04-02 Stefan Monnier <monnier@cs.yale.edu>
6893
6894 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
6895 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
6896 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
6897 we are between str1 and str2.
6898 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
6899 (PATFETCH): Use `TRANSLATE'.
6900 (PATFETCH_RAW): Fetch multibyte char if applicable.
6901 (PATUNFETCH): Remove.
6902 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
6903 When writing a char, write it directly into the pattern buffer rather
6904 than going needlessly through a temp char-array.
6905 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
6906 multibyte magic and remove the useless `#ifdef emacs'.
6907 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
6908 buffer.
6909
6910 * regex.h (struct re_pattern_buffer): Make field `multibyte'
6911 conditional on `emacs'.
6912
6913 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
6914
cc2d8c6b
KR
69152000-04-01 Ken Raeburn <raeburn@gnu.org>
6916
6917 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
6918 non-union-type versions of XMARK and friends here, because XMARK
6919 and friends won't work on an integer field if NO_UNION_TYPE is not
6920 defined.
6921 (make_number): Define as a function if it's not defined as a
6922 macro.
6923
09654086
KR
6924 * composite.c (run_composite_function): Use NILP when checking for
6925 nil.
6926 (syms_of_composite): Delete local var NARGS, pass an int as first
6927 argument to Fmake_hash_table.
6928
2387b382
KR
6929 * editfns.c (text_property_stickiness): Use NILP to test
6930 Lisp_Object boolean value.
6931 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
6932 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
6933 problems reading from and changing the same lisp value in an
6934 XSETSTRING call.
6935
27660e89
GM
69362000-04-01 Gerd Moellmann <gerd@gnu.org>
6937
6938 * term.c (TN_no_color_video): New variable.
6939 (term_init): Intitialize TN_no_color_video.
6940 (enum no_color_bit): New enumeration.
6941 (MAY_USE_WITH_COLORS_P): New macro.
6942 (turn_on_face): Use it to determine if attributes may be used
6943 combined with colors.
6944
3578db3c
KR
69452000-04-01 Ken Raeburn <raeburn@gnu.org>
6946
6947 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
6948 with int lvalues via casts; instead, just yield lisp object
6949 lvalues.
6950 (enlarge_window): Variable sizep now points to Lisp_Object. Use
6951 proper accessor macros.
6952 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
6953 (grow_mini_window): Fix typo getting int value of root->height.
6954
6fc556fd
KR
6955 * xdisp.c (compute_string_pos): Fix order of arguments to
6956 string_pos_nchars_ahead.
6957 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
6958 count arg to variable-arg routines like Frun_hook_with_args and
6959 Fformat.
587a49ab
GM
6960 (back_to_previous_visible_line_start)
6961 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
6962 fixed-arg routines like Fget_char_property and Fmake_string.
6963 (reconsider_clip_changes): Use XINT when comparing integer lisp
6964 objects, or passing them as int arguments.
587a49ab
GM
6965 (mark_window_display_accurate, insert_left_trunc_glyphs)
6966 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
6967 storing or passing integer values as lisp objects.
6968 (set_cursor_from_row, highlight_trailing_whitespace): Use
6969 INTEGERP, not implicit test against zero, for glyph object.
6970 (try_window_id): Don't use make_number when we want an int value.
6971
6972 * xfaces.c (xlfd_symbolic_value): Make last argument a
6973 Lisp_Object, to be consistent with callers.
6974 (Fbitmap_spec_p): Use XINT to get numeric value of height.
6975 (lface_hash): Apply XFASTINT to lisp values before folding in.
6976
6977 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
6978 fill in window width and height. Pass an int, not a lisp object,
6979 as first arg to Finsert.
6980
6e7b2457
GM
69812000-04-01 Gerd Moellmann <gerd@gnu.org>
6982
610d841e
GM
6983 * xfaces.c (realize_basic_faces): Block input while realizing
6984 the faces.
6985
6e7b2457
GM
6986 * keyboard.c (lispy_mouse_names): Add additional mouse names.
6987
6988 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
6989
aa110c0c
GM
69902000-03-31 Gerd Moellmann <gerd@gnu.org>
6991
6992 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 6993 or ASCII, handle case that per-char metric is null.
aa110c0c 6994
8801a864
KR
69952000-03-30 Ken Raeburn <raeburn@gnu.org>
6996
c6129d7e
KR
6997 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
6998
8801a864
KR
6999 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
7000 XSUBR, XBUFFER): Verify correct object type before returning
7001 pointer, using eassert.
7002 * frame.h (XFRAME): Likewise.
7003
7004 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
7005 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
7006 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
7007 type.
7008 * data.c (set_internal): Likewise.
7009 * dispextern.h (WINDOW_WANTS_MODELINE_P,
7010 WINDOW_WANTS_HEADER_LINE_P): Likewise.
7011 * fileio.c (auto_save_1): Likewise.
7012 * insdel.c (check_markers): Likewise.
7013 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
7014 * undo.c (record_insert): Likewise.
7015 * vmsproc.c (child_sig): Likewise.
7016 * window.c (unshow_buffer, window_loop): Likewise.
7017 * xterm.c (x_erase_phys_cursor): Likewise.
7018
8e7af858
GM
70192000-03-30 Gerd Moellmann <gerd@gnu.org>
7020
7021 * xfns.c (free_image_cache): Free the cache structure itself
7022 last, after all its members have been freed.
7023
7024 * lisp.h (xstrdup): Add prototype.
7025
7026 * alloc.c (xstrdup): Moved here from xfaces.c.
7027 (allocating_for_lisp): Variable removed.
7028 (lisp_malloc): Block input around the calls to malloc and
7029 mem_insert.
7030
7031 * xfaces.c (realize_tty_face): Use find_symbol_value instead
7032 of Fsymbol_value.
7033 (xstrdup): Moved to alloc.c.
7034
e0b8c689
KR
70352000-03-29 Ken Raeburn <raeburn@gnu.org>
7036
b96f9fb7
KR
7037 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
7038
7039 * emacs.c (main): Fix sense of no-loadup test.
7040
e0b8c689
KR
7041 * config.in (ENABLE_CHECKING): Undef.
7042
7043 * lisp.h (struct interval): Replace "parent" field with a union of
7044 interval pointer and Lisp_Object; add new bitfield to use as
7045 discriminant. Change other flag fields to bitfields.
7046 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
7047 is defined and the supplied test fails, print a message and
7048 abort.
7049 (eassert): New macro. Use CHECK to provide an assert-like
7050 facility.
7051
7052 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
7053 pointers; abort if the value looks like a lisp object.
7054 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
7055 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
7056 Modify for new interval parent definition.
7057
7058 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
7059 UNMARK_BALANCE_INTERVALS): Update references that need an
7060 addressable lisp object in the interval structure.
7061 (die): New function.
7062 (suppress_checking): New variable.
7063
7064 * intervals.c (interval_start_pos): Just return 0 if there's no
7065 parent object.
7066
f83c5440
GM
70672000-03-29 Gerd Moellmann <gerd@gnu.org>
7068
7069 * lread.c (read1): Accept `.' (period) as symbol start like in CL
7070 and earlier Emacs versions.
7071
7072 * keyboard.c (Ftop_level): Cancel busy-cursor.
7073
7074 * eval.c (call_debugger): Cancel busy-cursor.
7075
fdce64ff
KH
70762000-03-29 Kenichi Handa <handa@etl.go.jp>
7077
7078 * search.c (Freplace_match): Adjust multibyteness of the current
7079 buffer and NEWTEXT. Free allocated memory before signaling an
7080 error.
7081
f6a3f532
SM
70822000-03-28 Stefan Monnier <monnier@cs.yale.edu>
7083
7084 * regex.c (analyse_first): New function obtained by ripping out most
7085 of re_compile_fastmap and generalizing it a little bit so that it
7086 can also just return whether a given (sub)pattern can match the empty
7087 string or not.
7088 (regex_compile): Use `analyse_first' to decide whether the loop-check
7089 needs to be done or not for *, +, *? and +? (the loop check is costly
7090 for non-greedy repetition).
7091 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
7092
e9b309ac
DL
70932000-03-28 Dave Love <fx@gnu.org>
7094
bb15bd9a
DL
7095 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
7096 alpha.
7097
e9b309ac
DL
7098 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
7099
ed0767d8
SM
71002000-03-27 Stefan Monnier <monnier@cs.yale.edu>
7101
7102 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
7103 an expression.
7104 (enum re_opcode_t): Update description of succeed_n.
7105 (PATFETCH): Always define.
7106 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
7107 operators, char classes, shy-groups and intervals).
7108 Optimize special cases of intervals so as to only use succeed_n and
7109 jump_n when really needed.
7110 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
7111 that we don't have to handle the special cases any more.
7112 Simplify on_failure_jump handling as well.
7113
e11e7e46
JR
71142000-03-28 Jason Rumney <jasonr@gnu.org>
7115
7116 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
7117
88faab89
GM
71182000-03-27 Gerd Moellmann <gerd@gnu.org>
7119
182ff242
GM
7120 * s/freebsd.h (GC_SETJMP_WORKS): Define.
7121
7122 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 7123
182ff242
GM
7124 * alloc.c (mark_maybe_object): New function.
7125 (mark_memory): Use it.
7126 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
7127 (setjmp_tested_p, longjmp_done): New variables.
7128 (test_setjmp): New function.
7129 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
7130 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
7131
c1005d06
GM
7132 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
7133 to DEC_TEXT_POS and INC_TEXT_POS.
7134
7135 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
7136 with parameter MULTIBYTE_P.
7137
427ec082 7138 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
7139 MULTIBYTE_P.
7140
7439e5b9 7141 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
7142 buffers because it looks for multibyte character byte sequences
7143 which don't exist in unibyte text.
7439e5b9 7144
d9c545da
GM
7145 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
7146
11fd416e 7147 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
7148 [DEBUG_X_COLORS]: New functions.
7149 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
7150
7151 * xfns.c (x_set_cursor_color): Get color reference counts right.
7152
7153 * xterm.c (x_copy_color): New function.
7154 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
7155
7156 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
7157 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
7158 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
7159 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
7160 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
7161 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
7162 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
7163 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
7164 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
7165 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
7166
11fd416e
GM
7167 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
7168 names for handling per-buffer variables.
d9c545da
GM
7169
7170 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
7171 instead of MAX_BUFFER_LOCAL_VARS.
7172 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
7173
7174 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
7175
88faab89
GM
7176 * xfns.c (x_specified_cursor_type): New function.
7177 (x_set_cursor_type): Use it.
7178
7179 * buffer.h (struct buffer): Add cursor_type.
7180
d80f42b7
SM
71812000-03-26 Stefan Monnier <monnier@cs.yale.edu>
7182
7183 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 7184 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 7185 opcode.
d80f42b7
SM
7186 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
7187 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
7188 executing it as well as when popping it off the stack to find infinite
7189 loops in non-greedy repetition operators.
7190
89e80928
GM
71912000-03-26 Gerd Moellmann <gerd@gnu.org>
7192
3d4ff2dd
GM
7193 * doc.c (Qfunction_documentation): New variable.
7194 (syms_of_doc): Initialize Qfunction_documentation.
7195 (Fdocumentation): If FUNCTION is a symbol with non-nil
7196 `function-documentation' property, return a documentation derived
7197 from that.
7198
bd96bd79
GM
7199 * buffer.c (syms_of_buffer): Add default-cursor-type.
7200 (init_buffer_once): Don't let cursor_type have a local value
7201 in every buffer.
7202
19d1bc27
GM
7203 * xterm.c (x_display_and_set_cursor): Choose cursor depending
7204 on buffer-local value of cursor_type.
7205 (x_draw_bar_cursor): Add parameter WIDTH.
7206
7207 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
7208 (init_buffer_once): Set default cursor_type value to t.
7209 Mark cursor_type as local everywhere.
7210 (syms_of_buffer): New per-buffer variable cursor-type.
7211
89e80928
GM
7212 * buffer.h (struct buffer): Remove member local_var_flags,
7213 add local_flags.
7214 (MAX_BUFFER_LOCAL_VARS): New macro.
7215 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
7216 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
7217 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
7218 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
7219
7220 * print.c (print_object): Use new macros for per-buffer
7221 variables.
7222
7223 * category.c (Fset_category_table): Use new macros for per-buffer
7224 variables.
7225
7226 * buffer.c (buffer_permanent_local_flags): Make a char array.
7227 (max_buffer_local_idx): New variable.
7228 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
7229 for new handling of per-buffer variables.
7230 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
7231 (init_buffer_once): Initialize per-buffer vars differently.
7232 Set max_buffer_local_idx.
7233
7234 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
7235 variables.
7236
7237 * lread.c (defvar_per_buffer): Use new macros for per-buffer
7238 variables.
7239
7240 * data.c (do_symval_forwarding, store_symval_forwarding)
7241 (find_symbol_value, set_internal, default_value, Fset_default)
7242 (Fkill_local_variable, Flocal_variable_p): Use new macros for
7243 per-buffer variables.
7244
7245 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
7246
9a0dd3dc
GM
72472000-03-24 Gerd Moellmann <gerd@gnu.org>
7248
b68c375f
GM
7249 * xterm.c (x_term_init): Unblock input around call1 of
7250 Qvendor_specific_keysyms.
7251
9a0dd3dc
GM
7252 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
7253 (find_defun_start): Consider an open parenthesis in column 0
7254 a defun start only if open_paren_in_column_0_is_defun_start is set.
7255 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
7256
7973e637
SM
72572000-03-24 Stefan Monnier <monnier@cs.yale.edu>
7258
7259 * eval.c (Fautoload): Add entry in load-history (if after dump).
7260 * lread.c (load-history): Update docstring.
7261
39210e90
GM
72622000-03-24 Gerd Moellmann <gerd@gnu.org>
7263
7264 * indent.c (Fvertical_motion): Always use the current buffer.
7265 Temporarily change the window's buffer, if necessary.
7266
72db3ab5
GM
72672000-03-23 Gerd Moellmann <gerd@gnu.org>
7268
7269 * xterm.c (fast_find_position): Make sure not to consider rows
7270 not visible in the window.
7271
990b2375
SM
72722000-03-22 Stefan Monnier <monnier@cs.yale.edu>
7273
7274 * regex.c (enum syntaxcode): Provide default for non-Emacs.
7275 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
7276
ff4df011
JR
72772000-03-22 Jason Rumney <jasonr@gnu.org>
7278
7279 * w32menu.c (single_submenu): Set help string to NULL if none.
7280 (w32_menu_show): Set help string correctly.
7281 (add-menu-item): Set help string in MIIM_DATA for menu item.
7282 Load SetMenuItemInfoA explicitly.
7283 (w32_menu_display_help): New function.
427ec082 7284
ff4df011
JR
7285 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
7286 (QCdata): Moved to xdisp.c.
7287
7288 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
7289 (Vw32_charset_to_codepage_alist): Removed.
7290 (Vw32_charset_info_alist): New variable.
7291 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
7292 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
7293 greek, hebrew, thai, johab, mac, unicode]): New symbols.
7294 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
7295 with TODO comment.
7296 (w32_codepage_for_font): Use Vw32_charset_info_alist.
7297 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
7298 Define Vw32_charset_info_alist and w32_charset symbols.
7299
73002000-03-22 Jason Rumney <jasonr@gnu.org>
7301
7302 * makefile.nt (w32bdf.obj): Update dependencies.
7303
7304 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
7305
7306 * w32fns.c: Include fontset.h after dispextern.h.
7307 (Fx_create_frame): Do not create fontset.
7308 (w32_load_system_font): Doc fix.
7309 (Fx_close_connection): Free full_name if it is not shared.
7310
7311 * w32term.c: Include fontset.h after dispextern.h.
7312 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
7313 updated.
7314 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
7315 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
7316 (w32_font_is_double_byte): New function, needs body.
7317 (x_append_glyph): Set glyph->glyph_not_available_p.
7318 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
7319 it->charset. If it->multibyte_p is zero and it->c is a multibyte
7320 character, convert it to a unibyte character.
7321 (struct glyph_string): Delete member `charset'.
7322 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
7323 calculating it is found.
7324 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
7325 the case that per char metric is not available correctly.
7326 (x_fill_glyph_string): Handle the case that the specific glyph is
7327 not available correctly.
7328 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
7329 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
7330 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
7331 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
7332 fontset. Don't call FS_LOAD_FONT.
7333
439d5cb4
KR
73342000-03-22 Ken Raeburn <raeburn@gnu.org>
7335
7336 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
7337 (INT_LISPLIKE): New macro.
7338 (NULL_INTERVAL_P): Use it.
7339 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
7340 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
7341 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
7342
7343 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
7344 explicit references to "parent" field of struct interval and
7345 associated unclean type conversions.
7346 * intervals.c (create_root_interval, root_interval, rotate_right,
7347 rotate_left, balance_possible_root_interval, split_interval_right,
7348 split_interval_left, interval_start_pos, find_interval,
7349 next_interval, previous_interval, update_interval,
7350 adjust_intervals_for_insertion, delete_node, delete_interval,
7351 adjust_intervals_for_deletion, merge_interval_right,
7352 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
7353 copy_intervals_to_string): Likewise.
7354 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
7355 Likewise.
7356 * syntax.c (update_syntax_table): Likewise.
7357
7358 * intervals.c (reproduce_tree_obj): New function, like
7359 reproduce_tree but takes a Lisp_Object for the parent. Declare
7360 with prototype.
7361 (graft_intervals_into_buffer): Use it when appropriate.
7362 (reproduce_tree): Declare with prototype.
7363 (balance_possible_root_interval): Check that the parent is a lisp
7364 object before trying to examine its type.
7365
ee1c5b21
GM
73662000-03-22 Gerd Moellmann <gerd@gnu.org>
7367
7368 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
7369 as strings only if both are known to be strings.
7370
7371 * s/openbsd.h (LIBS_TERMCAP): Undef.
7372
1fb352e0
SM
73732000-03-21 Stefan Monnier <monnier@cs.yale.edu>
7374
7375 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
7376 definitions for non-Emacs compilation.
7377 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
7378 outside of `#ifdef emacs'.
7379 (print_partial_compiled_pattern): Update.
7380 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
7381 (re_compile_fastmap): Merge handling of charset and charset_not (for
7382 emacs and non-emacs compilation as well).
7383 Similarly for (not)categoryspec and (not)syntaxspec.
7384 Don't use the fastmap when reaching `anychar' since the added
7385 complexity is not justified.
7386 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
7387 and (not)syntaxspec. Merge (not)categoryspec.
7388
fdaa1f77
KH
73892000-03-22 Kenichi Handa <handa@etl.go.jp>
7390
ff1a0d8e
KH
7391 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
7392 FACE_FOR_CHAR): Define them differently for the configuration of
7393 --without-x.
fdaa1f77 7394
d152fb46
DL
73952000-03-21 Dave Love <fx@gnu.org>
7396
7397 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
7398 doc string.
7399
d2cafc8c
GM
74002000-03-21 Gerd Moellmann <gerd@gnu.org>
7401
7402 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
7403 (lface_fully_specified_p): Don't check contents of
7404 LFACE_FONT_INDEX because that attribute is optional.
7405 (realize_x_face): Remove now unwarranted xassert.
7406
9111d4b5
KH
74072000-03-21 Kenichi HANDA <handa@etl.go.jp>
7408
7409 The following changes are to make font selection based on
7410 characters, not charset. In addition, they recover fontset
7411 facilities while utilizing the new font selection mechanism.
7412
6c4bfdc0
KH
7413 * Makefile.in (fontset.o): Depend on dispextern.h.
7414
7415 * alloc.c (mark_face_cache): Don't mark face->registry.
7416
9111d4b5
KH
7417 * dispextern.h (struct glyph): New member glyph_not_available_p.
7418 Use 22 bits for face_id.
7419 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
7420 (struct face): Delete member registry, new member ascii_face.
7421 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
7422 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
7423 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
7424 (struct it): Delete member charset, new member
7425 glyph_not_available_p.
7426
7427 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
7428 (struct fontset_info, struct fontset_data): Structs removed.
7429 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
7430 Vglobale_fontset_alist, font_idx_temp): Externs removed.
7431 (fs_load_font, fs_query_fontset): Adjusted for new argument.
7432 (fs_free_face_fontset, fontset_font_pattern,
7433 face_suitable_for_char_p, face_for_char,
7434 make_fontset_for_ascii_face): Extern them.
7435 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
7436 (FS_LOAD_FACE_FONT): New macro.
7437
7438 * fontset.c: All codes rewritten or adjusted for the change of
7439 fontset implementation. Now fontset is represented by char table.
7440 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
7441 removed.
7442 (my_strcasecmp): Function removed.
7443 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
7444 variables.
7445 (AREF, ASIZE): New macros.
7446 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
7447 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
7448 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
7449 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
7450 fontset_id_valid_p, font_family_registry, fontset_name,
7451 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
7452 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
7453 New functions.
7454 (fs_load_font): New arg FACE. Caller changed.
7455 (fs_query_fontset): Argument changed. Caller changed.
7456 (Fquery_fontset): call fs_query_fontset.
7457 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
7458 Functions removed.
7459 (clear_fontset_elements, check_registry_encoding,
7460 check_fontset_name): New functions.
7461 (syms_of_fontset): Set char-table-extra-slots property of fontset
7462 to 3. Staticpro and initialize Vfontset_table and
7463 Vdefault_fontset. Defsubr fontset_font and fontset_list.
7464
7465 * frame.h (struct frame): Member `fontset_data' removed.
7466 (FRAME_FONTSET_DATA): Macro removed.
7467
7468 * frame.c (make_frame): Don't allocate f->fontset_data.
7469 (Fdelete_frame): Don't free f->fontset_data.
7470
6c4bfdc0
KH
7471 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
7472
9111d4b5
KH
7473 * xdisp.c (charset_at_position): Function removed.
7474 (init_iterator): Don't set member charset of struct `it'.
7475 (handle_face_prop, reseat_to_string, set_iterator_to_next,
7476 next_element_from_display_vector, insert_left_trunc_glyphs):
7477 Likewise.
7478 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
7479 FACE_FOR_CHARSET.
7480 (get_next_display_element, append_space,
7481 extend_face_to_end_of_line): Likewise.
7482
7483 * xfaces.c (Qx_charset_registry, Vface_default_registry):
7484 Variables removed.
7485 (clear_font_table, frame_update_line_height, load_face_font):
7486 Adjusted for the change of fontset implementation.
7487 (load_face_fontset_font): Function removed.
7488 (pixel_point_size): New function.
7489 (font_list): Argument type changed. Caller changed.
7490 (LFACE_FONT): New macro.
7491 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
7492 (set_lface_from_font_name): Type of arg FONTNAME is changed to
7493 Lisp_Object. Determine the font name by actually loading a font
7494 by the specified pattern. Set LFACE_FONT (lface) to the specified
7495 pattern. Even if a font is not found, don't try alternatives.
7496 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
7497 (set_font_frame_param): If `font' is specified in lface, use it.
7498 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
7499 (lface_same_font_attributes_p): Likewise.
7500 (make_realized_face): Arguent changed. Caller changed. Set
7501 face->ascii_face to face itself.
7502 (free_realized_face): Free face->fontset if face is for ASCII.
7503 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
7504 deduce_unibyte_registry, x_charset_registry): Functions removed.
7505 (free_realized_multibyte_face): New function.
7506 (lookup_face, lookup_named_face, lookup_derived_face): Argument
7507 changed. Caller changed.
7508 (try_font_list): Argument type changed.
7509 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
7510 (choose_face_font): Argument changed. Handle fontset properly.
7511 (choose_face_fontset_font): Function removed.
7512 (realize_default_face, realize_named_face): Don't remove the
7513 former face here.
7514 (realize_face): Argument changed. Caller changed. Remove face
7515 with the arg former_face_id in advance. Load font for the new
7516 face.
7517 (realize_x_face): Argument changed. Caller changed. For a
7518 multibyte character, share fontset with base_face. For a single
7519 byte character, make a new realized fontset. Don't load a font
7520 here.
7521 (realize_tty_face): Argument changed. Caller changed.
7522 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
7523 (face_at_buffer_position): Don't check multibyte_p for returning
7524 DEFAULT_FACE_ID.
7525 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
7526 FACE_SUITABLE_FOR_CHARSET_P.
7527 (syms_of_xfaces): Remove code for Qx_charset_registry and
7528 Vface_default_registry.
7529
6c4bfdc0
KH
7530 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
7531 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
7532 (x_per_char_metric): Don't try FONT->default_char. Even if
7533 pcm->width is zero, glyph bits may exist.
7534 (x_encode_char): Always initialize char2b->byte1.
7535 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
7536 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
7537 changed.
7538 (x_append_glyph): Set glyph->glyph_not_available_p.
7539 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
7540 it->charset. Handle the case that per char metric is not
7541 available. If it->multibyte_p is zero and it->c is a multibyte
7542 character, convert it to a unibyte character.
7543 (struct glyph_string): Delete member `charset'.
7544 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
7545 the case that per char metric is not available correctly.
7546 (x_fill_glyph_string): Handle the case that the specific glyph is
7547 not available correctly.
7548 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
7549 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
7550 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
7551 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
7552 fontset. Don't call FS_LOAD_FONT.
7553
7554 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
7555 (x_create_tip_frame): Likewise.
7556 (Fx_close_connection): Free full_name of font_info.
7557
7558 * fns.c (optimize_sub_char_table): New function.
7559 (Foptimize_char_table): New function.
7560 (syms_of_fns): Defsubr Soptimize_char_table.
7561
b33dd3b0
GM
75622000-03-20 Gerd Moellmann <gerd@gnu.org>
7563
7564 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
7565 only if buffer is displayed in some window.
7566
7567 * xdisp.c (handle_single_display_prop): Initialize local `value'.
7568 (try_window_reusing_current_matrix): Don't call scroll run
7569 function if run's current and desired position are the same;
7570 this prevents cursor flickering.
7571
4e8a9132
SM
75722000-03-19 Stefan Monnier <monnier@cs.yale.edu>
7573
7574 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
7575
7576 * regex.c (RE_STRING_CHAR): New macro.
7577 (GET_CHAR_AFER_2): Remove.
7578 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
7579 (enum re_opcode_t): Remove on_failure_jump_exclusive.
7580 (print_partial_compiled_pattern, re_compile_fastmap)
7581 (re_match_2_internal): Remove on_failure_jump_exclusive.
7582 (regex_compile): Turn optimizable P+ loops into PP*, so that the
7583 optimization only need to work for * (ie. can use of_keep_string_jump).
7584 Remove the special case for .*\n since it is now covered by the general
7585 optimization.
7586 (re_search_2): Don't bother with `room'.
7587 (skip_one_char): New function.
7588 (skip_noops): Simplify since `memory' is not needed any more.
7589 (mutually_exclusive_p): Restructure slightly to use `switch' and
7590 add handling for "all" remaining cases.
7591 (re_match_2_internal): Change on_failure_jump_smart to use
7592 on_failure_keep_string_jump (and redirect the end-of-loop jump)
7593 rather than on_failure_jump_exclusive.
7594
2136fdd4
GM
75952000-03-19 Gerd Moellmann <gerd@gnu.org>
7596
7597 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
7598 number of bits per RGB because it's everywhere used as the depth
7599 of the visual.
7600
7601 * term.c (calculate_costs): Remove code dealing with X frames.
7602
18e21ce8 76032000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
7604
7605 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
7606
d7b511c4
GM
76072000-03-18 Gerd Moellmann <gerd@gnu.org>
7608
7609 * lread.c (read_integer): Unread the last char not consumed.
7610
16b5d424
GM
76112000-03-17 Gerd Moellmann <gerd@gnu.org>
7612
7613 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 7614 which are in the process of being deleted.
16b5d424 7615
1fa28578
GM
76162000-03-16 Gerd Moellmann <gerd@gnu.org>
7617
83488cce
GM
7618 * Makefile.in (mostlyclean): Add `*.core'.
7619 (clean): Add `bootstrap-emacs'.
7620
1fa28578
GM
7621 * lread.c (read_integer): New function.
7622 (read1): Support read syntax #o, #x, #b, #r.
7623
99633e97
SM
76242000-03-15 Stefan Monnier <monnier@cs.yale.edu>
7625
1fa28578
GM
7626 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
7627 make sure POINTER_TO_OFFSET gives the same value before and after
7628 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
7629 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
7630 (debug): Now only active if > 0 rather than if != 0.
7631 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
7632 (print_partial_compiled_pattern): Add missing `succeed' case. Use
7633 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
7634 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
7635 (store_op1, store_op2, insert_op1, insert_op2)
7636 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
7637 (group_in_compile_stack): Move to after its arg's types are
7638 declared and add a prototype.
99633e97 7639 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
7640 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
7641 wrapper.
99633e97 7642 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
7643 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
7644 indentation of the greedy-op and shy-group code.
99633e97
SM
7645 (at_(beg|end)line_loc_p): Fix argument's types.
7646 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
7647 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
7648 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
7649 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
7650 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
7651 QUIT unconditionally.
99633e97 7652
699238d9
GM
76532000-03-15 Gerd Moellmann <gerd@gnu.org>
7654
7655 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
7656 a sole completion.
7657
7658 * process.c (send_process): Add a hint that the function
7659 can call Lisp code to its comment.
7660
7661 * lread.c (load_dangerous_libraries): New variable.
7662 (Vbytecomp_version_regexp): New variable.
7663 (safe_to_load_p): New function.
7664 (Fload): Handle files not compiled with Emacs specially.
7665 (syms_of_lread): New Lisp variable load-dangerous-libraries.
7666
34e23e5a
GM
76672000-03-14 Gerd Moellmann <gerd@gnu.org>
7668
9c763cca
GM
7669 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
7670
7671 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
7672 support functions only if HAVE_X11R6_XIM is defined.
7673 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
7674
7675 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
7676
7677 * xfns.c (X_I18N_INHIBITED): Don't define.
7678 (create_frame_xic): Remove conditional compilation on
7679 X_I18N_INHIBITED.
7680 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
7681
7682 * config.in (HAVE_X_I18N): Moved here from xterm.h.
7683 (HAVE_X11R6_XIM): Define.
7684
7685 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
7686
34e23e5a
GM
7687 * xterm.c (x_term_init): Add support for X resource `synchronous'.
7688 If set, call XSynchronize.
7689
66f0296e
SM
76902000-03-13 Stefan Monnier <monnier@cs.yale.edu>
7691
34e23e5a
GM
7692 * regex.c: Declare a new type `re_char' used throughout the code
7693 for the string char type. It's `const unsigned char' to match the
7694 rest of Emacs. Consistently make sure all pointers to strings use
7695 it and make sure all pointers into the pattern use `unsigned
7696 char'.
66f0296e 7697 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
7698 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
7699 code duplication.
66f0296e
SM
7700
7701 * charset.h (GET_CHAR_AFTER_2): Remove.
7702 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
7703
854a025c
KR
77042000-03-12 Ken Raeburn <raeburn@gnu.org>
7705
7706 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
7707 variable before the invocation of YMF_PASS_LDFLAGS, in case both
7708 of them try to use backquotes.
7709
b9d2c7e2
DL
77102000-03-12 Dave Love <fx@gnu.org>
7711
7712 * unexelf.c: Restore changes of 1999-10-19.
7713 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
7714 fix its type and alignment; copy it from current process.
7715
5e5dff44
GM
77162000-03-12 Gerd Moellmann <gerd@gnu.org>
7717
9b2f3c38
GM
7718 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
7719 has been found. Fix bug not computing timer's predecessor.
7720
427ec082 7721 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
7722 file name.
7723
e1cff360
GM
7724 * window.c (Fsave_window_excursion): Doc fix.
7725
5e5dff44
GM
7726 * xfns.c (x_defined_color): Rewritten to use
7727 x_allocate_nearest_color.
7728
e411ce4b
EZ
77292000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
7730
7731 * msdos.c (vga_installed): New function, code moved from
7732 dos_set_window_size.
7733 (Qbar, Qcursor_type, outside_cursor): New variables.
7734 (syms_of_msdos): Intern and staticpro them.
7735 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
7736 shape used outside Emacs when called for the first time.
7737 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
7738 cursor shape used outside Emacs.
7739 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
7740 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
7741 type has changed.
7742 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
7743 parameters specify the cursor. Make qreverse a global
7744 variable (renamed to Qreverse).
7745
80460654
GM
77462000-03-09 Gerd Moellmann <gerd@gnu.org>
7747
7748 * fns.c (Fy_or_n_p): Cancel busy-cursor.
7749
95cd4c40
SM
77502000-03-08 Stefan Monnier <monnier@cs.yale.edu>
7751
7752 This is a big redesign of failure-stack and register handling, prompted
7753 by bugs revealed when trying to add shy-groups. Overall, what happened
7754 is that loops are now structured a little differently, groups can be
7755 shy and the code is a little simpler.
7756
7757 * regex.h: Update the copyright.
7758 (RE_SHY_GROUPS): New value.
7759 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
7760 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
7761
80460654
GM
7762 * regex.c (enum re_opcode_t): Remove jump_past_alt,
7763 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
7764 on_failure_jump_(exclusive, loop and smart). Also fix the comment
7765 for (start|stop)_memory since they now only take one argument (the
7766 second has becomes unnecessary).
7767 (print_partial_compiled_pattern): Adjust for changes in
7768 re_opcode_t.
7769 (print_compiled_pattern): Use %ld to printf long ints and flush to
7770 make debugging a little easier.
95cd4c40
SM
7771 (union fail_stack_elt): Make the integer unsigned.
7772 (struct fail_stack_type): Add a `frame' element.
7773 (INIT_FAIL_STACK): Init `frame' as well.
7774 (POP_PATTERN_OP): New macro for re_compile_fastmap.
7775 (DEBUG_PUSH, DEBUG_POP): Remove.
7776 (NUM_REG_ITEMS): Remove.
7777 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
7778 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
7779 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 7780 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
7781 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
7782 macros.
7783 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
7784 address pushed is not the destination of the jump but the source
7785 of it instead.
95cd4c40
SM
7786 (NUM_FAILURE_ITEMS): Remove.
7787 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
7788 registers before the actual failure point). Don't hardcode any
7789 meaning for str==NULL anymore.
95cd4c40 7790 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
7791 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
7792 Remove.
95cd4c40
SM
7793 (REG_UNSET_VALUE): Use NULL (why not?).
7794 (compile_range): Remove declaration since it doesn't exist.
7795 (struct compile_stack_elt_t): Remove inner_group_offset.
7796 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
7797 (regex_grow_registers): Remove dead code.
7798 (FIXUP_ALT_JUMP): New macro.
80460654
GM
7799 (regex_compile): Add shy-groups Change loops to use
7800 on_failure_jump_smart&jump instead of
7801 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
7802 initial (dummy_failure_)jump. Remove c1_base (looks like unused
7803 variable to me). Use `jump' instead of `jump_past_alt' and don't
7804 bother with push_dummy_failure in alternatives since it is now
7805 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
7806 emacs' for (re)allocating the stack.
7807 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
7808 from loop when bufp->can_be_null rather than jumping to `done'.
7809 Avoid jumping backwards so as to ensure termination. Use
7810 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
7811 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 7812 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
7813 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
7814 improve mutually_exclusive_p to handle ".+\n".
7815 (lowest_active_reg, highest_active_reg,
7816 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
7817 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
7818 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
7819 variables. Push register (in `start_memory') on the stack rather
7820 than storing it in old_reg(start|end). Remove the cycle detection
7821 from `stop_memory', replaced by the use of on_failure_jump_loop
7822 for greedy loops. Add code for the new on_failure_jump_<foo>.
7823 Remove ad-hoc code in `on_failure_jump' to push more registers in
7824 the case of a loop. Take out code from `maybe_pop_jump' into
7825 separate functions and adapt it to the semantics of
7826 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
7827 and push_dummy_failure. Remove dummy_failure handling and
7828 handling of `failures to jump to on_failure_jump' (this last one
7829 was already dead code, it seems).
7830 (group_match_null_string_p, alt_match_null_string_p)
7831 (common_op_match_null_string_p): Remove.
95cd4c40 7832
7397acc4
DL
78332000-03-08 Dave Love <fx@gnu.org>
7834
7835 * config.in: Don't depend on __STDC__ for volatile.
7836 Add POINTER_TYPE, PTR, PROTOTYPES.
7837
7838 * hftctl.c, strftime.c: Use PROTOTYPES.
7839 * eval.c (find_handler_clause): Likewise.
7840
7841 * mem-limits.h: Use POINTER_TYPE.
7842
7843 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
7844 (memory_warnings): Declare using POINTER_TYPE.
7845
5e91ff9e
GM
78462000-03-08 Gerd Moellmann <gerd@gnu.org>
7847
feab4fba
GM
7848 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
7849
25edb08f
GM
7850 * xdisp.c (display_echo_area): Temporarily inhibit garbage
7851 collection.
7852
5e91ff9e
GM
7853 * xfns.c: Remove obsolete code in #if 0.
7854 (Fx_focus_frame): New function.
7855
a735b7e1
KH
78562000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
7857
7858 * coding.c (coding_category_name): Add coding-category-utf-8,
7859 coding-category-utf-16-be, coding-category-utf-16-le.
7860 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
7861 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
7862 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
7863 (detect_coding_utf_8): New function.
7864 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
7865 UTF_16_LOW_SURROGATE_P): New macros.
7866 (detect_coding_utf_16): New function
7867 (detect_coding_mask): When priorities are specified, skip any
7868 categories that have `nil' coding-system. Fix bug of returning
7869 wrong mask when PRIORITIES is specified and detect_coding_XXX()
7870 returns a mask not set in PRIORITIES.
7871 (detect_eol_type_in_2_octet_form): New function.
7872 (detect_eol): selects detect_eol_type_XXX to call according to
7873 cooding->category_idx.
7874 (detect_coding_system): Remove `nil' coding-system in the result.
7875 (Fupdate_coding_systems_internal): Update all coding-categories.
7876
7877 * coding.h (CODING_CATEGORY_IDX_UTF_8,
7878 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
7879 macros.
7880 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
7881 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
7882 CODING_CATEGORY_IDX_UTF_16_LE.
7883 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
7884 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
7885 (CODING_CATEGORY_MASK_ANY): Include the above macros.
7886 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
7887
9994cc69
GM
78882000-03-07 Gerd Moellmann <gerd@gnu.org>
7889
e9b4e5ff
GM
7890 * doc.c (Fdocumentation_property): If value is not a string,
7891 and doesn't refer to etc/DOC, evaluate it to obtain a string.
7892
f7daf1e1
GM
7893 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
7894 close the display with XtCloseDisplay. This caused a bus error
7895 on OpenWindows.
7896
9994cc69
GM
7897 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
7898 complete but not unique.
7899
4336c705
GM
79002000-03-06 Gerd Moellmann <gerd@gnu.org>
7901
18bb0684
GM
7902 * process.c (send_process): Remove local variable `procname' that
7903 might become invalid when a GC happens. Instead, access the
7904 process name slot directly.
7905
4336c705
GM
7906 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
7907 orig_height if set.
7908
7909 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
7910 orig_height if set.
7911
515d0d0e
EZ
79122000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
7913
7914 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
7915 glyph matrices have been freed.
7916
100b3cbb
GM
79172000-03-05 Gerd Moellmann <gerd@gnu.org>
7918
50df5e5a 7919 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 7920 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
7921
7922 * xfns.c (QCdata): Moved to xdisp.c.
7923
7924 * xdisp.c (QCdata): Moved here from xfns.c.
7925 (syms_of_xdisp): Initialize QCdata.
7926
7927 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
7928
7929 * window.c (coordinates_in_window): Use
7930 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
7931 FRAME_INTERNAL_BORDER_WIDTH.
7932
100b3cbb 7933 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 7934 it is obviously invalid.
100b3cbb
GM
7935
7936 * xterm.c (x_term_init): Create a colormap if not using the
7937 default visual.
7938
7939 * xterm.h (select_visual): Change prototype.
7940
7941 * xfns.c (select_visual): Rewritten. Recognize user-specified
7942 visual classes.
7943 (visual_classes): New variable.
7944
64d739c4
GM
79452000-03-04 Gerd Moellmann <gerd@gnu.org>
7946
7947 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
7948 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
7949 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
7950 (x_decode_color): Don't handle allocation of white and black
7951 specially.
7952 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
7953 XtNcolormap resources.
7954 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
7955 (Fx_create_frame): Initialize color members of x_output structure.
7956 (xpm_load): Pass colormap to XPM lib.
7957
7958 * xfaces.c (x_free_colors): Access colormap of frame using
7959 FRAME_X_COLORMAP. Be paranoid about freeing black and white
7960 when default colormap is used.
7961
7962 * xterm.c (x_term_init): Set Colormap member of x_display_info
7963 structure. Copy colormap if resource `privateColormap' is
7964 specified (PseudoColor only).
7965 (x_setup_relief_color): Access colormap of frame using
7966 FRAME_X_COLORMAP.
7967
7968 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
7969 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
7970
c3cee013
JR
79712000-03-04 Jason Rumney <jasonr@gnu.org>
7972
7973 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
7974 other non-platform-specific equivalents.
64d739c4 7975 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
7976 specific functions and macros as their w32 equivalents where
7977 non-platform-specifics are not available.
7978 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
7979 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
7980 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
7981 (frame_update_line_height): Use macros to access f->output_data.
7982 (defined_color): Remove FIXME comments; fixed.
7983 (x_face_list_fonts, prepare_face_for_display): Put X specifics
7984 into #ifdef blocks. Add WINDOWSNT blocks.
7985 (Fx_list_fonts): Use macros for accessing font data.
7986 (set_lface_from_font_name): Different default fonts for X and
7987 WINDOWSNT.
7988 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
7989 scalable for backward compatibility.
64d739c4 7990 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
7991 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
7992
64d739c4 7993 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
7994 syms_of_w32faces.
7995
7996 * makefile.nt (w32faces.obj): Remove.
7997 (xfaces.obj): Add.
7998
807cc41c
JR
79992000-03-03 Jason Rumney <jasonr@gnu.org>
8000
8001 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
8002 correct parameters.
8003
0007072a
KR
80042000-03-03 Ken Raeburn <raeburn@gnu.org>
8005
8006 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
8007 standard ELF definitions here if the system header does not.
8008
71a6ba55
GM
80092000-03-03 Gerd Moellmann <gerd@gnu.org>
8010
8011 * xterm.c (PER_CHAR_METRIC): Removed.
8012 (x_per_char_metric_1, x_default_char): New functions.
8013 (x_per_char_metric): If font's default char is invalid, return
8014 metrics of a suitably chosen usable default char.
8015 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
8016 char, replace occurrences of unprintable chars with a suitably
8017 chosen usable default char.
71a6ba55 8018
900fa1f1
GM
80192000-03-02 Gerd Moellmann <gerd@gnu.org>
8020
42f55fe0
GM
8021 * xterm.c (note_mouse_highlight): Return quickly if frame's
8022 glyph matrices have been freed.
8023
8024 * dispnew.c (free_glyphs): Block input while freeing matrices.
8025
900fa1f1
GM
8026 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
8027
8028 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
8029 x_free_colors.
8030
8031 * dispextern.h (x_free_colors): Add prototype.
8032
8033 * xfaces.c (x_free_colors): New function.
8034 (unload_color, free_face_colors): Use it.
8035
2f950292
EZ
80362000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
8037
8038 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
8039
8040 * window.c [MSDOS]: Include msdos.h.
8041
54d04320
DL
80422000-03-02 Dave Love <fx@gnu.org>
8043
8044 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
8045
8046 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
8047 set C_OPTIMIZE_SWITCH for gcc.
8048
0ba93ac4
KH
80492000-03-02 Kenichi Handa <handa@etl.go.jp>
8050
8051 * coding.c (coding_save_composition): Be sure to allocate
8052 composition data area in coding even if there's no composition in
8053 the current run.
8054
a2bc11d4
JR
80552000-03-01 Jason Rumney <jasonr@gnu.org>
8056
8057 * w32term.c: Equivalent changes to those made to xterm.c on
8058 2000-02-25 and 2000-02-24.
8059
8060 * w32fns.c: Equivalent changes to those made to xfns.c on
8061 2000-02-25 and 2000-02-21.
8062
8063 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
8064 correct line-end convention is followed.
8065
8066 * w32menu.c [HAVE_BOXES]: Remove #undef.
8067 (single_keymap_panes): Remove code for simulating checkmarks.
8068 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
8069 Remove code for drawing simulated checkmarks.
8070 (w32_menu_show): make unibyte help string correctly.
8071 (add_menu_item): draw standard Windows checkmarks. Draw radio
8072 buttons as radio buttons if possible.
8073
72d19d75
GM
80742000-03-01 Gerd Moellmann <gerd@gnu.org>
8075
2df636f4
GM
8076 * sysdep.c (start_of_text): Don't define this function for NetBSD
8077 with ELF.
8078
427ec082 8079 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
8080 Don't define.
8081 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
8082 (LINKER): Don't undef if __NetBSD__ is defined.
8083
8084 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
8085
8086 * fileio.c [__NetBSD__]: Define `unix'.
8087
72d19d75
GM
8088 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
8089
ed4d0512
GM
80902000-02-29 Gerd Moellmann <gerd@gnu.org>
8091
50b1039f
GM
8092 * atimer.c (start_atimer): Don't abort when timers are stopped.
8093 (append_atimer_lists): New function.
8094 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
8095 arbitrary lists of stopped and running atimers.
8096
ed4d0512
GM
8097 * atimer.c (cancel_atimer): Handle canceling an atimer when
8098 some timers are stopped.
8099
8100 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
8101 after canceling it.
8102
8103 * fns.c (maybe_resize_hash_table): Handle case of new size
8104 coming out as being the same as old size.
8105
387023ee
JR
81062000-02-27 Jason Rumney <jasonr@gnu.org>
8107
8108 * makefile.nt: Add atimer.h to dependencies.
8109 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
8110 * w32console.c: Only disable window system features for dispextern.h
8111 (initialize_w32_display): Build a display info for the console.
8112 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
8113 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
8114 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
8115 as 2 button mice.
8116 * w32gui.h (struct W32FontStruct): Revert last change after change
8117 to xdisp.c.
8118 * w32menu.c (single_submenu): Set up help string.
8119 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
8120 (w32_dialog_show): Set up help string.
8121 * w32term.c (w32_display_info_for_display): Remove unused function.
8122 (w32_draw_bitmap): Use pre-built bitmaps.
8123 (w32_initialize_display_info): New function to initialize parts of
8124 display info that are common to both GUI and console frames.
8125 (w32_term_init): Use w32_initialize_display_info. Do not set
8126 Vw32_num_mouse_buttons here, as it is not called for console
8127 frames. Build bitmaps for indicating truncated lines etc.
8128 (x_delete_display): Destroy pre-built bitmaps.
8129 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
8130 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
8131
4516715a
DL
81322000-02-27 Dave Love <fx@gnu.org>
8133
8134 * lisp.h: Add a bunch of prototypes.
8135
171ca836
KH
81362000-02-26 Kenichi Handa <handa@etl.go.jp>
8137
8138 * keyboard.c (read_char): Set `usec' correctly.
8139
4013921d
KH
81402000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
8141
8142 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
8143 `lambda', set reg[RRR] to the map index.
8144 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
8145 reg[RRR] to 0. Otherwise, set it to -1.
8146
9244a058
GM
81472000-02-25 Gerd Moellmann <gerd@gnu.org>
8148
2df636f4 8149 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 8150
18e21ce8 81512000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 8152
f43d79c1
GM
8153 * fileio.c (Ffile_symlink_p): If result starts with a `/'
8154 and contains a `:', prepend `/:'.
8155
8156 * window.c (select_window_1): If selected_window is nil,
8157 don't "swap out" the buffer's point.
8158 (Fset_window_configuration): Set selected_window to nil
8159 before calling Fselect_window.
8160 (unshow_buffer): Don't set point in buffer from window's point
8161 if another more recently selected window also shows the buffer.
8162
bed0c171
GM
81632000-02-25 Gerd Moellmann <gerd@gnu.org>
8164
449c3c52
GM
8165 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
8166
f5b58615
GM
8167 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
8168 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
8169 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
8170 variables.
8171 (DEFAULT_BUSY_CURSOR_DELAY): New define.
8172 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
8173 (hide_busy_cursor): New functions.
8174 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
8175
8176 * minibuf.c (read_minibuf): Cancel busy-cursor.
8177
8178 * keyboard.c (command_loop_1): Call start_busy_cursor before
8179 Fcommand_execute and cancel_busy_cursor after it.
8180 (timer_check): Remove busy-cursor code.
8181 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
8182 cursor timer.
8183
8184 * process.c (wait_reading_process_input): Remove busy-cursor code.
8185
8186 * eval.c (Fsignal): Call cancel_busy_cursor instead of
8187 Fx_hide_busy_cursor.
8188
8189 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
8190 Remove prototyoes.
8191 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
8192
8193 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
8194
8195 * xterm.c (XTread_socket): Remove busy-cursor code.
8196
4eb8436f
GM
8197 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
8198 (build_frame_matrix_from_leaf_window): Put code handling
8199 glyph row's not being a slice of a frame row in #if 0.
8200 (sync_window_with_frame_matrix_rows): New function.
8201 (frame_row_to_window): New function.
8202 (mirror_line_dance): Handle copies between windows.
8203
3cb65b0e
GM
8204 * lread.c (Fload): Use `xfree' instead of `free'.
8205 (init_obarray): Use `xmalloc' instead of `malloc'.
8206
bed0c171
GM
8207 * window.c (Fset_window_buffer): Set WINDOW to the window
8208 after decoding.
2add4349
GM
8209 (coordinates_in_window): Take frame's internal border width
8210 into account.
bed0c171 8211
42088c12
GM
82122000-02-24 Gerd Moellmann <gerd@gnu.org>
8213
8214 * xterm.c (x_display_and_set_cursor): Display cursor of
8215 non-selected windows depending on the setting of
8216 cursor_in_non_selected_windows.
8217
8218 * xdisp.c (cursor_in_non_selected_windows): New variable.
8219 (syms_of_xdisp): DEFVAR_BOOL it.
8220
d1e103b2
GM
82212000-02-23 Gerd Moellmann <gerd@gnu.org>
8222
723e779c
GM
8223 * data.c (Fstring_to_number): If number is greater than what
8224 fits into an integer, return a float.
8225
d1e103b2
GM
8226 * eval.c (specbind): Remove references to
8227 keyword_symbols_constant_flag.
8228
8229 * data.c (keyword_symbols_constant_flag): Removed.
8230 (Fmakunbound, set_internal, syms_of_data): Remove references to
8231 keyword_symbols_constant_flag.
8232
8233 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
8234
214f877f
KH
82352000-02-23 Kenichi Handa <handa@etl.go.jp>
8236
8237 * syntax.c (multibyte_syntax_as_symbol): New variable.
8238 (syms_of_syntax): Declare it as a Lisp variable.
8239 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
8240 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
8241 nonzero, treat all multibyte characters as symbol.
42088c12 8242 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
8243 characters.
8244
130adcb7
EZ
82452000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
8246
3cb65b0e 8247 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 8248 a deleted frame.
130adcb7 8249
17cbbf95
GM
82502000-02-21 Gerd Moellmann <gerd@gnu.org>
8251
8252 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
8253
8254 * xfns.c (x_window_to_frame, x_any_window_to_frame)
8255 (x_non_menubar_window_to_frame): Check the busy-cursor window.
8256
beb0bc36
DL
82572000-02-21 Dave Love <fx@gnu.org>
8258
8259 * frame.c (Vmouse_position_function): New variable.
8260 (Fmouse_position): Use it.
8261 (syms_of_frame): Install it.
8262
8263 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
8264
1d92afcd
GM
82652000-02-20 Gerd Moellmann <gerd@gnu.org>
8266
8267 * fileio.c (Finsert_file_contents): Unbind the binding of
8268 standard-output done by temp_output_buffer_setup.
329eed9f
GM
8269
8270 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
8271 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
8272 (specbind, unbind_to): Handle most common case of non-constant
8273 symbol with trivial value specially.
8274
8275 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
8276
18e21ce8 82772000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
8278
8279 * data.c (Fmake_variable_buffer_local): Doc fix.
8280 Init found_for_buffer to 0.
8281 (Fmake_variable_frame_local): If the variable has already
8282 been buffer-local, set the check_frame field.
8283
1d4311c3
EZ
82842000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
8285
8286 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
8287 produced for CODING_MODE_LAST_BLOCK requires.
8288
2dc95ddd
DL
82892000-02-18 Dave Love <fx@gnu.org>
8290
8291 * keyboard.c (echo_keystrokes): Remove declaration.
8292 (Vecho_keystrokes) New variable.
8293 (read_char, record_menu_key, read_key_sequence): Use it to allow
8294 use of float value.
8295 (syms_of_keyboard): Change Vecho_keystrokes declaration.
8296
8297 * lread.c: Undef feature selection macros before defining.
8298
f0930f35
GM
82992000-02-18 Gerd Moellmann <gerd@gnu.org>
8300
8301 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
8302 for symbols other than the symbol in question.
8303
e3d4de90
DL
83042000-02-17 Dave Love <fx@gnu.org>
8305
8306 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
8307
0b378936
GM
83082000-02-17 Gerd Moellmann <gerd@gnu.org>
8309
d621caf7
GM
8310 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
8311
0b378936
GM
8312 * alloc.c (enum mem_type): Compile unconditionally.
8313
3b451f74
EZ
83142000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
8315
8316 * xfaces.c (tty_defined_color): Don't return faulire indication
8317 for unspecified-fg and unspecified-bg pseudo-colors.
8318
10689a01
GM
83192000-02-17 Gerd Moellmann <gerd@gnu.org>
8320
1216f5e4
GM
8321 * alloc.c (mark_object): Don't mark symbol names in pure space.
8322 (gc_sweep): Don't unmark symbol names in pure space.
8323
8324 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
8325 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
8326 [GC_MARK_STACK]: New defines.
427ec082 8327 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
8328 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
8329
8330 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
8331
8332 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
8333 allocate_buffer instead of xmalloc.
8334
8335 * alloc.c (toplevel): Include setjmp.h.
8336 (PURE_POINTER_P): New define.
8337 (enum mem_type) [GC_MARK_STACK]: New enumeration.
8338 (Vdead) [GC_MARK_STACK]: New variable.
8339 (lisp_malloc): Add parameter TYPE, call mem_insert if
8340 GC_MARK_STACK is defined.
8341 (allocate_buffer): New function.
427ec082 8342 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
8343 (free_float) [GC_MARK_STACK]: Set type to Vdead.
8344 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
8345 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
8346 (MEM_NIL) [GC_MARK_STACK]: New define.
8347 (struct mem_node) [GC_MARK_STACK]: New structure.
8348 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
8349 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
8350 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
8351 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
8352 (mark_stack) [GC_MARK_STACK]: New functions.
8353 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
8354 (clear_marks): Removed.
8355 (gc_sweep): Set free conses' car, free floats' type, free
8356 symbols' function to Vdead. Use lisp_free to free buffers.
8357 (init_alloc_once): Initialize Vdead.
8358 (survives_gc_p): Return non-zero for pure objects.
8359
8360 * alloc.c: Add comments throughout the file.
8361
2503c8b1
GM
8362 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
8363 that unblocks alarms.
8364
8389e1e2
GM
8365 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
8366 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
8367 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
8368
10689a01 8369 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 8370
bfc17d18
KH
83712000-02-17 Kenichi Handa <handa@etl.go.jp>
8372
4a09dee0
KH
8373 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
8374 avoid infinite error signaling. Allocate sufficient memory for
8375 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 8376
2b927d02
SM
83772000-02-17 Stefan Monnier <monnier@cs.yale.edu>
8378
8379 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
8380 depends on the previous behavior.
8381
b49cb764
GM
83822000-02-16 Gerd Moellmann <gerd@gnu.org>
8383
8384 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
8385
99e95407
GM
83862000-02-15 Gerd Moellmann <gerd@gnu.org>
8387
8388 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
8389
8390 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 8391 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
8392 write(2).
8393
6ffd3cf7
RS
83942000-02-15 Richard M. Stallman <rms@gnu.org>
8395
8396 * data.c (set_internal): Don't make variable buffer-local
8397 if within a let-binding for the same buffer.
8398 (let_shadows_buffer_binding_p): New function.
8399
8400 * eval.c (specbind): For buffer-local value,
8401 record the current buffer also.
8402 (unbind_to): Cope with that change.
8403
cad53475
GM
84042000-02-15 Gerd Moellmann <gerd@gnu.org>
8405
8406 * window.c (Fsave_window_excursion): Doc fix.
8407
1aa963c8
SM
84082000-02-15 Stefan Monnier <monnier@cs.yale.edu>
8409
8410 * syntax.c (back_comment): Make sure we only consider comment-starters
8411 of the relevant style and return -1 in case of a failure to find the
8412 beginning of the comment.
8413 (Fforward_comment): If back_comment fails, go back to the position just
8414 after the comment-end.
8415 (scan_lists): Add comment describing a very minor bug.
8416
b9b84fd3
SM
84172000-02-14 Stefan Monnier <monnier@cs.yale.edu>
8418
8419 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
8420 `completion-regexp-list' in the docstring.
8421
3a28db80
DL
84222000-02-14 Dave Love <fx@gnu.org>
8423
8424 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
8425
fb4a568d
SM
84262000-02-14 Stefan Monnier <monnier@cs.yale.edu>
8427
8428 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
8429 to Emacs' syntax. Also fix the comment about set/not-set meanings
8430 since Emacs syntax is not the value 0 any more.
8431 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
8432 since it's now part of RE_SYNTAX_EMACS.
8433
1063ebb5
DL
84342000-02-12 Dave Love <fx@gnu.org>
8435
8436 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
8437 Alpha.
8438
fb07a302
GM
84392000-02-12 Gerd Moellmann <gerd@gnu.org>
8440
8441 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
8442
aaf2320c
DL
84432000-02-12 Dave Love <fx@gnu.org>
8444
8445 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
8446
8447 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
8448 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
8449 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
8450
8451 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
8452
8453 * s/nextstep.h: Don't define HAVE_ALLOCA.
8454
8455 * config.in: Add vfork bits.
8456
eedf8bde
GM
84572000-02-12 Gerd Moellmann <gerd@gnu.org>
8458
8459 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
8460 unwind function to undo the effect of stopping atimers.
8461
8462 * keyboard.c (bind_polling_period): Stop all timers except
8463 poll_timer.
8464
8465 * atimer.c (stopped_atimers): New variable.
8466 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
8467 New functions.
8468
8469 * atimer.h (stop_other_atimers, run_all_atimers)
8470 (unwind_stop_other_atimers): Add function prototypes.
427ec082 8471
eedf8bde
GM
8472 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
8473
8476c2f8
KR
84742000-02-11 Ken Raeburn <raeburn@gnu.org>
8475
8476 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
8477 library may depend on jpeg.
8478 (atimer.o): Depends on atimer.c.
8479
0e85e4a3
KH
84802000-02-11 Kenichi Handa <handa@etl.go.jp>
8481
8482 * insdel.c (del_range_1): Call update_compositions.
8483 (del_range_both): Call update_compositions just once..
8484
97fa0cc8
DL
84852000-02-10 Dave Love <fx@gnu.org>
8486
8487 * xfns.c (create_frame_xic): Fix initialization of automatic
8488 aggregates for pcc.
8489
25566a3c
KH
84902000-02-09 Kenichi Handa <handa@etl.go.jp>
8491
8492 * ccl.c (CCL_MAKE_CHAR): New macro.
8493 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
8494 registers by CCL_MAKE_CHAR before calling translate_char.
8495 <CCL_TranslateCharacterConstTbl> Likewise.
8496
69da54ba
DL
84972000-02-08 Dave Love <fx@gnu.org>
8498
8499 * lread.c (__EXTENSIONS__): Define.
8500
f7136ee8
GM
85012000-02-08 Gerd Moellmann <gerd@gnu.org>
8502
8503 * puresize.h (BASE_PURESIZE): Increase to 650000.
8504
7768790b
EZ
85052000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
8506
8507 * msdos.c (XMenuActivate): Turn off the cursor after displaying
8508 the help message.
8509
38fd211b
EZ
85102000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
8511
8512 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
8513 md, mh, mb, mr, and me to the fake termcap entry.
8514
66e4690f
KR
85152000-02-06 Ken Raeburn <raeburn@gnu.org>
8516
8517 * sound.c (sound_cleanup): Don't call device close routine if the
8518 function pointer is null.
8519
a75dfea0
AI
85202000-02-06 Andrew Innes <andrewi@gnu.org>
8521
8522 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
8523 around image definitions and prototypes.
8524 (gamma_correct) [WINDOWSNT]: New prototype.
8525
8526 * w32term.c (x_make_frame_visible): Replace call to
8527 input_poll_signal with poll_for_input.
8528
8529 * window.c [WINDOWSNT]: Include w32term.h.
8530
8531 * xdisp.c [WINDOWSNT]: Include w32term.h.
8532
8533 * makefile.nt: Add dependencies on w32gui.h.
8534 (OBJ1): Include atimer.obj.
8535 ($(BLD)\atimer.obj): New dependency rule.
8536
8537 * w32.c (sigmask): New function (does nothing).
8538 (sigunblock): Ditto.
8539
8540 * frame.c [WINDOWSNT]: Include w32term.h.
8541
8542 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
8543
8544 * lread.c (syms_of_lread): Fix literal newlines.
8545
8546 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
8547 the string constant limit (2048 bytes) in MSVC.
8548 (main): Ditto.
8549
59ddecde
GM
85502000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
8551
8552 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
8553 area.
8554 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
8555 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
8556 dispatch the event.
8557
07590973
DL
85582000-02-04 Dave Love <fx@gnu.org>
8559
8560 * fileio.c: Remove some unused vars.
8561 (_GNU_SOURCE): Define (for euidaccess).
8562
8563 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
8564
8565 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
8566 gcpro1, gcpro2.
8567 (read_minibuf): Deal with allow_props correctly.
8568
649351f9
EZ
85692000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
8570
8571 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
8572
66e4690f 85732000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
8574
8575 * search.c (compile_pattern): If a cache entry has a nil regexp,
8576 fill in that entry instead of clobbering a previously cached
8577 string regexp.
8578
66e4690f 85792000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
8580
8581 * puresize.h (BASE_PURESIZE): Increase to 610000.
8582
d240a249
GM
85832000-02-02 Gerd Moellmann <gerd@gnu.org>
8584
8585 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
8586 can GC.
8587
ca91fb26
KH
85882000-02-02 Kenichi Handa <handa@etl.go.jp>
8589
25660570
KH
8590 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
8591 instead of incrementing ic directly.
8592 <CCL_WriteExprConst> Likewise.
8593 <ccl_set_expr>: Set ic to jump_address.
8594
ca91fb26
KH
8595 * fileio.c (e_write): Fix the handling of
8596 CODING_FINISH_INSUFFICIENT_SRC.
8597
2ede9689
DL
85982000-02-01 Dave Love <fx@gnu.org>
8599
8600 * editfns.c (Fpropertize): Doc fix.
8601
8602 * process.c (Fstart_process): Doc fix.
8603
8604 * eval.c: Fix various doc strings not to duplicate information
8605 from help-manyarg-func-alist.
8606
8607 * window.c (Fset_window_margins): Don't make interactive. Doc
8608 fix.
8609
8610 * doc.c (Vhelp_manyarg_func_alist): New variable.
8611 (Fdocumentation): Use it.
8612 (syms_of_doc): Define it.
8613
b6680a0e
GM
86142000-01-31 Gerd Moellmann <gerd@gnu.org>
8615
2cb750ba
GM
8616 * xterm.c (xim_open_dpy): Remove unused local variable.
8617
74e9213b
GM
8618 * emacs.c (USAGE): Use term `display options' instead of `X
8619 options'.
8620
8621 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
8622 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
8623
b6680a0e
GM
8624 * fns.c (sweep_weak_table): New function.
8625 (sweep_weak_hash_tables): Use it. Keep on marking until there
8626 is no more change.
8627
994c5afe
GM
86282000-01-30 Gerd Moellmann <gerd@gnu.org>
8629
8630 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
8631 that XTread_socket does not crash by trying to call XNoOp on a
8632 closed display.
427ec082 8633
f00276e3
JR
86342000-01-30 Jason Rumney <jasonr@gnu.org>
8635
8636 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
8637 Change selected_frame to SELECTED_FRAME ().
8638 (w32_console_mouse_position): Remove #ifndef MULE from around
8639 `insist' parameter.
8640
8641 * makefile.nt: Remove dosfns.obj.
8642
8643 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
8644
8645 * w32fns.c (w32_defined_color): Check for valid frame before
8646 applying gamma correction. Eliminate dependency on frame elsewhere.
8647 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
8648 (w32_to_x_font): Use resx and resy not height_in and width_in.
8649 (x_to_w32_font): Doc fix.
8650 (xlfd_strip_height): New function to strip and return font height.
8651 (w32_font_match): Compare height separately from rest of xlfd
8652 spec, using xlfd_strip_height.
8653
8654 * w32term.c (w32_term_init): Swap resx and height_in, resy and
8655 width_in. Use w32_defined_color in place of defined_color.
8656
8657 * w32faces.c: Merge more of DOS and X specifics in preparation for
8658 merge with xfaces.c.
8659 (defined_color): Remove FIXME comment.
8660 (tty_color_name): Provide w32-specific function.
8661 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
8662
8663 * w32console.c (turn_on_face, turn_off_face): Removed.
8664 (w32_face_attributes): New function.
8665 (Global_variables): Reduce scope where possible.
8666 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
8667 fill attribute.
8668 (hl_mode): Don't modify text attributes.
8669 (write_glyphs): Don't do anything if len <= 0. Use
8670 w32_face_attributes to get attributes for drawing. Write
8671 terminating codes using char_attr_normal.
8672 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
8673 (update_begin, update_end): Likewise.
8674 (vga_stdcolor_name): New function.
8675 (initialize_w32_display): Remove char_attr_reverse and char_attr.
8676 (Fset_screen_color): Remove char_attr_reverse.
8677
b08e8bb2
GM
86782000-01-29 Gerd Moellmann <gerd@gnu.org>
8679
8680 * xfns.c (xic_set_preeditarea): Take window parameter and
8681 window-relative pixel-positions.
8682
8683 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
8684 is its frame's selected window.
8685 (xim_instantiate_callback): Likewise.
8686
8687 * xfns.c (x_create_im): Removed.
8688 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
8689 (supported_xim_styles): Renamed from supported_styles.
8690 (best_xim_style): Renamed from best_style.
8691 (create_frame_xic): Renamed from xic_create_frame.
8692 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 8693
b08e8bb2
GM
86942000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
8695
8696 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
8697 our frames, call XFilterEvent with 2nd parameter `None'.
8698 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
8699 returning XBufferOverflow.
8700 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
8701 area.
8702 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
8703 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
8704 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
8705 (xim_initialize, xim_close)
8706 [HAVE_X_I18N && HAVE_X11R6]: New functions.
8707 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
8708 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
8709 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
8710
8711 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
8712 and `xim_styles'.
8713 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
8714 `xic_style' and `xic_xfs'.
8715 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
8716 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
8717 (FRAME_XIM): Removed.
8718
8719 * xfns.c (supported_styles): New variable.
8720 (DEFAULT_STYLE, DEFAULT_FONT): New macros
8721 (xic_create_xfontset, best_style, xic_create_frame)
8722 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
8723 (xic_set_xfontset): New functions.
8724
142e109c
DL
87252000-01-28 Dave Love <fx@gnu.org>
8726
8727 * s/irix6-5.h: Revert last change after change to irix5-0.h.
8728
8729 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
8730
b02786f9
GM
87312000-01-28 Gerd Moellmann <gerd@gnu.org>
8732
d060bc9f
GM
8733 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
8734 for *scratch* if it already existed.
8735
b02786f9
GM
8736 * emacs.c (USAGE): New macro.
8737 (main): Use it to display usage information.
8738
2c52d7e4
EZ
87392000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
8740
8741 Support for the menu-help feature:
8742
8743 * msdos.h: Change prototypes of XMenuAddSelection and
8744 XMenuActivate.
8745
8746 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
8747 part of the line to the termscript file.
8748 (IT_clear_to_end): Clear the entire line, not just its beginning.
8749 (menu_help_message, prev_menu_help_message): New variables.
8750 (IT_menu_make_room): Make room for the help_text member.
8751 (IT_menu_display): New argument disp_help; all callers changed.
8752 If disp_help is non-zero, store the help text of the active menu
8753 item in menu_help_message.
8754 (XMenuAddPane): Initialize the help_text member to NULL.
8755 (XMenuAddSelection): New argument help_text. Store it in the
8756 XMenu structure.
8757 (XMenuActivate): New argument help_callback. If the value of
8758 menu_help_message has changed since the last time, display the
8759 menu help message text while waiting for the mouse to move. Clear
8760 the echo area before exiting.
8761 (XMenuDestroy): Free the help_text member.
8762
ffe0bcd1
GM
87632000-01-27 Gerd Moellmann <gerd@gnu.org>
8764
8765 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
8766 XMenuAddSelection. Pass help callback to XMenuActivate.
8767 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
8768
50dbd23f
EZ
87692000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
8770
8771 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
8772 and EMACS_SET_USECS.
8773
f5941bf8
GM
87742000-01-26 Dave Love <fx@gnu.org>
8775
6c67ddee
DL
8776 * editfns.c (Fchar_after, Fchar_before): Doc fix.
8777
f5941bf8
GM
8778 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
8779 an error may be signalled.
8780
9e49c990
GM
87812000-01-26 Gerd Moellmann <gerd@gnu.org>
8782
fc3cb460
GM
8783 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
8784 LD_SWITCH_SYSTEM inherited from irix5-0.h.
8785
9e49c990
GM
8786 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
8787
d0c037d8
GM
87882000-01-25 Gerd Moellmann <gerd@gnu.org>
8789
8790 * charset.c (Fstring): If there is a multibyte char among
8791 the args, always return a multibyte string.
8792
e12489f9
GM
87932000-01-25 Gerd Moellmann <gerd@gnu.org>
8794
8795 * sysdep.c (sys_select): Turn atimers off and on instead of
8796 recording and restoring old alarm handler
8797
8798 * process.c (toplevel): Include atimer.h.
8799 (create_process_1): Rewritten.
8800 (create_process): Use atimers instead of alarm.
8801 (wait_reading_process_input) [hpux]: Turn atimers off instead
8802 of turning off SIGALRM.
8803 (wait_reading_process_input): Turn off atimers instead off
8804 calling stop_polling.
8805
8806 * emacs.c (main): Call init_atimer.
8807
8808 * keyboard.c (toplevel): Include systime.h and atimer.h.
8809 (polling_for_input): Removed because unused.
8810 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
8811 (poll_timer): New variable.
8812 (poll_for_input, poll_for_input_1): New functions.
8813 (start_polling, stop_polling): Rewritten.
8814
8815 * keyboard.h (polling_for_input): Removed.
427ec082 8816
e12489f9
GM
8817 * atimer.h, atimer.c: New files.
8818
8819 * Makefile.in (obj): Add atimer.o.
8820 (atimer.o): New target.
8821
8822 * blockinput.h (pending_atimers): Add extern declaration.
8823 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
8824
8825 * lisp.h (popup_activated_flag): Add extern declaration.
8826
8827 * xmenu.c (popup_activated_flag): Make externally visible.
8828 (popup_activate_callback) [USE_MOTIF]: Increment
8829 popup_activated_flag.
8830 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
8831
8832 * xterm.c (toplevel): Include atimer.h.
8833 (toolkit_scroll_bar_interaction): New variable.
8834 (Fxt_process_timeouts): Removed.
8835 (x_process_timeouts): New function.
8836 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
8837 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
8838 (x_make_frame_visible): Call poll_for_input_1 instead of
8839 input_poll_signal. Don't call alarm.
8840 (x_initialize): Install timer calling x_process_timeouts.
427ec082 8841
1e5279b9
DL
88422000-01-24 Dave Love <fx@gnu.org>
8843
6c67ddee 8844 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
8845 Don't use -cckr -- apparently not now necessary.
8846
edf6aeb8
EZ
88472000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
8848
8849 * msdos.c (IT_menu_display): Truncate long menu lines at the right
8850 screen boundary.
8851
9badad41
JR
88522000-01-23 Jason Rumney <jasonr@gnu.org>
8853
8854 * w32fns.c (w32_defined_color): Apply gamma correction before
8855 trying to map to the palette.
8856 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
8857 to w32_clear_rect.
8858
8859 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
8860 here. Callers changed to always pass real device context.
8861 (w32_draw_bitmap): Likewise.
8862 (w32_get_glyph_overhangs): Likewise.
8863 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
8864 one.
8865 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
8866 pfnSetScrollInfo and SetScrollRange.
8867 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
8868 back into MULE characters after decoding them.
8869 (x_get_glyph_face_and_encoding): Likewise.
8870 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
8871 GetCharABCWidthsW fails, since this is defined on Windows 9x.
8872 (x_produce_glyphs): Calculate per char metrics for a character
8873 that we know exists in default font when font_not_found_p is true.
8874
63bd786b
JR
88752000-01-22 Jason Rumney <jasonr@gnu.org>
8876
8877 * makefile.nt (intervals.obj, composite.obj): New modules.
8878 (composite.h): Added as dependency where appropriate.
8879
8880 * w32gui.h (XGCValue): New struct for emulating X GCs.
8881
8882 * w32term.h (XCharStruct): New struct for emulating X.
8883
8884 * w32console.c (turn_on_face, turn_off_face): New functions.
8885 (change_line_highlight): New prototype for new redisplay.
8886 (write_glyphs): Support multibyte text. Support faces.
8887
8888 * w32faces.c: Complete rewrite for new redisplay based on new
8889 xfaces.c.
8890
8891 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
8892 throughout. struct frame * in place of FRAME_PTR.
8893 Skeleton support for images, toolbars, tooltips from xfns.c.
8894 (Fx_create_frame): Use system default for default scroll bar
8895 width.
8896 (w32_get_arg): Renamed from x_get_arg.
8897 (Fx_file_dialog): New function.
8898 (w32_list_fonts): Check cache before asking system.
8899 (Vw32_enable_synthesized_fonts): New variable.
8900 (Vw32_enable_italics): Obsolete, removed.
8901
8902 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
8903 Use SELECTED_FRAME macro.
8904
8905 * w32menu.c: Add skeleton support for help strings on menus.
8906 (add_menu_item): Native checkbox and radio support added, but not
8907 yet enabled due to bugs.
8908 (push_menu_item): Add parameters type, selection and help.
8909 Callers updated.
8910 Formatting changes to reduce unnecessary diffs with xmenu.c.
8911
8912 * w32select.c (Fw32_set_clipboard_data): Update call to
8913 find_charset_in_str.
8914
8915 * w32term.c: Complete rewrite for new redisplay based on new
8916 xterm.c with necessary sections merged back in from old w32term.c.
8917
6ffd3cf7 89182000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
8919
8920 * data.c (set_internal): Further fix in same criterion.
8921
6ffd3cf7 89222000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
8923
8924 * data.c (set_internal): Fix the criteria for whether
8925 to swap out the old cached binding.
8926
60af03f1
DL
89272000-01-19 Dave Love <fx@gnu.org>
8928
8929 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
8930
f9be074f
KH
89312000-01-18 Kenichi Handa <handa@etl.go.jp>
8932
8933 * regex.c (re_compile_fastmap): While checking a range table for
8934 `charset', skip flag bits for a character class correctly.
8935
52b8dbf9
GM
89362000-01-17 Gerd Moellmann <gerd@gnu.org>
8937
d36100c9
GM
8938 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
8939
52b8dbf9
GM
8940 * xfns.c (x_window): Call lw_create_widget with new parameter
8941 list.
8942
8943 * widget.c (EmacsFrameSetCharSize): Change size of children first
8944 because of problems with main window geometry management under
8945 Lesstif.
8946
8947 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
8948 MENU_ITEMS_ITEM_.*.
8949 (MENU_ITEMS_ITEM_HELP): New enumerator.
8950 (push_menu_item): Add parameter HELP. Record help in menu_items.
8951 (single_menu_item, single_submenu, list_of_items): Call
8952 push_menu_item with new parameter.
8953 (single_submenu): Set help string in widget value.
8954 (menu_highlight_callback): New function.
8955 (set_frame_menubar): Call lw_create_widget with new
8956 parameter list.
8957 (xmenu_show, xdialog_show): Ditto.
8958
3139018f
GM
89592000-01-13 Gerd Moellmann <gerd@gnu.org>
8960
8961 * sound.c (Fplay_sound): Improve doc string.
8962
83c8f461
RS
89632000-01-11 Richard M. Stallman <rms@gnu.org>
8964
8965 * lisp.h (set_internal): Enter the new arg.
8966
8967 * eval.c (specbind): Record buffer-local variables specially,
8968 indicating which buffer's binding was saved.
8969 (unbind_to): Restore buffer-local variables specially
8970 in the proper buffer.
8971
8972 * data.c (set_internal): New arg BUF.
427ec082 8973
83c8f461
RS
8974 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
8975 * data.c (Fset): Pass new arg to set_internal.
8976 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 8977
1fab1775
GM
89782000-01-11 Gerd Moellmann <gerd@gnu.org>
8979
8980 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
8981 xprintsym.
8982
83c8f461 89832000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
8984
8985 * minibuf.c (Ftry_completion): Doc fix.
8986
7a85e4df
GM
89872000-01-11 Gerd Moellmann <gerd@gnu.org>
8988
8989 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
8990 vector, too.
8991
a970dae4
AS
89922000-01-11 Andreas Schwab <schwab@suse.de>
8993
8994 * coding.c (code_convert_region): Initialize total_skip.
8995
c65d14ee
DL
89962000-01-08 Dave Love <fx@gnu.org>
8997
8998 * eval.c (Fuser_variable_p): Check customizability too.
8999
834938d2
GM
90002000-01-07 Gerd Moellmann <gerd@gnu.org>
9001
9002 * minibuf.c (Fcompleting_read): Doc fix.
9003
e0303cd6
GM
90042000-01-05 Gerd Moellmann <gerd@gnu.org>
9005
8a26744b
GM
9006 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
9007 -L /usr/local/lib.
9008
e0303cd6
GM
9009 * xfns.c (x_create_im): New function to set IM and IC of a frame.
9010 Check that input style is supported before trying to create an
9011 IC for it.
9012 (x_window): Call x_create_im.
427ec082 9013
2e471eb5
GM
90142000-01-04 Gerd Moellmann <gerd@gnu.org>
9015
560a7bd2
GM
9016 * xfns.c (current_gif_memory_src): New variable.
9017 (gif_load): Record the address of the current memory source
9018 in current_gif_memory_src.
9019 (gif_read_from_memory): Use current_gif_memory_src.
9020
f9ee84a3
GM
9021 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
9022 macros statement form.
9023
d1299cde
GM
9024 * sound.c (struct sound): Renamed from struct sound_file.
9025 (struct sound): Add members `data' and `header_size'.
9026 (enum sound_attr): Add SOUND_DATA.
9027 (current_sound, current_sound_device): Variables renamed from
9028 sound_file and sound_device.
9029 (parse_sound): Parse :data.
9030 (parse_sound): Handle sound data in strings.
9031 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 9032 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
9033 needed header size.
9034 (wav_play, au_play): Play sounds from string data.
9035
2e471eb5
GM
9036 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
9037
9038 * lisp.h: Add prototype for allocate_string_data.
9039
9040 * alloc.c (Fgarbage_collect): Return number of live and free
9041 strings.
9042
9043 * alloc.c (mark_buffer): Remove code in #if 0.
9044 (gc_sweep): Ditto.
9045 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
9046 (strings_consed): New variable.
9047 (allocate_string): Set it.
9048 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
9049 (Fmemory_use_counts): Return strings_consed. Use Flist.
9050
9051 * alloc.c: General cleanup in comments etc. Remove conditional
9052 compilation for `standalone'.
9053
9054 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
9055
9056 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
9057 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
9058 (DONT_COPY_FLAG): Removed.
9059 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
9060 (struct sdata, struct sblock): New
9061 (struct string_block): Rewritten.
9062 (STRINGS_IN_STRING_BLOCK): New macro.
9063 (oldest_sblock, current_sblock, total_strings, total_free_strings)
9064 (large_sblocks, string_blocks, string_free_list): New variables.
9065 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
9066 (init_strings): Rewritten.
9067 (allocate_string, allocate_string_data, compact_small_strings)
9068 (free_large_strings, sweep_strings): New functions.
9069 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
9070 (struct string_block_head, current_string_block)
9071 (first_string_block, large_string_blocks, STRING_FULLSIZE)
9072 (STRING_PAD): Removed.
9073 (make_uninit_multibyte_string, make_pure_string): Rewritten.
9074 (Fgarbage_collect): Don't set mark bit in large strings.
9075 (mark_object): Mark strings differently. Mark symbol names
9076 differently.
9077 (survives_gc_p): Test marked strings differently.
427ec082 9078 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
9079 symbol names.
9080 (compact_strings): Removed.
9081
42608ba8
EZ
90822000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
9083
9084 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
9085 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
9086
e0a09e1a
KH
90872000-01-04 Kenichi Handa <handa@etl.go.jp>
9088
dd9f0750 9089 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 9090 in a non-empty buffer.
dd9f0750 9091
3c0f3b15 9092 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 9093
44cd3ae5
GM
90942000-01-03 Gerd Moellmann <gerd@gnu.org>
9095
9096 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
9097 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
9098
9099 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
9100
c182a70f
EZ
91012000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
9102
9103 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
9104 need to test for MSDOS frames.
9105
24480d5b
EZ
91062000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
9107
9108 * dosfns.c (unspecified_colors): Remove.
9109 (msdos_stdcolor_idx): Use global variables unspecified_fg and
9110 unspecified_bg.
9111 (msdos_stdcolor_name): Return strings for unspecified fore- and
9112 back-ground colors.
9113
9114 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 9115 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
9116 (tty_color_name): Return Lisp strings for unspecified fore- and
9117 back-ground colors.
9118 (Finternal_set_lisp_face_attribute): Remove the special treatment
9119 for Qunspecified_{f,b}g.
9120 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
9121 string.
9122
047f434a
GM
91232000-01-03 Gerd Moellmann <gerd@gnu.org>
9124
9125 * xdisp.c (reseat_at_next_visible_line_start): Position before
9126 newline only if ending up on a newline.
9127 (next_element_from_ellipsis): Return success. Handle case of
9128 displaying no ellipsis. Fix case of ellipsis defined in display
9129 table.
9130 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
9131 returns 0.
9132
d684c676
EZ
91332000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
9134
9135 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
9136 (Fcolor_supported_p): Renamed from face-color-supported-p.
9137
5fe1d139
EZ
91382000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
9139
9140 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
9141 list of colors renamed to tty-defined-color-alist.
9142 (tty_color_name): Pass the frame to tty-color-by-index.
9143 (realize_tty_face): tty-color-alist is now a function which
9144 accepts the frame as argument.
9145
9146 * term.c (Ftty_display_color_p): Accept an optional argument
9147 FRAME.
9148
816be8b8
EZ
91492000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
9150
9151 * term.c (insert_glyphs): Pass glyph, not &glyph, to
9152 encode_terminal_code.
9153
b635321e
EZ
91542000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
9155
9156 * dispnew.c (mode_line_string): Support termcap frames as well.
9157
9b784e96
GM
91582000-01-01 Gerd Moellmann <gerd@gnu.org>
9159
27189709
GM
9160 * syntax.c (Fforward_word): Undo previous change.
9161
9162 * editfns.c (Fconstrain_to_field): Don't constrain if
9163 inhibit-field-text-motion is non-nil.
9164 (Fline_beginning_position): Undo previous change.
9165 (Fline_end_position): Ditto.
9166
9167 * syntax.c (Fforward_word): Notice field boundaries only if
9168 inhibit-field-text-motion is nil.
9169
9170 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
9171
9172 * editfns.c (Vinhibit_field_text_motion): New variable.
9173 (inhibit-field-text-motion): New DEFVAR_LISP.
9174 (Fline_beginning_position, Fline_end_position): Notice field
9175 boundaries only if inhibit-field-text-motion is nil.
9176
45158a91
GM
9177 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
9178 All calls adjusted.
9179 (x_build_heuristic_mask): Likewise.
9180 (xbm_load_image_from_file): Change error output.
9181 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
9182 (gif_load, gs_load, x_kill_gs_process): Ditto.
9183
9b784e96
GM
9184 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
9185 color indices when accessing raster pixels.
63cec32f
GM
9186 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
9187 one of :file or :data.
9188 (enum pbm_keyword_index): Add PBM_DATA.
9189 (pbm_format): Add :data.
9190 (pbm_image_p): Allow either :file or :data.
9191 (pbm_read_file): New function.
9192 (pbm_scan_number): Rewritten to read from string.
9193 (pbm_load): Support :data.
9b784e96 9194
2cb085db 9195See ChangeLog.8 for earlier changes.
6922b018
KH
9196
9197;; Local Variables:
49b3bd82 9198;; coding: iso-2022-7bit
6922b018 9199;; End: