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