aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog
diff options
context:
space:
mode:
authorDave Love1999-09-30 14:13:07 +0000
committerDave Love1999-09-30 14:13:07 +0000
commit2690179258ed0d92646261447bbd4fcd59ef31aa (patch)
tree8df39f73c7accac318317f85a59e3c3f31329375 /src/ChangeLog
parent1791e2e537d1d3f6b865941030a4809ca9e84ccf (diff)
downloademacs-2690179258ed0d92646261447bbd4fcd59ef31aa.tar.gz
emacs-2690179258ed0d92646261447bbd4fcd59ef31aa.zip
#
Diffstat (limited to 'src/ChangeLog')
-rw-r--r--src/ChangeLog12191
1 files changed, 12191 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
new file mode 100644
index 00000000000..36bd74ae416
--- /dev/null
+++ b/src/ChangeLog
@@ -0,0 +1,12191 @@
11999-09-30 Kenichi Handa <handa@etl.go.jp>
2
3 * category.c (modify_lower_category_set): Set default value of
4 TABLE correctly.
5
6 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
7 size correctly.
8
91999-09-29 Gerd Moellmann <gerd@gnu.org>
10
11 * editfns.c (Fpropertize): Renamed from Fproperties.
12
131999-09-29 Gerd Moellmann <gerd@gnu.org>
14
15 * xdisp.c (resize_mini_window): Do nothing if frame is an X
16 frame that hasn't been initialized yet.
17
181999-09-27 Dave Love <fx@gnu.org>
19
20 * cm.h: Remove unneeded declaration of ospeed.
21
221999-09-26 Gerd Moellmann <gerd@gnu.org>
23
24 * lisp.h (toplevel): Add prototype for
25 next_single_char_property_change.
26
27 * textprop.c (next_single_char_property_change): New.
28
29 * xdisp.c (display_prop_end, invisible_text_between_p): Use
30 next_single_char_property_change.
31
321999-09-25 Gerd Moellmann <gerd@gnu.org>
33
34 * editfns.c (Fproperties): New.
35 (syms_of_editfns): Defsubr it.
36
37 * xfns.c (lookup_image): Set image's timestamp because it's
38 used when we look it up.
39
401999-09-23 Gerd Moellmann <gerd@gnu.org>
41
42 * window.c (enlarge_window): Add window parameter instead of using
43 selected_window.
44 (Fdisplay_buffer): Call it with window parameter instead of
45 setting selected_window.
46 (Fenlarge_window, Fshrink_window): Ditto.
47 (shrink_mini_window): If there is no recorded height and position
48 info, resize mini-window to height 1.
49
50 * xfns.c (image_error): Use add_to_log.
51
52 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
53 (load_face_font_or_fontset, load_color,
54 merge_face_vector_with_property): Ditto.
55
56 * dispextern.h: Add prototype for add_to_log.
57
58 * xfaces.c (add_to_log): Move to xdisp.c.
59
60 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
61 parameter.
62
631999-09-23 Gerd Moellmann <gerd@gnu.org>
64
65 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
66 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
67
68 * xdisp.c (resize_mini_window): Use grow_mini_window and
69 shrink_mini_window.
70
71 * window.c (window_min_size): Add parameter ignore_fixed_p.
72 (change_window_height): Call window_min_size with new parameter.
73 (shrink_window_lowest_first, save_restore_orig_size,
74 grow_mini_window, shrink_mini_window): New.
75 (make_window, replace_window): Initialize orig_top and
76 orig_height.
77 (enlarge_window): Renamed from change_window_height. Make it
78 static.
79 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
80 enlarge_window instead of change_window_height.
81
82 * window.h (struct window): New members orig_top, orig_height.
83 (toplevel): Add prototypes for grow_mini_window and
84 shrink_mini_window. Remove prototype for change_window_height.
85
861999-09-21 Eli Zaretskii <eliz@gnu.org>
87
88 * frame.c (frame_name_fnn_p): Fix previous change.
89
901999-09-20 Gerd Moellmann <gerd@gnu.org>
91
92 * minibuf.c (toplevel): Move include of stdio.h to other includes.
93
94 * dispnew.c (direct_output_for_insert): Cast arguments to
95 safe_bcopy to char *.
96
97 * lread.c (readchar): Remove unused variables.
98 (read_filtered_event, read1, Fmapatoms): Ditto.
99 (toplevel): Include intervals.h.
100
101 * eval.c (Fsignal): Remove unused variables.
102 (Fcommandp, do_autoload): Ditto.
103
104 * lisp.h: Add prototype for safe_bcopy, fatal.
105
106 * editfns.c (init_editfns): Remove unused variables.
107 (Fgoto_char, Fchar_after, Fformat): Ditto.
108 (message_text, message_length): Put in #ifndef HAVE_MENUS.
109
110 * data.c (find_symbol_value): Remove unused variables.
111 (Faref, Fstring_to_number): Ditto.
112 (toplevel): Include stdio.h.
113 (Fnumber_to_string): Cast XINT to long for %ld.
114
115 * casefiddle.c (casify_object): Remove unused variables.
116 (casify_region): Ditto.
117
118 * filelock.c (get_boot_time): Put local variable used in
119 conditinally compiled section in #ifdef.
120 (toplevel): Include stdio.h.
121
122 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
123 keys_of_keymap, syms_of_keymap): Remove unused variables.
124
1251999-09-20 Gerd Moellmann <gerd@gnu.org>
126
127 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
128 whose corresponding window rows have been disabled in
129 try_window_id.
130
1311999-09-20 Gerd Moellmann <gerd@gnu.org>
132
133 * xdisp.c (compute_window_start_on_continuation_line): Handle case
134 that window start is out of range.
135 (handle_display_prop, handle_single_display_prop): Replace
136 marginal area specifications like `left-margin' with `(margin
137 left-margin)'.
138 (Qmargin): New.
139 (syms_of_xdisp): Initialize Qmargin.
140
1411999-09-19 Gerd Moellmann <gerd@gnu.org>
142
143 * syntax.c (update_syntax_table, find_defun_start, back_comment,
144 describe_syntax, skip_chars): Remove unused variables.
145 (back_comment, forw_comment): Add braces to if-statement with
146 if-else as dependent statement.
147
148 * process.c (list_processes_1): Remove unused variables.
149 (Fopen_network_stream, create_process): Add parentheses to
150 conditional expressions.
151 (create_process): Put declaration of sigchld in #if 0.
152 (Fopen_network_stream): Removed unused variables.
153 (Fopen_network_stream, wait_reading_process_input,
154 wait_reading_process_input, send_process, send_process): Ditto.
155 (toplevel): Add prototypes for set_waiting_for_input and
156 keyboard_bit_set.
157
158 * abbrev.c (Fexpand_abbrev): Remove unused variables.
159
160 * textprop.c (Fset_text_properties): Remove unused variables.
161 (text_property_list, verify_interval_modification,
162 interval_has_all_properties): Ditto.
163
164 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
165 (Fcall_process): Remove unused variable.
166
167 * keyboard.c (Frecursive_edit): Remove unused variable.
168 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
169 timer_check, make_lispy_event, menu_bar_items,
170 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
171 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
172 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
173 read_key_sequence): Ditto. Fread_key_sequence,
174 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
175 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
176 used when GOBBLE_FIRST_EVENT is defined in #ifdef
177 (Fexecute_extended_command): Cast XINT to long for %ld.
178 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
179 (toplevel): Include sys/types.h.
180
181 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
182 (toplevel): Add prototypes for stuff_char, and
183 code_convert_string_norecord.
184
1851999-09-19 Gerd Moellmann <gerd@gnu.org>
186
187 * buffer.h: Add prototype for r_re_alloc.
188
189 * insdel.c (copy_text): Removed unused variables.
190 (count_combining_after, count_combining_after, insert_1_both,
191 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
192 (adjust_after_replace, replace_range): Add parentheses to logical
193 expressions. Remove unused variables.
194 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
195 expression.
196
197 * alloc.c (Fgarbage_collect): Remove unused variable.
198 (compact_strings): Add parentheses around assignments in
199 conditional context.
200 (toplevel): Put declaration of unused function clear_marks
201 in #if 0 like its definition.
202
203 * lisp.h: Add prototype for shrink_regexp_cache,
204 sweep_weak_hash_tables.
205
2061999-09-19 Dave Love <fx@gnu.org>
207
208 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
209
210 * doc.c (read_bytecode_char): Declare arg.
211
212 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
213 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
214
2151999-09-18 Richard Stallman <rms@gnu.org>
216
217 * xdisp.c (echo_area_display): Turn off code that returned
218 without doing anything when using a terminal frame.
219
2201999-09-16 Gerd Moellmann <gerd@gnu.org>
221
222 * emacs.c (main): Remove unused variables.
223 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
224
225 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
226 init_fileio_once, syms_of_sound, init_xfns, init_fns
227 init_sound, check_message_stack.
228
229 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
230
231 * intervals.c (rotate_right, rotate_left): Add braces to avoid
232 ambiguous else warning.
233 (split_interval_left): Remove unused variables.
234 (previous_interval, adjust_intervals_for_deletion,
235 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
236 (icount, idepth, zero_length): Move into #if 0 section below
237 original position where these are used.
238
239 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
240
241 * buffer.c (Fkill_buffer): Remove unused variables.
242 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
243 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
244 init_buffer_once, (syms_of_buffer): Ditto.
245
246 * xrdb.c (get_fallback): Remove unused variable.
247 (x_load_resources): Ditto. Put local variable used for Motif only
248 in #ifdef USE_MOTIF.
249
2501999-09-16 Gerd Moellmann <gerd@gnu.org>
251
252 * minibuf.c (read_minibuf): Remove unused variables.
253 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
254 (do_completion): Move assignment out of conditional context.
255 (Fdisplay_completion_list): Add parentheses to conditional expression.
256
257 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
258
259 * lisp.h: Add prototype for no_switch_window.
260
261 * window.c (Fset_window_buffer): Remove unused variables.
262 (Fset_window_margins): Ditto.
263
264 * xdisp.c (resize_mini_window): Temporarily set the selected
265 window's or Vminibuf_scroll_window's height to "fixed" around
266 the call the change_window_height.
267
268 * window.c (window_fixed_size_p): Check window's height_fixed_p
269 flag.
270
271 * window.h (struct window): New member height_fixed_p.
272
273 * dispnew.c (direct_output_forward_char): Don't use this method
274 if showing a message or a message was just cleared because we
275 might need to resize the mini-window.
276
2771999-09-16 Gerd Moellmann <gerd@gnu.org>
278
279 * frame.c (Fdelete_frame): Correct local variable pointing to
280 selected frame after selecting new frame.
281
2821999-09-15 Richard Stallman <rms@gnu.org>
283
284 * puresize.h (BASE_PURESIZE): Increase to 525000.
285
286 * filelock.c (Vtemporary_file_directory): New variable.
287 (syms_of_filelock): Set up Lisp variable.
288
2891999-09-15 Gerd Moellmann <gerd@gnu.org>
290
291 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
292 (encode_terminal_code): Remove unused variables.
293 (turn_off_face): Ditto.
294 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
295
296 * dispnew.c (update_frame_line): If writing whole desired line,
297 don't clear to end of line if already at the end.
298
2991999-09-15 Gerd Moellmann <gerd@gnu.org>
300
301 * xdisp.c (resize_mini_window): Don't report changed window
302 height if it actually hasn't changed.
303
304 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
305 unused variables.
306 (mark_shell_size_user_specified): Put in #if 0 because not used.
307 (create_frame_gcs): Put in #if 0 because currently unused.
308 (first_frame_p): Ditto.
309
310 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
311 single_submenu, update_frame_menubar, set_frame_menubar,
312 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
313 variables.
314
315 * print.c (PRINTFULLP): Removed because it is no longer used and
316 is misleading.
317 (Ferror_message_string): Remove unused variables.
318 (print_object): Cast argument of sprintf to long for `%ld'
319 specifier. Remove unused variable.
320
3211999-09-14 Gerd Moellmann <gerd@gnu.org>
322
323 * sound.c (Fplay_sound): Remove usused variables.
324 (be2hs): Put in #if 0 because it's currently not used.
325
3261999-09-14 Ken Raeburn <raeburn@gnu.org>
327
328 * print.c (Ferror_message_string, print_error_message,
329 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
330 member access.
331
3321999-09-14 Gerd Moellmann <gerd@gnu.org>
333
334 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
335
336 * frame.c (Fnext_frame): Remove unused variable(s).
337 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
338 (store_frame_param): Add parentheses to conditional expression.
339 (Fmodify_frame_parameters): Remove unused variables.
340 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
341 Ditto.
342
343 * xfns.c (x_set_background_color): Remove unused variable(s).
344 (x_set_border_pixel): Ditto.
345 (x_set_menu_bar_lines): Put local variable used only for
346 non-toolkit case in #ifdef/#endif.
347 (x_figure_window_size): Remove unused variable(s).
348 (x_figure_window_size, x_window, lookup_image,
349 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
350 png_load, jpeg_load, gif_load, x_create_tip_frame,
351 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
352
353 * xterm.c (x_scroll_bar_handle_click): Compile only if
354 not USE_TOOLKIT_SCROLL_BARS.
355 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
356
357 * dispextern.h: Add prototypes for gamma_correct and
358 x_kill_gs_process.
359
360 * xterm.c (x_produce_glyphs): Remove unused variable(s).
361 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
362 x_set_toolkit_scroll_bar_thumb): Ditto.
363 (x_scroll_bar_create): Move local variable to the
364 conditionally compiled section of code where it is used.
365 (x_scroll_bar_create): Remove unused variable(s).
366 (x_scroll_bar_remove, XTread_socket): Ditto.
367 (XTread_socket) <ConfigureNotify>: Move variables used for
368 non-toolkit case into conditionally compiled section of code.
369
370 * window.h (freeze_window_starts): Fix typo in prototype.
371
372 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
373 variable(s).
374
375 * lisp.h: Add prototype for debug_print.
376
377 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
378 to use do-while.
379
380 * fns.c (SXHASH_COMBINE): Add missing parentheses.
381 (Fchar_table_range, Fset_char_table_default, mapcar1,
382 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
383
384 * lisp.h: Add prototype for getloadavg.
385
3861999-09-14 Andreas Schwab <schwab@gnu.org>
387
388 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
389
390 * lisp.h: Declare close_file_unwind.
391
3921999-09-14 Richard Stallman <rms@gnu.org>
393
394 * filelock.c (get_boot_time): Make the temp name in the proper dir.
395
3961999-09-13 Gerd Moellmann <gerd@gnu.org>
397
398 * xdisp.c (redisplay_window): Make sure start_at_line_beg
399 is always set correctly.
400
4011999-09-13 Dave Love <fx@gnu.org>
402
403 * xdisp.c (move_it_in_display_line_to): Make type consistent with
404 declaration.
405
4061999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
407
408 * xdisp.c (QCfile): Move here from xfns.c.
409 (syms_of_xdisp): Initialize it.
410 (message2_nolog): Change for Lisp_Object selected_frame.
411 (message3_nolog, message_with_string, message,
412 setup_echo_area_for_printing, truncate_echo_area,
413 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
414
4151999-09-13 Dave Love <fx@gnu.org>
416
417 * xterm.c: Don't continue #define args for benefit of old cc.
418 (xt_action_hook): Indent #error for benefit of K&R cc.
419
4201999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
421
422 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
423 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
424 (XRINGBELL): Removed.
425
4261999-09-13 Dave Love <fx@gnu.org>
427
428 * xfns.c (x_put_x_image): Make type consistent with declaration.
429
430 * fns.c (Fmake_hash_table): Fix string continuation.
431
4321999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
433
434 * xfns.c (QCfile): Moved to xdisp.c.
435 (syms_of_xfns): Don't initialize QCfile.
436 (check_x_frame): Change for Lisp_Object selected_frame.
437 (check_x_display_info, x_get_resource_string): Ditto.
438
4391999-09-13 Gerd Moellmann <gerd@gnu.org>
440
441 * minibuf.c (choose_minibuf_frame): Don't try to set the
442 mini-buffer window's buffer, if the buffer is invalid.
443
444 * xfns.c (QCfile): Moved to xdisp.c.
445 (syms_of_xfns): Don't initialize QCfile.
446
447 * xdisp.c (QCfile): Move here from xfns.c.
448 (syms_of_xdisp): Initialize it.
449
450 * lisp.h (selected_frame): Add external declaration.
451
452 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
453 (Fx_store_cut_buffer_internal): Ditto.
454 (Fx_rotate_cut_buffers_internal): Ditto.
455
456 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
457 selected_frame.
458 (Finternal_set_lisp_face_attribute): Ditto.
459 (Finternal_get_lisp_face_attribute): Ditto.
460 (Finternal_lisp_face_empty_p): Ditto.
461 (Fdump_face): Ditto.
462
463 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
464 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
465 set_terminal_window, set_scroll_region, reassert_line_highlight,
466 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
467 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
468 encode_terminal_code, write_glyphs, term_init): Ditto.
469
470 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
471 (kbd_input_ast, read_input_waiting): Ditto.
472
473 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
474 selected_frame.
475 (read_minibuf): Ditto.
476
477 * keyboard.c (command_loop_1): Change for Lisp_Object
478 selected_frame.
479 (cmd_error_internal, command_loop_1, read_char,
480 kbd_buffer_get_event, read_avail_input,
481 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
482 interrupt_signal, quit_throw_to_read_char): Ditto.
483
484 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
485 (Ffontset_info): DItto.
486
487 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
488
489 * dispnew.c (selected_frame): Make it a Lisp_Object.
490 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
491 (direct_output_for_insert, direct_output_forward_char,
492 init_display): Ditto.
493
494 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
495 selected_frame.
496 (set_internal): Ditto.
497
498 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
499 (record_buffer): Ditto.
500
501 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
502 (do_switch_frame): Change for Lisp_Object selected_frame.
503 (Fselected_frame): Ditto.
504 (Fframe_first_window): Use SELECTED_FRAME.
505 (Fframe_root_window): Change for Lisp_Object selected_frame.
506 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
507 Fprevious_frame, other_visible_frames, Fdelete_frame,
508 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
509 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
510 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
511 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
512 Fset_frame_height, Fset_frame_width): Ditto.
513
5141999-09-13 Gerd Moellmann <gerd@gnu.org>
515
516 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
517 (message3_nolog, message_with_string, message,
518 setup_echo_area_for_printing, truncate_echo_area,
519 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
520
521 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
522 (Fx_popup_dialog): Ditto.
523
524 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
525 (check_x_display_info, x_get_resource_string): Ditto.
526
527 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
528 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
529 (XRINGBELL): Removed.
530
531 * window.c (Fminibuffer_window): Change for Lisp_Object
532 selected_frame.
533 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
534 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
535 Fcurrent_window_configuration, init_window_once): Ditto.
536
537 * frame.h (SELECTED_FRAME): New.
538
5391999-09-12 Ken Raeburn <raeburn@gnu.org>
540
541 * category.c (word_boundary_p): Use XCAR and XCDR.
542 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
543 Fregister_code_conversion_map): Likewise.
544 * coding.c (setup_coding_system, detect_coding_system,
545 Ffind_operation_coding_system, Fset_coding_priority_internal):
546 Likewise.
547 * doc.c (get_doc_string, Fdocumentation,
548 store_function_docstring): Likewise.
549 * editfns.c (save_restriction_restore): Likewise.
550 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
551 skip_debugger, find_handler_clause, Fautoload, Fapply,
552 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
553 Likewise.
554 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
555 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
556 Fread_file_name): Likewise.
557 * filelock.c (unlock_all_files): Likewise.
558 * insdel.c (Fcombine_after_change_execute): Likewise.
559 * intervals.c (adjust_intervals_for_insertion): Likewise.
560 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
561 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
562 store_in_keymap, Fcopy_keymap, define_as_prefix,
563 current_minor_maps, Faccessible_keymaps,
564 accessible_keymaps_char_table, Fkey_description,
565 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
566 describe_buffer_bindings, describe_map_tree, shadow_lookup,
567 describe_map): Likewise.
568 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
569 read_list, init_lread): Likewise.
570 * search.c (Fmatch_data): Likewise.
571 * sunfns.c (Fsun_menu_internal): Likewise.
572 * syntax.c (describe_syntax): Likewise.
573 * undo.c (record_insert, record_delete, Fundo_boundary,
574 truncate_undo_list): Likewise.
575 * vmsproc.c (child_sig): Likewise.
576
577 * editfns.c (Fformat): Use XFLOAT_DATA.
578
5791999-09-12 Gerd Moellmann <gerd@gnu.org>
580
581 * keyboard.c (command_loop_1): Resize mini-window to the
582 exact size of a message displayed, if any.
583
584 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
585 to exact size if exact_p is non-zero.
586 (display_echo_area_1): Call resize_mini_window with
587 new parameter.
588 (redisplay_internal): Ditto.
589 (resize_echo_area_axactly): New.
590
591 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
592 new parameter.
593
594 * dispextern.h: Change prototype of resize_mini_window.
595 Add prototype for resize_echo_area_axactly.
596
597 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
598 (syms_of_xfaces): Defsubr accordingly.
599
600 * xdisp.c (hscroll_window_tree): Choose cursor row from
601 desired or current matrix.
602 (redisplay_internal): Hscroll before updating.
603
6041999-09-12 Gerd Moellmann <gerd@gnu.org>
605
606 * syntax.c (Fforward_word): Use prompt_end_charpos instead
607 of minibuffer_prompt_length.
608
609 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
610 of minibuffer_prompt_length.
611 (read_minibuf_unwind): Ditto.
612 (Fminibuffer_complete_and_exit): Ditto.
613 (Fminibuffer_complete_word): Ditto.
614 (Fminibuffer_prompt_end): Ditto.
615
616 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
617 of minibuffer_prompt_length.
618 (Fline_beginning_position): Ditto.
619
620 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
621 of minibuffer_prompt_length.
622 (Fmake_indirect_buffer): Ditto.
623 (Fkill_buffer): Ditto.
624 (Ferase_buffer): Ditto.
625
626 * buffer.h (prompt_end_charpos): Replaces
627 minibuffer_prompt_length.
628
629 * minibuf.c (read_minibuf): Return mini-buffer contents
630 without the prompt.
631
632 * editfns.c (make_buffer_string_both): Take out the code
633 to handle mini-buffer prompts.
634 (Fbuffer_string): Handle the prompt here, instead.
635
636 * xfaces.c (lface_from_face_name): Resolve face aliases.
637 (Qmode_line): Replaces Qmodeline.
638 (realize_basic_faces): Use Qmode_line.
639 (syms_of_xfaces): Initialize Qmode_line.
640
6411999-09-12 Gerd Moellmann <gerd@gnu.org>
642
643 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
644 current column after inserting prompt.
645 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
646
647 * xfaces.c (Qframe_update_face_colors): New.
648 (syms_of_xfaces): Initialize call.
649 (update_face_from_frame_parameter): Call that function when
650 the frame's background changes.
651
6521999-09-12 Richard Stallman <rms@gnu.org>
653
654 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
655
6561999-09-12 Ken Raeburn <raeburn@gnu.org>
657
658 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
659 mark_object, mark_buffer): Use XCAR and XCDR.
660 * bytecode.c (Fbyte_code): Likewise.
661 * callint.c (Fcall_interactively, Fprefix_numeric_value):
662 Likewise.
663 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
664 getenv_internal): Likewise.
665 * dired.c (file_name_completion): Likewise.
666 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
667 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
668 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
669 * indent.c (Fcompute_motion): Likewise.
670 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
671 list_processes_1, Fstart_process, Fopen_network_stream,
672 wait_reading_process_input, read_process_output_call,
673 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
674 status_notify, wait_reading_process_input): Likewise.
675 * textprop.c (PLIST_ELT_P, property_value, set_properties,
676 extend_property_ranges): Likewise.
677 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
678 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
679 x_report_frame_params, x_set_cursor_type, x_icon_type,
680 x_figure_window_size, Fx_create_frame, w32_load_system_font,
681 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
682 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
683 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
684 x_display_info_for_name, Fx_display_list): Likewise.
685 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
686 Fx_popup_menu, Fx_popup_dialog): Likewise.
687 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
688 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
689 w32_term_init, x_delete_display): Likewise.
690 * xfns.c (x_window_to_frame, x_any_window_to_frame,
691 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
692 x_top_window_to_frame, x_set_frame_parameters,
693 x_report_frame_params, x_set_cursor_type, x_icon_type,
694 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
695 Fx_display_list, x_create_tip_frame): Likewise.
696 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
697 Fx_popup_menu, Fx_popup_dialog): Likewise.
698 * xselect.c (x_own_selection, x_get_local_selection,
699 x_handle_selection_request, x_handle_selection_clear,
700 x_clear_frame_selections, wait_for_property_change_unwind,
701 wait_for_property_change, x_handle_property_notify,
702 copy_multiple_data, x_get_foreign_selection,
703 lisp_data_to_selection_data, clean_local_selection_data,
704 x_handle_selection_notify, Fx_get_selection_internal,
705 x_disown_buffer_selections): Likewise.
706 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
707 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
708 Likewise.
709
710 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
711 XFLOAT_DATA.
712 * bytecode.c (Fbyte_code): Likewise.
713 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
714 fmod_float): Likewise.
715
7161999-09-11 Richard Stallman <rms@gnu.org>
717
718 * xdisp.c (run_window_scroll_functions): If hook functions switch
719 buffers, switch back after.
720
7211999-09-11 Ken Raeburn <raeburn@gnu.org>
722
723 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
724 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
725 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
726 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
727 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
728 XCDR.
729 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
730 XCDR.
731
7321999-09-10 Richard Stallman <rms@gnu.org>
733
734 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
735 not RevertToPointerRoot.
736 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
737 Fix the code to clear around the scroll bar.
738
7391999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
740
741 * print.c: Support print-circle and related features.
742 (Vprint_gensym_alist): Removed.
743 (Vprint_circle, Vprint_continuous_numbering, print_number_index
744 Vprint_number_table): New variables.
745 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
746 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
747 (print, print_preprocess, print_preprocess_string, print_object):
748 New/modified functions with print-circle feature. Use
749 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
750 (syms_of_print): Defined new Lisp variables `print-circle',
751 `print-continuous-numbering', `print-number-table'.
752
7531999-09-10 Gerd Moellmann <gerd@gnu.org>
754
755 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
756 as background color specification instead of an integer.
757 (image-cache-eviction-delay): Replaces image-eviction-seconds.
758 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
759 (clear_image_cache, syms_of_xfns): Use it.
760 (Qpostscript): Replaces Qghostscript.
761 (gs_type): Use it.
762 (gs_image_p): Ditto.
763 (syms_of_xfns): Initialize Qpostscript.
764
7651999-09-10 Richard Stallman <rms@gnu.org>
766
767 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
768
7691999-09-09 Richard Stallman <rms@gnu.org>
770
771 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
772
773 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
774
7751999-09-09 Gerd Moellmann <gerd@gnu.org>
776
777 * fns.c (Fmakehash): Accept just one optional argument TEST.
778
779 * xfns.c (QCindex): New.
780 (syms_of_xfns): Initialize QCindex.
781 (gif_load): Use it instead of `:image'.
782
7831999-09-09 Richard Stallman <rms@gnu.org>
784
785 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
786 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
787
7881999-09-08 Gerd Moellmann <gerd@gnu.org>
789
790 * xdisp.c (Qwhen): Replaces QCwhen.
791 (syms_of_xdisp): Initialized it instead of QCwhen.
792 (handle_single_display_prop): Use it instead of QCwhen.
793
7941999-09-08 Ken'ichi Handa <handa@gnu.org>
795
796 * charset.c (translate_char): Reset MSBs of arguments of
797 MAKE_CHAR.
798 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
799
8001999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
801
802 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
803
804 * fns.c (Fbase64_decode_region): Don't place point outside of the
805 current accessible portion.
806
8071999-09-07 Richard Stallman <rms@gnu.org>
808
809 * keymap.c (fix_submap_inheritance): Do nothing if the proper
810 parent is an ancestor of SUBMAP; otherwise, add it as the
811 ultimate ancestor.
812
8131999-09-07 Gerd Moellmann <gerd@gnu.org>
814
815 * xdisp.c (handle_single_display_prop): Change conditional
816 display property to `:when FORM . VALUE'.
817
8181999-09-07 Richard Stallman <rms@gnu.org>
819
820 * fileio.c (Fwrite_region): Doc fix.
821
8221999-09-07 Stefan Monnier <monnier@cs.yale.edu>
823
824 * fileio.c (Qexcl): New variable.
825 (report_file_error): Handle EEXIST specially.
826 (Fwrite_region): Special handling for CONFIRM = `excl'.
827 (syms_of_fileio): Initialize Qexcl.
828
8291999-09-07 Gerd Moellmann <gerd@gnu.org>
830
831 * xfns.c (x_set_foreground_color): Call
832 update_face_from_frame_parameter.
833 (x_set_background_color): Ditto.
834 (x_set_mouse_color): Ditto.
835 (x_set_cursor_color): Ditto.
836 (x_set_border_color): Ditto.
837 (x_set_scroll_bar_foreground): Ditto.
838 (x_set_scroll_bar_background): Ditto.
839
840 * xfaces.c (recompute_basic_faces): Clear face cache.
841 (Finternal_set_lisp_face_attribute): Modify frame parameters
842 if attributes of certain faces are changed.
843 (update_face_from_frame_parameter): New.
844
845 * xfaces.c (realize_basic_faces): Realize new basic faces.
846
847 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
848 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
849
850 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
851 (syms_of_xfaces): Intialize new symbols.
852
853 * fns.c (Fmakehash): Take one argument, test, make all the
854 rest keyword arguments.
855
856 * window.c (Fset_window_margins): Make window the first argument.
857 (set_window_buffer): Call Fset_window_margins with window as first
858 argument.
859
8601999-09-07 Gerd Moellmann <gerd@gnu.org>
861
862 * xfaces.c (Qfringe): Replaces Qmargin.
863
8641999-09-07 Kenichi Handa <handa@etl.go.jp>
865
866 * charset.h: Lots of comments fixed.
867 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
868 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
869
870 * charset.c : Lots of comments fixed.
871 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
872 (CHAR_COMPONENTS_VALID_P): Name changed from
873 CHAR_COMPONENT_VALID_P. Caller changed.
874
8751999-09-06 Richard Stallman <rms@gnu.org>
876
877 * insdel.c (syms_of_insdel): Define Lisp variable
878 inhibit-modification-hooks.
879
8801999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
881
882 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
883 unexaix.c.
884
885 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
886
8871999-09-06 Dave Love <fx@gnu.org>
888
889 * unexaix.c: New version incorporating Michael Sperber's changes
890 from XEmacs. Should solve problems on AIX 4.3.
891
892 * lread.c (Vbyte_boolean_vars): New variable.
893 (defvar_bool, syms_of_lread): Use it.
894
8951999-09-05 Richard Stallman <rms@gnu.org>
896
897 * minibuf.c (read_minibuf): Put all three properties on the
898 same range, the whole prompt.
899
9001999-09-05 Gerd Moellmann <gerd@gnu.org>
901
902 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
903 (Fplay_sound, syms_of_sound): Use it.
904 (parse_sound): Allow float volume values in the range [0, 1].
905 (Fplay_sound): Ditto.
906
907 * window.c (Fset_window_vscroll): Make window the first argument,
908 amount to scroll the second. Take non-negative vscroll as
909 argument.
910 (Fwindow_vscroll): Return non-negative vscroll.
911
912 * xfns.c (Fx_show_tip): Improve documentation.
913
9141999-09-05 Gerd Moellmann <gerd@gnu.org>
915
916 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
917 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
918 `top-line' and `top_line' to `header-line' and `header_line'.
919 Likewise for similar spellings.
920
9211999-09-05 Gerd Moellmann <gerd@gnu.org>
922
923 * xdisp.c (row_containing_pos): New.
924 (try_window_id): Use it.
925
926 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
927 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
928 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
929 Likewise for upper-case etc.
930
9311999-09-05 Gerd Moellmann <gerd@gnu.org>
932
933 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
934 Fix reference to renamed variable.
935
9361999-09-04 Gerd Moellmann <gerd@gnu.org>
937
938 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
939 (window_fixed_size_p): Use Qwindow_size_fixed instead of
940 Qfixed_window_size.
941 (syms_of_window): Ditto.
942
943 * fns.c (Fmakehash): Exchange optional test and size arguments.
944
9451999-09-03 Gerd Moellmann <gerd@gnu.org>
946
947 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
948 under newly created scroll bar.
949 (expose_window): If window is not yet fully initialized, do
950 nothing. This can happen when toolkit scroll bars are used and a
951 window is split. Reconfiguring the scroll bars will generate an
952 expose for a newly created window.
953
954 * frame.h (struct frame): New member `gamma'.
955
956 * xfns.c: Include math.h. Add extern declaration for atof in case
957 we don't see one.
958 (Qscreen_gamma): New.
959 (struct x_frame_parm_table): Add prototypes, add
960 x_set_screen_gamma.
961 (gamma_correct): New function.
962 (defined_color): Call it.
963 (x_set_screen_gamma): New.
964 (x_set_title): Add parameter old_value.
965 (RES_TYPE_FLOAT): New.
966 (x_get_arg): Handle RES_TYPE_FLOAT.
967 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
968 (lookup_pixel_color): Change call to x_alloc_nearest_color to
969 new prototype.
970 (lookup_rgb_color): Ditto.
971 (syms_of_xfns): Initialize Qscreen_gamma.
972
973 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
974 New. Allocate color for lwlib widgets.
975 (x_alloc_nearest_color): Change parameter list include the
976 frame on which to allocate colors. Gamma-correct colors.
977 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
978 parameter list.
979
980 * xterm.h: Change protorype of x_alloc_nearest_color.
981
9821999-09-03 Richard Stallman <rms@gnu.org>
983
984 * callproc.c: Delete the system-independent include of stdlib.h
985 (leaving only the one in the WINDOWSNT conditional).
986
9871999-09-03 Andrew Choi <choi@cs.hku.hk>
988
989 * callproc.c (call-process) [macintosh]: Call mac_run_command in
990 sysdep.c. The Mac code is modeled after the DOS code.
991
992 * dispextern.h [macintosh]: Include macterm.h to define substitute X
993 Window types and macros.
994
995 * frame.h: Do nothing if included a second time.
996 (enum output_method): Add mac_output frame type.
997 (union output_data): Add new alternative `mac'.
998 (FRAME_MAC_P): New macro.
999
1000 * frame.c (Fframep) [macintosh]: Handle mac frame type.
1001 (syms_of_frame_1): Initialize Qmac.
1002 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
1003 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
1004 (Fmodify_frame_parameters) [macintosh]: Call
1005 mac_set_frame_parameter in macterm.c.
1006
1007 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
1008 (512) because Mac compilers limit local data of a function to 32K.
1009
1010 * make-docfiles.c: Correctly handle input files with Mac-style
1011 eol's.
1012
1013 * sysdep.c: Define numerous routines to emulate Unix system calls.
1014
1015 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
1016 file of an X Window environment.
1017
1018 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
1019 x-display-grayscale, x-color-defined-p, and x-color-values.
1020
1021 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
1022 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
1023 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
1024 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
1025 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
1026 New functions, replacing POSIX features.
1027
1028 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
1029 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
1030 (InitEmacsPasswdDir, run_mac_command): New subroutines.
1031
1032 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
1033 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
1034 (myPasswdDir, TempDirName, sys_siglist): New variables.
1035
1036 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
1037 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
1038 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
1039 Define empty stubs so Emacs will link.
1040
10411999-09-03 Gerd Moellmann <gerd@gnu.org>
1042
1043 * xdisp.c: Use XCAR and XCDR instead of XCONS.
1044
1045 * window.h: New member frozen_window_start_p.
1046
1047 * window.c (foreach_window, foreach_window_1): New.
1048 (freeze_window_start, freeze_window_starts): New.
1049 (make_window): Initialize frozen_window_start_p.
1050 (replace_window): Ditto.
1051 (Fset_window_point): Remove references to deleted variables.
1052 (Fset_window_start): Ditto.
1053
1054 * xdisp.c (Vresize_mini_config, resize_mini_frame,
1055 resize_mini_initial_height): Removed.
1056 (syms_of_xdisp): Remove references to these variables.
1057 (resize_mini_window): Don't save window configuration, freeze
1058 window starts instead. Enlarge window until displaying an empty
1059 buffer, then shrink it. Make the function externally visible.
1060 (redisplay_window): Treat frozen window start like forced start,
1061 but accept point outside of the window.
1062
1063 * dispextern.h: Add function prototype for resize_mini_window.
1064
1065 * minibuf.c (read_minibuf_unwind): Resize mini-window when
1066 reaching minibuf_level 0.
1067
1068 * lisp.h: Remove extern declarations for variables deleted from
1069 xdisp.c.
1070
1071 * dispnew.c (adjust_frame_glyphs): Remove reference to
1072 Vresize_mini_config.
1073
10741999-09-03 Gerd Moellmann <gerd@gnu.org>
1075
1076 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
1077 to USE_TOOLKIT_SCROLL_BARS.
1078
1079 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
1080 here.
1081 (XTset_vertical_scroll_bar): Clarify position computations. Clear
1082 under newly created scroll bar. Put toolkit scroll bars in the
1083 middle of the area reserved for the scroll bar.
1084
10851999-09-03 Kenichi Handa <handa@etl.go.jp>
1086
1087 The following changes are for the new handling of mulitbyte
1088 sequence. Now, except for a composite character, no multibyte
1089 character in string/buffer has trailing garbage bytes. For
1090 instance, the length of string "\201\300\300" is now 2, the first
1091 character is Latin-1 A-grave, the second is raw \300.
1092
1093 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
1094 are negative.
1095 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
1096 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
1097 (PARSE_COMPOSITE_SEQ): New macro.
1098 (PARSE_CHARACTER_SEQ): New macro.
1099 (PARSE_MULTIBYTE_SEQ): New macro.
1100 (CHAR_PRINTABLE_P): New macro.
1101 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
1102 (STRING_CHAR_AND_LENGTH): Likewise.
1103 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
1104 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
1105 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
1106
1107 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
1108 (SPLIT_CHARACTER_SEQ): New macro.
1109 (SPLIT_MULTIBYTE_SEQ): New macro.
1110 (CHAR_COMPONENT_VALID_P): New macro.
1111 (non_ascii_char_to_string): Generate a multibyte sequence as far
1112 as possible.
1113 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
1114 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
1115 (split_non_ascii_string): Likewise.
1116 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
1117 (char_printable_p): New function.
1118 (translate_char): Check character by NATNUMP instead of INTEGERP.
1119 (unibyte_char_to_multibyte): Call char_valid_p instead of
1120 VALID_MULTIBYTE_CHAR_P.
1121 (Fmake_char_internal): Check the arguments more rigidly.
1122 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
1123 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
1124 (Fmultibyte_char_to_unibyte): Check the validity of character by
1125 CHAR_VALID_P.
1126 (chars_in_text): Call multibyte_chars_in_text.
1127 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
1128 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
1129 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
1130
1131 * data.c (Faset): Adjust the way to check byte-combining
1132 possibility for the new handling of multibyte sequence.
1133
1134 * editfns.c (Fsubst_char_in_region): Likewise.
1135
1136 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
1137 (string_char_to_byte): Likewise.
1138 (string_byte_to_char): Likewise.
1139
1140 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
1141 macro STRING_CHAR_AND_LENGTH. Caller changed.
1142
1143 * insdel.c (count_combining_composition): New function.
1144 (count_combining_before): Adjust the way to check byte-combining
1145 possibility for the new handling of multibyte sequence. Call
1146 count_combining_composition for a composite character.
1147 (count_combining_after): Likewise.
1148
1149 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
1150 (print): Likewise.
1151
1152 * dispextern.h (struct it): Change the size of the member
1153 `ctl_chars'.
1154
1155 * xdisp.c (get_next_display_element): Display incomplete multibyte
1156 sequence (e.g. \222\300) by octal form.
1157
11581999-09-02 Gerd Moellmann <gerd@gnu.org>
1159
1160 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
1161
1162 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
1163 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
1164
11651999-09-02 Gerd Moellmann <gerd@gnu.org>
1166
1167 * buffer.c (set_buffer_internal): Never set
1168 windows_or_buffers_changed.
1169
1170 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
1171 if we have displayed to the bottom of the window.
1172
1173 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
1174 in both directions. Extend documentation.
1175
11761999-09-01 Gerd Moellmann <gerd@gnu.org>
1177
1178 * minibuf.c (read_minibuf): Flush display after setting cursor to
1179 column 0.
1180
11811999-08-31 Gerd Moellmann <gerd@gnu.org>
1182
1183 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
1184 already defined. This avoids a warning from buffer.c.
1185
11861999-08-30 Gerd Moellmann <gerd@gnu.org>
1187
1188 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
1189 of both margins.
1190 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
1191 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
1192 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
1193
1194 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
1195 once instead of twice.
1196 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
1197
1198 * xterm.c: Remove unused bitmaps.
1199 (continued_bits, continuation_bits, overlay_bits): Change images.
1200 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
1201 instead of FRAME_X_FLAGS_AREA_WIDTH.
1202 (x_after_update_window_line): Ditto.
1203 (x_draw_bitmap): Likewise.
1204 (x_draw_row_bitmaps): Likewise.
1205 (x_draw_glyph_string_box): Likewise.
1206 (x_draw_glyphs): Likewise.
1207 (x_scroll_run): Likewise.
1208 (expose_window_tree): Likewise.
1209 (note_mode_line_highlight): Likewise.
1210 (XTset_vertical_scroll_bar): Likewise.
1211 (x_clip_to_row): Likewise.
1212 (x_set_window_size): Likewise.
1213
1214 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
1215 of 2 * that value.
1216
1217 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
1218 2 * that value.
1219 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
1220 FRAME_FLAGS_AREA_WIDTH.
1221
1222 * window.c (coordinates_in_window): Use
1223 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
1224 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
1225 instead of twice.
1226
1227 * widget.c (set_frame_size): Set flags_area_extra to
1228 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
1229 (EmacsFrameSetCharSize): Ditto.
1230
1231 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
1232 instead of FRAME_FLAGS_AREA_WIDTH.
1233
1234 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
1235 FRAME_FLAGS_AREA_COLS once.
1236 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
1237 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
1238
12391999-08-30 Gerd Moellmann <gerd@gnu.org>
1240
1241 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
1242 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
1243
12441999-08-30 Gerd Moellmann <gerd@gnu.org>
1245
1246 * fns.c (QCweakness): Replaces QCweak.
1247 (Fmake_hash_table): Ditto.
1248 (Fmakehash): Ditto.
1249 (syms_of_fns): Ditto.
1250
12511999-08-29 Richard Stallman <rms@gnu.org>
1252
1253 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
1254
1255 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
1256
1257 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
1258 Add support for nested comments.
1259
1260 * syntax.c (lisp_parse_state, back_comment, Fmodify_syntax_entry)
1261 (Fforward_comment, scan_lists, scan_sexps_forward)
1262 (Fparse_partial_sexp): Add support for nested comments.
1263 (forw_comment): New subroutine used in them.
1264
12651999-08-28 Ken Raeburn <raeburn@gnu.org>
1266
1267 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
1268 names of structure elements if HIDE_LISP_IMPLEMENTATION is
1269 defined, to help detect code that uses knowledge of the Lisp
1270 internals that it shouldn't have.
1271 (XFLOAT_DATA): New macro.
1272
12731999-08-25 Gerd Moellmann <gerd@gnu.org>
1274
1275 * syntax.c (Fforward_word): If in a mini-buffer and moving
1276 backwards, stop in front of the prompt to prevent accidentially
1277 moving into the read-only prompt.
1278
1279 * window.c (Frecenter): Clear frame if called with nil or no arg.
1280
1281 * xdisp.c (resize_mini_window): Don't resize if
1282 Vmax_mini_window_height is nil. Otherwise, use a default if
1283 Vmax_mini_window_height is not ot a number.
1284 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
1285
12861999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
1287
1288 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
1289 * m/iris4d.h: Use unexelf for IRIX 5.*.
1290 * m/iris5d.h: Use unexelf for IRIX 6.*.
1291 * unexsgi.c: Deleted.
1292
1293 * unexelf.c: Auto-detect .sbss section.
1294 (round_up): Make it static.
1295 (unexec): Declare alignment as Elf Word. Skip ``Program
1296 segment above .bss'' test on MIPS without .sbss.
1297 Copy sections .got and .sdata1 sections. Adjust offsets in
1298 sections .sdata, .lit4, .lit8, .got and .sdata1.
1299
13001999-08-25 Gerd Moellmann <gerd@gnu.org>
1301
1302 * xdisp.c (try_window_id): Remove typo.
1303
13041999-08-24 Gerd Moellmann <gerd@gnu.org>
1305
1306 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
1307 unchanged text at the bottom when computing the cursor position.
1308 (message3_nolog): Raise frame only if minibuffer_auto_raise is
1309 set.
1310
1311 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
1312
13131999-08-24 Gerd Moellmann <gerd@gnu.org>
1314
1315 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
1316 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
1317 (syms_of_xfaces): Ditto.
1318
1319 * window.c (Fset_window_point): Reset Vresize_mini_config.
1320 (Fset_window_start): Ditto.
1321 (set_window_buffer): Ditto.
1322
1323 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
1324
1325 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
1326 before calling try_window.
1327 (echo_area_display): If height has changed, update other windows.
1328 (resize_mini_frame, resize_mini_initial_height): New.
1329 (resize_mini_window): Save/restore window configuration
1330 differently.
1331
1332 * lisp.h (Vresize_mini_config, resize_mini_frame,
1333 resize_mini_initial_height): Add extern declarations.
1334
1335 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
1336 CANON_X_UNIT.
1337
1338 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
1339 being redefined in jconfig.h.
1340
13411999-08-23 Ken'ichi Handa <handa@gnu.org>
1342
1343 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
1344
13451999-08-22 Gerd Moellmann <gerd@gnu.org>
1346
1347 * alloc.c (mark_glyph_matrix): Mark strings only.
1348
1349 * xdisp.c (redisplay_internal): Clear garbaged frames after
1350 resizing mini-window.
1351
13521999-08-22 Gerd Moellmann <gerd@gnu.org>
1353
1354 * xdisp.c (unwind_with_echo_area_buffer): Use
1355 set_buffer_internal_1 instead of set_buffer_internal.
1356 (with_echo_area_buffer): Ditto.
1357
1358 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
1359 only if buffer is displayed somewhere.
1360
1361 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
1362
1363 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
1364 (gap_right): Ditto.
1365 (modify_region): Ditto.
1366
1367 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
1368
1369 * xdisp.c (Vresize_mini_config): New.
1370 (resize_mini_window): Use it to save restore original window
1371 configuration
1372 (syms_of_xdisp): Initialize it.
1373
1374 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
1375
1376 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
1377
1378 * xdisp.c (reconsider_clip_changes): New.
1379 (redisplay_internal, redisplay_window): Call it.
1380 (mark_window_display_accurate, redisplay_internal): Set current
1381 matrix' buffer, begv, zv.
1382
1383 * window.c (Fset_window_hscroll): Set
1384 prevent_redisplay_optimizations_p instead of clip_changed.
1385 (Fset_window_hscroll): Ditto.
1386 (temp_output_buffer_show): Ditto.
1387 (Fset_window_vscroll): Ditto.
1388
1389 * buffer.c (reset_buffer): Set clip_changed to 0 and
1390 prevent_redisplay_optimizations_p to 1.
1391 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
1392
1393 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
1394 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
1395 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
1396 END_UNCHANGED): New.
1397 (struct buffer_text): Add beg_unchanged, end_unchanged,
1398 unchanged_modified, overlay_unchanged_modified.
1399
1400 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
1401 overlay_unchanged_modified): Removed.
1402 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
1403 (unwind_with_echo_area_buffer): Don't restore them.
1404 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
1405 (text_outside_line_unchanged_p, redisplay_internal,
1406 try_scrolling): Use/set buffer-specific beg/end_unchanged.
1407 (redisplay_window): Let try_window_id be called if more than one
1408 window is displayed. Use/set buffer-specific beg/end_unchanged.
1409 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
1410 try_window_id):
1411 Use buffer-specific beg/end_unchanged.
1412
1413 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
1414 overlay_unchanged_modified): Remove extern declarations.
1415
1416 * keyboard.c (command_loop_1): Set beg/end_unchanged per
1417 buffer.
1418
1419 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
1420 (gap_right): Ditto.
1421 (adjust_after_replace): Likewise.
1422 (replace_range, del_range_2, modify_region): Likewise.
1423
1424 * dispnew.c (direct_output_for_insert): Set beg_unchanged
1425 and unchanged_modified per buffer.
1426
1427 * coding.c (code_convert_region): Compute beg/end_unchanged per
1428 buffer.
1429
1430 * buffer.c (modify_overlay): Compute beg/end_unchanged
1431 per buffer.
1432 (Fget_buffer_create): Initialize new members of the buffer
1433 structure.
1434
14351999-08-22 Gerd Moellmann <gerd@gnu.org>
1436
1437 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
1438
1439 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
1440 (Qkey_value_weak): Removed.
1441 (make_hash_table): Use nil, `key', `value', t for weakness.
1442 (Fmake_hash_table): Ditto.
1443 (copy_hash_table): New.
1444 (Fcopy_hash_table): New.
1445
14461999-08-22 Gerd Moellmann <gerd@gnu.org>
1447
1448 * xfns.c: Call change_frame_size and do_pending_window_change with
1449 new parameter.
1450
14511999-08-21 Gerd Moellmann <gerd@gnu.org>
1452
1453 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
1454 well.
1455 (redisplay_internal): Resize mini-window only if text might
1456 have changed.
1457 (display_echo_area): Reset displayed echo_area_buffer to nil
1458 at the end if we're displaying a nil message.
1459
14601999-08-21 Gerd Moellmann <gerd@gnu.org>
1461
1462 * fns.c (hash_lookup): Test with EQ before calling key comparion
1463 function.
1464 (hash_remove): Ditto.
1465 (cmpfn_eq): Removed.
1466 (cmpfn_eql): Don't test with EQ.
1467 (cmpfn_equal): Ditto.
1468 (make_hash_table): Set comparison function for `eq' to null.
1469
1470 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
1471 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
1472
1473 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
1474
1475 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
1476 xterm.c: Call change_frame_size and do_pending_window_change with
1477 new parameter.
1478
1479 * dispnew.c (do_pending_window_change): Add parameter `safe'.
1480 (change_frame_size): Ditto.
1481 (change_frame_size_1): Ditto. Deley size changes if redisplaying
1482 and not called from a safe place.
1483 (window_change_signal): Call change_frame_size with new parameter.
1484
1485 * dispextern.h: Change prototypes for do_pending_window_change
1486 and change_frame_size.
1487
1488 * xfaces.c (face_at_buffer_position): Don't xassert that
1489 window's buffers equals current_buffer; this is not the
1490 case during echo area display.
1491
14921999-08-21 Gerd Moellmann <gerd@gnu.org>
1493
1494 * xdisp.c, minibuf.c: Remove conditional compilation on
1495 NO_PROMPT_IN_BUFFER.
1496
1497 * minibuf.c (Fminibuffer_prompt_end): New.
1498 (syms_of_minibuf): Defsubr it. Remove
1499 minibuffer-prompt-in-buffer.
1500 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
1501 Extend documentation.
1502
1503 * xdisp.c (get_next_display_element): Display \r as ^M.
1504
1505 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
1506 under scroll bar widget.
1507
15081999-08-21 Gerd Moellmann <gerd@gnu.org>
1509
1510 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
1511 anywhere.
1512 (unwind_redisplay): Return nil.
1513 (clear_garbaged_frames): New.
1514 (redisplay_internal): Use it.
1515 (echo_area_display): Ditto.
1516 (resize_mini_window): Mew.
1517 (display_echo_area_1): Use it to resize echo area window.
1518 (redisplay_internal): Use it to resize active mini-window.
1519
1520 * dispextern.h, lisp.h: Add function prototypes.
1521
1522 * dispnew.c (set_window_cursor_after_update): Do the
1523 cursor_in_echo_area case only for a mini-window showing
1524 a message. Don't let cursor end up after the end of a row.
1525
1526 * xdisp.c (echo_area_glyphs, echo_area_message,
1527 echo_area_glyphs_length, previous_echo_glyphs,
1528 previous_echo_area_message, previous_echo_area_glyphs_length):
1529 Removed.
1530 (Vmessage_stack, echo_area_buffer, echo_buffer,
1531 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
1532 (message2_nolog): Use set_message and clear_message.
1533 (message3): Rename parameter len to nbytes to make clear what
1534 it is.
1535 (message3_nolog): Ditto. Use set_message and clear_message.
1536 (update_echo_area): Rewritten.
1537 (with_echo_area_buffer): New.
1538 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
1539 (setup_echo_area_for_printing): New.
1540 (display_echo_area, display_echo_area_1): New.
1541
1542 (current_message, current_message_1): New.
1543 (push_message, restore_message, pop_message,
1544 check_message_stack): New.
1545 (truncate_echo_area): Rewritten.
1546 (truncate_message_1): New.
1547 (set_message, set_message_1, clear_message): New.
1548 (echo_area_display): Rewritten.
1549 (redisplay_internal): Check for needed echo area update
1550 differently.
1551 (redisplay_preserve_echo_area): Rewritten.
1552 (redisplay_window): Check for mini-window displaying echo area
1553 message differently.
1554 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
1555 Remove initialzation of removed variables.
1556 (init_xdisp): Remove references to removed variables.
1557
1558 * dispnew.c (adjust_frame_message_buffer): Removed references
1559 to echo_area_glyphs and previous_echo_glyphs.
1560 (direct_output_for_insert): Check for mini-window displaying
1561 echo area message differently.
1562 (update_frame): Likewise.
1563 (set_window_cursor_after_update): Likewise. In echo area,
1564 don't try to set cursor on rows that aren't enabled.
1565
1566 * print.c: Remove conditional compilation on `standalone'.
1567 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
1568 glyph_to_str_cpy): Remove that section because GLYPHs are no
1569 longer used in that way.
1570 (PRINTDECLARE): Add multibyte.
1571 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
1572 (printbufidx): Removed.
1573 (printchar, strout): Rewritten.
1574
1575 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
1576 a struct kboard.
1577 (echo_kboard): New.
1578 (echo_now): Set echo_kboard to the current kboard.
1579 (cancel_echoing): Set echo_kboard to null.
1580 (cmd_error_internal): Use clear_message, remove references
1581 to echo_area_glyphs and echo_area_message.
1582 (command_loop_1): Check for echo area messages differently.
1583 (read_char): Likewise.
1584 (record_menu_key): Use clear_message.
1585 (Fexecute_extended_command): Check for echo area messages
1586 differently. Use push_message, restore_message, pop_message.
1587
1588 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
1589 pop_message.
1590
1591 * emacs.c (shut_down_emacs): Call check_message_stack.
1592
1593 * lisp.h: Add function prototypes and extern declarations for
1594 new functions and variables.
1595
1596 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
1597 pop_message.
1598
1599 * minibuf.c (read_minibuf): Use clear_message instead of
1600 setting echo_area_glyphs.
1601 (Fminibuffer_completion_help): Ditto.
1602
1603 * editfns.c (Fcurrent_message): Rewritten.
1604
1605 * frame.c, window.h: Remove references to echo_area_glyphs
1606 and previous_echo_glyphs.
1607
16081999-08-21 Dave Love <fx@gnu.org>
1609
1610 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
1611 * aix4-1.h: Likewise.
1612
1613 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
1614
16151999-08-20 Gerd Moellmann <gerd@gnu.org>
1616
1617 * xfns.c: Remove tiff34 prefix from include.
1618
16191999-08-20 Dave Love <fx@gnu.org>
1620
1621 * cm.c: Revert previous change.
1622
16231999-08-19 Gerd Moellmann <gerd@gnu.org>
1624
1625 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
1626 under scroll bar with width FRAME_SCROLL_BAR_COLS.
1627
16281999-08-18 Dave Love <fx@gnu.org>
1629
1630 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
1631 stdlib.h.
1632
1633 * doprnt.c: Use stdlib.h, unistd.h.
1634
1635 * config.in: Add HAVE_TERMCAP_H.
1636
1637 * cm.c: Use termcap.h.
1638
16391999-08-18 Gerd Moellmann <gerd@gnu.org>
1640
1641 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
1642 FRAME_X_WINDOW (f) being null at the of the function. If widgets
1643 cannot be created we will already have crashed earlier. Call
1644 lw_set_main_areas with a null menu-bar widget, so that we have
1645 a reasonable default.
1646 (Fx_create_frame): Rearranged so that Lisp errors during frame
1647 initialization cause less damage. Initialize menu bar widget
1648 here.
1649
16501999-08-18 Gerd Moellmann <gerd@gnu.org>
1651
1652 * dispnew.c (update_frame_line): Fix previous change. If writing
1653 whole line clear to end of frame.
1654
16551999-08-17 Gerd Moellmann <gerd@gnu.org>
1656
1657 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
1658 and `right-bitmap-area' if position is in the bitmap areas. This
1659 avoids an error when clicking on the bitmap areas. Instead, they
1660 are currently treated like clicks inside the window.
1661 (coordinates_in_window): Return 5 and 6 for bitmap areas.
1662 (Qleft_bitmap_area, Qright_bitmap_area): New.
1663 (syms_of_window): Initialize new symbols.
1664
1665 * dispnew.c (update_frame_line): If writing whole line,
1666 don't write trailing spaces unless we must.
1667
1668 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
1669 (redisplay_internal): Register unwind_redisplay with
1670 register_unwind_protect.
1671 (try_window_reusing_current_matrix): If new start > old start,
1672 give up if start pos of first reusable row is not equal to new
1673 start.
1674
1675 * eval.c (Fsignal): Don't reset redisplaying_p here.
1676
1677 * xterm.c (expose_area): If row extends face to end of line,
1678 write the whole line.
1679
16801999-08-16 Gerd Moellmann <gerd@gnu.org>
1681
1682 * dispextern.h (struct it): Remove member
1683 show_trailing_whitespace_p.
1684
1685 * dispnew.c (direct_output_for_insert): Use
1686 Vshow_trailing_whitespace instead of former iterator member
1687 show_trailing_whitespace_p.
1688 (direct_output_forward_char): Don't do it if hightlighting
1689 trailing whitespace.
1690
1691 * xdisp.c (Qshow_trailing_whitespace): Removed.
1692 (Vshow_trailing_whitespace): Added.
1693 (init_iterator): Remove initialization code for
1694 show_trailing_whitespace_p.
1695 (redisplay_internal): Don't try cursor movement in this_line
1696 if showing trailing whitespace.
1697 (redisplay_window): Likewise for cursor movement in current
1698 matrix and try_window_id.
1699 (try_window_reusing_current_matrix): Likewise.
1700 (trailing_whitespace_p): Return 0 if trailing whitespace is
1701 in front of point.
1702 (display_line): Use Vshow_trailing_whitespace instead of
1703 former iterator member show_trailing_whitespace_p.
1704 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
1705
17061999-08-16 Gerd Moellmann <gerd@gnu.org>
1707
1708 * window.c (Fpos_visible_in_window_p): Rewritten.
1709
1710 * xfaces.c (add_to_log): Renamed from display_message.
1711 Don't display messages in echo area.
1712
1713 * xterm.c (x_draw_glyph_string_box): Use the background width
1714 of the glyph string for the width of the box.
1715
17161999-08-16 Stefan Monnier <monnier@cs.yale.edu>
1717
1718 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
1719
17201999-08-16 Geoff Voelker <voelker@cs.washington.edu>
1721
1722 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
1723 background first, and then set other parameters that might
1724 depend upon their new values.
1725
17261999-08-15 Gerd Moellmann <gerd@gnu.org>
1727
1728 * xfaces.c (Vfont_list_limit): New.
1729 (syms_of_xfaces): Make it a user-variable.
1730 (DEFAULT_FONT_LIST_LIMIT): New.
1731 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
1732 maximally that number of fonts, otherwise use
1733 DEFAULT_FONT_LIST_LIMIT.
1734 (Fx_font_family_list): Bind `font-list-limit' to higher values
1735 until we have all fonts.
1736 (Fxfont_list): Additionally return the full names of fonts and
1737 their registry and encoding.
1738
1739 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
1740 Simplify clearing "under" scroll bar.
1741
1742 * window.c (Qfixed_window_size): New.
1743 (syms_of_window): Initialiaze it.
1744 (check_all_windows): Add return type void.
1745 (window_fixed_size_p): New. Return non-zero if window
1746 is fixed-size.
1747 (window_min_size_1): New.
1748 (window_min_size): Handle fixed-size windows.
1749 (size_window): New. Rewritten combination of set_window_height and
1750 set_window_width that handles fixed-size windows.
1751 (set_window_height): Call it.
1752 (set_window_width): Call it.
1753 (Fsplit_window): Give an error on attempt to split a fixed-size
1754 window.
1755 (change_window_height): Partly rewritten to handle fixed-size
1756 windows.
1757
17581999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
1759
1760 * process.c (Fopen_network_stream): Fix previous change.
1761
17621999-08-13 Karl Heuer <kwzh@gnu.org>
1763
1764 * xdisp.c (line_number_display_limit_width): New var.
1765 (decode_mode_spec): Use it instead of hardcoded value.
1766 (syms_of_xdisp): Defvar it.
1767
17681999-08-13 Richard M. Stallman <rms@gnu.org>
1769
1770 * eval.c (run_hook_list_with_args): Gcpro `globals'.
1771 (run_hook_with_args): Likewise.
1772
1773 * window.h (struct window): New field too_small_ok.
1774
1775 * window.c (set_window_height, set_window_width):
1776 If window starts out "too small", set its too_small_ok flag.
1777 If window's too_small_ok flag is set, don't delete it
1778 unless it is so small it would cause a crash.
1779
17801999-08-13 Gerd Moellmann <gerd@gnu.org>
1781
1782 * window.c (MINSIZE): Removed.
1783 (window_min_size): New.
1784 (set_window_height): Use window_min_size.
1785 (change_window_height): Ditto.
1786
17871999-08-12 Gerd Moellmann <gerd@gnu.org>
1788
1789 * indent.c (vmotion): Don't add in mini-buffer prompt width
1790 if prompts are inserted into mini-buffer.
1791
17921999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
1793
1794 * config.in: Add HAVE_GETADDRINFO.
1795 * process.c (Fopen_network_stream): Use getaddrinfo.
1796
17971999-08-11 Gerd Moellmann <gerd@gnu.org>
1798
1799 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
1800 glyphs to -1.
1801
1802 * xdisp.c (face_before_or_after_it_pos): If position after
1803 or before iterator's current position in the buffer is out
1804 of bounds, return the iterator's original face id.
1805
1806 * dispnew.c (mirror_make_current): If desired row isn't enabled,
1807 just swap glyphs pointers between current and desired row.
1808 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
1809 desired matrix method string to current matrix.
1810
18111999-08-11 Kenichi Handa <handa@etl.go.jp>
1812
1813 * lisp.h (CHAR_MODIFIER_MASK): New macro.
1814
1815 * lread.c (read_escape): For Control modifier, pay attention to
1816 multibyte character.
1817 (read1): Likewise. Singal error or a multibyte character which
1818 has a modifer bit. Check validity of Shift modifer.
1819
1820 * charset.c (non_ascii_char_to_string): Handle modifier bits as
1821 the same as Lisp reader.
1822
18231999-08-10 Richard M. Stallman <rms@gnu.org>
1824
1825 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
1826
18271999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
1828
1829 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
1830
18311999-08-10 Eli Zaretskii <eliz@gnu.org>
1832
1833 * msdos.c (IT_set_face): Abort if the default face is not realized
1834 and cached.
1835 (IT_write_glyphs): Reset the screen face to the default face
1836 before writing glyphs.
1837
1838 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
1839 colors from the frame here.
1840 (realize_tty_face) [MSDOS]: Do it here. Update the face
1841 attributes with the actual name of the color taken from the
1842 frame.
1843
1844 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
1845 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
1846
1847 * frame.c (Fframe_parameters): Swap foreground and background
1848 colors returned in frame parameters if the frame has reverse in
1849 its parameter alist.
1850 (Fmake_terminal_frame): Make a unique copy of face_alist for
1851 each frame.
1852
18531999-08-07 Richard Stallman <rms@gnu.org>
1854
1855 * buffer.c (Fprevious_overlay_change): Just return
1856 the answer obtained from overlays_at.
1857
1858 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
1859 Use XpmCloseness and attrs.closeness instead.
1860
18611999-08-06 Richard Stallman <rms@gnu.org>
1862
1863 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
1864
18651999-08-06 Geoff Voelker <voelker@cs.washington.edu>
1866
1867 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
1868 Ffile_attributes_lessp): New functions.
1869 (Fdirectory_files): Use directory_files_internal.
1870 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
1871 Ffile_attributes_lessp.
1872
1873 * w32.c (stat): Check for directory ending in separator when
1874 doing readdir fast path.
1875
1876 * w32fns.c (x_set_icon_type): Support setting frame icons.
1877 * w32term.c (x_bitmap_icon): New function.
1878 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
1879
18801999-08-06 Gerd Moellmann <gerd@gnu.org>
1881
1882 * xdisp.c (set_iterator_to_next): After delivering a character
1883 from a display vector, restore face and charset to what they were
1884 before the display vector was processed.
1885
18861999-08-06 Gerd Moellmann <gerd@gnu.org>
1887
1888 * xdisp.c (reseat_at_next_visible_line_start): New parameter
1889 on_newline_p.
1890 (set_iterator_to_next): After delivering last char
1891 from display vector, reseat on next visible line start if
1892 dpvec_char_len < 0.
1893 (next_element_from_buffer): Set dpvec_char_len to -1 for
1894 selective display.
1895
18961999-08-06 Gerd Moellmann <gerd@gnu.org>
1897
1898 * xdisp.c (compute_line_metrics): If first line's physical ascent
1899 is larger than its logical ascent, use the physical ascent, and
1900 make the row taller. Set row's overlapping_p flag.
1901
1902 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
1903 (direct_output_for_insert): Ditto.
1904
1905 * dispextern.h (struct glyph_row): Add overlapping_p.
1906
1907 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
1908
1909 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
1910 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
1911
1912 * dispnew.c (direct_output_for_insert): Don't use this method if
1913 row is overlapped by others.
1914 (update_text_area): Write full line if current line is overlapped.
1915 (redraw_overlapped_rows): New.
1916 (update_window): Call it.
1917 (redraw_overlapping_rows): New.
1918 (update_window): Call it.
1919 (scrolling_window): Make sure overlapped_p flag in current rows is
1920 unchanged.
1921 (row_equal_p): Take rows overlapped_p flag into account.
1922
1923 * dispextern.h (struct glyph_row): Add flag overlapped_p.
1924
1925 * xterm.c (x_fix_overlapping_area): New.
1926 (x_redisplay_interface): Add x_fix_overlapping_area.
1927
1928 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
1929
19301999-08-06 Gerd Moellmann <gerd@gnu.org>
1931
1932 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
1933 (struct glyph_string): Add member for_overlaps_p.
1934 (x_get_glyph_string_clip_rect): If glyph string draws foreground
1935 of overlapping rows, clip to window bottom.
1936 (x_fill_glyph_string): Add parameter overlaps_p.
1937 (x_fill_composite_glyph_string): Ditto.
1938 (BUILD_GLYPH_STRINGS): Ditto.
1939 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
1940 (x_draw_glyph_string): Don't draw anything but the foreground
1941 if glyph string draws row overlaps.
1942
1943 * dispnew.c (direct_output_for_insert): Don't use this
1944 optimization for rows that overlap others.
1945 (update_window_line): Return non-zero if display has changed.
1946 (update_text_area): Ditto.
1947 (update_window): Record if display has been changed.
1948
1949 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
1950
1951 * dispextern.h (struct redisplay_interface): Add
1952 fix_overlapping_area.
1953
1954 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
1955
1956 * dispextern.h (struct glyph): Add overlaps_vertically_p.
1957
1958 * xterm.c (x_produce_image_glyph): Compute iterator's physical
1959 ascent and descent.
1960 (x_produce_stretch_glyph): Ditto.
1961 (x_produce_glyphs): Ditto.
1962
1963 * xdisp.c (init_iterator): Reset physical line height info
1964 after producing special glyphs.
1965 (display_toolbar_line): Set physical line height info.
1966 (compute_line_metrics): Ditto.
1967 (display_line): Ditto.
1968 (display_string): Ditto.
1969
1970 * term.c (produce_glyphs): Set iterator's physical height
1971 information.
1972
1973 * dispnew.c (blank_row): Compute glyph row's physical height.
1974 (row_equal_p): Take physical row heights into account.
1975 (direct_output_for_insert): Ditto.
1976 (update_text_area): Ditto.
1977
1978 * dispextern.h (struct glyph_row): Add phys_ascent and
1979 phys_height.
1980 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
1981 max_phys_descent.
1982
19831999-08-04 Stefan Monnier <monnier@cs.yale.edu>
1984
1985 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
1986 Fswitch_to_buffer.
1987 (no_switch_buffer): New function.
1988 (Fswitch_to_buffer): Call them. Don't get confused
1989 by "same-window" buffers in a dedicated frame.
1990
1991 * window.c (display-buffer): Don't get confused
1992 by "same-window" buffers in a dedicated frame.
1993
19941999-08-04 Andreas Schwab <schwab@gnu.org>
1995
1996 * insdel.c (insert_from_string_1): Check gap size against number
1997 of outgoing bytes, not incoming bytes.
1998
19991999-08-03 Tom Breton <tob@world.std.com>
2000
2001 * lread.c (read1): Added circular reading code to #N=.
2002 (SUBSTITUTE): New macro.
2003 (seen_list): New variable.
2004 (substitute_object_in_subtree): New function.
2005 (substitute_object_recurse): New function.
2006 (substitute_in_interval): New function.
2007
20081999-08-02 Eli Zaretskii <eliz@gnu.org>
2009
2010 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
2011
2012 * frame.c (make_terminal_frame): Don't call init_frame_faces if
2013 noninteractive, for termcap frames as well.
2014
2015 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
2016 frames.
2017
20181999-08-01 Richard Stallman <rms@gnu.org>
2019
2020 * fns.c (internal_equal): Correct overlay comparison.
2021
20221999-07-31 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2023
2024 * xfns.c (x_set_internal_border_width):
2025 Call do_pending_window_change. Don't block input, don't call XFlush.
2026 (x_set_vertical_scroll_bars): Call do_pending_window_change.
2027 (x_set_scroll_bar_width, x_set_font): Likewise.
2028
2029 * frame.c (Fset_frame_height): Call do_pending_window_change.
2030 (Fset_frame_width, Fset_frame_size): Likewise.
2031
2032 * xterm.c (x_set_window_size): When calling change_frame_size,
2033 specify 1 for DELAY.
2034
2035 * widget.c (EmacsFrameSetCharSize): Don't call
2036 do_pending_window_change here.
2037
20381999-07-30 Dave Love <fx@gnu.org>
2039
2040 * config.in: Add HAVE_STDLIB_H.
2041
20421999-07-30 Richard M. Stallman <rms@gnu.org>
2043
2044 * process.c (create_process): Detect failure of `pipe'.
2045
20461999-07-30 Keisuke Nishida <kei@psn.net>
2047
2048 * alloc.c (allocate_vectorlike): Add missing increment.
2049
2050 * data.c (Fdefalias): Call Ffset instead of duplicating code.
2051
2052 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
2053 before calling indirect_function.
2054
20551999-07-30 Eli Zaretskii <eliz@gnu.org>
2056
2057 * dispextern.h (load_color, lookup_derived_face): Declare
2058 prototypes.
2059
2060 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
2061 it will be done later.
2062
2063 * frame.c (make_terminal_frame) [MSDOS]: Don't call
2064 init_frame_faces if non-interactive.
2065 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
2066 array with a call to msdos_stdcolor_name. The font name is now
2067 "ms-dos", consistent with realize_tty_face.
2068
2069 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
2070 MSDOS frame.
2071
2072 * window.c (Fset_window_configuration) [MSDOS]: Don't call
2073 x_set_toolbar_lines.
2074
2075 * xfaces.c (load_color): Remove static from definition and remove
2076 prototype.
2077 [MSDOS]: Add a DOS-specific version of load_color.
2078 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
2079 (lookup_derived_face): New function.
2080 (realize_default_face): Support MSDOS frames.
2081 [MSDOS]: If fore/background colors are unspecified, inherit them
2082 from the frame.
2083 (realize_face): Support MSDOS frames.
2084 (realize_tty_face): Support MSDOS frames.
2085 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
2086 load_color to try to find a suitable approximation. If the face
2087 is inverse-video, swap the foreground and background colors.
2088
2089 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
2090 functions.
2091
2092 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
2093
2094 * msdos.h: Remove redundant declarations (most of them are now in
2095 dispextern.h).
2096
2097 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
2098 Use default frame colors if the face doesn't specify them; invert
2099 the colors if highlight is ON.
2100 (IT_write_glyphs): Rewritten for the new redisplay engine.
2101 (IT_change_line_highlight): Add (unused) parameter Y, since that's
2102 how the hook is called by term.c.
2103 (IT_copy_glyphs): New function, copies an area of the display in
2104 video RAM.
2105 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
2106 redisplay now calls it even if char_ins_del_ok is zero.
2107 (IT_set_frame_parameters): Prototype changed. Calls the new
2108 load_color. Puts the new fore/background colors into the default
2109 face on current frame.
2110 (IT_menu_display): Rewritten to handle the new struct glyph
2111 instead of a char array.
2112 (XMenuActivate): Call lookup_derived_face to create and use
2113 special faces for the pop-up and drop-down menus.
2114
21151999-07-29 Gerd Moellmann <gerd@gnu.org>
2116
2117 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
2118 XawScrollbarSetThumb if thumb parameters haven't changed because
2119 that function apparently isn't optimized for this case.
2120
21211999-07-29 Eli Zaretskii <eliz@gnu.org>
2122
2123 * msdos.c (getdefdir): Don't return failure indication when
2124 _fixpath sets errno to ENOSYS.
2125
21261999-07-28 Gerd Moellmann <gerd@gnu.org>
2127
2128 * xdisp.c (string_char_and_length): New. Use it everywhere
2129 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
2130
21311999-07-28 Kenichi Handa <handa@etl.go.jp>
2132
2133 * fns.c (count_combining): New function.
2134 (struct textprop_rec): New structure.
2135 (concat): Copy text properties correctly when byte combining
2136 occurs.
2137
21381999-07-28 Gerd Moellmann <gerd@gnu.org>
2139
2140 * xterm.c (x_setup_relief_color): Don't try smart color allocation
2141 if display is mono.
2142 (x_draw_row_bitmaps): If face has stipple, don't switch
2143 to foreground color for clearing areas, and set the fill style.
2144
2145 * xfaces.c (load_face_colors): Load background color if setting
2146 stipple, too.
2147 (prepare_face_for_display): Use FillOpaqueStippled instead of
2148 FillStippled.
2149
21501999-07-26 Ken'ichi Handa <handa@gnu.org>
2151
2152 * xterm.c (x_find_ccl_program): Add casting.
2153
2154 * w32fns.c (w32_find_ccl_program): Add casting.
2155
21561999-07-27 Gerd Moellmann <gerd@gnu.org>
2157
2158 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
2159
2160 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
2161 because this will try to access a nonexisting widget.
2162
21631999-07-26 Markus Rost <rost@gnu.org>
2164
2165 * fns.c (Fgethash): Fix order of variables (patch by gerd).
2166 (Fputhash): Ditto.
2167 (Fremhash): Ditto.
2168
21691999-07-26 Gerd Moellmann <gerd@gnu.org>
2170
2171 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
2172 value to frame width and height.
2173
2174 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
2175 into account for full-width windows. Don't add scroll bar width
2176 to width of clip rect.
2177 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
2178 (x_set_glyph_string_background_width): Add 1 to background width.
2179 (x_draw_glyphs): Take internal border into account for full-width
2180 lines.
2181
21821999-07-26 Richard M. Stallman <rms@gnu.org>
2183
2184 * xfns.c (x_set_mouse_color): Always unload the old color.
2185 Don't allow nil as color value.
2186 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
2187 Always unload the old color.
2188
2189 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
2190
21911999-07-26 Karl Heuer <kwzh@gnu.org>
2192
2193 * fns.c (Fy_or_n_p): Doc fix.
2194
21951999-07-26 Kenichi Handa <handa@etl.go.jp>
2196
2197 * ccl.h (setup_ccl_program): The type is changed to `int'.
2198
2199 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
2200 stored in the following CCL code. Adjusted for the change of
2201 Vccl_program_table.
2202 (resolve_symbol_ccl_program): Adjusted for the new style of
2203 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
2204 is resolving failed.
2205 (ccl_get_compiled_code): New function.
2206 (setup_ccl_program): Function type changed from `void' to `int'.
2207 Resolve symbols in CCL_PROG.
2208 (Fccl_program_p): New function.
2209 (Fccl_execute): Get compiled CCL code by just calling
2210 setup_ccl_program.
2211 (Fccl_execute_on_string): Likewise.
2212 (Fregister_ccl_program): Adjusted for the change of
2213 Vccl_program_table.
2214
2215 * coding.c (setup_coding_system): Get compiled CCL code by just
2216 calling setup_ccl_program.
2217
2218 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
2219 calling setup_ccl_program.
2220
2221 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
2222 calling setup_ccl_program.
2223
22241999-07-23 Gerd Moellmann <gerd@gnu.org>
2225
2226 * xfaces.c (frame_update_line_height): Just use the height of the
2227 frame's fontset or font, instead of taking face fonts into
2228 account.
2229
2230 * xdisp.c (get_next_display_element): Display DEL as `^?'.
2231
22321999-07-23 Richard M. Stallman <rms@gnu.org>
2233
2234 * window.c (Fsplit_window): For default size, round up for left window.
2235
22361999-07-21 Joe Ramey <ramey@ti.com>
2237
2238 * filelock.c (lock_if_free): Return -1 if check_lock_owner
2239 has returned -1 (lockfile exists but is not a symlink?).
2240
22411999-07-20 Gerd Moellmann <gerd@gnu.org>
2242
2243 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
2244 because of a change in cursor_gc made in 20.4.
2245
22461999-07-19 Gerd Moellmann <gerd@gnu.org>
2247
2248 * xterm.c (x_calc_absolute_position): Subtract menu bar height
2249 for YNegative, if using X toolkit.
2250
2251 * xfns.c (x_real_positions): Don't subtract window borders
2252 from positions returned.
2253
22541999-07-17 Gerd Moellmann <gerd@gnu.org>
2255
2256 * xrdb.c (x_load_resources): Set double-click time defaults
2257 for Motif list boxes from double-click-time.
2258
2259 * fns.c (Vhash_table_tests): Remvoed.
2260 (Qhash_table_test): New.
2261 (syms_of_fns): Initialize Qhash_table_test.
2262 (Fmake_hash_table): Look up user-defined tests in symbol prop
2263 `hash-table-test'.
2264 (Fdefine_hash_table_test): Store test and hash function as
2265 symbol prop `hash-table-test'.
2266 (make_hash_table): Add parameters user_test and user_hash.
2267
2268 * window.c (set_window_buffer): Set window margins for tty
2269 frames, too.
2270 (Fset_window_margins): Ditto.
2271
2272 * term.c (append_glyph): Use glyph area of iterator instead of
2273 always TEXT_AREA.
2274
2275 * dispnew.c (update_frame_1): Add left margin width to cursor
2276 hpos.
2277 (direct_output_for_insert): Ditto.
2278 (direct_output_forward_char): Ditto.
2279
2280 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
2281
2282 * dispextern.h (struct glyph_matrix): Add top_line_p.
2283
22841999-07-16 Gerd Moellmann <gerd@gnu.org>
2285
2286 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
2287 instead.
2288
2289 * fns.c (cmpfn_eq): Add hash code parameters.
2290 (cmpfn_eql): Ditto.
2291 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
2292 (cmpfn_user_defined): Likewise.
2293
22941999-07-15 Gerd Moellmann <gerd@gnu.org>
2295
2296 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
2297
2298 * fns.c (maybe_resize_hash_table): Correct computation of
2299 index vector size.
2300 (make_hash_table): Ditto.
2301 (Fmakehash): New.
2302
2303 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
2304
2305 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
2306 (survives_gc_p): Make it externally visible.
2307 (mark_object): Ditto.
2308
2309 * fns.c (remove_hash_entry): Removed.
2310 (sweep_weak_hash_tables): New.
2311
2312 * print.c (print): Print more information about hash tables.
2313
2314 * xfns.c (image_spec_hash): Removed.
2315 (lookup_image): Use sxhash instead of image_spec_hash.
2316 (image_spec_equal_p): Removed.
2317 (lookup_image): Use Fequal instead of image_spec_equal_p.
2318
23191999-07-14 Gerd Moellmann <gerd@gnu.org>
2320
2321 * lisp.h (P_): Moved to top of file.
2322
2323 * fns.c (make_hash_table): Set new members.
2324
2325 * alloc.c (mark_object): Mark hash table's user_hash_function.
2326 Mark index vector for weak hash tables.
2327
2328 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
2329 user_hash_function, cmpfn, and hashfn.
2330
2331 * fns.c (build_hash): Removed.
2332 (hash_test): Removed.
2333 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
2334 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
2335
23361999-07-13 Gerd Moellmann <gerd@gnu.org>
2337
2338 * alloc.c (survives_gc_p): New.
2339
2340 * print.c (print): Add hash table handling.
2341
2342 * alloc.c (mark_object): Add code to mark hash tables.
2343
2344 * lisp.h (GC_HASH_TABLE_P): New.
2345
2346 * emacs.c (main): Call init_fns.
2347
2348 * fns.c (init_fns): New.
2349
2350 * fns.c: Add hash table implementation.
2351
2352 * lisp.h (PVEC_HASH_TABLE): New.
2353 (struct Lisp_Hash_Table): New.
2354 (XHASH_TABLE): New.
2355 (XSET_HASH_TABLE): New.
2356 (HASH_TABLE_P): New.
2357 (CHECK_HASH_TABLE): New.
2358 (DEFAULT_HASH_SIZE): New.
2359 (DEFAULT_REHASH_THRESHOLD): New.
2360 (DEFAULT_REHASH_SIZE): New.
2361
2362 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
2363 (x_write_glyphs): Compute overwritten cursor using real start
2364 and end positions of display.
2365 (x_insert_glyphs): Ditto.
2366
23671999-07-10 Gerd Moellmann <gerd@gnu.org>
2368
2369 * keyboard.c (read_char): Use message3_nolog to show help-echo.
2370
2371 * dispnew.c (blank_row): Add y-position as parameter. Compute
2372 visible height.
2373
2374 * xdisp.c (next_element_from_string): Give padding spaces
2375 a position of -1.
2376
2377 * dispnew.c (adjust_glyph_matrix): Some work to support
2378 marginals areas on tty frames in a future version.
2379 (allocate_matrices_for_frame_redisplay): Ditto.
2380
2381 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
2382 to zero if number of glyphs in the row is <= 1.
2383
23841999-07-09 Gerd Moellmann <gerd@gnu.org>
2385
2386 * dispnew.c (buffer_posn_from_coords): Take left marginal area
2387 into account.
2388
2389 * xdisp.c (handle_display_prop): Don't reset area if handing
2390 a property from a string that came from a `display' property.
2391 (handle_single_display_prop): Don't handle recursive `display'
2392 properties.
2393 (handle_single_display_prop): Handle some display property
2394 forms for terminal frames.
2395 (Qimage): Moved here from xfns.c.
2396
2397 * dispextern.h (struct it): New field string_from_display_prop_p.
2398
2399 * xterm.c (x_clip_to_row): Don't let clip_rect include top
2400 line.
2401
24021999-07-08 Gerd Moellmann <gerd@gnu.org>
2403
2404 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
2405
2406 * window.c (set_window_buffer): Set window's vscroll to zero.
2407
2408 * xdisp.c (QCwhen): New.
2409 (display_prop_end): New.
2410 (handle_single_display_prop): Use it.
2411 (debug_method_add): Print buffer name if tracing.
2412 (try_window_reusing_current_matrix): Compute visible height
2413 of reused rows. Fix cursor position calculation in case of
2414 top-line.
2415
2416 * dispextern.h (struct redisplay_interface): Add parameter
2417 cursor_on_p to update_window_end_hook.
2418
2419 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
2420
24211999-07-07 Gerd Moellmann <gerd@gnu.org>
2422
2423 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
2424 doesn't become negative when decrementing it.
2425
2426 * eval.c (Fsignal): Reset redisplaying_p to zero.
2427
2428 * xdisp.c (try_window_reusing_current_matrix): Call hooks
2429 for window update.
2430 (try_window_id): Ditto.
2431
2432 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
2433 (x_scroll_run): Ditto.
2434 (any_help_event_p): New.
2435 (x_initialize): Set it to zero.
2436 (XTread_socket): Clear help echo only if any_help_event_p.
2437
2438 * xdisp.c (init_iterator): Set top_line_p.
2439 (start_display): Use correct initial y if top-line is present.
2440 (make_cursor_line_fully_visible): Bug fixes for top-line.
2441 (try_scrolling): Ditto.
2442 (try_window_reusing_current_matrix): Ditto.
2443
2444 * dispextern.h (struct it): Add top_line_p.
2445
2446 * dispnew.c (shift_glyph_matrix): Move some computations out
2447 of the loop.
2448
2449 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
2450 XFLOATINT.
2451
24521999-07-06 Gerd Moellmann <gerd@gnu.org>
2453
2454 * dispnew.c (update_frame_1): When setting cursor in echo area,
2455 skip only over padding spaces at the end.
2456
2457 * xfaces.c (realize_tty_face): Set face's font_name field to
2458 "tty".
2459
2460 * term.c (update_end): Turn cursor on only if selected window's
2461 cursor_off_p flag is not set.
2462
24631999-07-05 Gerd Moellmann <gerd@gnu.org>
2464
2465 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
2466 (TS_cursor_normal): Renamed from TS_end_visual_mode.
2467 (TS_cursor_invisible): New.
2468 (term_init): Initialize TS_cursor_invisible.
2469 (tty_hide_cursor): New.
2470 (tty_show_cursor): New.
2471 (update_end): Show tty cursor.
2472 (update_begin): Hide tty cursor to prevent cursor flickering
2473 during redisplays triggered by timers (stealth fontification).
2474
2475 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
2476
2477 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
2478 in scroll bars.
2479 (x_handle_toolbar_click): Set modifier bits.
2480
24811999-07-04 Gerd Moellmann <gerd@gnu.org>
2482
2483 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
2484 instead of a pointer to a volatile input_event.
2485 (kbd_buffer_store_event): Remove volatile modifier from
2486 declaration of local variable `sp'.
2487 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
2488 to kbd_fetch_ptr.
2489
24901999-07-03 Gerd Moellmann <gerd@gnu.org>
2491
2492 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
2493 only if buffer is modified. Return quickly if changes are
2494 above window start.
2495
24961999-07-02 Gerd Moellmann <gerd@gnu.org>
2497
2498 * dispextern.h (HSCROLL_WINDOWS): Removed.
2499
2500 * xdisp.c (mark_window_display_accurate): Don't set
2501 w->region_showing.
2502 (redisplay_internal): Don't call redraw_garbaged_frames.
2503
25041999-07-01 Gerd Moellmann <gerd@gnu.org>
2505
2506 * xdisp.c (echo_area_display): Don't display truncation marks
2507 for messages because 20.4 doesn't do it either.
2508 (redisplay_window): Case same window start. Instead of giving
2509 up when cursor is partially visible, make it fully visible.
2510 (mark_window_display_accurate): Some cleanup. Record window's
2511 last cursor information.
2512 (debug_method_add): Improved.
2513 (redisplay_internal): Record last cursor info only if not
2514 consider_all_windows_p.
2515
2516 * dispnew.c (update_window): Update top line after scrolling.
2517 (blank_row): Renamed from make_empty_enabled_row.
2518 (increment_glyph_row_buffer_positions): Increment positions
2519 in buffers, only.
2520
2521 * window.c (Fcoordinates_in_window_p): Add top-line to doc
2522 string.
2523
25241999-06-30 Gerd Moellmann <gerd@gnu.org>
2525
2526 * dispnew.c (update_window): Check that updated row is visible.
2527
2528 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
2529 top of window differently.
2530
2531 * xdisp.c (try_window_reusing_current_matrix): Don't do it
2532 if region is showing.
2533
2534 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
2535 avoiding matrix reallocation. Set window_vscroll in matrix.
2536
2537 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
2538
2539 * lwlib-Xm.c: Add function prototypes.
2540
2541 * xdisp.c (debug_method_add): New.
2542 (debug_redisplay_method): Removed.
2543 (try_window_reusing_current_matrix): Handle case where old
2544 window start is the same as new window start.
2545
2546 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
2547 an array instead of a pointer.
2548
2549 * lwlib-Xm.c (xm_update_label): Use val->name to look up
2550 a label string from resources.
2551 (xm_update_label): Add some comments.
2552
2553 * xfns.c (Fx_show_tip): Undo previous change.
2554
2555 * xterm.c (x_append_glyph): Clear glyph->u.val.
2556
2557 * dispextern.h (struct glyph): Increase size of face_id bit-field
2558 for CHAR_GLYPH to 12.
2559
25601999-06-29 Gerd Moellmann <gerd@gnu.org>
2561
2562 * xfaces.c (x_charset_registry): Make it externally visible.
2563
25641999-06-28 Gerd Moellmann <gerd@gnu.org>
2565
2566 * dispnew.c (update_window): Use mode_line_p flag of rows
2567 instead of WINDOW_WANTS_MODELINE_P.
2568
2569 * xterm.c (clear_mouse_face): Make externally visible.
2570
2571 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
2572
2573 * xterm.c (expose_line): Handle exposure of top-lines.
2574
2575 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
2576 if mouse_face_mouse_frame is null.
2577
2578 * xdisp.c (redisplay_window): If window is echo_area_window,
2579 and update_mode_line is set, update menubar and toolbar.
2580
2581 * dispnew.c (space_glyph): Set its charpos to -1.
2582 (update_frame_1): Ignore trailing padding spaces.
2583
2584 * xdisp.c (next_element_from_c_string): Set position of padding
2585 glyphs to -1.
2586
25871999-06-27 Gerd Moellmann <gerd@gnu.org>
2588
2589 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
2590 XQueryColor.
2591
2592 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
2593 (set_cursor_from_row): Skip over glyphs having a null object at
2594 the start of rows.
2595 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
2596 glyphs.
2597 (handle_invisible_prop): Compute next change only when needed.
2598 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
2599 line.
2600
26011999-06-26 Gerd Moellmann <gerd@gnu.org>
2602
2603 * xrdb.c (x_load_resources): Don't set resource for double-click
2604 time.
2605
2606 * xdisp.c (try_window_id): Return quickly if all changes are
2607 below the window's current matrix end.
2608
2609 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
2610 parameter.
2611
2612 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
2613 in desired not in current matrix.
2614 (try_window_reusing_current_matrix): Rotate matrices starting
2615 at start_vpos instead of 0.
2616
2617 * xterm.c (expose_window): Use window_text_bottom_y.
2618 (fast_find_position): Ditto.
2619
2620 * xdisp.c (redisplay_window): Use window_text_bottom_y.
2621 (try_window_reusing_current_matrix): Ditto.
2622 (get_last_unchanged_at_beg_row): Ditto.
2623 (init_iterator): Ditto.
2624
2625 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
2626 more row.
2627 (check_matrix_invariants): Use window_text_bottom_y.
2628 (update_window): Ditto.
2629 (scrolling_window): Ditto.
2630
2631 * xdisp.c (window_text_bottom_y): New.
2632
26331999-06-25 Gerd Moellmann <gerd@gnu.org>
2634
2635 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
2636 clearing mouse face.
2637 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
2638 event.xcrossing.focus is not set, and focus is in the menu bar,
2639 set focus frame as if event.xcrossing.focus were set.
2640
26411999-06-24 Gerd Moellmann <gerd@gnu.org>
2642
2643 * keyboard.c (make_lispy_event): Handle mouse on top lines.
2644 * keyboard.c (make_lispy_movement): Ditto.
2645
2646 * window.c (coordinates_in_window): Return 4 if on top line.
2647 (Fcoordinates_in_window_p): Return `top-line' if on top line.
2648
2649 * xdisp.c (window_box_height): Subtract top line height.
2650 (window_box): Add top line height to top y position if top line
2651 exists.
2652 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
2653 the top line row of the window. Set initial y-position to
2654 window's top line height plus delta.
2655 (start_display): Choose start glyph row depending on whether
2656 window has a top line.
2657 (try_scrolling): Take top line height into account for aggressive
2658 scrolling.
2659 (compute_window_start_on_continuation_line): Take top line into
2660 account.
2661 (redisplay_window): Ditto. If top line height has changed,
2662 trigger a new redisplay.
2663 (try_window_reusing_current_matrix): Take top line into account.
2664 (find_last_row_displaying_text): Ditto.
2665 (get_last_unchanged_at_beg_row): DItto.
2666 (try_window_id): Ditto.
2667 (compute_line_metrics): Ditto.
2668
2669 * dispnew.c (shift_glyph_matrix): Compute visible row height
2670 taking top line of window into account.
2671 (update_window): Update top line. If scrolling_window detects
2672 that all rows are equal, only set cursor.
2673 (update_window_line): Call after_update_window_line_hook if
2674 mode_line_p flag of rows has changed.
2675 (scrolling_window): Add parameter top_line_p. Return -1 if
2676 all rows are equal.
2677 (mode_line_string): Add parameter mode_line_p. Handle strings
2678 in top lines.
2679
2680 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
2681 (MATRIX_FIRST_TEXT_ROW): New.
2682 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
2683 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
2684 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
2685 (MATRIX_TOP_LINE_HEIGHT): New.
2686 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
2687 (CURRENT_TOP_LINE_HEIGHT): New.
2688 (DESIRED_TOP_LINE_HEIGHT): New.
2689 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
2690 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
2691 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
2692 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
2693
2694 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
2695 lines.
2696 (x_draw_row_bitmaps): Take top line into account when clearing
2697 bitmap area.
2698 (x_estimate_mode_line_height): Replacement for
2699 x_frame_mode_line_height.
2700 (x_get_glyph_string_clip_rect): Take top line into account.
2701 (x_clear_end_of_line): Ditto.
2702 (note_mode_line_highlight): Add parameter mode_line_p. Handle
2703 top lines.
2704 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
2705 (x_erase_phys_cursor): Take top line into account.
2706
2707 * xdisp.c (window_box_height): Subtract top line height if
2708 window wants a top line.
2709 (display_mode_lines): New.
2710 (redisplay_window): Call it.
2711 (display_mode_line): Add parameters face_id and format.
2712
2713 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
2714 (MATRIX_TOP_LINE_HEIGHT): New.
2715
2716 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
2717
2718 * term.c (estimate_mode_line_height): Renamed from
2719 frame_mode_line_height. Add parameter face_id.
2720 (estimate_mode_line_height_hook): Renamed from
2721 frame_mode_line_height_hook.
2722 (produce_special_glyphs_hook): Removed.
2723 (produce_glyphs_hook): Removed.
2724
27251999-06-23 Gerd Moellmann <gerd@gnu.org>
2726
2727 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
2728 (struct glyph_row): Add mode_line_p.
2729
2730 * xfaces.c (realize_basic_faces): Realize face `top-line'.
2731 (Qtop_line): New.
2732 (syms_of_xfaces): Initialize Qtop_line.
2733
2734 * dispextern.h (TOP_LINE_FACE_ID): New.
2735
2736 * buffer.c (init_buffer_once): Set default for
2737 top_line_format to nil.
2738 (init_buffer_once): Init top_line_format.
2739 (default-top-line-format): New.
2740 (top-line-format): New buffer-local variable.
2741
2742 * buffer.h: Add top_line_format.
2743
2744 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
2745
27461999-06-17 Dave Love <fx@gnu.org>
2747
2748 * xfns.c: Move the PNG section before the JPEG one to avoid
2749 problems surrounding setjmp.h/png.h on GNU/Linux.
2750
27511999-06-17 Gerd Moellmann <gerd@gnu.org>
2752
2753 * xfns.c (x_kill_gs_process): Don't free colors.
2754
27551999-06-17 Dave Love <fx@gnu.org>
2756
2757 * s/gnu-linux.h: Zap spurious ~.
2758
27591999-06-16 Gerd Moellmann <gerd@gnu.org>
2760
2761 * xfns.c (gif_load): Improve multi-image support.
2762
27631999-06-15 Gerd Moellmann <gerd@gnu.org>
2764
2765 * xfns.c (gif_load): Support multi-image files.
2766
2767 * Makefile.in (LIBGIF): Use libungif.
2768
2769 * configure.in (HAVE_GIF): Use libungif instead of libgif
2770 because the former doesn't contain patented compression code.
2771
2772 * xdisp.c (compute_window_start_on_continuation_line): Don't
2773 do it if line start is too far away from window start.
2774
27751999-06-14 Gerd Moellmann <gerd@gnu.org>
2776
2777 * buffer.c (init_buffer_once): Set buffer_local_flags for
2778 scroll_*_aggressively.
2779 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
2780 (init_buffer_once): Set defaults for these variables.
2781 (syms_of_buffer): Add default-scroll-*-aggressively.
2782
2783 * buffer.h (scroll_up_aggressively): New.
2784 (scroll_down_aggressively): New.
2785
2786 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
2787 a static PNG library.
2788
2789 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
2790 in case it's a static library.
2791
2792 * Makefile.in (ctagsfiles): Split so that files starting
2793 with an `x' are found before files starting with `w32'.
2794 (ctagsfiles1): New.
2795 (ctagsfiles2): New.
2796 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
2797
2798 * xdisp.c (compute_window_start_on_continuation_line): New.
2799 (redisplay_window): Use it.
2800 (INFINITY): New.
2801 (reseat_to_string): Use it.
2802 (hscroll_window_tree): Ditto.
2803 (compute_window_start_on_continuation_line): Ditto.
2804 (redisplay_window): Don't force display with a new window start.
2805
28061999-06-06 Gerd Moellmann <gerd@gnu.org>
2807
2808 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
2809 if widget not present.
2810
2811 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
2812
28131999-06-04 Gerd Moellmann <gerd@gnu.org>
2814
2815 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
2816 value of realize_basic_faces.
2817 (load_face_font_or_fontset): Store full font name in face.
2818 (realize_default_face): Use full font name.
2819
2820 * xlwmenu.c (make_shadow_gcs) ]emacs]: Use x_alloc_nearest_color.
2821
2822 * xterm.c (x_produce_glyphs): Set member char_to_display.
2823 (x_append_glyph): Store char_to_display in glyphs.
2824
2825 * dispextern.h (struct it): Add char_to_display.
2826
2827 * xfns.c (x_set_font): Don't call face-set-after-frame-default
2828 if faces haven't been initialized.
2829 (Fx_create_frame): Call face-set-after-frame-default after
2830 faces have been initialized, and widget has been created.
2831
2832 * puresize.h (BASE_PURESIZE): Increased.
2833
28341999-06-01 Gerd Moellmann <gerd@gnu.org>
2835
2836 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
2837 (Finternal_set_lisp_face_attribute): If frame is t when
2838 :font attribute is set, use the selected frame.
2839 (clear_face_cache): Add parameter clear_fonts_p.
2840 (Fclear_face_cache): Add optional parameter thorougly.
2841
2842 * xfaces.c (face_numeric_value): Return -1 if symbol is not
2843 in table.
2844 (Fclear_face_cache): New.
2845 (choose_face_fontset_font): If fontset doesn't contain font
2846 pattern for the given charset, use CHARSET_ASCII.
2847 (Finternal_set_lisp_face_attribute): Fix handling of nil
2848 stipple attribute.
2849 (Finternal_set_lisp_face_attribute): Fix handling of changing
2850 font-related face attributes of the default face.
2851 (set_lface_from_font_name): Set only attributes that aren't
2852 specified.
2853
28541999-05-31 Gerd Moellmann <gerd@gnu.org>
2855
2856 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
2857 font support.
2858 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
2859 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
2860 scalable fonts depending on the setting of SCALABLE_FONTS.
2861 (first_font_matching): List more than one font to find the
2862 first non-scalable matching font.
2863 (sorted_font_list): Let x_face_list_fonts return scalable fonts
2864 depending on SCALABLE_FONTS.
2865 (better_font_p): New parameter compare_pt_p. If zero, don't
2866 compare point sizes of fonts.
2867 (exact_face_match_p) [SCALABLE_FONTS]: New.
2868 (build_scalable_font_name) [SCALABLE_FONTS]: New.
2869 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
2870 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
2871 (syms_of_xfaces): Add scalable-fonts-allowed.
2872
28731999-05-26 Gerd Moellmann <gerd@gnu.org>
2874
2875 * xfns.c (png_load): Let PNG lib handle gamma. Construct
2876 mask only if image contains simple transparency information.
2877 Otherwise, combine image with frame background color.
2878
2879 * configure.in (--with-png, HAVE_PNG): New.
2880
2881 * config.in (HAVE_PNG): New.
2882
2883 * Makefile.in: Add PNG library.
2884
2885 * xfns.c: Add PNG support.
2886
28871999-05-25 Gerd Moellmann <gerd@gnu.org>
2888
2889 * xdisp.c (init_xdisp): Initialize echo_area_message and
2890 previous_echo_area_message to nil.
2891
2892 * keyboard.c (read_char): Rename local variable echo_area_message
2893 because it shadows the global one.
2894
28951999-05-05 Gerd Moellmann <gerd@gnu.org>
2896
2897 * xterm.c (note_mode_line_highlight): Restructured.
2898
2899 * window.c (coordinates_in_window): Handle windows that don't have
2900 a mode line because their buffer's mode-line-format is nil.
2901 Recognize the mode line under x positions that correspond to
2902 flags areas and left scroll bar.
2903
29041999-05-02 Dave Love <fx@gnu.org>
2905
2906 * xterm.c (note_mouse_highlight): Separate help-echo processing
2907 from check on mouse-face so that it works generally.
2908
29091999-04-21 Gerd Moellmann <gerd@gnu.org>
2910
2911 * sound.c (Fplay_sound): Run hook play-sound-hook.
2912 (Qplay_sound_hook): New.
2913
29141999-04-20 Gerd Moellmann <gerd@gnu.org>
2915
2916 * xdisp.c (update_echo_area): Handle echo_area_message.
2917
29181999-04-19 Gerd Moellmann <gerd@gnu.org>
2919
2920 * editfns.c (Fmessage): Use message3.
2921
2922 * print.c (printchar): Set echo_area_message to nil.
2923 (strout): Ditto.
2924
2925 * minibuf.c (read_minibuf): Reset echo message strings to nil.
2926 (Fminibuffer_completion_help): Ditto.
2927
2928 * keyboard.c (cmd_error_internal): Set echo_areA_message.
2929 (command_loop_1): Test echo_areA_message.
2930 (read_char): Ditto.
2931 (record_menu_key): Set echo_area_message to nil.
2932 (Fexecute_extended_command): Test echo_area_message.
2933 (Fexecute_extended_command): Handle echo_area_message.
2934
2935 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
2936 is set.
2937
2938 * editfns.c (Fcurrent_message): If echo_area_message is set,
2939 return a substring of that string.
2940
2941 * dispnew.c (direct_output_for_insert): Test echo_area_message
2942 in addition to echo_area_glyphs.
2943 (set_window_cursor_after_update): Ditto.
2944 (update_frame_1): Ditto.
2945
2946 * alloc.c (Fgarbage_collect): Use message3_nolog to display
2947 old Lisp message string.
2948
2949 * xdisp.c (echo_area_message): New.
2950 (previous_echo_area_message): New.
2951 (syms_of_xdisp): Initialize and staticpro new variables.
2952 (echo_area_display): Display echo_area_message if set.
2953 (message2_nolog): Set echo_area_message and
2954 previous_echo_area_message.
2955 (echo_area_display): Set previous_echo_area_message.
2956 (redisplay_internal): Display echo area if echo_area_message
2957 or previous_echo_area_message are set.
2958 (redisplay_preserve_echo_area): Test/set echo_area_message and
2959 previous_echo_area_message.
2960 (redisplay_window): Test echo_area_message.
2961 (message3_nolog): New.
2962 (message3): New.
2963
2964 * editfns.c (Fformat): Add text properties to the result string
2965 from properties of the format string and properties of string
2966 arguments.
2967
2968 * textprop.c (text_property_list): New.
2969 (add_text_properties_from_list): New.
2970 (extend_property_ranges): New.
2971
29721999-03-29 Gerd Moellmann <gerd@gnu.org>
2973
2974 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
2975 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
2976 Use these symbols for the box face attribute instead of the
2977 removed ones.
2978
29791999-03-12 Gerd Moellmann <gerd@gnu.org>
2980
2981 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
2982 Correct wrong test for slant.
2983
29841999-03-10 Gerd Moellmann <gerd@gnu.org>
2985
2986 * xfaces.c: Use `unspecified' for unspecified face attributes,
2987 use t and nil for on/off.
2988
29891999-03-06 Gerd Moellmann <gerd@gnu.org>
2990
2991 * buffer.c (syms_of_buffer): Extend doc string of
2992 mode-line-format.
2993
2994 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
2995 (first_font_matching): New.
2996 (set_lface_from_font_name): Use it if font name is a pattern.
2997 (font_field_wildcard_p): Removed.
2998
2999 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
3000 Recompute visible height of rows.
3001
3002 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
3003 Don't accept non-strings for help-echo from overlays.
3004
30051999-03-04 Dave Love <fx@gnu.org>
3006
3007 * xterm.c (note_mouse_highlight): Check overlays for help-text
3008 property.
3009 (XTread_socket): Fix compiler warning.
3010
30111999-03-05 Gerd Moellmann <gerd@gnu.org>
3012
3013 * xterm.c (note_mouse_highlight): Don't restrict number of
3014 overlay to 10. Call overlays_at so that it doesn't try to
3015 extend the vector.
3016
3017 * xdisp.c (compute_line_metrics): Compute glyph row's visible
3018 height.
3019
3020 * dispnew.c (row_equal_p): Compare visible row height, only.
3021 (update_text_area): Draw whole line if visible heights of
3022 rows differ.
3023 (update_window_line): Call after_update_window_line_hook
3024 if visible row height has changed.
3025
3026 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
3027 (struct glyph_row): New member visible_height.
3028
3029 * xfaces.c (font_field_wildcard_p): New.
3030 (set_lface_from_font_name): Remove parameter force_p. Accept
3031 font names containing wildcards.
3032
30331999-03-04 Gerd Moellmann <gerd@gnu.org>
3034
3035 * xterm.c (x_after_update_window_line): Clear internal border
3036 when windows_or_buffers_changed.
3037
3038 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
3039 buffer has a nil mode_line_format.
3040
30411999-03-03 Gerd Moellmann <gerd@gnu.org>
3042
3043 * xterm.c (x_setup_relief_colors): Use either background color
3044 or specified color.
3045
3046 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
3047
3048 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
3049
3050 * xterm.c (x_draw_box_rect): New.
3051 (x_draw_glyph_string_box): Renamed from
3052 x_draw_glyph_string_relief. Call x_draw_box_rect.
3053
3054 * xfns.c (QCrelief): New.
3055 (syms_of_xfns): Initialize it.
3056
3057 * dispextern.h (struct glyph): Rename left_shadow_p to
3058 left_box_line_p, right_shadow_p to right_box_line_p.
3059 (MAX_RELIEF_THICKNESS): Removed.
3060 (struct it): Rename members having `relief' in their names
3061 to contain `box' instead.
3062
3063 * xfaces.c (realize_x_face): Handle new box attribute values.
3064 (QCrelief, Qbox): Removed.
3065 (QCshadow, QCcolor, Qraised, Qsunken): New.
3066 (syms_of_xfaces): Initialize new symbols.
3067
30681999-03-02 Gerd Moellmann <gerd@gnu.org>
3069
3070 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
3071
3072 * xfaces.c (LFACE_RELIEF): Removed.
3073 (merge_face_vector_with_property): Remove handling of `:relief'.
3074 (Finternal_set_lisp_face_attribute): Ditto.
3075 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
3076 (Finternal_get_lisp_face_attribute): Ditto.
3077 (realize_default_face): Ditto.
3078 (lface_hash): Don't compute hash from relief.
3079
3080 * dispextern.h (struct face): Replace member `relief' by
3081 `box_line_width'. Add member `box'.
3082 (face_box_type): New.
3083
3084 * xterm.c (x_produce_glyphs): If face has overline, add overline
3085 thickness + 1 to ascent.
3086
30871999-03-01 Gerd Moellmann <gerd@gnu.org>
3088
3089 * xterm.c (x_draw_glyph_string): Draw underline, overline,
3090 strike-through, and boxes.
3091 (x_draw_glyph_string_underline): Removed.
3092
3093 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
3094 (Qoverline, Qstrike_through, Qbox): New.
3095 (syms_of_xfaces): Define these symbols.
3096 (check_lface_attrs): Add checks for overline, strike-through,
3097 and box.
3098 (Finternal_set_lisp_face_attribute): Set new attributes.
3099 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
3100 (load_color): Handle new attributes.
3101 (realize_x_face): Ditto.
3102 (merge_face_vector_with_property): Ditto.
3103 (free_face_colors): Ditto.
3104 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
3105 (Finternal_get_lisp_face_attribute): Ditto.
3106 (Finternal_lisp_face_attribute_values): Ditto.
3107
3108 * dispextern.h (lface_attribute_index): Add enumerators for
3109 overstrike, strike-through, and box.
3110 (struct face): Add members for overline, strike-through, and
3111 box.
3112
31131999-02-17 Dave Love <fx@gnu.org>
3114
3115 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
3116 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
3117 files.
3118
31191999-02-16 Gerd Moellmann <gerd@gnu.org>
3120
3121 * keyboard.c (toolbar_items): Call access_keymap with third
3122 parameter 1, so that we don't get inherited toolbar item
3123 definitions.
3124
3125 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
3126 the window end vpos when in empty first line of window.
3127
31281999-02-15 Gerd Moellmann <gerd@gnu.org>
3129
3130 * xfaces.c (set_font_frame_param): New.
3131 (Finternal_set_lisp_face_attribute): Call it.
3132
3133Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
3134
3135 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
3136 Accept specifications of color for underline.
3137
31381999-02-13 Gerd Moellmann <gerd@gnu.org>
3139
3140 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
3141 `frame' is t, operate on face defaults for new frames. If it
3142 is nil, operate on the selected frame.
3143
31441999-02-12 Gerd Moellmann <gerd@gnu.org>
3145
3146 * dispnew.c (check_matrix_invariants): Put it in #if 0.
3147 (update_window): Put the call to check_matrix_invariants in #if 0.
3148
3149Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
3150
3151 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
3152 Remove definition of UNDERLINE_COLOR.
3153
3154Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
3155
3156 * xfaces.c (free_face_colors): Free the color for underline.
3157
3158 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
3159 to the GC.
3160
3161Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
3162
3163 * dispextern.h (UNDERLINE_COLOR): Defined.
3164 (struct face): Added two new members.
3165 underline_color, underline_defaulted_p.
3166
3167 * xfaces.c (merge_face_vector_with_property):
3168 (check_lface_attrs): Accept the string value for underline.
3169 (Finternal_set_lisp_face_attribute): Likewise.
3170
3171 * xfaces.c (load_color): Change the last argument type to enum
3172 lface_attribute_index from int. And addec code for underling coloring.
3173 (load_face_colors): Pass LFACE_*_INDEX to load_color.
3174
31751999-02-12 Gerd Moellmann <gerd@gnu.org>
3176
3177 * xfns.c (Fx_image_header): Removed.
3178
31791999-02-07 Gerd Moellmann <gerd@gnu.org>
3180
3181 * xterm.c: Don't include <bitmaps/gray>.
3182 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
3183
3184 * xfns.c (Fx_image_header): Add missing `\n\'.
3185 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
3186
31871999-02-01 Gerd Moellmann <gerd@gnu.org>
3188
3189 * xterm.c (x_scroll_bar_create): Set background pixel from
3190 specified scroll bar color.
3191 (x_scroll_bar_set_handle): Use scroll bar foreground color.
3192
3193 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
3194 (x_set_scroll_bar_background): Ditto.
3195
3196 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
3197
3198 * xfns.c (x_default_scroll_bar_color_parameter): New.
3199 (Fx_create_frame): Call it.
3200
32011999-01-31 Gerd Moellmann <gerd@gnu.org>
3202
3203 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
3204 values in x_output structure.
3205 (Qscroll_bar_foreground, Qscroll_bar_background): New.
3206 (syms_of_xfns): Initialize these symbols.
3207
3208 * xterm.h (struct x_output): Add scroll bar pixel colors.
3209
3210 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
3211 (x_set_scroll_bar_foreground): New.
3212 (x_set_scroll_bar_background): New.
3213
3214 * xlwmenu.c (all_dashes_p): Removed.
3215 (size_menu_item): Call lw_separator_p.
3216 (display_menu_item): Ditto.
3217 (display_menu): Ditto.
3218 (draw_separator): New.
3219 (display_menu_item): Call it.
3220 (separator_height): New.
3221 (size_menu_item): Call it.
3222
3223 * lwlib-Xm.c (all_dashes_p): Removed.
3224 (make_menu_in_widget): Use lw_separator_p. Set Motif separator
3225 type.
3226
3227 * lwlib.c (lw_separator_p): New.
3228
3229 * lwlib.h (enum menu_separator): New.
3230
32311999-01-12 Gerd Moellmann <gerd@gnu.org>
3232
3233 * xdisp.c (handle_single_display_prop): New.
3234 (handle_display_prop): Call it.
3235 (handle_raise_prop): Removed.
3236 (handle_height_prop): Removed.
3237 (handle_space_width_prop): Removed.
3238 (handle_face_prop): Remove handling of raised text.
3239 (handle_display_prop): Do it here.
3240
3241 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
3242 (RAISE_PROP_IDX): Removed.
3243 (HEIGHT_PROP_IDX): Removed.
3244 (SPACE_WIDTH_PROP_IDX): Removed.
3245
3246 * xdisp.c (Qdisplay): Replaces Qglyph.
3247 (handle_display_prop): Formerly handle_glyph_prop.
3248
32491999-01-11 Gerd Moellmann <gerd@gnu.org>
3250
3251 * xdisp.c (reseat_to_string): Set position in display vector to -1.
3252 (handle_stop): Set position in display vector to -1. Don't
3253 check overlay strings when set up to deliver characters from a
3254 display vector.
3255 (set_iterator_to_next): At the end of a run of characters from a
3256 display vector, check whether the display vector display replaces
3257 the display of a character.
3258
32591999-01-05 Gerd Moellmann <gerd@gnu.org>
3260
3261 * xfaces.c (init_frame_faces): Don't realize faces if frame's
3262 X window hasn't been created yet.
3263
32641998-12-06 Gerd Moellmann <gerd@gnu.org>
3265
3266 * sound.c: New.
3267
32681998-12-04 Gerd Moellmann <gerd@gnu.org>
3269
3270 * config.in (HAVE_SOUND): New.
3271
3272 * emacs.c (main): Call syms_of_sound and init_sound.
3273
3274 * Makefile.in (obj): Add sound.o.
3275
3276 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
3277
3278 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
3279 (HAVE_SYS_SOUNDCARD_H): New.
3280
32811998-12-03 Gerd Moellmann <gerd@gnu.org>
3282
3283 * buffer.h (struct buffer): indicate_empty_lines renamed from
3284 indicate_zv_lines.
3285
3286 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
3287 (default-indicate-zv-lines): Likewise.
3288
3289 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
3290 to indicate_empty_line_p.
3291
3292 * xdisp.c (reseat_at_next_visible_line_start): Reset method
3293 to next_element_from_buffer.
3294
3295 * frame.c (make_frame): Set n_current_toolbar_items to 0.
3296
3297 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
3298 and `N-'.
3299
3300 * xfns.c (xbm_scan): New.
3301 (xbm_read_hexint): Removed.
3302 (xbm_read_bitmap_file_data): Use xbm_scan.
3303
3304 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
3305
33061998-12-02 Gerd Moellmann <gerd@gnu.org>
3307
3308 * xfns.c (xbm_read_hexint): New.
3309 (xbm_read_bitmap_file_data): New.
3310 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
3311 instead of XReadBitmapFileData.
3312
3313 * xdisp.c (handle_raise_prop): Compute voffset from current font.
3314
3315 * xfaces.c (face_with_height): New.
3316
3317 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
3318 (eval_form): Renamed from eval_mode_element.
3319 (handle_face_prop): Use it.
3320 (Qheight): Replaces Qsmaller.
3321 (handle_height_prop): Replaces handle_smaller_prop.
3322 (handle_face_prop): If iterator's font_height is not an
3323 integer, evaluate it to get the font height to use.
3324
3325 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
3326 (struct it): Use `font_height' instead of `smaller'.
3327
33281998-12-01 Gerd Moellmann <gerd@gnu.org>
3329
3330 * xdisp.c (reseat_1): New.
3331 (reseat): Call it.
3332 (move_it_vertically_backward): Ditto.
3333 (redisplay_window): Don't abort when cursor not found in recenter.
3334
33351998-11-30 Gerd Moellmann <gerd@gnu.org>
3336
3337 * xdisp.c (reseat_at_next_visible_line_start): When not
3338 currently delivering display elements from the current buffer,
3339 restore buffer position first.
3340 (init_from_display_pos): Don't set IT's position from the
3341 position passed to this function.
3342
33431998-11-28 Gerd Moellmann <gerd@gnu.org>
3344
3345 * config.in (PROTO): Removed.
3346
3347 * xterm.h: Change PROTO to P_.
3348
33491998-11-26 Gerd Moellmann <gerd@gnu.org>
3350
3351 * xterm.c (take_vertical_position_into_account): New.
3352 (x_produce_image_glyph): Call it.
3353 (x_produce_stretch_glyph): Ditto.
3354 (x_produce_glyphs): Ditto.
3355 (x_fill_glyph_string): Adjust base line for glyph's voffset.
3356 (x_fill_composite_glyph_string): Ditto.
3357 (x_fill_image_glyph_string): Ditto.
3358 (x_fill_stretch_glyph_string): Ditto.
3359
3360 * xdisp.c (display_line): Always compute row height from
3361 max_ascent and max_descent.
3362
3363 * dispextern.h (struct glyph): Add voffset.
3364 (struct it): Replace height by descent, max_height by max_descent.
3365
3366 * xterm.c (x_append_glyph): Set voffset
3367 (x_append_stretch_glyph): Ditto.
3368 (x_produce_image_glyph): Ditto.
3369 (x_produce_glyphs): Take voffset into account.
3370 (x_produce_image_glyph): Ditto.
3371 (x_produce_stretch_glyph): Ditto.
3372
3373 * dispextern.h (struct it): Add voffset.
3374 * xdisp.c (push_it): Save voffset.
3375 (pop_it): Restore it.
3376
3377 * xdisp.c (it_props): Add entry for `raise'.
3378 (handle_raise_prop): New.
3379
3380 * dispextern.h (RAISE_PROP_IDX): New.
3381
3382 * xdisp.c (Qraise): New.
3383 (syms_of_xdisp): Define Qraised.
3384
3385 * xterm.c (x_scroll_bar_move): Clear to the left and right
3386 of toolkit scroll bars differently.
3387 (x_scroll_bar_move): Removed.
3388 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
3389
3390 * dispextern.h: Make it compilable --with-x=no.
3391 * alloc.c: Ditto.
3392 * emacs.c: Ditto.
3393 * dispnew.c: Ditto.
3394 * keyboard.c: Ditto.
3395 * term.c: Ditto.
3396 * xdisp.c: Ditto.
3397 * xfaces.c: Ditto.
3398 * xfns.c: Ditto.
3399 * xmenu.c: Ditto.
3400
34011998-11-25 Gerd Moellmann <gerd@gnu.org>
3402
3403 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
3404
34051998-11-24 Gerd Moellmann <gerd@gnu.org>
3406
3407 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
3408 update slider size, only.
3409 (xm_scroll_callback): Set dragging member of the scroll bar.
3410 (xt_action_hook): Reset last_scroll_bar_part.
3411 (XTredeem_scroll_bar): Reset bar->dragging to nil.
3412
3413 * xlwmenu.c (abort_gracefully): New.
3414 (display_menu): Use it instead of abort.
3415 (size_menu): Ditto.
3416
3417 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
3418 window on newly created frames that don't have one.
3419
34201998-11-23 Gerd Moellmann <gerd@gnu.org>
3421
3422 * xdisp.c (restore_overlay_strings): Removed.
3423 (restore_dpvec): Removed.
3424 (init_from_display_pos): Inline both functions above.
3425
3426 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
3427 (parse_image_spec): Handle it.
3428 (xbm_format): Use it.
3429 (xpm_format): Ditto.
3430 (pbm_format): Ditto.
3431 (jpeg_format): Ditto.
3432 (tiff_format): Ditto.
3433 (gif_format): Ditto.
3434 (gs_format): Ditto.
3435
3436 * xdisp.c (set_window_cursor): Removed.
3437 (redisplay_internal): Case cursor motion in cursor line of
3438 selected window; use set_cursor_from_row.
3439
34401998-11-22 Gerd Moellmann <gerd@gnu.org>
3441
3442 * widget.c (EmacsFrameSetCharSize): Take widget's border width
3443 into account.
3444
34451998-11-21 Gerd Moellmann <gerd@gnu.org>
3446
3447 * xterm.c (expose_frame): Redraw menu bar window.
3448
3449 * xdisp.c (display_menu_bar): Record hpos instead of x-position
3450 in menu item.
3451
3452 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
3453 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
3454
3455 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
3456 to determine vertical_scroll_bar_extra.
3457 (EmacsFrameSetCharSize): Ditto.
3458 * xfns.c (x_figure_window_size): Ditto.
3459
3460 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
3461 (x_draw_bitmap): Ditto.
3462
3463 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
3464 * xfaces.c (realize_basic_faces): Realize it.
3465
34661998-11-20 Gerd Moellmann <gerd@gnu.org>
3467
3468 * xmenu.c (xmenu_show): Add workaround for remaining button grab
3469 under LessTif Use the widget of the frame as parent for the
3470 menu, again.
3471
34721998-11-19 Gerd Moellmann <gerd@gnu.org>
3473
3474 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
3475 When EnterNotify, don't generate a mouse movement event if
3476 notification is from a busy-cursor child window.
3477
3478 * xterm.h (struct x_output): Add busy_window, remove cursor.
3479
3480 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
3481 Use a transparent window to display the busy-cursor.
3482 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
3483
34841998-11-17 Gerd Moellmann <gerd@gnu.org>
3485
3486 * xdisp.c (check_window_end): New, for debugging.
3487 (CHECK_WINDOW_END): New.
3488 (try_window_id): Use it.
3489
3490 * xterm.c (process_expose_from_menu): Return int.
3491
3492 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
3493 TOOLBAR_EVENT events in last_nonmenu_event.
3494
34951998-11-16 Gerd Moellmann <gerd@gnu.org>
3496
3497 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
3498 window end isn't reliable, so set window_end_valid to nil.
3499 (redisplay_internal): If overlay arrow has changed, set
3500 windows_or_buffers_changed to redisplay thoroughly.
3501
3502 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
3503 necessary.
3504
3505 * xfns.c (file_dialog_cb): New.
3506 (Fx_file_dialog): New.
3507 * fileio.c (Fread_file_name): Call it.
3508
3509 * xrdb.c (x_load_resources): Add default resoures for file
3510 selection dialog.
3511
35121998-11-14 Gerd Moellmann <gerd@gnu.org>
3513
3514 * xterm.c (note_mouse_highlight): Don't highlight when popup
3515 is active.
3516
3517 * xlwmenu.c (xlwMenuResources): Change previously unused
3518 XtNmargin to 4.
3519 (size_menu): Take margin into account.
3520 (display_menu_item): Ditto.
3521 (remap_menubar): Ditto.
3522 (draw_arrow): Draw it 3D.
3523
3524 * keyboard.c (timer_check): Inhibit busy cursor around calls to
3525 timer-event-handler. This busy cursor tends to be anoying if
3526 fontifying stealthily.
3527
3528 * dispnew.c (direct_output_for_insert): Give up if current row
3529 contains trailing whitespace.
3530
35311998-11-13 Gerd Moellmann <gerd@gnu.org>
3532
3533 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
3534
3535 * xdisp.c (handle_fontified_prop): New.
3536 (Vfontification_functions): New.
3537 (Qfontification_functions): New.
3538 (it_props): Add handle_fontified_prop.
3539
35401998-11-12 Gerd Moellmann <gerd@gnu.org>
3541
3542 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
3543 Otherwise, under LessTif, after the popup has gone, all button
3544 press events come in for the frame's widget, and release events
3545 come in for the edit_widget.
3546 * xterm.c (XTread_socket): Remove workaround for that problem.
3547 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
3548 XmScrollBarSetValues.
3549 (SET_SAVED_MENU_EVENT): Give it statement form.
3550
3551 * lwlib-Xm.c (make_menu_in_widget): Set alignment of menu
3552 title after all widgets have been created.
3553
3554 * xfaces.c (display_message): If waiting_for_input, don't display
3555 the message.
3556
3557 * window.c (scroll_command): If not acting on current_buffer,
3558 make redisplay consider all windows.
3559
3560 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
3561
3562 * xdisp.c (handle_glyph_prop): Set it->object for images to
3563 the object having the glyph property.
3564
3565 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
3566 invisible.
3567
35681998-11-11 Gerd Moellmann <gerd@gnu.org>
3569
3570 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
3571 (x_term_init): Create the gray pixmap.
3572 (x_setup_relief_color): Use it.
3573 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
3574 internal border at the top of a frame.
3575 (x_init_glyph_string): Likewise.
3576 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
3577 full-width lines.
3578 (XTflash): Don't flash the toolbar window.
3579
3580 * xterm.c (XTread_socket): Workaround for LessTif popup menus
3581 in case of ButtonPress events.
3582
35831998-11-10 Gerd Moellmann <gerd@gnu.org>
3584
3585 * xrdb.c (x_load_resources): Add grey background colors as
3586 defaults for menus, scroll bars, and dialogs.
3587
3588 * insdel.c (prepare_to_modify_buffer): Move setting
3589 windows_or_buffers_changed from modify_region here.
3590
3591 * xfns.c (Fx_show_tip): Inhibit redisplay.
3592 (Fx_hide_tip): Ditto.
3593 (Fx_image_header): New.
3594
35951998-11-09 Gerd Moellmann <gerd@gnu.org>
3596
3597 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
3598 when clearing current window matrices.
3599
36001998-11-08 Gerd Moellmann <gerd@gnu.org>
3601
3602 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
3603 position from a string position. Use the right end position
3604 if the property spans a whole overlay string.
3605
36061998-11-07 Gerd Moellmann <gerd@gnu.org>
3607
3608 * xmenu.c (menubar_selection_callback): Remove workaround for
3609 Lesstif not calling XmNpopdownCallback because it doesn't
3610 handle the case where users don't select any menu item.
3611
3612 * xlwmenu.c (toggle_button_width): Renamed from
3613 toggle_or_radio_button_width.
3614 (radio_button_width): New.
3615 (size_menu_item): Use new functions.
3616 (draw_shadow_rhombus): New.
3617 (draw_radio): Use radio_button_width and draw_shadow_rhombus.
3618 (draw_toggle): Use toggle_button_width.
3619
3620 * insdel.c (modify_region): Set windows_or_buffers_changed.
3621
3622 * buffer.c (set_buffer_internal): Don't set
3623 windows_or_buffers_changed.
3624
3625 * lwlib-Xm.c (xm_update_toggle): Add callback xm_generic_callback
3626 instead of xm_internal_update_other_instances.
3627
3628 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
3629
3630 * lwlib-Xm.c (make_menu_in_widget): Do help button before managing
3631 children to get it to the right place.
3632 (make_menu_in_widget): Create toggle buttons.
3633 (update_one_menu_entry): Update toggle buttons.
3634
3635 * xmenu.c (menubar_selection_callback): Add workaround for
3636 Lesstif not calling XmNpopdownCallback.
3637
3638 * xdisp.c (eval_mode_element): New.
3639 (eval_mode_handler): New.
3640 (display_mode_element): Use eval_mode_element.
3641
3642 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
3643 Remove code looking at text props of default value.
3644
3645 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
3646
3647 * xlwmenu.c (size_menu_item): Add parameter button_width.
3648 (size_menu): Compute button_width.
3649 (toggle_or_radio_button_width): New.
3650 (draw_toggle): New.
3651 (draw_radio): New.
3652 (draw_shadow_rectangle): Add parameter `down_p'.
3653
3654 * xlwmenuP.h (_window_state): Add button_width.
3655
36561998-11-06 Gerd Moellmann <gerd@gnu.org>
3657
3658 * xmenu.c (single_submenu): Set button_type of menu to
3659 BUTTON_TYPE_NONE.
3660 (single_submenu): Likewise for panes and menu items.
3661 (set_frame_menubar): Set button_type of menu bar to none.
3662 (xmenu_show): Likewise.
3663 (single_submenu): Set widget values selected slot.
3664 (xmenu_show): Likewise.
3665
3666 * lwlib.c (merge_widget_value): Handle button_type.
3667 (copy_widget_value_tree): Copy button_type.
3668
3669 * lwlib.h (enum button_type): New.
3670 (_widget_value): New member button_type.
3671
3672 * xmenu.c (push_menu_item): Add parameters `type' and
3673 `selected'. Store it in menu_items.
3674 (MENU_ITEMS_ITEM_TYPE): New.
3675 (MENU_ITEMS_ITEM_SELECTED): New.
3676 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
3677
3678 * xfns.c (clear_image_cache): Get the current time, before
3679 doing anything.
3680 (cache_image): Set prev pointer of next image.
3681 (clear_image_cache): Clear current matrices if any image was
3682 freed.
3683
3684 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
3685
3686 * xfns.c (x_set_cursor): New.
3687 (Fx_display_busy_cursor): New.
3688 (Fx_undisplay_busy_cursor): New.
3689
3690 * xterm.h (struct x_output): Add busy_cursor.
3691
3692 * xfns.c (Vx_busy_pointer_shape): New.
3693 (x_set_mouse_color): Create busy cursor.
3694
3695 * process.c (wait_reading_process_input): Show and hide busy
3696 cursor.
3697
3698 * keyboard.c (command_loop_1): Display busy cursor.
3699
3700 * eval.c (Fsignal): Hide busy cursor.
3701
3702 * buffer.c (set_buffer_internal): Don't set
3703 windows_or_buffers_changed.
3704
3705 * xterm.c (redo_mouse_highlight): New.
3706
37071998-11-04 Gerd Moellmann <gerd@gnu.org>
3708
3709 * lwlib-Xm.c (make_menu_in_widget): Test for menubar widgets
3710 using XmNrowColumnType.
3711
3712 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
3713 (x_build_heuritic_mask): New.
3714 (lookup_image): Call it.
3715
3716 * xterm.c (note_toolbar_highlight): Always set up help_echo.
3717 (previous_help_echo): New.
3718 (XTread_socket): Generate help event with nil message when
3719 leaving a region with help-echo.
3720 (note_mouse_highlight): Handle `help-echo' over text.
3721 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
3722 CirculateRequest.
3723 (clear_mouse_face): Don't clear if tooltip is shown.
3724 (XTread_socket): Redo mouse-highlight after tooltip is gone.
3725 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
3726
3727 * keyboard.c (Vshow_help_function): New.
3728 (read_char): Use it.
3729
37301998-11-03 Gerd Moellmann <gerd@gnu.org>
3731
3732 * xfns.c (x_create_tip_frame): New.
3733 (Fx_show_tip): New.
3734 (Fx_hide_tip): New.
3735
3736 * xterm.c (x_destroy_window): Handle case that we don't have
3737 a widget.
3738
3739 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
3740 to full_width_p. Add internal_border_p.
3741
37421998-11-02 Gerd Moellmann <gerd@gnu.org>
3743
3744 * xterm.c (note_mode_line_highlight): Check the charpos of
3745 the glyph under the mouse pointer before accessing text
3746 properties at that position.
3747
37481998-11-01 Gerd Moellmann <gerd@gnu.org>
3749
3750 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
3751
3752 * xdisp.c (auto-raise-toolbar-buttons): New.
3753 (build_desired_toolbar_string): Handle the flag.
3754 (toolbar-button-margin): New.
3755 (toolbar-button-relief): New.
3756 (build_desired_toolbar_string): Use margin and relief.
3757
3758 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
3759 for FreeBSD.
3760 (note_mode_line_highlight): New.
3761 (note_mouse_highlight): Call it.
3762
37631998-10-31 Gerd Moellmann <gerd@gnu.org>
3764
3765 * s/freebsd.h (NARROWPROTO): New.
3766
3767 * xdisp.c (display_string): New parameter face_string.
3768 (display_mode_element): When displaying a symbol with a string
3769 value, use text properties from the symbol's default value, maybe.
3770
3771 * xrdb.c (x_load_resources): Add font defaults for menus and
3772 dialogs.
3773
37741998-10-30 Gerd Moellmann <gerd@gnu.org>
3775
3776 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
3777
37781998-10-29 Gerd Moellmann <gerd@gnu.org>
3779
3780 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
3781 produced for characters with codes < 32 under certain
3782 circumstances.
3783
3784 * xdisp.c (redisplay_window): Handle values of PT in front
3785 of invisible, intangible text.
3786 (try_window_id): Set overlay_arrow_seen to zero before
3787 displaying lines.
3788 (display_mode_element): Assign to glyphs written for a mode
3789 line spec `%x' as object the Lisp format string, as position
3790 the position of the `%' in that string.
3791 (display_string): If displaying a C string, optionally get
3792 the face to use from a Lisp string.
3793
3794 * xterm.c (expose_window_tree): Include mode line height.
3795
3796 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
3797
37981998-10-27 Gerd Moellmann <gerd@gnu.org>
3799
3800 * xterm.c (note_mouse_highlight): Change mouse pointer shape
3801 over mode line.
3802
38031998-10-26 Gerd Moellmann <gerd@gnu.org>
3804
3805 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
3806
3807 * xdisp.c (redisplay_window): If mode line height has changed,
3808 arrange for a thorough immediate redisplay using the correct mode
3809 line height.
3810 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
3811
3812 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
3813 (CURRENT_MODE_LINE_HEIGHT): New.
3814 (DESIRED_MODE_LINE_HEIGHT): New.
3815
3816 * keyboard.c (make_lispy_event): Add string and string position
3817 info to mouse-click events.
3818 (read_key_sequence): Handle `local-map' property of mode line
3819 strings.
3820
3821 * keyboard.h (POSN_STRING): New.
3822
38231998-10-25 Gerd Moellmann <gerd@gnu.org>
3824
3825 * dispnew.c (mode_line_string): Mew.
3826
3827 * xterm.c (xt_action_hook): New.
3828 (x_create_toolkit_scroll_bar): Add action hook.
3829 (xm_scroll_callback): Implement dragging.
3830
3831 * keyboard.c (Qend_scroll): New.
3832 (scroll_bar_parts): Add it.
3833
3834 * termhooks.h (scroll_bar_end_scroll): New.
3835
3836 * xterm.c (XTread_socket): Bug fix.
3837
38381998-10-24 Gerd Moellmann <gerd@gnu.org>
3839
3840 * xdisp.c (redisplay_window): Finish scroll bars after
3841 redisplaying toolbar.
3842
3843 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
3844 (syms_of_keyboard): Add Qbottom.
3845
3846 * termhooks.h (scroll_bar_to_top): New.
3847 (scroll_bar_to_bottom): New.
3848
3849 * xdisp.c (redisplay_window): Always resize toolbar window if
3850 auto_resize_toolbar_p is non-zero.
3851 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
3852 (window_box): New.
3853 (window_box_height): New.
3854 (window_box_width): New.
3855 (window_box_left): New.
3856 (window_box_right): New.
3857 (window_box_edges): New.
3858
38591998-10-23 Gerd Moellmann <gerd@gnu.org>
3860
3861 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
3862 XawScrollbarSetThumb in FreeBSD.
3863 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
3864 to true.
3865
3866 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
3867 is out of range.
3868
3869 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
3870 (x_term_init): Initialize it.
3871
3872 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
3873
3874 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
3875 cursor.
3876
38771998-10-22 Gerd Moellmann <gerd@gnu.org>
3878
3879 * keyboard.c (make_lispy_event): Handle scroll_bar_click
3880 differently when using toolkit scroll bars.
3881
3882 * xterm.c (x_send_scroll_bar_event): New.
3883 (x_scroll_bar_to_input_event): New.
3884 (xaw3d_scroll_callback): New.
3885 (xaw3d_jump_callback): New.
3886 (xm_scroll_callback): New.
3887 (x_toolkit_scroll_p): New.
3888 (XTread_socket): Handle scroll bar client message.
3889 (x_term_init): Initialize Xatom_Scrollbar.
3890 (x_scroll_bar_create): Set cursor.
3891 (xm_scroll_callback):
3892 (x_create_toolkit_scroll_bar): New.
3893 (x_set_toolkit_scroll_bar_thumb): New.
3894 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
3895 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
3896
3897 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
3898
38991998-10-21 Gerd Moellmann <gerd@gnu.org>
3900
3901 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
3902 (XTread_socket): Don't handle mouse button events for scroll bars
3903 if using toolkit scroll bars.
3904 (XTset_vertical_scroll_bar): Set thumb size and position for
3905 Athena scroll bar.
3906
3907 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
3908
3909 * xterm.c (XTread_socket): Dispatch expose event to widget
3910 if using toolkit scroll bars.
3911 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
3912 (x_scroll_bar_create): Create and show a scroll bar widget
3913 if using toolkit scroll bars.
3914 (x_scroll_bar_move): Handle tookit scroll bars.
3915
3916 * Makefile.in (LIBW): Use Xaw3d if present.
3917
3918 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
3919 (HAVE_XAW3D): New.
3920
3921 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
3922 (HAVE_XAW3D): New.
3923
3924 * xterm.c (XTset_vertical_scroll_bar): Correct position of
3925 right vertical scroll bar.
3926
39271998-10-20 Gerd Moellmann <gerd@gnu.org>
3928
3929 * xfns.c (xpm_load): Support reading XPM images from string
3930 buffers containing data in the same format as an XPM file.
3931 Support `:color-symbols'.
3932 (xpm_format): Add `:data'.
3933 (xpm_keyword_index): Add XPM_DATA.
3934 (syms_of_xfns): Add `:color-symbols'.
3935 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
3936 (xpm_valid_color_symbols_p): New.
3937 (xpm_image_p): Call it.
3938
3939 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
3940 attribute to the image if item is not enabled.
3941
3942 * xfns.c (x_laplace): New.
3943 (x_laplace_read_row): New.
3944 (x_laplace_write_row): New.
3945 (lookup_image): Handle common image attributes here. New
3946 attribute `:algorithm'.
3947
3948 * xfaces.c (clear_face_cache): Call clear_image_cache.
3949
3950 * xterm.c (x_inverted_image_mask): Removed.
3951 (x_draw_image_foreground_1): New.
3952 (x_draw_image_glyph_string): Draw images with mask to a temporary
3953 pixmap to reduce flickering.
3954
3955 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
3956 (display_toolbar_line): Remove parameter `margin'.
3957
39581998-10-19 Gerd Moellmann <gerd@gnu.org>
3959
3960 * xdisp.c (toolbar_lines_needed): New.
3961 (auto-resize-toolbars): New.
3962
3963 * xfns.c (cache_image): Correct call to xrealloc.
3964
3965 * dispnew.c (Fset_toolbar_height): Removed.
3966
3967 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
3968 FRAME_MENU_BAR_LINES.
3969
3970 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
3971 instead of FRAME_MENU_BAR_LINES.
3972 (check_frame_size): Ditto.
3973
3974 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
3975 instead of FRAME_MENU_BAR_LINES.
3976 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
3977 (build_frame_matrix): Ditto.
3978 (change_frame_size_1): Ditto.
3979
3980 * frame.h (FRAME_TOOLBAR_LINES): New.
3981 (FRAME_TOP_MARGIN): New.
3982
3983 * window.c (struct save_window_data): Add frame_toolbar_lines.
3984 (Fset_window_configuration): Handle toolbar lines.
3985 (Fcurrent_window_configuration): Save toolbar lines.
3986
3987 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
3988
3989 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
3990
3991 * frame.h (struct frame): Rename top_margin to toolbar_lines.
3992
3993 * xfns.c (x_frame_parms): Add `toolbar-lines'.
3994 (x_set_toolbar_lines): New.
3995
3996 * keyboard.c (cmd_error_internal): Bug fix.
3997
3998 * xterm.c: Remove double include of syssignal.h.
3999
40001998-10-18 Gerd Moellmann <gerd@gnu.org>
4001
4002 * xterm.c (x_toolbar_item): New.
4003 (x_handle_toolbar_click): Use it.
4004 (note_toolbar_highlight): Use it.
4005
4006 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
4007 and toolbar_items_vectors.
4008
4009 * xterm.c (help_echo): New.
4010 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
4011 (x_set_glyph_string_gc): Handle them.
4012 (x_after_update_window_line): Don't do anything in pseudo-windows.
4013 (x_produce_image_glyph): Take image margin and face relief into
4014 account.
4015 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
4016 (x_draw_glyph_string_background): Optimize case when face has
4017 relief.
4018 (x_setup_relief_color): Take frame instead of glyph string
4019 parameter.
4020 (x_draw_relief_rect): New.
4021 (x_draw_glyph_string_relief): Call it.
4022 (x_draw_image_glyph_string_foreground): Handle margin and image
4023 relief.
4024 (x_draw_image_glyph_string_background): Ditto.
4025 (expose_frame): Redraw toolbar window.
4026 (expose_window): Don't draw cursor for pseudo-windows.
4027 (x_y_to_hpos_vpos): Handle pseudo-windows.
4028 (frame_to_window_pixel_xy): New.
4029 (note_mouse_highlight): Call note_toolbar_highlight.
4030 (x_handle_toolbar_click): New.
4031 (note_toolbar_highlight): New.
4032 (show_mouse_face): Change int parameter `hl' to parameter of
4033 type enum draw_glyphs_face. Handle image highlighting.
4034 (XTread_socket): Return a HELP_EVENT input event if help_echo is
4035 non-nil. Use x_handle_toolbar_click.
4036
4037 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
4038
4039 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
4040 IMAGE_BOOL_VALUE.
4041 (parse_image_spec): Handle them.
4042 (image_spec_value): Additional parameter found.
4043 (free_image): Remove image from the vector `images' of the
4044 image cache.
4045 (clear_image_cache): Additional parameter force_p.
4046 (Fclear_image_cache): New.
4047 (x_find_image_file): New.
4048 (xbm_load): Handle `:margin' and `:relief'. Use
4049 x_find_image_file.
4050 (xpm_load): Likewise.
4051 (pbm_load): Likewise.
4052 (jpeg_load): Likewise.
4053 (tiff_load): Likewise.
4054 (gif_load): Likewise.
4055
4056 * keyboard.c (Qhelp_echo): New symbol.
4057 (read_char): Handle `toolbar' and `help_echo' events.
4058 (kbd_buffer_get_event): Handle HELP_ECHO input event.
4059 (make_lispy_event): Handle TOOLBAR_EVENT.
4060 (toolbar_items): New.
4061 (process_toolbar_item): New.
4062 (PROP): New.
4063 (init_toolbar_items): New.
4064 (append_toolbar_item): New.
4065 (read_char_x_menu_prompt): Handle `toolbar' event.
4066 (read_key_sequence): Ditto.
4067
4068 * xfaces.c (Qtoolbar): New.
4069 (realize_basic_faces): Realize `toolbar' face.
4070 (face_at_string_position): Remove parameter modeline_p, add
4071 base_face_id.
4072
4073 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
4074 to read data.
4075
40761998-10-17 Gerd Moellmann <gerd@gnu.org>
4077
4078 * xdisp.c (init_iterator): Replace parameter modeline_p with
4079 base_face_id.
4080 (next_element_from_string): Call get_next_display_element
4081 recursively after handling text properties.
4082 (prepare_menu_bars): Call update_toolbar.
4083 (update_toolbar): New.
4084 (build_desired_toolbar_string): New.
4085 (display_toolbar_line): New.
4086 (redisplay_toolbar): New.
4087 (toolbar_item_info): New.
4088 (redisplay_window): Call redisplay_toolbar.
4089 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
4090
4091 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
4092 window.
4093 (clear_desired_matrices): Ditto.
4094 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
4095 (free_glyphs): Free matrices of toolbar window.
4096 (update_frame): Update toolbar window.
4097 (change_frame_size_1): Take toolbar into account.
4098 (Fset_toolbar_height): New.
4099
4100 * dispextern.h (struct it): Remove member modeline_p, add
4101 base_face_id.
4102 (struct image): Add members relief and margin.
4103 (IMAGE_ASCENT): Include margin in height.
4104
41051998-10-14 Gerd Moellmann <gerd@gnu.org>
4106
4107 * xfns.c (Fclear_image_cache): New.
4108
4109 * xfaces.c (realize_basic_faces): Realize toolbar face.
4110 (face_at_string_position): Remove parameter modeline_p, add
4111 base_face_id.
4112
4113 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
4114
41151998-10-13 Gerd Moellmann <gerd@gnu.org>
4116
4117 * keyboard.c (syms_of_keyboard): Intern `:help'.
4118
41191998-10-12 Gerd Moellmann <gerd@gnu.org>
4120
4121 * xterm.c (note_toolbar_highlight): New.
4122 (note_mouse_highlight): Call it.
4123
4124 * window.c (window_from_coordinates): Additional parameter toolbar_p.
4125 (coordinates_in_window): Handle toolbar window.
4126
4127 * keyboard.c (toolbar_items): New.
4128 (process_toolbar_item): New.
4129 (parse_toolbar_item): New.
4130 (init_toolbar_items): New.
4131 (append_toolbar_item): New.
4132
4133 * dispextern.h (enum toolbar_item_idx): New.
4134 (enum toolbar_item_image): New.
4135
4136 * frame.h (struct frame): Add toolbar-related members.
4137
4138 * xfaces.c (face_at_string_position): Remove assertion that
4139 current_buffer == window's buffer. This is not the case when
4140 called for the toolbar window.
4141
4142 * frame.c (make_frame): Initialize toolbar members.
4143
4144 * alloc.c (mark_object): Mark toolbar data of frames.
4145
4146 * frame.h (struct frame): Add toolbar-related members
4147 toolbar_window, desired_toolbar_items, current_toolbar_items,
4148 desired_toolbar_string, current_toolbar_string,
4149 n_desired_toolbar_items, n_current_toolbar_items. Add
4150 window_height.
4151
4152 * xterm.c (x_after_update_window_line): Don't draw bitmap
4153 areas for pseudo-windows.
4154 (expose_frame): Handle toolbar window.
4155 (expose_window): Don't do cursor stuff for pseudo-windows.
4156
4157 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
4158
41591998-10-11 Gerd Moellmann <gerd@gnu.org>
4160
4161 * frame.c (make_frame): Initialize toolbar_window.
4162
4163 * alloc.c (mark_object): Make the toolbar window.
4164
4165 * dispnew.c (update_frame): Update frame's toolbar_window.
4166 (clear_current_matrices): Likewise.
4167 (clear_desired_matrices): Likewise.
4168 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
4169 (free_glyphs): Free the toolbar window and its matrices.
4170
4171 * frame.h (struct frame): Add toolbar_window.
4172
4173 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
4174 with relief.
4175
41761998-10-10 Gerd Moellmann <gerd@gnu.org>
4177
4178 * dispnew.c (buffer_posn_from_coords): Don't screw up if
4179 window start is not in the range BEGV..ZV.
4180
41811998-10-09 Gerd Moellmann <gerd@gnu.org>
4182
4183 * xdisp.c (try_scrolling): Experimentally handle the case
4184 that scroll-preserve-screen-position is set to `always'.
4185
4186 * window.c (Vscroll_preserve_screen_position): Replacement for
4187 scroll_preserve_screen_position.
4188
41891998-10-08 Gerd Moellmann <gerd@gnu.org>
4190
4191 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
4192 doesn't like it.
4193 * xdisp.c: Ditto.
4194
4195 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
4196
41971998-10-06 Gerd Moellmann <gerd@gnu.org>
4198
4199 * minibuf.c (Fminibuffer_complete_word): Fix computation of
4200 i_byte when prompts are inserted into minibuffers.
4201
4202 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
4203 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
4204 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
4205
42061998-10-04 Gerd Moellmann <gerd@gnu.org>
4207
4208 * xdisp.c (make_cursor_line_fully_visible): New.
4209 (try_scrolling): New.
4210 (redisplay_window): Move scrolling code to try_scrolling.
4211 (make_cursor_line_fully_visible): Handle case of window too small
4212 to show a single line.
4213 (redisplay_window): Case forced window start---use
4214 make_cursor_line_fully_visible.
4215 (redisplay_window): Case cursor movement via current matrix.
4216 If ending up on a partially visible line, make it fully visible
4217 instead of recentering.
4218 (try_scrolling): Additional parameter scroll_smoothly.
4219
4220 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
4221
42221998-09-28 Gerd Moellmann <gerd@gnu.org>
4223
4224 * window.c (window_scroll_pixel_based): Bug fix: vpos used
4225 instead of y-position for scroll-preserved-screen-position.
4226
42271998-09-07 Gerd Moellmann <gerd@gnu.org>
4228
4229 * dispnew.c (update_frame_line): If current row is not enabled,
4230 write the whole line.
4231
42321998-09-06 Gerd Moellmann <gerd@gnu.org>
4233
4234 * lisp.h (HAVE_FACES): Removed.
4235
4236 * dispextern.h (HAVE_FACES): Removed.
4237
4238 * config.in (HAVE_FACES): Removed.
4239
4240 * dispnew.c (HAVE_FACES): Removed.
4241
4242 * xdisp.c (HAVE_FACES): Removed.
4243
4244 * xfaces.c (HAVE_FACES): Removed.
4245
42461998-09-05 Gerd Moellmann <gerd@gnu.org>
4247
4248 * xdisp.c (init_iterator): If face_change_count is non-zero,
4249 free realized faces.
4250
4251 * xfaces.c (free_all_realized_faces): Make it externally visible.
4252 (Finternal_set_lisp_face_attribute): Increment
4253 windows_or_buffers_changed.
4254
4255 * dispnew.c (direct_output_for_insert): Give up if
4256 face_change_count is non-zero.
4257 (direct_output_forward_char): Ditto.
4258
4259 * xfaces.c (face_change_count): New.
4260
42611998-09-04 Gerd Moellmann <gerd@gnu.org>
4262
4263 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
4264 of range.
4265
42661998-09-03 Gerd Moellmann <gerd@gnu.org>
4267
4268 * term.c (Ftty_display_color_p): New.
4269
42701998-09-02 Gerd Moellmann <gerd@gnu.org>
4271
4272 * xfaces.c (Ftty_defined_colors): New.
4273
4274 * xterm.c (x_produce_glyphs): Fix computation of
4275 contains_overlapping_glyphs_p for ASCII.
4276
4277 * dispnew.c (Fshow_cursor): Don't change cursor state while
4278 redisplaying.
4279 (direct_output_for_insert): If a glyph with lbearing or rbearing
4280 is among the new glyphs, set row flag contains_overlapping_glyph_p.
4281
42821998-09-01 Gerd Moellmann <gerd@gnu.org>
4283
4284 * term.c (OUTPUT_IF): Make replacement text have statement form.
4285 (OUTPUT1_IF): Ditto.
4286 (TS_italic_mode, TS_end_italic_mode): Removed.
4287 (TS_bold_mode): Removed.
4288 (TS_underscore_mode, TS_end_underscore_mode): Removed.
4289 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
4290 (TS_enter_reverse_mode): New.
4291 (TS_enter_underline_mode, TS_exit_underline_mode): New.
4292 (TN_magic_cookie_glitch_ul): New.
4293 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
4294 (TS_exit_attribute_mode): New.
4295 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
4296 (TS_set_foreground, TS_set_background): New.
4297 (reset_terminal_modes): Switch colors back to default.
4298 (write_glyphs): Turn face on before writing text, turn it off
4299 afterwards.
4300 (insert_glyphs): Ditto.
4301 (term_init): Initialize new terminal capability variables.
4302 (turn_on_face): Turn a face on.
4303 (turn_off_face): Turn a face off.
4304
4305 * lisp.h (MAKE_GLYPH): Remove test for frame type.
4306 (GLYPH_CHAR): Ditto.
4307 (GLYPH_FACE): Ditto.
4308
4309 * xfaces.c (Vface_tty_color_alist): New.
4310 (face-register-tty-color): New.
4311 (face-clear-tty-colors): New.
4312
4313 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
4314 (struct it): Remove member faces_p since we now always have faces.
4315
43161998-08-31 Gerd Moellmann <gerd@gnu.org>
4317
4318 * dispextern.h (struct face): Add tty appearance flags.
4319
4320 * xdisp.c (init_iterator): Always handle faces.
4321 (extend_face_to_end_of_line): Handle tty frames.
4322
4323 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
4324 passed in.
4325
43261998-08-30 Gerd Moellmann <gerd@gnu.org>
4327
4328 * xfaces.c (realize_default_face): Use empty strings to indicate
4329 that the face should use the default foreground/background
4330 color of the terminal. Fill font-related attributes with
4331 appropriate values for tty frames.
4332
4333 * emacs.c (main): Call syms_of_xfaces before init_window_once.
4334
4335 * xfaces.c (realize_default_face): If face `default' is not
4336 yet known, create it.
4337
4338 * frame.c (make_terminal_frame): Call init_frame_faces
4339 unconditionally.
4340
4341 * xfaces.c (init_frame_faces): Make it work for tty frames.
4342 (free_frame_faces): Ditto.
4343 (clear_face_cache): Ditto.
4344 (recompute_basic_faces): Ditto.
4345 (Fframe_face_alist): Ditto.
4346 (free_realized_face): Ditto.
4347 (prepare_face_for_display): Ditto.
4348 (clear_face_gcs): Ditto.
4349 (lookup_face): Ditto.
4350 (smaller_face): Ditto.
4351 (realize_default_face): Ditto.
4352 (realize_face): Ditto.
4353 (realize_face): Dispatch to functions depending on the frame type.
4354 (realize_x_face): X way of realizing faces.
4355 (realize_tty_face): TTY way of realizing faces.
4356
43571998-08-29 Gerd Moellmann <gerd@gnu.org>
4358
4359 * xfaces.c (realize_face): Remove parameter unibyte_registry,
4360 compute it instead.
4361 (lookup_face): Remove local variable unibyte_registry.
4362
43631998-08-22 Gerd Moellmann <gerd@gnu.org>
4364
4365 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
4366 1 pixel longer.
4367
4368 * xdisp.c (face_before_or_after_it_pos): Fix computation
4369 of face in buffer.
4370
4371 * editfns.c (make_buffer_string_both): If prompt in buffer,
4372 prevent start > end.
4373
4374 * indent.c (Fvertical_motion): Set current_buffer to window's
4375 buffer if it isn't already.
4376
43771998-08-21 Gerd Moellmann <gerd@gnu.org>
4378
4379 * dispextern.h (GLYPH_DEBUG): Use default 0.
4380
4381 * xdisp.c (it_props): New member `smaller'.
4382 (init_iterator): Initialize it.
4383 (Qsmaller): New.
4384 (push_it): Save value of `smaller' value on the stack.
4385 (pop_it): Restore `smaller' from the stack.
4386 (handle_smaller_prop): New.
4387 (handle_face_prop): Use `smaller' text property to select a
4388 suitable face.
4389
4390 * dispextern.h (SMALLER_PROP_IDX): New.
4391 (struct it): Add member `smaller'.
4392
4393 * xfaces.c (smaller_face): New.
4394
4395 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
4396
4397 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
4398 total pixel width of window differently.
4399
4400 * xdisp.c (init_iterator): Compute width of mode line differently.
4401
4402 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
4403 of bitmap areas.
4404
4405 * window.c (Fsplit_window): Include width of bitmap areas in
4406 window width.
4407 (window_internal_width): Subtract width of bitmap areas from
4408 total width.
4409
44101998-08-18 Gerd Moellmann <gerd@gnu.org>
4411
4412 * xdisp.c: Functions reordered for better readability.
4413
4414 * dispnew.c (update_text_area): Handle glyphs with arbitrary
4415 lbearing.
4416 (update_window_tree): Parameter no_scrolling_p removed.
4417 (update_single_window): Ditto.
4418
4419 * xterm.c (x_get_char_font_and_encoding): Renamed to
4420 x_get_char_face_and_encoding.
4421
4422 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
4423 if end of current row reached.
4424
4425 * xterm.c (x_get_glyph_face_and_encoding): New.
4426 (x_get_glyph_overhangs): Call it.
4427
4428 * xdisp.c (Qshow_trailing_whitespace): New.
4429 (Qtrailing_whitespace): New.
4430 (enum prop_handled): New.
4431 (struct props, it_props): New.
4432 (next_overlay_change): New. Works like Fnext_overlay_change
4433 but doesn't use xmalloc.
4434 (handle_stop): Restructured.
4435 (face_before_or_after_it_pos): Case iteration over a string: fix
4436 handling of face before current position.
4437
44381998-08-16 Gerd Moellmann <gerd@gnu.org>
4439
4440 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
4441 reallocation matrix if fonts_changed_p.
4442 (update_text_area): Handle glyphs with lbearing.
4443
44441998-08-14 Gerd Moellmann <gerd@gnu.org>
4445
4446 * xdisp.c (struct props): New.
4447 (it_props): New.
4448 (compute_prop_info): New.
4449 (handle_stop): New.
4450
4451 * textprop.c (validate_interval_range): Make it externally
4452 visible.
4453
4454 * dispnew.c (direct_output_for_insert): Remove calls
4455 to compute_stop_pos.
4456
4457 * dispextern.h (struct it): Remove check_charpos,
4458 next_overlay_pos. Add what_changes.
4459
44601998-08-10 Gerd Moellmann <gerd@gnu.org>
4461
4462 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
4463
4464 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
4465 face_default_registry instead.
4466
4467 * syntax.c (scan_sexps_forward): Set up syntax table before
4468 jumping to initial state label.
4469
44701998-08-09 Gerd Moellmann <gerd@gnu.org>
4471
4472 * dispnew.c (check_matrix_invariants): Handle case of row end pos
4473 >= ZV specially.
4474
44751998-08-08 Gerd Moellmann <gerd@gnu.org>
4476
4477 * xdisp.c (redisplay_window): Case cursor movement---if cursor
4478 ends up in partially visible row, try to scroll. Case forced
4479 window start---handle windows not tall enough to show a single
4480 line.
4481
4482 * window.h (struct window): Member dy renamed vscroll.
4483
4484 * xterm.c (x_list_fonts): Re-activate suppression of scalable
4485 fonts.
4486 (x_draw_stretch_glyph_string): Set clipping if using GC that
4487 hasn't set it yet.
4488
4489 * xdisp.c (redisplay_window): Case forced window start -
4490 don't let cursor end on partially visible row. Use desired
4491 matrix to find a suitable PT if it doesn't appear.
4492 (decode_mode_spec): Merged with 20.2.97.
4493 (try_window_reusing_current_matrix): Give up if old or
4494 new display is vscrolled.
4495 (redisplay_window): Reset vscrolling if forced window start,
4496 or if recentering.
4497
44981998-08-06 Gerd Moellmann <gerd@gnu.org>
4499
4500 * xfaces.c (realize_default_face): Use the fontset name instead of
4501 the alias for the family attribute of the default face because we
4502 can't easily determine a good alias from fontset-alias-alist.
4503 (face_fontset): Use Fquery_fontset to find the fontset.
4504 (font_list): Additional pattern parameter.
4505 (try_font_list): Ditto.
4506 (set_lface_from_font_name): Set face family from font foundry
4507 and family.
4508 (font_list): If family contains a hyphen, build pattern differently.
4509
45101998-08-05 Gerd Moellmann <gerd@gnu.org>
4511
4512 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
4513 changed instead of setting the frame garbaged.
4514
4515 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
4516 all attribute values. This is wrong if values are unspecified,
4517 i.e. nil.
4518
4519 * xdisp.c (try_window_id): Give up if window start changed.
4520
4521 * xfaces.c (make_realized_face): Store registry as Lisp object.
4522 (load_face_font_or_fontset): Compute registry of a face
4523 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
4524 possible.
4525
4526 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
4527 differently.
4528
4529 * alloc.c (mark_face_cache): Mark the registry member of faces.
4530
4531 * dispextern.h (struct face): Make registry a Lisp string.
4532
45331998-08-04 Gerd Moellmann <gerd@gnu.org>
4534
4535 * xterm.c (x_get_char_font_and_encoding): Additional parameter
4536 multibyte_p. Handle unibyte text.
4537 (x_append_glyph): Set the multibyte_p flag of glyphs.
4538 (x_produce_image_glyph): Ditto.
4539 (x_append_stretch_glyph): Ditto.
4540 (x_produce_glyphs): Handle unibyte text like ASCII.
4541
4542 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
4543 stack.
4544 (pop_it): Restore it.
4545 (face_before_or_after_it_pos): Handle the case that the string or
4546 buffer is unibyte.
4547 (get_overlay_strings): Set the multibyte flag of the iterator if
4548 the new overlay string is multibyte.
4549 (get_glyph_property): Likewise.
4550 (get_next_display_element): Don't check for charset changes in
4551 unibyte text.
4552 (append_space): Compute face differently for unibyte text.
4553 (extend_face_to_end_of_line): Don't return quickly if face has
4554 stipple.
4555
4556 * xfaces.c (load_face_font_or_fontset): Store registry and
4557 encoding of the font in the registry member of the face.
4558 (make_realized_face): Additional parameter `registry'.
4559 (free_realized_face): Free the registry of a realized face.
4560 (face_suitable_for_charset_p): Function form of the macro
4561 with the same name in uppercase.
4562 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
4563 (choose_face_font): New parameter unibyte_registry.
4564 (choose_face_fontset_font): Ditto.
4565 (realize_default_face): Remember the registry and encoding of
4566 the specified frame font in Vx_unibyte_registry_and_encoding.
4567 (face_at_buffer_position): Handle unibyte.
4568 (face_at_string_position): Likewise.
4569 (realize_face): New parameter unibyte_registry.
4570 (compute_char_face): Handle the unibyte case.
4571
4572 * dispextern.h (struct glyph): Add bit multibyte_p.
4573 (struct face): New member registry holding the registry and
4574 encoding of the X font of the face.
4575 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
4576 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
4577 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
4578 text.
4579 (struct iterator_stack_entry): Add multibyte_p.
4580
4581 * xdisp.c (string_pos): Use string_char_to_byte.
4582 (char_charset): Removed.
4583
45841998-08-03 Gerd Moellmann <gerd@gnu.org>
4585
4586 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
4587 rectangle for a block cursor over an image without a mask.
4588 (x_stretch_block_cursor): Added. Non-zero means don't draw
4589 a block cursor over a stretch as wide as that stretch.
4590 (x_draw_stretch_glyph_string): Use it.
4591 (x_draw_hollow_cursor): Ditto.
4592
4593 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
4594 (read_minibuf): Add front-sticky text property for prompt.
4595
4596 * xdisp.c (char_charset): Return charset of a character,
4597 depending on whether or not multi-byte characters are enabled.
4598
4599 * xfaces.c (Fset_face_charset_registry): Removed.
4600 (x_charset_registry): Determine registry from charset plist.
4601
46021998-08-02 Gerd Moellmann <gerd@gnu.org>
4603
4604 * xdisp.c (get_next_display_element): Don't check for charset
4605 changes if multi-byte characters are not enabled.
4606
4607 * xdisp.c (echo_area_display): Use the flush function from the
4608 redisplay interface.
4609 * keyboard.c (detect_input_pending_run_timers): Likewise.
4610
4611 * dispextern.h (produce_*glyphs_hook): Removed.
4612 * term.c (produce_*glyphs): Ditto.
4613 (cursor_to): Remove pixel position parameters.
4614
4615 * dispnew.c: Remove hooks for window-based redisplay, introduce
4616 a redisplay interface structure.
4617
4618 * xterm.c (x_per_char_metric): Return default char metrics if per
4619 char metric exists but contains a zero width. Adobe Courier seems
4620 to contain such characters.
4621
4622 * xdisp.c (compute_line_metrics): Compute the width of rows
4623 without stopping at glyphs with zero width.
4624
46251998-08-01 Gerd Moellmann <gerd@gnu.org>
4626
4627 * xdisp.c (display_mode_line): If nothing was displayed at all,
4628 display a space.
4629 (hscroll_window_tree): Don't subtract 1 from target point if equal
4630 to ZV and window is not the selected window.
4631
4632 * dispnew.c (check_matrix_invariants): Remove check for window
4633 start at BEGV or after newline. This happens in rare cases
4634 intentionally.
4635
46361998-07-31 Gerd Moellmann <gerd@gnu.org>
4637
4638 * xfaces.c (x_charset_registry): Use STRING_BYTES.
4639 (syms_of_xfaces): Add Vface_default_registry.
4640 (x_charset_registry): Use it.
4641
4642 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
4643 (redisplay_window): Use it.
4644
4645 * dispnew.c (update_text_area): Handle lbearing of deleted text
4646 by backing up one character.
4647
46481998-07-30 Gerd Moellmann <gerd@gnu.org>
4649
4650 * dispnew.c (adjust_glyph_matrix): Use a different check to
4651 decide to do nothing.
4652
4653 * xfaces.c (face_at_string_position): Additional parameter
4654 mode_line_p. If non-zero, merge with the mode line face
4655 instead of the default face.
4656 * dispextern.h (struct it): Add mode_line_p.
4657 * xdisp.c (init_iterator): Set it.
4658 (compute_face_in_string): Use it.
4659 (face_before_or_after_it_pos): Handle strings.
4660 (get_next_display_element): Don't look for relief end in C strings.
4661 (next_element_from_string): Deliver string position instead of
4662 buffer position.
4663
4664 * xterm.c (x_flush): Flush X output buffer.
4665 (XTflash): Use it.
4666
4667 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
4668 Allow strings as face names.
4669
4670 * xfns.c (forall_images_in_image_cache): Check that frame is
4671 alive.
4672
4673 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
4674 it's also called from x_destroy_window. Since this function is
4675 called from X, freeing stuff allocated with xmalloc is dangerous
4676 here, anyway.
4677
4678 * xfaces.c (free_realized_faces): Don't clear current matrices
4679 of a frame being destroyed.
4680
4681 * frame.c (make_frame): Call set_window_buffer instead of
4682 Fset_window_buffer.
4683
4684 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
4685 with an additional argument specifying whether or not hooks may
4686 be called.
4687 (Fset_window_buffer): Call it.
4688
4689 * dispnew.c (clear_desired_matrices): Check that frame has
4690 a valid root window before clearing matrices in the window tree.
4691 (clear_current_matrices): Ditto.
4692 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
4693 vchild are valid windows if not nil.
4694
4695 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
4696 for :inverse-video.
4697 (Finternal_set_lisp_face_attribute): Ditto.
4698 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
4699 (Finternal_get_lisp_face_attribute): Ditto.
4700 (Finternal_lisp_face_attribute_values): Ditto.
4701 (syms_of_xfaces): Define the symbol `:reverse-video'.
4702
4703 * xdisp.c (get_glyph_property): Renamed from
4704 fill_iterator_from_glyph_property.
4705 (next_element_from_buffer): Handle case that no `glyph' property
4706 was found correctly.
4707 (display_line): Extend face to end of line only if we have faces.
4708
47091998-07-29 Gerd Moellmann <gerd@gnu.org>
4710
4711 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
4712 additional window argument.
4713
4714 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
4715 set_iterator_to_previous_visible_line_start.
4716 (reseat_at_next_visible_line_start): Likewise.
4717 (compute_stop_pos): Renamed from set_iterator_stop_pos.
4718 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
4719 (compute_face_in_buffer): Renamed from
4720 compute_face_at_iterator_position.
4721 (compute_face_in_string): Renamed from
4722 compute_face_at_iterator_string_position.
4723 (get_space_width): Renamed from get_iterator_space_width.
4724 (next_overlay_string): Renamed from
4725 set_iterator_to_next_overlay_string.
4726 (get_overlay_strings): Renamed from
4727 get_overlay_strings_at_iterator_position.
4728 (restore_overlay_strings): Renamed from
4729 setup_overlay_strings_from_glyph_pos.
4730 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
4731 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
4732 (init_to_row_start): Renamed from init_iterator_to_row_start.
4733 (init_to_row_end): Formerly init_iterator_to_next_row_start.
4734
4735 * xterm.c: Merge with 20.2.97.
4736 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
4737
4738 * dispextern.h (struct glyph): Replace text_pos position with
4739 simple charpos.
4740
4741 * xdisp.c (this_line_start_pos): Use struct text_pos.
4742 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
4743 (enum move_it_result): Renamed from move_iterator_result.
4744 (string_pos_nchars_ahead): Compute text_pos in a string from a
4745 known text_pos plus a character delta.
4746 (string_pos): Compute text_pos in string from charpos.
4747 (c_string_pos): Likewise for a C string.
4748 (number_of_chars): Return number of characters in a possibly
4749 multi-byte C string.
4750 (check_it): Renamed from check_iterator. Check that charpos and
4751 bytepos are in sync.
4752 (push_it): Renamed from save_iterator_settings.
4753 (pop_it): Renamed from restore_iterator_settings.
4754 (move_it_.*): Renamed from move_iterator_.*.
4755 (charset_at_position): Take charpos/bytepos into account.
4756 (back_to_previous_line_start): Set iterator to previous line start.
4757 (forward_to_next_line_start): Set iterator to next line start.
4758 (back_to_previous_visible_line_start): Renamed from
4759 move_iterator_previous_visible_line_start.
4760 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
4761 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
4762 Handle charpos/bytepos.
4763 (compute_face_at_iterator_position): Handle charpos/bytepos.
4764 (compute_face_at_iterator_string_position): Likewise.
4765 (get_iterator_space_width): Likewise.
4766 (load_overlay_strings): Likewise.
4767 (get_overlay_strings_at_iterator_position): Likewise.
4768 (reseat_iterator): Take a text_pos position argument.
4769 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
4770 bytepos.
4771 (init_iterator): Take additional bytepos parameter.
4772 (reseat_iterator_to_string): Handle charpos/bytepos.
4773 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
4774 (next_element_from_string): Handle charpos/bytepos.
4775 (next_element_from_c_string): Likewise.
4776 (fill_iterator_from_glyph_property): Likewise.
4777 (next_element_from_buffer): Likewise.
4778 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
4779 (move_iterator_in_display_line_to): Handle charpos/bytepos.
4780 (move_it_to): Likewise.
4781 (move_it_vertically_backward): Likewise.
4782 (move_it_vertically): Likewise.
4783 (move_it_by_lines): Likewise.
4784 (hscroll_window_tree): Likewise.
4785 (redisplay_internal): Likewise.
4786 (set_cursor_from_row): Likewise.
4787 (redisplay_window): Likewise.
4788 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
4789 (try_window_reusing_current_matrix): Handle charpos/bytepos.
4790 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
4791 (try_window_id): Handle charpos/bytepos.
4792 (Ftrace_redisplay_toggle): Return Qnil.
4793 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
4794 (insert_left_trunc_glyphs): Likewise.
4795
4796 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
4797 do a real merge).
4798 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
4799 (increment_glyph_row_buffer_positions): Ditto.
4800 (copy_glyph_row_contents): Ditto.
4801 (check_matrix_invariants): Add additional checks for charpos/
4802 bytepos consistency.
4803 (direct_output_for_insert): Changed for charpos/bytepos.
4804 (buffer_posn_from_coords): Likewise. Put code dealing with
4805 `direction-reversed' in #if 0.
4806
4807 * xterm.h: Merge with 20.2.97.
4808
4809 * frame.h: Merge with 20.2.97.
4810
4811 * window.h: Merge with 20.2.97. Add window_end_bytepos.
4812
4813 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
4814 start.
4815 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
4816 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
4817 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
4818 (struct it): Various members renamed from .*pos to .*charpos.
4819 (IT_CHARPOS): Access current buffer character position of an
4820 iterator.
4821 (IT_BYTEPOS): Access current buffer byte position of an iterator.
4822 (IT_STRING_CHARPOS): Access current string character position of
4823 an iterator.
4824 (IT_STRING_BYTEPOS): Access current string byte position of
4825 an iterator.
4826 (globally): Add function prototypes from 20.2.97.
4827
4828 * everywhere: Use P_ instead of PROTO for function prototypes
4829 because everyone else seems to use P_.
4830
4831 * dispextern.h (struct text_pos): Structure describing a charpos/
4832 bytepos position in text.
4833 (BYTEPOS): Access the byte position part of a text_pos.
4834 (CHARPOS): Likewise for the character position.
4835 (SET_TEXT_POS): Set a text_pos from a character and byte position.
4836 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
4837 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
4838 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
4839 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
4840 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
4841 for buffer and string positions.
4842 (struct glyph): Use text_pos.
4843 (struct it): Renamed from display_iterator. Use text_pos.
4844
48451998-07-23 Gerd Moellmann <gerd@gnu.org>
4846
4847 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
4848 pixmap.
4849
48501998-07-21 Gerd Moellmann <gerd@gnu.org>
4851
4852 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
4853 * xterm.c (x_draw_row_bitmaps): Use it.
4854 * dispnew.c (row_equal_p): Ditto.
4855 (update_window_line): Ditto.
4856
4857 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
4858 flag of images.
4859
4860 * dispextern.h (struct image): Removed member loading_failed_p.
4861 It's probably better to have the chance to try to load an image
4862 again.
4863
48641998-07-20 Gerd Moellmann <gerd@gnu.org>
4865
4866 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
4867 at ZV if `indicate-zv-lines' is non-nil.
4868 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
4869
4870 * dispnew.c (row_equal_p): Compare displays_text_p and
4871 ends_at_zv_p flags of rows.
4872 (update_window_line): Ditto.
4873
4874 * buffer.h (struct buffer): New member indicate_zv_lines.
4875
4876 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
4877 (init_buffer_once): New variable `default-indicate-zv-lines'.
4878 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
4879
4880 * xdisp.c (redisplay_window): Don't try moving the cursor
4881 if current glyph row w->last_cursor.vpos isn't enabled.
4882
4883 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
4884
4885 * window.c (Fset_window_vscroll): Allow only negative scroll
4886 values. Others don't seem to make sense, and this way it's easy
4887 to restore a vscroll of zero.
4888
4889 * xterm.c (x_inverted_image_mask): Check that pixmap could be
4890 allocated.
4891 (x_draw_image_glyph_string_background): Don't clip if pixmap
4892 could not be created.
4893
4894 * xfns.c (xbm_load_image_from_file): Check that pixmap could
4895 be created.
4896 (xbm_load): Ditto.
4897 (gs_load): Ditto.
4898
4899 * xterm.c (x_get_glyph_overhangs): Take image and stretch
4900 glyphs into account.
4901
4902 * xfaces.c (realize_default_face): Don't set font family of
4903 the default face from the fontset alias name for `fontset-startup'.
4904
4905 * xfns.c (gs_load): Pass frame's pixel foreground and background
4906 color to the Lisp loader.
4907
49081998-07-19 Gerd Moellmann <gerd@gnu.org>
4909
4910 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
4911 libtiff34.
4912
4913 * configure.in (--with-tiff, HAVE_TIFF): Added.
4914
4915 * config.in (HAVE_TIFF): Added.
4916
4917 * Makefile.in (LIBTIFF): Added.
4918
4919 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
4920
4921 * Makefile.in (LIBJPEG): Added.
4922
4923 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
4924 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
4925 jpeglib.h.
4926
4927 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
4928 where the library is installed in /usr/local/lib, e.g. FreeBSD,
4929 configure must be run with `--x-includes=/usr/X11R6/include:
4930 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
4931
49321998-07-18 Gerd Moellmann <gerd@gnu.org>
4933
4934 * config.in (HAVE_JPEG): Added.
4935
4936 * xfns.c (ct_init): Initialize color table used to map RGB colors
4937 from images to X pixel colors.
4938 (ct_free): Free color table.
4939 (ct_lookup): Look an RGB color up.
4940 (ct_allocated_colors): Get vector of allocated colors.
4941 (pbm_image_p): Test if image specification is a valid PPM
4942 image specification.
4943 (pbm_scan_number): Scan a decimal ASCII number from a file.
4944 (pbm_load): Load a PPM image.
4945
4946 * window.c (Fset_window_vscroll): Adjust glyph matrix if
4947 necessary. Take canonical character units as parameter.
4948 (Fwindow_vscroll): Return canonical character units.
4949
4950 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
4951 w->dy to display height for which glyph rows must be allocated.
4952
49531998-07-17 Gerd Moellmann <gerd@gnu.org>
4954
4955 * xfaces.c (face_at_string_position): Merge in region face
4956 so that it won't overwrite the font in the region.
4957 (face_at_buffer_position): Ditto.
4958 (realize_basic_faces): Don't realize region face.
4959
4960 * dispextern.h (enum face_id): REGION_FACE_ID removed.
4961
4962 * xterm.c (x_set_glyph_string_background_width): Don't let
4963 cursor face extend to end of line.
4964
4965 * xdisp.c (append_space): If adding space of default face,
4966 make sure glyph ist produced with right face.
4967
4968 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
4969 background color of a glyph string.
4970 (x_draw_glyph_string_background): Call it.
4971 (x_draw_glyph_string_bg_rect): Ditto.
4972 (x_draw_stretch_glyph_string): Ditto.
4973
49741998-07-15 Gerd Moellmann <gerd@gnu.org>
4975
4976 * xdisp.c (init_iterator): Initialize it->current_y to the
4977 window's vscroll w->dy.
4978
4979 * window.c (Fwindow_vscroll): Return number of pixels window
4980 is vscrolled smoothly.
4981 (Fset_window_vscroll): Set the number.
4982
4983 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
4984 to_pos in truncated part of a line.
4985
49861998-07-14 Gerd Moellmann <gerd@gnu.org>
4987
4988 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
4989 doesn't fit on the line, truncate it, despite truncate_lines nil.
4990 (display_line): Ditto.
4991
4992 * xfns.c: Experimental support for Ghostscript images.
4993
4994 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
4995 (XTread_socket): React on events from Ghostscript.
4996 (expose_frame): If width or height are zero, redraw entire frame.
4997 (XTread_socket): Call expose_frame after receiving event from
4998 Ghostscript.
4999
5000 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
5001 for Ghostscript support.
5002
5003 * xdisp.c (redisplay_internal): Return quickly if called
5004 recursively.
5005
5006 * alloc.c (NSTATICS): Increased to 1024.
5007
50081998-07-08 Gerd Moellmann <gerd@gnu.org>
5009
5010 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
5011 iterator's glyph row.
5012 (x_produce_stretch_glyph): Call it.
5013 (x_produce_glyphs): Handle `space-width' property; call
5014 x_append_stretch_glyph.
5015
5016 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
5017 property.
5018 (get_iterator_space_width): Determine value of `space-width'
5019 property at iterator's position.
5020 (reseat_iterator): Call it.
5021 (next_element_from_string): Ditto.
5022 (next_element_from_buffer): Ditto.
5023 (init_iterator): Initialize space_width of iterator.
5024 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
5025 moved, but cursor blinks.
5026 (redisplay_internal): Set w->last_cursor_off_p after update.
5027
5028 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
5029 (struct display_iterator): Add new member space_width.
5030
5031 * window.h (struct window): Add last_cursor_off_p.
5032
50331998-07-07 Gerd Moellmann <gerd@gnu.org>
5034
5035 * Saved.
5036
5037 * window.c (Fpos_visible_in_window_p): Case window not up to
5038 date---return nil if iterator hasn't reached position.
5039
50401998-07-06 Gerd Moellmann <gerd@gnu.org>
5041
5042 * xdisp.c (text_outside_line_unchanged_p): Fix case that
5043 overlays have changed.
5044 (redisplay_window): Case cursor movement. Don't try it if
5045 last_cursor.vpos is out of range.
5046
5047 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
5048 way, the display optimization for the line containing the cursor
5049 is used more frequently, esp. when we have a blinking cursor.
5050 (display_line): Don't set this_line_.* variables.
5051
5052 * xterm.c (x_redraw_cursor): Removed.
5053 (x_display_and_set_cursor): Set cursor type depending on
5054 cursor_off_p flag of window.
5055
5056 * dispnew.c (redraw_cursor_hook): Removed.
5057 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
5058 member of the selected window.
5059
5060 * xfaces.c (Fface_font): Added for compatibility with 20.2.
5061
5062 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
5063 Return glyph area under x/y.
5064 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
5065
5066 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
5067 after redisplaying.
5068
50691998-07-05 Gerd Moellmann <gerd@gnu.org>
5070
5071 * xdisp.c (text_outside_line_unchanged_p): Test if changes
5072 are all outside of a line of text.
5073 (redisplay_internal): Use it.
5074
50751998-06-30 Gerd Moellmann <gerd@gnu.org>
5076
5077 * xdisp.c (next_element_from_buffer): After skipping over
5078 invisible text, look for the `glyph' property.
5079 (set_iterator_stop_pos): Ignore check positions in front
5080 of an iterator's current position.
5081
5082 * xterm.c (show_mouse_face): Don't act on rows that don't exist
5083 anymore or which are marked as not having valid contents.
5084
5085 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
5086 realized faces if new attribute value is equal to old value.
5087
50881998-06-29 Gerd Moellmann <gerd@gnu.org>
5089
5090 * xfaces.c (Finternal_make_lisp_face): Increment
5091 lface_id_to_name_size when lface_id_to_name is reallocated.
5092
50931998-06-27 Gerd Moellmann <gerd@gnu.org>
5094
5095 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
5096 as minimum of endpos and overlay_pos.
5097 (load_overlay_strings): Set next_overlay_pos of iterator to
5098 -1 if we don't have to check for more overlay strings.
5099
51001998-05-09 Gerd Moellmann <gerd@gnu.org>
5101
5102 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
5103 do anything if iterator is at ZV because scan_buffer doesn't
5104 work otherwise.
5105
5106 * xterm.c (x_encode_char): Inline it.
5107 (x_get_char_font_and_encoding): Simplified.
5108 (x_per_char_metric): Inline it.
5109
5110 * xterm.c (x_draw_glyph_string_relief): Use clipping.
5111
5112 * xdisp.c (get_next_display_element): Check for end of relief
5113 face moved here from next_element_from_buffer.
5114
5115 * xterm.c (x_produce_image_glyph): Add relief thickness.
5116 (x_produce_stretch_glyph): Ditto.
5117
51181998-05-08 Gerd Moellmann <gerd@gnu.org>
5119
5120 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
5121 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
5122
5123 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
5124 from a glyph property.
5125 (x_produce_glyphs): Use it.
5126
5127 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
5128
5129 * xterm.c (x_produce_image_glyph): Add to current_x only if
5130 in text area.
5131 (x_produce_glyphs): Ditto.
5132
5133 * xdisp.c (display_line): Compute row height from glyphs in
5134 marginal areas.
5135
5136 * xterm.c (x_draw_image_glyph_string_background): Draw
5137 background of an image glyph string.
5138 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
5139 the background of a glyph string.
5140 (x_draw_image_glyph_string_foreground): Draw the foreground of
5141 an image glyph string.
5142 (x_inverted_image_mask): Return the inverted mask of an image.
5143
5144 * xfns.c (x_draw_image): Removed.
5145
5146 * dispextern.h (struct image_type): Remove drawing function.
5147
5148 * xfaces.c (load_face_colors): Swap colors if face is inverse.
5149
5150 * xdisp.c (get_next_display_element): In marginal areas, translate
5151 newlines, tabs, etc. like normal control characters.
5152
5153 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
5154 and color.
5155 (free_realized_faces): Set frame garbaged.
5156
5157 * xfaces.c (syms_of_xfaces): Add defsubr for
5158 internal-lisp-face-attribute-values.
5159
51601998-05-07 Gerd Moellmann <gerd@gnu.org>
5161
5162 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
5163 full.
5164 (x_produce_image_glyph): Set IT->nglyphs to 1.
5165 (x_draw_image_glyph_string): Use inverted mask to draw background.
5166
5167 * dispextern.h (struct image_type): Additional clipping rect
5168 parameters for drawing functions.
5169
5170 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
5171 a glyph string.
5172 (x_draw_image_glyph_string): Use it and pass the rect to the
5173 image drawing function.
5174
5175 * xdisp.c (fill_iterator_from_glyph_property): Use position of
5176 first character with `glyph' property as image position. Set
5177 iterator back to that position as long as the image hasn't been
5178 consumed with set_iterator_to_next.
5179 (set_cursor_from_row): Accept when glyph with given position is
5180 not found in the row. Set cursor x to end of line in that case,
5181 so that we can hscroll.
5182 (redisplay_internal): Correct computation of delta by which
5183 positions have changed in redisplay optimization for cursor
5184 row of selected window.
5185
5186 * xdisp.c (display_line): Remove start_pos.
5187 (display_line): Fix bug preventing display optimization for
5188 cursor line of selected window.
5189 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
5190 instead.
5191
5192 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
5193 (update_text_area): Take glyph pixel width into account
5194 when trying to find a resync point.
5195 (row_equal_p): Compare glyphs in all areas.
5196
51971998-05-06 Gerd Moellmann <gerd@gnu.org>
5198
5199 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
5200
5201 * dispextern.h (struct glyph_row): Use unsigned hash value.
5202
5203 * xdisp.c (display_line): Simplified and made faster by setting
5204 the cursor with set_cursor_from_row.
5205 (set_cursor_from_row): Handle rows of desired matrix.
5206
52071998-05-05 Gerd Moellmann <gerd@gnu.org>
5208
5209 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
5210 with type != CHAR_GLYPH.
5211 (fill_iterator_from_glyph_property): Return void. Set
5212 method to next_element_from_image.
5213 (next_element_from_image): Dummy function for delivering a
5214 single image id.
5215 (set_iterator_to_next): Add method next_element_from_image.
5216 (redisplay_window): When recentering, and cursor vpos is -1
5217 after display, assume middle of window is in first line displayed
5218 in window, and display again.
5219 (fill_iterator_from_glyph_property): Assign image glyph
5220 the position of the first character having the glyph property.
5221
5222 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
5223 * xfns.c (x_draw_image): Use it.
5224 * xterm.c (x_produce_image_glyph): Use it.
5225
5226 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
5227
5228 * Makefile.in: Extraneous #define of LIBXPM removed.
5229
5230 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
5231 (x_fill_stretch_glyph_string): Fill a glyph string from a
5232 stretch glyph.
5233 (x_compute_glyph_string_overhangs): Compute overhangs only
5234 for text glyph strings.
5235 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
5236 (x_draw_glyph_string): Call it.
5237
5238 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
5239 (struct glyph): Add sub-structure for stretchable glyphs.
5240 (GLYPH_EQUAL_P): Compare glyph type and u.val.
5241
5242 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
5243 #ifdef HAVE_FACES.
5244
5245 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
5246
5247 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
5248 setup_iterator_from_glyph_property. Don't do it for terminal
5249 frames.
5250
5251 * xterm.c (x_produce_image_glyph): Produce glyph for image
5252 that can't be loaded.
5253
5254 * xfns.c (lookup_image): If image can't be loaded, set its
5255 width and height so that we can draw a rectangle.
5256 (x_draw_image): Draw a rectangle for images that don't have
5257 a pixmap.
5258 (make_image): Set hash value.
5259 (image_spec_equal_p): Use image_spec_value.
5260
5261 * xterm.c (expose_frame): Don't try to redraw if basic faces
5262 haven't benn realized yet.
5263 (x_draw_image_glyph_string): Fill background only if image
5264 is not as tall as row.
5265
52661998-05-04 Gerd Moellmann <gerd@gnu.org>
5267
5268 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
5269 (LIBX)[HAVE_X11]: Add LIBXPM.
5270
5271 * xfns.c (xpm_image_p): Implementation of image type functions
5272 for XPM.
5273 (xpm_load): Ditto.
5274
5275 * dispextern.h (struct image): Add mask pixmap for XPM.
5276
5277 * xfns.c (x_draw_image): Handle images with masks.
5278
5279 * configure.in: --with-xpm added. Code detecting -lXpm added.
5280
5281 * config.in: Add HAVE_XPM.
5282
5283 * xfns.c (xbm_draw): Removed.
5284 (x_draw_image): Default implementation for drawing images.
5285 (xbm_keyword_index): Remove XBM_DEPTH.
5286 (xbm_format): Remove `:depth'.
5287 (xbm_image_spec_from_file): Removed to reduce consing.
5288 (xbm_load_image_from_file): Added for the same reason.
5289
5290 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
5291 glyph string.
5292 (x_draw_image_glyph_string): Pass ybase to image draw function.
5293
5294 * xfns.c (make_image): Set default baseline.
5295
5296 * xterm.c (x_produce_image_glyph): Compute ascent of image
5297 from its height and baseline percentage.
5298
5299 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
5300 (xbm_format): Add description for `:baseline'.
5301 (xbm_image_spec_from_file): Add keywords from original spec to
5302 result.
5303 (xbm_load): Set baseline of image.
5304 (xbm_image_p): Check range for baseline.
5305
5306 * dispextern.h (struct image): Add member baseline.
5307
5308 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
5309
5310 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
5311
5312 * xdisp.c (get_next_display_element): Do character translations
5313 only if delivering characters.
5314
53151998-05-03 Gerd Moellmann <gerd@gnu.org>
5316
5317 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
5318 DISP_CHARACTER.
5319
5320 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
5321 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
5322
53231998-05-02 Gerd Moellmann <gerd@gnu.org>
5324
5325 * xfns.c (prepare_image_for_display): Set image timestamp.
5326 (clear_image_cache): Clear images if image's timestamp +
5327 Vimage_eviction_seconds is > now.
5328 (syms_of_xfns): New variables image-eviction-seconds, and
5329 image-types.
5330 (add_image_format): Add to image-types.
5331 (xbm_load): Support new image spec format.
5332 (x_alloc_image_color): Allocate a color for an image.
5333
5334 * dispextern.h (struct image): Add timestamp.
5335
5336 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
5337 vectors of bool-vectors.
5338 (xbm_lisp_object_from_file): Build new format image spec.
5339
53401998-05-01 Gerd Moellmann <gerd@gnu.org>
5341
5342 * xfaces.c (init_frame_faces): Initialize image cache.
5343 (free_frame_faces): Free it.
5344
5345 * xterm.c (x_delete_display): Don't free image cache.
5346
5347 * emacs.c (main): Call init_xfns.
5348
53491998-04-30 Gerd Moellmann <gerd@gnu.org>
5350
5351 * alloc.c (mark_object): Mark objects in image cache.
5352
5353 * xfns.c (x_set_internal_border_width): Correct call to
5354 widget_store_internal_border_width.
5355
5356 * widget.c (widget_store_internal_border): Return void.
5357
5358 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
5359 void.
5360 (init_x_parm_symbols): Return void.
5361 (x_report_frame_params): Ditto.
5362 (x_set_border_pixel): Ditto.
5363 (syms_of_xfns): Ditto.
5364 (x_destroy_all_bitmaps): Use xfree instead of free.
5365
5366 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
5367
5368 * xterm.c (x_term_init): Initialize image_cache of display info.
5369 (x_delete_display): Free image cache.
5370
5371 * xterm.h (struct x_display_info): Add image_cache.
5372
5373 * xfns.c (make_image_cache): Allocate a new image cache.
5374 (free_image_cache): Free an image cache.
5375 (make_image): Allocate an image.
5376 (free_image): Free an image.
5377
5378 * dispextern.h (struct image): Structure describing an image.
5379 (struct image_cache): Structure describing an image cache.
5380
53811998-04-29 Gerd Moellmann <gerd@gnu.org>
5382
5383 * xdisp.c (check_iterator_glyph_property): Return int. Value is
5384 non-zero if iterator is filled with something to return.
5385 (next_element_from_buffer): Immediately return if
5386 setup_iterator_from_glyph_prop has filled iterator with pixmap.
5387 (next_element_from_string): Likewise.
5388
5389 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
5390
5391 * dispextern.h (struct glyph): Add pixmap_id.
5392 (display_element_type): Add DISP_PIXMAP.
5393
5394 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
5395 malloc/free.
5396
5397 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
5398 (clear_face_cache): Call it.
5399
5400 * xterm.c (x_query_font): Don't look at empty font table slots.
5401 (x_compute_min_glyph_bounds): Likewise.
5402 (x_term_init): Initialize font_table to null.
5403 (x_load_font): Change allocation of font_info structures so
5404 that it is possible to free fonts.
5405
5406 * xfns.c (Fx_close_connection): Use xfree instead of free.
5407 Only free fonts from filled font table entries.
5408
5409 * xfaces.c (best_matching_font): Support use of scalable fonts.
5410 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
5411
5412 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
5413 and resy.
5414 * xterm.c (x_term_init): Compute resx and resy.
5415
5416 * xfaces.c (split_font_name): Don't reject scalable fonts.
5417
5418 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
5419 in #if 0.
5420
5421 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
5422 point size cannot be determined.
5423
5424 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
5425 width over all fonts on a frame.
5426 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
5427 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
5428 macros.
5429
5430 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
5431 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
5432 (x_load_font): Use x_compute_min_char_bounds.
5433
5434 * xterm.h (struct x_display_info): New members smallest_char_width
5435 and smallest_font_height.
5436
54371998-04-28 Gerd Moellmann <gerd@gnu.org>
5438
5439 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
5440 the same name if GC of face is zero.
5441
5442 * dispextern.h (struct face): Member non_ascii_gc removed.
5443
5444 * xterm.c (x_get_char_font_and_encoding): Return face's font
5445 for characters < 0177 in default face. Prepare face for
5446 display before returning it.
5447 (x_produce_glyphs): Use it->charset.
5448 (x_get_char_font_and_encoding): Simplified.
5449 (x_encode_char): Remove parameter `font'.
5450
5451 * xfaces.c (choose_face_font): If registry from charset symbol
5452 doesn't contain a `-', make it a pattern by appending "*-*".
5453
5454 * xdisp.c (check_iterator_glyph_property): Adjust limit for
5455 glyph_check_pos computation to character boundary.
5456
54571998-04-27 Gerd Moellmann <gerd@gnu.org>
5458
5459 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
5460
5461 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
5462 ASCII face for a given Lisp face id.
5463
5464 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
5465 account.
5466 (reseat_iterator): Set glyph_check_pos. Handle case where
5467 new position is < original position.
5468 (check_iterator_glyph_property): Handle glyph property in strings.
5469 (next_element_from_string): Call above function.
5470 (next_element_from_display_vector): Handle faces in glyphs.
5471 (get_next_display_element): Set face_id of glyphs for
5472 control chars to zero.
5473
5474 * Makefile.in (term.o): Add dependency on dispextern.h.
5475
5476 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
5477 (display_line): Handle marginal areas.
5478 (move_iterator_in_display_line_to): Likewise.
5479
5480 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
5481
5482 * xfaces.c (face_at_buffer_position): Don't merge with nil
5483 text property.
5484 (face_at_string_position): Ditto.
5485
5486 * dispextern.h (struct display_iterator): Use a stack of saved
5487 values instead of saving check positions etc. individually.
5488
5489 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
5490 maybe pop the iterator's stack.
5491 (save_iterator_settings): Push a value on iterator's stack.
5492 (get_overlay_strings_at_iterator_position): Use it.
5493 (restore_iterator_settings): Pop the stack.
5494 (set_iterator_to_next_overlay_string): Use it.
5495
5496 * xfaces.c (try_font_list): Use alternative font families.
5497
54981998-04-26 Gerd Moellmann <gerd@gnu.org>
5499
5500 * xfaces.c (Fset_face_font_sort_order): Set the order in which
5501 font selection matches fonts.
5502 (Fface_font_sort_order): Return the font sort order.
5503 (best_matching_font): Find best matching font based on sort order.
5504 (cmp_font_names): Sort by given sort order.
5505
5506 * dispextern.h (struct display_iterator): New member faces_p.
5507 * xdisp.c (init_iterator): Initialize it->faces_p.
5508 (compute_face_at_iterator_string_position): Use it.
5509 (compute_face_at_iterator_position): Use it.
5510 (init_iterator): Use it.
5511 (display_mode_line): Ditto.
5512
5513 * xdisp.c (get_next_display_element): Put code choosing a face
5514 when the charset changes in #ifdef HAVE_FACES.
5515
5516 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
5517 lookup_face_for_charset.
5518
5519 * xfaces.c (free_font_names): Renamed from free_split_font_names.
5520 (free_all_realized_faces): Renamed from remove_all_realized_faces.
5521
55221998-04-25 Gerd Moellmann <gerd@gnu.org>
5523
5524 * xfaces.c (best_matching_font): Return the name of the best
5525 matching font in an array of font_name structures.
5526 (choose_face_font): Use it.
5527 (choose_face_fontset_font): Use it.
5528 (find_best_weight_font): If final font found has same weight as
5529 the font we started with, return the original font because it is a
5530 better match for the resolution of the display.
5531 (find_best_slant_font): Likewise.
5532 (merge_face_vector_with_property): Check more invalid attribute
5533 values.
5534 (lface_suitable_for_charset_p): Replaced by a macro with the same
5535 name in upper-case.
5536
55371998-04-24 Gerd Moellmann <gerd@gnu.org>
5538
5539 * dispextern.h (struct face): Member
5540 fontset_chosen_for_realization_p removed.
5541
5542 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
5543 end of the collision list, so that we find more specific faces
5544 first.
5545 (lookup_face_for_charset): Look up a new face if face->fontset >=
5546 0, and charset != CHARSET_COMPOSITION.
5547
5548 * xfaces.c (split_font_name): Return zero if point size of font
5549 couldn't be computed.
5550 (realize_default_face): Use ASCII font of a fontset to determine
5551 font-related attributes of the default face.
5552 (face_fontset): Return fontset id for face family.
5553 (font_list): Additional parameter font_pattern. If non-nil,
5554 return fonts matching that pattern.
5555
55561998-04-23 Gerd Moellmann <gerd@gnu.org>
5557
5558 * xfaces.c (choose_face_fontset): If new fontset cannot be
5559 constructed, or fontset name cannot be split, return the id of the
5560 standard fontset.
5561
5562 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
5563 When Emacs starts, it may be called for the initial frame which
5564 isn't an X frame.
5565
5566 * dispextern.h (struct face): New members foreground_defaulted_p,
5567 background_defaulted_p.
5568 (struct face): Members `mask' and `cache' removed.
5569
5570 * xfaces.c (load_color): Set them.
5571 (free_face_colors): Check them.
5572 (xlfd_point_size): Return -1 if resolution or point size of
5573 font unknown.
5574
5575 * xfaces.c (free_font): Removed.
5576 (load_face_font_or_fontset): Renamed from load_font.
5577 (load_face_font_or_fontset): Use message2 instead of signalling.
5578 (load_color): Likewise.
5579 (load_pixmap): Likewise.
5580
5581 * xterm.h (struct x_display_info): Add screen_dpi.
5582 * xterm.c (x_term_init): Initialize it.
5583 * xfaces.c (xlfd_point_size): Use it.
5584 (split_font_name): Compute numeric XLFD_RESY.
5585 (cmp_font_names): Make fonts with an y-resolution more
5586 similar to that of the frame appear first in the result.
5587
5588 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
5589 is set for the face to cache, add it to the end of the collision
5590 list.
5591 (try_font_list): If fonts for given family and registry cannot
5592 be found, first try to keep the registry, and choose a different
5593 family.
5594 (choose_face_font): Allow nfonts == 0.
5595 (try_font_list): Give up if no font matches given registry.
5596
55971998-04-22 Gerd Moellmann <gerd@gnu.org>
5598
5599 * xterm.c (x_get_char_font_and_encoding): Get font_info from
5600 font info id of the face.
5601
5602 * xfaces.c (load_font): Set font_info_id.
5603 (realize_face): Ditto.
5604
5605 * dispextern.h (struct face): Change member font_info to
5606 font_info_id.
5607
5608 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
5609 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
5610
5611 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
5612 isn't ASCII, get the ASCII face before adding a space.
5613 (append_space): Likewise.
5614 (insert_left_trunc_glyphs): Initialize truncate_it's charset
5615 to -1 so that it will compute the right face for the truncation
5616 glyphs.
5617
5618 * xfaces.c (realize_face): Set
5619 face->fontset_chosen_for_realization_p.
5620 (lookup_face_for_charset): If fontset wasn't specified originally
5621 and new charset != CHARSET_COMPOSITION, get a new face for that
5622 charset.
5623
5624 * dispextern.h (struct face): New member
5625 fontset_chosen_for_realization_p_specified_p. Set to 1 when
5626 realize_face has chosen a fontset to display composite characters
5627 for a Lisp face not specifying a fontset.
5628
5629 * xdisp.c (extend_face_to_end_of_line): Move tests for default
5630 face and line already filled here. Don't do anything if current
5631 face hasn't a relief or has a background equal to the frame
5632 background.
5633
5634 * xfaces.c (split_font_name): Additional parameter numeric_p.
5635 Don't compute numeric values if it is non-zero.
5636 (choose_face_fontset): Call split_font_name with numeric_p == 0.
5637 (choose_face_fontset): Print a message if fontset contains a
5638 font whose name cannot be split into fields.
5639
56401998-04-21 Gerd Moellmann <gerd@gnu.org>
5641
5642 * xfaces.c (try_font_list): Try to load a list of fonts,
5643 possibly using less restrictive patterns.
5644 (choose_face_font): Use it.
5645
5646 * xterm.c (x_get_char_font_and_encoding): For charset !=
5647 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
5648
5649 * dispextern.h (struct face): New member font_info.
5650
5651 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
5652 specifying a fontset as well as those not having a fontset.
5653 (free_font): Make it empty.
5654 (realize_face): Use changed load_font.
5655
5656 * xterm.c (x_get_char_font_and_encoding): If face doesn't
5657 fit for charset, get the right one.
5658
5659 * xfaces.c (load_font): Take frame and name parameter, return
5660 font.
5661 (free_font): Likewise.
5662 (split_font_name): Compute numeric values for height, swidth etc.
5663 (cmp_font_names): Use them.
5664 (find_best_width_font): Ditto.
5665 (find_best_height_font): Ditto.
5666 (find_best_weight_font): Ditto.
5667 (find_best_slant_font): Ditto.
5668 (lface_hash): Add weight, slant, swidth and relief to hash value.
5669 (lface_equal_p): Make it faster.
5670 (lface_from_symbol): Use assq_no_quit.
5671 (Fnote_default_face_changed): Removed.
5672 (cmp_font_names): Use strcmp instead of xstricmp.
5673 (face_charset_registries): Removed.
5674
56751998-04-20 Gerd Moellmann <gerd@gnu.org>
5676
5677 * frame.h (CHECK_FRAME): Give this macro a statement form.
5678 (CHECK_LIVE_FRAME): Ditto.
5679
5680 * xfaces.c (find_best_width_font): Find the best matching font
5681 for a given width.
5682 (find_best_height_font): Likewise for height.
5683 (find_best_weight_font): Likewise for weight.
5684 (find_best_slant_font): Likewise for slant.
5685 (choose_face_font): Use them.
5686 (get_lface_attributes): Always return frame-local face attrs.
5687 (Finternal_merge_in_global_face): Merge local face with
5688 global face attributes.
5689
5690 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
5691 Lisp face attributes.
5692
56931998-04-19 Gerd Moellmann <gerd@gnu.org>
5694
5695 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
5696 and :italic for compatibility.
5697 (Finternal_set_lisp_face_attribute_from_resource): Handle
5698 :bold and :italic. Handle boolean resource values for
5699 :underline and :italic.
5700
5701 * xfns.c (display_x_get_resource): Make it externally visible.
5702
5703 * xfaces.c (lface_from_symbol): Take a frame as parameter.
5704 If that frame is non-null, return the frame-local face.
5705 (Finternal_make_lisp_face): Additional frame argument.
5706 (lface_attributes): Get face attributes from global and frame-local
5707 definitions.
5708 (Finternal_lisp_face_equal_p): Additional frame argument.
5709 (merge_lisp_face_vector_with_property): Ditto.
5710 (Frealize_basic_faces): Removed.
5711 (Finternal_get_lisp_face_attribute): Additional frame argument.
5712 (Finternal_lisp_face_p): Ditto.
5713 (load_color) [MSDOS]: Removed because it isn't clear how
5714 to do this for MS-DOS.
5715
5716 * xfaces.c (lface_from_symbol): Get global face definition
5717 from face-global-alist.
5718
5719 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
5720 as values for :underline and :inverse-video.
5721 (Finternal_set_lisp_face_attribute): Allow nil values.
5722
57231998-04-17 Gerd Moellmann <gerd@gnu.org>
5724
5725 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
5726
5727 * xfaces.c (syms_of_xfaces): Add Vall_faces.
5728 (Finternal_make_lisp_face): Add new face to Vall_faces.
5729
5730 * xdisp.c (echo_area_display): Remove code recomputing faces.
5731 (redisplay_internal): Ditto.
5732 (init_iterator): Do it here.
5733
5734 * xfaces.c (choose_face_font): Check that swidth doesn't change
5735 for subusequent attributes.
5736 (xlfd_point_size): Return int.
5737
5738 * xdisp.c (redisplay_internal, echo_area-display): If realized
5739 faces have been cleared, call recompute_basic_faces.
5740
5741 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
5742 face_attributes_changed_p.
5743 (remove_all_realized_faces): Remove all realized faces on
5744 all frames.
5745 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
5746
5747 * xdisp.c (redisplay_internal): If face attributes have been
5748 changed since the last redisplay, recompute basic faces.
5749 (echo_area_display): Ditto.
5750
5751 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
5752
5753 * xfaces.c (min_char_bounds): If face cache not yet present,
5754 don't try to get font dimensions from faces.
5755
5756 * xterm.c (x_frame_mode_line_height): If face cache not present
5757 set, return default height.
5758
5759 * alloc.c (mark_face_cache): Check for null faces. Correct
5760 index bug.
5761
5762 * dispextern.h (struct face): Renamed from struct rface. Member
5763 underline renamed underline_p. Make it a bit-field.
5764
5765 * xfaces.c (init_frame_faces): Allocate face cache.
5766 (free_frame_faces): Free face cache.
5767 (recompute_basic_faces): Realize basic faces only if face cache is
5768 allocated, i.e. after init_frame_faces has been called.
5769
5770 * frame.c (make_frame): Initialze face cache with null.
5771
5772 * xfaces.c (same_size_fonts): Removed.
5773
5774 * xterm.c (x_set_glyph_string_gc): Add post-condition
5775 s->gc != 0.
5776 (x_set_mouse_face_gc): Ditto.
5777 (x_set_mode_line_face_gc): Ditto.
5778
5779 * xfaces.c (realize_default_face): Return int. Value is
5780 zero if frame params don't contain enough information to
5781 realize the default face.
5782 (realize_basic_faces): Ditto.
5783 (init_frame_faces): Realize basic faces.
5784
5785 * xfns.c (x_set_font): First store real font name in frame
5786 parameters, then call recompute_basic_faces.
5787
5788 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
5789
57901998-04-16 Gerd Moellmann <gerd@gnu.org>
5791
5792 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
5793
5794 * xfns.c (Fx_face_fixed_p): Removed.
5795 (Fx_list_fonts): Moved to xfaces.c.
5796
5797 * xfaces.c (compute_face_at_buffer_pos): Renamed to
5798 face_at_buffer_position. Parameter charset removed; always
5799 compute face for CHARSET_ASCII.
5800 (face_at_string_position): Renamed from
5801 compute_face_at_string_pos. Parameter charset removed; always
5802 compute for CHARSET_ASCII.
5803 (lookup_face_for_charset): Take frame parameter instead of
5804 face_cache.
5805 (lookup_face): Ditto.
5806 (compute_char_face): Renamed from compute_glyph_face.
5807
5808 * xdisp.c (init_iterator): Initialize charset member.
5809 (reseat_iterator_to_string): Ditto.
5810 (get_charset_at_buffer_position): Determine charset at
5811 buffer position in current_buffer.
5812 (reseat_iterator): Call above function.
5813 (compute_face_at_iterator_position): Call
5814 compute_face_at_buffer_pos.
5815 (compute_face_at_iterator_string_position): Call
5816 compute_face_at_string_pos.
5817 (get_face_from_id): Removed.
5818 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
5819 Call get_charset_at_buffer_position.
5820 (reseat_iterator): Determine face if charset at pos differs
5821 from iterator's charset.
5822 (reseat_iterator_to_glyph_pos): Removed.
5823
5824 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
5825 Determine charset from buffer position.
5826 (compute_string_char_face): Renamed to compute_face_at_string_pos.
5827 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
5828
5829 * dispextern.h (struct display_iterator): Add member charset.
5830
58311998-04-15 Gerd Moellmann <gerd@gnu.org>
5832
5833 * xfaces.c (compute_char_face): Removed.
5834
5835 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
5836 with new parameter list.
5837
5838 * xfaces.c (region_face): Removed.
5839 (allocate_face): Removed.
5840 (copy_face): Ditto.
5841 (face_eql): Removed.
5842 (intern_face): Removed.
5843 (clear_face_cache): Removed.
5844 (load_font): Ditto.
5845 (unload_font): Ditto.
5846 (load_color): Ditto.
5847 (unload_color): Ditto.
5848 (new_computed_face): Ditto.
5849 (intern_computed_face): Ditto.
5850 (ensure_face_ready): Ditto.
5851 (merge_faces): Ditto.
5852 (compute_base_face): Ditto.
5853 (merge_face_list): Ditto.
5854 (Fmake_face_internal): Removed.
5855 (Fset_face_attribute_internal): Ditto.
5856 (face_name_id_number): Removed.
5857 (Fframe_face_alist): Ditto.
5858 (Fset_frame_face_alist): Ditto.
5859 (Finternal_next_face_id): Ditto.
5860
5861 * xterm.h (struct x_output): Remove computed_faces, and
5862 param_faces. Remove macros accessing them.
5863
5864 * xfaces.c: Entirely new face implementation added.
5865
58661998-04-11 Gerd Moellmann <gerd@gnu.org>
5867
5868 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
5869 `charpos'.
5870
58711998-04-10 Gerd Moellmann <gerd@gnu.org>
5872
5873 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
5874 scroll bar window to reduce flickering. Clear entire height.
5875
5876 * xdisp.c (move_iterator_vertically_backward): Set iterator's
5877 current_x and hpos to zero after moving to previous line
5878 start.
5879
58801998-04-03 Gerd Moellmann <gerd@gnu.org>
5881
5882 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
5883
5884 * xfaces.c (xlfd_point_size): Compute relative point size of
5885 fonts from font and frame resolution.
5886 (sort_fonts): New function to sort fonts, temporarily setting
5887 font_frame to the frame in effect.
5888 (xlfd_point_size): Take additional frame parameter to be able
5889 to get at the display's resolution.
5890
5891 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
5892 BLACK_PIX_DEFAULT.
5893 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
5894 screen of display.
5895
58961998-03-31 Gerd Moellmann <gerd@gnu.org>
5897
5898 * xfaces.c (choose_face_fontset): Instantiate fontsets.
5899
5900 * fontset.h: Add external declarations for Vfontset_alias_alist
5901 and Vglobal_fontset_alist.
5902
5903 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
5904 (realize_default_face): If frame parameters contain an artificial
5905 font name naming a fontset, set the family of the default face to
5906 the fontset name given by the registry.
5907
5908 * Makefile.in (alloc.o): Add dependency to dispextern.h.
5909
59101998-03-22 Gerd Moellmann <gerd@gnu.org>
5911
5912 * alloc.c (mark_object): Add function prototype. Add cast to
5913 Lisp_Object pointer in call to mark_object for symbol names
5914 because this otherwise gives a warning from gcc 2.8.1.
5915 (mark_face_cache): Mark Lisp objects in realized faces.
5916
59171998-03-19 Gerd Moellmann <gerd@gnu.org>
5918
5919 * frame.h (struct frame): Add member face_cache.
5920
5921 * alloc.c (mark_object): Mark face cache.
5922 (mark_face_cache): Mark Lisp faces in face cache of frame.
5923
5924 * frame.c (make_frame): Initialize face_cache.
5925 (Fdelete_frame): Free it.
5926
59271998-03-18 Gerd Moellmann <gerd@gnu.org>
5928
5929 * xfaces.c: Very first skeleton of functions for face realization,
5930 face merging, face cache etc.
5931
5932 * dispextern.h (struct rface): Realized faces. Will replace
5933 struct face when tested.
5934 (struct face_cache): Realized face caches.
5935
5936 * xdisp.c (init_iterator): Initialize area member of display
5937 iterator.
5938
59391998-03-17 Gerd Moellmann <gerd@gnu.org>
5940
5941 * xterm.c (x_append_glyph): Use it->area to store glyphs.
5942
5943 * dispextern.h (struct display_iterator): New member area.
5944
5945 * xterm.c (note_overwritten_text_cursor): Note when the text
5946 cursor of a window is overwritten.
5947
5948 * xdisp.c (set_cursor_from_row): If PT is not found in the
5949 row, display the cursor at the start of the row.
5950
5951 * dispnew.c (direct_output_forward_char): Call
5952 set_cursor_from_row.
5953
5954 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
5955 position is not in an overlay string, set iterator's position and
5956 method explicitly so.
5957 (set_cursor_from_row): Correct cursor position calculation.
5958 Make it externally visible.
5959 (redisplay_window): Call set_cursor_from_row so that there is only
5960 one place where the cursor position is calculated from a current
5961 row.
5962
5963 * dispextern.h (struct display_iterator): New member
5964 overlay_strings_at_end_processed_p.
5965
5966 * xdisp.c (check_iterator): Perform sanity checks on
5967 display_iterators.
5968 (next_element_from_buffer): Check for overlay strings at ZV.
5969
59701998-03-16 Gerd Moellmann <gerd@gnu.org>
5971
5972 * buffer.c (init_buffer_once): Add left_margin_width and
5973 right_margin_width to buffer_local_flags.
5974
5975 * dispnew.c (margin_glyphs_to_reserve): Function computing
5976 number of glyphs to reserve for a marginal area.
5977 (adjust_glyph_matrix): Call it.
5978 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
5979 is not alive.
5980
5981 * window.c (Fset_window_margins): Allow floats.
5982
5983 * buffer.c (syms_of_buffer): Add buffer-local variables
5984 left-margin-width and right-margin-width. Add defaults
5985 default-left-margin-width and default-right-margin-width.
5986
5987 * buffer.h (struct buffer): New members left_margin_width
5988 and right_margin_width.
5989
5990 * window.c (Fset_window_margins): Make window the last and
5991 optional argument.
5992
5993 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
5994 flag no_marginal_areas_p differently.
5995 (x_clear_end_of_line): Ditto.
5996 (x_draw_glyph_string_relief): Compute width of relief differently
5997 for rows with flag no_marginal_areas_p.
5998
5999 * dispnew.c (update_window_line): Update marginal areas only
6000 for rows that don't have no_marginal_areas_p set.
6001
6002 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
6003 (display_menu_bar): Ditto.
6004
6005 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
6006
6007 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
6008 marginal areas in window-based redisplay.
6009
6010 * dispextern.h (struct glyph_matrix): New members
6011 left_margin_glyphs and right_margin_glyphs.
6012
60131998-03-15 Gerd Moellmann <gerd@gnu.org>
6014
6015 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
6016
6017 * charset.c (non_ascii_char_to_string): Use char type parameters
6018 because the function is used that way from outside. Use unsigned
6019 char internally.
6020
6021 * window.c (change_window_height): Return void.
6022 (make_dummy_parent): Return void.
6023 (init_window_once): Return void.
6024 (syms_of_window): Ditto.
6025 (keys_of_window): Ditto.
6026 (delete_window): Correct return with and without value.
6027
6028 * buffer.c (record_buffer): Return void.
6029
6030 * marker.c (unchain_marker): Return void.
6031
6032 * window.c (unshow_buffer): Return void.
6033 (replace_window): Ditto.
6034 (delete_window): Ditto.
6035
6036 * term.c (delete_glyphs_hook): Void return type.
6037 (ring_bell_hook): Ditto.
6038 (set_terminal_window_hook): Ditto.
6039
6040 * sysdep.c (init_sigio): Return void.
6041
6042 * xterm.c (x_set_window_size): Return void.
6043 (x_calc_absolute_position): Ditto.
6044 (x_set_offset): Ditto.
6045 (x_focus_on_frame): Ditto.
6046 (x_unfocus_frame): Ditto.
6047 (x_make_frame_visible): Ditto.
6048 (x_make_frame_invisible): Ditto.
6049 (x_iconify_frame): Ditto.
6050 (x_destroy_window): Ditto.
6051 (x_wm_set_window_state): Ditto.
6052 (x_wm_set_icon_pixmap): Ditto.
6053 (x_wm_set_icon_position): Ditto.
6054 (x_initialize): Ditto.
6055 (x_error_quitter): Ditto.
6056 (x_destroy_window): Use xfree instead of free.
6057
6058 * keyboard.c (clear_waiting_for_input): Return void.
6059
6060 * xterm.c (x_wm_set_size_hint): Return void.
6061 (x_raise_frame): Ditto.
6062 (refreshicon): Ditto.
6063 (x_error_catcher): Ditto.
6064 (x_clear_errors): Ditto.
6065
6066 * keyboard.c (record_asynch_buffer_change): Return void.
6067
6068 * xterm.c (XTroï
6069 (x_lower_frame): Ditto.
6070 (x_scroll_bar_clear): Ditto.
6071 (XTflash): Add default case in switch for -Wall.
6072 (construct_mouse_click): Return Qnil.
6073 (cancel_mouse_face): Return void.
6074 (x_queue_event): Use xmalloc instead of malloc.
6075 (x_unqueue_events): Use xfree instead of free.
6076
6077 * ccl.c (ccl_driver): Return int.
6078
6079 * keyboard.c (stop_polling): Return void.
6080 (start_polling): Ditto.
6081
6082 * term.c (keys): Add braces in initializer list for -Wall.
6083
6084 * sysdep.c (tabs_safe_p): Return int.
6085 (init_baud_rate): Return void.
6086
6087 * xterm.c (x_draw_bitmap): Add default case.
6088 (x_setup_relief_colors): Use DefaultScreen instead of
6089 DefaultScreenOfDisplay.
6090 (x_delete_glyphs): Return void.
6091 (construct_menu_click): Put in #if 0 because it isn't called.
6092
6093 * xdisp.c (load_overlay_strings): Remove extraneous argument
6094 in call to qsort.
6095 (get_overlay_arrow_glyph_row): Add missing return value.
6096
6097 * window.c (set_window_height): Return void.
6098 (set_window_width): Ditto.
6099
6100 * sysdep.c (request_sigio): Return void.
6101 (unrequest_sigio): Ditto.
6102 (get_frame_size): Ditto.
6103
6104 * scroll.c (scroll_cost): Return int.
6105 (do_line_insertion_deletion_costs): Return void.
6106
6107 * frame.c (Fdelete_frame): Use xfree instead of free.
6108
6109 * fileio.c (report_file_error): Return void.
6110
6111 * dispnew.c: Make compilable with -Wall.
6112 * term.c: Ditto.
6113
6114 * charset.h (CHAR_LEN): Moved here from dispextern.h.
6115
61161998-03-14 Gerd Moellmann <gerd@gnu.org>
6117
6118 * xterm.c (x_scroll_bar_move): Clear under scroll bar if height is
6119 increased.
6120 (x_setup_relief_color): Free color only for appropriate visual
6121 classes.
6122
6123 * xterm.c (expose_window): Fix calculation of intersection of mode
6124 line rectangle with exposed rectangle.
6125
6126 * xdisp.c (redisplay_window): Don't do cursor movement based
6127 on current matrix if w->last_point is not valid.
6128
61291998-03-09 Gerd Moellmann <gerd@gnu.org>
6130
6131 * xterm.c (expose_line): Redraw mode line and menu lines
6132 differently because they reach into the scroll bar area.
6133
6134 * xdisp.c (redisplay_window): If redisplaying with same window
6135 start, don't accept cursor on partially visible line.
6136
61371998-03-08 Gerd Moellmann <gerd@gnu.org>
6138
6139 * xterm.c (x_set_glyph_string_clipping): Set clip rectangle
6140 for wider mode lines.
6141 (x_draw_glyph_string_relief): Use larger rectangle for mode lines.
6142
6143 * xdisp.c (init_iterator): Increase last_visible_x by vertical
6144 scroll bar width for mode lines.
6145
6146 * dispnew.c (allocate_matrices_for_window_redisplay): Include
6147 vertical scroll bar width in width calculation so that we can
6148 display mode lines wider.
6149
6150 * xdisp.c (redisplay_window): Restore buffers before returning
6151 when fonts have changed.
6152
6153 * dispnew.c (update_window): Mark invisible rows in the current
6154 matrix invalid.
6155
6156 * xdisp.c (try_window_id): Force update of first row displayed
6157 at window end.
6158 (dump_glyph_matrix): Extracted from Fdump_glyph_matrix.
6159
61601998-03-05 Gerd Moellmann <gerd@gnu.org>
6161
6162 * dispextern.h (struct glyph_row): Member max_ascent renamed
6163 ascent. Member max_descent replaced by height.
6164 (struct display_iterator): Member max_descent replaced by height.
6165 (MATRIX_ROW_PIXEL_HEIGHT): Removed.
6166
6167 * xterm.c (x_alloc_lighter_color): Don't free colors if visual
6168 class makes it unnecessary or dangerous.
6169
6170 * xdisp.c (redisplay_window): Case only point has changed, and
6171 point has moved forward. Move forward over overlay strings.
6172 (display_line): Don't set cursor if first glyph from PT is part of
6173 a continuation line.
6174
61751998-02-21 Gerd Moellmann <gerd@gnu.org>
6176
6177 * xdisp.c (start_display): When computing continuation lines
6178 width, add current_x to the continuation lines width because
6179 move_iterator_to will stop in front of the buffer position moved
6180 to.
6181
61821998-02-20 Gerd Moellmann <gerd@gnu.org>
6183
6184 * xdisp.c (redisplay_window): Don't try try_window_id if
6185 windows_or_buffers_changed.
6186
6187 * xterm.c (x_alloc_lighter_color): Try both factor and delta to
6188 determine a color.
6189 (x_setup_relief_color): Allocate/ change one relief.
6190 (x_setup_relief_colors): Call above function.
6191
6192 * xterm.h (struct relief): New structure type holding relief info:
6193 GCs, colors, and whether colors are allocated.
6194
6195 * xterm.c (x_alloc_lighter_color): If multiplying by factor
6196 produces the same color, try adding a delta to RGB values.
6197 (x_setup_relief_colors): Free color cells.
6198
6199 * xterm.h (struct x_output): New members white_relief_pixel,
6200 black_relief_pixel holding the foreground colors allocated for
6201 relief GCs. New members white_allocated_p, black_allocated_p.
6202
6203 * xterm.c (x_scroll_run): Don't set updated_window to null.
6204 This resets updated_window when called from scrolling_window.
6205
6206 * dispextern.h (scroll_run_hook): Renamed from line_dance_hook.
6207
6208 * xterm.c (x_scroll_run): Additional window parameter. Set
6209 and reset updated_window.
6210
6211 * dispnew.c (line_dance_hook): Additional window parameter.
6212
6213 * xdisp.c (try_window_reusing_current_matrix): Don't call
6214 update_window_begin/end here. The end function would display the
6215 cursor on a wrong position and the additional functionality of
6216 update_window_begin is not needed anyway. Just set
6217 updated_window.
6218 (try_window_id): Ditto.
6219
6220 * dispnew.c (Fblink_cursor): Remove call to detect_input_pending.
6221 Don't redraw cursor during redisplay.
6222
6223 * xterm.c (x_scroll_run): Renamed from do_line_dance.
6224
6225 * xdisp.c (redisplay_window): For window-based redisplay, alway
6226 try try_window_id.
6227
6228 * xterm.c (struct glyph_string): New member two_byte_p that is
6229 non-zero if 16-bit drawing functions must be used.
6230 (x_fill_composite_glyph_string): Set it.
6231 (x_fill_glyph_string): Set it.
6232 (x_draw_glyph_string_foreground): Use it.
6233 (x_draw_vertical_border): Make line 1 pixel less tall.
6234 (x_draw_row_bitmaps): Decrease width of area cleared on the left
6235 side by 1 pixel if window is not right-most hasn't vertical scroll
6236 bars.
6237 (x_draw_phys_cursor_glyph): Do nothing if phys_cursor.hpos is
6238 out of bounds.
6239 (x_draw_glyph_string_foreground): Use XDrawImageStringX if
6240 hl == DRAW_CURSOR.
6241
6242 * xdisp.c (start_display): Check that window start is at line
6243 start if GLYPH_DEBUG != 0.
6244
6245 * window.c (window_scroll_pixel_based): Move assertion to
6246 start_display.
6247
62481998-02-19 Gerd Moellmann <gerd@gnu.org>
6249
6250 * xterm.c (x_redraw_cursor): Don't redraw the cursor if the
6251 frame hasn't the focus.
6252
6253 * window.c (make_window): Initialize dy.
6254 (replace_window): Ditto.
6255
6256 * window.h (window): New member dy specifying the amount by which
6257 a window is scrolled "smoothly".
6258
6259 * xterm.c (x_set_glyph_string_clipping): Don't use glyph string's
6260 y-position because it can be negative.
6261 (x_draw_row_bitmaps): Don't clear with negative y-position like
6262 above.
6263 (x_clear_end_of_line): Same theme as above.
6264
6265 * xterm.c (x_alloc_nearest_color): Allocate a color or, if no
6266 exact match exists, the nearest existing color. Patterned after
6267 defined_color.
6268 (x_alloc_lighter_color): Allocate a color that is lighter or
6269 darker than a given color by a specified factor.
6270 (x_setup_relief_colors): Set up relief line colors based on
6271 the background color of a glyph string face.
6272 (x_draw_glyph_string_relief): Call x_setup_relief_colors.
6273
6274 * xfns.c (x_make_gc): Don't allocate relief GCs.
6275 * widget.c (create_frame_gcs): Don't allocate relief GCs.
6276 (setup_frame_gcs): Don't change relief GCs.
6277
6278 * xterm.h (struct x_output): New member relief_background giving
6279 the background pixel color for which relief GCs can be used.
6280 Set by x_setup_relief_colors.
6281
6282 * xterm.c (x_draw_glyph_string_relief): Draw relief differently
6283 for mode and menu lines.
6284
6285 * xdisp.c (set_next_iterator_stop_pos): No longer static.
6286
6287 * dispnew.c (direct_output_for_insert): Call
6288 set_next_iterator_stop_pos after having changed it2.endpos.
6289
62901998-02-17 Gerd Moellmann <gerd@gnu.org>
6291
6292 * dispnew.c (update_window): Work on selected_window, only.
6293
6294 * xterm.c (x_erase_phys_cursor): Return quickly if physical cursor
6295 hpos is >= number of glyphs in the cursor row.
6296
6297 * xdisp.c (try_window_id): Bug fix; update_window_end was not
6298 called.
6299
63001998-02-16 Gerd Moellmann <gerd@gnu.org>
6301
6302 * xdisp.c (init_iterator): Increase last_visible_x for mode lines
6303 and menu lines.
6304
6305 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate
6306 enough glyphs to display a mode line or menu line which draws over
6307 flags areas.
6308
6309 * xterm.c (XTset_vertical_scroll_bar): Use
6310 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of
6311 VERTICAL_SCROLL_BAR_PIXEL_HEIGHT.
6312 (x_draw_glyphs): Draw over flags areas when drawing a mode line
6313 or menu.
6314 (x_set_glyph_string_clipping): Set clipping differently if drawing
6315 a mode line or menu line.
6316
6317 * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Removed.
6318
6319 * xterm.c (expose_line): Don't draw bitmaps for mode lines and
6320 menu lines.
6321 (x_scroll_bar_create): Don't clear flags areas.
6322 (x_draw_row_bitmaps): Clear visible row height, only.
6323
6324 * dispnew.c (Fblink_cursor): Moved here from xdisp.c.
6325
63261998-02-15 Gerd Moellmann <gerd@gnu.org>
6327
6328 * dispnew.c (direct_output_for_insert): When checking for tabs in
6329 the line, set it2.endpos to ZV.
6330
6331 * window.h (struct window): New member cursor_off_p.
6332 * xterm.c (x_redraw_cursor): Implementation of redraw_cursor_hook
6333 for X.
6334 * dispnew.c (redraw_cursor_hook): If non-null, function that can
6335 be called to display or erase the cursor.
6336 * xdisp.c (Fblink_cursor): Blink the cursor of a specified window
6337 or selected_window.
6338
6339 * xterm.h (text_cursor_kinds): Enumerators changed to uppercase.
6340
6341 * dispnew.c (update_window_line): Special handling of inverse
6342 lines in #if 0 removed.
6343
6344 * xterm.c (x_write_glyphs): Renamed from XTwrite_glyphs.
6345 (x_insert_glyphs): Renamed from XTinsert_glyphs.
6346 (x_clear_frame): Renamed from XTclear_frame.
6347 (x_clear_end_of_line): Renamed from XTclear_end_of_line.
6348 (x_ins_del_lines): Renamed from XTins_del_lines.
6349 (x_change_line_height): Renamed from XTchange_line_height.
6350 (x_delete_glyphs): Renamed from XTdelete_glyphs.
6351 (x_clear_cursor): Renamed from clear_cursor.
6352 (x_update_begin): Renamed from XTupdate_begin.
6353 (x_update_end): Renamed from XTupdate_end.
6354 (x_update_window_begin): Renamed from XTupdate_window_begin.
6355 (x_update_window_end): Renamed from XTupdate_window_end.
6356 (x_frame_mode_line_height): Renamed from XTframe_mode_line_height.
6357 (x_produce_glyphs): Renamed from XTproduce_glyphs.
6358 (x_produce_special_glyphs): Renamed from XTproduce_special_glyphs.
6359 (x_produce_special_glyphs): Implementation in #if 0 removed.
6360
6361 * xdisp.c (Fdump_redisplay_state): Display row's fill_line_p
6362 flag in the dump.
6363
6364 * dispnew.c (update_text_area): Handling of glyphs with pixel
6365 width zero removed. Decrement desired stop pos if desired row
6366 fills its line.
6367
6368 * xterm.c (x_fill_glyph_string): Handling of glyphs with pixel
6369 width zero removed.
6370 (BUILD_GLYPH_STRINGS): Set glyph string flag
6371 extends_to_end_of_line_p based on row's flag fill_line_p and face
6372 background and stipple. Make sure it works for composite characters.
6373
6374 * xdisp.c (extend_face_to_end_of_line): Set the glyph row flag
6375 fill_line_p. For window-based redisplay, add a space only if
6376 the row is empty so that we know the face to draw.
6377
6378 * dispextern.h (struct glyph_row): New flag fill_line_p. Non-zero
6379 means draw the face of the last glyph in the text area to the
6380 right end of the text area.
6381
6382 * xdisp.c (init_iterator): Show region in window mini-buffer
6383 window refers to.
6384
6385 * dispextern.h (struct display_iterator): Redundant member
6386 region_showing_p removed. Test for region_beg > 0 instead.
6387
6388 * dispnew.c (update_text_area): Clear to end of line if cursor is
6389 beyond the end of the desired line. Necessary because we don't
6390 have a phys_cursor_glyph with which to erase the cursor. We don't
6391 have one because this method of drawing a cursor doesn't work with
6392 lbearing/rbearing.
6393
6394 * xterm.c (XTinsert_glyphs): Block input.
6395
63961998-02-14 Gerd Moellmann <gerd@gnu.org>
6397
6398 * xterm.c (x_set_cursor_gc): Don't use cursor_gc for composite
6399 glyph strings.
6400 (x_draw_glyph_string_background): Fill background with background
6401 pixel for the first glyph of a composite character.
6402
6403 * xdisp.c (try_window): Change return type to int. Value is zero
6404 if fonts were loaded during redisplay.
6405 (redisplay_window): Return if fonts have been loaded during
6406 redisplay.
6407 (append_space): New parameter default_face_p.
6408
64091998-02-13 Gerd Moellmann <gerd@gnu.org>
6410
6411 * dispnew.c (adjust_glyph_matrix): In case of optimizing C-x 2,
6412 don't let a partially visible line in a current matrix stay
6413 enabled.
6414
64151998-02-09 Gerd Moellmann <gerd@gnu.org>
6416
6417 * minibuf.c (read_minibuf): Put access to minibuffer_prompt_length
6418 in #if PROMPT_IN_BUFFER.
6419
6420 * xdisp.c (display_line): If row ends in ZV, make the space
6421 that is added to place the cursor on it appear in default face.
6422
6423 * xterm.c (expose_area): New function redrawing a single
6424 glyph row area.
6425 (expose_line): Use it to redraw all areas of a row.
6426
6427 * dispextern.h (move_operation_enum): New enum
6428 move_operation_enum.
6429
6430 * window.c (window_scroll_pixel_based): Remove now unnecessary
6431 code that made sure that it->current_y doesn't become negative.
6432
6433 * xdisp.c (move_iterator_in_display_line_to): New parameter
6434 op. Special meaning of to_pos <= 0 and to_x < 0 removed.
6435 (move_iterator_to): Ditto.
6436
6437 * dispextern.h (struct glyph_matrix): New member window_width.
6438
6439 * dispnew.c (adjust_glyph_matrix): Set window_width. Optimize
6440 case of changing window height.
6441
6442 * xterm.c (x_draw_row_bitmaps): Don't clear vertical window
6443 border to the left.
6444
6445 * dispextern.h (struct glyph_row): Remove right_to_left_p. RMS
6446 says this aspect of Emacs is currently redesigned.
6447
6448 * xterm.c (x_clip_to_row): Subtract 1 from clip width if we
6449 have to draw a vertical border.
6450
6451 * window.c (window_scroll_pixel_based): When scrolling down by
6452 screen-fulls, make sure it.current_y doesn't get negative because
6453 this would confuse move_iterator_vertically.
6454
6455 * xdisp.c (move_iterator_vertically_backward): Bug fix for
6456 the case continuation lines are involved.
6457 (try_window_id): Don't set the cursor into scroll margins.
6458
64591998-02-08 Gerd Moellmann <gerd@gnu.org>
6460
6461 * xterm.c (x_append_glyph): Don't compute left_overhang and
6462 right_overhang.
6463 (XTproduce_glyphs): left_overhang and right_overhang removed.
6464 Set it->glyph_row->contains_overlapping_glyphs_p.
6465
6466 * xdisp.c (Fdump_redisplay_state): Output of glyph->left_overhang
6467 and right_overhang removed.
6468
6469 * dispextern.h (struct glyph_row): New member
6470 contains_overlapping_glyphs_p used to optimize glyph drawing.
6471 (struct display_iterator): left_overhang and right_overhang
6472 removed.
6473 (struct glyph): Ditto.
6474
6475 * xterm.c (x_draw_relief): Removed.
6476 (x_draw_bitmap): Renamed from draw_bitmap.
6477 (x_draw_glyphs): Completely new implementation of draw_glyphs
6478 capable of handling arbitrary lbearing and rbearing values.
6479 Several sub-functions not mentioned here.
6480
64811998-01-30 Gerd Moellmann <gerd@gnu.org>
6482
6483 * xterm.c (x_erase_phys_cursor): Clear area under the cursor only
6484 if displaying hollow box cursor. draw_glyphs should handle
6485 other cases.
6486 (draw_glyphs): Move start to the left and end to the right if they
6487 overlap with previous or following characters.
6488 (draw_glyphs): If background is cleared for hl == DRAW_CURSOR,
6489 make sure XDrawString uses function GXset. Otherwise the
6490 character under the cursor would be invisible.
6491 (x_draw_bar_cursor): Don't draw over previous character if it
6492 has right_overhang.
6493
6494 * window.c (get_phys_cursor_glyph): Return the glyph under a
6495 window's physical cursor.
6496
6497 * xterm.c (x_draw_hollow_cursor): Use get_phys_cursor_glyph.
6498 (x_draw_bar_cursor): Ditto.
6499 (x_erase_phys_cursor): Ditto.
6500 (x_phys_cursor_in_rect_p): Ditto.
6501 (x_display_and_set_cursor): Remove reference to w->phys_cursor_glyph.
6502
6503 * window.c (make_window): Remove reference to phys_cursor_glyph.
6504 (replace_window): Ditto.
6505
6506 * window.h (struct window): Remove phys_cursor_glyph. There is
6507 now always a glyph present for placing the cursor on it in
6508 each glyph row, even at the end of a line.
6509
6510 * xdisp.c (append_space): Function to add a space to an iterators
6511 glyph row.
6512 (display_line): Add spaces at the end of lines that are used to
6513 place the cursor on them.
6514 (compute_line_metrics): If row consists of a space only that was
6515 added to place the cursor on it, use that space's height as the
6516 line height.
6517
65181998-01-29 Gerd Moellmann <gerd@gnu.org>
6519
6520 * xdisp.c (Fdump_redisplay_state): Dump left and right overhang of
6521 glyphs.
6522
65231998-01-28 Gerd Moellmann <gerd@gnu.org>
6524
6525 * xterm.c (x_append_glyph): Set overhang of glyph from iterator.
6526 (XTproduce_glyphs): Set it->left_overhang and it->right_overhang.
6527
6528 * dispextern.h (struct glyph): Add left_overhang and
6529 right_overhang.
6530 (struct display_iterator): Ditto.
6531
6532 * dispnew.c (direct_output_for_insert): Give up if newly inserted
6533 glyphs have different ascent or descent than original row.
6534
6535 * xdisp.c (compute_line_metrics): Compute row->max_ascent and
6536 row->max_descent only if unknown.
6537 (display_line): Compute row->max_ascent and row->max_descent.
6538 (display_string): Ditto.
6539
6540 * window.h (struct window): New members phys_cursor_ascent and
6541 phys_cursor_descent.
6542
6543 * xterm.c (x_phys_cursor_in_rect_p): Use them.
6544 (x_draw_hollow_cursor): Ditto.
6545 (x_erase_phys_cursor): Ditto.
6546 (x_display_and_set_cursor): Set them.
6547 (x_append_glyph): Don't set glyph members that were removed.
6548
6549 * dispextern.h (struct glyph): Members ascent, descent,
6550 contributes_to_line_height_p removed.
6551
65521998-01-25 Gerd Moellmann <gerd@gnu.org>
6553
6554 * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): Symbolic
6555 names for face ids of frame default face and mode line face.
6556
6557 * xdisp.c (compute_face_at_iterator_string_position): If
6558 displaying a mode line use MODE_LINE_FACE_ID instead of
6559 DEFAULT_FACE_ID.
6560
6561 * xdisp.c (reseat_iterator_to_string): Additional parameter start.
6562 (display_string): Ditto, additional parameter lisp_string.
6563 (display_line): Call display_string with Lisp mini-buffer prompt
6564 string.
6565 (display_menu_bar): Call display_string with Lisp string.
6566 (display_mode_element): Ditto.
6567 (next_element_from_string): Make it work for non-overlay Lisp
6568 strings with field width and precision.
6569
6570 * minibuf.c (minibuffer-prompt-in-buffer): Bound if
6571 PROMPT_IN_BUFFER.
6572
6573 * xfaces.c (compute_string_char_face): Fix face computation
6574 for overlay strings.
6575
6576 * xdisp.c (struct overlay_entry): Add member after_string_p.
6577 (load_overlay_strings): Simplify.
6578
6579 * window.c (delete_window): Defer glyph matrix adjustment.
6580 (Fsplit_window): Ditto.
6581 (change_window_height): Ditto.
6582 (Fset_window_configuration): Ditto.
6583 (Fset_window_margins): Ditto.
6584 * frame.c (set_menu_bar_lines): Ditto.
6585 (Fmake_terminal_frame): Ditto.
6586 * dispnew.c (change_frame_size_1): Ditto.
6587
65881998-01-24 Gerd Moellmann <gerd@gnu.org>
6589
6590 * xdisp.c (move_iterator_vertically_backward): Change algorithm.
6591
6592 * dispnew.c (direct_output_for_insert): Give up if start
6593 position has overlay strings.
6594
6595 * xdisp.c (display_line): Don't set cursor if row ends in middle
6596 of overlay string.
6597 (Fdump_redisplay_state): Print complete row start and end
6598 position.
6599 (redisplay_window): Cursor movement when matrix hasn't changed---
6600 if PT < last_point, maybe move forward if row ends at PT and
6601 in middle of char.
6602
6603 * minibuf.c (read_minibuf): Save the value of
6604 minibuffer_prompt_length in minibuf_save_list.
6605 (read_minibuf_unwind): Restore minibuffer_prompt_length.
6606
6607 * xdisp.c (redisplay_window): Add assertion for cursor movement
6608 case, PT < last_point.
6609 (move_iterator_in_display_line_to): If to_pos specified, move
6610 over before-strings.
6611
6612 * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test
6613 start.string_index > 0.
6614
6615 * xdisp.c (redisplay_internal): Adjust glyphs if fonts_changed_p
6616 is set. Retry redisplay if fonts_changed_p is set before update.
6617
6618 * xterm.c (x_load_font): Set fonts_changed_p.
6619
6620 * xfaces.c (Fset_face_attribute_internal): Set fonts_changed_p.
6621
6622 * dispnew.c (adjust_glyphs_for_font_change): Removed.
6623
6624 * xdisp.c (try_window): Check fonts_changed_p.
6625 (try_window_reusing_current_matrix): Ditto.
6626 (try_window_id): Ditto.
6627
6628 * dispnew.c (adjust_glyphs_for_font_change): Set fonts_changed_p.
6629 (fonts_changed_p): Flag indicating a font change since the last
6630 glyph matrix adjustment.
6631
6632 * xterm.c (x_per_char_metric): Use font->max_bounds as
6633 char metric of the font's default char if the default char
6634 hasn't per char metric itself.
6635
6636 * xfaces.c (Fset_face_attribute_internal): Adjust glyphs
6637 for font change.
6638 (min_char_bounds): Check face->font != NULL.
6639 (font_min_bounds): Return minimum font metrics. Capture the
6640 case of invalid min_bounds contents.
6641 (min_char_bounds): Call font_min_bounds.
6642
66431998-01-22 Gerd Moellmann <gerd@gnu.org>
6644
6645 * xdisp.c (start_display): Don't set it->prompt_width if
6646 PROMPT_IN_BUFFER.
6647 (move_iterator_in_display_line_to): Ditto.
6648 (display_line): Don't display prompt via display_string if
6649 PROMPT_IN_BUFFER.
6650
6651 * minibuf.c (Fminibuffer_prompt_width): Return value from
6652 current_buffer if PROMPT_IN_BUFFER.
6653 (read_minibuf): If PROMPT_IN_BUFFER, insert prompt into
6654 mini-buffer and make it read-only.
6655 (Fminibuffer_complete_and_exit): If PROMPT_IN_BUFFER, use
6656 minibuffer_prompt_length instead of BEGV.
6657 (Fminibuffer_complete_word): Ditto.
6658 (Fminibuffer_complete_word): Ditto.
6659
6660 * insdel.c (del_range_1): If PROMPT_IN_BUFFER, and start position
6661 is less than mini-buffer prompt width, use prompt width as start.
6662
6663 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, and start
6664 position is less than mini-buffer prompt width, use the prompt
6665 width as start.
6666
6667 * cmds.c (Fbeginning_of_line): If PROMPT_IN_BUFFER, set point to
6668 end of prompt if applied to a mini-buffer and BEG reached.
6669
66701998-01-21 Gerd Moellmann <gerd@gnu.org>
6671
6672 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, add prompt
6673 length to start position.
6674
6675 * buffer.c (Fget_buffer_create): Initialize
6676 minibuffer_prompt_length.
6677 (Fmake_indirect_buffer): Ditto.
6678 (Fkill_buffer): Ditto.
6679
6680 * buffer.h (struct buffer): Add member minibuffer_prompt_length
6681 if PROMPT_IN_BUFFER.
6682
66831998-01-19 Gerd Moellmann <gerd@gnu.org>
6684
6685 * xdisp.c (next_element_from_string): Make it work for arbitrary
6686 Lisp strings.
6687 (set_iterator_to_next): Advance to next overlay string only
6688 if it->string is an overlay string.
6689
6690 * dispextern.h (struct display_iterator):
6691 next_ovstr_face_check_pos renamed next_string_face_check_pos.
6692
6693 * xfaces.c (compute_string_char_face): Compute face for
6694 arbitrary Lisp string. Renamed from compute_overlay_string_char_face.
6695
6696 * xdisp.c (next_element_from_string): Renamed from
6697 next_element_from_overlay_string.
6698 (compute_face_at_iterator_string_position): Renamed from
6699 compute_face_at_iterator_overlay_string_position.
6700
6701 * dispextern.h (struct display_iterator): Member overlay_string
6702 renamed string.
6703
6704 * xdisp.c (next_element_from_c_string): Renamed from
6705 next_element_from_string.
6706
6707 * dispextern.h (struct glyph_pos): Reversed meaning of
6708 overlay_string_index and string_index.
6709
6710 * xdisp.c (next_element_from_overlay_string): Fix bug that made
6711 this function always return the first character of an overlay
6712 string.
6713
67141998-01-18 Gerd Moellmann <gerd@gnu.org>
6715
6716 * xdisp.c (reseat_iterator): Set next_invisible_check_pos only if
6717 forced or new pos > next_invisible_check_pos.
6718 (redisplay_window): Don't try same window start if PT < window
6719 start.
6720 (move_iterator_vertically): Bug fix satisfying post-condition
6721 when ZV is reached and no newline in front.
6722 (move_iterator_vertically_backward): New implementation.
6723 (move_iterator_vertically_backward): Bug fixes.
6724
6725 * xterm.c (XTmouse_position): Change call to min_char_bounds.
6726 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
6727 (adjust_glyphs_for_font_change): Always adjust.
6728
6729 * dispnew.c (struct dim): Use int.
6730
6731 * xfaces.c (Fset_face_attribute_internal): Set face->font_name;
6732 (allocate_face): Initialize it.
6733 (load_font): Use XLoadQueryFont again instead of x_load_font.
6734 (unload_font): Use XFreeFont again.
6735 (min_char_bounds): Iterate over fonts of faces. Use frame's
6736 font sizes as default. Remove parameter except_last_font_p.
6737
6738 * dispextern.h (struct face): Add font_name.
6739
67401998-01-17 Gerd Moellmann <gerd@gnu.org>
6741
6742 * xdisp.c (move_iterator_vertically): Check post-condition. Move
6743 to start of line if ending at ZV and no newline in front.
6744 (move_iterator_to): If to_y specified, always first move to x = 0,
6745 so that move stops at line start instead of line end. This is
6746 probably what callers would expect to happen.
6747
6748 * window.c (window_scroll_pixel_based): Pixel-based scrolling that
6749 can handle different line heights.
6750 (window_scroll_line_based): Formerly window_scroll.
6751 (window_scroll): Call both.
6752
6753 * xdisp.c (start_display): Exclude code if PROMPT_IN_BUFFER.
6754 (move_iterator_in_display_line_to): Ditto.
6755 (display_line): Ditto.
6756
6757 * minibuf.c (read_minibuf): Conditionally insert prompt into
6758 buffer instead of handling prompts specially. Change other
6759 functions accordingly. All such code is in #if PROMPT_IN_BUFFER.
6760
6761 * dispnew.c (adjust_glyph_matrix): Optimize the handling of C-x 2,
6762 upper window. Optimize calls to xrealloc if same width.
6763
6764 * xdisp.c (redisplay_window): Don't use
6765 try_window_reusing_current_matrix if window scroll functions
6766 exist.
6767
6768 * dispextern.h (struct display_iterator): Member
6769 redisplay_end_trigger_p removed.
6770
6771 * dispextern.h (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
6772 Renamed to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
6773
67741998-01-16 Gerd Moellmann <gerd@gnu.org>
6775
6776 * xdisp.c (move_iterator_by_lines): Optimize for truncate-lines
6777 nil. Optimize truncate-lines t and moving backward.
6778 (move_iterator_to_previous_visible_line_start): Contains the heart
6779 of the previous set_iterator_to_previous_visible_line_end. Don't
6780 reseat the iterator. Used by move_iterator_by_lines.
6781 (set_iterator_to_previous_visible_line_start): Call function
6782 above.
6783 (move_iterator_in_display_line_to): Check TO_POS before doing
6784 anything else. Otherwise to_pos == PT would move to x of PT+1.
6785
6786 * indent.c (Fvertical_motion): Use display_iterator.
6787
6788 * xdisp.c (move_iterator_by_lines): New function moving by screen
6789 lines.
6790 (redisplay_window): Use it.
6791 (move_iterator_to): Correct branch of to_vpos specified.
6792 (move_iterator_vertically_backward): Increment nlines after having
6793 backed up over some lines because the last line was not backed up
6794 over.
6795 (move_iterator_via_matrix): Look for it->pos in the matrix, and
6796 calculate it->vpos and it->current_y relative to this row.
6797 (move_iterator_via_matrix): Set in #if 0. It doesn't seem to
6798 have a big effect and it is complex.
6799 (move_iterator_to): Call to move_iterator_via_matrix in #if 0.
6800
68011998-01-15 Gerd Moellmann <gerd@gnu.org>
6802
6803 * xterm.c (x_draw_relief): Simplify drawing and draw so that lines
6804 join nicely. Lines with widths > 2 don't join nicely under X.
6805 * xterm.h (struct x_output): Remove member relief_gc_line_width.
6806 * widget.c (setup_frame_gcs): Initialize relief GC's to line
6807 width 1; remove references to relief_gc_line_width.
6808 * xfns.c (x_make_gc): Ditto.
6809
6810 * xfaces.c (Fset_face_attribute_internal): Set frame garbaged
6811 if relief changes.
6812 (Fset_face_attribute_internal): Use XINT instead of XFASTINT
6813 to get a relief because they can be negative.
6814
6815 * xterm.c (x_draw_relief): Correct line drawing positions. Pixel
6816 positions are for the middle of lines under X.
6817
6818 * xdisp.c (try_window_id): Always search for the cursor by setting
6819 w->cursor.vpos = -1. Search in unchanged rows at the top and
6820 bottom if cursor not found in displayed lines.
6821 (display_mode_line): First extend face, then set right shadow
6822 flag. Otherwise the wrong glyph gets the right shadow.
6823
6824 * dispnew.c (direct_output_for_insert): Give up if line contains
6825 a tab. The number of spaces inserted for a tab changes if we
6826 insert glyphs in front of it.
6827
6828 * xterm.c (x_list_fonts): Changes undone because the Lisp
6829 implementation for make-face-smaller, make-face-larger, and
6830 make-face-fixed can do without them.
6831
6832 * xfns.c (Fx_list_fonts): Original x-list-fonts from x-list-font.c
6833 inserted.
6834
6835 * xdisp.c (try_window_id): First compute beg_unchanged, then
6836 compare with window start pos.
6837
6838 * xfns.c (Fx_face_fixed_p): Determine whether a face has a
6839 fixed-width font.
6840 (syms_of_xfns): defsubr for x-face-fixed-p.
6841
6842 * xterm.c (x_erase_phys_cursor): If row containing cursor is not
6843 enabled, don't do anything because this row will be newly drawn
6844 anyway and because we can additionally no longer determine the row
6845 height.
6846
6847 * xdisp.c (display_line): Bug fix cursor positioning.
6848
6849 * xfns.c (x-list-fonts): Copied from x-list-fonts.c; #include
6850 removed. x-list-fonts.c is now obsolete.
6851 (Qfixed, Qvariable): Moved here from xfaces.c.
6852
68531998-01-14 Gerd Moellmann <gerd@gnu.org>
6854
6855 * xdisp.c (display_line): Set row->ends_at_zv_p based on
6856 FETCH_BYTE for truncated lines.
6857 (display_line): Set cursor differently.
6858 (display_line): Fixed bug setting last_pos_on_this_line wrong
6859 for truncated lines.
6860
6861 * dispnew.c (adjust_glyph_matrix): Always adjust for frame-based
6862 redisplay.
6863
6864 * window.c (Fsplit_window): Adjust glyphs before setting buffer.
6865
6866 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Add
6867 assertion that character dimensions are not zero.
6868
6869 * xterm.c (x_load_font): adjust_glyphs_for_font_change while
6870 input is blocked.
6871
6872 * xdisp.c (decode_mode_spec): Faster implementation of line number
6873 display.
6874
6875 * xterm.c (x_draw_row_bitmaps): Clear flags area before drawing
6876 bitmaps if bitmaps don't fill the entire area.
6877 (draw_bitmap): Draw bitmaps horizontally centered in flags area.
6878
6879 * xterm.h (FRAME_FLAGS_BITMAP_HEIGHT): Macro giving the
6880 pixel height of flags bitmaps.
6881
6882 * frame.h (FRAME_FLAGS_AREA_COLS): Use FRAME_X_FLAGS_AREA_COLS.
6883 (FRAME_FLAGS_AREA_WIDTH): Ditto.
6884
6885 * xterm.h (FRAME_FLAGS_BITMAP_WIDTH): Macro giving the width
6886 in pixels of a flags area of a frame.
6887 (FRAME_X_FLAGS_AREA_WIDTH): Removed.
6888 (FRAME_X_FLAGS_AREA_COLS): Macro giving the number of columns
6889 occupied by a flags area.
6890
68911998-01-13 Gerd Moellmann <gerd@gnu.org>
6892
6893 * xdisp.c (hscroll_window_tree): Remove test for non-nil
6894 window_end_valid.
6895
6896 * dispnew.c (adjust_glyph_matrix): Check redisplay_p if
6897 GLYPH_DEBUG != 0.
6898
6899 * xdisp.c (display_line): Correct wrong calculation of row->x for
6900 the case of nglyphs == 1.
6901 (hscroll_window_tree): Renamed from hscroll_windows.
6902 (hscroll_windows): New function calling hscroll_window_tree that
6903 clears desired matrices on a frame when hscroll has been changed.
6904 (redisplay_p): Global flag set during redisplay.
6905 (redisplay_internal): Set and clear redisplay_p.
6906
6907 * xfaces.c (min_char_bounds): Add assertion that width and height
6908 are not zero at the end. Initialize *height and *width to -1,
6909 instead of using BITS_PER_SHORT. If font has min_bounds.width
6910 zero, use its max_bounds.width.
6911
6912 * x-list-font.c (Fx_list_fonts): Check INTEGERP or FLOATP for
6913 width and height.
6914
69151998-01-12 Gerd Moellmann <gerd@acm.org>
6916
6917 * dispnew.c (adjust_glyph_matrix): Do nothing if sizes haven't
6918 changed. Don't clear desired matrices.
6919
6920 * xdisp.c (hscroll_windows): Compute pt after setting
6921 current_buffer.
6922 (redisplay_window): Don't do cursor movement based on current
6923 matrix if just_this_one_p is zero.
6924
6925 * x-list-font.c (Fx_list_fonts): Additional parameter fixed.
6926 specifying that fixed-width, variable-width fonts or both
6927 should be returned.
6928
6929 * xfaces.c (Qfixed, Qvariable): Symbols for use by x-list-fonts.
6930 (syms_of_xfaces): Initialize them.
6931
6932 * xterm.c (x_list_fonts): Include auto-scaled fonts. Extend
6933 cached information.
6934
69351998-01-11 Gerd Moellmann <gerd@acm.org>
6936
6937 * xdisp.c (display_mode_line): Extend face to end of line.
6938
6939 * xdisp.c (echo_area_display): Don't call display_string with
6940 echo_area_glyphs_length == 0 which would mean infinite precision.
6941 (redisplay_internal): Adjust window_end_vpos if necessary.
6942
69431998-01-07 Gerd Moellmann <gerd@acm.org>
6944
6945 * xdisp.c (display_line): Set it->ends_at_zv_p differently.
6946
69471998-01-05 Gerd Moellmann <gerd@acm.org>
6948
6949 * xdisp.c (get_row_start_continuation_line_width): Removed.
6950 (init_iterator_to_row_start): Set it.current_x from row.
6951 (try_window_id): Set it.continuation_lines_width directly from
6952 row.
6953
6954 * xdisp.c (hscroll_windows): Use w->pointm if window is not
6955 selected_window.
6956 (hscroll_windows): Center cursor in window.
6957 (hscroll_windows): Call move_iterator_in_display_line_to.
6958
69591998-01-04 Gerd Moellmann <gerd@acm.org>
6960
6961 * xdisp.c (hscroll_windows): Check hscroll < 0.
6962 (redisplay_window): Allow quick cursor movement if overlay arrow
6963 but frame uses window-based redisplay.
6964 (display_line): Take special case for nglyphs == 1 out of #if 0.
6965 (display_line): Set row->ends_at_zv_p after the loop displaying
6966 glyphs because ZV can be in truncated text.
6967 (hscroll_windows): Use init_iterator_to_row_start.
6968
6969 * dispnew.c (scrolling_window): Calculation of overlapping
6970 runs fixed.
6971 (row_equal_p): Compare continued_p and continuation_line_p.
6972
69731998-01-02 Gerd Moellmann <gerd@acm.org>
6974
6975 * xterm.c (x_get_mode_line_face_gc): Renamed from
6976 x_get_modeline_face_gc.
6977
6978 * xdisp.c (TEXT_PROP_DISTANCE_LIMIT): Max. distance from current
6979 buffer position to look for text properties.
6980 (get_face_from_cursor_pos): Use it.
6981 (compute_face_at_iterator_position): Use it.
6982 (next_element_from_buffer): Use it.
6983
6984 * dispnew.c (scrolling_window): Decrement run's y-position
6985 when extending it backwards.
6986
6987 * xterm.c (do_line_dance): Don't ever copy more than window height.
6988
69891998-01-01 Gerd Moellmann <gerd@acm.org>
6990
6991 * xdisp.c (redisplay_window): Cursor motion in unchanged
6992 matrix---use MATRIX_ROW_.*_IN_MIDDLE_OF_CHAR_P.
6993 (init_iterator_to_next_row_start): Special handling of lines
6994 ending in middle of char removed.
6995 (hscroll_windows): Hscroll windows only if window_end_valid is not
6996 nil.
6997 (try_window_reusing_current_matrix): Call hscroll_windows.
6998 (init_iterator_to_row_start): Initialize iterator for display
6999 starting at a position given by a glyph_row->start.
7000 (redisplay_window): Don't use vmotion because it gives wrong
7001 results if lines are continued and variable width fonts are used.
7002
7003 * dispextern.h (struct glyph_pos): New member dpvec_index.
7004 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the
7005 the middle of a character.
7006 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in
7007 the middle of a character.
7008
7009 * xdisp.c (set_iterator_to_next): Increment it->dpvec_index, reset
7010 it.
7011 (next_element_from_display_vector): Use it->dpvec_index.
7012 (reseat_iterator): Reset it.
7013 (init_iterator): Reset it.
7014 (setup_iterator_dpvec_from_glyph_pos): Set up it->dpvec and
7015 it->pos.dpvec_index from a glyph_pos structure.
7016 (init_iterator_from_glyph_pos): Call the function above.
7017 (reseat_iterator_to_glyph_pos): Ditto.
7018
7019 * dispnew.c (direct_output_forward_char): Don't use this method at
7020 overlay boundaries or near invisible text.
7021 (direct_output_forward_char): Step through glyph row to find
7022 cursor position.
7023
7024 * xterm.c (x_get_cursor_gc): Don't return cursor_gc for font ==
7025 frame font if line height differs from font height.
7026
7027 * xdisp.c (set_iterator_to_next): Renamed from
7028 move_iterator_forward to avoid confusion with other move_.*
7029 functions.
7030
7031 * dispextern.h (FACE_RELIEF_P): Renamed from FACE_3D_P.
7032
70331997-12-31 Gerd Moellmann <gerd@acm.org>
7034
7035 * xterm.c (x_get_cursor_gc): Renamed from x_cursor_gc to use the
7036 same naming convention as for other GC functions.
7037 (draw_glyphs): Don't fill background when drawing a cursor and
7038 font height is less than line height.
7039
70401997-12-30 Gerd Moellmann <gerd@acm.org>
7041
7042 * xdisp.c (init_display_iterator.*): Renamed to shorter names
7043 init_iterator_.*.
7044
7045 * xdisp.c (move_iterator_forward): Restore it->len from
7046 it->dpvec_char_len if dpend reached.
7047 (get_next_display_element): Don't consume translated char
7048 prematurely.
7049 (display_line): Don't set this_.* variables if row is continued.
7050 (start_display): Move to start of continuation line if ending
7051 up at end of continued line.
7052
7053 * dispextern.h (struct display_iterator): New member dpvec_char_len.
7054
7055 * xdisp.c (move_iterator_in_display_line_to): Check TO_POS after
7056 checking TO_X and continuation lines.
7057 (get_last_unchanged_at_beg_row): If first_changed_pos is the end
7058 of a continued line, don't consider this line as unchanged because
7059 it may no longer be continued.
7060
70611997-12-29 Gerd Moellmann <gerd@acm.org>
7062
7063 * xdisp.c (try_window_id): Catch the case that moving over
7064 continuation lines moves first_unchanged_at_end_row to a row not
7065 displaying text.
7066
7067 * dispextern.h (struct glyph_row): New member
7068 continuation_lines_width. Member continuation_line_p removed.
7069 (MATRIX_ROW_CONTINUATION_LINE_P): Non-zero if row displays a
7070 continuation line.
7071 * xdisp.c (display_line): Set row->continuation_lines_width.
7072 (get_row_start_continuation_line_width): Set continuation lines
7073 width of iterator from continuation lines width of glyph row.
7074 (get_row_start_continuation_line_width): Make it inline.
7075 (set_window_cursor): Make it inline.
7076 (try_window_id): Use MATRIX_ROW_CONTINUATION_LINE_P.
7077 (Fdump_redisplay_state): Ditto.
7078
7079 * dispnew.c (update_window_line): Use MATRIX_ROW_CONTINUATION_LINE_P.
7080 * xterm.c (x_draw_row_bitmaps): Use MATRIX_ROW_CONTINUATION_LINE_P.
7081
7082 * xdisp.c (try_window_id): Set it.hpos and it.current_x to zero
7083 after determining the continuation lines width for
7084 last_unchanged_at_beg_row.
7085
7086 * xterm.c (x_draw_row_bitmaps): Let overlay arrow have precedence.
7087
7088 * xdisp.c (display_mode_line): Handle 3D faces only on frames
7089 which support faces.
7090 (init_display_iterator): Ditto.
7091 (move_iterator_via_matrix): Skip over truncation glyph at the row
7092 start on terminal frames.
7093 (hscroll_windows): Choose hscroll margin differently for window
7094 system and terminal frames.
7095
70961997-12-28 Gerd Moellmann <gerd@acm.org>
7097
7098 * xdisp.c (hscroll_windows): Change hscroll of windows.
7099 (redisplay_internal): Call it.
7100
7101 * dispnew.c (direct_output_for_insert): Give up if a glyph
7102 doesn't fit completely on the line.
7103 (direct_output_forward_char): Give up for non-ASCII chars.
7104 (direct_output_forward_char): Set redisplay_performed_directly_p.
7105
7106 * dispextern.h (struct display_iterator): Make first_visible_x
7107 and last_visible_x ints; this is for very long truncated lines.
7108
7109 * xdisp.c (move_iterator_in_display_line_to): Separate check for
7110 MOVE_X_REACHED only if it->nglyphs == 0. This fixes cursor
7111 positioning problems with the mouse.
7112 (move_iterator_in_display_line_to): Truncate lines if it->current_x
7113 >= it->last_visible_x instead of >.
7114 (display_line): Ditto.
7115
7116 * xterm.c (draw_glyphs): Draw rectangles if font could not be
7117 loaded.
7118 (XTproduce_glyphs): Calculate pixel_width for composite chars and
7119 non-ASCII chars differently. Always produce 1 glyph for composite
7120 chars. If font not found, use CHARSET_WIDTH to calculate width of
7121 non-ASCII chars.
7122 (x_get_char_font_and_encoding): Return null if font could not be
7123 loaded. Reset font to null if fontset could not be loaded.
7124 (draw_glyphs): Fill background if font not found.
7125 (draw_glyphs): Unused parameter just_foreground_p removed. New
7126 parameter composite_glyph.
7127 (draw_glyphs): Use enumeration for parameter hl.
7128 (draw_glyphs): Pass a display area relative x-position to
7129 draw_glyphs when calling it recursively for composite chars.
7130
71311997-12-27 Gerd Moellmann <gerd@acm.org>
7132
7133 * xterm.c: Patches from handa.etl.go.jp integrated.
7134 (draw_glyphs): Don't rely on x_get_char_font_and_encoding to
7135 find a font_info.
7136
7137 * xdisp.c (move_iterator_in_display_line_to): Check to_x
7138 for nglyphs == 1.
7139
7140 * xterm.c (x_draw_relief): Draw relief lines.
7141 (draw_glyphs): Call x_draw_relief.
7142
71431997-12-26 Gerd Moellmann <gerd@acm.org>
7144
7145 * xfns.c (x_make_gc): Create relief GC's.
7146
7147 * widget.c (create_frame_gcs): Create GC's for relief drawing.
7148 (setup_frame_gcs): Initialize them.
7149 (EmacsFrameDestroy): Free them.
7150
7151 * xdisp.c (try_window_id): Get continuation lines width if
7152 last_unchanged_at_beg_row is continued or a continuation line.
7153 (move_iterator_via_matrix): Don't do it for mini-buffer windows.
7154 (redisplay_window): Case point has changed, and it has not
7155 moved off the frame. Don't increment row if PT equals the row
7156 end if the row ends in ZV.
7157
7158 * xterm.c (x_draw_row_bitmaps): New function to draw bitmaps.
7159 (expose_line): Call it.
7160 (x_after_update_window_line): Call it.
7161
7162 * xdisp.c (display_line): Reset continuation_lines_width when ZV
7163 reached.
7164
7165 * xterm.c (x_after_update_window_line): Draw continuation line
7166 bitmap.
7167
7168 * dispnew.c (update_window_line): Call
7169 after_update_window_line_hook when row's continuation_line_p
7170 changes.
7171
7172 * xterm.c (draw_bitmap): Draw new bitmap CONTINUATION_LINE_BITMAP.
7173
7174 * xdisp.c (display_line): Handle continued lines on window system
7175 frames differently since continuation glyphs are not displayed.
7176 (move_iterator_in_display_line_to): Ditto.
7177 (move_iterator_in_display_line_to): Take the mini-buffer prompt
7178 into account.
7179 (move_iterator_vertically_backward): Handle dy == 0 specially.
7180 (redisplay_window): Catch the case of small windows when
7181 recentering where moving back window_height/2 moves us beyond the
7182 top of the display area of the window.
7183
71841997-12-18 Gerd Moellmann <gerd@acm.org>
7185
7186 * xdisp.c (move_iterator_vertically_backward): Unused parameter
7187 dvpos removed.
7188
71891997-12-17 Gerd Moellmann <gerd@acm.org>
7190
7191 * dispnew.c (direct_output_forward_char): Correct new cursor
7192 x-position.
7193
71941997-12-16 Gerd Moellmann <gerd@acm.org>
7195
7196 * xterm.c (x_after_update_window_line): Remove unused parameters.
7197 (XTclear_end_of_line): Clear to display_height instead of
7198 display_height - 1.
7199
7200 * dispnew.c (set_frame_matrix_frame): Make it INLINE.
7201 (update_window_line): Call after_update_window_line_hook if
7202 rows have different y-positions, or different height.
7203
72041997-12-14 Gerd Moellmann <gerd@acm.org>
7205
7206 * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Removed.
7207
7208 * window.c (coordinates_in_window): Call frame_mode_line_height.
7209
7210 * xterm.c (x_draw_3d_border): Removed.
7211 (x_draw_row_borders): Removed.
7212
7213 * dispnew.c (update_window): References to
7214 FRAME_MODE_LINE_BORDER_WIDTH removed.
7215
7216 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Removed.
7217 (FRAME_MODE_LINE_HEIGHT): Removed.
7218
7219 * xterm.c (draw_3d_borders_p): Removed.
7220 (draw_glyphs): Ditto.
7221 (XTwrite_glyphs): Ditto.
7222 (expose_line): Ditto.
7223 (x_initialize): Ditto.
7224
7225 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Call
7226 frame_mode_line_height.
7227
7228 * term.c (frame_mode_line_height): Get the pixel height of a
7229 frame's mode line.
7230 (frame_mode_line_height_hook): Hook to implement system dependent
7231 versions.
7232
7233 * xterm.c (x_initialize): Set the hook.
7234 (XTframe_mode_line_height): X version of frame_mode_line_height.
7235
7236 * xdisp.c (echo_area_display): Call gobble_input to flush the X
7237 output buffer.
7238 (display_string): Don't add right truncation mark if line ends in
7239 padding space.
7240 (init_display_iterator): If called with modeline_p non-zero, set
7241 face_id to 1, which is the id of the mode line face.
7242
7243 * keyboard.c (cmd_error_internal): Write to stderr if selected
7244 frame is Vterminal_frame under X. This is the case when a font
7245 cannot be loaded when Emacs starts. Replace test for
7246 FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
7247
7248 * xfaces.c (compute_overlay_string_char_face): Compute the
7249 face of a character in an overlay string.
7250 * xterm.h (compute_overlay_string_char_face): Prototype.
7251 * xdisp.c (compute_face_at_iterator_overlay_string_position):
7252 Use it.
7253
7254 * xdisp.c (set_iterator_to_next_overlay_string): Formerly
7255 set_iterator_to_next_overlay.
7256 (struct overlay_entry): Structure used to sort overlay strings.
7257 (compare_overlay_entries): Compare overlay strings.
7258 (load_iterator_with_overlay_strings): Load a chunk of overlay
7259 strings.
7260 (get_overlay_strings_at_iterator_position): Call it.
7261 (next_element_from_overlay_string): Set it->object to the overlay
7262 string. Prepare for setting it->position to a string position.
7263 (get_overlay_strings_at_iterator_position): Renamed from
7264 get_overlays_at_iterator_position.
7265 (setup_iterator_overlay_strings_from_glyph_pos): Changed to load
7266 chunks of overlay strings.
7267 (load_overlay_strings): Renamed from load_iterator_overlay_strings.
7268
7269 * dispextern.h (struct display_iterator): New vector
7270 overlay_strings and new member n_overlay_strings---formerly
7271 overlays and n_overlays.
7272 (struct glyph_pos): Remove after_string_p; overlay_index
7273 renamed to string_index.
7274
72751997-12-13 Gerd Moellmann <gerd@acm.org>
7276
7277 * xdisp.c (copy_iterator): Increment n_iterator_overlay_vectors
7278 when allocating a vector.
7279 (release_iterator): Removed.
7280 (restore_iterator): Removed.
7281 (copy_iterator): Removed.
7282
72831997-12-08 Gerd Moellmann <gerd@acm.org>
7284
7285 * xdisp.c (redisplay_window): Use make_empty_enabled_row for
7286 clearing a mini-buffer window that is not active.
7287 (redisplay_window): Do not scroll one line too early when last
7288 window line is completely visible.
7289 (init_display_iterator): Leave some room to display the cursor
7290 after the last glyph on a continued line.
7291
7292 * xterm.h (struct x_output): trunc_area_extra renamed
7293 flags_areas_extra.
7294 (FRAME_X_FLAGS_AREA_WIDTH): Renamed from FRAME_X_TRUNC_WIDTH.
7295
7296 * dispnew.c (update_window_line): Call
7297 after_update_window_line_hook when current row is not enabled
7298 which is the case after a frame has been cleared.
7299
7300 * xdisp.c (display_mode_line): Reset row flags for truncation
7301 on right side for the mode line.
7302
7303 * xterm.c (bitmap_type): Type of bitmap to display in flags
7304 area of frame.
7305 (x_after_update_window_line): Use the enum.
7306 (draw_bitmap): Ditto.
7307
73081997-12-07 Gerd Moellmann <gerd@acm.org>
7309
7310 * xterm.c (x_clip_to_row): Include width of both flag areas.
7311 (do_line_dance): Ditto.
7312 (expose_window_tree): Ditto.
7313 * dispnew.c (update_window_line): Call
7314 after_update_window_line_hook for right truncation and continuation.
7315 * xdisp.c (init_display_iterator): Don't subtract width of
7316 continuation glyphs for window-based redisplay.
7317 * xterm.c (draw_bitmap): Draw continuation bitmap.
7318 * widget.c (set_frame_size): Double trunc_area_extra.
7319 (EmacsFrameSetCharSize): Ditto.
7320 * xfns.c (x_figure_window_size): Ditto.
7321 * xterm.c (x_set_window_size): Ditto.
7322 (x_after_update_window_line): Draw right truncation mark.
7323
7324 * xterm.c (draw_glyphs): Bug fix buffer overrun.
7325
7326 * window.h: Include blocker around dispextern.h removed.
7327
7328 * eval.c (Feval): Check interrupt_input_block == 0.
7329
7330 * dispextern.h (struct display_iterator): Former ovstr made a
7331 Lisp_Object overlay_string. New next_ovstr_face_check_pos and
7332 next_ovstr_invisble_check_pos; check at these positions for
7333 face changes and changes in invisible text property.
7334 (struct glyph_pos): Former ovlen now overlay_string_index.
7335
7336 * xdisp.c (setup_iterator_overlays_from_glyph_pos): Set
7337 overlay_string.
7338 (set_iterator_to_next_overlay_string): Set overlay_string and
7339 pos.overlay_string_index.
7340 (get_overlays_at_iterator_position): Use overlay_string and
7341 overlay_string_index.
7342 (next_element_from_overlay_string): Use overlay_string and
7343 overlay_string_index.
7344 (move_iterator_forward): Increment overlay_string_index.
7345 (try_window_id): Use overlay_string and overlay_string_index.
7346 (move_iterator_forward): At end of dpvec, maybe use method
7347 next_element_from_overlay_string for the case a character from an
7348 overlay string was translated via a display table.
7349 (reseat_iterator_to_string): Take a Lisp string.
7350 (display_string): Pass a Lisp string to reseat_iterator_to_string.
7351 (compute_face_at_iterator_overlay_string_position): Compute face
7352 based on text properties for an overlay string.
7353 (next_element_from_overlay_string): Check invisible and face text
7354 properties.
7355 (set_iterator_to_next_overlay_string): Restore face id before
7356 overlay strings when no more overlay strings are found to return.
7357 Initialize next_ovstr_.*check_pos for each new overlay string
7358 roï
7359 (merge_face_list): Ditto.
7360 (intern_computed_face): Ditto.
7361
7362 * xdisp.c (redisplay_window): Cursor movement in unchanged
7363 window if PT > w->last_point. Goto try_to_scroll if bottom Y
7364 of row is > instead of >= last_y.
7365
7366 * buffer.h (overlays_at): Function prototype.
7367
7368 * xdisp.c (reseat_iterator_to_string): Clear iterator position.
7369 * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Removed.
7370
7371 * xdisp.c (release_iterator): Release dynamically allocated
7372 memory of a display_iterator.
7373 (copy_iterator): Copy an iterator.
7374 (restore_iterator): Restore an iterator from a backup copy.
7375 (global): Use the functions above.
7376 * window.c (Fpos_visible_in_window_p): Call release_iterator.
7377 * dispnew.c (direct_output_for_insert): Call release_iterator.
7378
7379 * dispextern.h (struct display_iterator): Allocate overlays
7380 vector dynamically.
7381
73821997-12-06 Gerd Moellmann <gerd@acm.org>
7383
7384 * Makefile.in (window.o): Depends on dispextern.h.
7385
7386 * buffer.c (overlays_at): Make it work when extending vectors
7387 and an initial vector of zero size.
7388
7389 * xdisp.c (set_iterator_to_previous_visible_line_end): Renamed
7390 from set_cursor_to_previous_visible_line_end.
7391 (set_iterator_to_next_visible_line_start): Renamed from
7392 set_cursor_to_next_visible_line_end.
7393 (set_next_iterator_stop_pos): Renamed from set_next_stop_pos.
7394 (compute_face_at_iterator_position): Renamed from
7395 compute_cursor_face.
7396 (set_iterator_to_next_overlay_string): Renamed from
7397 cursor_to_next_overlay_string.
7398 (get_overlays_at_iterator_position): Renamed from
7399 get_overlays_for_cursor.
7400 (reseat_iterator): Renamed from reseat_cursor.
7401 (setup_iterator_overlays_from_glyph_pos): Renamed from
7402 setup_overlays_from_pos.
7403 (init_string_iterator): Renamed from init_string_cursor.
7404 (get_next_display_element): Renamed from next_display_element.
7405 (move_iterator_forward): Renamed from advance_display_cursor.
7406 (get_overlays_at_iterator_position): Allocate overlays vector
7407 dynamically.
7408
7409 * xdisp.c: display_cursor renamed display_iterator.
7410 * dispextern.h: Ditto.
7411 * dispnew.c: Ditto.
7412
74131997-12-01 Gerd Moellmann <gerd@acm.org>
7414
7415 * window.c (mark_window_cursors_off): Function comment added.
7416 (window_topmost_p, window_rightmost_p): Removed because not used.
7417
74181997-11-30 Gerd Moellmann <gerd@acm.org>
7419
7420 * emacs.c (main): Function prototypes removed in profiling code.
7421 Use safe_bcopy as start of text.
7422
7423 * dispnew.c (update_frame_line): update_line -> update_frame_line;
7424 mirrored_make_current -> make_current.
7425
7426 * xdisp.c: (store_frame_title_char): New function to store a
7427 single character for the frame title with re-allocation of
7428 frame_title_buf.
7429 (init_xdisp): Intialize frame_title_.* variables to null.
7430
7431 * dispnew.c (quit_error_check): Removed.
7432
7433 * eval.c (Fsignal): Call to quit_error_check removed.
7434 * keyboard.c (quit_throw_to_read_char): Ditto.
7435
74361997-11-23 Gerd Moellmann <gerd@acm.org>
7437
7438 * xfaces.c (Fset_face_attribute_internal): Allow nil relief
7439 to mean a zero relief.
7440
7441 * .gdbinit (xprintsym): Print a symbol.
7442 (xbacktrace): Print a backtrace of Lisp function calls from
7443 backtrace_list.
7444
74451997-11-19 Gerd Moellmann <gerd@acm.org>
7446
7447 * dispnew.c (new_glyph_matrix): Increment glyph_matrix_count
7448 unconditionally.
7449 (glyph_matrix_count, glyph_pool_count): Define unconditionally.
7450 (free_glyph_matrix): Decrement glyph_matrix_count unconditionally.
7451 (check_glyph_memory): Define function body unconditionally.
7452
74531997-11-17 Gerd Moellmann <gerd@acm.org>
7454
7455 * dispnew.c (scrolling_window): Alternative version of this
7456 function removed.
7457
74581997-11-16 Gerd Moellmann <gerd@acm.org>
7459
7460 * dispnew.c (make_empty_enabled_row): Make an empty, enabled row
7461 of height CANON_Y_UNIT.
7462 * dispextern.h: Prototype for that function.
7463 * xdisp.c (echo_area_display): Don't use display_string to
7464 produce empty rows. Use make_empty_enabled_row instead.
7465
7466 * dispnew.c (scrolling_window): New version using diff-like
7467 algorithm activated.
7468
74691997-11-15 Gerd Moellmann <gerd@acm.org>
7470
7471 * dispnew.c (clear_current_matrices): Clear matrix of menu_bar_window
7472 (clear_desired_matrices): Ditto.
7473 (adjust_frame_glyphs_for_window_redisplay): Use FRAME_WINDOW_WIDTH
7474 for menu_bar_window.
7475
7476 * alloc.c (mark_object): Mark menu_bar_window of frames.
7477
7478 * xterm.c (XTupdate_window_end): Don't display cursor if
7479 pseudo_window_p.
7480
7481 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Don't
7482 set mini_p.
7483 (update_window): Don't set cursor if pseudo_window_p.
7484
7485 * dispextern.h (WINDOW_WANTS_MODELINE_P): Test pseudo_window_p.
7486
7487 * window.h (struct window): New flag pseudo_window_p set to
7488 1 for windows that aren't really part of the window tree, like
7489 menu_bar_window's of frames.
7490 * window.c (make_window): Initialize it.
7491 (replace_window): Ditto.
7492 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
7493
7494 * frame.c (make_frame): Initialize menu_bar_window to nil.
7495
7496 * xterm.c (XTget_display_info): FACE_SHADOW_THICKNESS renamed
7497 FACE_RELIEF
7498
7499 * xfaces.c (copy_face): shadow_thickness -> relief.
7500 (face_eql): Ditto.
7501 (merge_faces): Ditto.
7502 (compute_base_face): Ditto.
7503 (Fset_face_attribute_internal): Ditto.
7504 * dispextern.h (struct face): Ditto.
7505
7506 * dispnew.c (update_frame): Update menu_bar_window of the frame if
7507 it is non-nil.
7508
7509 * xdisp.c (display_menu_bar): Display the menu bar in
7510 f->menu_bar_window if appropriate.
7511 (display_mode_line): Use MATRIX_MODE_LINE_ROW.
7512
7513 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Allocate
7514 dummy window and window matrices for f->menu_bar_window.
7515 (free_glyphs): Free the dummy window and its glyph matrices.
7516
7517 * frame.h (struct frame): New member menu_bar_window.
7518
75191997-11-09 Gerd Moellmann <gerd@acm.org>
7520
7521 * dispnew.c (scrolling_window): New version with diff-like
7522 algorithm.
7523
7524 * xdisp.c (try_window_reusing_current_matrix): If new_start >
7525 old_start always start displaying at start of
7526 first_row_to_display. The previous scheme failed if the last row
7527 was fully visible.
7528
7529 * dispnew.c (update_window): Remove cost calculations. Remove
7530 redundant preempt_count calculations.
7531
7532 * xterm.c (x_clip_to_row): Set clipping for non-text rows
7533 differently.
7534
7535 * dispnew.c (update_window): Use WINDOW_WANTS_MODELINE_P.
7536
7537 * window.c (syms_of_window): Functions for marginal areas if
7538 WITH_MARGINAL_AREAS is defined.
7539
7540 * xdisp.c (try_window_reusing_current_matrix): Trace fprintf
7541 removed.
7542
7543 * dispnew.c (scrolling): Call line_hash_code because hash values
7544 are not set in the frame matrix.
7545
7546 * xdisp.c (try_window_id): Fix scrolling for terminal frames.
7547 (redisplay_window): Check line_ins_del_ok before calling
7548 try_window_id.
7549 (try_window_reusing_current_matrix): Give up for terminal frames
7550 if window is not full width or we cannot insert/delete lines.
7551 (try_window_reusing_current_matrix): Fixed scrolling for terminal
7552 frames.
7553
7554 * alloc.c (mark_glyph_matrix): Bug fix - pass pointer to
7555 Lisp_Object to mark_object.
7556
7557 * xdisp.c (sync_frame_with_window_matrix_rows): Make frame and
7558 window rows have the same glyph pointers.
7559 (try_window_id): Call it.
7560
7561 * alloc.c (mark_glyph_matrix): Function to mark Lisp objects in
7562 a glyph matrix.
7563 (mark_object): Call it.
7564
7565 * xdisp.c (insert_left_trunc_glyphs): Use 0 object in glyphs for
7566 truncations.
7567 (display_line): Ditto.
7568 (display_line): Ditto for DISP_CONTINUATION.
7569 (display_line): Truncation on right: test current_x >
7570 last_visible_x.
7571 (skip_in_display_line_to): Ditto.
7572 (skip_via_matrix): Stop skipping in glyph row at face extending
7573 glyphs or at padding spaces.
7574
7575 * dispnew.c (fill_up_glyph_row_with_spaces): Comment extended.
7576
7577 * xdisp.c (display_line): Use glyph->object == 0 for padding
7578 glyphs.
7579 (redisplay_window): Don't let cursor move over padding
7580 spaces.
7581
7582 * dispextern.h (struct glyph): Fix comment for object.
7583
75841997-11-08 Gerd Moellmann <gerd@acm.org>
7585
7586 * dispextern.h (WINDOW_WANTS_MODELINE_P): Non-zero if a window
7587 has a mode line.
7588 * xdisp.c (redisplay_window): Use it.
7589 (display_mode_line): Check that window wants mode line.
7590
75911997-11-03 Gerd Moellmann <gerd@acm.org>
7592
7593 * xdisp.c (display_menu_bar): Enable menu bar rows.
7594
7595 * xterm.c (x_draw_hollow_cursor): X positions based on text area.
7596 (x_erase_phys_cursor): Ditto.
7597 (x_draw_bar_cursor): Ditto.
7598
75991997-11-02 Gerd Moellmann <gerd@acm.org>
7600
7601 * dispnew.c (update_marginal_area): Update a marginal area.
7602 (update_text_area): Update text area.
7603 (update_window_line): Call both.
7604
7605 * xterm.c (XTclear_end_of_line): Translate coordinates area
7606 dependent.
7607
7608 * dispnew.c (updated_area): Row area being updated in
7609 update_window_line.
7610 (update_window_line): Set it.
7611 (update_marginal_area): Clear to end of line if not in text area.
7612
7613 * window.c (Fset_window_margins): Increment
7614 windows_or_buffer_changed. Adjust glyphs.
7615
7616 * dispextern.h (WINDOW_TEXT_TO_FRAME_PIXEL_X): Convert text
7617 area X coordinates to frame coordinates.
7618 (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH): Width of left marginal area.
7619 (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH): Same for right area.
7620 (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Same for text area.
7621
7622 * xterm.c (draw_glyphs): Use text area width as display width.
7623
7624 * xdisp.c (init_display_info): Subtract widths of marginal areas
7625 from last_visible_x.
7626
7627 * alloc.c (mark_object): Mark objects in glyphs only if they are
7628 overlays. Mark only if current_matrix != 0. Activate the code.
7629
7630 * window.c (Fset_window_margins): Set margins.
7631 (Fwindow_margins): Return margin area widths.
7632 (syms_of_window): Add defsubr's.
7633
7634 * window.h (struct window): left_margin_width, right_margin_width.
7635
7636 * xfns.c (x_set_trunc_area_width): Set truncation pixel width
7637 and cols.
7638
7639 * frame.h (FRAME_TRUNC_COLS): Number of columns occupied by
7640 truncation/overlay arrow area.
7641 (struct frame): trunc_area_pixel_width, and _cols.
7642
7643 * window.c (Fsplit_window): Use it.
7644
7645 * window.c (Fsplit_window): Set cursor vpos to -1 after
7646 splitting.
7647 (Fsplit_window): SUbtract/add FRAME_TRUNC_WIDTH for horizontally
7648 split windows.
7649
7650 * dispnew.c (set_window_cursor_after_update): Accept out
7651 of bounds cursor positions.
7652
7653 * xdisp.c (redisplay_internal): Check that after cursor motion
7654 within line, PT is on same line.
7655
7656 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Don't subtract
7657 FRAME_TRUNC_WIDTH.
7658
7659 * xterm.h (struct x_output): trunc_area_extra.
7660 (CHAR_TO_PIXEL_WIDTH): Add in trunc_area_extra.
7661 (PIXEL_TO_CHAR_WIDTH): Subtract it.
7662 * widget.c (set_frame_size): Set it.
7663 (EmacsFrameSetCharSize): Ditto.
7664 * xfns.c (x_figure_window_size): Ditto.
7665 * xterm.c (x_set_window_size): Ditto.
7666
7667 * dispnew.c (check_matrix_invariants): First try to check window
7668 ends (in #if 0).
7669
7670 * xdisp.c (try_window_reusing_current_matrix): Try window
7671 redisplay with different window start.
7672
76731997-11-01 Gerd Moellmann <gerd@acm.org>
7674
7675 * window.c (make_window): Set window_end_pos/vpos.
7676 (Fsplit_window): Zero last_cursor, window_end_valid.
7677 (Fset_window_buffer): Set window_end_vpos, zero last_cursor.
7678
7679 * dispnew.c (check_matrix_invariants): Check window_end_pos/vpos.
7680
76811997-10-31 Gerd Moellmann <gerd@acm.org>
7682
7683 * window.c (make_window): Initialize last_cursor.
7684 (replace_window): Ditto.
7685
76861997-10-29 Gerd Moellmann <gerd@acm.org>
7687
7688 * window.h: New member last_cursor.
7689 * dispnew.c (direct_output_for_insert): Set it.
7690 (direct_output_forward_char): Ditto.
7691 * xdisp.c (redisplay_internal): Ditto.
7692
76931997-10-28 Gerd Moellmann <gerd@acm.org>
7694
7695 * xdisp.c (redisplay_internal): Optimization 1 change partially
7696 reverted. Check this again later.
7697 (skip_via_matrix): Remove redundent test for
7698 MATRIX_ROW_DISPLAYS_TEXT_P.
7699
77001997-10-27 Gerd Moellmann <gerd@acm.org>
7701
7702 * dispnew.c (update_window_line): Call
7703 after_update_window_line_hook only for interesting constellations.
7704 (free_glyph_matrix): Fix memory leak.
7705
7706 * window.h: Include blocker WINDOW_H_INCLUDED, include
7707 dispextern.h.
7708 (struct window): phys_cursor_glyph as struct glyph. * window.c
7709 (make_window): Initialize it.
7710 (replace_window): Ditto.
7711 * dispnew.c (free_window_matrices): Remove freeing of
7712 phys_cursor_glyph.
7713 (check_matrix_invariants): Renamed from check_current_matrix_...
7714 * xterm.c: All references to phys_cursor_glyph changed.
7715
7716 * dispextern.h (DISPEXTERN_H_INCLUDED: New include blocker.
7717
7718 * xfaces.c: Comment update.
7719
7720 * window.h (struct window): Make phys_cursor_glyph a struct glyph
7721 pointer. Remove phys_cursor_ascent, descent, etc.
7722 * dispnew.c (free_window_matrices): Free it.
7723 * window.c (make_window): Allocate it.
7724 (replace_window): Ditto.
7725 * xterm.c (x_draw_phys_cursor_glyph): Draw it.
7726 (x_display_and_set_cursor): Fill it.
7727 (x_phys_cursor_in_rect_p): Use it.
7728 (x_draw_hollow_cursor): Ditto.
7729 (x_draw_bar_cursor): Ditto.
7730 (x_erase_phys_cursor): Ditto.
7731
7732 * xdisp.c (skip_in_display_line_to): Use SET_INFO_FROM_CURSOR.
7733
7734 * xterm.c (XTget_display_info): Handle 3D facess.
7735 (draw_glyphs): Ditto.
7736
7737 * xdisp.c (Fdump_redisplay_state): Change interactive spec to "p".
7738
7739 * xfaces.c (Fset_face_attribute_internal): New face attribute
7740 shadow-thickness.
7741 (copy_face): Handle shadow_thickness.
7742 (face_eql): Ditto.
7743 (merge_faces): Ditto.
7744 (compute_base_face): Ditto.
7745
7746 * dispextern.h (struct display_cursor): New member start_of_3d_run_p.
7747 (struct display_info): Ditto.
7748 (SET_INFO_FROM_CURSOR): Transfer it to display_info.
7749 * xdisp.c (compute_cursor_face): Set it.
7750 (advance_display_cursor): Clear it.
7751
7752 * xdisp.c (init_string_cursor): Initialize face_id to -1.
7753 (init_string_cursor): Init face_id to zero.
7754
7755 * dispextern.h (struct face): New member shadow_thickness.
7756
7757 * xdisp.c (compute_cursor_face): Set limit for text property
7758 search to 100.
7759
7760 * dispnew.c (update_window_line): Try to resynch with current line
7761 to prevent mode line flickering.
7762
77631997-10-26 Gerd Moellmann <gerd@acm.org>
7764
7765 * dispnew.c (set_window_cursor_after_update): React again
7766 on cursor_in_echo_area >= 0.
7767
7768 * xdisp.c (echo_area_display): Clear desired matrix before
7769 displaying into it.
7770 (display_menu_bar): Clear glyph row instead of hoping it is not
7771 enabled. This is safer.
7772
7773 * dispnew.c (check_current_matrix_invariants): Check only
7774 visible rows.
7775
7776 * xdisp.c (try_window_id): Handle window end setting in case of
7777 display to end of window, but only non-text lines displayed.
7778
7779 * dispnew.c (check_current_matrix_invariants): Check nrows for zero.
7780 (check_current_matrix_invariants): Check used counts.
7781
7782 * Revisiob v114.
7783
7784 * dispnew.c (scrolling): Use hash codes from rows.
7785
7786 * xdisp.c (Fdump_redisplay_state): Dump current matrix.
7787
7788 * dispnew.c (scrolling_window): Invalidate conflicting runs.
7789
77901997-10-25 Gerd Moellmann <gerd@acm.org>
7791
7792 * dispextern.h (struct glyph_matrix): Flag no_scrolling_p.
7793 * dispnew.c (update_window): Use it.
7794 (clear_glyph_matrix): Clear it.
7795 * xdisp.c (try_window_id): Set it.
7796
7797 * dispextern.h (struct glyph_row): New flag ends_at_zv_p.
7798
7799 * xdisp.c (redisplay_internal): Increment glyph positions differently.
7800
7801 * dispextern.h: More comments etc.
7802
78031997-10-24 Gerd Moellmann <gerd@acm.org>
7804
7805 * dispnew.c (set_window_cursor_after_update): Set cursor
7806 for cursor_in_echo_area == 0 to (0, 0).
7807
7808 * dispextern.h (struct glyph_row): New flags continuation_line_p
7809 and displays_text_p.
7810 (MATRIX_ROW_DISPLAYS_TEXT_P): Use displays_text_p.
7811 * xdisp.c (display_line): Set them.
7812 (try_window_id): Move to start of continuation line to find out
7813 continuation_line_width.
7814 (first_unchanged_current_row): Don't retract row if continued,
7815 truncated etc.
7816
7817 * xterm.c: Map X coordinates.
7818
78191997-10-23 Gerd Moellmann <gerd@acm.org>
7820
7821 * dispnew.c (buffer_posn_from_coords): Translate X for right to
7822 left text.
7823
7824 * xdisp.c (display_line): Set right_to_left_p after clearing the row.
7825
7826 * xterm.c (XTclear_end_of_line): Respect right_to_left_p.
7827
7828 * xdisp.c (try_window_id): clear desired matrix if not successul.
7829
7830 * xdisp.c (try_window_id): Call update_window_begin_hook/end_hook.
7831
7832 * dispnew.c (update_window_begin_hook, update_winodw_end_hook):
7833 Set this to functions to be called before/after window updates.
7834 (direct_output_for_insert): Call them.
7835 (update_window): Ditto.
7836 (update_frame): Call update_begin/ update_end for windows.
7837
7838 * xterm.c (XTupdate_window_begin): Called before window updates.
7839 (XTupdate_end): Called after window updates.
7840 (x_initialize): Set hooks to above.
7841
7842 * xdisp.c (init_display_info): Initialize c and len of
7843 display_info.
7844
7845 * xterm.c (x_get_char_font_and_encoding): Bug fix. Don't load
7846 fonts more than once.
7847
78481997-10-22 Gerd Moellmann <gerd@acm.org>
7849
7850 * xdisp.c (display_line): Handle most common case of current_x <
7851 last_visible_x separately.
7852
7853 * dispextern.h (display_element_type): DISP_ELLIPSIS removed.
7854
7855 * dispnew.c (update_window_line): Compare pixel widths of glyphs
7856 so that face extending space doesn't compare equal to normal space
7857 with same face.
7858
7859 * xdisp.c (display_line): Make sure we have a position for
7860 a line end in an otherwise blank line if face is extended.
7861
7862 * dispnew.c (direct_output_for_insert): Increment row end position.
7863
7864 * window.c (Fpos_visible_in_window_p): Use old meaning of
7865 window_end_pos.
7866
7867 * xdisp.c (init_display_cursor_from_glyph_pos): New.
7868
7869 * dispextern.h (MATRIX_ROW_FIRST_POS): Use row start.
7870
7871 * dispnew.c (increment_glyph_row_buffer_positions): Adjust
7872 start and end positions in rows.
7873 (increment_glyph_row_buffer_positions): Stop adjusting at
7874 glyphs with positions <= 0.
7875
7876 * dispextern.h (struct glyph_pos): Structure desribing a text
7877 position including position in overlay.
7878 (struct glyph_row): Use it for start and end positions.
7879 (struct display_cursor): Use it.
7880 * xdisp.c: Use it.
7881 (display_line): Set row start and end positions.
7882
7883 * dispnew.c (copy_row_except_pointers): Use bcopy and struct
7884 assignment.
7885
78861997-10-21 Gerd Moellmann <gerd@acm.org>
7887
7888 * dispnew.c (update_window): Add scrolling_window again. It's
7889 necessary for scroll_step != 0.
7890
7891 * xdisp.c (redisplay_window): Use vmotion for scroll_step
7892 scrolling.
7893
7894 * xdisp.c (last_unchanged_current_row): Use window_end_vpos.
7895
7896 * xterm.c (XTupdate_end): Flush only for messages.
7897
7898 * xdisp.c (try_window_id): Assert last_unchanged_row >=
7899 first_unchanged_row.
7900
7901 * xterm.c (XTupdate_end): Flush if miniwindow.
7902
7903 * dispnew.c (matrix_row_last_pos): New function.
7904 * dispextern.h (MATRIX_ROW_LAST_POS): Call it.
7905 Large comment moved to xdisp.c.
7906
7907 * xdisp.c (redisplay_window): Bug fix: PT set to value > Z.
7908 (skip_via_matrix): Check window_end_valid instead of
7909 display_completed.
7910
7911 * dispnew.c (scroll_glyph_matrix_range): Bug fix.
7912 (update_window): scrolling_window commented out. It has negative
7913 effect most of the time.
7914
7915 * xdisp.c (try_window_id): Correct parameters to
7916 scroll_glyph_matrix_range.
7917
7918 * xterm.c (XTupdate_end): XFlush commented out.
7919
7920 * window.h: Comments for window_end_pos/vpos.
7921
7922 * xdisp.c (skip_to): assert current_buffer is the buffer
7923 of the window in which we are skipping.
7924
7925 * dispnew.c (update_window_line): Optimized clear_end_of_line.
7926
7927 * xterm.c (draw_glyphs): Bug fix. Return window relative X
7928 reached.
7929
79301997-10-20 Gerd Moellmann <gerd@acm.org>
7931
7932 * dispextern.h (MATRIX_ROW_LAST_POS): Go back one glyph if this is
7933 a face extending glyph.
7934
7935 * xdisp.c (try_window_id): Check if point will appear.
7936 (set_cursor_from_row): Set cursor position from a glyph row.
7937
7938 * dispnew.c (update_window_line): Write entire line if hash
7939 codes of lines differ.
7940
7941 * dispextern.h (MATRIX_ROW_EXTENDS_FACE_P): Value is non-zero
7942 if glyph row has an infinite width glyph at its end.
7943
7944 * xdisp.c (last_unchanged_current_row): Respect partially visible
7945 lines when looking for the last row displaying text.
7946 (try_window_id): Handle partially visible lines better.
7947
79481997-10-19 Gerd Moellmann <gerd@acm.org>
7949
7950 * dispnew.c (update_window): Remove unused variable.
7951 (update_window_line): Simplified.
7952
7953 * xterm.c (x_get_char_font_and_encoding): Handle most common
7954 case at the beginning.
7955
7956 * xdisp.c (advance_display_cursor): Dispatch on method and
7957 order if statements by expected call frequency. Fixed unclosed
7958 comment.
7959
7960 * xdisp.c (try_window_id): New implementation.
7961
7962 * dispnew.c (increment_glyph_row_buffer_positions): Capture
7963 rows displaying a line end, only.
7964
79651997-10-18 Gerd Moellmann <gerd@acm.org>
7966
7967 * window.c (Fpos_visible_in_window_p): Remove use of window_end_vpos.
7968
79691997-10-14 Gerd Moellmann <gerd@acm.org>
7970
7971 * xdisp.c (display_line): Mark empty lines not corresponding to
7972 text with position -1.
7973
7974 * xterm.c (x_erase_phys_cursor): Don't bother to erase cursor if
7975 not within window matrix bounds.
7976
7977 * dispextern.h (struct display_cursor): New member REGION_SHOWING_P.
7978 (struct display_info): NGLYPHS_TO_IGNORE removed.
7979 * xdisp.c: References to NGLYPHS_TO_IGNORE removed.
7980 * term.c: Ditto.
7981 * xterm.c: Ditto.
7982
7983 * xdisp.c (init_display_cursor): Set it.
7984 (display_line): Use it to set W->REGION_SHOWING.
7985
7986 * xdisp.c (skip_via_matrix): Check for overlay arrow.
7987
7988 * region-cache.h: functino prototypes with PROTO.
7989
7990 * dispnew.c (buffer_posn_from_coords): Use -1 as skip position.
7991
7992 * xdisp.c (skip_via_matrix): Check for rows that don't contain
7993 a position.
7994
7995 * xterm.c (XTmouse_position): Calculate LAST_MOUSE_GLYPH
7996 rectangle based on minimum character bounds.
7997
7998 * keyboard.c (make_lispy_event): mouse clicks; don't do frame
7999 glyph position calculations.
8000 (make_lispy_movement): Use buffer_posn_from_coords and window
8001 relative coordinates.
8002
8003 * xterm.c (construct_mouse_click): Remove #if 0 case.
8004
8005 * dispextern.h (MATRIX_ROW_BOTTOM_Y): Return bottom pixel y of
8006 given row.
8007
8008 * xdisp.c (skip_via_matrix): Skip using current matrix if up to
8009 date.
8010 (skip_to): Use it.
8011 (redisplay_window): Remove code skipping using current matrix.
8012
80131997-10-13 Gerd Moellmann <gerd@acm.org>
8014
8015 * xdisp.c (redisplay_window): Use available current matrix to
8016 skip faster when only point is moved withing the window.
8017
8018 * intervals.c: Include stdio.h.
8019 (find_interval): Trace to stderr to catch some nasty error
8020 that did not yet occur again with tracing.
8021 (set_point): Ditto.
8022
8023 * dispnew.c (shift_glyph_matrix): Experimental code for handling
8024 cursor positioning on partially visible lines.
8025 (set_window_cursor_after_update): Ditto.
8026
8027 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): bug fix.
8028
8029 * window.h (struct window): start_y removed.
8030
8031 * window.c (make_window): start_y removed.
8032 (replace_window): Ditto.
8033
8034 * xdisp.c (last_max_ascent, last_max_descent): Ascent and
8035 descent values of the last line processed by skip_to.
8036 (redisplay_window): Use them.
8037 (skip_to): Set them.
8038
8039 * dispextern.h (struct display_cursor): New member METHOD.
8040
8041 * xdisp.c: Use function member METHOD.
8042
8043 * xdisp.c (set_next_stop_pos): Determine next position at which to
8044 check for face properties, invisible text properties, and overlays.
8045 (compute_cursor_face): Use it.
8046 (get_overlays_for_cursor): Ditto.
8047 (reseat_cursor): Ditto.
8048 (next_display_element): Ditto.
8049
8050Sun Aug 24 08:50:52 1997 Gerd Moellmann <gerd@acm.org>
8051
8052 * termhooks.h: Some hooks with prototypes.
8053
8054 * term.c: Some hooks with function prototypes.
8055
8056 * xdisp.c (reseat_cursor): Additional argument force_p. Avoid
8057 computing face if possible.
8058
8059 * xdisp.c (next_display_element): Use face from glyph from display
8060 table only if != 0.
8061
8062 * emacs.c: FreeBSD headers for profiling removed.
8063
8064 * dispnew.c (direct_output_for_insert): Don't use PT-1 for
8065 display cursor, use DEC_POS instread.
8066
8067 * xfaces.c (load_font): Use x_load_font to load fonts so that
8068 all fonts are in the font table.
8069 (unload_font): Don't XFreeFont.
8070
8071 * dispnew.c (row_equal_p): Compare ascent, descent and visible
8072 row height.
8073
8074 * xterm.c (draw_glyphs): Use 8-bit functions if possible.
8075 (x_erase_phys_cursor): Clear only visible part of row.
8076 (x_draw_bar_cursor): Set clipping.
8077 (x_draw_hollow_cursor): Ditto.
8078 (x_display_and_set_cursor): Remove clipping.
8079 (expose_window_tree): Take trunc border into account.
8080 (x_phys_cursor_in_rect_p): Test if phys_cursor intersects a rect.
8081 (expose_window): Use it.
8082
8083 * xdisp.c (display_string): Catch case that we are called with
8084 current_x already beyond max_x.
8085 (global): Fix usage of FRAME_WINDOW_P <-> FRAME_WINDOW_REDISPLAY_P.
8086 (init_display_info): Subtract vertical border glyph from
8087 last_visible_x.
8088
8089 * scroll.c (scrolling_window_1): Removed.
8090
8091 * dispnew.c (adjust_frame_glyphs): Split into two functions,
8092 based on redisplay method used.
8093 (adjust_frame_glyphs_for_frame_redisplay): Part for frame
8094 based redisplay.
8095 (adjust_frame_glyphs_for_window_redisplay): Part for purely
8096 window based redisplay.
8097
8098 * frame.h (FRAME_WINDOW_REDISPLAY_P): Changed to not depend
8099 on data structures.
8100
8101 * dispnew.c (adjust_glyph_matrix): Additional parameter W.
8102 Handle own storage for purely window based redisplay.
8103 (allocate_matrices_for_frame_redisplay): Formerly part of
8104 allocate_matrices.
8105 (allocate_matrices_for_window_redisplay): Ditto.
8106
8107 * dispextern.h (struct glyph_matrix): window_top_y,
8108 window_height.
8109
8110 * dispnew.c (allocate_matrices_for_window_redisplay): Detect
8111 and optimize some common cases of window changes.
8112
8113 * emacs.c (main): Remove own profiling code because 0.95 now
8114 has it in.
8115
8116Fri Aug 22 18:46:43 1997 Gerd Moellmann <gerd@acm.org>
8117
8118 * xterm.c (XTupdate_end): Draw horizontal border at right
8119 position.
8120 (expose_window): Draw vertical border.
8121 (XTclear_end_of_line): Accept width <= 0 and height <= 0 but
8122 don't do anything.
8123
8124 * xdisp.c (redisplay_internal): Set update_mode_line if paused
8125 for non full width windows only if not window redisplay.
8126
8127 * dispnew.c (update_window_tree): Or paused_p return of called
8128 functions.
8129
8130 * xterm.c (x_display_and_set_cursor): Return if hpos/vpos outside
8131 of window.
8132
8133 * window.c (Fset_window_configuration): adjust_glyphs being
8134 called twice.
8135 (Fset_window_configuration): Set frame garbaged if not all
8136 leaf windows reused.
8137
81381997-08-21 Gerd Moellmann <gerd@acm.org>
8139
8140 * dispnew.c (clear_glyph_matrix): Additional argument specifiying
8141 that rows should really be cleared. Used for current matrices.
8142
8143 * dispnew.c (scrolling_window): Bug fix.
8144 (line_dance_hook): Formerly line_dance_fn, take only one
8145 parameter.
8146
8147 * dispextern.h (struct run): Remove current_vpos.
8148
8149 * xterm.c (do_line_dance): Only one parameter.
8150
8151 * xdisp.c (display_line): set continued_p.
8152
8153 * dispextern.h (struct glyph_row): New flag continued_p.
8154 Fix truncated_on_left_p and truncated_on_right_p to be bits.
8155 (struct glyph_row):
8156
8157Thu Aug 21 14:37:34 1997 Gerd Moellmann <gerd@acm.org>
8158
8159 * xdisp.c (skip_vertically_backward): Avoid negative vpos values
8160 when calling skip_to for continued lines.
8161
8162 * dispnew.c (change_frame_size_1): Set frame garbaged.
8163
8164 * xterm.c (expose_window): Check enabled_p of rows.
8165
8166 * xdisp.c (redisplay_internal): Compare line heights before and
8167 now for redisplay optimization 2 (hit).
8168 (display_line): Set this_line_pixel_height.
8169
8170 * xterm.c (x_draw_row_borders): Use FRAME_MODE_LINE_HEIGHT height
8171 value.
8172 (x_clip_to_row): Use MATRIX_ROW_VISIBLE_HEIGHT. Simplified.
8173 (do_line_dance): Simplified and pixel corrected.
8174
8175 * dispnew.c (scrolling_window): Simplified.
8176
8177 * xterm.c (x_draw_3d_border): Inset rectangle by line width.
8178
8179 * dispnew.c (update_window): Add FRAME_MODE_LINE_BORDER_WIDTH
8180 to mode line row->x.
8181
8182Wed Aug 20 11:23:28 1997 Gerd Moellmann <gerd@acm.org>
8183
8184 * xterm.c (x_get_char_font_and_encoding): Don't let fontset
8185 override font of face.
8186 (draw_glyphs): Correct return value.
8187 (XTclear_end_of_line): Compare differently with output cursor
8188 position.
8189 (x_draw_hollow_cursor): 2 parameters, window and row.
8190
8191 * dispnew.c (update_window_line): If rows have different height
8192 or y, write entire line.
8193
8194 * xdisp.c (compute_line_metrics): reset max_ascent and max_descent
8195 of info struct.
8196
8197 * xfaces.c (Fset_face_attribute_internal): Don't call
8198 frame_update_line_height.
8199 (merge_faces): Don't use default font if new font has different
8200 size.
8201
8202Tue Aug 19 14:38:05 1997 Gerd Moellmann <gerd@acm.org>
8203
8204 * xterm.c (x_display_and_set_cursor): Use FONT_WIDTH if width
8205 unknown. Some fonts have min_width zero.
8206 (draw_glyphs): Don't draw underlines to the end of the display
8207 line if face is merely extended to that point.
8208 (draw_glyphs): Don't assume background is filled if
8209 just_foreground_p but extending to end of line.
8210
8211 * xterm.c (XTclear_end_of_line): Clip only to display_height - 1
8212 for partially visible last lines.
8213 (x_clip_to_row): Ditto.
8214 (x_clip_to_row): Clip to display_height-1 if y + line_height >
8215 display_height since line_height is really a line distance.
8216 (x_display_and_set_cursor): If cursor on padding glyph, use
8217 min_bounds pixel width.
8218
8219Mon Aug 18 09:39:18 1997 Gerd Moellmann <gerd@acm.org>
8220
8221 * xterm.c (x_clip_to_row): Height value was 1 too large.
8222 (XTclear_end_of_line): Clip to display area.
8223
8224 * xfns.c (x_figure_window_sizes): Add trunc border width
8225 to frame pixel width.
8226
8227 * xdisp.c (next_display_element): Don't display overlay strings
8228 within invisible text.
8229 (skip_vertically_backward): Skip display lines.
8230
8231Sat Aug 16 13:13:32 1997 Gerd Moellmann <gerd@acm.org>
8232
8233 * xdisp.c (x_consider_frame_titie): Don't pad with blanks.
8234
8235 * xdisp.c (next_display_element): Next invisible
8236 text check position computed differently.
8237
8238 * dispextern.h (struct display_cursor): last_invisible_text_pos
8239 and display_ellipsis_for_invisible_p removed.
8240
8241 * xdisp.c (next_display_element): Set last_invisible_text_pos
8242 to the last position at which invisible text was found. Don't
8243 decrement cursor.pos for newlines and cr with ellipsis. Set
8244 dpvec for `...' due to invisible text directly.
8245 (redisplay_internal): Don't assert that cursor is at PT after
8246 skip_to. It may be in invisible text.
8247
8248 * keyboard.c (make_lispy_event): For mouse clicks, use
8249 x_y_to_hpos_vpos.
8250
8251 * xdisp.c (next_display_element): Call get_overlays_for_cursor when
8252 next_overlay_pos is reached. Use limit cursor.pos + 100 when
8253 checking for invisible text.
8254
8255 * xterm.h (WINDOW_COL_PIXEL_X etc.) Removed.
8256
8257 * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Moved to dispnew.c
8258
8259 * xfns.c (x_contour_region): Use pixel coordinates from window
8260 cursor instead of WINDOW_TO_FRAME_H/VPOS.
8261
8262 * dispextern.h (FRAME_TO_WINDOW_HPOS, FRAME_TO_WINDOW_VPOS):
8263 Removed.
8264
8265 * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Removed.
8266
8267 * xterm.c (x_y_to_hpos_vpos): Get hpos/vpos from window relative
8268 pixel coordinates.
8269 (note_mouse_highlight): Use it.
8270
8271 * xdisp.c (echo_area_display): Ignore calls for terminal frames
8272 under a window system.
8273
8274 * dispnew.c (adjust_frame_glyphs): Call redraw_frame if
8275 necessary.
8276 (update_window_line): Add width of face padding glyph to
8277 displayed widths of rows.
8278
8279 * xterm.c (x_display_and_set_cursor): Set clipping after
8280 erasing cursor.
8281
8282 * window.c (Fset_window_configuration): Free only those
8283 window matrices not reused.
8284 (get_leaf_windows): Build vector of leaf windows.
8285 Corrupted archive restored from v77.
8286
8287 * xdisp.c (display_string): stop at >= last_visible_x if truncating
8288 like display_line does.
8289
8290 * xdisp.c (display_mode_line): Don't hscroll mode line.
8291
8292 * xterm.c (draw_glyphs): Wrong run_width computed for horiz. split
8293 windows.
8294 (x_scroll_bar_create): #3039 Clear area below scroll bar to remove
8295 garbage between mode lines when splitting windows horiz.
8296
8297 * dispnew.c (direct_output_for_insert): Bug fix.
8298
8299 * dispextern.h (struct display_cursor): New member string_length.
8300
8301 * xdisp.c (next_display_element): Return padding spaces.
8302 (init_string_cursor): take precision and field_width
8303 (display_string): Use string cursor, skip over invisible text.
8304
8305Thu Aug 14 10:41:41 1997 Gerd Moellmann <gerd@acm.org>
8306
8307 * xterm.c (x_clip_to_row): Clip to partially visible lines.
8308 (x_display_and_set_cursor): Call it.
8309 (draw_glyphs): Call it
8310 (draw_bitmap): Call it.
8311
8312 * dispnew.c (adjust_frame_glyphs): Optimize frame garbaging.
8313 (allocate_leaf_matrix): Return flags.
8314 (row_equal_p): Compare enabled_p.
8315
8316 * xterm.c (x_erase_phys_cursor): Set phys_cursor_on_p to 0
8317 for type == -1.
8318
8319 * xterm.c (x_display_and_set_cursor): Bar cursor 1 pixel taller.
8320 (draw_glyphs): Clip height one pixel taller.
8321
8322 * dispnew.c (direct_output_for_insert): Give up for hscrolled
8323 mini window.
8324
8325 * xdisp.c (display_line): don't scroll mini prompt.
8326
8327 * xdisp.c (echo_area_display): Call update_single_window if
8328 possible.
8329
8330 * dispnew.c (update_window_line): Call scrolling_window.
8331 (scrolling_window): work on enabled desired lines only.
8332 (update_single_window): Update a single window like update_frame
8333 does for all windows.
8334 (update_window, update_window_tree): Additional argument
8335 no_scrolling_p.
8336 (update_frame): Pass no_scrolling_p to update_window_tree.
8337 (update_window): Don't call scrolling_window if no_scrolling_p.
8338
8339 * xterm.c (x_erase_phys_cursor): Do nothing if type == -1.
8340 Erase under hollow cursor.
8341 (x_display_and_set_cursor): Do nothing if cursor glyph row
8342 not enabled. Draw bar cursor 1 pixel smaller.
8343
8344 * dispnew.c (adjust_frame_glyphs): don't set frame garbaged
8345 since update will follow soon.
8346
8347 * xdisp.c (echo_area_display): Unitialized variable.
8348
8349 * xterm.c (draw_bitmap): previously draw_truncation; draw
8350 overlay arrow bitmap.
8351
8352 * xdisp.c (display_line): for truncated lines, consider everything
8353 up to the final \n as part of the line for cursor positioning.
8354
8355 * xterm.c (draw_truncation): take FRAME_X_TRUNC_WIDTH into account.
8356 (x_after_update_window_line): clear trunc marks.
8357
8358 * xterm.h (FRAME_X_TRUNC_WIDTH).
8359
8360 * frame.h (FRAME_TRUNC_WIDTH): width of area at the left margin
8361 of a window reserved for truncation mark.
8362
8363 * dispextern.h: Take FRAME_TRUNC_WIDTH into account.
8364
8365 * dispnew.c (update_window_line): Call after_update_windwo_line-
8366 hook.
8367
8368 * xdisp.c (display_line): Set overlay_arrow_p in row.
8369
8370 * dispextern.h (struct glyph_row): New flag overlay_arrow_p.
8371
8372 * xterm.c (x_after_update_window_line): Draw truncation marks.
8373
8374 * xdisp.c (display_line): Insert truncation for lines with
8375 current_x > 0.
8376
8377 * xterm.c (x_draw_row_borders): Convert y to frame coords.
8378 Correct y by 1.
8379 (x_display_cursor): Use default font width if width not
8380 known.
8381
8382 * xdisp.c (echo_area_display): set row->y.
8383
8384 * dispnew.c (set_window_cursor_after_update): Don't assume
8385 all rows are enabled.
8386
8387 * xdisp.c (skip_in_display_line_to): Test cursor.position instead
8388 of cursor.pos.
8389 (skip_in_display_line_to): Check cursor.position after call to
8390 next_display_element.
8391
8392 * dispextern.h (CURSOR_AT_P): Test if cursor has reached
8393 buffer position.
8394
8395 * xdisp.c (display_line): Set row->y here.
8396 (skip_in_display_line_to): Test for to_pos after all glyphs
8397 have been added to hpos so that hpos is at the end of all
8398 glyphs for to_pos.
8399 (start_display): Remove assertion.
8400
8401 * dispnew.c (direct_output_forward_char): Bug fix, = instead of
8402 ==.
8403 (update_window): Don't set row->y here.
8404
8405 * xdisp.c (next_display_element): Don't translate control chars
8406 from display table entries.
8407
8408 * dispnew.c (direct_output_for_insert): Set cursor before
8409 update end to prevent cursor flickering. Revert changes to
8410 setting cursor.endpos.
8411
8412Wed Aug 13 10:46:12 1997 Gerd Moellmann <gerd@acm.org>
8413
8414 * dispnew.c (direct_output_for_insert): Don't set cursor.endpos
8415 to PT because this prevents multi-byte characters from being
8416 recognized.
8417
8418 * xdisp.c (skip_to, display_line): Advance cursor at end of
8419 truncated line.
8420
8421 * xterm.c (x_draw_3d_borders): Use CapRound. Struct rect
8422 replaced by XRectangle.
8423
8424 * dispnew.c (scrolling_window): New method.
8425
8426 * xterm.c (do_line_dance): New implementation, new method.
8427
8428 * xdisp.c (draw_glyphs): Draw truncation bitmaps. Clip to
8429 visible part of line.
8430
8431 * dispnew.c (update_window_line): Fill inverse video lines
8432 with infinite width space.
8433 (update_window): Handle completely empty matrices.
8434 (set_window_cursor_after_update): Bug fix.
8435
8436 * xterm.c (draw_glyphs): Stop drawing at right window end.
8437
8438 * dispnew.c (update_window_line): Don't ignore spaces, don't
8439 fill with spaces.
8440
8441 * xdisp.c (compute_line_metrics): Stop adding glyph widths with
8442 the first glyph having width 0.
8443
8444 * xterm.c (draw_glyphs): Let a glyph pixel with of 0 denote
8445 a glyph that extends to the end of the line.
8446
8447 * xdisp.c (display_line): Insert one padding glyph
8448
8449 * xdisp.c (skip_in_display_line_to): Don't subtract shift left
8450 amount from info.current_x.
8451 (display_line): Ditto.
8452
8453 * dispnew.c (direct_output_for_insert): Correct use of cursor.x.
8454 (change_frame_size_1): Correct cursor.x if frame gets too small.
8455 (update_window_line): Start at row->x.
8456
8457 * xdisp.c (redisplay_internal): Correct cursor.x (everwhere
8458 in xdisp.c).
8459
8460 * xterm.c (set_output_cursor): Use window relative X/Y.
8461 (global): Use window relative output cursor x/y.
8462 (draw_glyphs): Remove y param. Pass window relative x/y.
8463
8464 * dispnew.c (update_window): Start rows at start_y.
8465 (update_window): Don't try scrolling because it wouldn't work
8466 with variable height lines, anyway.
8467
8468 * dispextern.h (struct glyph_row): Remove shift_left_by,
8469 add x.
8470
8471 * window.h: (struct window): New member start_y.
8472
8473 * window.c (replace_window): Initialize start_y.
8474 (make_window): Ditto.
8475
8476Tue Aug 12 14:53:04 1997 Gerd Moellmann <gerd@acm.org>
8477
8478 * xterm.c (draw_glyphs): Clip rows that would paint over
8479 the mode line.
8480
8481 * dispnew.c (update_window): Take mode line border into
8482 account.
8483
8484 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Number of pixels
8485 of border around mode line.
8486
8487 * xterm.c (x_draw_row_borders): Bug fix.
8488 (x_erase_phys_cursor): Set pyhs_cursor.x/y before calling
8489 drawing functions.
8490
8491 * xterm.c (x_draw_row_border): Experimental; draw 3d borders
8492 around modeline instead of inverting it.
8493
8494 * xterm.c (glyph_to_pixel_coords): Use current matrix.
8495
8496 * dispnew.c (buffer_posn_from_coords): Use SKIP_TO. Now takes
8497 window relative pixel coordinates as arguments.
8498
8499 * keyboard.c (make_lispy_event): Use BUFFER_POSN_FROM_COORDS
8500 with window relative pixel coordinates. Use GLYPH_TO_PIXEL_-
8501 COORDS mit new arguments.
8502
8503Mon Aug 11 12:32:34 1997 Gerd Moellmann <gerd@acm.org>
8504
8505 * xdisp.c (start_display): Use SKIP_TO instead of SKIP_IN-
8506 DISPLAY_LINE.
8507
8508 * keyboard.c (make_lispy_event): WINDOW_FROM_COORDINATES with
8509 pixel coords.
8510 (make_lispy_movement): Same.
8511
8512 * xterm.c (note_mouse_highlight): Use WINDOW_FROM_COORDINATES
8513 with new parameter meaning.
8514
8515 * window.c (Fcoordinates_in_window_p): Convert Lisp params
8516 from canon units to pixels.
8517 (coordinates_in_window): Pixel based.
8518 (Fcoordinates_in_window_p): Convert result pixel values back
8519 to canonical units.
8520
8521 * window.h: phys_cursor_ascent + descent instead of height.
8522
8523 * xterm.c (XTget_char_info): Use per char metrics for multi-byte
8524 chars with charset width 1.
8525
8526 * dispnew.c (direct_output_for_insert): Set updated_row.
8527
8528Sat Aug 9 12:11:44 1997 Gerd Moellmann <gerd@acm.org>
8529
8530 * dispextern.h (struct glyph): Padding flag removed.
8531
8532Tue Aug 5 09:59:08 1997 Gerd Moellmann <gerd@acm.org>
8533
8534 * sysdep.c (reset_sys_modes): cursor_to with 4 params.
8535
8536 * keyboard.c (interrupt_signal): Cursor_to with 4 params.
8537
8538 * dispnew.c (update_window_line): Use pixels.
8539
8540 * xdisp.c (compute_line_metrics): Correct pixel_width by
8541 shift_left_by.
8542
8543 * dispextern.h (struct glyph_row): FIRST_SHIFTED_LEFT_GLYPH
8544 removed. Remove references to it everywhere. Reverse_p in
8545 glyph_row -> right_to_left_p. Change references to it.
8546
8547Mon Aug 4 18:09:27 1997 Gerd Moellmann <gerd@acm.org>
8548
8549 * dispnew.c (direct_output_for_insert): Use INSERT_GLYPHS.
8550
8551 * xterm.c (XTinsert_glyphs): Implement it.
8552
8553 * term.c (insert_glyphs): UPDATING_FRAME may be NULL in case
8554 of a call from DIRECT_OUTPUT_FOR_INSERT.
8555
8556 * window.h (struct cursor_pos): Keeps both matrix positions
8557 and pixel positions.
8558 (struct window): Use it.
8559
8560 * dispnew.c (direct_output_for_insert): New version.
8561
8562 * xdisp.c (redisplay_internal): Don't do anything if it has
8563 already be done directly.
8564
8565 * keyboard.c (command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
8566 for any character.
8567
8568Thu Jul 31 15:39:10 1997 Gerd Moellmann <gerd@acm.org>
8569
8570 * xdisp.c (echo_area_display): Use new DISPLAY_STRING.
8571
8572Wed Jul 30 12:18:03 1997 Gerd Moellmann <gerd@acm.org>
8573
8574 * dispextern.h (struct glyph_row): MAX_ASCENT, MAX_DESCENT.
8575 (struct glyph): ASCENT, DESCENT.
8576 (MATRIX_ROW_PIXEL_HEIGHT): Pixel height of row.
8577 (GLYPH_PIXEL_HEIGHT): Pixel height of glyph.
8578
8579 * xterm.c (XTget_display_info): Correct tab computation.
8580
8581 * term.c (get_display_info): Correct tab computation.
8582
8583 * dispextern.h (struct display_cursor): WHAT_FOUND, SOURCE_OBJECT.
8584 Renamed from CHAR_CURSOR.
8585
8586Tue Jul 29 12:52:40 1997 Gerd Moellmann <gerd@acm.org>
8587
8588 * xdisp.c (display_text_line): Mostly pixel oriented.
8589
8590 * dispextern.h (struct glyph): BOX_WIDTH -> PIXEL_WIDTH.
8591
8592 * term.c (append_intermediate_glyph): Generate padding glyphs.
8593
8594 * xdisp.c (display_text_line): More into final direction.
8595
8596 * xterm.c (XTget_char_info): Use WHAT field of CHAR_INFO.
8597 (XTget_char_info): Use tabs as multiples of spaces.
8598
8599 * term.c (get_char_info): Use WHAT field of CHAR_INFO.
8600 Use tabs as multiples of spaces.
8601
8602 * dispextern.h (struct char_info ): WHAT field.
8603
8604 * term.c (encode_terminal_code): Don't use GLYPH_CHAR, use
8605 FAST_GLYPH_CHAR instead because GLYPH_CHAR won't remove faces.
8606
8607Mon Jul 28 14:23:06 1997 Gerd Moellmann <gerd@acm.org>
8608
8609 * dispnew.c (init_char_info): Correct TAB_WIDTH to a reasonable
8610 value.
8611 (init_char_info): Initialize with glyph row.
8612
8613 * term.c (get_char_info): Check WANT_ELLIPSIS_P.
8614
8615 * xterm.c (XTget_char_info): Check WANT_ELLIPSIS_P.
8616
8617 * dispextern.h (struct char_info ): GLYPH_ROW for intermediate
8618 glyphs.
8619
8620 * dispnew.c (init_char_info): Init GLYPH_ROW to NULL. CHAR_CURSOR
8621 moved to xdisp.c.
8622
8623 * xdisp.c (display_text_line): Use CHAR_CURSOR.
8624
8625 * xterm.c (x_append_intermediate_glyph): Intermediate glyph
8626 generation.
8627 (XTget_char_info): Ditto.
8628
8629 * term.c (get_char_info): Intermediate glyph generation.
8630 (append_intermediate_glyph): Ditto.
8631
8632Sun Jul 27 18:57:24 1997 Gerd Moellmann <gerd@acm.org>
8633
8634 * dispnew.c (compute_char_cursor_face): Compute the face for a
8635 CHAR_CURSOR.
8636 (init_char_cursor): Initialize a CHAR_CURSOR.
8637 (get_char_and_advance): Get next character to display.
8638
8639 * dispextern.h (struct char_cursor): Cursor for iterating over
8640 display text of CURRENT_BUFFER.
8641
8642Sat Jul 26 13:33:03 1997 Gerd Moellmann <gerd@acm.org>
8643
8644 * term.c (get_char_info): Set MAX_PIXEL_WIDTH in CHAR_INFO.
8645
8646 * dispextern.h (struct char_info ): Use LISP_CHAR_TABLE for DP.
8647 New member MAX_PIXEL_HEIGHT.
8648
8649 * xterm.c (x_per_char_metric): Get per character metrics.
8650 (XTget_char_info): More cases covered.
8651
8652 * term.c (get_char_and_info): Get next character and character
8653 display information.
8654 (get_char_info): Get character display information.
8655
8656 * dispextern.h: Character display information.
8657
8658 * xterm.c (x_get_char_font_and_encoding): Get font and
8659 encode character.
8660 (XTget_char_info): Get display information about a character.
8661
8662Wed Jul 23 16:50:18 1997 Gerd Moellmann <gerd@acm.org>
8663
8664 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Height is
8665 zero if window is mini-window.
8666
8667 * xdisp.c: Include xterm.h or w32term.h for FRAME_LINE_HEIGHT.
8668 (try_window): DISPLAY_TEXT_LINE as long as Y < DISPLAY_HEIGHT.
8669
8670 * dispnew.c (assign_row): Assign row pixel height.
8671 (clear_glyph_row): Clear pixel height.
8672 (update_window): Use PIXEL_HEIGHT.
8673
8674 * xdisp.c (display_string): Set row pixel height temporarily.
8675 (display_text_line): Ditto.
8676
8677 * dispextern.h (GLYPH_PIXEL_WIDTH):
8678 (GLYPH_PIXEL_HEIGHT): Get glyph pixel dimension.
8679
8680 * frame.h (FRAME_DEFAULT_PIXEL_LINE_HEIGHT): Get height of
8681 line in default font.
8682 (FRAME_DEFAULT_GLYPH_PIXEL_WIDTH): Get width of character
8683 in default font.
8684 (FRAME_MODE_LINE_PIXEL_HEIGHT): Get height of mode line.
8685
8686 * xterm.h (FRAME_MODE_LINE_HEIGHT): Return height of mode line
8687 in pixels.
8688
8689 * dispnew.c (allocate_leaf_matrix): Use window pixel macros.
8690
8691 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH):
8692 (WINDOW_DISPLAY_PIXEL_HEIGHT):
8693 (WINDOW_DISPLAY_MODE_LINE_HEIGHT):
8694 (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
8695 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X):
8696 (WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X):
8697 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y):
8698 (WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y): Macros to get various
8699 pixel values related to windows.
8700
8701Mon Jul 21 12:22:02 1997 Gerd Moellmann <gerd@acm.org>
8702
8703 * xterm.c (XTflash): Flash last line of frame.
8704
8705 * dispextern.h (cursor_in_echo_area): Extern declaration.
8706
8707 * xterm.c (dumpglyphs): 8-bit version to test if my Xserver
8708 freezes stem from 16-bit functions.
8709
8710 * xterm.c (x_display_and_set_cursor): Don't display hollow
8711 cursor in mini windows.
8712
8713 * window.c (replace_window): Initialize PHYS_CURSOR_TYPE.
8714 (make_window): Ditto.
8715
8716 * xterm.c (x_erase_phys_cursor): Erase cursor image.
8717 (x_display_and_set_cursor): Merged version of X_DISPLAY_BOX_CURSOR
8718 and X_DISPLAY_BAR_CURSOR.
8719 (x_display_cursor): Use it.
8720 (x_update_window_cursor): Use it.
8721
8722 * xdisp.c (display_text_line): Set cursor for window even if not
8723 selected.
8724
8725 * xterm.c (x_display_bar_cursor): Use HPOS and VPOS instead
8726 of X and Y to denote matrix positions.
8727 (x_display_cursor): Ditto.
8728
8729 * dispnew.c (scrolling_window): Scrolling for windows.
8730
8731Wed Jul 16 13:37:51 1997 Gerd Moellmann <gerd@acm.org>
8732
8733 * dispnew.c (build_frame_matrix): Work on windows with update
8734 flag set.
8735 (build_frame_matrix_from_window_tree): Ditto.
8736 (build_frame_matrix_from_leaf_window): Ditto.
8737
8738 * xdisp.c (echo_area_display): Set MUST_BE_UPDATED_P instead of
8739 building frame matrix.
8740 (redisplay_internal): Set window update flags instead of
8741 building frame matrix.
8742
8743 * minibuf.c (read_minibuf): Set MUST_BE_UPDATED_P instead of
8744 building frame matrix.
8745
8746 * window.c (make_window): Initialize new members.
8747 (replace_window): Ditto.
8748
8749 * xfns.c (Fx_create_frame): Don't set PHYS_CURSOR_X to -1.
8750 I don't believe this is really necessary.
8751
8752 * dispnew.c (build_frame_matrix_from_leaf_window): Determine
8753 border glyph once.
8754
8755Tue Jul 15 13:58:33 1997 Gerd Moellmann <gerd@acm.org>
8756
8757 * window.c (mark_window_cursors_off): Mark all cursors in
8758 window tree off.
8759
8760 * xterm.c (x_display_box_cursor): Window paraemter. Use
8761 window matrix.
8762 (glyph_to_pixel_pos): Convert matrix pos -> pixels.
8763 (pixel_to_glyph_pos): Convert pixel pos -> matrix pos.
8764 (x_update_cursor): Work on windows.
8765 (x_display_bar_cursor): Ditto.
8766 (x_draw_single_glyph): Ditto.
8767
8768 * xterm.h: Prototype for X_DISPLAY_CURSOR.
8769
8770 * xterm.c (XTcursor_to): Void return type. Test for
8771 UPDATED_WINDOW. Call x_display_cursor with window.
8772 (x_display_cursor): Void return type. Window instead of frame
8773 parameter.
8774
8775 * window.h (WINDOW_RIGHTMOST_P, WINDOW_TOPMOST_P): Use functions
8776 below.
8777
8778 * window.c (window_rightmost_p, window_topmost_p): Based on
8779 window tree.
8780
8781 * dispnew.c (adjust_frame_message_buffer): Allocate with
8782 FRAME_MESSAGE_BUF_SIZE.
8783
8784 * window.h: PHYS_CURSOR_.* added.
8785
8786 * frame.h (struct frame): Cursor information removed.
8787
8788 * frame.h (FRAME_SCROLL_BAR_WIDTH): Removed because unused.
8789 (FRAME_WINDOW_WIDTH_ARG): Don't add scroll bar width.
8790
8791 * window.h (WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR.
8792
8793 * window.c (window_internal_width): Scroll bars no longer
8794 part of window.
8795
8796 * xterm.c (XTclear_end_of_line): FRAME_LEFT_SCROLL_BAR_WIDTH
8797 removed.
8798
8799 * xfns.c (x_set_scroll_bar_width): FRAME_LEFT_SCROLL_BAR_WIDTH
8800 removed.
8801
8802 * xdisp.c (echo_area_display): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
8803 (redisplay_internal): Ditto.
8804 (redisplay_window): Ditto.
8805 (redisplay_window): Ditto.
8806 (display_text_line): Ditto.
8807 (display_mode_line): Ditto.
8808
8809 * minibuf.c (read_minibuf): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
8810
8811 * dispnew.c (set_cursor_to): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
8812 (direct_output_for_insert): Ditto.
8813 (direct_output_forward_char): Ditto.
8814 (update_frame_1): Ditto.
8815
8816Mon Jul 14 12:30:03 1997 Gerd Moellmann <gerd@acm.org>
8817
8818 * dispnew.c (updated_window): Set by UPDATE_WINDOW to the window
8819 being updated.
8820 (update_window): Set and clear it.
8821
8822 * dispnew.c (update_window_line, update_window, scrolling_window):
8823 First versions.
8824
8825 * dispnew.c (build_frame_matrix_from_leaf_window): Add vertical
8826 bar for window borders.
8827 (fill_up_glyph_row_area_with_spaces): Fill an area of a row
8828 with spaces.
8829 (fill_up_glyph_row_with_spaces): Call above function.
8830
8831 * xdisp.c (display_text_line): Don't add vertical bar for
8832 window borders.
8833 (display_string): Ditto.
8834
8835 * window.c (make_window): Init CURSOR_VPOS/HPOS.
8836 (replace_window): Ditto.
8837
8838 * xterm.c (XTwrite_glyphs): Use selected window cursor position.
8839
8840 * xfns.c (Fx_contour_region): Use selected window cursor position.
8841 (Fx_uncontour_region): Ditto.
8842 (Fx_select_region): Ditto.
8843
8844 * frame.c (make_frame): Remove CURSOR_X/Y.
8845
8846 * xdisp.c (redisplay_internal): Use window cursor position.
8847
8848 * dispnew.c (update_frame_1): Use cursor position of selected
8849 window.
8850 (change_frame_size_1): Ditto.
8851
8852 * xterm.c (XTupdate_begin): Set CURS_X/Y from selected window.
8853 (XTwrite_glyphs): Use cursor position of selected window.
8854
8855 * xfns.c (x_set_scroll_bar_width): Set cursor pos of selected
8856 window.
8857
8858 * dispnew.c (set_cursor_to): Set window cursor position.
8859 (direct_output_for_insert): Use window cursor position.
8860 (init_display): Don't use frame cursor position.
8861
8862 * window.h: CURSOR_VPOS/HPOS added.
8863
8864 * frame.h (struct frame): CURSOR_X/Y removed.
8865 (FRAME_CURSOR_X): Removed.
8866 (FRAME_CURSOR_Y): Ditto.
8867
8868 * dispnew.c (direct_output_for_insert): LAST_POINT_X removed.
8869 (direct_output_forward_char): Ditto.
8870
8871 * xdisp.c (redisplay_internal): LAST_POINT_X and LAST_POINT_Y
8872 removed.
8873
8874 * window.c (make_window): LAST_POINT_X and LAST_POINT_Y removed.
8875
8876 * window.h: LAST_POINT_X and LAST_POINT_Y removed.
8877
8878Sun Jul 13 14:18:24 1997 Gerd Moellmann <gerd@acm.org>
8879
8880 * xdisp.c: Bug fixes using SET_CURSOR with HPOS 0 instead
8881 of FRAME_LEFT_SCROLL_BAR_WIDTH.
8882
8883 * dispextern.h: Changed function names.
8884
8885 * dispnew.c (scrolling): Don't call SCROLLING_1 if WINDOW_SIZE
8886 < 2.
8887 (clear_window_matrices): Formerly two functions for desired
8888 and current matrix.
8889 (update_frame_1): Call CLEAR_DESIRED_MATRICES.
8890 (update_frame): Return return value from UPDATE_FRAME_1.
8891
8892Sat Jul 12 12:58:48 1997 Gerd Moellmann <gerd@acm.org>
8893
8894 * xdisp.c (try_window): Set WINDOW_END_VPOS with window relative
8895 LAST_TEXT_VPOS.
8896
8897 * frame.c (set_menu_bar_lines): Adjust matrices.
8898
8899 * dispnew.c (set_cursor_to): Set cursor position.
8900
8901 * minibuf.c (read_minibuf): Build frame matrix.
8902
8903 * xdisp.c (this_line_start_hpos): Renamed to
8904 THIS_LINE_START_WINDOW_HPOS to make it clear that this is window
8905 relative.
8906 (this_line_vpos): Renamed to THIS_LINE_WINDOW_VPOS for the same
8907 reason.
8908
8909 * dispnew.c (build_frame_matrix): Don't clear rows of the
8910 menu bar.
8911 (clear_window_records): Clear window rows.
8912 (clear_frame_records): Clear window and frame rows.
8913 (clear_glyph_matrix): Set all rows of a matrix to empty.
8914
8915 * xdisp.c (echo_area_display): Parameter UPDATE_FRAME_P. Update
8916 frame if set.
8917 (message2_nolog): Pass 1 to ECHO_AREA_DISPLAY. UPDATE_FRAME
8918 removed.
8919 (redisplay_internal): Pass 0 to ECHO_AREA_DISPLAY.
8920 (redisplay_internal): Build frame matrix before UPDATE_FRAME.
8921
8922 * dispnew.c (assign_row): Assign one glyph row to another.
8923 (mirrored_make_current): Use it.
8924 (mirror_make_current): Use it.
8925 (update_line): Rely on MIRRORED_MAKE_CURRENT to set flags and
8926 used counters for the current glyph row.
8927
8928
8929Fri Jul 11 13:16:50 1997 Gerd Moellmann <gerd@acm.org>
8930
8931 * lisp.h: Prototype for SCAN_BUFFER.
8932
8933 * xdisp.c (redisplay_windows): Simplified.
8934
8935 * dispnew.c (window_to_frame_vpos): Convert window to frame vpos
8936 with debug checks.
8937 (window_to_frame_hpos): Convert window to frame hpos with checks.
8938 (frame_to_window_vpos): Convert frame to window vpos with checks.
8939 (frame_to_window_hpos): Convert frame to window hpos with checks.
8940
8941 * dispextern.h: PRESERVE_OTHER_COLUMNS removed.
8942
8943 * dispnew.c: PRESERVE_OTHER_COLUMNS removed.
8944
8945 * xdisp.c (redisplay_internal): Another instance of
8946 DISPLAY_TEXT_LINE with window relative VPOS.
8947 (redisplay_internal): Remove PRESERVE_OTHER_COLUMNS.
8948
8949 * dispnew.c (init_desired_glyphs): Do it on window matrices,
8950 only.
8951
8952 * xdisp.c (try_window_id): Use CANCEL_WINDOW_LINE.
8953 (redisplay_internal): Ditto.
8954
8955 * dispnew.c (cancel_window_line): Use window matrix. Changed
8956 name to CANCEL_WINDOW_LINE.
8957
8958 * xdisp.c (try_window_id): Use DISPLAY_TEXT_LINE with window
8959 relative VPOS.
8960
8961 * dispextern.h (WINDOW_TO_FRAME_VPOS): Convert window vpos
8962 to frame vpos.
8963 (WINDOW_TO_FRAME_HPOS): Convert window hpos to frame hpos.
8964 (FRAME_TO_WINDOW_VPOS): Convert frame vpos to window vpos.
8965 (FRAME_TO_WINDOW_HPOS): Convert frame hpos to window hpos.
8966
8967 * xdisp.c (try_window_id): Use ADJUST_WINDOW_CHARSTARTS with
8968 window relative VPOS.
8969 (redisplay_internal): Use ADJUST_WINDOW_CHARSTARTS with window
8970 relative VPOS.
8971
8972 * dispnew.c (adjust_window_charstarts): Use INCREMENT_GLYPH_-
8973 MATRIX_BUFFER_POSITIONS.
8974
8975 * xdisp.c (try_window_id): Use SCROLL_FULL_WIDTH_WINDOW.
8976
8977 * dispextern.h: Prototype for SCROLL_FULL_WIDTH_WINDOW.
8978
8979 * dispnew.c (scroll_frame_lines): Make it work on window
8980 matrix. Change name to scroll_full_width_window.
8981
8982 * xdisp.c (message2_nolog): Don't fwrite NULL message If
8983 NONINTERACTIVE.
8984
8985Mon Jul 7 14:44:38 1997 Gerd Moellmann <gerd@acm.org>
8986
8987 * dispnew.c (init_desired_glyphs): Clear both frame matrix
8988 and window matrices.
8989 (adjust_window_charstarts): Use window matrix.
8990 (cancel_my_columns): Use window matrix.
8991 (direct_output_for_insert): Use window matrix, only.
8992
8993 * xdisp.c (display_glyphs): Extracted code from DISPLAY_STRING.
8994 (display_string): Call display_glyphs.
8995 (display_menu_bar_string): Display a string in a menu bar line.
8996 (display_menu_bar): Use DISPLAY_MENU_BAR_STRING.
8997 (display_text_line): Use window matrix.
8998 (try_window): Use window relative positions.
8999
9000Sun Jul 6 17:02:26 1997 Gerd Moellmann <gerd@acm.org>
9001
9002 * dispnew.c (adjust_frame_glyphs): Allocate window matrices from
9003 (0, 0).
9004 (allocate_leaf_matrix): Add FRAME_MENU_BAR_LINES to the height of
9005 top-most windows.
9006
9007 * window.h (WINDOW_TOPMOST_P): Added.
9008
9009 * xdisp.c (echo_area_display): Use PREPARE_DESIRED_ROW.
9010 (redisplay_window): Ditto.
9011 (display_text_line): Ditto.
9012 (display_menu_bar): Ditto.
9013 (display_mode_line): Ditto.
9014 (display_mode_line): Use window matrix.
9015 (display_string): Use window matrix.
9016 (display_mode_element): Ditto.
9017 (echo_area_display): Don't display if frame has no pools yet.
9018 (echo_area_display): Work with window matrix for mini window.
9019 (redisplay_window): Use window marix for mini window.
9020 (display_text_line): Assume HPOS and VPOS are window relative and
9021 use that for DISPLAY_STRING.
9022
9023 * dispextern.h: Prototype for prepare_desired_row.
9024
9025 * dispnew.c (prepare_desired_row): Replacement for
9026 GET_DISPLAY_LINE.
9027
9028 * dispnew.c (adjust_window_charstarts): Always allocate window
9029 matrices.
9030 (clear_glyph_row): Only reset used counters and flags.
9031
9032Sat Jul 5 14:55:44 1997 Gerd Moellmann <gerd@acm.org>
9033
9034 * dispnew.c (scroll_frame_lines): Don't assume first scolled
9035 line is non-empty.
9036 (realloc_glyph_pool): Don't add 1 to the pool size.
9037 (adjust_glyph_matrix): Don't add 1 to pointers to glyph areas.
9038
9039 * dispnew.c (line_hash_code): Don't use null-glyph end marker.
9040 (line_draw_cost): Ditto.
9041 (update_line): Ditto.
9042 (update_line): Use SPACE_GLYPH.
9043 (count_blanks): Additional parameter LEN.
9044
9045 * xdisp.c (display_text_line): Use SPACE_GLYPH.
9046 (display_text_line): Don't add null-glyph end marker.
9047 (display_string): Use SPACE_GLYPH.
9048 (display_string): Don't use null-glyph end marker.
9049
9050 * term.c (clear_end_of_line): Use SPACE_GLYPH.
9051
9052 * dispnew.c (clear_glyph_row): Don't use null-glyph end markers.
9053 (fill_up_glyph_row_with_spaces): Ditto.
9054 (preserve_other_columns): Add SPACE_GLYPH at then end of desired
9055 rows, instead of null-glyphs.
9056 (direct_output_for_insert): Don't add null-glyph end marker.
9057
9058 * scroll.c (do_direct_scrolling): Change algorithm to construct
9059 vector of lines assigned. Call MIRRORED_LINE_DANCE:
9060 (do_scrolling): Ditto.
9061
9062 * dispnew.c (mirror_line_dance): Mirror line assignments in a
9063 frame matrix in window matrices.
9064 (mirrored_line_dance): Do line assignments during scrolling.
9065 Maybe do corresponding assignments in window matrices.
9066 (check_window_matrix_pointers): Check that window rows and frame
9067 rows agree about glyph pointers.
9068 (check_matrix_pointers): Ditto.
9069 (mirrored_make_current): Make a row of a desired matrix current;
9070 maybe mirror the operation in window matrices.
9071 (mirror_make_current): Make window desired matrix row current when
9072 frame matrix row was made current.
9073
9074Fri Jul 4 13:27:46 1997 Gerd Moellmann <gerd@acm.org>
9075
9076 * dispnew.c (check_matrix_pointer_lossage): Check against
9077 pointer lossage in matrices.
9078 (get_glyph_matrix_row): Removed.
9079
9080 * scroll.c (do_scrolling): Simplified.
9081 (do_direct_scrolling): Simplified.
9082 (scrolling_1): Pass CURRENT_MATRIX instead of FRAME to
9083 DO_.*SCROLLING.
9084
9085
9086 * dispnew.c (ins_del_glyph_rows): Insert/delete rows in a matrix.
9087 (rotate_vector): Removed.
9088 (rotate_pointers): Removed.
9089 (scroll_frame_lines): Simplified.
9090
9091Thu Jul 3 13:54:21 1997 Gerd Moellmann <gerd@acm.org>
9092
9093 * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Removed.
9094
9095 * dispnew.c (increment_glyph_matrix_buffer_positions): Does
9096 what the name says.
9097 (clear_glyph_row): Make a glyph row structure empty.
9098 (make_matrix_row_current): Make a glyph row current.
9099 (make_window_matrix_row_current): Perform analogous row swaps
9100 for window matrices.
9101 (update_line): Call make_matrix_row_current.
9102
9103Wed Jul 2 13:43:35 1997 Gerd Moellmann <gerd@acm.org>
9104
9105 * dispextern.h (SET_MATRIX_ROW_ENABLED_P): Better macro name.
9106 (SET_MATRIX_ROW_INVERSE_P): Better name and HIGHLIGHT_P ->
9107 INVERSE_P.
9108 (MATRIX_ROW_INVERSE_P): Former MATRIX_ROW_HIGHLIGHT_P.
9109 (struct glyph_row): HIGHLIGHT_P -> INVERSE_P
9110
9111 * all files: use above new names.
9112
9113 * dispnew.c (scroll_frame_lines): Simplified. Use
9114 SCROLL_GLYPH_MATRIX.
9115 (make_glyph_row_empty): Mark a glyph row empty.
9116 (increment_glyph_row_buffer_positions): Increment
9117 buffer positions in a glyph row.
9118 (increment_glyph_matrix_buffer_positions): Increment buffer
9119 positions in a range of rows.
9120 (scroll_glyph_matrix): Scroll a glyph matrix.
9121 (swap_glyphs_in_rows): Swap glyphs between rows.
9122 (swap_glyph_pointers): Swap pointers between rows.
9123 (glyph_row_slice_p): Return 1 if one row is a slice of another.
9124 (init_display): Initialize SPACE_GLYPH.
9125 (fill_up_glyph_row_areas_with_spaces): Fill up areas with
9126 spaces.
9127
9128Tue Jul 1 13:49:55 1997 Gerd Moellmann <gerd@acm.org>
9129
9130 * xterm.c (dumprectangle): Use vectors in glyph rows.
9131
9132 * xdisp.c (display_text_line): Use vectors in glyph rows.
9133 (display_string): Ditto.
9134
9135 * scroll.c (do_scrolling): Use vectors in glyph rows.
9136 (do_direct_scrolling): Ditto.
9137
9138 * alloc.c (mark_object): Use vectors in glyph rows.
9139 Mark for all frame types.
9140
9141 * dispnew.c (adjust_glyph_matrix): Use vectors to glyphs in
9142 glyph rows.
9143 (get_glyph_matrix_row): Ditto.
9144 (matrix_row): Ditto.
9145 (rotate_pointers): Ditto.
9146 (scroll_frame_lines): Ditto.
9147 (preserve_other_columns): Ditto.
9148 (cancel_my_columns): Ditto.
9149 (update_line): Ditto.
9150 (direct_output_for_insert): Ditto.
9151
9152 * dispextern.h (struct glyph_row): Use a vector of pointers
9153 instead of individual members. Use a vector of used counters.
9154 (MATRIX_ROW_SWAP_CONTENTS): Use vectors.
9155 (MATRIX_ROW_GLYPH_START): Ditto.
9156 (MATRIX_ROW_GLYPH_END): Ditto.
9157 (MATRIX_ROW_USED): Ditto.
9158 (MATRIX_ROW_SET_USED): Ditto.
9159
9160 * dispnew.c (line_hash_code): Simplified.
9161
9162Mon Jun 30 20:39:38 1997 Gerd Moellmann <gerd@acm.org>
9163
9164 * dispnew.c: Prototype for ROTATE_VECTOR, ROTATE_POINTERS,
9165 CHANGE_FRAME_SIZE_1
9166 (preserve_other_columns): Void return.
9167 (cancel_my_columns): Void return type.
9168 (scrolling): Int return type.
9169 (do_pending_window_change): Void return type.
9170 (change_frame_size): Ditto.
9171 (bitch_at_user): Ditto.
9172 (init_display): Ditto.
9173 (syms_of_display): Ditto.
9174
9175 * dispextern.h: add prototypes for REDRAW_FRAME,
9176 REDRAW_GARBAGED_FRAMES, CANCEL_LINE, CLEAR_FRAME_RECORDS,
9177 INIT_DESIRED_GLYPHS, SCROLL_FRAME_LINES, PRESERVE_OTHER_COLUMNS,
9178 ADJUST_WINDOW_CHARSTARTS, CANCEL_MY_COLUMNS,
9179 DIRECT_OUTPUT_FOR_INSERT, DIRECT_OUTPUT_FORWARD_CHAR,
9180 UPDATE_FRAME, SCROLLING, BUFFER_POSN_FROM_COORDS,
9181 DO_PENDING_WINDOW_CHANGE, CHANGE_FRAME_SIZE, BITCH_AT_USER,
9182 SIT_FOR, INIT_DISPLAY, SYMS_OF_DISPLAY,
9183
9184 * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. Return
9185 void.
9186 (cancel_line): Return void.
9187 (clear_frame_records): Return void.
9188
9189 * dispextern.h (struct glyph): Remove GLYPH, add bit-fields.
9190 (SET_CHAR_GLYPH): Fill a character glyph.
9191 (SET_CHAR_GLYPH_FROM_GLYPH): Set a character glyph from a GLYPH.
9192 (GLYPH_FROM_CHAR_GLYPH): Construct a GLYPH from a character
9193 glyph.
9194 (CHAR_GLYPH_CHAR_CODE): Return character code of a glyph.
9195 (SET_CHAR_GLYPH_CHAR_CODE): Set character code of a glyph.
9196 (CHAR_GLYPH_FACE_ID): Return face id of a glyph.
9197 (SET_CHAR_GLYPH_FACE_ID): Set face id of a glyph.
9198 (CHAR_GLYPH_PADDING_P): Return padding flag of a glyph.
9199 (SET_CHAR_GLYPH_PADDING_P): Set padding flag.
9200 (CHAR_GLYPH_REVERSE_P): Return reversed flag.
9201 (SET_CHAR_GLYPH_REVERSE_P): Set reversed flag.
9202 (MATRIX_ROW_SWAP_CONTENTS): Swap pointers between rows.
9203
9204 * term.c (reassert_line_highlight): Check CHARS_WASTED == 0.
9205
9206 * window.h (struct window): Add comment that no Lisp data may
9207 come below CURRENT_MATRIX.
9208
9209 * alloc.c (mark_object): Change window mark code to stop with
9210 member CURRENT_MATRIX.
9211
9212Sat Jun 28 13:54:55 1997 Gerd Moellmann <gerd@acm.org>
9213
9214 * scroll.c (do_scrolling): Change algorithm to use pointers.
9215 (do_direct_scrolling): Ditto.
9216
9217 * dispnew.c (get_glyph_matrix_row): Use pointers stored in rows.
9218 (new_glyph_pool): Formerly new_FRAME_GLYPH_MATRIX.
9219 (free_glyph_pool): Formerly FREE_FRAME_GLYPH_MATRIX
9220 (realloc_glyph_pool): Formerly REALLOC_FRAME_GLYPH_MATRIX.
9221 Returns 1 if pool changed.
9222 (matrix_row): Additional check for lost pointers to glyph rows.
9223 (compute_matrices): Additional parameter DIM_P set means that no
9224 allocation should take place. Addtional parameter
9225 ANY_WINDOWS_CHANGED_P set if any windows matrix has changed.
9226 (compute_leaf_matrix): Additional parameter CHANGED_P set to 1
9227 when window matrix changes. Additional parameter DIM_ONLY_P set
9228 to 1 to indicate that no allocation should take place.
9229 (adjust_frame_glyphs): Construct new glyph pools and glyph
9230 matrices. Optimize frame redraws.
9231 (free_glyphs): Free pools.
9232 (check_glyph_memory): Check pools not freed.
9233 (rotate_pointers): Rotate pointers in a vector of glyph rows.
9234 (scroll_frame_lines): Change algorithm to use pointers.
9235 (update_line): Ditto.
9236
9237 * dispextern.h (struct glyph_row): Use pointers to areas in a row.
9238 (global): All macro names changed from prefix FRAME_MATRIX to
9239 MATRIX.
9240
9241Fri Jun 27 14:51:15 1997 Gerd Moellmann <gerd@acm.org>
9242
9243 * dispextern.h (struct glyph_pool): Replacement for former
9244 FRAME_GLYPH_MATRIX.
9245 (struct glyph_matrix): No longer contains sizes of allocated
9246 areas.
9247
9248 * xdisp.c (redisplay_internal): Don't redisplay if frame has
9249 no glyph pools.
9250
9251 * frame.c (make_frame): Initialize pools.
9252
9253Thu Jun 26 00:00:55 1997 Gerd Moellmann <gerd@acm.org>
9254
9255 * scroll.c (do_direct_scrolling): Don't assume that the
9256 line moving algorithm has no intermediate steps.
9257 (do_scrolling): Ditto.
9258
9259 * Makefile.in (alloc.o): Add dependency dispextern.h.
9260
9261 * alloc.c: Include dispextern.h for glyph definitions.
9262
9263 * dispnew.c (get_glyph_matrix_row): Return 1 if ROW_INDEX
9264 is legal, return 0 otherwise.
9265
9266 * window.h: Add comment that windows are marked specially.
9267
9268 * alloc.c (mark_object): Mark windows specially.
9269
9270
9271Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org>
9272
9273 * dispextern.h (struct glyph): Add member OBJECT
9274 referencing a Lisp object from which a glyph was drawn.
9275 Member TEXT_POSITION renamed POSITION.
9276 * xterm.c, xdisp.c, dispnew.c: Rename TEXT_POSITION -> POSITION.
9277
9278 * alloc.c: Include dispextern.h
9279 (mark_object): Mark objects referenced from glyphs.
9280
9281 * frame.c (make_frame): initialize DECODE_MODE_SPEC_BUFFER.
9282
9283 * scroll.c (do_direct_scrolling): Remove TEMP_MATRIX.
9284 (do_scrolling): Ditto.
9285
9286 * frame.h (struct frame): TEMP_MATRIX removed.
9287 DECODE_MODE_SPEC_BUFFER added.
9288
9289 * window.h: TEMP_MATRIX removed.
9290
9291 * scroll.c: OPHYS_LINES removed.
9292
9293 * dispnew.c: OPHYS_LINES and OPHYS_LINES_LENGTH removed.
9294 FRAME_PTR -> struct frame *.
9295
9296 * termhooks.h: Prototypes for INSERT_GLYPHS_HOOK,
9297 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
9298
9299 * term.c: Prototypes for INSERT_GLYPHS_HOOK,
9300 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
9301
9302 * xdisp.c (redisplay_internal): Remove call to VERIFY_CHARSTARTS.
9303 (do_verify_charstarts): Removed.
9304
9305 * frame.c (Fmake_terminal_frame): Adjust glyphs.
9306 (Fdelete_frame): Free glyphs.
9307 (make_frame): Initialize matrix fields in frame.
9308
9309 * config.in (PROTO): added.
9310
9311 * emacs.c (shut_down_emacs): check glyph memory.
9312
9313 * window.c (Fdelete_window): Free window matrices.
9314 (Fset_window_configuration): Ditto.
9315 (Fdelete_window): Adjust glyphs.
9316 (Fsplit_window): Ditto.
9317 (change_window_height): Ditto.
9318 (Fset_window_configuration): Ditto.
9319 (make_window): Initialize DESIRED_MATRIX and CURRENT_MATRIX.
9320 (replace_window): Reset DESIRED_MATRIX and CURRENT_MATRIX
9321
9322 * Makefile.in (window.o): Add dependency window.c -> dispextern.h
9323
9324 * window.c: Include dispextern.h
9325
9326 * scroll.c (do_scrolling): Use new glyphs.
9327 (do_direct_scrolling): Ditto.
9328
9329 * xdisp.c: Some function prototypes.
9330 (redisplay_internal): Don't do anything if matrices not yet set.
9331 (redisplay_internal): Use new glyphs.
9332 (try_window_id): Ditto.
9333 (copy_part_of_rope): Ditto.
9334 (display_text_line): Ditto.
9335 (display_menu_bar): Ditto.
9336 (display_mode_line): Ditto.
9337 (display_string): Ditto.
9338
9339 * xterm.c: Prototypes for some local functions.
9340 (dumpglyphs): Use new glyphs.
9341 (XTwrite_glyphs): Ditto.
9342 (dumprectangle): Ditto.
9343 (note_mouse_highlight): Ditto.
9344 (fast_find_position): Ditto.
9345 (show_mouse_face): Ditto.
9346 (x_draw_single_glyph): Ditto.
9347 (x_display_bar_cursor): Ditto.
9348 (x_display_box_cursor): Ditto.
9349 (x_new_font): Adjust glyphs when font change.
9350
9351 * term.c (clear_end_of_line): Use new glyphs.
9352 (write_glyphs): Ditto.
9353 (insert_glyphs): Ditto.
9354
9355 * Makefile.in (term.o): term.c depends on dispextern.h
9356
9357 * term.c: Include dispextern.h
9358
9359 * dispnew.c (direct_output_forward_char): Old glyph functions
9360 removed, new inserted.
9361 (line_hash_code): Use new glyphs.
9362 (line_draw_cost): Ditto
9363 (cancel_line): Ditto
9364 (clear_frame_records): Ditto.
9365 (init_desired_glyphs): Ditto.
9366 (get_display_line): Ditto
9367 (scroll_frame_lines): Ditto.
9368 (preserve_other_columns): Ditto.
9369 (adjust_window_charstarts): Ditto.
9370 (cancel_my_columns): Ditto.
9371 (direct_output_for_insert): Ditto.
9372 (update_frame): Ditto.
9373 (quit_error_check): Made empty.
9374 (scrolling): Use new glyphs.
9375 (count_blanks): Ditto.
9376 (count_match): Ditto.
9377 (update_line): Ditto.
9378 (init_display): Adjust glyphs initially.
9379 (change_frame_size_1): Adjust glyphs.
9380
9381 * dispextern.h: Old glyphs removed, new added.
9382
9383 * xfaces.c (min_char_bounds): Get smallest char in loaded fonts.
9384
9385 * xterm.h: Prototype for min_char_bounds.
9386
9387 * window.h (struct window): Remove old glyphs, add new.
9388
9389 * frame.h (struct frame): Remove old glyphs, add new.
9390
93911999-07-20 Dave Love <fx@gnu.org>
9392
9393 * buffer.c (syms_of_buffer): Make
9394 default-enable-multibyte-characters a user variable.
9395
93961999-07-14 Richard Stallman <rms@gnu.org>
9397
9398 * Version 20.4 released.
9399
94001999-07-14 Richard Stallman <rms@gnu.org>
9401
9402 * filelock.c (lock_file): Do nothing if purifying.
9403
94041999-07-10 Richard Stallman <rms@gnu.org>
9405
9406 * xterm.c (x_display_bar_cursor): Use the cursor-color
9407 to display the bar, not the cursor foreground pixel.
9408
94091999-07-09 Andrew Innes <andrewi@gnu.org>
9410
9411 * w32console.c (w32_use_full_screen_buffer): New variable.
9412 (syms_of_ntterm): Register it.
9413 (initialize_w32_display): Set initial frame size accordingly,
9414 respecting the LINES and COLUMNS environment variables if set.
9415
9416 * w32inevt.c (w32_console_read_socket): Use it.
9417
94181999-07-07 Kenichi Handa <handa@etl.go.jp>
9419
9420 * callproc.c (Fcall_process): Decide coding system for decoding
9421 after we set to the target buffer. If the output goes to a
9422 unibyte buffer, suppress character code conversion.
9423
9424 * fileio.c (Finsert_file_contents): If reading into a unibyte
9425 buffer, suppress character code conversion.
9426
9427 * process.c (create_process): If the output goes to a unibyte
9428 buffer, suppress character code conversion.p
9429
94301999-07-07 Andreas Schwab <schwab@gnu.org>
9431
9432 * xdisp.c (line-number-display-limit): Doc fix.
9433
94341999-07-05 Richard Stallman <rms@gnu.org>
9435
9436 * callproc.c (Fcall_process): Don't use initializer on coding_systems.
9437 (Fcall_process_region): Likewise.
9438
94391999-07-01 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
9440
9441 * callproc.c (init_callproc): Set exec_directory if
9442 installation_directory is non-nil, without a test of exec_path.
9443
94441999-07-01 Andrew Innes <andrewi@gnu.org>
9445
9446 * w32xfns.c (drain_message_queue): New function.
9447
9448 * w32term.h (drain_message_queue): Add extern.
9449
9450 * w32proc.c (sys_select): Call MsgWaitForMultipleObjects instead
9451 of WaitForMultipleObjects when user input is allowed, so we can
9452 handle incoming window messages. Call drain_message_queue when
9453 there are messages waiting; this ensures that windows created
9454 indirectly from the lisp thread get processed properly, and don't
9455 hang other applications by failing to respond to broadcasts.
9456
94571999-07-01 Andreas Schwab <schwab@gnu.org>
9458
9459 * callint.c (Fcall_interactively): Ignore first element of
9460 event-symbol-elements property.
9461
94621999-07-01 Richard Stallman <rms@gnu.org>
9463
9464 * fileio.c (Fread_file_name): Check type of DEFAULT_FILENAME.
9465
94661999-07-01 Kenichi Handa <handa@etl.go.jp>
9467
9468 * minibuf.c (read_minibuf): Set the multibyteness of the
9469 minibuffer before inserting `initial' string.
9470
94711999-06-30 Richard Stallman <rms@gnu.org>
9472
9473 * xfns.c (x_make_gc): Turn off GCStipple when setting up cursor_gc.
9474
94751999-06-29 Richard M. Stallman <rms@gnu.org>
9476
9477 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook):
9478 Move the handling of MALLOC_CHECK_ envvar here.
9479 (main): Moved from here.
9480
94811999-06-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
9482
9483 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook): New
9484 function, assigned to the global __malloc_initialize_hook pointer.
9485 (main): Move malloc_set_state call into malloc_initialize_hook
9486 so that it happens as early as possible.
9487
94881999-06-27 Richard M. Stallman <rms@gnu.org>
9489
9490 * keyboard.c (read_key_sequence): Properly reinitialize
9491 fkey_map after translating thru Vkey_translation_map.
9492 After translating thru Vfunction_key_map, don't reset
9493 keytrans-start to 0.
9494
94951999-06-24 Geoff Voelker <voelker@cs.washington.edu>
9496
9497 * w32.c (get_emacs_configuration): Use GetVersionEx to
9498 handle NT5.0 correctly. Include build number in configuration.
9499 w32heap.c (osinfo_cache): New variable.
9500 (cache_system_info): Initialize osinfo_cache.
9501 w32heap.h (osinfo_cache): Declare.
9502
95031999-06-24 Richard M. Stallman <rms@gnu.org>
9504
9505 * casefiddle.c (casify_object): Use make_multibyte_string
9506 if we casify a multibyte string.
9507
95081999-06-22 Ken'ichi Handa <handa@gnu.org>
9509
9510 * fileio.c: (Finsert_file_contents): In the case of REPLACE, call
9511 del_range_byte instead of del_range_1, set `inserted' to the
9512 number of characters actually inserted.
9513
95141999-06-17 Dave Love <fx@gnu.org>
9515
9516 * coding.c (decode_coding_sjis_big5): Avoid compiler warning.
9517
95181999-06-18 Paul Eggert <eggert@twinsun.com>
9519
9520 * filelock.c (BOOT_TIME_FILE): New macro.
9521 (get_boot_time): Use it instead of hardwiring the file name.
9522 Check BOOT_TIME_FILE only after inspecting the kernel directly.
9523
95241999-06-17 Dave Love <fx@gnu.org>
9525
9526 * xdisp.c (invalid_eol_type): Make it unsigned.
9527
95281999-06-17 Karl Heuer <kwzh@gnu.org>
9529
9530 * process.c (send_process): Delete unsafe/redundant assignment.
9531
95321999-06-17 Jason Rumney <jasonr@gnu.org>
9533
9534 * w32term.c (dumprectangle): Handle wide characters properly.
9535
95361999-06-16 Andrew Innes <andrewi@gnu.org>
9537
9538 * s/ms-w32.h (strerror): Override the default implementation of
9539 strerror, so we can map winsock error codes.
9540
9541 * w32.c (sys_strerror): New function.
9542
9543 * w32fns.c (w32_to_x_weight): Return "demibold" instead of "semibold".
9544
95451999-06-15 Ken'ichi Handa <handa@gnu.org>
9546
9547 * buffer.c (syms_of_buffer): Don't make
9548 enable-multibyte-characters customizable.
9549
95501999-06-15 Richard M. Stallman <rms@gnu.org>
9551
9552 * editfns.c (Fuser_full_name): Doc fix.
9553
95541999-06-14 Tak Ota <ota@atc.sel.sony.com>
9555
9556 * w32bdf.c: (clear_cached_bitmap_slots): Remove.
9557 (get_bitmap_with_cache): Check if CreateBitmap failed.
9558 Adjust cache size dynamically so cache is never larger than the
9559 system limit of GDI resources.
9560 Do cache clearing inline. Move global variables to local scope.
9561
9562
95631999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
9564
9565 * unexsgi.c (unexec): Dump the .rodata section from memory
9566 under IRIX6.5 in order to be able to unexec with gcc.
9567
95681999-06-11 Greg Hudson <ghudson@MIT.EDU>
9569
9570 * indent.c (compute_motion): Fix boundary case.
9571
95721999-06-11 Jason Rumney <jasonr@altavista.net>
9573
9574 * w32term.c (cancel_mouse_face): New function. See equiv
9575 changes to xterm.c on 1996-10-31.
9576 (x_set_window_size): Use cancel_mouse_face.
9577 (w32_read_socket): Use cancel_mouse_face.
9578 Update frame position when size is restored.
9579
95801999-06-04 Richard M. Stallman <rms@gnu.org>
9581
9582 * lread.c (Vuser_init_file): New variable.
9583 (syms_of_lread): Set up Lisp variable.
9584 (Fload): Store the file name there, if var was t before.
9585
95861999-06-04 Paul Eggert <eggert@twinsun.com>
9587
9588 * filelock.c (get_boot_time): Don't look at /proc/uptime; it
9589 doesn't work if the system date is changed, or if the system
9590 is suspended. Look at the last-modified time of
9591 /var/run/random-seed instead.
9592
95931999-06-03 Ken'ichi Handa <handa@gnu.org>
9594
9595 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
9596 japanese-jisx0208-1978 correctly.
9597
95981999-06-03 Andrew Innes <andrewi@gnu.org>
9599
9600 * unexw32.c (get_section_info) [_ALPHA_]: Force as much bss data
9601 as possible to be dumped, for safety.
9602
96031999-06-02 Ken'ichi Handa <handa@gnu.org>
9604
9605 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
9606 latin-jisx0201 correctly.
9607
96081999-05-26 Ken'ichi Handa <handa@gnu.org>
9609
9610 * charset.h (Vcharset_table): Comment fixed.
9611
96121999-05-24 Richard Stallman <rms@gnu.org>
9613
9614 * coding.c (syms_of_coding): Doc fix.
9615
9616 * buffer.c (syms_of_buffer): Doc fix.
9617
9618 * filelock.c (lock_if_free): After deleting a stale lock,
9619 try again to lock the file.
9620
96211999-05-22 Andrew Innes <andrewi@gnu.org>
9622
9623 * w32inevt.c (maybe_generate_resize_event): Detect changes in the
9624 console window size.
9625 (w32_console_read_socket): Call maybe_generate_resize_event
9626 whenever input events are received, since we don't get told when
9627 the window size changes (as opposed to the buffer size, which we
9628 don't care about).
9629
9630 * w32console.c (clear_frame): Remember that the window width might
9631 be smaller than the screen buffer width.
9632 (write_glyphs): Remove redundant variable attrs. Use
9633 FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute.
9634
96351999-05-20 Andrew Innes <andrewi@gnu.org>
9636
9637 * w32term.c (w32_read_socket): Reset the grabbed flag when a frame gains or
9638 loses focus.
9639
9640 * w32fns.c (w32_wnd_proc): Ensure mouse capture is released if
9641 frame loses focus, and that mouse button state is reset. Ditto
9642 when the menu bar is activated.
9643
96441999-05-18 Richard Stallman <rms@gnu.org>
9645
9646 * abbrev.c (Fdefine_abbrev): Doc fix.
9647
96481999-05-13 Paul Eggert <eggert@twinsun.com>
9649
9650 * filelock.c: Fix performance bug on hosts with large
9651 /var/adm/wtmp files with no boot records.
9652
9653 (boot_time_initialized): New var.
9654 (init_filelock): Initialize it.
9655 (get_boot_time): Use it, instead of nonzero boot_time,
9656 to test whether boot_time is initialized.
9657 Don't invoke utmp routines when dumping.
9658
9659 (get_boot_time): First, try to get the boot time from the
9660 current utmp file, as this can be much faster. Don't try to
9661 get the boot time from utmp and/or wtmp more than once.
9662
9663 (get_boot_time_1): When passed null pointer, don't invoke utmpname.
9664 New arg LATEST. All uses changed.
9665
96661999-05-15 Andrew Innes <andrewi@gnu.org>
9667
9668 * w32term.c (dumpglyphs): Use correct colours for drawing
9669 rectangles in place of missing fonts, and make them the right
9670 size.
9671
96721999-05-14 Dave Love <fx@gnu.org>
9673
9674 * syntax.c (Fparse_partial_sexp): Correct test for element 8 to be
9675 non-nil.
9676
96771999-05-11 Andrew Innes <andrewi@gnu.org>
9678
9679 * w32fns.c (x_to_w32_charset): Reinstall VIETNAMESE_CHARSET
9680 definition.
9681 (w32_wnd_proc): Reinstall debugging output.
9682 (w32_wnd_proc): Reinstall SetForegroundWindow change.
9683 (syms_of_w32fns): Reinstall new initializer for
9684 Vw32_phantom_key_code.
9685
9686 * w32fns.c (x_to_w32_charset): Do partial matching of charset
9687 names for most non-European charsets, to cope with wildcards or
9688 missing spec dates.
9689 (Fw32_send_sys_command): Post WM_SYSCOMMAND rather than sending it
9690 to avoid deadlock when activating the menu bar.
9691
96921999-05-10 Ken'ichi Handa <handa@gnu.org>
9693
9694 * search.c (boyer_moore): Get charset base value of `untranslated'
9695 by masking by ~CHAR_FIELD3_MASK (instead of ~0xff).
9696
96971999-05-10 Andreas Schwab <schwab@gnu.org>
9698
9699 * fileio.c (Fread_file_name): Correct handling of dollars in file
9700 names. Protect dollars in strings put on the file-name-history.
9701 Substitute homedir by `~' also in default_filename.
9702
9703 * xdisp.c (try_window_id): Fix computation of tab_offset when
9704 backing up over a character that is splitted across lines.
9705
97061999-05-08 Kenichi HANDA <handa@etl.go.jp>
9707
9708 * coding.c (code_convert_region): If eol format is inconsistent,
9709 change coding->symbol to the sibling coding system of Unix like
9710 eol format.
9711
97121999-05-09 Richard M. Stallman <rms@gnu.org>
9713
9714 * s/irix5-2.h (NO_WTMP_FILE): Define it.
9715
9716 * filelock.c (get_boot_time): Handle NO_WTMP_FILE.
9717
97181999-05-05 Andrew Innes <andrewi@gnu.org>
9719
9720 * w32fns.c (w32_strict_painting): New variable.
9721 (w32_wnd_proc): Use it to select repaint rules.
9722 (syms_of_w32fns): Defvar it.
9723
97241999-05-04 Andrew Innes <andrewi@gnu.org>
9725
9726 * w32fns.c (x_to_w32_charset): Fix typo: want to map all Japanese
9727 charsets to the standard Windows charset for Japanese.
9728
97291999-05-04 Ken'ichi Handa <handa@gnu.org>
9730
9731 * xterm.c (x_load_font): Fix typo (`>' -> `=').
9732
9733 * ccl.h (struct ccl_program): New member stack_idx.
9734
9735 * ccl.c (ccl_prog_stack_struct): Declare it as static.
9736 (ccl_driver): Setup stack_idx and ccl_prog correctly. Update them
9737 before returing.
9738 (setup_ccl_program): Initialize ccl->stack_idx to 0.
9739
97401999-05-03 Jason Rumney <jasonr@altavista.net>
9741
9742 * w32term.c (dumpglyphs): Always fill background for italic fonts.
9743
97441999-05-03 Eli Zaretskii <eliz@is.elta.co.il>
9745
9746 * dired.c (make_time): Make argument type be time_t.
9747
97481999-05-02 Eli Zaretskii <eliz@is.elta.co.il>
9749
9750 * msdos.c (unibyte_display_via_language_environment): Add extern.
9751
97521999-05-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
9753
9754 * xdisp.c (display_text_line): Convert unibyte char to multibyte
9755 if unibyte_display_via_language_environment is set.
9756 (unibyte_display_via_language_environment):
9757 Variable moved from xfns.c and elsewhere.
9758 (syms_of_xfns): Set up Lisp var.
9759
9760 * xfns.c (unibyte_display_via_language_environment):
9761 Variable moved to xdisp.c.
9762 (syms_of_xfns): Don't set up Lisp var here.
9763
9764 * msdos.c (unibyte_display_via_language_environment):
9765 Variable moved to xdisp.c.
9766 (syms_of_msdos): Don't set up Lisp var here.
9767
9768 * w32fns.c (unibyte_display_via_language_environment):
9769 Variable moved to xdisp.c.
9770 (syms_of_w32fns): Don't set up Lisp var here.
9771
97721999-05-02 Andrew Innes <andrewi@gnu.org>
9773
9774 * s/ms-w32.h (HAVE_FSYNC): New macro.
9775 (fsync): Map to _commit.
9776 (ftruncate): Map to _chsize.
9777
9778 * w32term.c (dumpglyphs): On Windows NT, do output in Unicode even
9779 for ASCII, if enabled, to avoid memory allocation overhead for
9780 implicit Unicode conversion. Also, recognize that ASCII and
9781 Latin-1 have a trivial conversion to Unicode, so x_2byte_buffer
9782 already contains the Unicode characters in that case.
9783 (construct_drag_n_drop): Remove old code that was
9784 trashing the drop location.
9785
9786 * w32select.c (Fw32_set_clipboard_data): Undo last change to add
9787 nlines to encoding_buffer_size (real bug was in a ccl program in
9788 lisp/international/coding.el).
9789
9790 * w32reg.c (w32_get_string_resource): Check for name in current
9791 user area, and if not found look in the local machine area.
9792
9793 * w32fns.c (w32_list_bdf_fonts): Initialize n_fonts.
9794 (Fw32_shell_execute): New function; used to support browse-url.
9795 (syms_of_w32fns): Register it.
9796 (w32_load_system_font): Force max width to be average
9797 char width for fixed-pitch fonts, to avoid unnecessary redisplay
9798 slowdown.
9799 (x_to_w32_charset): Define VIETNAMESE_CHARSET if not
9800 already defined.
9801 (syms_of_w32fns): Set Vw32_phantom_key_code to 255.
9802
9803 * unexw32.c (get_section_info): Dump back the entire EMDATA
9804 section if we can put Emacs' initialized data in a separate
9805 section, otherwise use the my_begdata/my_edata method.
9806
9807 * makefile.nt ($(BLD)\w32term.obj): Add dependency on w32heap.h.
9808
9809 * coding.c (decode_eol): Set produced/consumed values to zero if
9810 src_bytes is <= 0 on entry.
9811
98121999-05-02 Jason Rumney <jasonr@altavista.net>
9813
9814 * w32term.c (w32_write_glyphs, w32_clear_end_of_line,
9815 w32_clear_frame, clear_cursor, x_display_bar_cursor,
9816 x_display_box_cursor, x_set_window_size): Use phys_cursor_on
9817 field in frame.
9818 (do_line_dance): Updated WRT xterm.c. Use macros where possible.
9819 (dumprectangle): Take into account the width of a left-side
9820 scroll bar.
9821
9822 * w32proc.c (sys_kill): Attach to current foreground thread
9823 when grabbing focus; necessary on NT 5.0.
9824
9825 * w32fns.c (w32_wnd_proc) [WM_PAINT]: Use rectangle from
9826 GetUpdateRect rather than BeginPaint.
9827 (w32_wnd_proc): Attach to current foreground thread
9828 when grabbing focus; necessary on NT 5.0.
9829 (w32_wnd_proc) [W32_DEBUG_DISPLAY]: Add output for
9830 debugging display messages.
9831 (w32_to_x_charset): Put wildcard last in unknown charsets to avoid
9832 false matching.
9833
98341999-05-02 Kenichi HANDA <handa@etl.go.jp>
9835
9836 * coding.c (setup_raw_text_coding_system): Call
9837 setup_coding_system to initialize the fields of struct
9838 coding_system correctly.
9839
98401999-04-26 Kenichi HANDA <handa@etl.go.jp>
9841
9842 * xterm.c (x_list_fonts): Fix previous change.
9843
98441999-04-26 Richard Stallman <rms@gnu.org>
9845
9846 * config.in (HAVE_LIBXP): Add #undef.
9847 * Makefile.in (LIB_MOTIF_EXTRA): Check HAVE_LIBXP.
9848
98491999-04-12 Ken'ichi Handa <handa@gnu.org>
9850
9851 * xterm.c (x_list_fonts): Trap X errors so that Emacs doesn't die
9852 by them.
9853
98541999-04-12 Karl Heuer <kwzh@gnu.org>
9855
9856 * s/freebsd.h (BSD_SYSTEM): Define for FreeBSD 4 as with FreeBSD 3.
9857
98581999-04-11 Ken'ichi Handa <handa@gnu.org>
9859
9860 * fontset.c (Fset_fontset_font): Fix previous change.
9861
98621999-04-09 Ken'ichi Handa <handa@gnu.org>
9863
9864 * fontset.c (Fquery_fontset): Check for fontset aliases here.
9865 (Fnew_fontset, Fset_fontset_font): Don't check for them here.
9866
98671999-04-08 Richard Stallman <rms@gnu.org>
9868
9869 * process.c (Faccept_process_output): Check validity of PROCESS.
9870
98711999-04-08 Eli Zaretskii <eliz@gnu.org>
9872
9873 * msdos.c (jp_kbd_translate_table): Fix the other \ key.
9874
98751999-04-07 Richard Stallman <rms@gnu.org>
9876
9877 * xfns.c (x_set_font): Fix error message.
9878
9879 * fontset.c (Fquery_fontset): Don't check for fontset aliases here.
9880 (Fnew_fontset, Fset_fontset_font): Check for them here.
9881 (Ffontset_info, Fnew_fontset, Fset_fontset_font):
9882 Fix error message syntax.
9883
9884 * buffer.c (Fmake_indirect_buffer): Copy multibyte status
9885 from the base buffer.
9886 (Fset_buffer_multibyte): Copy new multibyte status
9887 into the buffer's indirect buffers.
9888
98891999-04-07 Ken'ichi Handa <handa@gnu.org>
9890
9891 * fns.c (base64_encode_1): Don't add unnecessary newline at the
9892 tail.
9893
98941999-04-06 Richard Stallman <rms@gnu.org>
9895
9896 * dired.c (Ffile_attributes): Doc fix.
9897
9898 * keymap.c (Faccessible_keymaps): Really initialize i_byte.
9899 Convert 0200 to meta only in a unibyte string.
9900 (Fkey_description): Likewise.
9901
9902 * eval.c (do_autoload): Preserve match data.
9903
99041999-04-06 Kenichi HANDA <handa@etl.go.jp>
9905
9906 * w32fns.c (x_to_w32_font): Provide sufficient buffer to
9907 encode_coding to avoid carryover.
9908
9909 * coding.c: Add comments for decode_coding and encode_coding.
9910
9911 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
9912 a composite character by skipping its leading code.
9913 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
9914 correctly.
9915
9916 * coding.c: Add comments for decode_coding and encode_coding.
9917
9918 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
9919 a composite character by skipping its leading code.
9920 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
9921 correctly.
9922
99231999-04-06 Eli Zaretskii <eliz@gnu.org>
9924
9925 * msdos.c (dos_rawgetc): Don't zero out c if private translation
9926 table was used.
9927 (jp_kbd_translate_table): Support C-\.
9928 (it_kbd_translate_table): Map `>' correctly.
9929 (it_keyboard): Add `>'.
9930
99311999-04-06 Richard Stallman <rms@gnu.org>
9932
9933 * intervals.c (graft_intervals_into_buffer): Turn off
9934 inhibit_modification_hooks around calling Fset_text_properties.
9935
99361999-04-05 Kenichi HANDA <handa@etl.go.jp>
9937
9938 * xterm.c (dumpglyphs): Be sure to fill the whole background of
9939 glyphs.
9940
99411999-04-05 Eli Zaretskii <eliz@gnu.org>
9942
9943 * msdos.c (jp_kbd_translate_table): Fix last change.
9944
99451999-04-04 Eli Zaretskii <eliz@gnu.org>
9946
9947 * msdos.c (struct kbd_translate): New struct, for key translation
9948 tables private to certain national keyboard layouts.
9949 (struct dos_keyboard_map): Add a pointer to a private translation
9950 table.
9951 (jp_kbd_translate_table): Private table for the Japanese
9952 keyboard.
9953 (jp_keyboard): Japanese keyboard layout.
9954 (it_kbd_translate_table): Private table for the Italian keyboard.
9955 (it_keyboard): Use it_kbd_translate_table.
9956 (keyboard_layout_list): Add the Japanese keyboard.
9957 (dos_rawgetc): Use the keyboard-private translation table, if
9958 available.
9959 (abort) [__DJGPP_MINOR__ >= 2]: Raise SIGABRT.
9960
99611999-04-02 Kenichi HANDA <handa@etl.go.jp>
9962
9963 * xdisp.c (redisplay_window): When we call compute_motion with
9964 HPOS got from w->last_point_x, call it with DID_MOTION 1.
9965 (display_text_line): Stop the loop for processing overlay strings
9966 when we reach the right edge of the window.
9967
99681999-03-31 Richard M. Stallman <rms@caffeine.ai.mit.edu>
9969
9970 * doc.c (get_doc_string): When UNIBYTE and DEFINITION are 0,
9971 let the data control whether string is unibyte.
9972
99731999-03-30 Richard M. Stallman <rms@gnu.org>
9974
9975 * macros.c (Fexecute_kbd_macro): Save real_this_command.
9976 (pop_kbd_macro): Restore the saved real_this_command.
9977 (Fcall_last_kbd_macro): Set real_this_command to the macro.
9978
99791999-03-26 Richard M. Stallman <rms@gnu.org>
9980
9981 * buffer.c (Fset_buffer_modified_p): Don't lock or unlock
9982 if buffer-file-name is nil.
9983
99841999-03-25 Jason Rumney <jasonr@altavista.net>
9985
9986 * w32select.c (Fw32_set_clipboard_data): Take into account line
9987 ends when calculating clipboard storage needed for non-ASCII text.
9988
99891999-03-25 Andrew Innes <andrewi@gnu.org>
9990
9991 * makefile.nt (PREPARED_HEADERS): Change name of paths.h to epaths.h.
9992 (epaths.h): Renamed from paths.h.
9993 (clean):
9994 ($(BLD)\filelock.obj):
9995 ($(BLD)\lread.obj):
9996 ($(BLD)\w32fns.obj): Renamed paths.h to epaths.h.
9997
99981999-03-23 Ken'ichi Handa <handa@gnu.org>
9999
10000 * coding.c (encode_coding_iso2022): Initialize dummy arguments to
10001 ENCODE_ISO_CHARACTER for the previous change on this macro.
10002
100031999-03-23 Kenichi Handa <handa@etl.go.jp>
10004
10005 * xdisp.c (decode_mode_spec_coding): Handle integer value in
10006 eoltype correctly for backward compatibility.
10007
100081999-03-20 Kenichi HANDA <handa@etl.go.jp>
10009
10010 * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. If
10011 invalid, produce the buffer internal byte sequence without encoding.
10012
100131999-03-19 Karl Heuer <kwzh@gnu.org>
10014
10015 * editfns.c (Fformat): Accept %i format.
10016
100171999-03-17 Karl Heuer <kwzh@gnu.org>
10018
10019 * filelock.c (get_boot_time): Test tempname, not filename.
10020
100211999-03-17 Jason Rumney <jasonr@altavista.net>
10022
10023 * w32bdf.h: Merged patches from Meadow.
10024
10025 * w32bdf.c: Merged patches from Meadow.
10026
10027 * w32fns.c (enum_font_cb2): Set the font height to be the
10028 character height, not the cell height.
10029 (Fw32_select_font): Initialize font dialog with current default font.
10030 (Vw32_system_coding_system): New variable.
10031 (w32_strict_filenames): Add comment.
10032 (w32_to_x_font): Decode font name using Vw32_system_coding_system.
10033 (x_to_w32_font): Encode font name using Vw32_system_coding_system.
10034 (syms_of_w32fns): Add w32-system-coding-system.
10035
100361999-03-15 Richard M. Stallman <rms@gnu.org>
10037
10038 * xterm.c (XTread_socket) <ConfigureNotify>:
10039 If cursor pos is outside the new frame size, mark cursor as off.
10040
100411999-03-14 Ken'ichi Handa <handa@gnu.org>
10042
10043 * xdisp.c (try_window_id): Initialize val.ovstring_chars_done to 0.
10044
10045 * xterm.c (x_load_font): Trap X errors so that Emacs doesn't die
10046 by them.
10047
100481999-03-14 Richard M. Stallman <rms@gnu.org>
10049
10050 * macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations
10051 at beginning.
10052
100531999-03-14 Jason Rumney <jasonr@altavista.net>
10054
10055 * w32fns.c (w32_strict_fontnames): New variable.
10056 (Fx_create_frame): Formatting fix.
10057 (w32_load_system_font): Keep trying to load non-existant font
10058 if w32_strict_fontnames is nil. Formatting fix.
10059 (syms_of_w32fns): Add w32-strict-fontnames.
10060
10061 * w32term.c (W32_TEXTOUT): Do not multiply nchars by charset_dim.
10062 (dumpglyphs): Formatting fixes.
10063
100641999-03-14 Geoff Voelker <voelker@cs.washington.edu>
10065
10066 * w32fns.c (w32_wnd_proc): Handle WM_GETMINMAXINFO message.
10067
100681999-03-10 Karl Heuer <kwzh@gnu.org>
10069
10070 * puresize.h (BASE_PURESIZE): Increase to 505000.
10071
100721999-03-09 Richard M. Stallman <rms@gnu.org>
10073
10074 * emacs.c (main) [CLASH_DETECTION]: Call init_filelock.
10075
10076 * filelock.c (init_filelock): New function.
10077
100781999-03-09 Dave Love <fx@gnu.org>
10079
10080 * fileio.c (Ffile_directory_p): Doc fix.
10081
100821999-03-05 Richard M. Stallman <rms@caffeine.ai.mit.edu>
10083
10084 * coding.c (setup_coding_system): Check for CODING_SYSTEM = nil.
10085
100861999-03-08 Richard M. Stallman <rms@gnu.org>
10087
10088 * filelock.c (get_boot_time): Reduce scope of #ifdef BOOT_TIME
10089 to only the part that uses get_boot_time_1.
10090
100911999-03-07 Dave Love <fx@gnu.org>
10092
10093 * fileio.c (Finsert_file_contents): Use xfree.
10094
100951999-03-06 Kenichi Handa <handa@etl.go.jp>
10096
10097 * Makefile.in (callproc.o, coding.o, fileio.o, msdos.o, process.o,
10098 term.o, xselect.o): Depend on ccl.h.
10099
101001999-03-05 Geoff Voelker <voelker@cs.washington.edu>
10101
10102 * makefile.nt: Remove common multiple file compilation commands.
10103
101041999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp>
10105
10106 * fns.c (Fbase64_encode_string): Allocate sufficient memory for
10107 newlines added when the arg NO-LINE-BREAK is nil.
10108
101091999-03-04 Karl Heuer <kwzh@gnu.org>
10110
10111 * search.c (Fstring_match, Fposix_string_match): Doc fix.
10112
10113 * buffer.c (syms_of_buffer): Doc fix for case-fold-search.
10114
101151999-03-04 Dave Love <fx@gnu.org>
10116
10117 * term.c (term_init): Use xmalloc, not malloc.
10118
10119 * callproc.c (Fcall_process): Use xmalloc, xfree.
10120
101211999-03-03 Andreas Schwab <schwab@gnu.org>
10122
10123 * eval.c (Fdefconst): Doc fix.
10124
101251999-03-01 Kenichi Handa <handa@etl.go.jp>
10126
10127 * coding.c: Comment for ISO 2022 encoding mechanism modified.
10128
101291999-03-01 Eli Zaretskii <eliz@gnu.org>
10130
10131 * w16select.c (get_clipboard_data): Always stop at the first null byte.
10132
101331999-02-28 Richard M. Stallman <rms@gnu.org>
10134
10135 * filelock.c (get_boot_time): Support FreeBSD way to read boot-time.
10136
10137 * cmds.c (internal_self_insert): Calculate column properly
10138 in overwrite-of-tab case.
10139
101401999-02-27 Andreas Schwab <schwab@gnu.org>
10141
10142 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't use unsetenv, it calls
10143 malloc in glibc 2.1.
10144
101451999-02-26 Richard Stallman <rms@gnu.org>
10146
10147 * Makefile.in: paths.h and paths.in renamed to epaths.h and epaths.in.
10148
10149 * epaths.in: Renamed from paths.in.
10150 This avoids a conflict with a system header file paths.h on GNU/Linux.
10151
10152 * callproc.c, lread.c, w32fns.c, xfns.c, xrdb.c:
10153 Use epaths.h istead of paths.h.
10154
101551999-02-26 Andreas Schwab <schwab@gnu.org>
10156
10157 * emacs.c (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
10158 malloc.
10159
101601999-02-25 Dave Love <fx@gnu.org>
10161
10162 * buffer.c (syms_of_buffer): Doc fix for enable-multibyte-characters.
10163
101641999-02-25 Richard Stallman <rms@gnu.org>
10165
10166 * filelock.c (get_boot_time): Use WTMP_FILE for file name.
10167 (WTMP_FILE): Default definition in case not defined.
10168 (get_boot_time_1): Test that file exists before trying to read it.
10169
101701999-02-25 Ken'ichi Handa <handa@gnu.org>
10171
10172 * keymap.c (push_key_description): If enable-multibyte-characters
10173 is nil and C is single byte, push C as is.
10174
101751999-02-24 Kenichi Handa <handa@etl.go.jp>
10176
10177 * keymap.c (push_key_description): If enable-multibyte-characters
10178 is non-nil, try to convert unibyte character to multibyte. For
10179 invalid multibyte character, show all bits by octal form.
10180 (Fsingle_key_description): Check the validity of charset for a
10181 generic character.
10182
101831999-02-23 Richard M. Stallman <rms@gnu.org>
10184
10185 * fileio.c (Ffile_regular_p): Undo previous change.
10186
10187 * eval.c (Fdefconst): Doc fix.
10188
10189 * filelock.c (get_boot_time): Don't use BUFSIZ.
10190
101911999-02-22 Andrew Innes <andrewi@gnu.org>
10192
10193 * makefile.nt ($(BLD)\w32bdf.obj): Add missing continuation character.
10194 (EXTRA_LINK): Do version test with strings.
10195
101961999-02-22 Andreas Schwab <schwab@gnu.org>
10197
10198 * fns.c (Fbase64_encode_string): Fix last change.
10199
10200 * termhooks.h (event_kind): Add user_signal.
10201
10202 * keyboard.c (Qusr1_signal, Qusr2_signal): New variables.
10203 (syms_of_keyboard): Initialize them.
10204 (lispy_user_signals): New variable.
10205 (make_lispy_event): Handle user_signal event type.
10206
10207 * emacs.c: Don't define Qusr1_signal and Qusr2_signal.
10208 (syms_of_emacs): Don't initialize them.
10209 (handle_USR1_signal, handle_USR2_signal): Set event type to
10210 user_signal instead of non_ascii_keystroke, and use plain integers
10211 as code instead of Lisp symbols.
10212
102131999-02-21 Eli Zaretskii <eliz@delysid.gnu.org>
10214
10215 * fileio.c: (lstat) [!S_ISLNK]: Use stat instead of lstat.
10216
102171999-02-21 Richard Stallman <rms@gnu.org>
10218
10219 * filelock.c (get_boot_time_1): Put this in #ifdef BOOT_TIME.
10220
10221 * print.c (print_error_message): Don't crash if (cdr data)
10222 is not a list.
10223
102241999-02-21 Eli Zaretskii <eliz@gnu.org>
10225
10226 * fileio.c (lstat) [!S_ISLNK]: Use stat instead of lstat.
10227
102281999-02-20 Andrew Innes <andrewi@gnu.org>
10229
10230 * vm-limit.c (memory_warnings) [WINDOWSNT]: Reset lim_data on each
10231 run, since size can vary from run to run.
10232
10233 * makefile.nt (EXTRA_LINK, LINK_FLAGS): Ensure base relocation
10234 data is included, to enable profiling.
10235 ($(EMACS)): Map file not needed for emacs.exe.
10236
10237 * emacs.c (main): [!SYSTEM_MALLOC]: Call realloc and free as well
10238 as malloc before calling uninterrupt_malloc, for consistency.
10239 This also enables profiling to work on WINDOWSNT.
10240
102411999-02-18 Richard Stallman <rms@gnu.org>
10242
10243 * Makefile.in (emacs.o): Depend on termhooks.h.
10244 (filelock.o): Depend on systime.h.
10245
102461999-02-18 Ken'ichi Handa <handa@gnu.org>
10247
10248 * coding.c (Fdecode_sjis_char): Use %x for formatting error message.
10249 (Fdecode_big5_char): Likewise.
10250
102511999-02-17 Richard Stallman <rms@gnu.org>
10252
10253 * insdel.c (adjust_markers_for_replace): When doing an insertion
10254 (replacing a region of zero length), handle markers at the
10255 insertion point properly.
10256
102571999-02-17 Andrew Innes <andrewi@gnu.org>
10258
10259 * w32fns.c (Vw32_quit_key): New variable.
10260 (post_character_message): Use it.
10261 (syms_of_w32fns): DEFVAR it.
10262
102631999-02-16 MORIOKA Tomohiko <morioka@jaist.ac.jp>
10264
10265 * fns.c (Fbase64_encode_string): New optional argument `NO_LINE_BREAK'.
10266
102671999-02-16 Richard Stallman <rms@gnu.org>
10268
10269 * filelock.c (within_one_second): New function.
10270 (current_lock_owner): Use that.
10271 (get_boot_time): Use /proc/uptime if available.
10272 Otherwise, if nothing found in wtmp, try wtmp.1.gz and so on.
10273 (get_boot_time_1): New subroutine taken from get_boot_time.
10274
102751999-02-16 Richard Stallman <rms@gnu.org>
10276
10277 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
10278 (syms_of_emacs): Init and staticpro them.
10279 (handle_USR1_signal): Don't run any code, just queue up an event.
10280 (handle_USR2_signal): Likewise.
10281
102821999-02-16 Eli Zaretskii <eliz@gnu.org>
10283
10284 * dired.c (Ffile_attributes): If the file's size doesn't fit in
10285 an integer, return it as a float. Doc string fixed.
10286
102871999-02-16 Richard Stallman <rms@gnu.org>
10288
10289 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
10290 (syms_of_emacs): Init and staticpro them.
10291 (handle_USR1_signal): Don't run any code, just queue up an event.
10292 (handle_USR2_signal): Likewise.
10293
102941999-02-15 Kenichi Handa <handa@etl.go.jp>
10295
10296 * coding.c (Fdecode_sjis_char, Fencode_sjis_char): Handle
10297 ASCII correctly. Signal error on invalid characters.
10298 (Fdecode_big5_char, Fencode_big5_char): Likewise.
10299
103001999-02-15 Eli Zaretskii <eliz@gnu.org>
10301
10302 * w16select.c (get_clipboard_data): Work around a bug in Windows95
10303 DOS box which doubles the reported size of text in the clipboard.
10304
103051999-02-15 Kenichi Handa <handa@etl.go.jp>
10306
10307 * coding.c (decode_coding_iso2022): Don't set
10308 coding->composed_chars to 0 here.
10309 (setup_coding_system): Set coding->composed_chars to 0 here.
10310
103111999-02-10 Richard Stallman <rms@gnu.org>
10312
10313 * fileio.c (Ffile_regular_p): Use lstat.
10314
103151999-02-09 Richard Stallman <rms@gnu.org>
10316
10317 * unexelf.c (HAS_SBSS_SECTION): Define this in some cases.
10318 (unexec): Test this instead of specific systems.
10319
10320 * m/macppc.h: New file.
10321
103221999-02-08 Dave Love <fx@gnu.org>
10323
10324 * fns.c (Fyes_or_no_p, Fy_or_n_p): Doc fix.
10325
103261999-02-08 Ken'ichi Handa <handa@gnu.org>
10327
10328 * coding.c (ccl_coding_driver): On encoding, coding->produced_char
10329 should be set to coding->produced.
10330
103311999-02-07 Paul Fisher <rao@gnu.org>
10332
10333 * fns.c (IS_BASE64_IGNORABLE, READ_QUADRUPLET_BYTE): New macros.
10334 (base64_decode_1): Use READ_QUADRUPLET_BYTE.
10335
103361999-02-07 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
10337
10338 * editfns.c (Fformat): Doc fix.
10339
103401999-02-06 Richard Stallman <rms@gnu.org>
10341
10342 * process.c (syms_of_process): defsubr it.
10343 (Fprocess_running_child_p): New function.
10344
103451999-02-05 Andrew Innes <andrewi@gnu.org>
10346
10347 * w32term.c (construct_drag_n_drop): Call DraqQueryPoint before
10348 recording drop position.
10349
103501999-02-05 Ken'ichi Handa <handa@gnu.org>
10351
10352 * coding.c (encode_coding_iso2022): Before writing out an invalid
10353 code, reset graphic planes and registers if necessary.
10354
10355 * term.c (encode_terminal_code): Fix previous change.
10356
103571999-02-04 Eli Zaretskii <eliz@gnu.org>
10358
10359 * w16select.c (last_clipboard_text, clipboard_storage_size): New
10360 static variables.
10361 (set_clipboard_data): Save a copy of the text we put into
10362 clipboard in last_clipboard_text.
10363 (get_clipboard_data): If the clipboard text is identical to what
10364 last_clipboard_text holds, pretend there's no data in the clipboard.
10365
103661999-02-03 Richard Stallman <rms@gnu.org>
10367
10368 * s/gnu.h (NLIST_STRUCT): Add #undef.
10369
103701999-02-03 Eli Zaretskii <eliz@gnu.org>
10371
10372 * w16select.c (Fw16_set_clipboard_data): When the text needs to be
10373 encoded, set its pointer and size as returned by encode_coding.
10374
103751999-02-02 Ken'ichi Handa <handa@gnu.org>
10376
10377 * fns.c (Fset_char_table_default): To handle the case that CH is
10378 an ASCII char, use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
10379
103801999-02-02 Andrew Innes <andrewi@gnu.org>
10381
10382 * w32fns.c (syms_of_w32fns): Change default value of
10383 w32-mouse-move-interval to 0, so that the mouse wheel/rocker on
10384 some mice works properly.
10385
103861999-02-02 Eli Zaretskii <eliz@gnu.org>
10387
10388 * w16select.c (set_clipboard_data): Correctly null-terminate the
10389 string to be put into the Windows clipboard. Use xbuf_addr.
10390
103911999-02-01 Richard Stallman <rms@gnu.org>
10392
10393 * buffer.c (Fset_buffer_multibyte): Error if buffer is indirect.
10394
103951999-01-31 Richard Stallman <rms@gnu.org>
10396
10397 * process.c (process_send_signal): If CURRENT_GROUP is `lambda'
10398 then don't send the signal if the shell owns the terminal.
10399 (Finterrupt_process): Doc change.
10400
104011999-01-31 Andrew Innes <andrewi@gnu.org>
10402
10403 * unexw32.c: (ROUND_UP_DST_AND_ZERO): New macro.
10404 (copy_executable_and_dump_data): Use it to ensure alignment slop
10405 is zeroed.
10406
104071999-01-30 Andrew Innes <andrewi@gnu.org>
10408
10409 * w32.c (init_environment): Change argv[0] to contain the full
10410 path to Emacs.
10411
10412 * emacs.c (main) [WINDOWSNT]: Pass argv to init_environment.
10413
104141999-01-29 Ken'ichi Handa <handa@gnu.org>
10415
10416 * xterm.c (x_new_fontset): For ASCII font, don't use the font name
10417 returned by x_new_font (the resolved one) but use the font name
10418 set in the fontset specification.
10419 (x_load_font): For the height of font, if normarl ascent and
10420 descent value are larger than those in max_bounds field, use the
10421 former.
10422
104231999-01-28 Eli Zaretskii <eliz@gnu.org>
10424
10425 * xdisp.c (decode_mode_spec_coding): Fix previous change.
10426
104271999-01-27 Geoff Voelker <voelker@cs.washington.edu>
10428
10429 * makefile.nt: Use full path to temacs.exe when dumping.
10430
104311999-01-27 Jason Rumney <jasonr@altavista.net>
10432
10433 * w32fns.c (w32_load_system_font): Do not load unlisted fonts if
10434 list was reliable.
10435 (enum_fontex_cb1, enum_fontex_cb2): New functions.
10436 (w32_list_bdf_fonts): New parameter; max_names. Callers updated.
10437 (w32_list_synthesized_fonts): New function.
10438 (w32_list_fonts): Use maxnames. Use EnumFontFamiliesEx when
10439 available instead of EnumFontFamilies. List synthesized fonts if
10440 Vw32_enable_italics is non-nil.
10441
104421999-01-27 Richard Stallman <rms@gnu.org>
10443
10444 * s/ptx4.h (SETUP_SLAVE_PTY): Use the ptem module if it exists.
10445 Don't complain if ttcompat does not exist.
10446
10447 * w32fns.c (x_set_frame_parameters): gcpro as needed.
10448
104491999-01-27 Andrew Innes <andrewi@gnu.org>
10450
10451 * w32fns.c (w32_wnd_proc): Fix bug introduced by previous change;
10452 the lwindow, rwindow and apps keys could not be used as function
10453 keys, because they were being passed to TranslateMessage which
10454 ignores them. Also, key was being changed to SPC.
10455
10456 * makefile.nt: Do make version comparison as strings.
10457
104581999-01-27 Eli Zaretskii <eliz@gnu.org>
10459
10460 * coding.c (syms_of_coding): eol-mnemonic-* variables are now
10461 strings, not characters.
10462
10463 * coding.h: Likewise.
10464
10465 * xdisp.c (decode_mode_spec_coding): Display the EOL type as a
10466 string.
10467
104681999-01-26 Dave Love <fx@gnu.org>
10469
10470 * emacs.c (main): Up-date copyright.
10471
104721999-01-25 Dave Love <fx@gnu.org>
10473
10474 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
10475
104761999-01-25 Andreas Schwab <schwab@gnu.org>
10477
10478 * eval.c (Fsignal): Move comment to avoid confusing make-docfile.
10479
104801999-01-23 Richard M. Stallman <rms@borg.ai.mit.edu>
10481
10482 * xfns.c (x_set_frame_parameters): gcpro as needed.
10483
10484 * window.c (Fset_window_point): If WINDOW is selected but the
10485 current buffer is not its buffer, don't use Fgoto_char.
10486
104871999-01-22 Richard M. Stallman <rms@gnu.org>
10488
10489 * syntax.c (scan_sexps_forward): Delete duplicate code
10490 to set prev_from_syntax, above start of main loop.
10491 At startinstring, check syntax when checking for a match.
10492
104931999-01-22 Jason Rumney <jasonr@altavista.net>
10494
10495 * w32bdf.c: New file.
10496 * w32bdf.h: New file.
10497 * makefile.nt: Add w32bdf.c and w32bdf.h.
10498
10499 * w32gui.h: Include w32bdf.h.
10500 (W32FontStruct) Add bdf element.
10501
10502 * w32term.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_MAX_WIDTH):
10503 Support BDF fonts.
10504
10505 * w32term.c (W32_TEXTOUT): New macro.
10506 (dumpglyphs): Support BDF fonts. Use W32_TEXTOUT macro.
10507 Simplify baseline calculation. Detect SJIS by font, not glyph.
10508 Call SetTextAlign.
10509 (syms_of_w32term): Remove "jisx0212-sjis" from
10510 w32-charset-to-codepage-alist.
10511 Replace "ksc5601" with "ksc5601.1987" in w32-charset-to-codepage-alist.
10512 Add "ksc5601.1992' to w32-charset-to-codepage-alist.
10513
10514 * w32fns.c (Vw32_bdf_filename_alist): New variable.
10515 (x_destroy_bitmap): Returns void not int.
10516 (x_set_border_pixel): Returns void.
10517 (w32_load_bdf_font): New function.
10518 (w32_load_system_font): New function, was w32_load_font. List
10519 fonts before loading. Explicitly set encoding for SJIS fonts.
10520 Set default_ascent to 0 as comment indicates.
10521 (w32_load_font): Call w32_load_system_font and w32_load_bdf_font.
10522 (w32_unload_font): Support BDF fonts.
10523 (w32_to_x_charset): Fix mappings to avoid wildcard mismatches.
10524 Autodetect whether to use koi8-r instead of iso8859-5.
10525 Associate "ksc5601.1987" with HANGUEL_CHARSET.
10526 Associate "ksc5601.1992" with JOHAB_CHARSET.
10527 (x_to_w32_charset): Make consistent with w32_to_x_charset.
10528 (w32_to_x_font): Add resolution.
10529 (x_to_w32_font): Use font resolution to calculate height if supplied.
10530 (w32_font_match): Handle wildcards anywhere within field.
10531 (enumfont_t): Remove unused head pointer.
10532 (enum_font_cb2): Dereference elfLogFont.
10533 (w32_list_bdf_fonts): New function.
10534 (w32_list_fonts): Use one_w32_dispay_info instead of insisting on
10535 valid frame. Remove MessageBox. Support BDF fonts.
10536 (Fw32_find_bdf_fonts): New function.
10537 (syms_of_w32fns): Add Vw32_bdf_filename_alist and
10538 Sw32_find_bdf_fonts.
10539
105401999-01-21 Andrew Innes <andrewi@gnu.org>
10541
10542 * makefile.nt (temacs): Use del to delete file, not rm.
10543
105441999-01-19 Richard Stallman <rms@psilocin.ai.mit.edu>
10545
10546 * keyboard.c (read_key_sequence): Fix previous change.
10547
10548 * xterm.c (same_x_server): Detect treat ":0" and "unix:0"
10549 as the same. Treat "myname:0" as the same as those two.
10550
105511999-01-19 Jason Rumney <jasonr@altavista.net>
10552
10553 * w32fns.c (x_to_w32_charset): Add iso8859-9.
10554 (w32_to_x_charset): Fix charset mappings.
10555
10556 * w32term.c: Remove codepage macros. Remove redundant BIG5 macros.
10557 (dumpglyphs): Move definitions out of block containing goto.
10558 Remove redundant code for BIG5.
10559 Use w32_codepage_for_font instead of
10560 w32_codepage_for_charset. Add cast to int where float
10561 operation is assigned to int.
10562 (Vw32_charset_to_codepage_alist): New variable.
10563 (w32_codepage_for_charset): Removed.
10564 (w32_codepage_for_font): New function, replacing
10565 w32_codepage_for_charset.
10566 (syms_of_w32term): Add and initialize
10567 w32-charset-to-codepage-alist.
10568
105691999-01-17 Richard Stallman <rms@psilocin.ai.mit.edu>
10570
10571 * xselect.c (x_handle_selection_clear): Don't clear the
10572 selection if Emacs still owns it through a different display.
10573
105741999-01-17 Andrew Innes <andrewi@gnu.org>
10575
10576 * w32proc.c: (w32_executable_type): Relax the check to identify
10577 cygwin-compiled applications, because the exact dll name varies
10578 with release. Now only require the name to start "cygwin".
10579
10580 * w32heap.h: (ROUND_UP):
10581 (ROUND_DOWN): New macros.
10582 (need_to_recreate_heap): Renamed to using_dynamic_heap.
10583 (init_heap): New extern.
10584 (data_region_size):
10585 (recreate_heap):
10586 (read_in_bss):
10587 (map_in_heap):
10588 (round_to_next):
10589 (w32_fatal_reload_error):
10590 (get_section_size): Obsolete externs removed.
10591
10592 * w32heap.c: (RVA_TO_PTR): Redefine to convert RVA to address in
10593 current process.
10594 (round_to_next): Obsolete function removed.
10595 (preload_heap_section): New variable.
10596 (data_region_size): Obsolete variable removed.
10597 (allocate_heap): Modified to determine end of static heap section
10598 used during preload, and use that as initial base address for
10599 dynamic heap instead of hard-coded value.
10600 (sbrk): Remove call to allocate_heap; handled by init_heap. Skip
10601 calls to commit or decommit pages when allocating from static heap
10602 section during preload.
10603 (recreate_heap): Obsolete function removed.
10604 (init_heap): New function to initialize internal sbrk heap
10605 variables. Uses static heap section during preload, otherwise
10606 calls allocate_heap to reserve a heap region dynamically.
10607 (round_heap): Use ROUND_UP macro instead of round_to_next.
10608
10609 * unexw32.c: Major rewrite to support cleaner method of dumping; a
10610 static "bss" section is used for heap space during preload, and
10611 bss data is now written to the proper section area when dumping.
10612 (need_to_recreate_heap): Renamed to using_dynamic_heap.
10613 (heap_index_in_executable): Obsolete variable removed.
10614 (data_section): New variable.
10615 (data_start_va): Renamed to data_start.
10616 (data_start_file): Obsolete variable removed.
10617 (bss_section):
10618 (extra_bss_size):
10619 (bss_section_static):
10620 (bss_start_static):
10621 (bss_size_static):
10622 (extra_bss_size_static):
10623 (heap_section): New variables.
10624 (_start): Remove code based on old unexec method. Call init_heap
10625 to initialize sbrk heap.
10626 (close_file_data): Update size of file when closing, so that
10627 unexec doesn't have to work out exact size in advance.
10628 (get_bss_info_from_map_file):
10629 (get_section_size): Obsolete functions removed.
10630 (rva_to_section): Fix minor bug, and add a work-around for a bug
10631 in very old linkers.
10632 (offset_to_section):
10633 (relocate_offset): New functions.
10634 (OFFSET_TO_RVA):
10635 (RVA_TO_OFFSET):
10636 (RVA_TO_SECTION_OFFSET):
10637 (PTR_TO_RVA):
10638 (PTR_TO_OFFSET):
10639 (OFFSET_TO_PTR): New macros.
10640 (get_section_info): Modify to support new unexec method;
10641 determines address ranges in process that need dumping, and COFF
10642 sections where data will be dumped. Allows for static and global
10643 bss data to be in separate ranges. No longer relies on knowledge
10644 of section names.
10645 (copy_executable_and_dump_data_section): Renamed
10646 copy_executable_and_dump_data. Completely rewritten to copy
10647 executable section by section, so that raw data areas can be
10648 expanded to hold dumped data as necessary. Allows for bss data to
10649 be in same section as initialized data. Reduces size of static
10650 heap section to that used during preload.
10651 (dump_bss_and_heap):
10652 (w32_fatal_reload_error):
10653 (read_in_bss):
10654 (map_in_heap): Obsolete functions removed.
10655 (unexec): Rounds off preload heap to nearest page rather than
10656 virtual allocation unit. Modified to match other changes.
10657
10658 * mem-limits.h: (get_lim_data): Use reserved_heap_size instead of
10659 data_region_size.
10660
10661 * makefile.nt: (TEMACS_TMP): New macro.
10662 ($(TEMACS)): Output to TEMACS_TMP from link, use post-link
10663 processor to add static heap section in support of new unexec.
10664
10665 * lastfile.c: Include config.h to pick up data layout pragmas.
10666 [WINDOWSNT]: Remove explicit pragma.
10667
106681999-01-12 Kenichi Handa <handa@etl.go.jp>
10669
10670 * coding.c (Fdecode_sjis_char): Decode Japanese Katakana character
10671 correctly.
10672 (Fencode_sjis_char): Encode Japanese Katakana character correctly.
10673
106741999-01-11 Dave Love <fx@gnu.org>
10675
10676 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
10677
106781999-01-11 Richard Stallman <rms@psilocin.ai.mit.edu>
10679
10680 * keyboard.c (read_key_sequence): In key-translation-map and
10681 function-key-map, handle symbol with array as fn def.
10682 In function-key-map, handle symbol with keymap as fn def,
10683 and autoloaded definitions.
10684
10685 * puresize.h (BASE_PURESIZE): Increment to 500000.
10686
10687 * print.c (Qtemp_buffer_setup_hook): New variable.
10688 (syms_of_print): Init and staticpro that.
10689 (temp_output_buffer_setup): Run Qtemp_buffer_setup_hook.
10690
106911999-01-11 Kenichi Handa <handa@etl.go.jp>
10692
10693 * insdel.c (del_range_1): Call signal_after_change.
10694 (del_range_byte): Likewise.
10695 (del_range_both): Likewise.
10696 (del_range_2): Don't call signal_after_change.
10697
10698 * xdisp.c (message_dolog): Use insert_1_both to avoid running any
10699 Lisp code here.
10700
107011999-01-07 Richard Stallman <rms@psilocin.ai.mit.edu>
10702
10703 * eval.c (find_handler_clause): If SIG is nil (memory full error),
10704 never run the debugger, and don't bother checking the args
10705 to see whether the debugger should be run.
10706
107071999-01-06 Richard Stallman <rms@psilocin.ai.mit.edu>
10708
10709 * keyboard.c (read_key_sequence):
10710 Tell get_keyelt to look handle autoloads.
10711 Handle symbols defined as keymaps, and autoloaded keymaps.
10712
107131999-01-06 Kenichi Handa <handa@etl.go.jp>
10714
10715 * search.c (search_buffer): Fix previous change.
10716
107171999-01-06 Eli Zaretskii <eliz@gnu.org>
10718
10719 * w16select.c (set_clipboard_data): Terminate the text with a null
10720 character. Don't allow to put binary data into the clipboard.
10721 Return zero in case of success, 1 or 2 otherwise.
10722 (get_clipboard_data): Only bail out if the null character is in
10723 the last 32-byte chunk of clipboard data
10724 (Fw16_set_clipboard_data): Make ok and put_status be unsigned. If
10725 they save binary data, print a message in the echo area saying the
10726 text was not put into the clipboard.
10727
10728 * msdos.c (IT_write_glyphs): Move constant expression out of the loop.
10729
107301999-01-06 Andreas Schwab <schwab@gnu.org>
10731
10732 * systty.h [__GLIBC__ >= 2]: Check __FAVOR_BSD instead of
10733 _BSD_SOURCE, the latter is always defined.
10734
107351999-01-05 Richard Stallman <rms@psilocin.ai.mit.edu>
10736
10737 * fns.c (Frequire): Don't fail to unbind bindings.
10738
107391999-01-02 Richard Stallman <rms@psilocin.ai.mit.edu>
10740
10741 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't call r_alloc_reinit.
10742
10743 * charset.c (Ffind_charset_region): Fix doc typo.
10744
107451998-12-31 Eli Zaretskii <eliz@mescaline.gnu.org>
10746
10747 * msdos.c (IT_write_glyphs): Convert unibyte characters to
10748 multibyte in unibyte buffers only.
10749
10750 * keymap.c (Fdefine_prefix_command): Accept a third argument NAME
10751 and pass it to Fmake_sparse_keymap.
10752
107531998-12-29 Richard Stallman <rms@psilocin.ai.mit.edu>
10754
10755 * alloc.c (MMAP_MAX_AREAS): New macro.
10756 (allocate_vectorlike, make_uninit_multibyte_string): Use that.
10757 (init_alloc_once): Use that.
10758
10759 * s/gnu-linux.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
10760
10761 * alloc.c (lisp_malloc, lisp_free): New functions.
10762 Use them instead of malloc, xmalloc, and xfree, for Lisp objects.
10763 Don't set allocating_for_lisp in the callers; let lisp_malloc do it.
10764 (n_interval_blocks, n_float_blocks): New variable.
10765 (n_cons_blocks, n_vectors, n_symbol_blocks): New variable.
10766 (n_marker_blocks, n_string_blocks): New variable.
10767 (init_intervals, make_interval): Set a count variable.
10768 Use lisp_malloc instead of setting allocating_for_lisp.
10769 (init_float, make_float, init_cons, Fcons): Likewise.
10770 (allocate_vectorlike, init_symbol, Fmake_symbol): Likewise
10771 (init_marker, allocate_misc, init_strings): Likewise.
10772 (make_uninit_multibyte_string): Likewise.
10773 (gc_sweep, compact_strings): Decrement the count variables.
10774
10775 * alloc.c (uninterrupt_malloc): Don't store Emacs's hooks
10776 into the old_..._hook variables.
10777
107781998-12-28 Richard Stallman <rms@psilocin.ai.mit.edu>
10779
10780 * keyboard.c: In each active map, for each menu bar item, use only
10781 the first submap.
10782 (menu_bar_one_keymap): Initialize menu_bar_one_keymap_changed_items.
10783 (menu_bar_item): Update and test menu_bar_one_keymap_changed_items.
10784 (syms_of_keyboard): Staticpro and init it.
10785
10786 * xmenu.c (single_keymap_panes):
10787
107881998-12-28 Andrew Innes <andrewi@delysid.gnu.org>
10789
10790 * w32fns.c (w32_msg_pump): Ignore WM_NULL message posted to thread
10791 by complete_deferred_msg.
10792 (post_character_message): Cancel all deferred messages when
10793 quit_char is typed, in order to break out of potential deadlocks.
10794 (cancel_all_deferred_msgs): New function.
10795 (complete_deferred_msg): Don't abort if msg not found; may have
10796 been cancelled.
10797 (Fw32_reconstruct_hot_key): Use pre-interned symbols.
10798 (Fw32_send_sys_command): Wait for system command to
10799 complete before returning.
10800
10801 * w32term.c (x_iconify_frame): Wait for frame to be iconified; do
10802 not set async_iconified flag though.
10803
10804 * w32proc.c: (Vw32_start_process_inherit_error_mode): New variable.
10805 (create_child): Use it.
10806 (syms_of_ntproc): Defvar it. Also fix docstrings for
10807 w32-start-process-share-console and w32-start-process-show-window.
10808
10809 * unexw32.c (_start): Force system calls accessing unmounted
10810 devices to fail without prompting.
10811
108121998-12-26 Richard Stallman <rms@psilocin.ai.mit.edu>
10813
10814 * emacs.c (main): Call memory_warnings and uninterrupt_malloc
10815 even when starting the dumped Emacs.
10816
10817 * keymap.c (Fsingle_key_description): Handle (control ?x) etc.
10818 (Fkey_description): Handle lists like vectors.
10819
108201998-12-21 Kenichi Handa <handa@etl.go.jp>
10821
10822 * callint.c (Fcall_interactively) <'C'>: Give Fread_char Qnil
10823 because of the change of the second argument of Fread_char.
10824
10825 * charset.c (Fcharset_after): Check range. If POS is out of
10826 range, return nil.
10827
10828 * keyboard.c (read_char): Don't bind input-method-exit-on-first-char.
10829
10830 * lread.c (Fread_char): Change the meaning of the second argument.
10831 (Fread_event): Likewise.
10832 (Fread_char_exclusive): Likewise.
10833
10834 * print.c (printchar): Fix previous change.
10835
10836 * process.c (read_process_output): Decide the multibyteness of
10837 string given to a process filter by a coding system used for
10838 decoding the process output.
10839
108401998-12-21 Eli Zaretskii <eliz@mescaline.gnu.org>
10841
10842 * xterm.c (dumpglyphs): Don't convert 7-bit ASCII characters via
10843 nonascii-translation-table.
10844 * msdos.c (IT_write_glyphs): Likewise.
10845 * fns.c (concat): Likewise.
10846 * charset.c (unibyte_char_to_multibyte): Likewise.
10847 * insdel.c (copy_text, count_size_as_multibyte): Likewise.
10848
108491998-12-21 Andreas Schwab <schwab@delysid.gnu.org>
10850
10851 * doc.c (Fdocumentation): Change the doc string for prefix
10852 commands to make it a complete sentence in one line.
10853
108541998-12-16 Petri Kaurinkoski <Petri.Kaurinkoski@hut.fi>
10855
10856 * s/irix6-5.h: New file.
10857 * s/irix6-0.h (IRIX6): Define this symbol.
10858 * s/usg5-4.h (TIOCSIGSEND): Don't define this if irix6.
10859 (bcopy, bcmp, bzero): Likewise.
10860 * m/iris4d.h (LIBS_MACHINE): Leave this blank if irix6.5.
10861 (C_SWITCH_MACHINE): New value for irix6.5.
10862
108631998-12-15 Richard Stallman <rms@gnu.org>
10864
10865 * fns.c (Fbase64_decode_region, Fbase64_decode_string):
10866 Do free malloc'd memory even in case of failure. Use xfree, not free.
10867 (Fbase64_encode_region, Fbase64_encode_string): Use xfree, not free.
10868 (base64_decode_1): Don't fail for short lines.
10869
10870 * print.c (printchar): Outputting multibyte characters
10871 to echo area always makes it multibyte.
10872
10873 * search.c (search_buffer): Don't use Boyer-Moore
10874 to search for an invalid multibyte code.
10875 In unibyte case, no need to check whether there are translations
10876 in more than one charset; just set charset_base to 0.
10877
108781998-12-15 Ken'ichi Handa <handa@delysid.gnu.org>
10879
10880 * print.c (printchar): Cancel previous change.
10881
108821998-12-15 Kenichi Handa <handa@etl.go.jp>
10883
10884 * callproc.c: Include "ccl.h".
10885 (Fcall_process): Doc-string modified. Set CODING_MODE_LAST_BLOCK
10886 bit in argument_coding.mode to tell encoding procedure to flush
10887 data. While encoding arguments, if argument_coding uses CCL
10888 program, initialize it again after encoding.
10889 (Fcall_process_region): Doc-string modified. Handle the case that
10890 NARGS is 3.
10891
10892 * ccl.c (CCL_SUCCESS): Don't set ccl->ic.
10893 (ccl_driver) <CCL_End>: Pretend that all source text is consumed.
10894 Set `ic' to the head of this command.
10895 (ccl_driver) <CCL_ReadMultibyteChar2>: Return a single byte 8-bit
10896 code for an invalid code.
10897 (setup_ccl_program): If the arg VEC is nil, skip setting ups
10898 based on VEC.
10899
10900 * charset.c (Qunknown): New variable.
10901 (init_charset_once): Intern and staticpro Qunknown. Initialize
10902 all elements of Vcharset_symbol_table to Qunknown.
10903 (find_charset_in_str): New arg MULTIBYTE. If it is zero, check
10904 unibyte characters only. For an invalid composition sequence, set
10905 CHARSETS[1] to 1.
10906 (Ffind_charset_region): Call find_charset_in_str with an
10907 appropriate MULTIBYTE arg. If undefined charsets are found,
10908 include `unknown' is the return value.
10909 (Ffind_charset_string): Likewise.
10910 (Fsplit_char): If CHAR is invalid, return `(unknown CHAR)'.
10911 (str_cmpchar_id): Max composite character code should be less than
10912 GENERIC_COMPOSITION_CHAR.
10913
10914 * charset.h (find_charset_in_str): Update declaration.
10915
10916 * coding.c (DECODE_DESIGNATION): Jump to label_invalid_code if
10917 final_char is invalid.
10918 (decode_coding): If coding->type is coding_type_ccl, call
10919 ccl_coding_driver even if SRC_BYTES is zero.
10920 (code_convert_region): Update `inserted' correctly after calling
10921 coding->post_read_conversion. Even after the code converter
10922 consumed all source text, call it once more if it is
10923 coding_type_ccl to flush out data.
10924
10925 * fileio.c (Finsert_file_contents): Even if INSERTED is zero, if
10926 CODING is handled by CCL program, call code_convert_region.
10927
10928 * fns.c (string_char_to_byte): Handle invalid multibyte sequence
10929 correctly.
10930 (string_byte_to_char): Likesize.
10931
10932 * print.c (printchar): When outputting a multibyte character to
10933 echo area, always set message_enable_multibyte to 1.
10934
10935 * process.c (read_process_output): If NBYTES is zero and
10936 CODING_MODE_LAST_BLOCK bit is not yet set in coding->mode, set it
10937 and try decoding again.
10938 (Fprocess_send_eof): If the coding system of PROCESS
10939 requires flushing, call send_process with null-string at first.
10940
10941 * w16select.c (Fw16_set_clipboard_data): Call find_charset_in_str
10942 with MULTIBYTE arg 0.
10943 * w32select.c (Fw32_set_clipboard_data): Likewise.
10944 * xselect.c (lisp_data_to_selection_data): Likewise.
10945
109461998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
10947
10948 * search.c (Freplace_match): Set OPOINT clearly for the case
10949 where point is in the middle of the text to be replaced.
10950
10951 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
10952 if compute_motion fails to advance at all, don't back it up.
10953
109541998-12-10 Geoff Voelker <voelker@cs.washington.edu>
10955
10956 * w32.c (w32_get_long_filename): Handle root dirs correctly.
10957
10958 * s/ms-w32.h (LOCALTIME_CACHE): Define.
10959
109601998-12-09 Richard Stallman <rms@gnu.org>
10961
10962 * insdel.c (insert_from_buffer_1): Properly count the size
10963 of output from conversion to multibyte even when input
10964 is split across the gap.
10965
109661998-12-09 Karl Heuer <kwzh@gnu.org>
10967
10968 * keyboard.c: Doc fixes.
10969
10970 * s/irix4-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Increase space.
10971
109721998-12-08 Andrew Innes <andrewi@harlequin.co.uk>
10973
10974 * w32select.c (Fw32_get_clipboard_data): Do not delete isolated CR
10975 characters, only convert CRLF to LF.
10976
109771998-12-08 Geoff Voelker <voelker@cs.washington.edu>
10978
10979 * makefile.nt: Do string comparision of _NMAKE_VER.
10980
109811998-12-06 Eli Zaretskii <eliz@mescaline.gnu.org>
10982
10983 * Makefile.in (msdos.o): Depend on termchar.h, charset.h,
10984 coding.h, and disptab.h
10985
10986 * msdos.c (Vdos_unsupported_char_glyph): New variable.
10987 (syms_of_msdos): DEFVAR_LISP it.
10988 (IT_insert_glyphs, IT_delete_glyphs): New functions which abort Emacs.
10989 (internal_terminal_init): Set up insert_glyphs_hook and
10990 delete_glyphs_hook to call them. Explicitly set char_ins_del_ok to 0.
10991 (unibyte_display_via_language_environment): New variable.
10992 (syms_of_msdos): Devfar it.
10993 (IT_write_glyphs): Honor glyph aliasing via Vglyph_table.
10994 Encode the character codes of the glyphs according to the
10995 terminal_coding in effect.
10996
109971998-12-04 Andreas Schwab <schwab@delysid.gnu.org>
10998
10999 * fns.c (Fstring_as_unibyte): Doc fix.
11000
110011998-12-03 Andreas Schwab <schwab@delysid.gnu.org>
11002
11003 * charset.h: Declare char_valid_p.
11004
110051998-12-03 Eli Zaretskii <eliz@mescaline.gnu.org>
11006
11007 * dosfns.c (dos_cleanup): Flush and fsync the termscript stream.
11008
11009 * msdos.c (init_environment): Record the time we started up.
11010 (IT_reset_terminal_modes): Don't restore the screen if we exit too
11011 fast after startup (aka crash).
11012
110131998-12-02 Geoff Voelker <voelker@cs.washington.edu>
11014
11015 * w32.c (check_windows_init_file): Use decode_env_path when
11016 using EMACSLOADPATH.
11017
110181998-12-02 Jason Rumney <jasonr@altavista.net>
11019
11020 * w32term.c (dumpglyphs): Use unsigned char arrays.
11021 Use FONT_MAX_WIDTH to detect and fudge proportional fonts
11022 for various languages.
11023 Compensate for fonts that have underhangs (e.g., Thai).
11024
11025 * w32term.h (FONT_MAX_WIDTH): New macro.
11026
110271998-12-02 Andrew Innes <andrewi@harlequin.co.uk>
11028
11029 * keyboard.c (Qlanguage_change): New variable.
11030 (syms_of_keyboard): Init it.
11031 (kbd_buffer_get_event) [WINDOWSNT]: Generate language-change events.
11032 (lispy_function_keys) [HAVE_NTGUI]: Remove names for modifier
11033 keys; add name for Escape key; extend to 256 elements.
11034 (parse_modifiers): Make non-static.
11035
11036 * keyboard.h (parse_modifiers): Declare prototype.
11037
11038 * termhooks.h (event_kind) [WINDOWSNT]: Define language_change_event.
11039
11040 * w32fns.c (w32_last_error): Fix cut+paste error.
11041 (Vw32_phantom_key_code): New variable.
11042 (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift): New variables.
11043 (syms_of_w32fns): Init and register them.
11044 (reset_modifiers): Use a more precise test for whether Emacs has
11045 keyboard focus. Synchronize state of all keys that can be used as
11046 modifiers, to overcome problems arising from hot-keys.
11047 (w32_key_to_modifier): Be careful not to call intern() to avoid
11048 requiring thread synchronization.
11049 (w32_msg_pump): Handle new WM_EMACS_TOGGLE_LOCK_KEY message.
11050 (w32_wnd_proc): Ensure lock key indicator lights are updated
11051 promptly on Windows 9x, by passing key events on to the system.
11052 (w32_wnd_proc): Use Vw32_phantom_key_code to stop system
11053 responding to Windows key events when not wanted.
11054 (w32_wnd_proc): Undo the mapping of Ctrl-Pause into cancel and
11055 Ctrl-NumLock into pause by the system.
11056 (w32_wnd_proc): Don't translate key combinations containing any
11057 modifiers other than shift (and capslock).
11058 (w32_wnd_proc): Reset modifier key states when receiving focus (we
11059 can't determine the key states until we have keyboard focus).
11060 (Fw32_toggle_lock_key): New function.
11061 (syms_of_w32fns): Defsubr it.
11062
11063 * w32inevt.c (key_event): Use Vw32_phantom_key_code. Undo the
11064 mapping of Ctrl-Pause into cancel, and Ctrl-NumLock into pause.
11065 (w32_console_toggle_lock_key): New function.
11066
11067 * w32term.h (WM_EMACS_TOGGLE_LOCK_KEY): New define.
11068
110691998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
11070
11071 * search.c (Freplace_match): Set OPOINT clearly for the case
11072 where point is in the middle of the text to be replaced.
11073
11074 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
11075 if compute_motion fails to advance at all, don't back it up.
11076
110771998-11-28 Richard Stallman <rms@psilocin.ai.mit.edu>
11078
11079 * xfns.c (Qouter_window_id): New variable.
11080 (syms_of_xfns): Initialize it.
11081 (x_report_frame_params): Set up outer-window-id parameter.
11082
11083 * keymap.c (Fsingle_key_description): Fix previous change.
11084
110851998-11-26 Ken'ichi Handa <handa@delysid.gnu.org>
11086
11087 * lisp.h (Frequire): Update declaration.
11088
110891998-11-26 Kenichi Handa <handa@etl.go.jp>
11090
11091 * ccl.c (ccl_driver) <CCL_TranslateCharacter>: Don't suppress MSB
11092 if the charset is ascii.
11093 (ccl_driver) <CCL_TranslateCharacterConstTbl>: Likewise.
11094
11095 * charset.c (non_ascii_char_to_string): If C has modifier bits,
11096 make an appropriate one byte string.
11097 (char_bytes): Handle the case that C is a single byte char or has
11098 modifier bits.
11099
11100 * charset.h (CHAR_BYTES): If C has modifier bits, return 1.
11101
11102 * cmds.c (internal_self_insert): If C has modifier bits, insert
11103 appropriate one byte char.
11104
111051998-11-25 Richard Stallman <rms@psilocin.ai.mit.edu>
11106
11107 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte):
11108 Clear text properties in the new string.
11109
111101998-11-24 Felix Lee <flee@cygnus.com>
11111
11112 * process.c (read_process_output): Call signal_after_change.
11113
111141998-11-24 Richard Stallman <rms@psilocin.ai.mit.edu>
11115
11116 * buffer.c (syms_of_buffer): Doc fix.
11117
11118 * keyboard.c (syms_of_keyboard): Doc fix.
11119
111201998-11-22 Richard Stallman <rms@psilocin.ai.mit.edu>
11121
11122 * frame.c (Fset_mouse_position): Doc fix.
11123
111241998-11-20 Richard Stallman <rms@psilocin.ai.mit.edu>
11125
11126 * keymap.c (Fmake_keymap): Doc fix.
11127
111281998-11-17 Kenichi Handa <handa@etl.go.jp>
11129
11130 * category.c (word_boundary_p): If C1 or C2 are composite
11131 characters, test their first components.
11132
111331998-11-16 Richard Stallman <rms@sucrose.ai.mit.edu>
11134
11135 * window.c (temp_output_buffer_show): Around temp-buffer-show-hook,
11136 don't do save-excursion, just restore selected window.
11137
11138 * window.c (window_loop): For UNSHOW_BUFFER,
11139 always do consider minibuffer windows.
11140
111411998-11-16 Kenichi Handa <handa@etl.go.jp>
11142
11143 * charset.h (SINGLE_BYTE_CHAR_P): Check if C is negative or not.
11144
11145 * charset.c (non_ascii_char_to_string): If C is negative, signal error.
11146
11147 * lisp.h (CHAR_TABLE_REF): Check if IDX is negative or not.
11148
11149 * s/bsdos4.h: New file.
11150
111511998-11-16 Kenichi Handa <handa@etl.go.jp>
11152
11153 * Makefile.in (abbrev.o): Depend on charset.h
11154 (bytecode.o): Depend on charset.h.
11155
11156 * bytecode.c: Include charset.h.
11157
11158 * abbrev.c: Include charset.h.
11159
11160 * syntax.h (SYNTAX_ENTRY_INT): For a composite character, check
11161 the first component.
11162
111631998-11-13 Ehud Karni <ehud@unix.simonwiesel.co.il>
11164
11165 * m/aviion-intel.h (LIBS_MACHINE): Delete redundant definition.
11166
111671998-11-11 Richard Stallman <rms@gnu.org>
11168
11169 * xterm.c (XTread_socket): Fix previous change in case F == 0.
11170
11171 * s/dgux5-4-3.h (BSD_PGRPS): Add #undef.
11172
11173 * s/dgux4.h (BROKEN_FIONREAD): #undef commented out.
11174 (INTERRUPT_INPUT): #define commented out.
11175
11176 * m/aviion-intel.h: New file.
11177
111781998-11-11 Eli Zaretskii <eliz@delysid.gnu.org>
11179
11180 * fns.c (MAX_ALLOCA): New macro.
11181 (Fbase64_encode_region, Fbase64_encode_string,
11182 Fbase64_decode_region, Fbase64_decode_string): Don't allocate
11183 more than MAX_ALLOCA bytes with alloca; otherwise use xmalloc.
11184
111851998-11-11 Ken'ichi Handa <handa@delysid.gnu.org>
11186
11187 * insdel.c (byte_combining_error): Error message improved.
11188
11189 * charset.c (char_valid_p): Handle a composite character correctly.
11190
111911998-11-11 Kenichi Handa <handa@etl.go.jp>
11192
11193 * charset.c (str_cmpchar_id): Check the byte sequence for
11194 composition more rigidly.
11195 (Fcompose_string): Allow DEL to be composed. Signal error if STR
11196 contains an invalid multibyte sequence.
11197
11198 * xterm.c (x_list_fonts): Don't change the value of maxnames.
11199
112001998-11-10 Andrew Innes <andrewi@harlequin.co.uk>
11201
11202 * w32term.h (struct w32_display_info): New element faked_key.
11203 (WM_EMACS_SETKEYBOARDLAYOUT):
11204 (WM_EMACS_REGISTER_HOT_KEY):
11205 (WM_EMACS_UNREGISTER_HOT_KEY): New message definitions.
11206 (LEFT_WIN_PRESSED):
11207 (RIGHT_WIN_PRESSED):
11208 (APPS_PRESSED): New console keyboard modifier flags.
11209
11210 * w32term.c (convert_to_key_event): Removed.
11211 (is_dead_key): Copied to w32fns.c.
11212 (w32_read_socket): Generate language_change_event. Modify to work
11213 with keyboard handling changes in w32_wnd_proc.
11214
11215 * w32proc.c (sys_kill): Set extended key flag when faking
11216 Ctrl-Break keystrokes.
11217 (Fw32_get_locale_info): Allow LONGFORM parameter to specify an
11218 arbitrary locale property using a numerical index.
11219 (Vw32_valid_codepages): New variable.
11220 (enum_codepage_fn):
11221 (Fw32_get_valid_codepages):
11222 (Fw32_get_console_codepage):
11223 (Fw32_set_console_codepage):
11224 (Fw32_get_console_output_codepage):
11225 (Fw32_set_console_output_codepage):
11226 (Fw32_get_codepage_charset):
11227 (Fw32_get_valid_keyboard_layouts):
11228 (Fw32_get_keyboard_layout):
11229 (Fw32_set_keyboard_layout): New functions, exposing Windows locale
11230 handling functions.
11231 (syms_of_ntproc): Register them.
11232
11233 * w32inevt.c: Include w32term.h and w32heap.h.
11234 (map_keypad_keys):
11235 (Vw32_enable_caps_lock):
11236 (Vw32_enable_num_lock):
11237 (Vw32_pass_lwindow_to_system):
11238 (Vw32_pass_rwindow_to_system):
11239 (Vw32_lwindow_modifier):
11240 (Vw32_rwindow_modifier):
11241 (Vw32_apps_modifier):
11242 (Vw32_scroll_lock_modifier):
11243 (w32_key_to_modifier): Add externs.
11244 (w32_kbd_mods_to_emacs): Recognize Windows keys, Apps key, and
11245 Scroll Lock as potential modifiers; exclude numpad keys from
11246 effect by CapsLock; act on Vw32_enable_caps_lock; remove obsolete
11247 code.
11248 (is_dead_key): Copy from w32fns.c.
11249 (w32_kbd_patch_key): Comment attempt to improve handling of
11250 dead-keys, and system bug relating to same on Windows NT. Work
11251 around the bug by calling ToUnicode and then converting to the
11252 correct codepage.
11253 (map_virt_key): Removed obsolete variable.
11254 (lispy_function_keys): Add extern.
11255 (key_event): Major rework of keyboard input handling: optionally
11256 recognize Windows keys and Apps key as modifiers; optionally treat
11257 NumLock, CapsLock and ScrollLock as function keys; let system
11258 translate keystrokes to characters to avoid system bugs relating
11259 to dead-key handling; preserve shift distinction for control
11260 characters. Remove some obsolete code.
11261
11262 * makefile.nt ($(BLD)\w32inevt.obj): Add dependencies on w32term.h
11263 and w32heap.h.
11264
11265 * w32fns.c (Vw32_pass_optional_keys_to_system): Variable removed.
11266 (Vw32_pass_lwindow_to_system):
11267 (Vw32_pass_rwindow_to_system):
11268 (Vw32_lwindow_modifier):
11269 (Vw32_rwindow_modifier):
11270 (Vw32_apps_modifier):
11271 (Vw32_enable_num_lock):
11272 (Vw32_enable_caps_lock):
11273 (Vw32_scroll_lock_modifier): New variables.
11274 (modifier_set): Return toggle state for Scroll Lock.
11275 (w32_key_to_modifier): New function. Returns chosen modifier bit
11276 for given key.
11277 (w32_get_modifiers): Returns modifier flags for
11278 non-keyboard input events.
11279 (construct_console_modifiers): Renamed from construct_modifiers;
11280 recognize Windows and Apps keys as modifiers.
11281 (w32_get_key_modifiers): New function. Returns modifier flags for
11282 keyboard input events.
11283 (map_keypad_keys): Make non-static. Use second arg as extended
11284 flag.
11285 (w32_grabbed_keys): New variable.
11286 (HOTKEY, HOTKEY_ID, HOTKEY_VK_CODE, HOTKEY_MODIFIERS): New macros.
11287 (register_hot_keys):
11288 (unregister_hot_keys):
11289 (lookup_vk_code):
11290 (w32_parse_hot_key):
11291 (Fw32_register_hot_key):
11292 (Fw32_unregister_hot_key):
11293 (Fw32_registered_hot_keys):
11294 (Fw32_reconstruct_hot_key): New functions to support hotkeys.
11295 (post_character_message): New function.
11296 (w32_msg_pump): Handle new messages for using hotkeys and changing
11297 keyboard layout/language.
11298 (w32_wnd_proc): Major rework of keyboard input handling:
11299 optionally recognize Windows keys and Apps key as modifiers;
11300 optionally treat NumLock, CapsLock and ScrollLock as function
11301 keys; let system translate keystrokes to characters to avoid
11302 system bugs relating to dead-key handling; preserve shift
11303 distinction for control characters; forward keyboard
11304 layout/language changes to lisp; detect and convert hot-key events
11305 to normal keystrokes.
11306 (syms_of_w32fns): Register new functions and variables.
11307 (w32_last_error): New function for use in debugging.
11308
113091998-11-10 Kenichi Handa <handa@etl.go.jp>
11310
11311 * category.h (CATEGORY_SET): Adjusted for the change of
11312 cmpchar_component.
11313 (CATEGORY_SET): Likewise.
11314
11315 * charset.c (cmpchar_component): New arg NOERROR. Check
11316 composition char ID more strictly.
11317 (Fcmpchar_component): Call cmpchar_component with NOERROR arg zero.
11318 (Fcmpchar_cmp_rule): If CHARACTER should be composed relatively,
11319 return 255.
11320 (Fcompose_string): Signal error if STR contains a rule-based
11321 composition character.
11322
11323 * charset.h (cmpchar_component): Proto-type adjusted.
11324
113251998-11-09 Kenichi Handa <handa@etl.go.jp>
11326
11327 * charset.c (string_to_non_ascii_char): Return correct length for
11328 a charset of dimension 2 and composition character.
11329
113301998-11-08 Richard Stallman <rms@sucrose.ai.mit.edu>
11331
11332 * keymap.c (Fsingle_key_description): Handle generic characters.
11333
11334 * process.c (Fprocess_status): Doc fix.
11335
113361998-11-06 Ken'ichi Handa <handa@delysid.gnu.org>
11337
11338 * charset.c (init_charset_once): Fix previous change.
11339
113401998-11-06 Kenichi Handa <handa@etl.go.jp>
11341
11342 * charset.c (string_to_non_ascii_char): Fix previous change.
11343 (char_valid_p): Check the validity of CHARSET by CHARSET_DEFINED_P.
11344
11345 * charset.h (SPLIT_NON_ASCII_CHAR): Check dimension of an invalid
11346 character correctly.
11347 (STRING_CHAR): Handle an invalid charater correctly.
11348
113491998-11-05 Kenichi Handa <handa@etl.go.jp>
11350
11351 * charset.c (string_to_non_ascii_char): Fix previous change.
11352
11353 * charset.h (MAKE_NON_ASCII_CHAR): Check validity of CHARSET.
11354
11355 * editfns.c (Fstring_to_char): Don't return a multibyte character
11356 if STRING is a unibyte string.
11357
11358 * indent.c (MULTIBYTE_BYTES_WIDTH): Check validity of a multibyte
11359 character.
11360
11361 * xdisp.c (display_text_line): Check validity of a multibyte character.
11362 (display_string): Likewise. Handle an invalid character correctly.
11363
113641998-11-05 Karl Heuer <kwzh@gnu.org>
11365
11366 * insdel.c (Fcombine_after_change_execute): Return nil, not junk.
11367 If nothing to do, return immediately.
11368 (syms_of_insdel): Initialize combine_after_change_buffer.
11369
113701998-11-05 Richard Stallman <rms@gnu.org>
11371
11372 * xterm.c (XTread_socket): ButtonPress clears f->mouse_moved.
11373
113741998-11-04 Geoff Voelker <voelker@cs.washington.edu>
11375
11376 * w32term.c (w32_enable_unicode_output): Rename from
11377 w32_no_unicode_output.
11378 (w32_use_unicode_for_codepage, syms_of_w32term): Use new name
11379 and new semantics.
11380
113811998-11-04 Jason Rumney <jasonr@altavista.net>
11382
11383 * w32fns.c (w32_list_fonts): Report an error if a frame has not
11384 been created yet.
11385
11386 * w32term.c (dumpglyphs): Use FRAME_FONT for w32_fill_area.
11387
113881998-11-04 Kenichi Handa <handa@etl.go.jp>
11389
11390 * charset.c (string_to_non_ascii_char): Change the check for the
11391 varidity of multibyte form.
11392 (update_charset_table): Check validity of BYTES. Don't set
11393 bytes_by_char_head here.
11394 (init_charset_once): Set bytes_by_char_head completely.
11395
11396 * frame.c (do_switch_frame): Cancel previous change.
11397
11398 * print.c (print_string): Check validity of a character.
11399 (print): Likewise.
11400
11401 * sysdep.c [nec_ews_svr4]: Extern *_sobuf.
11402
11403 * m/ews4800.h, s/ux4800.h: New files.
11404
114051998-11-03 Theodore Jump <tjump@tertius.com>
11406
11407 * makefile.nt: Compile multiple source files when possible.
11408
11409 * w32faces.c (Qmouse_face): Replace definition with extern decl.
11410
114111998-11-03 Andrew Innes <andrewi@delysid.gnu.org>
11412
11413 * w32.c (stat): GetFileInformationByHandle can legitimately fail,
11414 so don't rely on it succeeding.
11415
11416 * w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the w32
11417 LOGFONT struct if x font doesn't specify the charset.
11418 (x_to_w32_charset): Change >= to == when testing results of
11419 stricmp.
11420
114211998-11-02 Richard Stallman <rms@sucrose.ai.mit.edu>
11422
11423 * fns.c (Frequire): New arg NOERROR.
11424
114251998-11-02 Andrew Innes <andrewi@harlequin.co.uk>
11426
11427 * fileio.c (Fsubstitute_in_file_name) [DOS_NT]: Fix typo.
11428
114291998-10-31 Richard Stallman <rms@psilocin.ai.mit.edu>
11430
11431 * xfaces.c (Qmouse_face): Replace definition with extern decl.
11432 (syms_of_xfaces): Initialization deleted.
11433
11434 * textprop.c (Qmouse_face): Variable definition moved here.
11435 (syms_of_textprop): Initialize it.
11436
11437 * data.c (set_internal): For built-in maybe-local vars,
11438 when BINDFLAG is set, do not mark them as local.
11439
114401998-10-31 Ken'ichi Handa <handa@delysid.gnu.org>
11441
11442 * insdel.c (replace_range): Fix previous change.
11443
114441998-10-31 Kenichi Handa <handa@etl.go.jp>
11445
11446 * editfns.c (Fsubst_char_in_region): Fix previous change.
11447 (Ftranslate_region): Fix previous change.
11448
11449 * fns.c (Fbase64_decode_region): Fix previous change.
11450
11451 * frame.c (do_switch_frame): Update minibuf_window if necessary.
11452
11453 * insdel.c (byte_combining_error): New function.
11454 (CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
11455 (insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
11456 CHECK_BYTE_COMBINING_FOR_INSERT.
11457 (insert_from_buffer_1): Likewise.
11458 (adjust_after_replace): Check the posibility of inhibitted byte
11459 combining correctly.
11460 (replace_range): Before signaling an error for inhibitted byte
11461 combining, recover the buffer in a safe state.
11462 (del_range_2): Check the posibility of inhibitted byte combining
11463 correctly.
11464
114651998-10-30 Andreas Schwab <schwab@delysid.gnu.org>
11466
11467 * xselect.c (Vselection_coding_system): Doc fix.
11468
11469 * fns.c (Fbase64_encode_region): Use SET_PT_BOTH instead of SET_PT
11470 when we have both char and byte position. Fix type clashes.
11471
11472 * eval.c (Fsignal): Use a separate format string when passing
11473 error message string to fatal, in case it contains %'s.
11474
11475 * editfns.c (Fchar_after): Fix type clashes.
11476
11477 * charset.c (Fchar_bytes): Doc fix.
11478 (char_bytes): Fix returned value to match returned type.
11479 (syms_of_charset): Fix type clash in initialisation of
11480 Vauto_fill_chars.
11481
114821998-10-29 Geoff Voelker <voelker@cs.washington.edu>
11483
11484 * w32console.c (initialize_w32_display): Use buffer coords
11485 instead of buffer size (which may be larger than the window).
11486
11487 * fileio.c (init_fileio_once): New function.
11488
11489 * emacs.c (main): Invoke init_fileio_once.
11490
114911998-10-28 Paul Eggert <eggert@twinsun.com>
11492
11493 * xterm.c (XTread_socket): Check the returned value of
11494 XmbLookupString more carefully.
11495
114961998-10-28 Kenichi Handa <handa@etl.go.jp>
11497
11498 * coding.c (DECODE_CHARACTER_ASCII): Check validity of inserted code.
11499 (DECODE_CHARACTER_DIMENSION1): Likewise.
11500 (DECODE_CHARACTER_DIMENSION2): Likewise.
11501 (decode_coding_sjis_big5): Check the 2nd byte of SJIS correctly.
11502
11503 * editfns.c (Fsubst_char_in_region): Fix previous change.
11504 (Ftranslate_region): Fix previous change.
11505
11506 * insdel.c (check_markers): Check if markers are at character boundry.
11507 (adjust_markers_for_insert): Fix previous change.
11508 (count_combining_before): Don't limit the check at BEGV.
11509 (count_combining_after): Don't limit the check at ZV.
11510 (CHECK_BYTE_COMBINING_FOR_INSERT): New macro.
11511 (insert_1_both): Call CHECK_BYTE_COMBINING_FOR_INSERT.
11512 (insert_from_string_1): Likewise.
11513 (insert_from_buffer_1): Likewise.
11514 (adjust_after_replace): Inhibit bytes combined across region
11515 boundary. Update end_unchanged correctly.
11516 (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. Update
11517 end_unchanged correctly.
11518 (del_range_2): Inhibit bytes combined across region boundary.
11519 Update end_unchanged correctly.
11520
115211998-10-27 Geoff Voelker <voelker@cs.washington.edu>
11522
11523 * w32.c (check_windows_init_file): Also look in load path specified
11524 in environment.
11525
11526 * w32console.c (Fset_message_beep): Recognize 'silent.
11527 (w32_sys_ring_bell): Do nothing for the 'silent sound.
11528
11529 * w32fns.c (w32_color_map_lookup): Remove duplicate definition.
11530
11531 * w32select.c (Vnext_selection_coding_system): New variable.
11532 (syms_of_w32select): DEFVAR_LISP it.
11533 (Fw32_set_clipboard_data): Use Vnext_selection_coding_system if
11534 non-nil. Always convert multibyte strings.
11535 (Fw32_get_clipboard_data): Use Vnext_selection_coding_system if
11536 non-nil. Always convert a string that includes non-ASCII characters.
11537
115381998-10-27 Richard Stallman <rms@psilocin.ai.mit.edu>
11539
11540 * fns.c (Fbase64_decode_string): Doc fix.
11541 (Fbase64_decode_region, Fbase64_encode_string Fbase64_encode_region):
11542 Likewise.
11543
115441998-10-27 Dave Love <fx@gnu.org>
11545
11546 * fns.c (Fbase64_decode_region, Fbase64_encode_region): Fix
11547 newline in doc string.
11548
115491998-10-27 Kenichi Handa <handa@etl.go.jp>
11550
11551 * editfns.c (Fsubst_char_in_region): Correctly handle the case
11552 that byte combining before happens.
11553 (Ftranslate_region): Likewise.
11554
11555 * insdel.c (adjust_after_replace): Correctly handle the case that
11556 both byte combining before and byte combining after happen.
11557 (replace_range): Likewise.
11558
115591998-10-26 Kenichi Handa <handa@etl.go.jp>
11560
11561 * category.c (syms_of_category): Doc-string modified.
11562
11563 * coding.c (code_convert_region): Kill the work buffer created by
11564 pre-write-conversion.
11565
115661998-10-25 Jason Rumney <jasonr@altavista.net>
11567
11568 * emacs.c (main) [HAVE_NTGUI]: Invoke syms_of_fontset().
11569
115701998-10-23 Kenichi Handa <handa@etl.go.jp>
11571
11572 * coding.c (code_convert_region): While preserving the orignal
11573 point, pay attention to the byte combining problem.
11574
11575 * fns.c (Fbase64_decode_region): Pay attention to the byte
11576 combining problem.
11577
11578 * insdel.c (adjust_markers_for_insert): Adjust markers by taking
11579 combined_before_bytes and combined_after_bytes into account.
11580 (count_combining_after): Handle the case that LENGTH is zero.
11581 (adjust_after_replace): Record deletion at correct buffer
11582 position. Handle the case that LEN is zero.
11583 (replace_range): Record deletion at correct buffer position.
11584 (del_range_2): Call adjust_makers_for_replace to adjust makers for
11585 combined bytes.
11586
115871998-10-21 Richard Stallman <rms@psilocin.ai.mit.edu>
11588
11589 * alloc.c (Fgarbage_collect): Block input around most of the function.
11590
115911998-10-21 Kenichi Handa <handa@etl.go.jp>
11592
11593 * coding.c (setup_coding_system): Fix setting up
11594 coding->spec.ccl.valid_codes for CCL based coding system.
11595 (code_convert_region): Set point to FROM before inserting the
11596 result of pre-write-funciton. Preserve original point.
11597 (code_convert_string): If coding->type is coding_type_ccl, do
11598 conversion even if the length of conversion region is zero.
11599
11600 * fontset.c: Include frame.h before fontset.h.
11601 (list_fonts_func): Fix prototype.
11602
11603 * frame.c: Include frame.h before fontset.h.
11604
11605 * xterm.c: Likewise.
11606
116071998-10-21 Jason Rumney <jasonr@altavista.net>
11608
11609 * x-list-font.c (Fx_list_fonts): Access frame parameters throught
11610 general macros. Don't call x_list_font directory, instead call a
11611 function set in list_fonts_func.
11612
11613 * fontset.h (list_fonts_func): Fix prototype.
11614
116151998-10-20 Jason Rumney <jasonr@altavista.net>
11616
11617 * makefile.nt (w32fns.c): Add x-list-font.c to dependancies.
11618
11619 * w32faces.c: Update comments referring to obsolete structs.
11620 (allocate_face, copy_face, face_eql, load_font,
11621 Fpixmap_spec_p, free_frame_faces, new_computed_face,
11622 frame_update_line_height, merge_faces, compute_base_face,
11623 Fset_face_attribute_internal): Use fontset support based on xfaces.c.
11624
11625 * w32fns.c: (Vx_pixel_size_width): New global variable.
11626 (unibyte_display_via_language_environment): New global variable.
11627 (x_set_font): Add support for setting fontsets.
11628 (Fx_create_frame): Add check_w32(). Initialize fontsets. Fix
11629 font names to match xlfd-tight-regexp.
11630 (w32_load_font): Rewrite based on x_load_font.
11631 (x_to_w32_charset, w32_to_x_charset): Add character sets. Use
11632 `iso8859-1' rather than `ansi'.
11633 (w32_to_x_font): Remove `-' from font name. Remove the `-' off the
11634 end. Move charset into `charset registry' field.
11635 (enum_font_cb2): Check charsets match. Include width in font list.
11636 (w32_list_fonts): Rewrite based on x_list_fonts.
11637 Moved from w32term.c to have access to enumfont_t struct.
11638 (Fx_list_fonts): w32 specific version eliminated. Include
11639 `x-list-fonts.c'.
11640 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New
11641 functions for fontset support - adapted from x_ equivalents.
11642 (syms_of_w32fns): New lisp variables initialised. Function
11643 pointers for fontset.c set up.
11644
11645 * w32term.c: Include fontset.h. Define codepage macros.
11646 Add ENCODE_BIG5 macro from coding.c.
11647 (w32_no_unicode_output): New variable.
11648 (w32_codepage_for_charset, w32_use_unicode_for_codepage): New
11649 functions.
11650 (BUILD_WCHAR_T, BYTE1, BYTE2): New macros.
11651 (dumpglyphs): Rewrite based on xterm.c equivalent.
11652 (x_new_font): Use functionality provided in fontset.c.
11653 (x_new_fontset): New function based on the one in xterm.c.
11654 (syms_of_w32term): Add w32-no-unicode-output flag.
11655
11656 * w32term.h: Remove redundant font_info struct definition.
11657 (Vx_pixel_size_width_font_regexp,
11658 unibyte_display_via_language_environment): Declare variables.
11659 (w32_list_fonts, w32_get_font_info, w32_query_font, w32_load_font):
11660 Declare functions.
11661 (w32_output): New fields font_baseline and fontset.
11662 (FRAME_FONTSET, FRAME_W32_FONT_TABLE): New macros.
11663
11664 * w32xfns.c: Include charset.h and fontset.h.
11665
116661998-10-20 Richard Stallman <rms@psilocin.ai.mit.edu>
11667
11668 * syntax.c (syms_of_syntax): Fix the setup of Qscan_error.
11669
116701998-10-20 Eli Zaretskii <eliz@mescaline.gnu.org>
11671
11672 * msdos.c (mouse_init): Reset the button press/release info of the
11673 mouse driver.
11674 (mouse_preempted): New variable.
11675 (dos_rawgetc): Don't generate mouse events if mouse is preempted.
11676 (XMenuActivate): Preempt the mouse during menu-handling loop.
11677 Release the current time slice while idling in the menu-handling
11678 loop. Leave the loop only if the user pressed, then released the
11679 same button. Discard all mouse events that are pending in the
11680 event queue before exiting.
11681
116821998-10-19 Richard Stallman <rms@psilocin.ai.mit.edu>
11683
11684 * editfns.c (Fformat): Increase buffer size for floating format.
11685
116861998-10-17 Kenichi Handa <handa@etl.go.jp>
11687
11688 * charset.c (Vauto_fill_chars, Qauto_fill_chars): New variables.
11689 (syms_of_charset): Staticpro and initialize Qauto_fill_chars.
11690 Declare auto-fill-chars as a Lisp variable and initialize it.
11691
11692 * charset.h (Vauto_fill_chars): Extern it.
11693
11694 * cmds.c (internal_self_insert): Check Vauto_fill_chars.
11695
116961998-10-16 Kenichi Handa <handa@etl.go.jp>
11697
11698 * casefiddle.c (casify_object): Use make_string instead of
11699 make_specified_string to cope with byte-combining situation.
11700
11701 * coding.c (decode_coding_iso2022): Set coding->fake_multibyte to
11702 1 when encountered with a code of the range 0x80..0x9F.
11703
117041998-10-14 Eli Zaretskii <eliz@mescaline.gnu.org>
11705
11706 * callproc.c (Fcall_process) [MSDOS]: Use $TMPDIR instead of
11707 trying $TMP and $TEMP, since the former is always set in msdos.c.
11708 (Fcall_process_region) [DOS_NT]: When looking for a place to put
11709 the temporary files, check $TMPDIR as well.
11710
117111998-10-14 Richard Stallman <rms@psilocin.ai.mit.edu>
11712
11713 * process.c (exec_sentinel, read_process_output):
11714 Restore waiting_for_user_input_p after running Lisp code.
11715
11716 * keyboard.c (parse_menu_item): Avoid initialization for Lisp_Object.
11717 (command_loop): Likewise.
11718
117191998-10-14 Kenichi HANDA <handa@etl.go.jp>
11720
11721 * data.c (Faset): Fix previous change.
11722
11723 * fns.c (Ffillarray): Fix previous change.
11724
11725 * insdel.c (adjust_markers_for_combining): This function deleted.
11726 (adjust_markers_for_replace): Correctly adjust marker positions.
11727 Don't record these adjustment because they were recorded already.
11728 (combine_bytes): Don't adjust markers here.
11729
117301998-10-13 Richard Stallman <rms@psilocin.ai.mit.edu>
11731
11732 * minibuf.c (Fdisplay_completion_list): Put on mouse-face properties.
11733
117341998-10-12 Richard Stallman <rms@psilocin.ai.mit.edu>
11735
11736 * keyboard.c (Fclear_this_command_keys): New function.
11737 (syms_of_keyboard): defsubr it.
11738
11739 * macros.c (Fexecute_kbd_macro): Set real_this_command.
11740
117411998-10-12 Kenichi Handa <handa@etl.go.jp>
11742
11743 * ccl.c (CCL_DECODE_SJIS, CCL_ENCODE_SJIS): Swap the definitions.
11744
11745 * charset.c (Fstring): Call make_string instead of
11746 make_string_from_bytes.
11747 (Ffind_charset_region): Include `composition' in the returned list
11748 if the region contains any composite characters.
11749 (Ffind_charset_string): Include `composition' in the returned list
11750 if the string contains any composite characters.
11751 (find_charset_in_str): Handle CMPCHARP arg correctly.
11752
11753 * coding.c (shrink_decoding_region): If a charset other than ascii
11754 is initially designated to G0, don't shrink the region.
11755 (shrink_encoding_region): Likewise.
11756
11757 * data.c (Faset): If ARRAY is a multibyte string, pay attention to
11758 byte-combining situation.
11759
11760 * fns.c (clear_string_char_byte_cache): New function.
11761 (Ffillarray): Handle multibyte string correctly.
11762
11763 * lisp.h (clear_string_char_byte_cache): Extern it.
11764
11765 * xselect.c (lisp_data_to_selection_data): Call
11766 find_charset_in_str with CMPCHARP arg 0.
11767 * w16select.c (Fw16_set_clipboard_data): Likewise.
11768 * w32select.c (Fw32_set_clipboard_data): Likewise.
11769
117701998-10-11 Richard Stallman <rms@psilocin.ai.mit.edu>
11771
11772 * keyboard.c (parse_menu_item): For top level of menu bar,
11773 accept ordinary commands, and treat them just like a keymap.
11774
117751998-10-11 Richard Stallman <rms@sucrose.ai.mit.edu>
11776
11777 * xdisp.c (redisplay_window): Clear w->window_end_valid
11778 before running the window-scroll-functions hook, if appropriate.
11779
117801998-10-10 Richard Stallman <rms@psilocin.ai.mit.edu>
11781
11782 * data.c (Fstring_to_number): Don't recognize floating point
11783 if base is not 10.
11784
11785 * window.c (window_loop): New alternative CHECK_ALL_WINDOWS.
11786 (check_all_windows): New function for debugging tests.
11787 (syms_of_window): Initialize it.
11788
11789 * window.c (Qwindow_configuration_p): New variable.
11790 (Fwindow_configuration_frame): New function.
11791 (syms_of_window): defsubr it.
11792 (Fset_window_configuration): Return t if frame is live.
11793 Use Qwindow_configuration_p.
11794
11795 * xfns.c (check_x_display_info): Don't use selected_frame
11796 if it is dead.
11797
117981998-10-09 Geoff Voelker <voelker@cs.washington.edu>
11799
11800 * w32fns.c (x_create_bitmap_from_file): Skip special files.
11801
118021998-10-08 Kenichi Handa <handa@etl.go.jp>
11803
11804 * buffer.h (inhibit_modification_hooks): Extern it.
11805
11806 * buffer.c (inhibit_modification_hooks): New variable.
11807 (init_buffer_once): Initialize inhibit_modification_hooks to 0.
11808
11809 * charset.c (invalid_character): Prepend `0' to octal
11810 representation. Give error sufficient args.
11811
11812 * coding.c (code_convert_region): Set inhibit_modification_hooks
11813 to 1 before calling Fset_text_properties.
11814
11815 * insdel.c (signal_before_change): If inhibit_modification_hooks
11816 is nonzero, do nothing.
11817 (signal_after_change): Likewise.
11818
118191998-10-08 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE>
11820
11821 * process.c: Doc fixes.
11822
118231998-10-08 Richard Stallman <rms@sucrose.ai.mit.edu>
11824
11825 * syntax.c (scan_lists): Bring FROM back into range BEGV...ZV.
11826
118271998-10-07 Geoff Voelker <voelker@cs.washington.edu>
11828
11829 * w32.c (init_ntproc): Check for Windows init file.
11830 (term_ntproc): Do not check for it here.
11831
118321998-09-28 Kenichi Handa <handa@etl.go.jp>
11833
11834 * coding.c (check_composing_code): Fix previous change. Now it
11835 alwasy returns 0 or -1.
11836 (decode_coding_iso2022): Adjusted for the above change.
11837 (encode_coding_iso2022): When encoding the last block, flush out
11838 tailing garbage bytes.
11839 (setup_coding_system): Delete unnecessary code.
11840 (shrink_decoding_region): Check translation table. If ASCII
11841 should be translated, give up shrinking.
11842 (shrink_encoding_region): Likewise.
11843 (SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
11844 (SHRINK_CONVERSION_REGION): New macro.
11845 (code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
11846 properties here.
11847 (code_convert_region): In the case of encoding, always calulate
11848 correct character number.
11849 (code_convert_string): Call SHRINK_CONVERSION_REGION.
11850 (code_convert_region1): Don't delete text properties here.
11851
11852 * insdel.c (adjust_after_replace): Don't delete text properties here.
11853
11854 * term.c (encode_terminal_code): Handle raw 8-bit codes correctly.
11855
118561998-09-27 Richard Stallman <rms@psilocin.ai.mit.edu>
11857
11858 * emacs.c (sort_args): Fill extra space with NULL ptrs.
11859
118601998-09-26 Kenichi Handa <handa@etl.go.jp>
11861
11862 * coding.h (struct coding_system): New member composed_chars.
11863
11864 * coding.c (check_composing_code): If the current composing
11865 sequence doesn't end properly, return -1.
11866 (DECODE_CHARACTER_ASCII): Update coding->composed_chars.
11867 (DECODE_CHARACTER_DIMENSION1): Likewise.
11868 (decode_coding_iso2022): Check validity of a composing sequence.
11869 (code_convert_string): If the length of text to be converted is
11870 shrunk to zero, don't perform code conversion.
11871 (shrink_decoding_region): Fix previous change.
11872
11873 * editfns.c (Fformat): Check format control characters.
11874
118751998-09-25 Kenichi Handa <handa@etl.go.jp>
11876
11877 * coding.c (decode_eol): While decoding DOS-like eol, handle a
11878 single CR code correctly.
11879 (shrink_decoding_region) <CODING_CATEGORY_IDX_ISO_7 or
11880 CODING_CATEGORY_IDX_ISO_7_TIGHT>: Skip also 8-bit codes.
11881
118821998-09-23 Geoff Voelker <voelker@cs.washington.edu>
11883
11884 * w32fns.c (w32_color_map_lookup): New function.
11885 (x_to_w32_color): Approximate colors ending in numbers if necessary.
11886
118871998-09-22 Kenichi Handa <handa@etl.go.jp>
11888
11889 * ccl.c (ccl_driver): Report correct CCL program counter on error.
11890
11891 * xmenu.c (single_submenu) [! HAVE_MULTILINGUAL_MENU]: Make
11892 strings unibyte.
11893 (xmenu_show) [! HAVE_MULTILINGUAL_MENU]: Likewise.
11894
118951998-09-22 Kenichi Handa <handa@etl.go.jp>
11896
11897 * callint.c (Fcall_interactively): Don't use input method when
11898 reading a character in the case of `c' code letter.
11899
119001998-09-21 Dave Love <fx@gnu.org>
11901
11902 * editfns.c (Fsave_restriction): Doc fix.
11903
119041998-09-21 Richard Stallman <rms@gnu.org>
11905
11906 * lread.c (build_load_history): Do add to Vload_history
11907 even when dumping Emacs.
11908
119091998-09-18 Kenichi Handa <handa@etl.go.jp>
11910
11911 * ccl.c (CCL_WRITE_CHAR): Don't use bcopy.
11912 (ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0,
11913 cause error if the program is going to output some bytes. When
11914 outputing a string to notify an error, check the case that
11915 DST_BYTES is zero.
11916
11917 * coding.h (CODING_FINISH_INTERRUPT): New macro.
11918
11919 * coding.c (ccl_coding_driver): If ccl_driver is interrupted by a
11920 user or the CCL program executed an invalid command, return
11921 CODING_FINISH_INTERRUPT.
11922 (code_convert_region): Pay attention to the converters return
11923 value CODING_FINISH_NORMAL and CODING_FINISH_INTERRUPT.
11924
119251998-09-16 Kenichi Handa <handa@etl.go.jp>
11926
11927 * coding.c (code_convert_region): Update beg_unchanged and
11928 end_unchanged after we delete the source text.
11929
11930 * insdel.c (adjust_markers_for_replace): Don't adjust a byte
11931 position if it is FROM.
11932 (adjust_markers_for_combining): New function.
11933 (combine_bytes): Call adjust_markers_for_combining instead of
11934 adjust_markers_for_replace.
11935 (adjust_after_replace): Record deletion of combining after bytes
11936 with the correct position.
11937 (replace_range): Likewise. Record the actual deletion after
11938 recoding deletions of combining bytes.
11939
11940 * xdisp.c (message_log_check_duplicate): Count byte length of the
11941 latest message correctly.
11942
119431998-09-12 Richard Stallman <rms@gnu.org>
11944
11945 * xdisp.c (redisplay_internal): Use TEMP_SET_PT_BOTH
11946 instead of SET_PT_BOTH.
11947 (try_window_id, display_text_line): Likewise.
11948
119491998-09-12 Karl Heuer <kwzh@gnu.org>
11950
11951 * data.c (Fmake_local_variable): Doc fix.
11952
119531998-09-10 Dave Love <fx@gnu.org>
11954
11955 * print.c (Fwith_output_to_temp_buffer): Doc fix.
11956
119571998-09-10 Richard Stallman <rms@gnu.org>
11958
11959 * s/irix6-0.h (TIOCSIGSEND): Add #undef.
11960 (bcopy, bcmp, bzero): Add #undef.
11961
11962 * keyboard.c (command_loop_1): When switching to selected window's bfr,
11963 first exit if selected frame is dead (no live frames remain).
11964 (read_key_sequence): Likewise.
11965
119661998-09-10 Karl Heuer <kwzh@gnu.org>
11967
11968 * emacs.c (main): Mention --display and --eval in help.
11969
119701998-09-07 Paul Eggert <eggert@twinsun.com>
11971
11972 * editfns.c (emacs_memftime): New function.
11973 (Fformat_time_string): Use it to handle null bytes in formats
11974 correctly.
11975
119761998-09-08 Kenichi Handa <handa@etl.go.jp>
11977
11978 * charset.c (Ffind_charset_region): Optimization for unibyte buffer.
11979 (Ffind_charset_string): For unibyte string, return (ascii).
11980
11981 * editfns.c (Fsubst_char_in_region): Call replace_range with the
11982 arg MARKERS 1.
11983
11984 * insdel.c (adjust_after_replace): Don't add combining bytes to
11985 the args given to adjust_point. Handle correctly the case that
11986 there are both before and after combining bytes.
11987 (replace_range): Likewise.
11988
119891998-09-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
11990
11991 * fns.c (base64_decode_1, base64_encode_1): New functions.
11992 (Fbase64_decode_string, Fbase64_encode_string): New functions.
11993 (Fbase64_decode_region, Fbase64_encode_region): New functions.
11994
119951998-09-07 Karl Heuer <kwzh@gnu.org>
11996
11997 * eval.c (error): After enlarging buffer, write to it, not to buf.
11998
11999 * fns.c (Fwidget_put): Return VALUE instead of garbage.
12000
120011998-09-07 Kenichi Handa <handa@etl.go.jp>
12002
12003 * charset.h (STRING_CHAR_AND_LENGTH): Return correct value in
12004 ACTUAL_LEN even if LEN is too short to have a valid multibyte form.
12005 (STRING_CHAR_AND_CHAR_LENGTH): Likewise.
12006
12007 * coding.c (ccl_coding_driver): Always calculate correct mulibyte
12008 chars in produced byte sequence.
12009 (Ffind_operation_coding_system): Doc-string fixed.
12010
12011 * insdel.c (count_combining_after): Check also preceding bytes at
12012 POS if all characters in STRING are not character head.
12013
120141998-09-06 Paul Eggert <eggert@twinsun.com>
12015
12016 * editfns.c (Fformat_time_string, Fdecode_time, Fcurrent_time_zone):
12017 Don't assume that localtime and gmtime return non-NULL.
12018
120191998-09-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
12020
12021 * fns.c (Fbase64_decode_string, Fbase64_encode_string,
12022 base64_decode_1, Fbase64_decode_region, Fbase64_encode_region):
12023 New functions.
12024
120251998-09-06 Richard Stallman <rms@gnu.org>
12026
12027 * editfns.c (Fformat): Detect incomplete format spec at string's end.
12028
12029 * lread.c (Fload): Handle case where openp finds a magic file
12030 but it has no `load' handler or that handler calls `load'.
12031 If FOUND != FILE, find FOUND's handler even if inhibited for FILE.
12032
120331998-09-04 Dave Love <fx@gnu.org>
12034
12035 * buffer.c (enable-multibyte-characters): Doc fix.
12036
120371998-09-02 Geoff Voelker <voelker@cs.washington.edu>
12038
12039 * w32heap.c (allocate_heap): Define NTHEAP_PROBE_BASE by default.
12040
120411998-09-01 Kenichi Handa <handa@etl.go.jp>
12042
12043 * editfns.c (Ftranspose_regions): Use BYTE_POS_ADDR to get an
12044 address in buffer from byte-position.
12045
120461998-09-01 Eli Zaretskii <eliz@delysid.gnu.org>
12047
12048 * w16select.c (Vnext_selection_coding_system): New variable.
12049 (syms_of_win16select): DEFVAR_LISP it. No need to staticpro
12050 Vselection_coding_system.
12051 (Fw16_set_clipboard_data): Always convert multibyte strings. Use
12052 Vnext_selection_coding_system if non-nil.
12053 (Fw16_get_clipboard_data): Always convert a string that includes
12054 non-ASCII characters. Use Vnext_selection_coding_system if
12055 non-nil.
12056
120571998-08-31 Andrew Innes <andrewi@harlequin.co.uk>
12058
12059 * w32fns.c (w32_wnd_proc): Always zero button_state when releasing
12060 mouse capture.
12061
120621998-08-31 Kenichi Handa <handa@etl.go.jp>
12063
12064 * xterm.c (x_load_font): If SIZE is 0, don't use a name
12065 x_list_font returns.
12066
120671998-08-31 Paul Eggert <eggert@twinsun.com>
12068
12069 * lread.c (read1): Don't assume that atof ("-0.0") yields +0.0.
12070 Handle leading '-' uniformly for zeros, infinities, and NaNs.
12071
120721998-08-31 Eli Zaretskii <eliz@delysid.gnu.org>
12073
12074 * msdos.c (IT_cmgoto): When tracking echo area messages with the
12075 cursor, save and restore previous cursor position in the
12076 minibuffer.
12077
120781998-08-31 Kenichi Handa <handa@etl.go.jp>
12079
12080 * charset.c (unibyte_char_to_multibyte):
12081 Vnonacii_translation_table will convert a 7-bit charcater.
12082 (multibyte_char_to_unibyte): Handle the case that
12083 Vnonacii_translation_table converts a multibyte charcater to a
12084 unibyte charcter of less than 128.
12085 (init_charset_once): Initialize nonascii_insert_offset and
12086 Vnonacii_translation_table.
12087
12088 * coding.c (decode_coding): Even if SRC_BYTES is zero, try
12089 processing if CODING requires flushing.
12090 (encode_coding): Likewise.
12091 (code_convert_region): Likewise.
12092 (code_convert_string): Likewise.
12093
12094 * fns.c (concat): If Vnonascii_translation_table is non-nil, try
12095 to convert a character less than 160 to multibyte.
12096 * insdel.c (copy_text): Likewise.
12097 (count_size_as_multibyte): Likewise.
12098 * xterm.c (dumpglyphs): Likewise.
12099
121001998-08-29 Paul Eggert <eggert@twinsun.com>
12101
12102 * data.c (arith_driver, float_arith_driver): Compute (- x) by
12103 using negation, not subtraction; this makes a difference with
12104 IEEE floating point arithmetic (and also if integer arithmetic
12105 is ones' complement or signed-magnitude!).
12106
121071998-08-29 Karl Heuer <kwzh@gnu.org>
12108
12109 * xfns.c (x_create_bitmap_from_file): Fail immediately if magic.
12110
121111998-08-28 Ken'ichi Handa <handa@delysid.gnu.org>
12112
12113 * charset.c (Fchar_bytes): Add \n\ in doc-string.
12114
121151998-08-28 Paul Eggert <eggert@twinsun.com>
12116
12117 * s/sol2-4.h (NOT_USING_MOTIF): New macro.
12118 (LD_SWITCH_SYSTEM_TEMACS): Put /usr/dt/lib in the link library
12119 path only if we're not building with Motif.
12120
121211998-08-28 Kenichi Handa <handa@etl.go.jp>
12122
12123 * insdel.c (adjust_after_replace): Fix the code to record undo
12124 information for the case that `before combining' happens. Remove
12125 text properties which are added to the new text by
12126 offset_intervals.
12127
12128 * coding.c (code_convert_region1): Remove all text properties of
12129 the region.
12130
121311998-08-28 Kenichi Handa <handa@etl.go.jp>
12132
12133 * charset.h (CHAR_BYTES): New macro.
12134
12135 * charset.c (Fchar_bytes): Now always return 1.
12136 (char_bytes): New function.
12137
12138 * editfns.c (Fposition_bytes): If the arg POSITION is out of
12139 range, return nil.
12140 (Fbyte_to_position): If the arg BYTEPOS is out of range, return
12141 nil.
12142
12143 * data.c (Faset): Use macro CHAR_BYTES instead of Fchar_bytes.
12144 * fns.c (concat): Likewise.
12145 * insdel.c (count_size_as_multibyte): Likewise.
12146 * xdisp.c (message_dolog): Likewise.
12147
121481998-08-27 Kenichi Handa <handa@etl.go.jp>
12149
12150 * coding.c (detect_coding_iso2022): Handle ESC N and ESC O
12151 correctly. They are for SS2 and SS3 respectively.
12152 (ccl_coding_driver): Fix previous change.
12153
121541998-08-26 Paul Eggert <eggert@twinsun.com>
12155
12156 * xterm.c (fixup_locale): New function. For now, it resets
12157 LC_TIME to "C" (reverting the 1998-08-07 change), and also
12158 resets LC_MESSAGES to "C".
12159 (x_term_init): Use it to fix up the locale after setlocale
12160 (LC_ALL, "").
12161
121621998-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12163
12164 * xterm.c (x_calc_absolute_position): Cast argument to XFree, in
12165 case it was prototyped the old way.
12166
121671998-08-25 Kenichi Handa <handa@etl.go.jp>
12168
12169 * xterm.c (x_list_fonts): Work-around for the case XGetAtomName
12170 returns a null string. This happens when dxpc 3.7 is being used.
12171
121721998-08-24 Andreas Schwab <schwab@delysid.gnu.org>
12173
12174 * keyboard.c (input-method-previous-message): Doc fix.
12175
12176 * coding.c (file-coding-system-alist,
12177 select-safe-coding-system-function): Doc fix.
12178
121791998-08-23 Kenichi HANDA <handa@etl.go.jp>
12180
12181 * coding.c (detect_coding_iso2022): Don't check the byte length of
12182 succeeding codes (0xa0..0xFF) if the codes follows single shift
12183 code (SS2 or SS3).
12184
121851998-08-21 Ken'ichi Handa <handa@delysid.gnu.org>
12186
12187 * coding.c (detect_coding_system): If detect_eol_type returns
12188 CODING_EOL_INCONSISTENT, set eol_type to CODING_EOL_UNDECIDED
12189 correctly.
12190
12191See ChangeLog.7 for earlier changes.