Changes for automatic remapping of X colors on terminal frames:
[bpt/emacs.git] / src / ChangeLog
1 1999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
2
3 Changes for automatic remapping of X colors on terminal frames:
4
5 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
6 frames.
7 (Vface_tty_color_alist): Remove.
8 (tty_defined_color): New function.
9 (defined_color): Rewrite to support any type of frame.
10 (tty_color_name): New function.
11 (face_color_supported_p, Fface_color_gray_p,
12 Fface_color_supported_p): Support non-X frames.
13 (load_color): Enclose the color name in quotes, in the log
14 messages. Remove DOS-specific version of load_color.
15 (realize_tty_face): Take the supported colors from
16 tty-color-alist. Support translation of X colors to the closest
17 tty color, for both MSDOS and tty frames.
18 [MSDOS]: Don't invert face colors if they were taken from the
19 frame colors.
20 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
21
22 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
23 Define a mostly empty surrogate.
24 (tty_display): Declare.
25
26 * frame.c (make_terminal_frame) [!macintosh]: Don't use
27 tty_display.
28 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
29 frames when the frame's param_alist includes 'reverse.
30 (tty_display): Define.
31 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
32 output_data.x member.
33 (Fframe_parameters): Return foreground and background color names
34 on tty frames as well, in addition to MSDOS frames.
35
36 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
37 selected_frame.
38 (struct x_output): Remove unused members; document who uses each
39 member.
40 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
41 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
42 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
43 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
44 unused macro definintions.
45
46 * msdos.c (IT_set_frame_parameters): Don't call
47 recompute_basic_faces, the next redisplay will, anyway.
48 (x_current_display): Remove unused variable.
49 Many functions: changes for Lisp_object selected_frame.
50 (IT_set_face): If the tty_reverse_p flag is set for the face,
51 reverse the foreground and background colors.
52 (Fmsdos_remember_default_colors): New function.
53 (syms_of_msdos): Defsubr it.
54 (IT_set_frame_parameters): Use initial_screen_colors[] when
55 creating a new frame. If the frame parameters include 'reverse,
56 swap the foreground and background colors.
57 (internal_terminal_init): Initialize initial_screen_colors to -1.
58 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
59 cus-start.el.
60
61 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
62
63 * xfns.c (x_defined_color): Rename from defined_color. All
64 callers changed.
65 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
66 all callers changed.
67 (Fxw_color_values): Renamed from Fx_color_values; all callers
68 changed.
69 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
70 callers changed.
71 (x_window_to_frame, x_any_window_to_frame,
72 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
73 x_top_window_to_frame): Use !FRAME_X_P instead of
74 f->output_data.nothing.
75 * xterm.h (x_defined_color): Rename from defined_color.
76
77 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
78 f->output_data.nothing.
79 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
80 all callers changed.
81 (Fxw_color_values): Renamed from Fx_color_values; all callers
82 changed.
83 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
84 callers changed.
85
86 * dispextern.h (tty_color_name): Add prototype.
87
88 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
89 f->output_data.nothing.
90 * w32menu.c (menubar_id_to_frame): Likewise.
91 * w32term.h (w32_output): Declare.
92
93 * dosfns.c (Qmsdos_color_translate): Remove.
94 (msdos_stdcolor_name): Now returns a Lisp_Object.
95 * dosfns.h (Qmsdos_color_translate): Remove.
96
97 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
98
99 1999-12-06 Kenichi Handa <handa@etl.go.jp>
100
101 * fileio.c (decide_coding_unwind): Renamed from
102 set_auto_coding_unwind.
103 (Finsert_file_contents): Make single unwind protect to call both
104 Vset_auto_coding_function and Ffind_operation_coding_system.
105
106 * insdel.c (adjust_markers_for_delete): Make it non-static.
107
108 1999-12-04 Stefan Monnier <monnier@cs.yale.edu>
109
110 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
111 operators and handle them properly.
112 * regex.h (RE_ALL_GREEDY): New option.
113 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
114 sorting would put it.
115 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
116 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
117
118 1999-12-04 Dave Love <d.love@dl.ac.uk>
119
120 * m/arm.h: New file.
121
122 1999-12-03 Dave Love <fx@gnu.org>
123
124 * editfns.c (Fmessage_or_box): Use use_dialog_box.
125
126 1999-12-02 Gerd Moellmann <gerd@gnu.org>
127
128 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
129 for building with Motif.
130
131 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
132 unexelf.o.
133
134 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
135
136 1999-12-01 Dave Love <fx@gnu.org>
137
138 * emacs.c (main): Set LANG=C iff AX3_2 defined.
139
140 1999-11-28 Gerd Moellmann <gerd@gnu.org>
141
142 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
143 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
144 macros.
145
146 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
147
148 1999-11-28 eliz <eliz@dlpx1>
149
150 * emacs.c (synchronize_locale): Avoid compiler warnings about
151 pointer type mismatch.
152
153 1999-11-28 Gerd Moellmann <gerd@gnu.org>
154
155 * window.c (Fwindow_end): Don't call temp_set_pt_both with
156 out of range position.
157
158 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
159 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
160
161 1999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
162
163 * charset.c (Fmake_char_internal): Print the charset ID when
164 signalling an error.
165
166 * emacs.c (synchronize_locale): Avoid compiler warnings about
167 pointer type mismatch.
168
169 1999-11-26 Richard M. Stallman <rms@caffeine.ai.mit.edu>
170
171 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
172
173 1999-11-26 Gerd Moellmann <gerd@gnu.org>
174
175 * puresize.h (BASE_PURESIZE): Increase to 550000.
176
177 * textprop.c (set_text_properties): New function. Like
178 Fset_text_properties, but with additional parameter
179 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
180 changes.
181 (Fset_text_properties): Use it.
182
183 * insdel.c (insert_1_both): Call set_text_properties with last
184 parameter nil so that no after changes will be signaled.
185
186 * lisp.h: Add prototype for set_text_properties.
187
188 * xfaces.c (set_lface_from_font_name): Fix previous change.
189 (recompute_basic_faces): Change assert to abort.
190
191 1999-11-25 Dave Love <fx@gnu.org>
192
193 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
194 (Fmember, Fdelq, Fdelete): Inline car.
195 (Fy_or_n_p): Doc fix.
196
197 1999-11-25 Gerd Moellmann <gerd@gnu.org>
198
199 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
200 Callers changed. If specified font name is bogus, and may_fail_p
201 is not set, try to use a reasonable default.
202
203 * dispnew.c (direct_output_for_insert): Set glyph row's
204 displays_text_p flag. Correct window's window_end_vpos if
205 necessary.
206
207 1999-11-25 Paul Eggert <eggert@twinsun.com>
208
209 * emacs.c (fixup_locale): Don't bother to record initial locale.
210 (synchronize_locale): If the desired locale is nil,
211 treat it as if it were the empty string,
212 so that we set the locale from the environment.
213
214 1999-11-25 Kenichi Handa <handa@etl.go.jp>
215
216 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
217 of the current buffer via Fset.
218
219 1999-11-24 Dave Love <fx@gnu.org>
220
221 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
222
223 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
224
225 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
226
227 1999-11-24 Gerd Moellmann <gerd@gnu.org>
228
229 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
230
231 * emacs.c (PVEC_FLAG): New variable.
232
233 1999-11-23 Gerd Moellmann <gerd@gnu.org>
234
235 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
236 that fails on IBM PowerPC, AIX 4.2.
237
238 1999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
239
240 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
241 string of mode-line-format. Remove the obsolete %t.
242
243 1999-11-22 Gerd Moellmann <gerd@gnu.org>
244
245 * dispnew.c (direct_output_for_insert): Increment glyph positions
246 for glyphs from buffer text only.
247
248 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
249 (gdb_data_seg_bits): New variables.
250
251 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
252 work on systems not allowing enumerators > INT_MAX, and it
253 won't work if EMACS_INT is long long.
254
255 1999-11-22 Paul Eggert <eggert@twinsun.com>
256
257 Port to SunOS 4.1.x again. Help out with Alpha port.
258 Rename messages-locale to system-messages-locale,
259 and likewise for time-locale.
260
261 * callproc.c (strerror): Remove decl.
262 * fileio.c (strerror): Likewise.
263 * process.c (strerror): Likewise.
264 * emacs.c (strerror): Likewise.
265 (Vsystem_messages_locale): Renamed from Vmessages_locale.
266 All uses changed.
267 (Vprevious_system_messages_locale): Likewise, from
268 Vprevious_messages_locale.
269 (Vsystem_time_locale): Likewise, from Vtime_locale.
270 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
271 (ABORT_RETURN_TYPE): New macro.
272 (abort): Return type is now ABORT_RETURN_TYPE.
273 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
274 defined.
275 (syms_of_emacs): messages-locale -> system-messages-locale,
276 previous-messages-locale -> previous-system-messages-locale,
277 time-locale -> system-time-locale,
278 previous-time-locale -> previous-system-time-locale.
279
280 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
281 (const): Do not define; that's config.h's job.
282 (<limits.h>): Include if HAVE_LIMITS_H is defined.
283 (CHAR_BIT): Move test for definedness outside of limits.h condition.
284 (<stddef.h>): Include if STDC_HEADERS is defined.
285 (FREE_RETURN_TYPE): New macro.
286 (free): Return type is now FREE_RETURN_TYPE.
287
288 * lisp.h (synchronize_system_time_locale): Renamed from
289 synchronize_time_locale. All uses changed.
290 (synchronize_system_messages_locale): Likewise, from
291 synchronize_messages_locale.
292
293 * m/alpha.h (malloc, realloc, calloc): Remove decls;
294 stdlib.h now does this.
295
296 * process.c (sys_siglist): Remove.
297
298 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
299 New macros.
300
301 * syntax.c (scan_sexps_forward): Use abort, not assert.
302
303 * sysdep.c (my_sys_siglist): New var.
304 (sys_siglist): New macro. Remove old initialized vars of same name.
305 (init_signals): Initialize sys_siglist.
306
307 * xfns.c (abort): Remove decl; stdlib.h now does this.
308
309 1999-11-18 Dave Love <fx@gnu.org>
310
311 * filelock.c: Add forward declaration for get_boot_time_1.
312
313 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
314
315 1999-11-18 Gerd Moellmann <gerd@gnu.org>
316
317 * buffer.h (struct buffer_text): Add comment about moving
318 buffer text if REL_ALLOC is defined.
319
320 1999-11-18 Kenichi Handa <handa@etl.go.jp>
321
322 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
323
324 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
325 memory for push_key_description.
326
327 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
328 allocate memory for push_key_description.
329 (describe_buffer_bindings): Likewise.
330
331 1999-11-17 Gerd Moellmann <gerd@gnu.org>
332
333 * xfns.c (Fx_show_busy_cursor): Doc-fix.
334 (Fx_hide_busy_cursor): Ditto.
335
336 1999-11-17 Marco Walther <walther@siemens-pyramid.com>
337
338 * unexsni.c (unexec): Handle .rel.dyn section.
339
340 1999-11-16 Dave Love <fx@gnu.org>
341
342 * doc.c (Fdocumentation): Remove gcpro here too.
343
344 1999-11-16 Gerd Moellmann <gerd@gnu.org>
345
346 * keyboard.c (command_loop_1): Remove no_redisplay.
347
348 1999-11-16 Richard M. Stallman <rms@caffeine.ai.mit.edu>
349
350 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
351 in noninteractive.
352
353 1999-11-14 Gerd Moellmann <gerd@gnu.org>
354
355 * xdisp.c (ensure_echo_area_buffers): New.
356 (with_echo_area_buffer): Use it.
357 (setup_echo_area_for_printing): Ditto.
358
359 * buffer.c (indicate-empty-lines): Doc-fix.
360
361 1999-11-12 Gerd Moellmann <gerd@gnu.org>
362
363 * term.c (term_init): If "op" isn't available, don't support color
364 because we can't switch back to the default foreground and
365 background.
366
367 * doc.c (Fdocumentation_property): Remove GCPRO because
368 Fsubstitute_command_keys gcpro's the string.
369
370 1999-11-12 Kenichi Handa <handa@etl.go.jp>
371
372 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
373
374 1999-11-11 Gerd Moellmann <gerd@gnu.org>
375
376 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
377 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
378 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
379
380 1999-11-10 Gerd Moellmann <gerd@gnu.org>
381
382 * xfns.c (QCuser_data): Removed.
383 (syms_of_xfns): Initialization of QCuser_data removed.
384 (parse_image_spec): Don't handle :user-data specially. Allow
385 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
386 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
387 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
388 parse_image_spec accordingly.
389
390 1999-11-09 Richard M. Stallman <rms@caffeine.ai.mit.edu>
391
392 * cmds.c (Fbeginning_of_line): Doc fix.
393 (Fend_of_line): Doc fix.
394
395 * editfns.c (Fline_beginning_position): If N is not 1,
396 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
397
398 * syntax.c (Fforward_word): Handle fields even if would have hit
399 an edge of the buffer. Return nil if affected by fields.
400
401 1999-11-09 Richard M. Stallman <rms@caffeine.ai.mit.edu>
402
403 * editfns.c (preceding_pos): Function deleted.
404 (text_property_stickiness): Decrement POS directly.
405 Fix a confusion that used PT instead of POS.
406
407 * editfns.c (find_field): Properly handle the case
408 of a field boundary where `field' inherits from neither side.
409
410 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
411 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
412
413 1999-11-08 Gerd Moellmann <gerd@gnu.org>
414
415 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
416 BEFORE_POTENTIAL_GC before DISCARD.
417
418 1999-11-07 Gerd Moellmann <gerd@gnu.org>
419
420 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
421
422 * lisp.h: Add prototype for unmark_byte_stack.
423
424 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
425 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
426 XUNMARK.
427
428 * xdisp.c (resize_mini_window): Fix computation of needed
429 mini-window height.
430
431 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
432 compilation on USE_TEXT_PROPERTIES.
433
434 * Fbyte_code: Use block statements in cases and declare v1 and v2
435 locally there. Rearrange case statements so that thos most
436 frequently executed come first. Avoid goto's in frequently
437 executed cases.
438
439 1999-11-05 Gerd Moellmann <gerd@gnu.org>
440
441 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
442 AFTER_POTENTIAL_GC around internal_catch.
443
444 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
445 relocate_byte_pcs.
446 (init_alloc_once, init_alloc): Set byte_stack_list to null.
447
448 * eval.c (struct catchtag): Add member byte_stack.
449 (internal_catch, Fcondition_case, internal_condition_case)
450 (internal_condition_case_1): Save value of byte_stack_list in
451 catchtag.
452 (unwind_to_catch): Restore byte_stack_list from catchtag.
453
454 * lisp.h: Add prototypes for new functions in bytecode.c.
455 Add extern declaration for byte_stack_list.
456
457 * bytecode.c (struct byte_stack): New.
458 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
459 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
460 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
461 (HANDLE_RELOCATION): Removed.
462 (Fbyte_code): Use byte_stack structures.
463
464 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
465
466 * buffer.c (syms_of_buffer): Extend documentation of
467 mode-line-format.
468
469 1999-11-04 Gerd Moellmann <gerd@gnu.org>
470
471 * editfns.c (Fdelete_field): Renamed from Ferase_field.
472
473 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
474 Ferase_field instead of Fdelete_field.
475
476 1999-11-03 Gerd Moellmann <gerd@gnu.org>
477
478 * dispnew.c (Finternal_show_cursor): Change it to set the
479 cursor on/off, not toggle its state.
480 (Finternal_show_cursor_p): New.
481 (syms_of_display): Defsubr Sinternal_show_cursor_p.
482
483 1999-11-03 Dave Love <fx@gnu.org>
484
485 * charset.c (split_non_ascii_string): Define return value.
486
487 1999-11-03 Gerd Moellmann <gerd@gnu.org>
488
489 * minibuf.c (string_to_object): New.
490 (read_minibuf_noninteractive): New.
491 (read_minibuf): Call read_minibuf_noninteractive if
492 noninteractive. Use string_to_object.
493
494 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
495
496 1999-11-02 Dave Love <fx@gnu.org>
497
498 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
499
500 * process.c: Define _GNU_SOURCE before config.h to get strsignal
501 declared with glibc2.
502
503 1999-11-02 Gerd Moellmann <gerd@gnu.org>
504
505 * lisp.h (QUIT): Give it statement form.
506
507 1999-11-02 Dave Love <fx@gnu.org>
508
509 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
510
511 1999-11-02 Gerd Moellmann <gerd@gnu.org>
512
513 * xfns.c (QCuser_data): New.
514 (syms_of_xfns): Initialize QCuser_data.
515 (parse_image_spec): Ignore :user-data DATA properties.
516
517 * xdisp.c (display_line): Set charpos of first glyph in blank
518 lines not corresponding to any text to -1, even if no glyphs are
519 filled in in that line.
520
521 1999-11-01 Gerd Moellmann <gerd@gnu.org>
522
523 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
524 png_get_sRGB in #ifdef.
525
526 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
527 (syms_of_display): Use the new name.
528
529 * textprop.c (verify_interval_modification): Signal text-read-only
530 instead of calling error.
531
532 * data.c (Qtext_read_only): New built-in error.
533 (syms_of_data): Initialize it.
534
535 * lisp.h: Add extern declaration for Qtext_read_only.
536
537 * syntax.c: Remove whitespace after open or in front of closing
538 parentheses.
539
540 1999-11-01 Richard M. Stallman <rms@caffeine.ai.mit.edu>
541
542 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
543
544 1999-10-31 Gerd Moellmann <gerd@gnu.org>
545
546 * xdisp.c (resize_mini_window): Compute needed height differently.
547
548 * fns.c (Flength): Unroll loop over lists.
549
550 * xdisp.c (append_space): Return non-zero if space was appended.
551 (display_line): Set charpos of first glyph to -1 only if that
552 glyph is the space added by append_glyph.
553
554 1999-10-30 Richard M. Stallman <rms@caffeine.ai.mit.edu>
555
556 * print.c (strout): Consider `noninteractive' and use stdout
557 only when PRINTCHARFUN is t.
558
559 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
560 (gcpro_level): Declare it extern.
561 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
562 Alternate definitions that set `level' and increment `gcpro_level'.
563 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
564
565 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
566 (init_eval) [DEBUG_GCPRO]: Initialize it.
567 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
568 from remaining gcprolist.
569
570 1999-10-29 Kenichi Handa <handa@etl.go.jp>
571
572 * coding.c (code_convert_region): Update `dst' correctly.
573
574 1999-10-28 Richard M. Stallman <rms@caffeine.ai.mit.edu>
575
576 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
577 as arg to DEBUG_POP and DEBUG_PRINT.
578
579 1999-10-28 Gerd Moellmann <gerd@gnu.org>
580
581 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
582 (Frassoc): Rewritten.
583
584 1999-10-27 Noah Friedman <friedman@splode.com>
585
586 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
587 Define PTY_NAME_SPRINTF.
588 Redefine PTY_TTY_NAME_SPRINTF.
589 * config.in: Add undef for HAVE_DEV_PTMX.
590
591 1999-10-26 Richard M. Stallman <rms@caffeine.ai.mit.edu>
592
593 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
594 as arg to DEBUG_POP and DEBUG_PRINT.
595
596 1999-10-27 Richard M. Stallman <rms@caffeine.ai.mit.edu>
597
598 * data.c (Qad_activate_internal): Renamed from Qad_activate.
599 (Ffset): Call Qad_activate_internal.
600 (syms_of_data): Initialize Qad_activate_internal.
601
602 1999-10-27 Gerd Moellmann <gerd@gnu.org>
603
604 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
605 Vterminal_frame is selected and Vwindow_system is non-nil.
606
607 1999-10-26 Gerd Moellmann <gerd@gnu.org>
608
609 * xdisp.c (echo_area_display): Put previous change in #if 0.
610
611 * emacs.c (standard_args): Add `file' as synonym for `visit',
612 `execute' as synonym for `eval'.
613 (main): Add new options to usage message.
614
615 1999-10-25 Gerd Moellmann <gerd@gnu.org>
616
617 * data.c (Qhash_table): New.
618 (Ftype_of): Return it for hash tables.
619 (syms_of_data): Initialize Qhash_table.
620
621 1999-10-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
622
623 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
624
625 1999-10-24 Ken Raeburn <raeburn@raeburn.org>
626
627 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
628 lisp.h.
629
630 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
631 Fbuffer_local_variables, Fother_buffer, record_buffer,
632 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
633 swap_out_buffer_local_variables, overlays_at, overlays_in,
634 overlay_touches_p, overlay_strings, recenter_overlay_lists,
635 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
636 Foverlay_put, report_overlay_modification, evaporate_overlays):
637 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
638 references.
639 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
640 swap_in_symval_forwarding, set_internal, default_value,
641 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
642 Fmake_variable_frame_local, Flocal_variable_p,
643 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
644 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
645 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
646 * emacs.c (main): Likewise.
647 * fontset.c (fs_load_font, fs_register_fontset,
648 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
649 Fnew_fontset, Fset_fontset_font): Likewise.
650 * frame.c (do_switch_frame, next_frame, prev_frame,
651 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
652 Likewise.
653 * keyboard.c (read_char, help_char_p, event_to_kboard,
654 kbd_buffer_get_event, timer_start_idle, timer_check,
655 make_lispy_event, apply_modifiers, reorder_modifiers,
656 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
657 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
658 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
659 Fcommand_execute, Fexecute_extended_command): Likewise.
660 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
661 Fall_completions): Likewise.
662 * window.c (Fset_window_margins): Likewise.
663
664 * callint.c (quotify_args): Don't explicitly use struct
665 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
666
667 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
668 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
669 if __ELF__ is defined.
670
671 1999-10-24 Gerd Moellmann <gerd@gnu.org>
672
673 * window.c (Fnext_window): Add a QUIT in the loop.
674
675 1999-10-23 Gerd Moellmann <gerd@gnu.org>
676
677 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
678 New targets.
679
680 1999-10-22 Dave Love <fx@gnu.org>
681
682 * emacs.c (main): Enable profiling conditional on __linux also.
683
684 1999-10-20 Gerd Moellmann <gerd@gnu.org>
685
686 * xrdb.c (x_load_resources): Set default resources for resource
687 classes instead of for the specific Emacs.
688
689 1999-10-19 Gerd Moellmann <gerd@gnu.org>
690
691 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
692 defines it that way.
693
694 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
695 if selected_frame is equal to Vterminal_frame.
696
697 1999-10-19 Paul Eggert <eggert@twinsun.com>
698
699 Add support for large files, 64-bit Solaris, system locale codings.
700
701 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
702 when dumping, so that the dumped Emacs doesn't have stray locale info.
703 (dired.o): Depend on systime.h.
704 (editfns.o): Depend on coding.h.
705
706 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
707 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
708 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
709 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
710 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
711 Include <config.h> before any system include files.
712
713 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
714 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
715 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
716 xmenu.c, xterm.c:
717 Do not include <stdlib.h>, as <config.h> does this now.
718
719 * callproc.c (Fcall_process):
720 Synchronize messages locale before invoking strerror.
721 Decode resulting string with locale-coding-system.
722
723 * coding.c (Vlocale_coding_system): New var.
724 (syms_of_coding): Adjust to above change.
725 (emacs_strerror): New function.
726
727 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
728
729 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
730 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
731 HAVE_STRSIGNAL): New macros.
732 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
733 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
734
735 * dired.c: Include "systime.h".
736 (Ffile_attributes): Do not cast s.st_size to int; this loses
737 information if int is 32 bits but st_size and EMACS_INT are larger.
738 Treat large device numbers like large inode numbers.
739
740 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
741
742 * editfns.c: Include coding.h.
743 (emacs_strftime): Remove decl.
744 (emacs_strftimeu): New decl.
745 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
746 Use emacs_strftimeu instead of emacs_strftime.
747 (Fformat_time_string): Convert format string using
748 Vlocale_coding_system, and convert result back. Synchronize time
749 locale before invoking lower level function. Invoke
750 emacs_memftimeu, passing ut, instead of emacs_memftime.
751
752 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
753 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
754 Vprevious_time_locale): New variables.
755 (main): Invoke setlocale early, so that initial error messages are
756 localized properly. But skip locale-setting if LC_ALL is "C".
757 Fix up locale when it's safe to do so.
758 (fixup_locale): Moved here from xterm.c.
759 (synchronize_locale, synchronize_time_locale,
760 synchronize_messages_locale): New functions.
761 (syms_of_emacs): Accommodate above changes.
762
763 * fileio.c (report_file_error): Convert strerror output according
764 to Vlocale_coding_system.
765 (Finsert_file_contents): Check for arithmetic overflow in
766 computations that depend on file size. Report IO errors
767 with emacs_strerror, not strerror.
768
769 * fns.c (Fgethash): Declare dflt parameter.
770
771 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
772 is defined; that's config.h's job.
773
774 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
775 default these values to long, BITS_PER_LONG, and unsigned long.
776 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
777 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
778 (code_convert_string_norecord, fixup_locale,
779 synchronize_messages_locale, synchronize_time_locale,
780 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
781 All Emacs callers of open, close, read, write changed to use
782 emacs_open, emacs_close, emacs_read, emacs_write.
783
784 * lread.c (file_offset, file_tell): New macros. All uses of ftell
785 changed to file_tell.
786 (saved_doc_string_position, prev_saved_doc_string_position): Now
787 of type file_offset.
788 (init_lread): Do not fix locale here; fixup_locale now does this.
789
790 * m/amdahl.h, s/usg5-4.h:
791 (NSIG): Remove.
792 (NSIG_MINIMUM): New macro.
793
794 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
795 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
796 s/umips.h, s/usg5-4.h:
797 (SIGIO): Do not undef.
798 (BROKEN_SIGIO): New macro.
799
800 * m/ustation.h:
801 (SIGTSTP): Do not undef.
802 (BROKEN_SIGTSTP): New macro.
803
804 * s/gnu-linux.h:
805 (SIGPOLL, SIGURG): Do not undef.
806 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
807
808 * s/ptx4.h:
809 (SIGINFO): Do not undef.
810 (BROKEN_SIGINFO): New macros.
811
812 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
813
814 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
815 some Emacs-related changes merged.
816
817 * print.c (float_to_string): Prepend "-" to representation of a
818 NaN if the NaN is negative.
819
820 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
821 (wait_reading_process_input): Use emacs_strerror, not strerror.
822
823 * process.c (status_message, sigchld_handler): Synchronize locale,
824 then use strsignal istead of sys_siglist.
825 * w32proc.c (sys_wait): Likewise.
826
827 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
828 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
829 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
830 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
831 (open, close, read, write, INTERRUPTIBLE_OPEN,
832 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
833
834 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
835
836 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
837 sys_open, open): Remove.
838 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
839 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
840 macros are no longer used.
841 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
842 (emacs_close): Renamed from sys_close.
843 (emacs_read): Renamed from sys_read.
844 (emacs_write): Renamed from sys_write.
845 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
846 (dup2): Do not print error on failure; the real dup2 doesn't.
847 (strsignal): New function, defined if !HAVE_STRSIGNAL.
848
849 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
850 is defined.
851 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
852 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
853 (strsignal): Declare if !HAVE_STRSIGNAL.
854
855 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
856 (ElfW): Define in terms of ElfExpandBitsW.
857
858 * w32proc.c (sys_siglist): Remove decl.
859
860 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
861 with ANSI C.
862 (display_string): Declare face_string_pos arg.
863
864 * xfns.c (Fx_show_tip): Declare timeout param.
865
866 * xterm.c: No need to include locale.h.
867 (x_alloc_lighter_color, x_setup_relief_color):
868 Pass arg as double, not float, for compatibility with ANSI C.
869 (fixup_locale): Move to emacs.c.
870 (x_term_init): Do not setlocale or fixup locale; the main program
871 does this now.
872
873 1999-10-18 Dave Love <fx@gnu.org>
874
875 * doc.c (Fdocumentation_property): Gcpro `tem'.
876
877 1999-10-18 Kenichi Handa <handa@etl.go.jp>
878
879 * lread.c (Fload): Calculate bytes of filename correctly.
880 (openp): Likewise.
881
882 1999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
883
884 * print.c (print_preprocess): In case print-circle is nil,
885 add OBJ to Vprint_number_table only when OBJ is a symbol.
886
887 1999-10-18 Kenichi Handa <handa@etl.go.jp>
888
889 * coding.c (code_convert_string): Add record_unwind_protect to
890 assure setting inhibit_pre_post_conversion back to zero. Take
891 care of the multibyteness of the working buffer.
892
893 * coding.c (inhibit_pre_post_conversion): New variable.
894 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
895 ignore post-read-conversion and pre-write-conversion property of
896 the coding system.
897 (code_convert_region_unwind): New function.
898 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
899 running pre-write-conversion and post-read-conversion.
900 (code_convert_string): Likewise.
901
902 1999-10-17 Miles Bader <miles@gnu.org>
903
904 * editfns.c: Doc fix.
905
906 1999-10-17 Miles Bader <miles@gnu.org>
907
908 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
909 argument preconditions of find_before_next_newline in the case
910 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
911 was indeed at the edge.
912
913 1999-10-17 Miles Bader <miles@gnu.org>
914
915 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
916 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
917
918 * editfns.c (text_property_eq, text_property_stickiness): Don't
919 use initializers for auto variables of type Lisp_Object.
920 (find_field): Likewise. Use braces around nested ifs.
921 (Fline_end_position): Store the raw eol in a variable, so that the
922 final expression doesn't look so ugly.
923 (Fconstrain_to_field): Doc fix.
924 (preceding_pos): Renamed from `preceeding_pos'.
925 (text_property_stickiness, find_field): Call preceding_pos,
926 not preceeding_pos.
927
928 1999-10-17 Miles Bader <miles@gnu.org>
929
930 * editfns.c (Ffield_string_no_properties): New function.
931 (text_property_stickiness, preceeding_pos): New functions.
932 (Ffield_string): Remove PROPS parameter.
933 (find_field): Add MERGE_AT_BOUNDARY parameter.
934 Rewrite to use stickiness of `field' property to resolve
935 ambiguous cases.
936 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
937 (Fconstrain_to_field): Likewise.
938 (syms_of_editfns): Init Sfield_string_no_properties.
939 (Ffield_string, Ferase_field, Ffield_end):
940 Supply new MERGE_AT_BOUNDARY argument to find_field.
941 (Fline_beginning_position, Fline_end_position): Supply new
942 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
943 Pass a value of Qt for the ONLY_IN_LINE argument to
944 Fconstrain_to_field (only matters if N != 1).
945 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
946 to Fconstrain_to_field.
947
948 * minibuf.c (Fminibuffer_complete_word): Use
949 Ffield_beginning to find the prompt end.
950
951 1999-10-17 Miles Bader <miles@gnu.org>
952
953 * editfns.c (Fconstrain_to_field): Add get/set-current-point
954 behavior when NEW_POS is nil.
955 (find_field): Use XSETFASTINT instead of make_number.
956 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
957 input string by seeing where the field begins, instead of
958 looking at text-properties.
959
960 1999-10-17 Miles Bader <miles@gnu.org>
961
962 * editfns.c (Qfield): New variable.
963 (find_field, Ferase_field, Ffield_string,
964 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
965 (Fline_beginning_position, Fline_end_position): Constrain to any field.
966 (make_buffer_string_both): Remove minibuffer-prompt hack.
967 (syms_of_editfns): Initialize Qfield, and subr entries for
968 field functions above.
969 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
970 minibuf_save_list.
971 Don't initialize minibuffer prompt length.
972 Wrap prompt text-properties around the entire prompt.
973 Add 'prompt text-property to prompt.
974 Get final value with Ffield_string instead of make_buffer_string.
975 (read_minibuf_unwind): Don't restore minibuffer prompt length from
976 minibuf_save_list.
977 (do_completion): Get minibuffer input with Ffield_string
978 instead of Fbuffer_string.
979 Erase minibuffer input with Ferase_field instead of erase_buffer.
980 (Fminibuffer_complete_and_exit): Likewise.
981 Test whether buffer is empty by looking for the 'prompt text
982 property at the end.
983 Set prompt length by looking for the end of the prompt text property,
984 and save prompt length for later use (since there is no longer a
985 buffer variable to get it from).
986 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
987 (syms_of_minibuf): Remove initializations of
988 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
989 * buffer.h (struct buffer): Remove prompt_end_charpos field.
990 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
991 Don't initialize prompt_end_charpos field.
992 * syntax.c (Fforward_word): Likewise.
993 Constrain to any field.
994
995 1999-10-16 Gerd Moellmann <gerd@gnu.org>
996
997 * window.c (enum save_restore_action): New.
998 (save_restore_orig_size): Change parameter list. Add
999 functionality to check for valid orig_top and orig_height members
1000 in a window tree.
1001 (grow_mini_window): Call save_restore_orig_size with new parameter
1002 list.
1003 (shrink_mini_window): Restore old window sizes only if old
1004 size information is valid in all windows in a window tree.
1005
1006 1999-10-15 Gerd Moellmann <gerd@gnu.org>
1007
1008 * xmenu.c (set_frame_menubar): Don't call
1009 x_set_menu_resources_from_menu_face here.
1010 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
1011
1012 * xfns.c (gif_load): Fix handling of interlaced GIFs.
1013
1014 1999-10-14 Dave Love <fx@gnu.org>
1015
1016 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
1017
1018 1999-10-14 Gerd Moellmann <gerd@gnu.org>
1019
1020 * process.c (Fopen_network_stream): Don't loop if gethostbyname
1021 fails and h_errno is TRY_AGAIN.
1022
1023 1999-10-13 Dave Love <fx@gnu.org>
1024
1025 * filelock.c (lock_file): Move gcpro of `fn'.
1026
1027 1999-10-10 Gerd Moellmann <gerd@gnu.org>
1028
1029 * keyboard.c (auto-save-interval): Fix documentation.
1030
1031 1999-10-09 Richard M. Stallman <rms@caffeine.ai.mit.edu>
1032
1033 * print.c (print): When removing objects from Vprint_number_table,
1034 only scan the newly added objects.
1035 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
1036 unconditionally force it to stay in the table.
1037
1038 1999-10-09 Gerd Moellmann <gerd@gnu.org>
1039
1040 * xfns.c (prepare_image_for_display): Don't try to load image if
1041 loading it failed before.
1042 (lookup_image, prepare_image_for_display): Remember if loading the
1043 image failed.
1044 (xpm_load): Add missing UNBLOCK_INPUT.
1045
1046 * dispextern.h (struct image): New member load_failed_p.
1047
1048 1999-10-08 Stefan Monnier <monnier@cs.yale.edu>
1049
1050 * fileio.c (Fmake_temp_name): add a reference to `make-temp-file'
1051 in the docstring.
1052
1053 1999-10-08 Gerd Moellmann <gerd@gnu.org>
1054
1055 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
1056 Don't call XSetInputFocus because that can generate additional
1057 FocusIn events.
1058
1059 1999-10-07 Jeffrey C Honig <jch@bsdi.com>
1060
1061 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
1062
1063 1999-10-07 Richard M. Stallman <rms@caffeine.ai.mit.edu>
1064
1065 * process.c (wait_reading_process_input): When trying to suck
1066 input from one process, for accept-process-output,
1067 exit that loop if we get EAGAIN or EWOULDBLOCK.
1068
1069 1999-10-07 Gerd Moellmann <gerd@gnu.org>
1070
1071 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
1072 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
1073 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
1074 Fpixmap_spec_p and Qpixmap_spec_p.
1075 (load_face_colors, check_lface_attrs,
1076 merge_face_vector_with_property,
1077 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
1078 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
1079 Fbitmap_spec_p.
1080
1081 1999-10-07 Gerd Moellmann <gerd@gnu.org>
1082
1083 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
1084 MODE_LINE_FACE_ID.
1085
1086 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
1087 (struct x_resources) [USE_X_TOOLKIT]: New.
1088 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
1089 [USE_MOTIF]: New.
1090 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
1091 [USE_LUCID]: New.
1092 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
1093 (Qmenu): New.
1094 (syms_of_xfaces): Initialize Qmenu.
1095 (realize_basic_faces): Realize face `menu'.
1096 (resolve_face_name): New.
1097 (lface_from_face_name): Use it.
1098 (Finternal_set_lisp_face_attribute): Ditto.
1099 (Fpixmap_spec_p): Rewritten. Extend doc string.
1100
1101 * xmenu.c (set_frame_menubar, xmenu_show): Call
1102 x_set_menu_resources_from_menu_face.
1103
1104 * dispextern.h (enum face_id): Add MENU_FACE_ID.
1105 (toplevel): Include X11/Intrinsic.h.
1106
1107 1999-10-03 Ken'ichi Handa <handa@gnu.org>
1108
1109 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
1110 correctly.
1111
1112 1999-09-30 Kenichi Handa <handa@etl.go.jp>
1113
1114 * category.c (modify_lower_category_set): Set default value of
1115 TABLE correctly.
1116
1117 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
1118 size correctly.
1119
1120 1999-09-29 Gerd Moellmann <gerd@gnu.org>
1121
1122 * editfns.c (Fpropertize): Renamed from Fproperties.
1123
1124 1999-09-29 Gerd Moellmann <gerd@gnu.org>
1125
1126 * xdisp.c (resize_mini_window): Do nothing if frame is an X
1127 frame that hasn't been initialized yet.
1128
1129 1999-09-28 Richard M. Stallman <rms@caffeine.ai.mit.edu>
1130
1131 * keymap.c (Fsingle_key_description): Make tem big enough.
1132 (describe_buffer_bindings): Make buf big enough.
1133
1134 1999-09-27 Richard M. Stallman <rms@caffeine.ai.mit.edu>
1135
1136 * intervals.c (get_local_map): Use indirect_function,
1137 not Findirect_function.
1138
1139 1999-09-27 Dave Love <fx@gnu.org>
1140
1141 * cm.h: Remove unneeded declaration of ospeed.
1142
1143 1999-09-26 Gerd Moellmann <gerd@gnu.org>
1144
1145 * lisp.h (toplevel): Add prototype for
1146 next_single_char_property_change.
1147
1148 * textprop.c (next_single_char_property_change): New.
1149
1150 * xdisp.c (display_prop_end, invisible_text_between_p): Use
1151 next_single_char_property_change.
1152
1153 1999-09-25 Gerd Moellmann <gerd@gnu.org>
1154
1155 * editfns.c (Fproperties): New.
1156 (syms_of_editfns): Defsubr it.
1157
1158 * xfns.c (lookup_image): Set image's timestamp because it's
1159 used when we look it up.
1160
1161 1999-09-23 Gerd Moellmann <gerd@gnu.org>
1162
1163 * window.c (enlarge_window): Add window parameter instead of using
1164 selected_window.
1165 (Fdisplay_buffer): Call it with window parameter instead of
1166 setting selected_window.
1167 (Fenlarge_window, Fshrink_window): Ditto.
1168 (shrink_mini_window): If there is no recorded height and position
1169 info, resize mini-window to height 1.
1170
1171 * xfns.c (image_error): Use add_to_log.
1172
1173 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
1174 (load_face_font_or_fontset, load_color,
1175 merge_face_vector_with_property): Ditto.
1176
1177 * dispextern.h: Add prototype for add_to_log.
1178
1179 * xfaces.c (add_to_log): Move to xdisp.c.
1180
1181 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
1182 parameter.
1183
1184 1999-09-23 Gerd Moellmann <gerd@gnu.org>
1185
1186 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
1187 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
1188
1189 * xdisp.c (resize_mini_window): Use grow_mini_window and
1190 shrink_mini_window.
1191
1192 * window.c (window_min_size): Add parameter ignore_fixed_p.
1193 (change_window_height): Call window_min_size with new parameter.
1194 (shrink_window_lowest_first, save_restore_orig_size,
1195 grow_mini_window, shrink_mini_window): New.
1196 (make_window, replace_window): Initialize orig_top and
1197 orig_height.
1198 (enlarge_window): Renamed from change_window_height. Make it
1199 static.
1200 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
1201 enlarge_window instead of change_window_height.
1202
1203 * window.h (struct window): New members orig_top, orig_height.
1204 (toplevel): Add prototypes for grow_mini_window and
1205 shrink_mini_window. Remove prototype for change_window_height.
1206
1207 1999-09-21 Eli Zaretskii <eliz@gnu.org>
1208
1209 * frame.c (frame_name_fnn_p): Fix previous change.
1210
1211 1999-09-20 Gerd Moellmann <gerd@gnu.org>
1212
1213 * minibuf.c (toplevel): Move include of stdio.h to other includes.
1214
1215 * dispnew.c (direct_output_for_insert): Cast arguments to
1216 safe_bcopy to char *.
1217
1218 * lread.c (readchar): Remove unused variables.
1219 (read_filtered_event, read1, Fmapatoms): Ditto.
1220 (toplevel): Include intervals.h.
1221
1222 * eval.c (Fsignal): Remove unused variables.
1223 (Fcommandp, do_autoload): Ditto.
1224
1225 * lisp.h: Add prototype for safe_bcopy, fatal.
1226
1227 * editfns.c (init_editfns): Remove unused variables.
1228 (Fgoto_char, Fchar_after, Fformat): Ditto.
1229 (message_text, message_length): Put in #ifndef HAVE_MENUS.
1230
1231 * data.c (find_symbol_value): Remove unused variables.
1232 (Faref, Fstring_to_number): Ditto.
1233 (toplevel): Include stdio.h.
1234 (Fnumber_to_string): Cast XINT to long for %ld.
1235
1236 * casefiddle.c (casify_object): Remove unused variables.
1237 (casify_region): Ditto.
1238
1239 * filelock.c (get_boot_time): Put local variable used in
1240 conditinally compiled section in #ifdef.
1241 (toplevel): Include stdio.h.
1242
1243 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
1244 keys_of_keymap, syms_of_keymap): Remove unused variables.
1245
1246 1999-09-20 Gerd Moellmann <gerd@gnu.org>
1247
1248 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
1249 whose corresponding window rows have been disabled in
1250 try_window_id.
1251
1252 1999-09-20 Gerd Moellmann <gerd@gnu.org>
1253
1254 * xdisp.c (compute_window_start_on_continuation_line): Handle case
1255 that window start is out of range.
1256 (handle_display_prop, handle_single_display_prop): Replace
1257 marginal area specifications like `left-margin' with `(margin
1258 left-margin)'.
1259 (Qmargin): New.
1260 (syms_of_xdisp): Initialize Qmargin.
1261
1262 1999-09-19 Gerd Moellmann <gerd@gnu.org>
1263
1264 * syntax.c (update_syntax_table, find_defun_start, back_comment,
1265 describe_syntax, skip_chars): Remove unused variables.
1266 (back_comment, forw_comment): Add braces to if-statement with
1267 if-else as dependent statement.
1268
1269 * process.c (list_processes_1): Remove unused variables.
1270 (Fopen_network_stream, create_process): Add parentheses to
1271 conditional expressions.
1272 (create_process): Put declaration of sigchld in #if 0.
1273 (Fopen_network_stream): Removed unused variables.
1274 (Fopen_network_stream, wait_reading_process_input,
1275 wait_reading_process_input, send_process, send_process): Ditto.
1276 (toplevel): Add prototypes for set_waiting_for_input and
1277 keyboard_bit_set.
1278
1279 * abbrev.c (Fexpand_abbrev): Remove unused variables.
1280
1281 * textprop.c (Fset_text_properties): Remove unused variables.
1282 (text_property_list, verify_interval_modification,
1283 interval_has_all_properties): Ditto.
1284
1285 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
1286 (Fcall_process): Remove unused variable.
1287
1288 * keyboard.c (Frecursive_edit): Remove unused variable.
1289 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
1290 timer_check, make_lispy_event, menu_bar_items,
1291 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
1292 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
1293 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
1294 read_key_sequence): Ditto. Fread_key_sequence,
1295 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
1296 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
1297 used when GOBBLE_FIRST_EVENT is defined in #ifdef
1298 (Fexecute_extended_command): Cast XINT to long for %ld.
1299 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
1300 (toplevel): Include sys/types.h.
1301
1302 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
1303 (toplevel): Add prototypes for stuff_char, and
1304 code_convert_string_norecord.
1305
1306 1999-09-19 Gerd Moellmann <gerd@gnu.org>
1307
1308 * buffer.h: Add prototype for r_re_alloc.
1309
1310 * insdel.c (copy_text): Removed unused variables.
1311 (count_combining_after, count_combining_after, insert_1_both,
1312 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
1313 (adjust_after_replace, replace_range): Add parentheses to logical
1314 expressions. Remove unused variables.
1315 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
1316 expression.
1317
1318 * alloc.c (Fgarbage_collect): Remove unused variable.
1319 (compact_strings): Add parentheses around assignments in
1320 conditional context.
1321 (toplevel): Put declaration of unused function clear_marks
1322 in #if 0 like its definition.
1323
1324 * lisp.h: Add prototype for shrink_regexp_cache,
1325 sweep_weak_hash_tables.
1326
1327 1999-09-19 Dave Love <fx@gnu.org>
1328
1329 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
1330
1331 * doc.c (read_bytecode_char): Declare arg.
1332
1333 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
1334 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
1335
1336 1999-09-18 Richard Stallman <rms@gnu.org>
1337
1338 * xdisp.c (echo_area_display): Turn off code that returned
1339 without doing anything when using a terminal frame.
1340
1341 1999-09-17 Richard M. Stallman <rms@caffeine.ai.mit.edu>
1342
1343 * unexelf.c (unexec): Don't get confused by a short section
1344 just before the bss section.
1345
1346 1999-09-16 Gerd Moellmann <gerd@gnu.org>
1347
1348 * emacs.c (main): Remove unused variables.
1349 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
1350
1351 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
1352 init_fileio_once, syms_of_sound, init_xfns, init_fns
1353 init_sound, check_message_stack.
1354
1355 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
1356
1357 * intervals.c (rotate_right, rotate_left): Add braces to avoid
1358 ambiguous else warning.
1359 (split_interval_left): Remove unused variables.
1360 (previous_interval, adjust_intervals_for_deletion,
1361 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
1362 (icount, idepth, zero_length): Move into #if 0 section below
1363 original position where these are used.
1364
1365 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
1366
1367 * buffer.c (Fkill_buffer): Remove unused variables.
1368 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
1369 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
1370 init_buffer_once, (syms_of_buffer): Ditto.
1371
1372 * xrdb.c (get_fallback): Remove unused variable.
1373 (x_load_resources): Ditto. Put local variable used for Motif only
1374 in #ifdef USE_MOTIF.
1375
1376 1999-09-16 Gerd Moellmann <gerd@gnu.org>
1377
1378 * minibuf.c (read_minibuf): Remove unused variables.
1379 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
1380 (do_completion): Move assignment out of conditional context.
1381 (Fdisplay_completion_list): Add parentheses to conditional expression.
1382
1383 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
1384
1385 * lisp.h: Add prototype for no_switch_window.
1386
1387 * window.c (Fset_window_buffer): Remove unused variables.
1388 (Fset_window_margins): Ditto.
1389
1390 * xdisp.c (resize_mini_window): Temporarily set the selected
1391 window's or Vminibuf_scroll_window's height to "fixed" around
1392 the call the change_window_height.
1393
1394 * window.c (window_fixed_size_p): Check window's height_fixed_p
1395 flag.
1396
1397 * window.h (struct window): New member height_fixed_p.
1398
1399 * dispnew.c (direct_output_forward_char): Don't use this method
1400 if showing a message or a message was just cleared because we
1401 might need to resize the mini-window.
1402
1403 1999-09-16 Gerd Moellmann <gerd@gnu.org>
1404
1405 * frame.c (Fdelete_frame): Correct local variable pointing to
1406 selected frame after selecting new frame.
1407
1408 1999-09-15 Richard Stallman <rms@gnu.org>
1409
1410 * puresize.h (BASE_PURESIZE): Increase to 525000.
1411
1412 * filelock.c (Vtemporary_file_directory): New variable.
1413 (syms_of_filelock): Set up Lisp variable.
1414
1415 1999-09-15 Gerd Moellmann <gerd@gnu.org>
1416
1417 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
1418 (encode_terminal_code): Remove unused variables.
1419 (turn_off_face): Ditto.
1420 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
1421
1422 * dispnew.c (update_frame_line): If writing whole desired line,
1423 don't clear to end of line if already at the end.
1424
1425 1999-09-15 Gerd Moellmann <gerd@gnu.org>
1426
1427 * xdisp.c (resize_mini_window): Don't report changed window
1428 height if it actually hasn't changed.
1429
1430 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
1431 unused variables.
1432 (mark_shell_size_user_specified): Put in #if 0 because not used.
1433 (create_frame_gcs): Put in #if 0 because currently unused.
1434 (first_frame_p): Ditto.
1435
1436 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
1437 single_submenu, update_frame_menubar, set_frame_menubar,
1438 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
1439 variables.
1440
1441 * print.c (PRINTFULLP): Removed because it is no longer used and
1442 is misleading.
1443 (Ferror_message_string): Remove unused variables.
1444 (print_object): Cast argument of sprintf to long for `%ld'
1445 specifier. Remove unused variable.
1446
1447 1999-09-14 Gerd Moellmann <gerd@gnu.org>
1448
1449 * sound.c (Fplay_sound): Remove usused variables.
1450 (be2hs): Put in #if 0 because it's currently not used.
1451
1452 1999-09-14 Ken Raeburn <raeburn@gnu.org>
1453
1454 * print.c (Ferror_message_string, print_error_message,
1455 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
1456 member access.
1457
1458 1999-09-14 Gerd Moellmann <gerd@gnu.org>
1459
1460 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
1461
1462 * frame.c (Fnext_frame): Remove unused variable(s).
1463 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
1464 (store_frame_param): Add parentheses to conditional expression.
1465 (Fmodify_frame_parameters): Remove unused variables.
1466 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
1467 Ditto.
1468
1469 * xfns.c (x_set_background_color): Remove unused variable(s).
1470 (x_set_border_pixel): Ditto.
1471 (x_set_menu_bar_lines): Put local variable used only for
1472 non-toolkit case in #ifdef/#endif.
1473 (x_figure_window_size): Remove unused variable(s).
1474 (x_figure_window_size, x_window, lookup_image,
1475 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
1476 png_load, jpeg_load, gif_load, x_create_tip_frame,
1477 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
1478
1479 * xterm.c (x_scroll_bar_handle_click): Compile only if
1480 not USE_TOOLKIT_SCROLL_BARS.
1481 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
1482
1483 * dispextern.h: Add prototypes for gamma_correct and
1484 x_kill_gs_process.
1485
1486 * xterm.c (x_produce_glyphs): Remove unused variable(s).
1487 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
1488 x_set_toolkit_scroll_bar_thumb): Ditto.
1489 (x_scroll_bar_create): Move local variable to the
1490 conditionally compiled section of code where it is used.
1491 (x_scroll_bar_create): Remove unused variable(s).
1492 (x_scroll_bar_remove, XTread_socket): Ditto.
1493 (XTread_socket) <ConfigureNotify>: Move variables used for
1494 non-toolkit case into conditionally compiled section of code.
1495
1496 * window.h (freeze_window_starts): Fix typo in prototype.
1497
1498 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
1499 variable(s).
1500
1501 * lisp.h: Add prototype for debug_print.
1502
1503 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
1504 to use do-while.
1505
1506 * fns.c (SXHASH_COMBINE): Add missing parentheses.
1507 (Fchar_table_range, Fset_char_table_default, mapcar1,
1508 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
1509
1510 * lisp.h: Add prototype for getloadavg.
1511
1512 1999-09-14 Andreas Schwab <schwab@gnu.org>
1513
1514 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
1515
1516 * lisp.h: Declare close_file_unwind.
1517
1518 1999-09-14 Richard Stallman <rms@gnu.org>
1519
1520 * filelock.c (get_boot_time): Make the temp name in the proper dir.
1521
1522 1999-09-13 Gerd Moellmann <gerd@gnu.org>
1523
1524 * xdisp.c (redisplay_window): Make sure start_at_line_beg
1525 is always set correctly.
1526
1527 1999-09-13 Dave Love <fx@gnu.org>
1528
1529 * xdisp.c (move_it_in_display_line_to): Make type consistent with
1530 declaration.
1531
1532 1999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
1533
1534 * xdisp.c (QCfile): Move here from xfns.c.
1535 (syms_of_xdisp): Initialize it.
1536 (message2_nolog): Change for Lisp_Object selected_frame.
1537 (message3_nolog, message_with_string, message,
1538 setup_echo_area_for_printing, truncate_echo_area,
1539 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
1540
1541 1999-09-13 Dave Love <fx@gnu.org>
1542
1543 * xterm.c: Don't continue #define args for benefit of old cc.
1544 (xt_action_hook): Indent #error for benefit of K&R cc.
1545
1546 1999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
1547
1548 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
1549 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
1550 (XRINGBELL): Removed.
1551
1552 1999-09-13 Dave Love <fx@gnu.org>
1553
1554 * xfns.c (x_put_x_image): Make type consistent with declaration.
1555
1556 * fns.c (Fmake_hash_table): Fix string continuation.
1557
1558 1999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
1559
1560 * xfns.c (QCfile): Moved to xdisp.c.
1561 (syms_of_xfns): Don't initialize QCfile.
1562 (check_x_frame): Change for Lisp_Object selected_frame.
1563 (check_x_display_info, x_get_resource_string): Ditto.
1564
1565 1999-09-13 Gerd Moellmann <gerd@gnu.org>
1566
1567 * minibuf.c (choose_minibuf_frame): Don't try to set the
1568 mini-buffer window's buffer, if the buffer is invalid.
1569
1570 * xfns.c (QCfile): Moved to xdisp.c.
1571 (syms_of_xfns): Don't initialize QCfile.
1572
1573 * xdisp.c (QCfile): Move here from xfns.c.
1574 (syms_of_xdisp): Initialize it.
1575
1576 * lisp.h (selected_frame): Add external declaration.
1577
1578 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
1579 (Fx_store_cut_buffer_internal): Ditto.
1580 (Fx_rotate_cut_buffers_internal): Ditto.
1581
1582 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
1583 selected_frame.
1584 (Finternal_set_lisp_face_attribute): Ditto.
1585 (Finternal_get_lisp_face_attribute): Ditto.
1586 (Finternal_lisp_face_empty_p): Ditto.
1587 (Fdump_face): Ditto.
1588
1589 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
1590 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
1591 set_terminal_window, set_scroll_region, reassert_line_highlight,
1592 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
1593 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
1594 encode_terminal_code, write_glyphs, term_init): Ditto.
1595
1596 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
1597 (kbd_input_ast, read_input_waiting): Ditto.
1598
1599 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
1600 selected_frame.
1601 (read_minibuf): Ditto.
1602
1603 * keyboard.c (command_loop_1): Change for Lisp_Object
1604 selected_frame.
1605 (cmd_error_internal, command_loop_1, read_char,
1606 kbd_buffer_get_event, read_avail_input,
1607 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
1608 interrupt_signal, quit_throw_to_read_char): Ditto.
1609
1610 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
1611 (Ffontset_info): DItto.
1612
1613 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
1614
1615 * dispnew.c (selected_frame): Make it a Lisp_Object.
1616 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
1617 (direct_output_for_insert, direct_output_forward_char,
1618 init_display): Ditto.
1619
1620 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
1621 selected_frame.
1622 (set_internal): Ditto.
1623
1624 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
1625 (record_buffer): Ditto.
1626
1627 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
1628 (do_switch_frame): Change for Lisp_Object selected_frame.
1629 (Fselected_frame): Ditto.
1630 (Fframe_first_window): Use SELECTED_FRAME.
1631 (Fframe_root_window): Change for Lisp_Object selected_frame.
1632 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
1633 Fprevious_frame, other_visible_frames, Fdelete_frame,
1634 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
1635 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
1636 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
1637 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
1638 Fset_frame_height, Fset_frame_width): Ditto.
1639
1640 1999-09-13 Gerd Moellmann <gerd@gnu.org>
1641
1642 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
1643 (message3_nolog, message_with_string, message,
1644 setup_echo_area_for_printing, truncate_echo_area,
1645 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
1646
1647 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
1648 (Fx_popup_dialog): Ditto.
1649
1650 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
1651 (check_x_display_info, x_get_resource_string): Ditto.
1652
1653 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
1654 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
1655 (XRINGBELL): Removed.
1656
1657 * window.c (Fminibuffer_window): Change for Lisp_Object
1658 selected_frame.
1659 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
1660 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
1661 Fcurrent_window_configuration, init_window_once): Ditto.
1662
1663 * frame.h (SELECTED_FRAME): New.
1664
1665 1999-09-12 Ken Raeburn <raeburn@gnu.org>
1666
1667 * category.c (word_boundary_p): Use XCAR and XCDR.
1668 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
1669 Fregister_code_conversion_map): Likewise.
1670 * coding.c (setup_coding_system, detect_coding_system,
1671 Ffind_operation_coding_system, Fset_coding_priority_internal):
1672 Likewise.
1673 * doc.c (get_doc_string, Fdocumentation,
1674 store_function_docstring): Likewise.
1675 * editfns.c (save_restriction_restore): Likewise.
1676 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
1677 skip_debugger, find_handler_clause, Fautoload, Fapply,
1678 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
1679 Likewise.
1680 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
1681 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
1682 Fread_file_name): Likewise.
1683 * filelock.c (unlock_all_files): Likewise.
1684 * insdel.c (Fcombine_after_change_execute): Likewise.
1685 * intervals.c (adjust_intervals_for_insertion): Likewise.
1686 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
1687 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
1688 store_in_keymap, Fcopy_keymap, define_as_prefix,
1689 current_minor_maps, Faccessible_keymaps,
1690 accessible_keymaps_char_table, Fkey_description,
1691 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
1692 describe_buffer_bindings, describe_map_tree, shadow_lookup,
1693 describe_map): Likewise.
1694 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
1695 read_list, init_lread): Likewise.
1696 * search.c (Fmatch_data): Likewise.
1697 * sunfns.c (Fsun_menu_internal): Likewise.
1698 * syntax.c (describe_syntax): Likewise.
1699 * undo.c (record_insert, record_delete, Fundo_boundary,
1700 truncate_undo_list): Likewise.
1701 * vmsproc.c (child_sig): Likewise.
1702
1703 * editfns.c (Fformat): Use XFLOAT_DATA.
1704
1705 1999-09-12 Gerd Moellmann <gerd@gnu.org>
1706
1707 * keyboard.c (command_loop_1): Resize mini-window to the
1708 exact size of a message displayed, if any.
1709
1710 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
1711 to exact size if exact_p is non-zero.
1712 (display_echo_area_1): Call resize_mini_window with
1713 new parameter.
1714 (redisplay_internal): Ditto.
1715 (resize_echo_area_axactly): New.
1716
1717 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
1718 new parameter.
1719
1720 * dispextern.h: Change prototype of resize_mini_window.
1721 Add prototype for resize_echo_area_axactly.
1722
1723 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
1724 (syms_of_xfaces): Defsubr accordingly.
1725
1726 * xdisp.c (hscroll_window_tree): Choose cursor row from
1727 desired or current matrix.
1728 (redisplay_internal): Hscroll before updating.
1729
1730 1999-09-12 Gerd Moellmann <gerd@gnu.org>
1731
1732 * syntax.c (Fforward_word): Use prompt_end_charpos instead
1733 of minibuffer_prompt_length.
1734
1735 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
1736 of minibuffer_prompt_length.
1737 (read_minibuf_unwind): Ditto.
1738 (Fminibuffer_complete_and_exit): Ditto.
1739 (Fminibuffer_complete_word): Ditto.
1740 (Fminibuffer_prompt_end): Ditto.
1741
1742 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
1743 of minibuffer_prompt_length.
1744 (Fline_beginning_position): Ditto.
1745
1746 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
1747 of minibuffer_prompt_length.
1748 (Fmake_indirect_buffer): Ditto.
1749 (Fkill_buffer): Ditto.
1750 (Ferase_buffer): Ditto.
1751
1752 * buffer.h (prompt_end_charpos): Replaces
1753 minibuffer_prompt_length.
1754
1755 * minibuf.c (read_minibuf): Return mini-buffer contents
1756 without the prompt.
1757
1758 * editfns.c (make_buffer_string_both): Take out the code
1759 to handle mini-buffer prompts.
1760 (Fbuffer_string): Handle the prompt here, instead.
1761
1762 * xfaces.c (lface_from_face_name): Resolve face aliases.
1763 (Qmode_line): Replaces Qmodeline.
1764 (realize_basic_faces): Use Qmode_line.
1765 (syms_of_xfaces): Initialize Qmode_line.
1766
1767 1999-09-12 Gerd Moellmann <gerd@gnu.org>
1768
1769 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
1770 current column after inserting prompt.
1771 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
1772
1773 * xfaces.c (Qframe_update_face_colors): New.
1774 (syms_of_xfaces): Initialize call.
1775 (update_face_from_frame_parameter): Call that function when
1776 the frame's background changes.
1777
1778 1999-09-12 Richard Stallman <rms@gnu.org>
1779
1780 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
1781
1782 1999-09-12 Ken Raeburn <raeburn@gnu.org>
1783
1784 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
1785 mark_object, mark_buffer): Use XCAR and XCDR.
1786 * bytecode.c (Fbyte_code): Likewise.
1787 * callint.c (Fcall_interactively, Fprefix_numeric_value):
1788 Likewise.
1789 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
1790 getenv_internal): Likewise.
1791 * dired.c (file_name_completion): Likewise.
1792 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
1793 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
1794 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
1795 * indent.c (Fcompute_motion): Likewise.
1796 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
1797 list_processes_1, Fstart_process, Fopen_network_stream,
1798 wait_reading_process_input, read_process_output_call,
1799 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
1800 status_notify, wait_reading_process_input): Likewise.
1801 * textprop.c (PLIST_ELT_P, property_value, set_properties,
1802 extend_property_ranges): Likewise.
1803 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
1804 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
1805 x_report_frame_params, x_set_cursor_type, x_icon_type,
1806 x_figure_window_size, Fx_create_frame, w32_load_system_font,
1807 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
1808 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
1809 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
1810 x_display_info_for_name, Fx_display_list): Likewise.
1811 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
1812 Fx_popup_menu, Fx_popup_dialog): Likewise.
1813 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
1814 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
1815 w32_term_init, x_delete_display): Likewise.
1816 * xfns.c (x_window_to_frame, x_any_window_to_frame,
1817 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
1818 x_top_window_to_frame, x_set_frame_parameters,
1819 x_report_frame_params, x_set_cursor_type, x_icon_type,
1820 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
1821 Fx_display_list, x_create_tip_frame): Likewise.
1822 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
1823 Fx_popup_menu, Fx_popup_dialog): Likewise.
1824 * xselect.c (x_own_selection, x_get_local_selection,
1825 x_handle_selection_request, x_handle_selection_clear,
1826 x_clear_frame_selections, wait_for_property_change_unwind,
1827 wait_for_property_change, x_handle_property_notify,
1828 copy_multiple_data, x_get_foreign_selection,
1829 lisp_data_to_selection_data, clean_local_selection_data,
1830 x_handle_selection_notify, Fx_get_selection_internal,
1831 x_disown_buffer_selections): Likewise.
1832 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
1833 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
1834 Likewise.
1835
1836 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
1837 XFLOAT_DATA.
1838 * bytecode.c (Fbyte_code): Likewise.
1839 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
1840 fmod_float): Likewise.
1841
1842 1999-09-11 Richard Stallman <rms@gnu.org>
1843
1844 * xdisp.c (run_window_scroll_functions): If hook functions switch
1845 buffers, switch back after.
1846
1847 1999-09-11 Ken Raeburn <raeburn@gnu.org>
1848
1849 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
1850 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
1851 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
1852 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
1853 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
1854 XCDR.
1855 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
1856 XCDR.
1857
1858 1999-09-10 Richard Stallman <rms@gnu.org>
1859
1860 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
1861 not RevertToPointerRoot.
1862 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
1863 Fix the code to clear around the scroll bar.
1864
1865 1999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
1866
1867 * print.c: Support print-circle and related features.
1868 (Vprint_gensym_alist): Removed.
1869 (Vprint_circle, Vprint_continuous_numbering, print_number_index
1870 Vprint_number_table): New variables.
1871 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
1872 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
1873 (print, print_preprocess, print_preprocess_string, print_object):
1874 New/modified functions with print-circle feature. Use
1875 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
1876 (syms_of_print): Defined new Lisp variables `print-circle',
1877 `print-continuous-numbering', `print-number-table'.
1878
1879 1999-09-10 Gerd Moellmann <gerd@gnu.org>
1880
1881 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
1882 as background color specification instead of an integer.
1883 (image-cache-eviction-delay): Replaces image-eviction-seconds.
1884 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
1885 (clear_image_cache, syms_of_xfns): Use it.
1886 (Qpostscript): Replaces Qghostscript.
1887 (gs_type): Use it.
1888 (gs_image_p): Ditto.
1889 (syms_of_xfns): Initialize Qpostscript.
1890
1891 1999-09-10 Richard Stallman <rms@gnu.org>
1892
1893 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
1894
1895 1999-09-09 Richard Stallman <rms@gnu.org>
1896
1897 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
1898
1899 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
1900
1901 1999-09-09 Gerd Moellmann <gerd@gnu.org>
1902
1903 * fns.c (Fmakehash): Accept just one optional argument TEST.
1904
1905 * xfns.c (QCindex): New.
1906 (syms_of_xfns): Initialize QCindex.
1907 (gif_load): Use it instead of `:image'.
1908
1909 1999-09-09 Richard Stallman <rms@gnu.org>
1910
1911 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
1912 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
1913
1914 1999-09-08 Gerd Moellmann <gerd@gnu.org>
1915
1916 * xdisp.c (Qwhen): Replaces QCwhen.
1917 (syms_of_xdisp): Initialized it instead of QCwhen.
1918 (handle_single_display_prop): Use it instead of QCwhen.
1919
1920 1999-09-08 Ken'ichi Handa <handa@gnu.org>
1921
1922 * charset.c (translate_char): Reset MSBs of arguments of
1923 MAKE_CHAR.
1924 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
1925
1926 1999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
1927
1928 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
1929
1930 * fns.c (Fbase64_decode_region): Don't place point outside of the
1931 current accessible portion.
1932
1933 1999-09-07 Richard Stallman <rms@gnu.org>
1934
1935 * keymap.c (fix_submap_inheritance): Do nothing if the proper
1936 parent is an ancestor of SUBMAP; otherwise, add it as the
1937 ultimate ancestor.
1938
1939 1999-09-07 Gerd Moellmann <gerd@gnu.org>
1940
1941 * xdisp.c (handle_single_display_prop): Change conditional
1942 display property to `:when FORM . VALUE'.
1943
1944 1999-09-07 Richard Stallman <rms@gnu.org>
1945
1946 * fileio.c (Fwrite_region): Doc fix.
1947
1948 1999-09-07 Stefan Monnier <monnier@cs.yale.edu>
1949
1950 * fileio.c (Qexcl): New variable.
1951 (report_file_error): Handle EEXIST specially.
1952 (Fwrite_region): Special handling for CONFIRM = `excl'.
1953 (syms_of_fileio): Initialize Qexcl.
1954
1955 1999-09-07 Gerd Moellmann <gerd@gnu.org>
1956
1957 * xfns.c (x_set_foreground_color): Call
1958 update_face_from_frame_parameter.
1959 (x_set_background_color): Ditto.
1960 (x_set_mouse_color): Ditto.
1961 (x_set_cursor_color): Ditto.
1962 (x_set_border_color): Ditto.
1963 (x_set_scroll_bar_foreground): Ditto.
1964 (x_set_scroll_bar_background): Ditto.
1965
1966 * xfaces.c (recompute_basic_faces): Clear face cache.
1967 (Finternal_set_lisp_face_attribute): Modify frame parameters
1968 if attributes of certain faces are changed.
1969 (update_face_from_frame_parameter): New.
1970
1971 * xfaces.c (realize_basic_faces): Realize new basic faces.
1972
1973 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
1974 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
1975
1976 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
1977 (syms_of_xfaces): Intialize new symbols.
1978
1979 * fns.c (Fmakehash): Take one argument, test, make all the
1980 rest keyword arguments.
1981
1982 * window.c (Fset_window_margins): Make window the first argument.
1983 (set_window_buffer): Call Fset_window_margins with window as first
1984 argument.
1985
1986 1999-09-07 Gerd Moellmann <gerd@gnu.org>
1987
1988 * xfaces.c (Qfringe): Replaces Qmargin.
1989
1990 1999-09-07 Kenichi Handa <handa@etl.go.jp>
1991
1992 * charset.h: Lots of comments fixed.
1993 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
1994 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
1995
1996 * charset.c : Lots of comments fixed.
1997 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
1998 (CHAR_COMPONENTS_VALID_P): Name changed from
1999 CHAR_COMPONENT_VALID_P. Caller changed.
2000
2001 1999-09-06 Richard Stallman <rms@gnu.org>
2002
2003 * insdel.c (syms_of_insdel): Define Lisp variable
2004 inhibit-modification-hooks.
2005
2006 1999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
2007
2008 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
2009 unexaix.c.
2010
2011 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
2012
2013 1999-09-06 Dave Love <fx@gnu.org>
2014
2015 * unexaix.c: New version incorporating Michael Sperber's changes
2016 from XEmacs. Should solve problems on AIX 4.3.
2017
2018 * lread.c (Vbyte_boolean_vars): New variable.
2019 (defvar_bool, syms_of_lread): Use it.
2020
2021 1999-09-05 Richard Stallman <rms@gnu.org>
2022
2023 * minibuf.c (read_minibuf): Put all three properties on the
2024 same range, the whole prompt.
2025
2026 1999-09-05 Gerd Moellmann <gerd@gnu.org>
2027
2028 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
2029 (Fplay_sound, syms_of_sound): Use it.
2030 (parse_sound): Allow float volume values in the range [0, 1].
2031 (Fplay_sound): Ditto.
2032
2033 * window.c (Fset_window_vscroll): Make window the first argument,
2034 amount to scroll the second. Take non-negative vscroll as
2035 argument.
2036 (Fwindow_vscroll): Return non-negative vscroll.
2037
2038 * xfns.c (Fx_show_tip): Improve documentation.
2039
2040 1999-09-05 Gerd Moellmann <gerd@gnu.org>
2041
2042 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
2043 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
2044 `top-line' and `top_line' to `header-line' and `header_line'.
2045 Likewise for similar spellings.
2046
2047 1999-09-05 Gerd Moellmann <gerd@gnu.org>
2048
2049 * xdisp.c (row_containing_pos): New.
2050 (try_window_id): Use it.
2051
2052 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
2053 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
2054 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
2055 Likewise for upper-case etc.
2056
2057 1999-09-05 Gerd Moellmann <gerd@gnu.org>
2058
2059 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
2060 Fix reference to renamed variable.
2061
2062 1999-09-04 Gerd Moellmann <gerd@gnu.org>
2063
2064 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
2065 (window_fixed_size_p): Use Qwindow_size_fixed instead of
2066 Qfixed_window_size.
2067 (syms_of_window): Ditto.
2068
2069 * fns.c (Fmakehash): Exchange optional test and size arguments.
2070
2071 1999-09-03 Gerd Moellmann <gerd@gnu.org>
2072
2073 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
2074 under newly created scroll bar.
2075 (expose_window): If window is not yet fully initialized, do
2076 nothing. This can happen when toolkit scroll bars are used and a
2077 window is split. Reconfiguring the scroll bars will generate an
2078 expose for a newly created window.
2079
2080 * frame.h (struct frame): New member `gamma'.
2081
2082 * xfns.c: Include math.h. Add extern declaration for atof in case
2083 we don't see one.
2084 (Qscreen_gamma): New.
2085 (struct x_frame_parm_table): Add prototypes, add
2086 x_set_screen_gamma.
2087 (gamma_correct): New function.
2088 (defined_color): Call it.
2089 (x_set_screen_gamma): New.
2090 (x_set_title): Add parameter old_value.
2091 (RES_TYPE_FLOAT): New.
2092 (x_get_arg): Handle RES_TYPE_FLOAT.
2093 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
2094 (lookup_pixel_color): Change call to x_alloc_nearest_color to
2095 new prototype.
2096 (lookup_rgb_color): Ditto.
2097 (syms_of_xfns): Initialize Qscreen_gamma.
2098
2099 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
2100 New. Allocate color for lwlib widgets.
2101 (x_alloc_nearest_color): Change parameter list include the
2102 frame on which to allocate colors. Gamma-correct colors.
2103 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
2104 parameter list.
2105
2106 * xterm.h: Change protorype of x_alloc_nearest_color.
2107
2108 1999-09-03 Richard Stallman <rms@gnu.org>
2109
2110 * callproc.c: Delete the system-independent include of stdlib.h
2111 (leaving only the one in the WINDOWSNT conditional).
2112
2113 1999-09-03 Andrew Choi <choi@cs.hku.hk>
2114
2115 * callproc.c (call-process) [macintosh]: Call mac_run_command in
2116 sysdep.c. The Mac code is modeled after the DOS code.
2117
2118 * dispextern.h [macintosh]: Include macterm.h to define substitute X
2119 Window types and macros.
2120
2121 * frame.h: Do nothing if included a second time.
2122 (enum output_method): Add mac_output frame type.
2123 (union output_data): Add new alternative `mac'.
2124 (FRAME_MAC_P): New macro.
2125
2126 * frame.c (Fframep) [macintosh]: Handle mac frame type.
2127 (syms_of_frame_1): Initialize Qmac.
2128 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
2129 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
2130 (Fmodify_frame_parameters) [macintosh]: Call
2131 mac_set_frame_parameter in macterm.c.
2132
2133 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
2134 (512) because Mac compilers limit local data of a function to 32K.
2135
2136 * make-docfiles.c: Correctly handle input files with Mac-style
2137 eol's.
2138
2139 * sysdep.c: Define numerous routines to emulate Unix system calls.
2140
2141 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
2142 file of an X Window environment.
2143
2144 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
2145 x-display-grayscale, x-color-defined-p, and x-color-values.
2146
2147 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
2148 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
2149 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
2150 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
2151 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
2152 New functions, replacing POSIX features.
2153
2154 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
2155 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
2156 (InitEmacsPasswdDir, run_mac_command): New subroutines.
2157
2158 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
2159 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
2160 (myPasswdDir, TempDirName, sys_siglist): New variables.
2161
2162 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
2163 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
2164 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
2165 Define empty stubs so Emacs will link.
2166
2167 1999-09-03 Gerd Moellmann <gerd@gnu.org>
2168
2169 * xdisp.c: Use XCAR and XCDR instead of XCONS.
2170
2171 * window.h: New member frozen_window_start_p.
2172
2173 * window.c (foreach_window, foreach_window_1): New.
2174 (freeze_window_start, freeze_window_starts): New.
2175 (make_window): Initialize frozen_window_start_p.
2176 (replace_window): Ditto.
2177 (Fset_window_point): Remove references to deleted variables.
2178 (Fset_window_start): Ditto.
2179
2180 * xdisp.c (Vresize_mini_config, resize_mini_frame,
2181 resize_mini_initial_height): Removed.
2182 (syms_of_xdisp): Remove references to these variables.
2183 (resize_mini_window): Don't save window configuration, freeze
2184 window starts instead. Enlarge window until displaying an empty
2185 buffer, then shrink it. Make the function externally visible.
2186 (redisplay_window): Treat frozen window start like forced start,
2187 but accept point outside of the window.
2188
2189 * dispextern.h: Add function prototype for resize_mini_window.
2190
2191 * minibuf.c (read_minibuf_unwind): Resize mini-window when
2192 reaching minibuf_level 0.
2193
2194 * lisp.h: Remove extern declarations for variables deleted from
2195 xdisp.c.
2196
2197 * dispnew.c (adjust_frame_glyphs): Remove reference to
2198 Vresize_mini_config.
2199
2200 1999-09-03 Gerd Moellmann <gerd@gnu.org>
2201
2202 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
2203 to USE_TOOLKIT_SCROLL_BARS.
2204
2205 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
2206 here.
2207 (XTset_vertical_scroll_bar): Clarify position computations. Clear
2208 under newly created scroll bar. Put toolkit scroll bars in the
2209 middle of the area reserved for the scroll bar.
2210
2211 1999-09-03 Kenichi Handa <handa@etl.go.jp>
2212
2213 The following changes are for the new handling of mulitbyte
2214 sequence. Now, except for a composite character, no multibyte
2215 character in string/buffer has trailing garbage bytes. For
2216 instance, the length of string "\201\300\300" is now 2, the first
2217 character is Latin-1 A-grave, the second is raw \300.
2218
2219 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
2220 are negative.
2221 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
2222 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
2223 (PARSE_COMPOSITE_SEQ): New macro.
2224 (PARSE_CHARACTER_SEQ): New macro.
2225 (PARSE_MULTIBYTE_SEQ): New macro.
2226 (CHAR_PRINTABLE_P): New macro.
2227 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
2228 (STRING_CHAR_AND_LENGTH): Likewise.
2229 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
2230 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
2231 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
2232
2233 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
2234 (SPLIT_CHARACTER_SEQ): New macro.
2235 (SPLIT_MULTIBYTE_SEQ): New macro.
2236 (CHAR_COMPONENT_VALID_P): New macro.
2237 (non_ascii_char_to_string): Generate a multibyte sequence as far
2238 as possible.
2239 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
2240 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
2241 (split_non_ascii_string): Likewise.
2242 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
2243 (char_printable_p): New function.
2244 (translate_char): Check character by NATNUMP instead of INTEGERP.
2245 (unibyte_char_to_multibyte): Call char_valid_p instead of
2246 VALID_MULTIBYTE_CHAR_P.
2247 (Fmake_char_internal): Check the arguments more rigidly.
2248 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
2249 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
2250 (Fmultibyte_char_to_unibyte): Check the validity of character by
2251 CHAR_VALID_P.
2252 (chars_in_text): Call multibyte_chars_in_text.
2253 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
2254 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
2255 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
2256
2257 * data.c (Faset): Adjust the way to check byte-combining
2258 possibility for the new handling of multibyte sequence.
2259
2260 * editfns.c (Fsubst_char_in_region): Likewise.
2261
2262 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
2263 (string_char_to_byte): Likewise.
2264 (string_byte_to_char): Likewise.
2265
2266 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
2267 macro STRING_CHAR_AND_LENGTH. Caller changed.
2268
2269 * insdel.c (count_combining_composition): New function.
2270 (count_combining_before): Adjust the way to check byte-combining
2271 possibility for the new handling of multibyte sequence. Call
2272 count_combining_composition for a composite character.
2273 (count_combining_after): Likewise.
2274
2275 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
2276 (print): Likewise.
2277
2278 * dispextern.h (struct it): Change the size of the member
2279 `ctl_chars'.
2280
2281 * xdisp.c (get_next_display_element): Display incomplete multibyte
2282 sequence (e.g. \222\300) by octal form.
2283
2284 1999-09-02 Gerd Moellmann <gerd@gnu.org>
2285
2286 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
2287
2288 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
2289 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
2290
2291 1999-09-02 Gerd Moellmann <gerd@gnu.org>
2292
2293 * buffer.c (set_buffer_internal): Never set
2294 windows_or_buffers_changed.
2295
2296 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
2297 if we have displayed to the bottom of the window.
2298
2299 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
2300 in both directions. Extend documentation.
2301
2302 1999-09-01 Gerd Moellmann <gerd@gnu.org>
2303
2304 * minibuf.c (read_minibuf): Flush display after setting cursor to
2305 column 0.
2306
2307 1999-08-31 Gerd Moellmann <gerd@gnu.org>
2308
2309 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
2310 already defined. This avoids a warning from buffer.c.
2311
2312 1999-08-30 Gerd Moellmann <gerd@gnu.org>
2313
2314 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
2315 of both margins.
2316 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
2317 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
2318 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
2319
2320 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
2321 once instead of twice.
2322 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
2323
2324 * xterm.c: Remove unused bitmaps.
2325 (continued_bits, continuation_bits, overlay_bits): Change images.
2326 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
2327 instead of FRAME_X_FLAGS_AREA_WIDTH.
2328 (x_after_update_window_line): Ditto.
2329 (x_draw_bitmap): Likewise.
2330 (x_draw_row_bitmaps): Likewise.
2331 (x_draw_glyph_string_box): Likewise.
2332 (x_draw_glyphs): Likewise.
2333 (x_scroll_run): Likewise.
2334 (expose_window_tree): Likewise.
2335 (note_mode_line_highlight): Likewise.
2336 (XTset_vertical_scroll_bar): Likewise.
2337 (x_clip_to_row): Likewise.
2338 (x_set_window_size): Likewise.
2339
2340 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
2341 of 2 * that value.
2342
2343 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
2344 2 * that value.
2345 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
2346 FRAME_FLAGS_AREA_WIDTH.
2347
2348 * window.c (coordinates_in_window): Use
2349 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
2350 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
2351 instead of twice.
2352
2353 * widget.c (set_frame_size): Set flags_area_extra to
2354 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
2355 (EmacsFrameSetCharSize): Ditto.
2356
2357 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
2358 instead of FRAME_FLAGS_AREA_WIDTH.
2359
2360 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
2361 FRAME_FLAGS_AREA_COLS once.
2362 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
2363 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
2364
2365 1999-08-30 Gerd Moellmann <gerd@gnu.org>
2366
2367 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
2368 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
2369
2370 1999-08-30 Gerd Moellmann <gerd@gnu.org>
2371
2372 * fns.c (QCweakness): Replaces QCweak.
2373 (Fmake_hash_table): Ditto.
2374 (Fmakehash): Ditto.
2375 (syms_of_fns): Ditto.
2376
2377 1999-08-29 Richard Stallman <rms@gnu.org>
2378
2379 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
2380
2381 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
2382
2383 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
2384 Add support for nested comments.
2385
2386 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
2387 Consolidate the forward comment code into the new `forw_comment'.
2388 (forw_comment): New subroutine. Added support for nested comments.
2389 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
2390 (Fparse_partial_sexp): Add support for nested comments.
2391
2392 1999-08-28 Ken Raeburn <raeburn@gnu.org>
2393
2394 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
2395 names of structure elements if HIDE_LISP_IMPLEMENTATION is
2396 defined, to help detect code that uses knowledge of the Lisp
2397 internals that it shouldn't have.
2398 (XFLOAT_DATA): New macro.
2399
2400 1999-08-25 Gerd Moellmann <gerd@gnu.org>
2401
2402 * syntax.c (Fforward_word): If in a mini-buffer and moving
2403 backwards, stop in front of the prompt to prevent accidentially
2404 moving into the read-only prompt.
2405
2406 * window.c (Frecenter): Clear frame if called with nil or no arg.
2407
2408 * xdisp.c (resize_mini_window): Don't resize if
2409 Vmax_mini_window_height is nil. Otherwise, use a default if
2410 Vmax_mini_window_height is not ot a number.
2411 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
2412
2413 1999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
2414
2415 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
2416 * m/iris4d.h: Use unexelf for IRIX 5.*.
2417 * m/iris5d.h: Use unexelf for IRIX 6.*.
2418 * unexsgi.c: Deleted.
2419
2420 * unexelf.c: Auto-detect .sbss section.
2421 (round_up): Make it static.
2422 (unexec): Declare alignment as Elf Word. Skip ``Program
2423 segment above .bss'' test on MIPS without .sbss.
2424 Copy sections .got and .sdata1 sections. Adjust offsets in
2425 sections .sdata, .lit4, .lit8, .got and .sdata1.
2426
2427 1999-08-25 Gerd Moellmann <gerd@gnu.org>
2428
2429 * xdisp.c (try_window_id): Remove typo.
2430
2431 1999-08-24 Gerd Moellmann <gerd@gnu.org>
2432
2433 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
2434 unchanged text at the bottom when computing the cursor position.
2435 (message3_nolog): Raise frame only if minibuffer_auto_raise is
2436 set.
2437
2438 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
2439
2440 1999-08-24 Gerd Moellmann <gerd@gnu.org>
2441
2442 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
2443 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
2444 (syms_of_xfaces): Ditto.
2445
2446 * window.c (Fset_window_point): Reset Vresize_mini_config.
2447 (Fset_window_start): Ditto.
2448 (set_window_buffer): Ditto.
2449
2450 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
2451
2452 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
2453 before calling try_window.
2454 (echo_area_display): If height has changed, update other windows.
2455 (resize_mini_frame, resize_mini_initial_height): New.
2456 (resize_mini_window): Save/restore window configuration
2457 differently.
2458
2459 * lisp.h (Vresize_mini_config, resize_mini_frame,
2460 resize_mini_initial_height): Add extern declarations.
2461
2462 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
2463 CANON_X_UNIT.
2464
2465 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
2466 being redefined in jconfig.h.
2467
2468 1999-08-23 Ken'ichi Handa <handa@gnu.org>
2469
2470 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
2471
2472 1999-08-22 Gerd Moellmann <gerd@gnu.org>
2473
2474 * alloc.c (mark_glyph_matrix): Mark strings only.
2475
2476 * xdisp.c (redisplay_internal): Clear garbaged frames after
2477 resizing mini-window.
2478
2479 1999-08-22 Gerd Moellmann <gerd@gnu.org>
2480
2481 * xdisp.c (unwind_with_echo_area_buffer): Use
2482 set_buffer_internal_1 instead of set_buffer_internal.
2483 (with_echo_area_buffer): Ditto.
2484
2485 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
2486 only if buffer is displayed somewhere.
2487
2488 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
2489
2490 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
2491 (gap_right): Ditto.
2492 (modify_region): Ditto.
2493
2494 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
2495
2496 * xdisp.c (Vresize_mini_config): New.
2497 (resize_mini_window): Use it to save restore original window
2498 configuration
2499 (syms_of_xdisp): Initialize it.
2500
2501 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
2502
2503 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
2504
2505 * xdisp.c (reconsider_clip_changes): New.
2506 (redisplay_internal, redisplay_window): Call it.
2507 (mark_window_display_accurate, redisplay_internal): Set current
2508 matrix' buffer, begv, zv.
2509
2510 * window.c (Fset_window_hscroll): Set
2511 prevent_redisplay_optimizations_p instead of clip_changed.
2512 (Fset_window_hscroll): Ditto.
2513 (temp_output_buffer_show): Ditto.
2514 (Fset_window_vscroll): Ditto.
2515
2516 * buffer.c (reset_buffer): Set clip_changed to 0 and
2517 prevent_redisplay_optimizations_p to 1.
2518 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
2519
2520 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
2521 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
2522 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
2523 END_UNCHANGED): New.
2524 (struct buffer_text): Add beg_unchanged, end_unchanged,
2525 unchanged_modified, overlay_unchanged_modified.
2526
2527 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
2528 overlay_unchanged_modified): Removed.
2529 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
2530 (unwind_with_echo_area_buffer): Don't restore them.
2531 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
2532 (text_outside_line_unchanged_p, redisplay_internal,
2533 try_scrolling): Use/set buffer-specific beg/end_unchanged.
2534 (redisplay_window): Let try_window_id be called if more than one
2535 window is displayed. Use/set buffer-specific beg/end_unchanged.
2536 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
2537 try_window_id):
2538 Use buffer-specific beg/end_unchanged.
2539
2540 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
2541 overlay_unchanged_modified): Remove extern declarations.
2542
2543 * keyboard.c (command_loop_1): Set beg/end_unchanged per
2544 buffer.
2545
2546 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
2547 (gap_right): Ditto.
2548 (adjust_after_replace): Likewise.
2549 (replace_range, del_range_2, modify_region): Likewise.
2550
2551 * dispnew.c (direct_output_for_insert): Set beg_unchanged
2552 and unchanged_modified per buffer.
2553
2554 * coding.c (code_convert_region): Compute beg/end_unchanged per
2555 buffer.
2556
2557 * buffer.c (modify_overlay): Compute beg/end_unchanged
2558 per buffer.
2559 (Fget_buffer_create): Initialize new members of the buffer
2560 structure.
2561
2562 1999-08-22 Gerd Moellmann <gerd@gnu.org>
2563
2564 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
2565
2566 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
2567 (Qkey_value_weak): Removed.
2568 (make_hash_table): Use nil, `key', `value', t for weakness.
2569 (Fmake_hash_table): Ditto.
2570 (copy_hash_table): New.
2571 (Fcopy_hash_table): New.
2572
2573 1999-08-22 Gerd Moellmann <gerd@gnu.org>
2574
2575 * xfns.c: Call change_frame_size and do_pending_window_change with
2576 new parameter.
2577
2578 1999-08-21 Gerd Moellmann <gerd@gnu.org>
2579
2580 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
2581 well.
2582 (redisplay_internal): Resize mini-window only if text might
2583 have changed.
2584 (display_echo_area): Reset displayed echo_area_buffer to nil
2585 at the end if we're displaying a nil message.
2586
2587 1999-08-21 Gerd Moellmann <gerd@gnu.org>
2588
2589 * fns.c (hash_lookup): Test with EQ before calling key comparion
2590 function.
2591 (hash_remove): Ditto.
2592 (cmpfn_eq): Removed.
2593 (cmpfn_eql): Don't test with EQ.
2594 (cmpfn_equal): Ditto.
2595 (make_hash_table): Set comparison function for `eq' to null.
2596
2597 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
2598 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
2599
2600 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
2601
2602 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
2603 xterm.c: Call change_frame_size and do_pending_window_change with
2604 new parameter.
2605
2606 * dispnew.c (do_pending_window_change): Add parameter `safe'.
2607 (change_frame_size): Ditto.
2608 (change_frame_size_1): Ditto. Deley size changes if redisplaying
2609 and not called from a safe place.
2610 (window_change_signal): Call change_frame_size with new parameter.
2611
2612 * dispextern.h: Change prototypes for do_pending_window_change
2613 and change_frame_size.
2614
2615 * xfaces.c (face_at_buffer_position): Don't xassert that
2616 window's buffers equals current_buffer; this is not the
2617 case during echo area display.
2618
2619 1999-08-21 Gerd Moellmann <gerd@gnu.org>
2620
2621 * xdisp.c, minibuf.c: Remove conditional compilation on
2622 NO_PROMPT_IN_BUFFER.
2623
2624 * minibuf.c (Fminibuffer_prompt_end): New.
2625 (syms_of_minibuf): Defsubr it. Remove
2626 minibuffer-prompt-in-buffer.
2627 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
2628 Extend documentation.
2629
2630 * xdisp.c (get_next_display_element): Display \r as ^M.
2631
2632 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
2633 under scroll bar widget.
2634
2635 1999-08-21 Gerd Moellmann <gerd@gnu.org>
2636
2637 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
2638 anywhere.
2639 (unwind_redisplay): Return nil.
2640 (clear_garbaged_frames): New.
2641 (redisplay_internal): Use it.
2642 (echo_area_display): Ditto.
2643 (resize_mini_window): Mew.
2644 (display_echo_area_1): Use it to resize echo area window.
2645 (redisplay_internal): Use it to resize active mini-window.
2646
2647 * dispextern.h, lisp.h: Add function prototypes.
2648
2649 * dispnew.c (set_window_cursor_after_update): Do the
2650 cursor_in_echo_area case only for a mini-window showing
2651 a message. Don't let cursor end up after the end of a row.
2652
2653 * xdisp.c (echo_area_glyphs, echo_area_message,
2654 echo_area_glyphs_length, previous_echo_glyphs,
2655 previous_echo_area_message, previous_echo_area_glyphs_length):
2656 Removed.
2657 (Vmessage_stack, echo_area_buffer, echo_buffer,
2658 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
2659 (message2_nolog): Use set_message and clear_message.
2660 (message3): Rename parameter len to nbytes to make clear what
2661 it is.
2662 (message3_nolog): Ditto. Use set_message and clear_message.
2663 (update_echo_area): Rewritten.
2664 (with_echo_area_buffer): New.
2665 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
2666 (setup_echo_area_for_printing): New.
2667 (display_echo_area, display_echo_area_1): New.
2668
2669 (current_message, current_message_1): New.
2670 (push_message, restore_message, pop_message,
2671 check_message_stack): New.
2672 (truncate_echo_area): Rewritten.
2673 (truncate_message_1): New.
2674 (set_message, set_message_1, clear_message): New.
2675 (echo_area_display): Rewritten.
2676 (redisplay_internal): Check for needed echo area update
2677 differently.
2678 (redisplay_preserve_echo_area): Rewritten.
2679 (redisplay_window): Check for mini-window displaying echo area
2680 message differently.
2681 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
2682 Remove initialzation of removed variables.
2683 (init_xdisp): Remove references to removed variables.
2684
2685 * dispnew.c (adjust_frame_message_buffer): Removed references
2686 to echo_area_glyphs and previous_echo_glyphs.
2687 (direct_output_for_insert): Check for mini-window displaying
2688 echo area message differently.
2689 (update_frame): Likewise.
2690 (set_window_cursor_after_update): Likewise. In echo area,
2691 don't try to set cursor on rows that aren't enabled.
2692
2693 * print.c: Remove conditional compilation on `standalone'.
2694 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
2695 glyph_to_str_cpy): Remove that section because GLYPHs are no
2696 longer used in that way.
2697 (PRINTDECLARE): Add multibyte.
2698 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
2699 (printbufidx): Removed.
2700 (printchar, strout): Rewritten.
2701
2702 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
2703 a struct kboard.
2704 (echo_kboard): New.
2705 (echo_now): Set echo_kboard to the current kboard.
2706 (cancel_echoing): Set echo_kboard to null.
2707 (cmd_error_internal): Use clear_message, remove references
2708 to echo_area_glyphs and echo_area_message.
2709 (command_loop_1): Check for echo area messages differently.
2710 (read_char): Likewise.
2711 (record_menu_key): Use clear_message.
2712 (Fexecute_extended_command): Check for echo area messages
2713 differently. Use push_message, restore_message, pop_message.
2714
2715 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
2716 pop_message.
2717
2718 * emacs.c (shut_down_emacs): Call check_message_stack.
2719
2720 * lisp.h: Add function prototypes and extern declarations for
2721 new functions and variables.
2722
2723 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
2724 pop_message.
2725
2726 * minibuf.c (read_minibuf): Use clear_message instead of
2727 setting echo_area_glyphs.
2728 (Fminibuffer_completion_help): Ditto.
2729
2730 * editfns.c (Fcurrent_message): Rewritten.
2731
2732 * frame.c, window.h: Remove references to echo_area_glyphs
2733 and previous_echo_glyphs.
2734
2735 1999-08-21 Dave Love <fx@gnu.org>
2736
2737 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
2738 * aix4-1.h: Likewise.
2739
2740 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
2741
2742 1999-08-20 Gerd Moellmann <gerd@gnu.org>
2743
2744 * xfns.c: Remove tiff34 prefix from include.
2745
2746 1999-08-20 Dave Love <fx@gnu.org>
2747
2748 * cm.c: Revert previous change.
2749
2750 1999-08-19 Gerd Moellmann <gerd@gnu.org>
2751
2752 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
2753 under scroll bar with width FRAME_SCROLL_BAR_COLS.
2754
2755 1999-08-18 Dave Love <fx@gnu.org>
2756
2757 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
2758 stdlib.h.
2759
2760 * doprnt.c: Use stdlib.h, unistd.h.
2761
2762 * config.in: Add HAVE_TERMCAP_H.
2763
2764 * cm.c: Use termcap.h.
2765
2766 1999-08-18 Gerd Moellmann <gerd@gnu.org>
2767
2768 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
2769 FRAME_X_WINDOW (f) being null at the of the function. If widgets
2770 cannot be created we will already have crashed earlier. Call
2771 lw_set_main_areas with a null menu-bar widget, so that we have
2772 a reasonable default.
2773 (Fx_create_frame): Rearranged so that Lisp errors during frame
2774 initialization cause less damage. Initialize menu bar widget
2775 here.
2776
2777 1999-08-18 Gerd Moellmann <gerd@gnu.org>
2778
2779 * dispnew.c (update_frame_line): Fix previous change. If writing
2780 whole line clear to end of frame.
2781
2782 1999-08-17 Gerd Moellmann <gerd@gnu.org>
2783
2784 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
2785 and `right-bitmap-area' if position is in the bitmap areas. This
2786 avoids an error when clicking on the bitmap areas. Instead, they
2787 are currently treated like clicks inside the window.
2788 (coordinates_in_window): Return 5 and 6 for bitmap areas.
2789 (Qleft_bitmap_area, Qright_bitmap_area): New.
2790 (syms_of_window): Initialize new symbols.
2791
2792 * dispnew.c (update_frame_line): If writing whole line,
2793 don't write trailing spaces unless we must.
2794
2795 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
2796 (redisplay_internal): Register unwind_redisplay with
2797 register_unwind_protect.
2798 (try_window_reusing_current_matrix): If new start > old start,
2799 give up if start pos of first reusable row is not equal to new
2800 start.
2801
2802 * eval.c (Fsignal): Don't reset redisplaying_p here.
2803
2804 * xterm.c (expose_area): If row extends face to end of line,
2805 write the whole line.
2806
2807 1999-08-16 Gerd Moellmann <gerd@gnu.org>
2808
2809 * dispextern.h (struct it): Remove member
2810 show_trailing_whitespace_p.
2811
2812 * dispnew.c (direct_output_for_insert): Use
2813 Vshow_trailing_whitespace instead of former iterator member
2814 show_trailing_whitespace_p.
2815 (direct_output_forward_char): Don't do it if hightlighting
2816 trailing whitespace.
2817
2818 * xdisp.c (Qshow_trailing_whitespace): Removed.
2819 (Vshow_trailing_whitespace): Added.
2820 (init_iterator): Remove initialization code for
2821 show_trailing_whitespace_p.
2822 (redisplay_internal): Don't try cursor movement in this_line
2823 if showing trailing whitespace.
2824 (redisplay_window): Likewise for cursor movement in current
2825 matrix and try_window_id.
2826 (try_window_reusing_current_matrix): Likewise.
2827 (trailing_whitespace_p): Return 0 if trailing whitespace is
2828 in front of point.
2829 (display_line): Use Vshow_trailing_whitespace instead of
2830 former iterator member show_trailing_whitespace_p.
2831 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
2832
2833 1999-08-16 Gerd Moellmann <gerd@gnu.org>
2834
2835 * window.c (Fpos_visible_in_window_p): Rewritten.
2836
2837 * xfaces.c (add_to_log): Renamed from display_message.
2838 Don't display messages in echo area.
2839
2840 * xterm.c (x_draw_glyph_string_box): Use the background width
2841 of the glyph string for the width of the box.
2842
2843 1999-08-16 Stefan Monnier <monnier@cs.yale.edu>
2844
2845 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
2846
2847 1999-08-16 Geoff Voelker <voelker@cs.washington.edu>
2848
2849 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
2850 background first, and then set other parameters that might
2851 depend upon their new values.
2852
2853 1999-08-15 Gerd Moellmann <gerd@gnu.org>
2854
2855 * xfaces.c (Vfont_list_limit): New.
2856 (syms_of_xfaces): Make it a user-variable.
2857 (DEFAULT_FONT_LIST_LIMIT): New.
2858 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
2859 maximally that number of fonts, otherwise use
2860 DEFAULT_FONT_LIST_LIMIT.
2861 (Fx_font_family_list): Bind `font-list-limit' to higher values
2862 until we have all fonts.
2863 (Fxfont_list): Additionally return the full names of fonts and
2864 their registry and encoding.
2865
2866 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
2867 Simplify clearing "under" scroll bar.
2868
2869 * window.c (Qfixed_window_size): New.
2870 (syms_of_window): Initialiaze it.
2871 (check_all_windows): Add return type void.
2872 (window_fixed_size_p): New. Return non-zero if window
2873 is fixed-size.
2874 (window_min_size_1): New.
2875 (window_min_size): Handle fixed-size windows.
2876 (size_window): New. Rewritten combination of set_window_height and
2877 set_window_width that handles fixed-size windows.
2878 (set_window_height): Call it.
2879 (set_window_width): Call it.
2880 (Fsplit_window): Give an error on attempt to split a fixed-size
2881 window.
2882 (change_window_height): Partly rewritten to handle fixed-size
2883 windows.
2884
2885 1999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
2886
2887 * process.c (Fopen_network_stream): Fix previous change.
2888
2889 1999-08-13 Karl Heuer <kwzh@gnu.org>
2890
2891 * xdisp.c (line_number_display_limit_width): New var.
2892 (decode_mode_spec): Use it instead of hardcoded value.
2893 (syms_of_xdisp): Defvar it.
2894
2895 1999-08-13 Richard M. Stallman <rms@gnu.org>
2896
2897 * eval.c (run_hook_list_with_args): Gcpro `globals'.
2898 (run_hook_with_args): Likewise.
2899
2900 * window.h (struct window): New field too_small_ok.
2901
2902 * window.c (set_window_height, set_window_width):
2903 If window starts out "too small", set its too_small_ok flag.
2904 If window's too_small_ok flag is set, don't delete it
2905 unless it is so small it would cause a crash.
2906
2907 1999-08-13 Gerd Moellmann <gerd@gnu.org>
2908
2909 * window.c (MINSIZE): Removed.
2910 (window_min_size): New.
2911 (set_window_height): Use window_min_size.
2912 (change_window_height): Ditto.
2913
2914 1999-08-12 Gerd Moellmann <gerd@gnu.org>
2915
2916 * indent.c (vmotion): Don't add in mini-buffer prompt width
2917 if prompts are inserted into mini-buffer.
2918
2919 1999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
2920
2921 * config.in: Add HAVE_GETADDRINFO.
2922 * process.c (Fopen_network_stream): Use getaddrinfo.
2923
2924 1999-08-11 Gerd Moellmann <gerd@gnu.org>
2925
2926 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
2927 glyphs to -1.
2928
2929 * xdisp.c (face_before_or_after_it_pos): If position after
2930 or before iterator's current position in the buffer is out
2931 of bounds, return the iterator's original face id.
2932
2933 * dispnew.c (mirror_make_current): If desired row isn't enabled,
2934 just swap glyphs pointers between current and desired row.
2935 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
2936 desired matrix method string to current matrix.
2937
2938 1999-08-11 Kenichi Handa <handa@etl.go.jp>
2939
2940 * lisp.h (CHAR_MODIFIER_MASK): New macro.
2941
2942 * lread.c (read_escape): For Control modifier, pay attention to
2943 multibyte character.
2944 (read1): Likewise. Singal error or a multibyte character which
2945 has a modifer bit. Check validity of Shift modifer.
2946
2947 * charset.c (non_ascii_char_to_string): Handle modifier bits as
2948 the same as Lisp reader.
2949
2950 1999-08-10 Richard M. Stallman <rms@gnu.org>
2951
2952 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
2953
2954 1999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
2955
2956 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
2957
2958 1999-08-10 Eli Zaretskii <eliz@gnu.org>
2959
2960 * msdos.c (IT_set_face): Abort if the default face is not realized
2961 and cached.
2962 (IT_write_glyphs): Reset the screen face to the default face
2963 before writing glyphs.
2964
2965 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
2966 colors from the frame here.
2967 (realize_tty_face) [MSDOS]: Do it here. Update the face
2968 attributes with the actual name of the color taken from the
2969 frame.
2970
2971 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
2972 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
2973
2974 * frame.c (Fframe_parameters): Swap foreground and background
2975 colors returned in frame parameters if the frame has reverse in
2976 its parameter alist.
2977 (Fmake_terminal_frame): Make a unique copy of face_alist for
2978 each frame.
2979
2980 1999-08-07 Richard Stallman <rms@gnu.org>
2981
2982 * buffer.c (Fprevious_overlay_change): Just return
2983 the answer obtained from overlays_at.
2984
2985 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
2986 Use XpmCloseness and attrs.closeness instead.
2987
2988 1999-08-06 Richard Stallman <rms@gnu.org>
2989
2990 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
2991
2992 1999-08-06 Geoff Voelker <voelker@cs.washington.edu>
2993
2994 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
2995 Ffile_attributes_lessp): New functions.
2996 (Fdirectory_files): Use directory_files_internal.
2997 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
2998 Ffile_attributes_lessp.
2999
3000 * w32.c (stat): Check for directory ending in separator when
3001 doing readdir fast path.
3002
3003 * w32fns.c (x_set_icon_type): Support setting frame icons.
3004 * w32term.c (x_bitmap_icon): New function.
3005 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
3006
3007 1999-08-06 Gerd Moellmann <gerd@gnu.org>
3008
3009 * xdisp.c (set_iterator_to_next): After delivering a character
3010 from a display vector, restore face and charset to what they were
3011 before the display vector was processed.
3012
3013 1999-08-06 Gerd Moellmann <gerd@gnu.org>
3014
3015 * xdisp.c (reseat_at_next_visible_line_start): New parameter
3016 on_newline_p.
3017 (set_iterator_to_next): After delivering last char
3018 from display vector, reseat on next visible line start if
3019 dpvec_char_len < 0.
3020 (next_element_from_buffer): Set dpvec_char_len to -1 for
3021 selective display.
3022
3023 1999-08-06 Gerd Moellmann <gerd@gnu.org>
3024
3025 * xdisp.c (compute_line_metrics): If first line's physical ascent
3026 is larger than its logical ascent, use the physical ascent, and
3027 make the row taller. Set row's overlapping_p flag.
3028
3029 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
3030 (direct_output_for_insert): Ditto.
3031
3032 * dispextern.h (struct glyph_row): Add overlapping_p.
3033
3034 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
3035
3036 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
3037 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
3038
3039 * dispnew.c (direct_output_for_insert): Don't use this method if
3040 row is overlapped by others.
3041 (update_text_area): Write full line if current line is overlapped.
3042 (redraw_overlapped_rows): New.
3043 (update_window): Call it.
3044 (redraw_overlapping_rows): New.
3045 (update_window): Call it.
3046 (scrolling_window): Make sure overlapped_p flag in current rows is
3047 unchanged.
3048 (row_equal_p): Take rows overlapped_p flag into account.
3049
3050 * dispextern.h (struct glyph_row): Add flag overlapped_p.
3051
3052 * xterm.c (x_fix_overlapping_area): New.
3053 (x_redisplay_interface): Add x_fix_overlapping_area.
3054
3055 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
3056
3057 1999-08-06 Gerd Moellmann <gerd@gnu.org>
3058
3059 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
3060 (struct glyph_string): Add member for_overlaps_p.
3061 (x_get_glyph_string_clip_rect): If glyph string draws foreground
3062 of overlapping rows, clip to window bottom.
3063 (x_fill_glyph_string): Add parameter overlaps_p.
3064 (x_fill_composite_glyph_string): Ditto.
3065 (BUILD_GLYPH_STRINGS): Ditto.
3066 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
3067 (x_draw_glyph_string): Don't draw anything but the foreground
3068 if glyph string draws row overlaps.
3069
3070 * dispnew.c (direct_output_for_insert): Don't use this
3071 optimization for rows that overlap others.
3072 (update_window_line): Return non-zero if display has changed.
3073 (update_text_area): Ditto.
3074 (update_window): Record if display has been changed.
3075
3076 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
3077
3078 * dispextern.h (struct redisplay_interface): Add
3079 fix_overlapping_area.
3080
3081 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
3082
3083 * dispextern.h (struct glyph): Add overlaps_vertically_p.
3084
3085 * xterm.c (x_produce_image_glyph): Compute iterator's physical
3086 ascent and descent.
3087 (x_produce_stretch_glyph): Ditto.
3088 (x_produce_glyphs): Ditto.
3089
3090 * xdisp.c (init_iterator): Reset physical line height info
3091 after producing special glyphs.
3092 (display_toolbar_line): Set physical line height info.
3093 (compute_line_metrics): Ditto.
3094 (display_line): Ditto.
3095 (display_string): Ditto.
3096
3097 * term.c (produce_glyphs): Set iterator's physical height
3098 information.
3099
3100 * dispnew.c (blank_row): Compute glyph row's physical height.
3101 (row_equal_p): Take physical row heights into account.
3102 (direct_output_for_insert): Ditto.
3103 (update_text_area): Ditto.
3104
3105 * dispextern.h (struct glyph_row): Add phys_ascent and
3106 phys_height.
3107 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
3108 max_phys_descent.
3109
3110 1999-08-04 Stefan Monnier <monnier@cs.yale.edu>
3111
3112 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
3113 Fswitch_to_buffer.
3114 (no_switch_buffer): New function.
3115 (Fswitch_to_buffer): Call them. Don't get confused
3116 by "same-window" buffers in a dedicated frame.
3117
3118 * window.c (display-buffer): Don't get confused
3119 by "same-window" buffers in a dedicated frame.
3120
3121 1999-08-04 Andreas Schwab <schwab@gnu.org>
3122
3123 * insdel.c (insert_from_string_1): Check gap size against number
3124 of outgoing bytes, not incoming bytes.
3125
3126 1999-08-03 Tom Breton <tob@world.std.com>
3127
3128 * lread.c (read1): Added circular reading code to #N=.
3129 (SUBSTITUTE): New macro.
3130 (seen_list): New variable.
3131 (substitute_object_in_subtree): New function.
3132 (substitute_object_recurse): New function.
3133 (substitute_in_interval): New function.
3134
3135 1999-08-02 Eli Zaretskii <eliz@gnu.org>
3136
3137 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
3138
3139 * frame.c (make_terminal_frame): Don't call init_frame_faces if
3140 noninteractive, for termcap frames as well.
3141
3142 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
3143 frames.
3144
3145 1999-08-01 Richard Stallman <rms@gnu.org>
3146
3147 * fns.c (internal_equal): Correct overlay comparison.
3148
3149 1999-07-31 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3150
3151 * xfns.c (x_set_internal_border_width):
3152 Call do_pending_window_change. Don't block input, don't call XFlush.
3153 (x_set_vertical_scroll_bars): Call do_pending_window_change.
3154 (x_set_scroll_bar_width, x_set_font): Likewise.
3155
3156 * frame.c (Fset_frame_height): Call do_pending_window_change.
3157 (Fset_frame_width, Fset_frame_size): Likewise.
3158
3159 * xterm.c (x_set_window_size): When calling change_frame_size,
3160 specify 1 for DELAY.
3161
3162 * widget.c (EmacsFrameSetCharSize): Don't call
3163 do_pending_window_change here.
3164
3165 1999-07-30 Dave Love <fx@gnu.org>
3166
3167 * config.in: Add HAVE_STDLIB_H.
3168
3169 1999-07-30 Richard M. Stallman <rms@gnu.org>
3170
3171 * process.c (create_process): Detect failure of `pipe'.
3172
3173 1999-07-30 Keisuke Nishida <kei@psn.net>
3174
3175 * alloc.c (allocate_vectorlike): Add missing increment.
3176
3177 * data.c (Fdefalias): Call Ffset instead of duplicating code.
3178
3179 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
3180 before calling indirect_function.
3181
3182 1999-07-30 Eli Zaretskii <eliz@gnu.org>
3183
3184 * dispextern.h (load_color, lookup_derived_face): Declare
3185 prototypes.
3186
3187 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
3188 it will be done later.
3189
3190 * frame.c (make_terminal_frame) [MSDOS]: Don't call
3191 init_frame_faces if non-interactive.
3192 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
3193 array with a call to msdos_stdcolor_name. The font name is now
3194 "ms-dos", consistent with realize_tty_face.
3195
3196 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
3197 MSDOS frame.
3198
3199 * window.c (Fset_window_configuration) [MSDOS]: Don't call
3200 x_set_toolbar_lines.
3201
3202 * xfaces.c (load_color): Remove static from definition and remove
3203 prototype.
3204 [MSDOS]: Add a DOS-specific version of load_color.
3205 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
3206 (lookup_derived_face): New function.
3207 (realize_default_face): Support MSDOS frames.
3208 [MSDOS]: If fore/background colors are unspecified, inherit them
3209 from the frame.
3210 (realize_face): Support MSDOS frames.
3211 (realize_tty_face): Support MSDOS frames.
3212 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
3213 load_color to try to find a suitable approximation. If the face
3214 is inverse-video, swap the foreground and background colors.
3215
3216 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
3217 functions.
3218
3219 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
3220
3221 * msdos.h: Remove redundant declarations (most of them are now in
3222 dispextern.h).
3223
3224 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
3225 Use default frame colors if the face doesn't specify them; invert
3226 the colors if highlight is ON.
3227 (IT_write_glyphs): Rewritten for the new redisplay engine.
3228 (IT_change_line_highlight): Add (unused) parameter Y, since that's
3229 how the hook is called by term.c.
3230 (IT_copy_glyphs): New function, copies an area of the display in
3231 video RAM.
3232 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
3233 redisplay now calls it even if char_ins_del_ok is zero.
3234 (IT_set_frame_parameters): Prototype changed. Calls the new
3235 load_color. Puts the new fore/background colors into the default
3236 face on current frame.
3237 (IT_menu_display): Rewritten to handle the new struct glyph
3238 instead of a char array.
3239 (XMenuActivate): Call lookup_derived_face to create and use
3240 special faces for the pop-up and drop-down menus.
3241
3242 1999-07-29 Gerd Moellmann <gerd@gnu.org>
3243
3244 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
3245 XawScrollbarSetThumb if thumb parameters haven't changed because
3246 that function apparently isn't optimized for this case.
3247
3248 1999-07-29 Eli Zaretskii <eliz@gnu.org>
3249
3250 * msdos.c (getdefdir): Don't return failure indication when
3251 _fixpath sets errno to ENOSYS.
3252
3253 1999-07-28 Gerd Moellmann <gerd@gnu.org>
3254
3255 * xdisp.c (string_char_and_length): New. Use it everywhere
3256 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
3257
3258 1999-07-28 Kenichi Handa <handa@etl.go.jp>
3259
3260 * fns.c (count_combining): New function.
3261 (struct textprop_rec): New structure.
3262 (concat): Copy text properties correctly when byte combining
3263 occurs.
3264
3265 1999-07-28 Gerd Moellmann <gerd@gnu.org>
3266
3267 * xterm.c (x_setup_relief_color): Don't try smart color allocation
3268 if display is mono.
3269 (x_draw_row_bitmaps): If face has stipple, don't switch
3270 to foreground color for clearing areas, and set the fill style.
3271
3272 * xfaces.c (load_face_colors): Load background color if setting
3273 stipple, too.
3274 (prepare_face_for_display): Use FillOpaqueStippled instead of
3275 FillStippled.
3276
3277 1999-07-26 Ken'ichi Handa <handa@gnu.org>
3278
3279 * xterm.c (x_find_ccl_program): Add casting.
3280
3281 * w32fns.c (w32_find_ccl_program): Add casting.
3282
3283 1999-07-27 Gerd Moellmann <gerd@gnu.org>
3284
3285 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
3286
3287 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
3288 because this will try to access a nonexisting widget.
3289
3290 1999-07-26 Markus Rost <rost@gnu.org>
3291
3292 * fns.c (Fgethash): Fix order of variables (patch by gerd).
3293 (Fputhash): Ditto.
3294 (Fremhash): Ditto.
3295
3296 1999-07-26 Gerd Moellmann <gerd@gnu.org>
3297
3298 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
3299 value to frame width and height.
3300
3301 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
3302 into account for full-width windows. Don't add scroll bar width
3303 to width of clip rect.
3304 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
3305 (x_set_glyph_string_background_width): Add 1 to background width.
3306 (x_draw_glyphs): Take internal border into account for full-width
3307 lines.
3308
3309 1999-07-26 Richard M. Stallman <rms@gnu.org>
3310
3311 * xfns.c (x_set_mouse_color): Always unload the old color.
3312 Don't allow nil as color value.
3313 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
3314 Always unload the old color.
3315
3316 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
3317
3318 1999-07-26 Karl Heuer <kwzh@gnu.org>
3319
3320 * fns.c (Fy_or_n_p): Doc fix.
3321
3322 1999-07-26 Kenichi Handa <handa@etl.go.jp>
3323
3324 * ccl.h (setup_ccl_program): The type is changed to `int'.
3325
3326 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
3327 stored in the following CCL code. Adjusted for the change of
3328 Vccl_program_table.
3329 (resolve_symbol_ccl_program): Adjusted for the new style of
3330 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
3331 is resolving failed.
3332 (ccl_get_compiled_code): New function.
3333 (setup_ccl_program): Function type changed from `void' to `int'.
3334 Resolve symbols in CCL_PROG.
3335 (Fccl_program_p): New function.
3336 (Fccl_execute): Get compiled CCL code by just calling
3337 setup_ccl_program.
3338 (Fccl_execute_on_string): Likewise.
3339 (Fregister_ccl_program): Adjusted for the change of
3340 Vccl_program_table.
3341
3342 * coding.c (setup_coding_system): Get compiled CCL code by just
3343 calling setup_ccl_program.
3344
3345 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
3346 calling setup_ccl_program.
3347
3348 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
3349 calling setup_ccl_program.
3350
3351 1999-07-23 Gerd Moellmann <gerd@gnu.org>
3352
3353 * xfaces.c (frame_update_line_height): Just use the height of the
3354 frame's fontset or font, instead of taking face fonts into
3355 account.
3356
3357 * xdisp.c (get_next_display_element): Display DEL as `^?'.
3358
3359 1999-07-23 Richard M. Stallman <rms@gnu.org>
3360
3361 * window.c (Fsplit_window): For default size, round up for left window.
3362
3363 1999-07-21 Joe Ramey <ramey@ti.com>
3364
3365 * filelock.c (lock_if_free): Return -1 if check_lock_owner
3366 has returned -1 (lockfile exists but is not a symlink?).
3367
3368 1999-07-20 Gerd Moellmann <gerd@gnu.org>
3369
3370 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
3371 because of a change in cursor_gc made in 20.4.
3372
3373 1999-07-19 Gerd Moellmann <gerd@gnu.org>
3374
3375 * xterm.c (x_calc_absolute_position): Subtract menu bar height
3376 for YNegative, if using X toolkit.
3377
3378 * xfns.c (x_real_positions): Don't subtract window borders
3379 from positions returned.
3380
3381 1999-07-17 Gerd Moellmann <gerd@gnu.org>
3382
3383 * xrdb.c (x_load_resources): Set double-click time defaults
3384 for Motif list boxes from double-click-time.
3385
3386 * fns.c (Vhash_table_tests): Remvoed.
3387 (Qhash_table_test): New.
3388 (syms_of_fns): Initialize Qhash_table_test.
3389 (Fmake_hash_table): Look up user-defined tests in symbol prop
3390 `hash-table-test'.
3391 (Fdefine_hash_table_test): Store test and hash function as
3392 symbol prop `hash-table-test'.
3393 (make_hash_table): Add parameters user_test and user_hash.
3394
3395 * window.c (set_window_buffer): Set window margins for tty
3396 frames, too.
3397 (Fset_window_margins): Ditto.
3398
3399 * term.c (append_glyph): Use glyph area of iterator instead of
3400 always TEXT_AREA.
3401
3402 * dispnew.c (update_frame_1): Add left margin width to cursor
3403 hpos.
3404 (direct_output_for_insert): Ditto.
3405 (direct_output_forward_char): Ditto.
3406
3407 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
3408
3409 * dispextern.h (struct glyph_matrix): Add top_line_p.
3410
3411 1999-07-16 Gerd Moellmann <gerd@gnu.org>
3412
3413 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
3414 instead.
3415
3416 * fns.c (cmpfn_eq): Add hash code parameters.
3417 (cmpfn_eql): Ditto.
3418 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
3419 (cmpfn_user_defined): Likewise.
3420
3421 1999-07-15 Gerd Moellmann <gerd@gnu.org>
3422
3423 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
3424
3425 * fns.c (maybe_resize_hash_table): Correct computation of
3426 index vector size.
3427 (make_hash_table): Ditto.
3428 (Fmakehash): New.
3429
3430 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
3431
3432 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
3433 (survives_gc_p): Make it externally visible.
3434 (mark_object): Ditto.
3435
3436 * fns.c (remove_hash_entry): Removed.
3437 (sweep_weak_hash_tables): New.
3438
3439 * print.c (print): Print more information about hash tables.
3440
3441 * xfns.c (image_spec_hash): Removed.
3442 (lookup_image): Use sxhash instead of image_spec_hash.
3443 (image_spec_equal_p): Removed.
3444 (lookup_image): Use Fequal instead of image_spec_equal_p.
3445
3446 1999-07-14 Gerd Moellmann <gerd@gnu.org>
3447
3448 * lisp.h (P_): Moved to top of file.
3449
3450 * fns.c (make_hash_table): Set new members.
3451
3452 * alloc.c (mark_object): Mark hash table's user_hash_function.
3453 Mark index vector for weak hash tables.
3454
3455 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
3456 user_hash_function, cmpfn, and hashfn.
3457
3458 * fns.c (build_hash): Removed.
3459 (hash_test): Removed.
3460 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
3461 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
3462
3463 1999-07-13 Gerd Moellmann <gerd@gnu.org>
3464
3465 * alloc.c (survives_gc_p): New.
3466
3467 * print.c (print): Add hash table handling.
3468
3469 * alloc.c (mark_object): Add code to mark hash tables.
3470
3471 * lisp.h (GC_HASH_TABLE_P): New.
3472
3473 * emacs.c (main): Call init_fns.
3474
3475 * fns.c (init_fns): New.
3476
3477 * fns.c: Add hash table implementation.
3478
3479 * lisp.h (PVEC_HASH_TABLE): New.
3480 (struct Lisp_Hash_Table): New.
3481 (XHASH_TABLE): New.
3482 (XSET_HASH_TABLE): New.
3483 (HASH_TABLE_P): New.
3484 (CHECK_HASH_TABLE): New.
3485 (DEFAULT_HASH_SIZE): New.
3486 (DEFAULT_REHASH_THRESHOLD): New.
3487 (DEFAULT_REHASH_SIZE): New.
3488
3489 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
3490 (x_write_glyphs): Compute overwritten cursor using real start
3491 and end positions of display.
3492 (x_insert_glyphs): Ditto.
3493
3494 1999-07-10 Gerd Moellmann <gerd@gnu.org>
3495
3496 * keyboard.c (read_char): Use message3_nolog to show help-echo.
3497
3498 * dispnew.c (blank_row): Add y-position as parameter. Compute
3499 visible height.
3500
3501 * xdisp.c (next_element_from_string): Give padding spaces
3502 a position of -1.
3503
3504 * dispnew.c (adjust_glyph_matrix): Some work to support
3505 marginals areas on tty frames in a future version.
3506 (allocate_matrices_for_frame_redisplay): Ditto.
3507
3508 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
3509 to zero if number of glyphs in the row is <= 1.
3510
3511 1999-07-09 Gerd Moellmann <gerd@gnu.org>
3512
3513 * dispnew.c (buffer_posn_from_coords): Take left marginal area
3514 into account.
3515
3516 * xdisp.c (handle_display_prop): Don't reset area if handing
3517 a property from a string that came from a `display' property.
3518 (handle_single_display_prop): Don't handle recursive `display'
3519 properties.
3520 (handle_single_display_prop): Handle some display property
3521 forms for terminal frames.
3522 (Qimage): Moved here from xfns.c.
3523
3524 * dispextern.h (struct it): New field string_from_display_prop_p.
3525
3526 * xterm.c (x_clip_to_row): Don't let clip_rect include top
3527 line.
3528
3529 1999-07-08 Gerd Moellmann <gerd@gnu.org>
3530
3531 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
3532
3533 * window.c (set_window_buffer): Set window's vscroll to zero.
3534
3535 * xdisp.c (QCwhen): New.
3536 (display_prop_end): New.
3537 (handle_single_display_prop): Use it.
3538 (debug_method_add): Print buffer name if tracing.
3539 (try_window_reusing_current_matrix): Compute visible height
3540 of reused rows. Fix cursor position calculation in case of
3541 top-line.
3542
3543 * dispextern.h (struct redisplay_interface): Add parameter
3544 cursor_on_p to update_window_end_hook.
3545
3546 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
3547
3548 1999-07-07 Gerd Moellmann <gerd@gnu.org>
3549
3550 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
3551 doesn't become negative when decrementing it.
3552
3553 * eval.c (Fsignal): Reset redisplaying_p to zero.
3554
3555 * xdisp.c (try_window_reusing_current_matrix): Call hooks
3556 for window update.
3557 (try_window_id): Ditto.
3558
3559 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
3560 (x_scroll_run): Ditto.
3561 (any_help_event_p): New.
3562 (x_initialize): Set it to zero.
3563 (XTread_socket): Clear help echo only if any_help_event_p.
3564
3565 * xdisp.c (init_iterator): Set top_line_p.
3566 (start_display): Use correct initial y if top-line is present.
3567 (make_cursor_line_fully_visible): Bug fixes for top-line.
3568 (try_scrolling): Ditto.
3569 (try_window_reusing_current_matrix): Ditto.
3570
3571 * dispextern.h (struct it): Add top_line_p.
3572
3573 * dispnew.c (shift_glyph_matrix): Move some computations out
3574 of the loop.
3575
3576 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
3577 XFLOATINT.
3578
3579 1999-07-06 Gerd Moellmann <gerd@gnu.org>
3580
3581 * dispnew.c (update_frame_1): When setting cursor in echo area,
3582 skip only over padding spaces at the end.
3583
3584 * xfaces.c (realize_tty_face): Set face's font_name field to
3585 "tty".
3586
3587 * term.c (update_end): Turn cursor on only if selected window's
3588 cursor_off_p flag is not set.
3589
3590 1999-07-05 Gerd Moellmann <gerd@gnu.org>
3591
3592 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
3593 (TS_cursor_normal): Renamed from TS_end_visual_mode.
3594 (TS_cursor_invisible): New.
3595 (term_init): Initialize TS_cursor_invisible.
3596 (tty_hide_cursor): New.
3597 (tty_show_cursor): New.
3598 (update_end): Show tty cursor.
3599 (update_begin): Hide tty cursor to prevent cursor flickering
3600 during redisplays triggered by timers (stealth fontification).
3601
3602 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
3603
3604 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
3605 in scroll bars.
3606 (x_handle_toolbar_click): Set modifier bits.
3607
3608 1999-07-04 Gerd Moellmann <gerd@gnu.org>
3609
3610 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
3611 instead of a pointer to a volatile input_event.
3612 (kbd_buffer_store_event): Remove volatile modifier from
3613 declaration of local variable `sp'.
3614 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
3615 to kbd_fetch_ptr.
3616
3617 1999-07-03 Gerd Moellmann <gerd@gnu.org>
3618
3619 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
3620 only if buffer is modified. Return quickly if changes are
3621 above window start.
3622
3623 1999-07-02 Gerd Moellmann <gerd@gnu.org>
3624
3625 * dispextern.h (HSCROLL_WINDOWS): Removed.
3626
3627 * xdisp.c (mark_window_display_accurate): Don't set
3628 w->region_showing.
3629 (redisplay_internal): Don't call redraw_garbaged_frames.
3630
3631 1999-07-01 Gerd Moellmann <gerd@gnu.org>
3632
3633 * xdisp.c (echo_area_display): Don't display truncation marks
3634 for messages because 20.4 doesn't do it either.
3635 (redisplay_window): Case same window start. Instead of giving
3636 up when cursor is partially visible, make it fully visible.
3637 (mark_window_display_accurate): Some cleanup. Record window's
3638 last cursor information.
3639 (debug_method_add): Improved.
3640 (redisplay_internal): Record last cursor info only if not
3641 consider_all_windows_p.
3642
3643 * dispnew.c (update_window): Update top line after scrolling.
3644 (blank_row): Renamed from make_empty_enabled_row.
3645 (increment_glyph_row_buffer_positions): Increment positions
3646 in buffers, only.
3647
3648 * window.c (Fcoordinates_in_window_p): Add top-line to doc
3649 string.
3650
3651 1999-06-30 Gerd Moellmann <gerd@gnu.org>
3652
3653 * dispnew.c (update_window): Check that updated row is visible.
3654
3655 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
3656 top of window differently.
3657
3658 * xdisp.c (try_window_reusing_current_matrix): Don't do it
3659 if region is showing.
3660
3661 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
3662 avoiding matrix reallocation. Set window_vscroll in matrix.
3663
3664 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
3665
3666 * lwlib-Xm.c: Add function prototypes.
3667
3668 * xdisp.c (debug_method_add): New.
3669 (debug_redisplay_method): Removed.
3670 (try_window_reusing_current_matrix): Handle case where old
3671 window start is the same as new window start.
3672
3673 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
3674 an array instead of a pointer.
3675
3676 * lwlib-Xm.c (xm_update_label): Use val->name to look up
3677 a label string from resources.
3678 (xm_update_label): Add some comments.
3679
3680 * xfns.c (Fx_show_tip): Undo previous change.
3681
3682 * xterm.c (x_append_glyph): Clear glyph->u.val.
3683
3684 * dispextern.h (struct glyph): Increase size of face_id bit-field
3685 for CHAR_GLYPH to 12.
3686
3687 1999-06-29 Gerd Moellmann <gerd@gnu.org>
3688
3689 * xfaces.c (x_charset_registry): Make it externally visible.
3690
3691 1999-06-28 Gerd Moellmann <gerd@gnu.org>
3692
3693 * dispnew.c (update_window): Use mode_line_p flag of rows
3694 instead of WINDOW_WANTS_MODELINE_P.
3695
3696 * xterm.c (clear_mouse_face): Make externally visible.
3697
3698 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
3699
3700 * xterm.c (expose_line): Handle exposure of top-lines.
3701
3702 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
3703 if mouse_face_mouse_frame is null.
3704
3705 * xdisp.c (redisplay_window): If window is echo_area_window,
3706 and update_mode_line is set, update menubar and toolbar.
3707
3708 * dispnew.c (space_glyph): Set its charpos to -1.
3709 (update_frame_1): Ignore trailing padding spaces.
3710
3711 * xdisp.c (next_element_from_c_string): Set position of padding
3712 glyphs to -1.
3713
3714 1999-06-27 Gerd Moellmann <gerd@gnu.org>
3715
3716 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
3717 XQueryColor.
3718
3719 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
3720 (set_cursor_from_row): Skip over glyphs having a null object at
3721 the start of rows.
3722 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
3723 glyphs.
3724 (handle_invisible_prop): Compute next change only when needed.
3725 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
3726 line.
3727
3728 1999-06-26 Gerd Moellmann <gerd@gnu.org>
3729
3730 * xrdb.c (x_load_resources): Don't set resource for double-click
3731 time.
3732
3733 * xdisp.c (try_window_id): Return quickly if all changes are
3734 below the window's current matrix end.
3735
3736 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
3737 parameter.
3738
3739 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
3740 in desired not in current matrix.
3741 (try_window_reusing_current_matrix): Rotate matrices starting
3742 at start_vpos instead of 0.
3743
3744 * xterm.c (expose_window): Use window_text_bottom_y.
3745 (fast_find_position): Ditto.
3746
3747 * xdisp.c (redisplay_window): Use window_text_bottom_y.
3748 (try_window_reusing_current_matrix): Ditto.
3749 (get_last_unchanged_at_beg_row): Ditto.
3750 (init_iterator): Ditto.
3751
3752 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
3753 more row.
3754 (check_matrix_invariants): Use window_text_bottom_y.
3755 (update_window): Ditto.
3756 (scrolling_window): Ditto.
3757
3758 * xdisp.c (window_text_bottom_y): New.
3759
3760 1999-06-25 Gerd Moellmann <gerd@gnu.org>
3761
3762 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
3763 clearing mouse face.
3764 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
3765 event.xcrossing.focus is not set, and focus is in the menu bar,
3766 set focus frame as if event.xcrossing.focus were set.
3767
3768 1999-06-24 Gerd Moellmann <gerd@gnu.org>
3769
3770 * keyboard.c (make_lispy_event): Handle mouse on top lines.
3771 * keyboard.c (make_lispy_movement): Ditto.
3772
3773 * window.c (coordinates_in_window): Return 4 if on top line.
3774 (Fcoordinates_in_window_p): Return `top-line' if on top line.
3775
3776 * xdisp.c (window_box_height): Subtract top line height.
3777 (window_box): Add top line height to top y position if top line
3778 exists.
3779 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
3780 the top line row of the window. Set initial y-position to
3781 window's top line height plus delta.
3782 (start_display): Choose start glyph row depending on whether
3783 window has a top line.
3784 (try_scrolling): Take top line height into account for aggressive
3785 scrolling.
3786 (compute_window_start_on_continuation_line): Take top line into
3787 account.
3788 (redisplay_window): Ditto. If top line height has changed,
3789 trigger a new redisplay.
3790 (try_window_reusing_current_matrix): Take top line into account.
3791 (find_last_row_displaying_text): Ditto.
3792 (get_last_unchanged_at_beg_row): DItto.
3793 (try_window_id): Ditto.
3794 (compute_line_metrics): Ditto.
3795
3796 * dispnew.c (shift_glyph_matrix): Compute visible row height
3797 taking top line of window into account.
3798 (update_window): Update top line. If scrolling_window detects
3799 that all rows are equal, only set cursor.
3800 (update_window_line): Call after_update_window_line_hook if
3801 mode_line_p flag of rows has changed.
3802 (scrolling_window): Add parameter top_line_p. Return -1 if
3803 all rows are equal.
3804 (mode_line_string): Add parameter mode_line_p. Handle strings
3805 in top lines.
3806
3807 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
3808 (MATRIX_FIRST_TEXT_ROW): New.
3809 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
3810 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
3811 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
3812 (MATRIX_TOP_LINE_HEIGHT): New.
3813 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
3814 (CURRENT_TOP_LINE_HEIGHT): New.
3815 (DESIRED_TOP_LINE_HEIGHT): New.
3816 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
3817 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
3818 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
3819 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
3820
3821 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
3822 lines.
3823 (x_draw_row_bitmaps): Take top line into account when clearing
3824 bitmap area.
3825 (x_estimate_mode_line_height): Replacement for
3826 x_frame_mode_line_height.
3827 (x_get_glyph_string_clip_rect): Take top line into account.
3828 (x_clear_end_of_line): Ditto.
3829 (note_mode_line_highlight): Add parameter mode_line_p. Handle
3830 top lines.
3831 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
3832 (x_erase_phys_cursor): Take top line into account.
3833
3834 * xdisp.c (window_box_height): Subtract top line height if
3835 window wants a top line.
3836 (display_mode_lines): New.
3837 (redisplay_window): Call it.
3838 (display_mode_line): Add parameters face_id and format.
3839
3840 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
3841 (MATRIX_TOP_LINE_HEIGHT): New.
3842
3843 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
3844
3845 * term.c (estimate_mode_line_height): Renamed from
3846 frame_mode_line_height. Add parameter face_id.
3847 (estimate_mode_line_height_hook): Renamed from
3848 frame_mode_line_height_hook.
3849 (produce_special_glyphs_hook): Removed.
3850 (produce_glyphs_hook): Removed.
3851
3852 1999-06-23 Gerd Moellmann <gerd@gnu.org>
3853
3854 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
3855 (struct glyph_row): Add mode_line_p.
3856
3857 * xfaces.c (realize_basic_faces): Realize face `top-line'.
3858 (Qtop_line): New.
3859 (syms_of_xfaces): Initialize Qtop_line.
3860
3861 * dispextern.h (TOP_LINE_FACE_ID): New.
3862
3863 * buffer.c (init_buffer_once): Set default for
3864 top_line_format to nil.
3865 (init_buffer_once): Init top_line_format.
3866 (default-top-line-format): New.
3867 (top-line-format): New buffer-local variable.
3868
3869 * buffer.h: Add top_line_format.
3870
3871 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
3872
3873 1999-06-17 Dave Love <fx@gnu.org>
3874
3875 * xfns.c: Move the PNG section before the JPEG one to avoid
3876 problems surrounding setjmp.h/png.h on GNU/Linux.
3877
3878 1999-06-17 Gerd Moellmann <gerd@gnu.org>
3879
3880 * xfns.c (x_kill_gs_process): Don't free colors.
3881
3882 1999-06-17 Dave Love <fx@gnu.org>
3883
3884 * s/gnu-linux.h: Zap spurious ~.
3885
3886 1999-06-16 Gerd Moellmann <gerd@gnu.org>
3887
3888 * xfns.c (gif_load): Improve multi-image support.
3889
3890 1999-06-15 Gerd Moellmann <gerd@gnu.org>
3891
3892 * xfns.c (gif_load): Support multi-image files.
3893
3894 * Makefile.in (LIBGIF): Use libungif.
3895
3896 * configure.in (HAVE_GIF): Use libungif instead of libgif
3897 because the former doesn't contain patented compression code.
3898
3899 * xdisp.c (compute_window_start_on_continuation_line): Don't
3900 do it if line start is too far away from window start.
3901
3902 1999-06-14 Gerd Moellmann <gerd@gnu.org>
3903
3904 * buffer.c (init_buffer_once): Set buffer_local_flags for
3905 scroll_*_aggressively.
3906 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
3907 (init_buffer_once): Set defaults for these variables.
3908 (syms_of_buffer): Add default-scroll-*-aggressively.
3909
3910 * buffer.h (scroll_up_aggressively): New.
3911 (scroll_down_aggressively): New.
3912
3913 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
3914 a static PNG library.
3915
3916 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
3917 in case it's a static library.
3918
3919 * Makefile.in (ctagsfiles): Split so that files starting
3920 with an `x' are found before files starting with `w32'.
3921 (ctagsfiles1): New.
3922 (ctagsfiles2): New.
3923 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
3924
3925 * xdisp.c (compute_window_start_on_continuation_line): New.
3926 (redisplay_window): Use it.
3927 (INFINITY): New.
3928 (reseat_to_string): Use it.
3929 (hscroll_window_tree): Ditto.
3930 (compute_window_start_on_continuation_line): Ditto.
3931 (redisplay_window): Don't force display with a new window start.
3932
3933 1999-06-06 Gerd Moellmann <gerd@gnu.org>
3934
3935 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
3936 if widget not present.
3937
3938 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
3939
3940 1999-06-04 Gerd Moellmann <gerd@gnu.org>
3941
3942 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
3943 value of realize_basic_faces.
3944 (load_face_font_or_fontset): Store full font name in face.
3945 (realize_default_face): Use full font name.
3946
3947 * xlwmenu.c (make_shadow_gcs) ]emacs]: Use x_alloc_nearest_color.
3948
3949 * xterm.c (x_produce_glyphs): Set member char_to_display.
3950 (x_append_glyph): Store char_to_display in glyphs.
3951
3952 * dispextern.h (struct it): Add char_to_display.
3953
3954 * xfns.c (x_set_font): Don't call face-set-after-frame-default
3955 if faces haven't been initialized.
3956 (Fx_create_frame): Call face-set-after-frame-default after
3957 faces have been initialized, and widget has been created.
3958
3959 * puresize.h (BASE_PURESIZE): Increased.
3960
3961 1999-06-01 Gerd Moellmann <gerd@gnu.org>
3962
3963 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
3964 (Finternal_set_lisp_face_attribute): If frame is t when
3965 :font attribute is set, use the selected frame.
3966 (clear_face_cache): Add parameter clear_fonts_p.
3967 (Fclear_face_cache): Add optional parameter thorougly.
3968
3969 * xfaces.c (face_numeric_value): Return -1 if symbol is not
3970 in table.
3971 (Fclear_face_cache): New.
3972 (choose_face_fontset_font): If fontset doesn't contain font
3973 pattern for the given charset, use CHARSET_ASCII.
3974 (Finternal_set_lisp_face_attribute): Fix handling of nil
3975 stipple attribute.
3976 (Finternal_set_lisp_face_attribute): Fix handling of changing
3977 font-related face attributes of the default face.
3978 (set_lface_from_font_name): Set only attributes that aren't
3979 specified.
3980
3981 1999-05-31 Gerd Moellmann <gerd@gnu.org>
3982
3983 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
3984 font support.
3985 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
3986 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
3987 scalable fonts depending on the setting of SCALABLE_FONTS.
3988 (first_font_matching): List more than one font to find the
3989 first non-scalable matching font.
3990 (sorted_font_list): Let x_face_list_fonts return scalable fonts
3991 depending on SCALABLE_FONTS.
3992 (better_font_p): New parameter compare_pt_p. If zero, don't
3993 compare point sizes of fonts.
3994 (exact_face_match_p) [SCALABLE_FONTS]: New.
3995 (build_scalable_font_name) [SCALABLE_FONTS]: New.
3996 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
3997 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
3998 (syms_of_xfaces): Add scalable-fonts-allowed.
3999
4000 1999-05-26 Gerd Moellmann <gerd@gnu.org>
4001
4002 * xfns.c (png_load): Let PNG lib handle gamma. Construct
4003 mask only if image contains simple transparency information.
4004 Otherwise, combine image with frame background color.
4005
4006 * configure.in (--with-png, HAVE_PNG): New.
4007
4008 * config.in (HAVE_PNG): New.
4009
4010 * Makefile.in: Add PNG library.
4011
4012 * xfns.c: Add PNG support.
4013
4014 1999-05-25 Gerd Moellmann <gerd@gnu.org>
4015
4016 * xdisp.c (init_xdisp): Initialize echo_area_message and
4017 previous_echo_area_message to nil.
4018
4019 * keyboard.c (read_char): Rename local variable echo_area_message
4020 because it shadows the global one.
4021
4022 1999-05-05 Gerd Moellmann <gerd@gnu.org>
4023
4024 * xterm.c (note_mode_line_highlight): Restructured.
4025
4026 * window.c (coordinates_in_window): Handle windows that don't have
4027 a mode line because their buffer's mode-line-format is nil.
4028 Recognize the mode line under x positions that correspond to
4029 flags areas and left scroll bar.
4030
4031 1999-05-02 Dave Love <fx@gnu.org>
4032
4033 * xterm.c (note_mouse_highlight): Separate help-echo processing
4034 from check on mouse-face so that it works generally.
4035
4036 1999-04-21 Gerd Moellmann <gerd@gnu.org>
4037
4038 * sound.c (Fplay_sound): Run hook play-sound-hook.
4039 (Qplay_sound_hook): New.
4040
4041 1999-04-20 Gerd Moellmann <gerd@gnu.org>
4042
4043 * xdisp.c (update_echo_area): Handle echo_area_message.
4044
4045 1999-04-19 Gerd Moellmann <gerd@gnu.org>
4046
4047 * editfns.c (Fmessage): Use message3.
4048
4049 * print.c (printchar): Set echo_area_message to nil.
4050 (strout): Ditto.
4051
4052 * minibuf.c (read_minibuf): Reset echo message strings to nil.
4053 (Fminibuffer_completion_help): Ditto.
4054
4055 * keyboard.c (cmd_error_internal): Set echo_areA_message.
4056 (command_loop_1): Test echo_areA_message.
4057 (read_char): Ditto.
4058 (record_menu_key): Set echo_area_message to nil.
4059 (Fexecute_extended_command): Test echo_area_message.
4060 (Fexecute_extended_command): Handle echo_area_message.
4061
4062 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
4063 is set.
4064
4065 * editfns.c (Fcurrent_message): If echo_area_message is set,
4066 return a substring of that string.
4067
4068 * dispnew.c (direct_output_for_insert): Test echo_area_message
4069 in addition to echo_area_glyphs.
4070 (set_window_cursor_after_update): Ditto.
4071 (update_frame_1): Ditto.
4072
4073 * alloc.c (Fgarbage_collect): Use message3_nolog to display
4074 old Lisp message string.
4075
4076 * xdisp.c (echo_area_message): New.
4077 (previous_echo_area_message): New.
4078 (syms_of_xdisp): Initialize and staticpro new variables.
4079 (echo_area_display): Display echo_area_message if set.
4080 (message2_nolog): Set echo_area_message and
4081 previous_echo_area_message.
4082 (echo_area_display): Set previous_echo_area_message.
4083 (redisplay_internal): Display echo area if echo_area_message
4084 or previous_echo_area_message are set.
4085 (redisplay_preserve_echo_area): Test/set echo_area_message and
4086 previous_echo_area_message.
4087 (redisplay_window): Test echo_area_message.
4088 (message3_nolog): New.
4089 (message3): New.
4090
4091 * editfns.c (Fformat): Add text properties to the result string
4092 from properties of the format string and properties of string
4093 arguments.
4094
4095 * textprop.c (text_property_list): New.
4096 (add_text_properties_from_list): New.
4097 (extend_property_ranges): New.
4098
4099 1999-03-29 Gerd Moellmann <gerd@gnu.org>
4100
4101 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
4102 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
4103 Use these symbols for the box face attribute instead of the
4104 removed ones.
4105
4106 1999-03-12 Gerd Moellmann <gerd@gnu.org>
4107
4108 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
4109 Correct wrong test for slant.
4110
4111 1999-03-10 Gerd Moellmann <gerd@gnu.org>
4112
4113 * xfaces.c: Use `unspecified' for unspecified face attributes,
4114 use t and nil for on/off.
4115
4116 1999-03-06 Gerd Moellmann <gerd@gnu.org>
4117
4118 * buffer.c (syms_of_buffer): Extend doc string of
4119 mode-line-format.
4120
4121 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
4122 (first_font_matching): New.
4123 (set_lface_from_font_name): Use it if font name is a pattern.
4124 (font_field_wildcard_p): Removed.
4125
4126 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
4127 Recompute visible height of rows.
4128
4129 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
4130 Don't accept non-strings for help-echo from overlays.
4131
4132 1999-03-04 Dave Love <fx@gnu.org>
4133
4134 * xterm.c (note_mouse_highlight): Check overlays for help-text
4135 property.
4136 (XTread_socket): Fix compiler warning.
4137
4138 1999-03-05 Gerd Moellmann <gerd@gnu.org>
4139
4140 * xterm.c (note_mouse_highlight): Don't restrict number of
4141 overlay to 10. Call overlays_at so that it doesn't try to
4142 extend the vector.
4143
4144 * xdisp.c (compute_line_metrics): Compute glyph row's visible
4145 height.
4146
4147 * dispnew.c (row_equal_p): Compare visible row height, only.
4148 (update_text_area): Draw whole line if visible heights of
4149 rows differ.
4150 (update_window_line): Call after_update_window_line_hook
4151 if visible row height has changed.
4152
4153 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
4154 (struct glyph_row): New member visible_height.
4155
4156 * xfaces.c (font_field_wildcard_p): New.
4157 (set_lface_from_font_name): Remove parameter force_p. Accept
4158 font names containing wildcards.
4159
4160 1999-03-04 Gerd Moellmann <gerd@gnu.org>
4161
4162 * xterm.c (x_after_update_window_line): Clear internal border
4163 when windows_or_buffers_changed.
4164
4165 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
4166 buffer has a nil mode_line_format.
4167
4168 1999-03-03 Gerd Moellmann <gerd@gnu.org>
4169
4170 * xterm.c (x_setup_relief_colors): Use either background color
4171 or specified color.
4172
4173 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
4174
4175 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
4176
4177 * xterm.c (x_draw_box_rect): New.
4178 (x_draw_glyph_string_box): Renamed from
4179 x_draw_glyph_string_relief. Call x_draw_box_rect.
4180
4181 * xfns.c (QCrelief): New.
4182 (syms_of_xfns): Initialize it.
4183
4184 * dispextern.h (struct glyph): Rename left_shadow_p to
4185 left_box_line_p, right_shadow_p to right_box_line_p.
4186 (MAX_RELIEF_THICKNESS): Removed.
4187 (struct it): Rename members having `relief' in their names
4188 to contain `box' instead.
4189
4190 * xfaces.c (realize_x_face): Handle new box attribute values.
4191 (QCrelief, Qbox): Removed.
4192 (QCshadow, QCcolor, Qraised, Qsunken): New.
4193 (syms_of_xfaces): Initialize new symbols.
4194
4195 1999-03-02 Gerd Moellmann <gerd@gnu.org>
4196
4197 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
4198
4199 * xfaces.c (LFACE_RELIEF): Removed.
4200 (merge_face_vector_with_property): Remove handling of `:relief'.
4201 (Finternal_set_lisp_face_attribute): Ditto.
4202 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
4203 (Finternal_get_lisp_face_attribute): Ditto.
4204 (realize_default_face): Ditto.
4205 (lface_hash): Don't compute hash from relief.
4206
4207 * dispextern.h (struct face): Replace member `relief' by
4208 `box_line_width'. Add member `box'.
4209 (face_box_type): New.
4210
4211 * xterm.c (x_produce_glyphs): If face has overline, add overline
4212 thickness + 1 to ascent.
4213
4214 1999-03-01 Gerd Moellmann <gerd@gnu.org>
4215
4216 * xterm.c (x_draw_glyph_string): Draw underline, overline,
4217 strike-through, and boxes.
4218 (x_draw_glyph_string_underline): Removed.
4219
4220 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
4221 (Qoverline, Qstrike_through, Qbox): New.
4222 (syms_of_xfaces): Define these symbols.
4223 (check_lface_attrs): Add checks for overline, strike-through,
4224 and box.
4225 (Finternal_set_lisp_face_attribute): Set new attributes.
4226 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
4227 (load_color): Handle new attributes.
4228 (realize_x_face): Ditto.
4229 (merge_face_vector_with_property): Ditto.
4230 (free_face_colors): Ditto.
4231 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
4232 (Finternal_get_lisp_face_attribute): Ditto.
4233 (Finternal_lisp_face_attribute_values): Ditto.
4234
4235 * dispextern.h (lface_attribute_index): Add enumerators for
4236 overstrike, strike-through, and box.
4237 (struct face): Add members for overline, strike-through, and
4238 box.
4239
4240 1999-02-17 Dave Love <fx@gnu.org>
4241
4242 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
4243 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
4244 files.
4245
4246 1999-02-16 Gerd Moellmann <gerd@gnu.org>
4247
4248 * keyboard.c (toolbar_items): Call access_keymap with third
4249 parameter 1, so that we don't get inherited toolbar item
4250 definitions.
4251
4252 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
4253 the window end vpos when in empty first line of window.
4254
4255 1999-02-15 Gerd Moellmann <gerd@gnu.org>
4256
4257 * xfaces.c (set_font_frame_param): New.
4258 (Finternal_set_lisp_face_attribute): Call it.
4259
4260 Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
4261
4262 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
4263 Accept specifications of color for underline.
4264
4265 1999-02-13 Gerd Moellmann <gerd@gnu.org>
4266
4267 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
4268 `frame' is t, operate on face defaults for new frames. If it
4269 is nil, operate on the selected frame.
4270
4271 1999-02-12 Gerd Moellmann <gerd@gnu.org>
4272
4273 * dispnew.c (check_matrix_invariants): Put it in #if 0.
4274 (update_window): Put the call to check_matrix_invariants in #if 0.
4275
4276 Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
4277
4278 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
4279 Remove definition of UNDERLINE_COLOR.
4280
4281 Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
4282
4283 * xfaces.c (free_face_colors): Free the color for underline.
4284
4285 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
4286 to the GC.
4287
4288 Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
4289
4290 * dispextern.h (UNDERLINE_COLOR): Defined.
4291 (struct face): Added two new members.
4292 underline_color, underline_defaulted_p.
4293
4294 * xfaces.c (merge_face_vector_with_property):
4295 (check_lface_attrs): Accept the string value for underline.
4296 (Finternal_set_lisp_face_attribute): Likewise.
4297
4298 * xfaces.c (load_color): Change the last argument type to enum
4299 lface_attribute_index from int. And addec code for underling coloring.
4300 (load_face_colors): Pass LFACE_*_INDEX to load_color.
4301
4302 1999-02-12 Gerd Moellmann <gerd@gnu.org>
4303
4304 * xfns.c (Fx_image_header): Removed.
4305
4306 1999-02-07 Gerd Moellmann <gerd@gnu.org>
4307
4308 * xterm.c: Don't include <bitmaps/gray>.
4309 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
4310
4311 * xfns.c (Fx_image_header): Add missing `\n\'.
4312 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
4313
4314 1999-02-01 Gerd Moellmann <gerd@gnu.org>
4315
4316 * xterm.c (x_scroll_bar_create): Set background pixel from
4317 specified scroll bar color.
4318 (x_scroll_bar_set_handle): Use scroll bar foreground color.
4319
4320 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
4321 (x_set_scroll_bar_background): Ditto.
4322
4323 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
4324
4325 * xfns.c (x_default_scroll_bar_color_parameter): New.
4326 (Fx_create_frame): Call it.
4327
4328 1999-01-31 Gerd Moellmann <gerd@gnu.org>
4329
4330 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
4331 values in x_output structure.
4332 (Qscroll_bar_foreground, Qscroll_bar_background): New.
4333 (syms_of_xfns): Initialize these symbols.
4334
4335 * xterm.h (struct x_output): Add scroll bar pixel colors.
4336
4337 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
4338 (x_set_scroll_bar_foreground): New.
4339 (x_set_scroll_bar_background): New.
4340
4341 * xlwmenu.c (all_dashes_p): Removed.
4342 (size_menu_item): Call lw_separator_p.
4343 (display_menu_item): Ditto.
4344 (display_menu): Ditto.
4345 (draw_separator): New.
4346 (display_menu_item): Call it.
4347 (separator_height): New.
4348 (size_menu_item): Call it.
4349
4350 * lwlib-Xm.c (all_dashes_p): Removed.
4351 (make_menu_in_widget): Use lw_separator_p. Set Motif separator
4352 type.
4353
4354 * lwlib.c (lw_separator_p): New.
4355
4356 * lwlib.h (enum menu_separator): New.
4357
4358 1999-01-12 Gerd Moellmann <gerd@gnu.org>
4359
4360 * xdisp.c (handle_single_display_prop): New.
4361 (handle_display_prop): Call it.
4362 (handle_raise_prop): Removed.
4363 (handle_height_prop): Removed.
4364 (handle_space_width_prop): Removed.
4365 (handle_face_prop): Remove handling of raised text.
4366 (handle_display_prop): Do it here.
4367
4368 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
4369 (RAISE_PROP_IDX): Removed.
4370 (HEIGHT_PROP_IDX): Removed.
4371 (SPACE_WIDTH_PROP_IDX): Removed.
4372
4373 * xdisp.c (Qdisplay): Replaces Qglyph.
4374 (handle_display_prop): Formerly handle_glyph_prop.
4375
4376 1999-01-11 Gerd Moellmann <gerd@gnu.org>
4377
4378 * xdisp.c (reseat_to_string): Set position in display vector to -1.
4379 (handle_stop): Set position in display vector to -1. Don't
4380 check overlay strings when set up to deliver characters from a
4381 display vector.
4382 (set_iterator_to_next): At the end of a run of characters from a
4383 display vector, check whether the display vector display replaces
4384 the display of a character.
4385
4386 1999-01-05 Gerd Moellmann <gerd@gnu.org>
4387
4388 * xfaces.c (init_frame_faces): Don't realize faces if frame's
4389 X window hasn't been created yet.
4390
4391 1998-12-06 Gerd Moellmann <gerd@gnu.org>
4392
4393 * sound.c: New.
4394
4395 1998-12-04 Gerd Moellmann <gerd@gnu.org>
4396
4397 * config.in (HAVE_SOUND): New.
4398
4399 * emacs.c (main): Call syms_of_sound and init_sound.
4400
4401 * Makefile.in (obj): Add sound.o.
4402
4403 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
4404
4405 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
4406 (HAVE_SYS_SOUNDCARD_H): New.
4407
4408 1998-12-03 Gerd Moellmann <gerd@gnu.org>
4409
4410 * buffer.h (struct buffer): indicate_empty_lines renamed from
4411 indicate_zv_lines.
4412
4413 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
4414 (default-indicate-zv-lines): Likewise.
4415
4416 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
4417 to indicate_empty_line_p.
4418
4419 * xdisp.c (reseat_at_next_visible_line_start): Reset method
4420 to next_element_from_buffer.
4421
4422 * frame.c (make_frame): Set n_current_toolbar_items to 0.
4423
4424 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
4425 and `N-'.
4426
4427 * xfns.c (xbm_scan): New.
4428 (xbm_read_hexint): Removed.
4429 (xbm_read_bitmap_file_data): Use xbm_scan.
4430
4431 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
4432
4433 1998-12-02 Gerd Moellmann <gerd@gnu.org>
4434
4435 * xfns.c (xbm_read_hexint): New.
4436 (xbm_read_bitmap_file_data): New.
4437 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
4438 instead of XReadBitmapFileData.
4439
4440 * xdisp.c (handle_raise_prop): Compute voffset from current font.
4441
4442 * xfaces.c (face_with_height): New.
4443
4444 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
4445 (eval_form): Renamed from eval_mode_element.
4446 (handle_face_prop): Use it.
4447 (Qheight): Replaces Qsmaller.
4448 (handle_height_prop): Replaces handle_smaller_prop.
4449 (handle_face_prop): If iterator's font_height is not an
4450 integer, evaluate it to get the font height to use.
4451
4452 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
4453 (struct it): Use `font_height' instead of `smaller'.
4454
4455 1998-12-01 Gerd Moellmann <gerd@gnu.org>
4456
4457 * xdisp.c (reseat_1): New.
4458 (reseat): Call it.
4459 (move_it_vertically_backward): Ditto.
4460 (redisplay_window): Don't abort when cursor not found in recenter.
4461
4462 1998-11-30 Gerd Moellmann <gerd@gnu.org>
4463
4464 * xdisp.c (reseat_at_next_visible_line_start): When not
4465 currently delivering display elements from the current buffer,
4466 restore buffer position first.
4467 (init_from_display_pos): Don't set IT's position from the
4468 position passed to this function.
4469
4470 1998-11-28 Gerd Moellmann <gerd@gnu.org>
4471
4472 * config.in (PROTO): Removed.
4473
4474 * xterm.h: Change PROTO to P_.
4475
4476 1998-11-26 Gerd Moellmann <gerd@gnu.org>
4477
4478 * xterm.c (take_vertical_position_into_account): New.
4479 (x_produce_image_glyph): Call it.
4480 (x_produce_stretch_glyph): Ditto.
4481 (x_produce_glyphs): Ditto.
4482 (x_fill_glyph_string): Adjust base line for glyph's voffset.
4483 (x_fill_composite_glyph_string): Ditto.
4484 (x_fill_image_glyph_string): Ditto.
4485 (x_fill_stretch_glyph_string): Ditto.
4486
4487 * xdisp.c (display_line): Always compute row height from
4488 max_ascent and max_descent.
4489
4490 * dispextern.h (struct glyph): Add voffset.
4491 (struct it): Replace height by descent, max_height by max_descent.
4492
4493 * xterm.c (x_append_glyph): Set voffset
4494 (x_append_stretch_glyph): Ditto.
4495 (x_produce_image_glyph): Ditto.
4496 (x_produce_glyphs): Take voffset into account.
4497 (x_produce_image_glyph): Ditto.
4498 (x_produce_stretch_glyph): Ditto.
4499
4500 * dispextern.h (struct it): Add voffset.
4501 * xdisp.c (push_it): Save voffset.
4502 (pop_it): Restore it.
4503
4504 * xdisp.c (it_props): Add entry for `raise'.
4505 (handle_raise_prop): New.
4506
4507 * dispextern.h (RAISE_PROP_IDX): New.
4508
4509 * xdisp.c (Qraise): New.
4510 (syms_of_xdisp): Define Qraised.
4511
4512 * xterm.c (x_scroll_bar_move): Clear to the left and right
4513 of toolkit scroll bars differently.
4514 (x_scroll_bar_move): Removed.
4515 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
4516
4517 * dispextern.h: Make it compilable --with-x=no.
4518 * alloc.c: Ditto.
4519 * emacs.c: Ditto.
4520 * dispnew.c: Ditto.
4521 * keyboard.c: Ditto.
4522 * term.c: Ditto.
4523 * xdisp.c: Ditto.
4524 * xfaces.c: Ditto.
4525 * xfns.c: Ditto.
4526 * xmenu.c: Ditto.
4527
4528 1998-11-25 Gerd Moellmann <gerd@gnu.org>
4529
4530 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
4531
4532 1998-11-24 Gerd Moellmann <gerd@gnu.org>
4533
4534 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
4535 update slider size, only.
4536 (xm_scroll_callback): Set dragging member of the scroll bar.
4537 (xt_action_hook): Reset last_scroll_bar_part.
4538 (XTredeem_scroll_bar): Reset bar->dragging to nil.
4539
4540 * xlwmenu.c (abort_gracefully): New.
4541 (display_menu): Use it instead of abort.
4542 (size_menu): Ditto.
4543
4544 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
4545 window on newly created frames that don't have one.
4546
4547 1998-11-23 Gerd Moellmann <gerd@gnu.org>
4548
4549 * xdisp.c (restore_overlay_strings): Removed.
4550 (restore_dpvec): Removed.
4551 (init_from_display_pos): Inline both functions above.
4552
4553 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
4554 (parse_image_spec): Handle it.
4555 (xbm_format): Use it.
4556 (xpm_format): Ditto.
4557 (pbm_format): Ditto.
4558 (jpeg_format): Ditto.
4559 (tiff_format): Ditto.
4560 (gif_format): Ditto.
4561 (gs_format): Ditto.
4562
4563 * xdisp.c (set_window_cursor): Removed.
4564 (redisplay_internal): Case cursor motion in cursor line of
4565 selected window; use set_cursor_from_row.
4566
4567 1998-11-22 Gerd Moellmann <gerd@gnu.org>
4568
4569 * widget.c (EmacsFrameSetCharSize): Take widget's border width
4570 into account.
4571
4572 1998-11-21 Gerd Moellmann <gerd@gnu.org>
4573
4574 * xterm.c (expose_frame): Redraw menu bar window.
4575
4576 * xdisp.c (display_menu_bar): Record hpos instead of x-position
4577 in menu item.
4578
4579 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
4580 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
4581
4582 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
4583 to determine vertical_scroll_bar_extra.
4584 (EmacsFrameSetCharSize): Ditto.
4585 * xfns.c (x_figure_window_size): Ditto.
4586
4587 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
4588 (x_draw_bitmap): Ditto.
4589
4590 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
4591 * xfaces.c (realize_basic_faces): Realize it.
4592
4593 1998-11-20 Gerd Moellmann <gerd@gnu.org>
4594
4595 * xmenu.c (xmenu_show): Add workaround for remaining button grab
4596 under LessTif Use the widget of the frame as parent for the
4597 menu, again.
4598
4599 1998-11-19 Gerd Moellmann <gerd@gnu.org>
4600
4601 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
4602 When EnterNotify, don't generate a mouse movement event if
4603 notification is from a busy-cursor child window.
4604
4605 * xterm.h (struct x_output): Add busy_window, remove cursor.
4606
4607 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
4608 Use a transparent window to display the busy-cursor.
4609 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
4610
4611 1998-11-17 Gerd Moellmann <gerd@gnu.org>
4612
4613 * xdisp.c (check_window_end): New, for debugging.
4614 (CHECK_WINDOW_END): New.
4615 (try_window_id): Use it.
4616
4617 * xterm.c (process_expose_from_menu): Return int.
4618
4619 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
4620 TOOLBAR_EVENT events in last_nonmenu_event.
4621
4622 1998-11-16 Gerd Moellmann <gerd@gnu.org>
4623
4624 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
4625 window end isn't reliable, so set window_end_valid to nil.
4626 (redisplay_internal): If overlay arrow has changed, set
4627 windows_or_buffers_changed to redisplay thoroughly.
4628
4629 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
4630 necessary.
4631
4632 * xfns.c (file_dialog_cb): New.
4633 (Fx_file_dialog): New.
4634 * fileio.c (Fread_file_name): Call it.
4635
4636 * xrdb.c (x_load_resources): Add default resoures for file
4637 selection dialog.
4638
4639 1998-11-14 Gerd Moellmann <gerd@gnu.org>
4640
4641 * xterm.c (note_mouse_highlight): Don't highlight when popup
4642 is active.
4643
4644 * xlwmenu.c (xlwMenuResources): Change previously unused
4645 XtNmargin to 4.
4646 (size_menu): Take margin into account.
4647 (display_menu_item): Ditto.
4648 (remap_menubar): Ditto.
4649 (draw_arrow): Draw it 3D.
4650
4651 * keyboard.c (timer_check): Inhibit busy cursor around calls to
4652 timer-event-handler. This busy cursor tends to be anoying if
4653 fontifying stealthily.
4654
4655 * dispnew.c (direct_output_for_insert): Give up if current row
4656 contains trailing whitespace.
4657
4658 1998-11-13 Gerd Moellmann <gerd@gnu.org>
4659
4660 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
4661
4662 * xdisp.c (handle_fontified_prop): New.
4663 (Vfontification_functions): New.
4664 (Qfontification_functions): New.
4665 (it_props): Add handle_fontified_prop.
4666
4667 1998-11-12 Gerd Moellmann <gerd@gnu.org>
4668
4669 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
4670 Otherwise, under LessTif, after the popup has gone, all button
4671 press events come in for the frame's widget, and release events
4672 come in for the edit_widget.
4673 * xterm.c (XTread_socket): Remove workaround for that problem.
4674 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
4675 XmScrollBarSetValues.
4676 (SET_SAVED_MENU_EVENT): Give it statement form.
4677
4678 * lwlib-Xm.c (make_menu_in_widget): Set alignment of menu
4679 title after all widgets have been created.
4680
4681 * xfaces.c (display_message): If waiting_for_input, don't display
4682 the message.
4683
4684 * window.c (scroll_command): If not acting on current_buffer,
4685 make redisplay consider all windows.
4686
4687 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
4688
4689 * xdisp.c (handle_glyph_prop): Set it->object for images to
4690 the object having the glyph property.
4691
4692 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
4693 invisible.
4694
4695 1998-11-11 Gerd Moellmann <gerd@gnu.org>
4696
4697 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
4698 (x_term_init): Create the gray pixmap.
4699 (x_setup_relief_color): Use it.
4700 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
4701 internal border at the top of a frame.
4702 (x_init_glyph_string): Likewise.
4703 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
4704 full-width lines.
4705 (XTflash): Don't flash the toolbar window.
4706
4707 * xterm.c (XTread_socket): Workaround for LessTif popup menus
4708 in case of ButtonPress events.
4709
4710 1998-11-10 Gerd Moellmann <gerd@gnu.org>
4711
4712 * xrdb.c (x_load_resources): Add grey background colors as
4713 defaults for menus, scroll bars, and dialogs.
4714
4715 * insdel.c (prepare_to_modify_buffer): Move setting
4716 windows_or_buffers_changed from modify_region here.
4717
4718 * xfns.c (Fx_show_tip): Inhibit redisplay.
4719 (Fx_hide_tip): Ditto.
4720 (Fx_image_header): New.
4721
4722 1998-11-09 Gerd Moellmann <gerd@gnu.org>
4723
4724 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
4725 when clearing current window matrices.
4726
4727 1998-11-08 Gerd Moellmann <gerd@gnu.org>
4728
4729 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
4730 position from a string position. Use the right end position
4731 if the property spans a whole overlay string.
4732
4733 1998-11-07 Gerd Moellmann <gerd@gnu.org>
4734
4735 * xmenu.c (menubar_selection_callback): Remove workaround for
4736 Lesstif not calling XmNpopdownCallback because it doesn't
4737 handle the case where users don't select any menu item.
4738
4739 * xlwmenu.c (toggle_button_width): Renamed from
4740 toggle_or_radio_button_width.
4741 (radio_button_width): New.
4742 (size_menu_item): Use new functions.
4743 (draw_shadow_rhombus): New.
4744 (draw_radio): Use radio_button_width and draw_shadow_rhombus.
4745 (draw_toggle): Use toggle_button_width.
4746
4747 * insdel.c (modify_region): Set windows_or_buffers_changed.
4748
4749 * buffer.c (set_buffer_internal): Don't set
4750 windows_or_buffers_changed.
4751
4752 * lwlib-Xm.c (xm_update_toggle): Add callback xm_generic_callback
4753 instead of xm_internal_update_other_instances.
4754
4755 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
4756
4757 * lwlib-Xm.c (make_menu_in_widget): Do help button before managing
4758 children to get it to the right place.
4759 (make_menu_in_widget): Create toggle buttons.
4760 (update_one_menu_entry): Update toggle buttons.
4761
4762 * xmenu.c (menubar_selection_callback): Add workaround for
4763 Lesstif not calling XmNpopdownCallback.
4764
4765 * xdisp.c (eval_mode_element): New.
4766 (eval_mode_handler): New.
4767 (display_mode_element): Use eval_mode_element.
4768
4769 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
4770 Remove code looking at text props of default value.
4771
4772 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
4773
4774 * xlwmenu.c (size_menu_item): Add parameter button_width.
4775 (size_menu): Compute button_width.
4776 (toggle_or_radio_button_width): New.
4777 (draw_toggle): New.
4778 (draw_radio): New.
4779 (draw_shadow_rectangle): Add parameter `down_p'.
4780
4781 * xlwmenuP.h (_window_state): Add button_width.
4782
4783 1998-11-06 Gerd Moellmann <gerd@gnu.org>
4784
4785 * xmenu.c (single_submenu): Set button_type of menu to
4786 BUTTON_TYPE_NONE.
4787 (single_submenu): Likewise for panes and menu items.
4788 (set_frame_menubar): Set button_type of menu bar to none.
4789 (xmenu_show): Likewise.
4790 (single_submenu): Set widget values selected slot.
4791 (xmenu_show): Likewise.
4792
4793 * lwlib.c (merge_widget_value): Handle button_type.
4794 (copy_widget_value_tree): Copy button_type.
4795
4796 * lwlib.h (enum button_type): New.
4797 (_widget_value): New member button_type.
4798
4799 * xmenu.c (push_menu_item): Add parameters `type' and
4800 `selected'. Store it in menu_items.
4801 (MENU_ITEMS_ITEM_TYPE): New.
4802 (MENU_ITEMS_ITEM_SELECTED): New.
4803 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
4804
4805 * xfns.c (clear_image_cache): Get the current time, before
4806 doing anything.
4807 (cache_image): Set prev pointer of next image.
4808 (clear_image_cache): Clear current matrices if any image was
4809 freed.
4810
4811 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
4812
4813 * xfns.c (x_set_cursor): New.
4814 (Fx_display_busy_cursor): New.
4815 (Fx_undisplay_busy_cursor): New.
4816
4817 * xterm.h (struct x_output): Add busy_cursor.
4818
4819 * xfns.c (Vx_busy_pointer_shape): New.
4820 (x_set_mouse_color): Create busy cursor.
4821
4822 * process.c (wait_reading_process_input): Show and hide busy
4823 cursor.
4824
4825 * keyboard.c (command_loop_1): Display busy cursor.
4826
4827 * eval.c (Fsignal): Hide busy cursor.
4828
4829 * buffer.c (set_buffer_internal): Don't set
4830 windows_or_buffers_changed.
4831
4832 * xterm.c (redo_mouse_highlight): New.
4833
4834 1998-11-04 Gerd Moellmann <gerd@gnu.org>
4835
4836 * lwlib-Xm.c (make_menu_in_widget): Test for menubar widgets
4837 using XmNrowColumnType.
4838
4839 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
4840 (x_build_heuritic_mask): New.
4841 (lookup_image): Call it.
4842
4843 * xterm.c (note_toolbar_highlight): Always set up help_echo.
4844 (previous_help_echo): New.
4845 (XTread_socket): Generate help event with nil message when
4846 leaving a region with help-echo.
4847 (note_mouse_highlight): Handle `help-echo' over text.
4848 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
4849 CirculateRequest.
4850 (clear_mouse_face): Don't clear if tooltip is shown.
4851 (XTread_socket): Redo mouse-highlight after tooltip is gone.
4852 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
4853
4854 * keyboard.c (Vshow_help_function): New.
4855 (read_char): Use it.
4856
4857 1998-11-03 Gerd Moellmann <gerd@gnu.org>
4858
4859 * xfns.c (x_create_tip_frame): New.
4860 (Fx_show_tip): New.
4861 (Fx_hide_tip): New.
4862
4863 * xterm.c (x_destroy_window): Handle case that we don't have
4864 a widget.
4865
4866 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
4867 to full_width_p. Add internal_border_p.
4868
4869 1998-11-02 Gerd Moellmann <gerd@gnu.org>
4870
4871 * xterm.c (note_mode_line_highlight): Check the charpos of
4872 the glyph under the mouse pointer before accessing text
4873 properties at that position.
4874
4875 1998-11-01 Gerd Moellmann <gerd@gnu.org>
4876
4877 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
4878
4879 * xdisp.c (auto-raise-toolbar-buttons): New.
4880 (build_desired_toolbar_string): Handle the flag.
4881 (toolbar-button-margin): New.
4882 (toolbar-button-relief): New.
4883 (build_desired_toolbar_string): Use margin and relief.
4884
4885 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
4886 for FreeBSD.
4887 (note_mode_line_highlight): New.
4888 (note_mouse_highlight): Call it.
4889
4890 1998-10-31 Gerd Moellmann <gerd@gnu.org>
4891
4892 * s/freebsd.h (NARROWPROTO): New.
4893
4894 * xdisp.c (display_string): New parameter face_string.
4895 (display_mode_element): When displaying a symbol with a string
4896 value, use text properties from the symbol's default value, maybe.
4897
4898 * xrdb.c (x_load_resources): Add font defaults for menus and
4899 dialogs.
4900
4901 1998-10-30 Gerd Moellmann <gerd@gnu.org>
4902
4903 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
4904
4905 1998-10-29 Gerd Moellmann <gerd@gnu.org>
4906
4907 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
4908 produced for characters with codes < 32 under certain
4909 circumstances.
4910
4911 * xdisp.c (redisplay_window): Handle values of PT in front
4912 of invisible, intangible text.
4913 (try_window_id): Set overlay_arrow_seen to zero before
4914 displaying lines.
4915 (display_mode_element): Assign to glyphs written for a mode
4916 line spec `%x' as object the Lisp format string, as position
4917 the position of the `%' in that string.
4918 (display_string): If displaying a C string, optionally get
4919 the face to use from a Lisp string.
4920
4921 * xterm.c (expose_window_tree): Include mode line height.
4922
4923 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
4924
4925 1998-10-27 Gerd Moellmann <gerd@gnu.org>
4926
4927 * xterm.c (note_mouse_highlight): Change mouse pointer shape
4928 over mode line.
4929
4930 1998-10-26 Gerd Moellmann <gerd@gnu.org>
4931
4932 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
4933
4934 * xdisp.c (redisplay_window): If mode line height has changed,
4935 arrange for a thorough immediate redisplay using the correct mode
4936 line height.
4937 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
4938
4939 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
4940 (CURRENT_MODE_LINE_HEIGHT): New.
4941 (DESIRED_MODE_LINE_HEIGHT): New.
4942
4943 * keyboard.c (make_lispy_event): Add string and string position
4944 info to mouse-click events.
4945 (read_key_sequence): Handle `local-map' property of mode line
4946 strings.
4947
4948 * keyboard.h (POSN_STRING): New.
4949
4950 1998-10-25 Gerd Moellmann <gerd@gnu.org>
4951
4952 * dispnew.c (mode_line_string): Mew.
4953
4954 * xterm.c (xt_action_hook): New.
4955 (x_create_toolkit_scroll_bar): Add action hook.
4956 (xm_scroll_callback): Implement dragging.
4957
4958 * keyboard.c (Qend_scroll): New.
4959 (scroll_bar_parts): Add it.
4960
4961 * termhooks.h (scroll_bar_end_scroll): New.
4962
4963 * xterm.c (XTread_socket): Bug fix.
4964
4965 1998-10-24 Gerd Moellmann <gerd@gnu.org>
4966
4967 * xdisp.c (redisplay_window): Finish scroll bars after
4968 redisplaying toolbar.
4969
4970 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
4971 (syms_of_keyboard): Add Qbottom.
4972
4973 * termhooks.h (scroll_bar_to_top): New.
4974 (scroll_bar_to_bottom): New.
4975
4976 * xdisp.c (redisplay_window): Always resize toolbar window if
4977 auto_resize_toolbar_p is non-zero.
4978 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
4979 (window_box): New.
4980 (window_box_height): New.
4981 (window_box_width): New.
4982 (window_box_left): New.
4983 (window_box_right): New.
4984 (window_box_edges): New.
4985
4986 1998-10-23 Gerd Moellmann <gerd@gnu.org>
4987
4988 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
4989 XawScrollbarSetThumb in FreeBSD.
4990 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
4991 to true.
4992
4993 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
4994 is out of range.
4995
4996 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
4997 (x_term_init): Initialize it.
4998
4999 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
5000
5001 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
5002 cursor.
5003
5004 1998-10-22 Gerd Moellmann <gerd@gnu.org>
5005
5006 * keyboard.c (make_lispy_event): Handle scroll_bar_click
5007 differently when using toolkit scroll bars.
5008
5009 * xterm.c (x_send_scroll_bar_event): New.
5010 (x_scroll_bar_to_input_event): New.
5011 (xaw3d_scroll_callback): New.
5012 (xaw3d_jump_callback): New.
5013 (xm_scroll_callback): New.
5014 (x_toolkit_scroll_p): New.
5015 (XTread_socket): Handle scroll bar client message.
5016 (x_term_init): Initialize Xatom_Scrollbar.
5017 (x_scroll_bar_create): Set cursor.
5018 (xm_scroll_callback):
5019 (x_create_toolkit_scroll_bar): New.
5020 (x_set_toolkit_scroll_bar_thumb): New.
5021 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
5022 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
5023
5024 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
5025
5026 1998-10-21 Gerd Moellmann <gerd@gnu.org>
5027
5028 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
5029 (XTread_socket): Don't handle mouse button events for scroll bars
5030 if using toolkit scroll bars.
5031 (XTset_vertical_scroll_bar): Set thumb size and position for
5032 Athena scroll bar.
5033
5034 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
5035
5036 * xterm.c (XTread_socket): Dispatch expose event to widget
5037 if using toolkit scroll bars.
5038 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
5039 (x_scroll_bar_create): Create and show a scroll bar widget
5040 if using toolkit scroll bars.
5041 (x_scroll_bar_move): Handle tookit scroll bars.
5042
5043 * Makefile.in (LIBW): Use Xaw3d if present.
5044
5045 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
5046 (HAVE_XAW3D): New.
5047
5048 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
5049 (HAVE_XAW3D): New.
5050
5051 * xterm.c (XTset_vertical_scroll_bar): Correct position of
5052 right vertical scroll bar.
5053
5054 1998-10-20 Gerd Moellmann <gerd@gnu.org>
5055
5056 * xfns.c (xpm_load): Support reading XPM images from string
5057 buffers containing data in the same format as an XPM file.
5058 Support `:color-symbols'.
5059 (xpm_format): Add `:data'.
5060 (xpm_keyword_index): Add XPM_DATA.
5061 (syms_of_xfns): Add `:color-symbols'.
5062 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
5063 (xpm_valid_color_symbols_p): New.
5064 (xpm_image_p): Call it.
5065
5066 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
5067 attribute to the image if item is not enabled.
5068
5069 * xfns.c (x_laplace): New.
5070 (x_laplace_read_row): New.
5071 (x_laplace_write_row): New.
5072 (lookup_image): Handle common image attributes here. New
5073 attribute `:algorithm'.
5074
5075 * xfaces.c (clear_face_cache): Call clear_image_cache.
5076
5077 * xterm.c (x_inverted_image_mask): Removed.
5078 (x_draw_image_foreground_1): New.
5079 (x_draw_image_glyph_string): Draw images with mask to a temporary
5080 pixmap to reduce flickering.
5081
5082 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
5083 (display_toolbar_line): Remove parameter `margin'.
5084
5085 1998-10-19 Gerd Moellmann <gerd@gnu.org>
5086
5087 * xdisp.c (toolbar_lines_needed): New.
5088 (auto-resize-toolbars): New.
5089
5090 * xfns.c (cache_image): Correct call to xrealloc.
5091
5092 * dispnew.c (Fset_toolbar_height): Removed.
5093
5094 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
5095 FRAME_MENU_BAR_LINES.
5096
5097 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
5098 instead of FRAME_MENU_BAR_LINES.
5099 (check_frame_size): Ditto.
5100
5101 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
5102 instead of FRAME_MENU_BAR_LINES.
5103 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
5104 (build_frame_matrix): Ditto.
5105 (change_frame_size_1): Ditto.
5106
5107 * frame.h (FRAME_TOOLBAR_LINES): New.
5108 (FRAME_TOP_MARGIN): New.
5109
5110 * window.c (struct save_window_data): Add frame_toolbar_lines.
5111 (Fset_window_configuration): Handle toolbar lines.
5112 (Fcurrent_window_configuration): Save toolbar lines.
5113
5114 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
5115
5116 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
5117
5118 * frame.h (struct frame): Rename top_margin to toolbar_lines.
5119
5120 * xfns.c (x_frame_parms): Add `toolbar-lines'.
5121 (x_set_toolbar_lines): New.
5122
5123 * keyboard.c (cmd_error_internal): Bug fix.
5124
5125 * xterm.c: Remove double include of syssignal.h.
5126
5127 1998-10-18 Gerd Moellmann <gerd@gnu.org>
5128
5129 * xterm.c (x_toolbar_item): New.
5130 (x_handle_toolbar_click): Use it.
5131 (note_toolbar_highlight): Use it.
5132
5133 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
5134 and toolbar_items_vectors.
5135
5136 * xterm.c (help_echo): New.
5137 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
5138 (x_set_glyph_string_gc): Handle them.
5139 (x_after_update_window_line): Don't do anything in pseudo-windows.
5140 (x_produce_image_glyph): Take image margin and face relief into
5141 account.
5142 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
5143 (x_draw_glyph_string_background): Optimize case when face has
5144 relief.
5145 (x_setup_relief_color): Take frame instead of glyph string
5146 parameter.
5147 (x_draw_relief_rect): New.
5148 (x_draw_glyph_string_relief): Call it.
5149 (x_draw_image_glyph_string_foreground): Handle margin and image
5150 relief.
5151 (x_draw_image_glyph_string_background): Ditto.
5152 (expose_frame): Redraw toolbar window.
5153 (expose_window): Don't draw cursor for pseudo-windows.
5154 (x_y_to_hpos_vpos): Handle pseudo-windows.
5155 (frame_to_window_pixel_xy): New.
5156 (note_mouse_highlight): Call note_toolbar_highlight.
5157 (x_handle_toolbar_click): New.
5158 (note_toolbar_highlight): New.
5159 (show_mouse_face): Change int parameter `hl' to parameter of
5160 type enum draw_glyphs_face. Handle image highlighting.
5161 (XTread_socket): Return a HELP_EVENT input event if help_echo is
5162 non-nil. Use x_handle_toolbar_click.
5163
5164 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
5165
5166 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
5167 IMAGE_BOOL_VALUE.
5168 (parse_image_spec): Handle them.
5169 (image_spec_value): Additional parameter found.
5170 (free_image): Remove image from the vector `images' of the
5171 image cache.
5172 (clear_image_cache): Additional parameter force_p.
5173 (Fclear_image_cache): New.
5174 (x_find_image_file): New.
5175 (xbm_load): Handle `:margin' and `:relief'. Use
5176 x_find_image_file.
5177 (xpm_load): Likewise.
5178 (pbm_load): Likewise.
5179 (jpeg_load): Likewise.
5180 (tiff_load): Likewise.
5181 (gif_load): Likewise.
5182
5183 * keyboard.c (Qhelp_echo): New symbol.
5184 (read_char): Handle `toolbar' and `help_echo' events.
5185 (kbd_buffer_get_event): Handle HELP_ECHO input event.
5186 (make_lispy_event): Handle TOOLBAR_EVENT.
5187 (toolbar_items): New.
5188 (process_toolbar_item): New.
5189 (PROP): New.
5190 (init_toolbar_items): New.
5191 (append_toolbar_item): New.
5192 (read_char_x_menu_prompt): Handle `toolbar' event.
5193 (read_key_sequence): Ditto.
5194
5195 * xfaces.c (Qtoolbar): New.
5196 (realize_basic_faces): Realize `toolbar' face.
5197 (face_at_string_position): Remove parameter modeline_p, add
5198 base_face_id.
5199
5200 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
5201 to read data.
5202
5203 1998-10-17 Gerd Moellmann <gerd@gnu.org>
5204
5205 * xdisp.c (init_iterator): Replace parameter modeline_p with
5206 base_face_id.
5207 (next_element_from_string): Call get_next_display_element
5208 recursively after handling text properties.
5209 (prepare_menu_bars): Call update_toolbar.
5210 (update_toolbar): New.
5211 (build_desired_toolbar_string): New.
5212 (display_toolbar_line): New.
5213 (redisplay_toolbar): New.
5214 (toolbar_item_info): New.
5215 (redisplay_window): Call redisplay_toolbar.
5216 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
5217
5218 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
5219 window.
5220 (clear_desired_matrices): Ditto.
5221 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
5222 (free_glyphs): Free matrices of toolbar window.
5223 (update_frame): Update toolbar window.
5224 (change_frame_size_1): Take toolbar into account.
5225 (Fset_toolbar_height): New.
5226
5227 * dispextern.h (struct it): Remove member modeline_p, add
5228 base_face_id.
5229 (struct image): Add members relief and margin.
5230 (IMAGE_ASCENT): Include margin in height.
5231
5232 1998-10-14 Gerd Moellmann <gerd@gnu.org>
5233
5234 * xfns.c (Fclear_image_cache): New.
5235
5236 * xfaces.c (realize_basic_faces): Realize toolbar face.
5237 (face_at_string_position): Remove parameter modeline_p, add
5238 base_face_id.
5239
5240 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
5241
5242 1998-10-13 Gerd Moellmann <gerd@gnu.org>
5243
5244 * keyboard.c (syms_of_keyboard): Intern `:help'.
5245
5246 1998-10-12 Gerd Moellmann <gerd@gnu.org>
5247
5248 * xterm.c (note_toolbar_highlight): New.
5249 (note_mouse_highlight): Call it.
5250
5251 * window.c (window_from_coordinates): Additional parameter toolbar_p.
5252 (coordinates_in_window): Handle toolbar window.
5253
5254 * keyboard.c (toolbar_items): New.
5255 (process_toolbar_item): New.
5256 (parse_toolbar_item): New.
5257 (init_toolbar_items): New.
5258 (append_toolbar_item): New.
5259
5260 * dispextern.h (enum toolbar_item_idx): New.
5261 (enum toolbar_item_image): New.
5262
5263 * frame.h (struct frame): Add toolbar-related members.
5264
5265 * xfaces.c (face_at_string_position): Remove assertion that
5266 current_buffer == window's buffer. This is not the case when
5267 called for the toolbar window.
5268
5269 * frame.c (make_frame): Initialize toolbar members.
5270
5271 * alloc.c (mark_object): Mark toolbar data of frames.
5272
5273 * frame.h (struct frame): Add toolbar-related members
5274 toolbar_window, desired_toolbar_items, current_toolbar_items,
5275 desired_toolbar_string, current_toolbar_string,
5276 n_desired_toolbar_items, n_current_toolbar_items. Add
5277 window_height.
5278
5279 * xterm.c (x_after_update_window_line): Don't draw bitmap
5280 areas for pseudo-windows.
5281 (expose_frame): Handle toolbar window.
5282 (expose_window): Don't do cursor stuff for pseudo-windows.
5283
5284 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
5285
5286 1998-10-11 Gerd Moellmann <gerd@gnu.org>
5287
5288 * frame.c (make_frame): Initialize toolbar_window.
5289
5290 * alloc.c (mark_object): Make the toolbar window.
5291
5292 * dispnew.c (update_frame): Update frame's toolbar_window.
5293 (clear_current_matrices): Likewise.
5294 (clear_desired_matrices): Likewise.
5295 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
5296 (free_glyphs): Free the toolbar window and its matrices.
5297
5298 * frame.h (struct frame): Add toolbar_window.
5299
5300 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
5301 with relief.
5302
5303 1998-10-10 Gerd Moellmann <gerd@gnu.org>
5304
5305 * dispnew.c (buffer_posn_from_coords): Don't screw up if
5306 window start is not in the range BEGV..ZV.
5307
5308 1998-10-09 Gerd Moellmann <gerd@gnu.org>
5309
5310 * xdisp.c (try_scrolling): Experimentally handle the case
5311 that scroll-preserve-screen-position is set to `always'.
5312
5313 * window.c (Vscroll_preserve_screen_position): Replacement for
5314 scroll_preserve_screen_position.
5315
5316 1998-10-08 Gerd Moellmann <gerd@gnu.org>
5317
5318 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
5319 doesn't like it.
5320 * xdisp.c: Ditto.
5321
5322 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
5323
5324 1998-10-06 Gerd Moellmann <gerd@gnu.org>
5325
5326 * minibuf.c (Fminibuffer_complete_word): Fix computation of
5327 i_byte when prompts are inserted into minibuffers.
5328
5329 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
5330 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
5331 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
5332
5333 1998-10-04 Gerd Moellmann <gerd@gnu.org>
5334
5335 * xdisp.c (make_cursor_line_fully_visible): New.
5336 (try_scrolling): New.
5337 (redisplay_window): Move scrolling code to try_scrolling.
5338 (make_cursor_line_fully_visible): Handle case of window too small
5339 to show a single line.
5340 (redisplay_window): Case forced window start---use
5341 make_cursor_line_fully_visible.
5342 (redisplay_window): Case cursor movement via current matrix.
5343 If ending up on a partially visible line, make it fully visible
5344 instead of recentering.
5345 (try_scrolling): Additional parameter scroll_smoothly.
5346
5347 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
5348
5349 1998-09-28 Gerd Moellmann <gerd@gnu.org>
5350
5351 * window.c (window_scroll_pixel_based): Bug fix: vpos used
5352 instead of y-position for scroll-preserved-screen-position.
5353
5354 1998-09-07 Gerd Moellmann <gerd@gnu.org>
5355
5356 * dispnew.c (update_frame_line): If current row is not enabled,
5357 write the whole line.
5358
5359 1998-09-06 Gerd Moellmann <gerd@gnu.org>
5360
5361 * lisp.h (HAVE_FACES): Removed.
5362
5363 * dispextern.h (HAVE_FACES): Removed.
5364
5365 * config.in (HAVE_FACES): Removed.
5366
5367 * dispnew.c (HAVE_FACES): Removed.
5368
5369 * xdisp.c (HAVE_FACES): Removed.
5370
5371 * xfaces.c (HAVE_FACES): Removed.
5372
5373 1998-09-05 Gerd Moellmann <gerd@gnu.org>
5374
5375 * xdisp.c (init_iterator): If face_change_count is non-zero,
5376 free realized faces.
5377
5378 * xfaces.c (free_all_realized_faces): Make it externally visible.
5379 (Finternal_set_lisp_face_attribute): Increment
5380 windows_or_buffers_changed.
5381
5382 * dispnew.c (direct_output_for_insert): Give up if
5383 face_change_count is non-zero.
5384 (direct_output_forward_char): Ditto.
5385
5386 * xfaces.c (face_change_count): New.
5387
5388 1998-09-04 Gerd Moellmann <gerd@gnu.org>
5389
5390 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
5391 of range.
5392
5393 1998-09-03 Gerd Moellmann <gerd@gnu.org>
5394
5395 * term.c (Ftty_display_color_p): New.
5396
5397 1998-09-02 Gerd Moellmann <gerd@gnu.org>
5398
5399 * xfaces.c (Ftty_defined_colors): New.
5400
5401 * xterm.c (x_produce_glyphs): Fix computation of
5402 contains_overlapping_glyphs_p for ASCII.
5403
5404 * dispnew.c (Fshow_cursor): Don't change cursor state while
5405 redisplaying.
5406 (direct_output_for_insert): If a glyph with lbearing or rbearing
5407 is among the new glyphs, set row flag contains_overlapping_glyph_p.
5408
5409 1998-09-01 Gerd Moellmann <gerd@gnu.org>
5410
5411 * term.c (OUTPUT_IF): Make replacement text have statement form.
5412 (OUTPUT1_IF): Ditto.
5413 (TS_italic_mode, TS_end_italic_mode): Removed.
5414 (TS_bold_mode): Removed.
5415 (TS_underscore_mode, TS_end_underscore_mode): Removed.
5416 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
5417 (TS_enter_reverse_mode): New.
5418 (TS_enter_underline_mode, TS_exit_underline_mode): New.
5419 (TN_magic_cookie_glitch_ul): New.
5420 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
5421 (TS_exit_attribute_mode): New.
5422 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
5423 (TS_set_foreground, TS_set_background): New.
5424 (reset_terminal_modes): Switch colors back to default.
5425 (write_glyphs): Turn face on before writing text, turn it off
5426 afterwards.
5427 (insert_glyphs): Ditto.
5428 (term_init): Initialize new terminal capability variables.
5429 (turn_on_face): Turn a face on.
5430 (turn_off_face): Turn a face off.
5431
5432 * lisp.h (MAKE_GLYPH): Remove test for frame type.
5433 (GLYPH_CHAR): Ditto.
5434 (GLYPH_FACE): Ditto.
5435
5436 * xfaces.c (Vface_tty_color_alist): New.
5437 (face-register-tty-color): New.
5438 (face-clear-tty-colors): New.
5439
5440 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
5441 (struct it): Remove member faces_p since we now always have faces.
5442
5443 1998-08-31 Gerd Moellmann <gerd@gnu.org>
5444
5445 * dispextern.h (struct face): Add tty appearance flags.
5446
5447 * xdisp.c (init_iterator): Always handle faces.
5448 (extend_face_to_end_of_line): Handle tty frames.
5449
5450 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
5451 passed in.
5452
5453 1998-08-30 Gerd Moellmann <gerd@gnu.org>
5454
5455 * xfaces.c (realize_default_face): Use empty strings to indicate
5456 that the face should use the default foreground/background
5457 color of the terminal. Fill font-related attributes with
5458 appropriate values for tty frames.
5459
5460 * emacs.c (main): Call syms_of_xfaces before init_window_once.
5461
5462 * xfaces.c (realize_default_face): If face `default' is not
5463 yet known, create it.
5464
5465 * frame.c (make_terminal_frame): Call init_frame_faces
5466 unconditionally.
5467
5468 * xfaces.c (init_frame_faces): Make it work for tty frames.
5469 (free_frame_faces): Ditto.
5470 (clear_face_cache): Ditto.
5471 (recompute_basic_faces): Ditto.
5472 (Fframe_face_alist): Ditto.
5473 (free_realized_face): Ditto.
5474 (prepare_face_for_display): Ditto.
5475 (clear_face_gcs): Ditto.
5476 (lookup_face): Ditto.
5477 (smaller_face): Ditto.
5478 (realize_default_face): Ditto.
5479 (realize_face): Ditto.
5480 (realize_face): Dispatch to functions depending on the frame type.
5481 (realize_x_face): X way of realizing faces.
5482 (realize_tty_face): TTY way of realizing faces.
5483
5484 1998-08-29 Gerd Moellmann <gerd@gnu.org>
5485
5486 * xfaces.c (realize_face): Remove parameter unibyte_registry,
5487 compute it instead.
5488 (lookup_face): Remove local variable unibyte_registry.
5489
5490 1998-08-22 Gerd Moellmann <gerd@gnu.org>
5491
5492 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
5493 1 pixel longer.
5494
5495 * xdisp.c (face_before_or_after_it_pos): Fix computation
5496 of face in buffer.
5497
5498 * editfns.c (make_buffer_string_both): If prompt in buffer,
5499 prevent start > end.
5500
5501 * indent.c (Fvertical_motion): Set current_buffer to window's
5502 buffer if it isn't already.
5503
5504 1998-08-21 Gerd Moellmann <gerd@gnu.org>
5505
5506 * dispextern.h (GLYPH_DEBUG): Use default 0.
5507
5508 * xdisp.c (it_props): New member `smaller'.
5509 (init_iterator): Initialize it.
5510 (Qsmaller): New.
5511 (push_it): Save value of `smaller' value on the stack.
5512 (pop_it): Restore `smaller' from the stack.
5513 (handle_smaller_prop): New.
5514 (handle_face_prop): Use `smaller' text property to select a
5515 suitable face.
5516
5517 * dispextern.h (SMALLER_PROP_IDX): New.
5518 (struct it): Add member `smaller'.
5519
5520 * xfaces.c (smaller_face): New.
5521
5522 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
5523
5524 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
5525 total pixel width of window differently.
5526
5527 * xdisp.c (init_iterator): Compute width of mode line differently.
5528
5529 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
5530 of bitmap areas.
5531
5532 * window.c (Fsplit_window): Include width of bitmap areas in
5533 window width.
5534 (window_internal_width): Subtract width of bitmap areas from
5535 total width.
5536
5537 1998-08-18 Gerd Moellmann <gerd@gnu.org>
5538
5539 * xdisp.c: Functions reordered for better readability.
5540
5541 * dispnew.c (update_text_area): Handle glyphs with arbitrary
5542 lbearing.
5543 (update_window_tree): Parameter no_scrolling_p removed.
5544 (update_single_window): Ditto.
5545
5546 * xterm.c (x_get_char_font_and_encoding): Renamed to
5547 x_get_char_face_and_encoding.
5548
5549 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
5550 if end of current row reached.
5551
5552 * xterm.c (x_get_glyph_face_and_encoding): New.
5553 (x_get_glyph_overhangs): Call it.
5554
5555 * xdisp.c (Qshow_trailing_whitespace): New.
5556 (Qtrailing_whitespace): New.
5557 (enum prop_handled): New.
5558 (struct props, it_props): New.
5559 (next_overlay_change): New. Works like Fnext_overlay_change
5560 but doesn't use xmalloc.
5561 (handle_stop): Restructured.
5562 (face_before_or_after_it_pos): Case iteration over a string: fix
5563 handling of face before current position.
5564
5565 1998-08-16 Gerd Moellmann <gerd@gnu.org>
5566
5567 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
5568 reallocation matrix if fonts_changed_p.
5569 (update_text_area): Handle glyphs with lbearing.
5570
5571 1998-08-14 Gerd Moellmann <gerd@gnu.org>
5572
5573 * xdisp.c (struct props): New.
5574 (it_props): New.
5575 (compute_prop_info): New.
5576 (handle_stop): New.
5577
5578 * textprop.c (validate_interval_range): Make it externally
5579 visible.
5580
5581 * dispnew.c (direct_output_for_insert): Remove calls
5582 to compute_stop_pos.
5583
5584 * dispextern.h (struct it): Remove check_charpos,
5585 next_overlay_pos. Add what_changes.
5586
5587 1998-08-10 Gerd Moellmann <gerd@gnu.org>
5588
5589 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
5590
5591 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
5592 face_default_registry instead.
5593
5594 * syntax.c (scan_sexps_forward): Set up syntax table before
5595 jumping to initial state label.
5596
5597 1998-08-09 Gerd Moellmann <gerd@gnu.org>
5598
5599 * dispnew.c (check_matrix_invariants): Handle case of row end pos
5600 >= ZV specially.
5601
5602 1998-08-08 Gerd Moellmann <gerd@gnu.org>
5603
5604 * xdisp.c (redisplay_window): Case cursor movement---if cursor
5605 ends up in partially visible row, try to scroll. Case forced
5606 window start---handle windows not tall enough to show a single
5607 line.
5608
5609 * window.h (struct window): Member dy renamed vscroll.
5610
5611 * xterm.c (x_list_fonts): Re-activate suppression of scalable
5612 fonts.
5613 (x_draw_stretch_glyph_string): Set clipping if using GC that
5614 hasn't set it yet.
5615
5616 * xdisp.c (redisplay_window): Case forced window start -
5617 don't let cursor end on partially visible row. Use desired
5618 matrix to find a suitable PT if it doesn't appear.
5619 (decode_mode_spec): Merged with 20.2.97.
5620 (try_window_reusing_current_matrix): Give up if old or
5621 new display is vscrolled.
5622 (redisplay_window): Reset vscrolling if forced window start,
5623 or if recentering.
5624
5625 1998-08-06 Gerd Moellmann <gerd@gnu.org>
5626
5627 * xfaces.c (realize_default_face): Use the fontset name instead of
5628 the alias for the family attribute of the default face because we
5629 can't easily determine a good alias from fontset-alias-alist.
5630 (face_fontset): Use Fquery_fontset to find the fontset.
5631 (font_list): Additional pattern parameter.
5632 (try_font_list): Ditto.
5633 (set_lface_from_font_name): Set face family from font foundry
5634 and family.
5635 (font_list): If family contains a hyphen, build pattern differently.
5636
5637 1998-08-05 Gerd Moellmann <gerd@gnu.org>
5638
5639 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
5640 changed instead of setting the frame garbaged.
5641
5642 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
5643 all attribute values. This is wrong if values are unspecified,
5644 i.e. nil.
5645
5646 * xdisp.c (try_window_id): Give up if window start changed.
5647
5648 * xfaces.c (make_realized_face): Store registry as Lisp object.
5649 (load_face_font_or_fontset): Compute registry of a face
5650 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
5651 possible.
5652
5653 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
5654 differently.
5655
5656 * alloc.c (mark_face_cache): Mark the registry member of faces.
5657
5658 * dispextern.h (struct face): Make registry a Lisp string.
5659
5660 1998-08-04 Gerd Moellmann <gerd@gnu.org>
5661
5662 * xterm.c (x_get_char_font_and_encoding): Additional parameter
5663 multibyte_p. Handle unibyte text.
5664 (x_append_glyph): Set the multibyte_p flag of glyphs.
5665 (x_produce_image_glyph): Ditto.
5666 (x_append_stretch_glyph): Ditto.
5667 (x_produce_glyphs): Handle unibyte text like ASCII.
5668
5669 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
5670 stack.
5671 (pop_it): Restore it.
5672 (face_before_or_after_it_pos): Handle the case that the string or
5673 buffer is unibyte.
5674 (get_overlay_strings): Set the multibyte flag of the iterator if
5675 the new overlay string is multibyte.
5676 (get_glyph_property): Likewise.
5677 (get_next_display_element): Don't check for charset changes in
5678 unibyte text.
5679 (append_space): Compute face differently for unibyte text.
5680 (extend_face_to_end_of_line): Don't return quickly if face has
5681 stipple.
5682
5683 * xfaces.c (load_face_font_or_fontset): Store registry and
5684 encoding of the font in the registry member of the face.
5685 (make_realized_face): Additional parameter `registry'.
5686 (free_realized_face): Free the registry of a realized face.
5687 (face_suitable_for_charset_p): Function form of the macro
5688 with the same name in uppercase.
5689 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
5690 (choose_face_font): New parameter unibyte_registry.
5691 (choose_face_fontset_font): Ditto.
5692 (realize_default_face): Remember the registry and encoding of
5693 the specified frame font in Vx_unibyte_registry_and_encoding.
5694 (face_at_buffer_position): Handle unibyte.
5695 (face_at_string_position): Likewise.
5696 (realize_face): New parameter unibyte_registry.
5697 (compute_char_face): Handle the unibyte case.
5698
5699 * dispextern.h (struct glyph): Add bit multibyte_p.
5700 (struct face): New member registry holding the registry and
5701 encoding of the X font of the face.
5702 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
5703 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
5704 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
5705 text.
5706 (struct iterator_stack_entry): Add multibyte_p.
5707
5708 * xdisp.c (string_pos): Use string_char_to_byte.
5709 (char_charset): Removed.
5710
5711 1998-08-03 Gerd Moellmann <gerd@gnu.org>
5712
5713 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
5714 rectangle for a block cursor over an image without a mask.
5715 (x_stretch_block_cursor): Added. Non-zero means don't draw
5716 a block cursor over a stretch as wide as that stretch.
5717 (x_draw_stretch_glyph_string): Use it.
5718 (x_draw_hollow_cursor): Ditto.
5719
5720 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
5721 (read_minibuf): Add front-sticky text property for prompt.
5722
5723 * xdisp.c (char_charset): Return charset of a character,
5724 depending on whether or not multi-byte characters are enabled.
5725
5726 * xfaces.c (Fset_face_charset_registry): Removed.
5727 (x_charset_registry): Determine registry from charset plist.
5728
5729 1998-08-02 Gerd Moellmann <gerd@gnu.org>
5730
5731 * xdisp.c (get_next_display_element): Don't check for charset
5732 changes if multi-byte characters are not enabled.
5733
5734 * xdisp.c (echo_area_display): Use the flush function from the
5735 redisplay interface.
5736 * keyboard.c (detect_input_pending_run_timers): Likewise.
5737
5738 * dispextern.h (produce_*glyphs_hook): Removed.
5739 * term.c (produce_*glyphs): Ditto.
5740 (cursor_to): Remove pixel position parameters.
5741
5742 * dispnew.c: Remove hooks for window-based redisplay, introduce
5743 a redisplay interface structure.
5744
5745 * xterm.c (x_per_char_metric): Return default char metrics if per
5746 char metric exists but contains a zero width. Adobe Courier seems
5747 to contain such characters.
5748
5749 * xdisp.c (compute_line_metrics): Compute the width of rows
5750 without stopping at glyphs with zero width.
5751
5752 1998-08-01 Gerd Moellmann <gerd@gnu.org>
5753
5754 * xdisp.c (display_mode_line): If nothing was displayed at all,
5755 display a space.
5756 (hscroll_window_tree): Don't subtract 1 from target point if equal
5757 to ZV and window is not the selected window.
5758
5759 * dispnew.c (check_matrix_invariants): Remove check for window
5760 start at BEGV or after newline. This happens in rare cases
5761 intentionally.
5762
5763 1998-07-31 Gerd Moellmann <gerd@gnu.org>
5764
5765 * xfaces.c (x_charset_registry): Use STRING_BYTES.
5766 (syms_of_xfaces): Add Vface_default_registry.
5767 (x_charset_registry): Use it.
5768
5769 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
5770 (redisplay_window): Use it.
5771
5772 * dispnew.c (update_text_area): Handle lbearing of deleted text
5773 by backing up one character.
5774
5775 1998-07-30 Gerd Moellmann <gerd@gnu.org>
5776
5777 * dispnew.c (adjust_glyph_matrix): Use a different check to
5778 decide to do nothing.
5779
5780 * xfaces.c (face_at_string_position): Additional parameter
5781 mode_line_p. If non-zero, merge with the mode line face
5782 instead of the default face.
5783 * dispextern.h (struct it): Add mode_line_p.
5784 * xdisp.c (init_iterator): Set it.
5785 (compute_face_in_string): Use it.
5786 (face_before_or_after_it_pos): Handle strings.
5787 (get_next_display_element): Don't look for relief end in C strings.
5788 (next_element_from_string): Deliver string position instead of
5789 buffer position.
5790
5791 * xterm.c (x_flush): Flush X output buffer.
5792 (XTflash): Use it.
5793
5794 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
5795 Allow strings as face names.
5796
5797 * xfns.c (forall_images_in_image_cache): Check that frame is
5798 alive.
5799
5800 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
5801 it's also called from x_destroy_window. Since this function is
5802 called from X, freeing stuff allocated with xmalloc is dangerous
5803 here, anyway.
5804
5805 * xfaces.c (free_realized_faces): Don't clear current matrices
5806 of a frame being destroyed.
5807
5808 * frame.c (make_frame): Call set_window_buffer instead of
5809 Fset_window_buffer.
5810
5811 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
5812 with an additional argument specifying whether or not hooks may
5813 be called.
5814 (Fset_window_buffer): Call it.
5815
5816 * dispnew.c (clear_desired_matrices): Check that frame has
5817 a valid root window before clearing matrices in the window tree.
5818 (clear_current_matrices): Ditto.
5819 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
5820 vchild are valid windows if not nil.
5821
5822 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
5823 for :inverse-video.
5824 (Finternal_set_lisp_face_attribute): Ditto.
5825 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
5826 (Finternal_get_lisp_face_attribute): Ditto.
5827 (Finternal_lisp_face_attribute_values): Ditto.
5828 (syms_of_xfaces): Define the symbol `:reverse-video'.
5829
5830 * xdisp.c (get_glyph_property): Renamed from
5831 fill_iterator_from_glyph_property.
5832 (next_element_from_buffer): Handle case that no `glyph' property
5833 was found correctly.
5834 (display_line): Extend face to end of line only if we have faces.
5835
5836 1998-07-29 Gerd Moellmann <gerd@gnu.org>
5837
5838 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
5839 additional window argument.
5840
5841 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
5842 set_iterator_to_previous_visible_line_start.
5843 (reseat_at_next_visible_line_start): Likewise.
5844 (compute_stop_pos): Renamed from set_iterator_stop_pos.
5845 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
5846 (compute_face_in_buffer): Renamed from
5847 compute_face_at_iterator_position.
5848 (compute_face_in_string): Renamed from
5849 compute_face_at_iterator_string_position.
5850 (get_space_width): Renamed from get_iterator_space_width.
5851 (next_overlay_string): Renamed from
5852 set_iterator_to_next_overlay_string.
5853 (get_overlay_strings): Renamed from
5854 get_overlay_strings_at_iterator_position.
5855 (restore_overlay_strings): Renamed from
5856 setup_overlay_strings_from_glyph_pos.
5857 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
5858 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
5859 (init_to_row_start): Renamed from init_iterator_to_row_start.
5860 (init_to_row_end): Formerly init_iterator_to_next_row_start.
5861
5862 * xterm.c: Merge with 20.2.97.
5863 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
5864
5865 * dispextern.h (struct glyph): Replace text_pos position with
5866 simple charpos.
5867
5868 * xdisp.c (this_line_start_pos): Use struct text_pos.
5869 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
5870 (enum move_it_result): Renamed from move_iterator_result.
5871 (string_pos_nchars_ahead): Compute text_pos in a string from a
5872 known text_pos plus a character delta.
5873 (string_pos): Compute text_pos in string from charpos.
5874 (c_string_pos): Likewise for a C string.
5875 (number_of_chars): Return number of characters in a possibly
5876 multi-byte C string.
5877 (check_it): Renamed from check_iterator. Check that charpos and
5878 bytepos are in sync.
5879 (push_it): Renamed from save_iterator_settings.
5880 (pop_it): Renamed from restore_iterator_settings.
5881 (move_it_.*): Renamed from move_iterator_.*.
5882 (charset_at_position): Take charpos/bytepos into account.
5883 (back_to_previous_line_start): Set iterator to previous line start.
5884 (forward_to_next_line_start): Set iterator to next line start.
5885 (back_to_previous_visible_line_start): Renamed from
5886 move_iterator_previous_visible_line_start.
5887 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
5888 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
5889 Handle charpos/bytepos.
5890 (compute_face_at_iterator_position): Handle charpos/bytepos.
5891 (compute_face_at_iterator_string_position): Likewise.
5892 (get_iterator_space_width): Likewise.
5893 (load_overlay_strings): Likewise.
5894 (get_overlay_strings_at_iterator_position): Likewise.
5895 (reseat_iterator): Take a text_pos position argument.
5896 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
5897 bytepos.
5898 (init_iterator): Take additional bytepos parameter.
5899 (reseat_iterator_to_string): Handle charpos/bytepos.
5900 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
5901 (next_element_from_string): Handle charpos/bytepos.
5902 (next_element_from_c_string): Likewise.
5903 (fill_iterator_from_glyph_property): Likewise.
5904 (next_element_from_buffer): Likewise.
5905 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
5906 (move_iterator_in_display_line_to): Handle charpos/bytepos.
5907 (move_it_to): Likewise.
5908 (move_it_vertically_backward): Likewise.
5909 (move_it_vertically): Likewise.
5910 (move_it_by_lines): Likewise.
5911 (hscroll_window_tree): Likewise.
5912 (redisplay_internal): Likewise.
5913 (set_cursor_from_row): Likewise.
5914 (redisplay_window): Likewise.
5915 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
5916 (try_window_reusing_current_matrix): Handle charpos/bytepos.
5917 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
5918 (try_window_id): Handle charpos/bytepos.
5919 (Ftrace_redisplay_toggle): Return Qnil.
5920 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
5921 (insert_left_trunc_glyphs): Likewise.
5922
5923 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
5924 do a real merge).
5925 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
5926 (increment_glyph_row_buffer_positions): Ditto.
5927 (copy_glyph_row_contents): Ditto.
5928 (check_matrix_invariants): Add additional checks for charpos/
5929 bytepos consistency.
5930 (direct_output_for_insert): Changed for charpos/bytepos.
5931 (buffer_posn_from_coords): Likewise. Put code dealing with
5932 `direction-reversed' in #if 0.
5933
5934 * xterm.h: Merge with 20.2.97.
5935
5936 * frame.h: Merge with 20.2.97.
5937
5938 * window.h: Merge with 20.2.97. Add window_end_bytepos.
5939
5940 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
5941 start.
5942 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
5943 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
5944 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
5945 (struct it): Various members renamed from .*pos to .*charpos.
5946 (IT_CHARPOS): Access current buffer character position of an
5947 iterator.
5948 (IT_BYTEPOS): Access current buffer byte position of an iterator.
5949 (IT_STRING_CHARPOS): Access current string character position of
5950 an iterator.
5951 (IT_STRING_BYTEPOS): Access current string byte position of
5952 an iterator.
5953 (globally): Add function prototypes from 20.2.97.
5954
5955 * everywhere: Use P_ instead of PROTO for function prototypes
5956 because everyone else seems to use P_.
5957
5958 * dispextern.h (struct text_pos): Structure describing a charpos/
5959 bytepos position in text.
5960 (BYTEPOS): Access the byte position part of a text_pos.
5961 (CHARPOS): Likewise for the character position.
5962 (SET_TEXT_POS): Set a text_pos from a character and byte position.
5963 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
5964 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
5965 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
5966 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
5967 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
5968 for buffer and string positions.
5969 (struct glyph): Use text_pos.
5970 (struct it): Renamed from display_iterator. Use text_pos.
5971
5972 1998-07-23 Gerd Moellmann <gerd@gnu.org>
5973
5974 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
5975 pixmap.
5976
5977 1998-07-21 Gerd Moellmann <gerd@gnu.org>
5978
5979 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
5980 * xterm.c (x_draw_row_bitmaps): Use it.
5981 * dispnew.c (row_equal_p): Ditto.
5982 (update_window_line): Ditto.
5983
5984 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
5985 flag of images.
5986
5987 * dispextern.h (struct image): Removed member loading_failed_p.
5988 It's probably better to have the chance to try to load an image
5989 again.
5990
5991 1998-07-20 Gerd Moellmann <gerd@gnu.org>
5992
5993 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
5994 at ZV if `indicate-zv-lines' is non-nil.
5995 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
5996
5997 * dispnew.c (row_equal_p): Compare displays_text_p and
5998 ends_at_zv_p flags of rows.
5999 (update_window_line): Ditto.
6000
6001 * buffer.h (struct buffer): New member indicate_zv_lines.
6002
6003 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
6004 (init_buffer_once): New variable `default-indicate-zv-lines'.
6005 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
6006
6007 * xdisp.c (redisplay_window): Don't try moving the cursor
6008 if current glyph row w->last_cursor.vpos isn't enabled.
6009
6010 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
6011
6012 * window.c (Fset_window_vscroll): Allow only negative scroll
6013 values. Others don't seem to make sense, and this way it's easy
6014 to restore a vscroll of zero.
6015
6016 * xterm.c (x_inverted_image_mask): Check that pixmap could be
6017 allocated.
6018 (x_draw_image_glyph_string_background): Don't clip if pixmap
6019 could not be created.
6020
6021 * xfns.c (xbm_load_image_from_file): Check that pixmap could
6022 be created.
6023 (xbm_load): Ditto.
6024 (gs_load): Ditto.
6025
6026 * xterm.c (x_get_glyph_overhangs): Take image and stretch
6027 glyphs into account.
6028
6029 * xfaces.c (realize_default_face): Don't set font family of
6030 the default face from the fontset alias name for `fontset-startup'.
6031
6032 * xfns.c (gs_load): Pass frame's pixel foreground and background
6033 color to the Lisp loader.
6034
6035 1998-07-19 Gerd Moellmann <gerd@gnu.org>
6036
6037 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
6038 libtiff34.
6039
6040 * configure.in (--with-tiff, HAVE_TIFF): Added.
6041
6042 * config.in (HAVE_TIFF): Added.
6043
6044 * Makefile.in (LIBTIFF): Added.
6045
6046 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
6047
6048 * Makefile.in (LIBJPEG): Added.
6049
6050 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
6051 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
6052 jpeglib.h.
6053
6054 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
6055 where the library is installed in /usr/local/lib, e.g. FreeBSD,
6056 configure must be run with `--x-includes=/usr/X11R6/include:
6057 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
6058
6059 1998-07-18 Gerd Moellmann <gerd@gnu.org>
6060
6061 * config.in (HAVE_JPEG): Added.
6062
6063 * xfns.c (ct_init): Initialize color table used to map RGB colors
6064 from images to X pixel colors.
6065 (ct_free): Free color table.
6066 (ct_lookup): Look an RGB color up.
6067 (ct_allocated_colors): Get vector of allocated colors.
6068 (pbm_image_p): Test if image specification is a valid PPM
6069 image specification.
6070 (pbm_scan_number): Scan a decimal ASCII number from a file.
6071 (pbm_load): Load a PPM image.
6072
6073 * window.c (Fset_window_vscroll): Adjust glyph matrix if
6074 necessary. Take canonical character units as parameter.
6075 (Fwindow_vscroll): Return canonical character units.
6076
6077 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
6078 w->dy to display height for which glyph rows must be allocated.
6079
6080 1998-07-17 Gerd Moellmann <gerd@gnu.org>
6081
6082 * xfaces.c (face_at_string_position): Merge in region face
6083 so that it won't overwrite the font in the region.
6084 (face_at_buffer_position): Ditto.
6085 (realize_basic_faces): Don't realize region face.
6086
6087 * dispextern.h (enum face_id): REGION_FACE_ID removed.
6088
6089 * xterm.c (x_set_glyph_string_background_width): Don't let
6090 cursor face extend to end of line.
6091
6092 * xdisp.c (append_space): If adding space of default face,
6093 make sure glyph ist produced with right face.
6094
6095 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
6096 background color of a glyph string.
6097 (x_draw_glyph_string_background): Call it.
6098 (x_draw_glyph_string_bg_rect): Ditto.
6099 (x_draw_stretch_glyph_string): Ditto.
6100
6101 1998-07-15 Gerd Moellmann <gerd@gnu.org>
6102
6103 * xdisp.c (init_iterator): Initialize it->current_y to the
6104 window's vscroll w->dy.
6105
6106 * window.c (Fwindow_vscroll): Return number of pixels window
6107 is vscrolled smoothly.
6108 (Fset_window_vscroll): Set the number.
6109
6110 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
6111 to_pos in truncated part of a line.
6112
6113 1998-07-14 Gerd Moellmann <gerd@gnu.org>
6114
6115 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
6116 doesn't fit on the line, truncate it, despite truncate_lines nil.
6117 (display_line): Ditto.
6118
6119 * xfns.c: Experimental support for Ghostscript images.
6120
6121 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
6122 (XTread_socket): React on events from Ghostscript.
6123 (expose_frame): If width or height are zero, redraw entire frame.
6124 (XTread_socket): Call expose_frame after receiving event from
6125 Ghostscript.
6126
6127 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
6128 for Ghostscript support.
6129
6130 * xdisp.c (redisplay_internal): Return quickly if called
6131 recursively.
6132
6133 * alloc.c (NSTATICS): Increased to 1024.
6134
6135 1998-07-08 Gerd Moellmann <gerd@gnu.org>
6136
6137 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
6138 iterator's glyph row.
6139 (x_produce_stretch_glyph): Call it.
6140 (x_produce_glyphs): Handle `space-width' property; call
6141 x_append_stretch_glyph.
6142
6143 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
6144 property.
6145 (get_iterator_space_width): Determine value of `space-width'
6146 property at iterator's position.
6147 (reseat_iterator): Call it.
6148 (next_element_from_string): Ditto.
6149 (next_element_from_buffer): Ditto.
6150 (init_iterator): Initialize space_width of iterator.
6151 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
6152 moved, but cursor blinks.
6153 (redisplay_internal): Set w->last_cursor_off_p after update.
6154
6155 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
6156 (struct display_iterator): Add new member space_width.
6157
6158 * window.h (struct window): Add last_cursor_off_p.
6159
6160 1998-07-07 Gerd Moellmann <gerd@gnu.org>
6161
6162 * Saved.
6163
6164 * window.c (Fpos_visible_in_window_p): Case window not up to
6165 date---return nil if iterator hasn't reached position.
6166
6167 1998-07-06 Gerd Moellmann <gerd@gnu.org>
6168
6169 * xdisp.c (text_outside_line_unchanged_p): Fix case that
6170 overlays have changed.
6171 (redisplay_window): Case cursor movement. Don't try it if
6172 last_cursor.vpos is out of range.
6173
6174 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
6175 way, the display optimization for the line containing the cursor
6176 is used more frequently, esp. when we have a blinking cursor.
6177 (display_line): Don't set this_line_.* variables.
6178
6179 * xterm.c (x_redraw_cursor): Removed.
6180 (x_display_and_set_cursor): Set cursor type depending on
6181 cursor_off_p flag of window.
6182
6183 * dispnew.c (redraw_cursor_hook): Removed.
6184 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
6185 member of the selected window.
6186
6187 * xfaces.c (Fface_font): Added for compatibility with 20.2.
6188
6189 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
6190 Return glyph area under x/y.
6191 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
6192
6193 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
6194 after redisplaying.
6195
6196 1998-07-05 Gerd Moellmann <gerd@gnu.org>
6197
6198 * xdisp.c (text_outside_line_unchanged_p): Test if changes
6199 are all outside of a line of text.
6200 (redisplay_internal): Use it.
6201
6202 1998-06-30 Gerd Moellmann <gerd@gnu.org>
6203
6204 * xdisp.c (next_element_from_buffer): After skipping over
6205 invisible text, look for the `glyph' property.
6206 (set_iterator_stop_pos): Ignore check positions in front
6207 of an iterator's current position.
6208
6209 * xterm.c (show_mouse_face): Don't act on rows that don't exist
6210 anymore or which are marked as not having valid contents.
6211
6212 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
6213 realized faces if new attribute value is equal to old value.
6214
6215 1998-06-29 Gerd Moellmann <gerd@gnu.org>
6216
6217 * xfaces.c (Finternal_make_lisp_face): Increment
6218 lface_id_to_name_size when lface_id_to_name is reallocated.
6219
6220 1998-06-27 Gerd Moellmann <gerd@gnu.org>
6221
6222 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
6223 as minimum of endpos and overlay_pos.
6224 (load_overlay_strings): Set next_overlay_pos of iterator to
6225 -1 if we don't have to check for more overlay strings.
6226
6227 1998-05-09 Gerd Moellmann <gerd@gnu.org>
6228
6229 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
6230 do anything if iterator is at ZV because scan_buffer doesn't
6231 work otherwise.
6232
6233 * xterm.c (x_encode_char): Inline it.
6234 (x_get_char_font_and_encoding): Simplified.
6235 (x_per_char_metric): Inline it.
6236
6237 * xterm.c (x_draw_glyph_string_relief): Use clipping.
6238
6239 * xdisp.c (get_next_display_element): Check for end of relief
6240 face moved here from next_element_from_buffer.
6241
6242 * xterm.c (x_produce_image_glyph): Add relief thickness.
6243 (x_produce_stretch_glyph): Ditto.
6244
6245 1998-05-08 Gerd Moellmann <gerd@gnu.org>
6246
6247 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
6248 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
6249
6250 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
6251 from a glyph property.
6252 (x_produce_glyphs): Use it.
6253
6254 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
6255
6256 * xterm.c (x_produce_image_glyph): Add to current_x only if
6257 in text area.
6258 (x_produce_glyphs): Ditto.
6259
6260 * xdisp.c (display_line): Compute row height from glyphs in
6261 marginal areas.
6262
6263 * xterm.c (x_draw_image_glyph_string_background): Draw
6264 background of an image glyph string.
6265 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
6266 the background of a glyph string.
6267 (x_draw_image_glyph_string_foreground): Draw the foreground of
6268 an image glyph string.
6269 (x_inverted_image_mask): Return the inverted mask of an image.
6270
6271 * xfns.c (x_draw_image): Removed.
6272
6273 * dispextern.h (struct image_type): Remove drawing function.
6274
6275 * xfaces.c (load_face_colors): Swap colors if face is inverse.
6276
6277 * xdisp.c (get_next_display_element): In marginal areas, translate
6278 newlines, tabs, etc. like normal control characters.
6279
6280 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
6281 and color.
6282 (free_realized_faces): Set frame garbaged.
6283
6284 * xfaces.c (syms_of_xfaces): Add defsubr for
6285 internal-lisp-face-attribute-values.
6286
6287 1998-05-07 Gerd Moellmann <gerd@gnu.org>
6288
6289 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
6290 full.
6291 (x_produce_image_glyph): Set IT->nglyphs to 1.
6292 (x_draw_image_glyph_string): Use inverted mask to draw background.
6293
6294 * dispextern.h (struct image_type): Additional clipping rect
6295 parameters for drawing functions.
6296
6297 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
6298 a glyph string.
6299 (x_draw_image_glyph_string): Use it and pass the rect to the
6300 image drawing function.
6301
6302 * xdisp.c (fill_iterator_from_glyph_property): Use position of
6303 first character with `glyph' property as image position. Set
6304 iterator back to that position as long as the image hasn't been
6305 consumed with set_iterator_to_next.
6306 (set_cursor_from_row): Accept when glyph with given position is
6307 not found in the row. Set cursor x to end of line in that case,
6308 so that we can hscroll.
6309 (redisplay_internal): Correct computation of delta by which
6310 positions have changed in redisplay optimization for cursor
6311 row of selected window.
6312
6313 * xdisp.c (display_line): Remove start_pos.
6314 (display_line): Fix bug preventing display optimization for
6315 cursor line of selected window.
6316 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
6317 instead.
6318
6319 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
6320 (update_text_area): Take glyph pixel width into account
6321 when trying to find a resync point.
6322 (row_equal_p): Compare glyphs in all areas.
6323
6324 1998-05-06 Gerd Moellmann <gerd@gnu.org>
6325
6326 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
6327
6328 * dispextern.h (struct glyph_row): Use unsigned hash value.
6329
6330 * xdisp.c (display_line): Simplified and made faster by setting
6331 the cursor with set_cursor_from_row.
6332 (set_cursor_from_row): Handle rows of desired matrix.
6333
6334 1998-05-05 Gerd Moellmann <gerd@gnu.org>
6335
6336 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
6337 with type != CHAR_GLYPH.
6338 (fill_iterator_from_glyph_property): Return void. Set
6339 method to next_element_from_image.
6340 (next_element_from_image): Dummy function for delivering a
6341 single image id.
6342 (set_iterator_to_next): Add method next_element_from_image.
6343 (redisplay_window): When recentering, and cursor vpos is -1
6344 after display, assume middle of window is in first line displayed
6345 in window, and display again.
6346 (fill_iterator_from_glyph_property): Assign image glyph
6347 the position of the first character having the glyph property.
6348
6349 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
6350 * xfns.c (x_draw_image): Use it.
6351 * xterm.c (x_produce_image_glyph): Use it.
6352
6353 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
6354
6355 * Makefile.in: Extraneous #define of LIBXPM removed.
6356
6357 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
6358 (x_fill_stretch_glyph_string): Fill a glyph string from a
6359 stretch glyph.
6360 (x_compute_glyph_string_overhangs): Compute overhangs only
6361 for text glyph strings.
6362 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
6363 (x_draw_glyph_string): Call it.
6364
6365 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
6366 (struct glyph): Add sub-structure for stretchable glyphs.
6367 (GLYPH_EQUAL_P): Compare glyph type and u.val.
6368
6369 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
6370 #ifdef HAVE_FACES.
6371
6372 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
6373
6374 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
6375 setup_iterator_from_glyph_property. Don't do it for terminal
6376 frames.
6377
6378 * xterm.c (x_produce_image_glyph): Produce glyph for image
6379 that can't be loaded.
6380
6381 * xfns.c (lookup_image): If image can't be loaded, set its
6382 width and height so that we can draw a rectangle.
6383 (x_draw_image): Draw a rectangle for images that don't have
6384 a pixmap.
6385 (make_image): Set hash value.
6386 (image_spec_equal_p): Use image_spec_value.
6387
6388 * xterm.c (expose_frame): Don't try to redraw if basic faces
6389 haven't benn realized yet.
6390 (x_draw_image_glyph_string): Fill background only if image
6391 is not as tall as row.
6392
6393 1998-05-04 Gerd Moellmann <gerd@gnu.org>
6394
6395 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
6396 (LIBX)[HAVE_X11]: Add LIBXPM.
6397
6398 * xfns.c (xpm_image_p): Implementation of image type functions
6399 for XPM.
6400 (xpm_load): Ditto.
6401
6402 * dispextern.h (struct image): Add mask pixmap for XPM.
6403
6404 * xfns.c (x_draw_image): Handle images with masks.
6405
6406 * configure.in: --with-xpm added. Code detecting -lXpm added.
6407
6408 * config.in: Add HAVE_XPM.
6409
6410 * xfns.c (xbm_draw): Removed.
6411 (x_draw_image): Default implementation for drawing images.
6412 (xbm_keyword_index): Remove XBM_DEPTH.
6413 (xbm_format): Remove `:depth'.
6414 (xbm_image_spec_from_file): Removed to reduce consing.
6415 (xbm_load_image_from_file): Added for the same reason.
6416
6417 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
6418 glyph string.
6419 (x_draw_image_glyph_string): Pass ybase to image draw function.
6420
6421 * xfns.c (make_image): Set default baseline.
6422
6423 * xterm.c (x_produce_image_glyph): Compute ascent of image
6424 from its height and baseline percentage.
6425
6426 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
6427 (xbm_format): Add description for `:baseline'.
6428 (xbm_image_spec_from_file): Add keywords from original spec to
6429 result.
6430 (xbm_load): Set baseline of image.
6431 (xbm_image_p): Check range for baseline.
6432
6433 * dispextern.h (struct image): Add member baseline.
6434
6435 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
6436
6437 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
6438
6439 * xdisp.c (get_next_display_element): Do character translations
6440 only if delivering characters.
6441
6442 1998-05-03 Gerd Moellmann <gerd@gnu.org>
6443
6444 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
6445 DISP_CHARACTER.
6446
6447 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
6448 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
6449
6450 1998-05-02 Gerd Moellmann <gerd@gnu.org>
6451
6452 * xfns.c (prepare_image_for_display): Set image timestamp.
6453 (clear_image_cache): Clear images if image's timestamp +
6454 Vimage_eviction_seconds is > now.
6455 (syms_of_xfns): New variables image-eviction-seconds, and
6456 image-types.
6457 (add_image_format): Add to image-types.
6458 (xbm_load): Support new image spec format.
6459 (x_alloc_image_color): Allocate a color for an image.
6460
6461 * dispextern.h (struct image): Add timestamp.
6462
6463 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
6464 vectors of bool-vectors.
6465 (xbm_lisp_object_from_file): Build new format image spec.
6466
6467 1998-05-01 Gerd Moellmann <gerd@gnu.org>
6468
6469 * xfaces.c (init_frame_faces): Initialize image cache.
6470 (free_frame_faces): Free it.
6471
6472 * xterm.c (x_delete_display): Don't free image cache.
6473
6474 * emacs.c (main): Call init_xfns.
6475
6476 1998-04-30 Gerd Moellmann <gerd@gnu.org>
6477
6478 * alloc.c (mark_object): Mark objects in image cache.
6479
6480 * xfns.c (x_set_internal_border_width): Correct call to
6481 widget_store_internal_border_width.
6482
6483 * widget.c (widget_store_internal_border): Return void.
6484
6485 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
6486 void.
6487 (init_x_parm_symbols): Return void.
6488 (x_report_frame_params): Ditto.
6489 (x_set_border_pixel): Ditto.
6490 (syms_of_xfns): Ditto.
6491 (x_destroy_all_bitmaps): Use xfree instead of free.
6492
6493 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
6494
6495 * xterm.c (x_term_init): Initialize image_cache of display info.
6496 (x_delete_display): Free image cache.
6497
6498 * xterm.h (struct x_display_info): Add image_cache.
6499
6500 * xfns.c (make_image_cache): Allocate a new image cache.
6501 (free_image_cache): Free an image cache.
6502 (make_image): Allocate an image.
6503 (free_image): Free an image.
6504
6505 * dispextern.h (struct image): Structure describing an image.
6506 (struct image_cache): Structure describing an image cache.
6507
6508 1998-04-29 Gerd Moellmann <gerd@gnu.org>
6509
6510 * xdisp.c (check_iterator_glyph_property): Return int. Value is
6511 non-zero if iterator is filled with something to return.
6512 (next_element_from_buffer): Immediately return if
6513 setup_iterator_from_glyph_prop has filled iterator with pixmap.
6514 (next_element_from_string): Likewise.
6515
6516 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
6517
6518 * dispextern.h (struct glyph): Add pixmap_id.
6519 (display_element_type): Add DISP_PIXMAP.
6520
6521 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
6522 malloc/free.
6523
6524 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
6525 (clear_face_cache): Call it.
6526
6527 * xterm.c (x_query_font): Don't look at empty font table slots.
6528 (x_compute_min_glyph_bounds): Likewise.
6529 (x_term_init): Initialize font_table to null.
6530 (x_load_font): Change allocation of font_info structures so
6531 that it is possible to free fonts.
6532
6533 * xfns.c (Fx_close_connection): Use xfree instead of free.
6534 Only free fonts from filled font table entries.
6535
6536 * xfaces.c (best_matching_font): Support use of scalable fonts.
6537 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
6538
6539 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
6540 and resy.
6541 * xterm.c (x_term_init): Compute resx and resy.
6542
6543 * xfaces.c (split_font_name): Don't reject scalable fonts.
6544
6545 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
6546 in #if 0.
6547
6548 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
6549 point size cannot be determined.
6550
6551 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
6552 width over all fonts on a frame.
6553 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
6554 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
6555 macros.
6556
6557 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
6558 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
6559 (x_load_font): Use x_compute_min_char_bounds.
6560
6561 * xterm.h (struct x_display_info): New members smallest_char_width
6562 and smallest_font_height.
6563
6564 1998-04-28 Gerd Moellmann <gerd@gnu.org>
6565
6566 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
6567 the same name if GC of face is zero.
6568
6569 * dispextern.h (struct face): Member non_ascii_gc removed.
6570
6571 * xterm.c (x_get_char_font_and_encoding): Return face's font
6572 for characters < 0177 in default face. Prepare face for
6573 display before returning it.
6574 (x_produce_glyphs): Use it->charset.
6575 (x_get_char_font_and_encoding): Simplified.
6576 (x_encode_char): Remove parameter `font'.
6577
6578 * xfaces.c (choose_face_font): If registry from charset symbol
6579 doesn't contain a `-', make it a pattern by appending "*-*".
6580
6581 * xdisp.c (check_iterator_glyph_property): Adjust limit for
6582 glyph_check_pos computation to character boundary.
6583
6584 1998-04-27 Gerd Moellmann <gerd@gnu.org>
6585
6586 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
6587
6588 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
6589 ASCII face for a given Lisp face id.
6590
6591 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
6592 account.
6593 (reseat_iterator): Set glyph_check_pos. Handle case where
6594 new position is < original position.
6595 (check_iterator_glyph_property): Handle glyph property in strings.
6596 (next_element_from_string): Call above function.
6597 (next_element_from_display_vector): Handle faces in glyphs.
6598 (get_next_display_element): Set face_id of glyphs for
6599 control chars to zero.
6600
6601 * Makefile.in (term.o): Add dependency on dispextern.h.
6602
6603 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
6604 (display_line): Handle marginal areas.
6605 (move_iterator_in_display_line_to): Likewise.
6606
6607 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
6608
6609 * xfaces.c (face_at_buffer_position): Don't merge with nil
6610 text property.
6611 (face_at_string_position): Ditto.
6612
6613 * dispextern.h (struct display_iterator): Use a stack of saved
6614 values instead of saving check positions etc. individually.
6615
6616 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
6617 maybe pop the iterator's stack.
6618 (save_iterator_settings): Push a value on iterator's stack.
6619 (get_overlay_strings_at_iterator_position): Use it.
6620 (restore_iterator_settings): Pop the stack.
6621 (set_iterator_to_next_overlay_string): Use it.
6622
6623 * xfaces.c (try_font_list): Use alternative font families.
6624
6625 1998-04-26 Gerd Moellmann <gerd@gnu.org>
6626
6627 * xfaces.c (Fset_face_font_sort_order): Set the order in which
6628 font selection matches fonts.
6629 (Fface_font_sort_order): Return the font sort order.
6630 (best_matching_font): Find best matching font based on sort order.
6631 (cmp_font_names): Sort by given sort order.
6632
6633 * dispextern.h (struct display_iterator): New member faces_p.
6634 * xdisp.c (init_iterator): Initialize it->faces_p.
6635 (compute_face_at_iterator_string_position): Use it.
6636 (compute_face_at_iterator_position): Use it.
6637 (init_iterator): Use it.
6638 (display_mode_line): Ditto.
6639
6640 * xdisp.c (get_next_display_element): Put code choosing a face
6641 when the charset changes in #ifdef HAVE_FACES.
6642
6643 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
6644 lookup_face_for_charset.
6645
6646 * xfaces.c (free_font_names): Renamed from free_split_font_names.
6647 (free_all_realized_faces): Renamed from remove_all_realized_faces.
6648
6649 1998-04-25 Gerd Moellmann <gerd@gnu.org>
6650
6651 * xfaces.c (best_matching_font): Return the name of the best
6652 matching font in an array of font_name structures.
6653 (choose_face_font): Use it.
6654 (choose_face_fontset_font): Use it.
6655 (find_best_weight_font): If final font found has same weight as
6656 the font we started with, return the original font because it is a
6657 better match for the resolution of the display.
6658 (find_best_slant_font): Likewise.
6659 (merge_face_vector_with_property): Check more invalid attribute
6660 values.
6661 (lface_suitable_for_charset_p): Replaced by a macro with the same
6662 name in upper-case.
6663
6664 1998-04-24 Gerd Moellmann <gerd@gnu.org>
6665
6666 * dispextern.h (struct face): Member
6667 fontset_chosen_for_realization_p removed.
6668
6669 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
6670 end of the collision list, so that we find more specific faces
6671 first.
6672 (lookup_face_for_charset): Look up a new face if face->fontset >=
6673 0, and charset != CHARSET_COMPOSITION.
6674
6675 * xfaces.c (split_font_name): Return zero if point size of font
6676 couldn't be computed.
6677 (realize_default_face): Use ASCII font of a fontset to determine
6678 font-related attributes of the default face.
6679 (face_fontset): Return fontset id for face family.
6680 (font_list): Additional parameter font_pattern. If non-nil,
6681 return fonts matching that pattern.
6682
6683 1998-04-23 Gerd Moellmann <gerd@gnu.org>
6684
6685 * xfaces.c (choose_face_fontset): If new fontset cannot be
6686 constructed, or fontset name cannot be split, return the id of the
6687 standard fontset.
6688
6689 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
6690 When Emacs starts, it may be called for the initial frame which
6691 isn't an X frame.
6692
6693 * dispextern.h (struct face): New members foreground_defaulted_p,
6694 background_defaulted_p.
6695 (struct face): Members `mask' and `cache' removed.
6696
6697 * xfaces.c (load_color): Set them.
6698 (free_face_colors): Check them.
6699 (xlfd_point_size): Return -1 if resolution or point size of
6700 font unknown.
6701
6702 * xfaces.c (free_font): Removed.
6703 (load_face_font_or_fontset): Renamed from load_font.
6704 (load_face_font_or_fontset): Use message2 instead of signalling.
6705 (load_color): Likewise.
6706 (load_pixmap): Likewise.
6707
6708 * xterm.h (struct x_display_info): Add screen_dpi.
6709 * xterm.c (x_term_init): Initialize it.
6710 * xfaces.c (xlfd_point_size): Use it.
6711 (split_font_name): Compute numeric XLFD_RESY.
6712 (cmp_font_names): Make fonts with an y-resolution more
6713 similar to that of the frame appear first in the result.
6714
6715 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
6716 is set for the face to cache, add it to the end of the collision
6717 list.
6718 (try_font_list): If fonts for given family and registry cannot
6719 be found, first try to keep the registry, and choose a different
6720 family.
6721 (choose_face_font): Allow nfonts == 0.
6722 (try_font_list): Give up if no font matches given registry.
6723
6724 1998-04-22 Gerd Moellmann <gerd@gnu.org>
6725
6726 * xterm.c (x_get_char_font_and_encoding): Get font_info from
6727 font info id of the face.
6728
6729 * xfaces.c (load_font): Set font_info_id.
6730 (realize_face): Ditto.
6731
6732 * dispextern.h (struct face): Change member font_info to
6733 font_info_id.
6734
6735 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
6736 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
6737
6738 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
6739 isn't ASCII, get the ASCII face before adding a space.
6740 (append_space): Likewise.
6741 (insert_left_trunc_glyphs): Initialize truncate_it's charset
6742 to -1 so that it will compute the right face for the truncation
6743 glyphs.
6744
6745 * xfaces.c (realize_face): Set
6746 face->fontset_chosen_for_realization_p.
6747 (lookup_face_for_charset): If fontset wasn't specified originally
6748 and new charset != CHARSET_COMPOSITION, get a new face for that
6749 charset.
6750
6751 * dispextern.h (struct face): New member
6752 fontset_chosen_for_realization_p_specified_p. Set to 1 when
6753 realize_face has chosen a fontset to display composite characters
6754 for a Lisp face not specifying a fontset.
6755
6756 * xdisp.c (extend_face_to_end_of_line): Move tests for default
6757 face and line already filled here. Don't do anything if current
6758 face hasn't a relief or has a background equal to the frame
6759 background.
6760
6761 * xfaces.c (split_font_name): Additional parameter numeric_p.
6762 Don't compute numeric values if it is non-zero.
6763 (choose_face_fontset): Call split_font_name with numeric_p == 0.
6764 (choose_face_fontset): Print a message if fontset contains a
6765 font whose name cannot be split into fields.
6766
6767 1998-04-21 Gerd Moellmann <gerd@gnu.org>
6768
6769 * xfaces.c (try_font_list): Try to load a list of fonts,
6770 possibly using less restrictive patterns.
6771 (choose_face_font): Use it.
6772
6773 * xterm.c (x_get_char_font_and_encoding): For charset !=
6774 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
6775
6776 * dispextern.h (struct face): New member font_info.
6777
6778 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
6779 specifying a fontset as well as those not having a fontset.
6780 (free_font): Make it empty.
6781 (realize_face): Use changed load_font.
6782
6783 * xterm.c (x_get_char_font_and_encoding): If face doesn't
6784 fit for charset, get the right one.
6785
6786 * xfaces.c (load_font): Take frame and name parameter, return
6787 font.
6788 (free_font): Likewise.
6789 (split_font_name): Compute numeric values for height, swidth etc.
6790 (cmp_font_names): Use them.
6791 (find_best_width_font): Ditto.
6792 (find_best_height_font): Ditto.
6793 (find_best_weight_font): Ditto.
6794 (find_best_slant_font): Ditto.
6795 (lface_hash): Add weight, slant, swidth and relief to hash value.
6796 (lface_equal_p): Make it faster.
6797 (lface_from_symbol): Use assq_no_quit.
6798 (Fnote_default_face_changed): Removed.
6799 (cmp_font_names): Use strcmp instead of xstricmp.
6800 (face_charset_registries): Removed.
6801
6802 1998-04-20 Gerd Moellmann <gerd@gnu.org>
6803
6804 * frame.h (CHECK_FRAME): Give this macro a statement form.
6805 (CHECK_LIVE_FRAME): Ditto.
6806
6807 * xfaces.c (find_best_width_font): Find the best matching font
6808 for a given width.
6809 (find_best_height_font): Likewise for height.
6810 (find_best_weight_font): Likewise for weight.
6811 (find_best_slant_font): Likewise for slant.
6812 (choose_face_font): Use them.
6813 (get_lface_attributes): Always return frame-local face attrs.
6814 (Finternal_merge_in_global_face): Merge local face with
6815 global face attributes.
6816
6817 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
6818 Lisp face attributes.
6819
6820 1998-04-19 Gerd Moellmann <gerd@gnu.org>
6821
6822 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
6823 and :italic for compatibility.
6824 (Finternal_set_lisp_face_attribute_from_resource): Handle
6825 :bold and :italic. Handle boolean resource values for
6826 :underline and :italic.
6827
6828 * xfns.c (display_x_get_resource): Make it externally visible.
6829
6830 * xfaces.c (lface_from_symbol): Take a frame as parameter.
6831 If that frame is non-null, return the frame-local face.
6832 (Finternal_make_lisp_face): Additional frame argument.
6833 (lface_attributes): Get face attributes from global and frame-local
6834 definitions.
6835 (Finternal_lisp_face_equal_p): Additional frame argument.
6836 (merge_lisp_face_vector_with_property): Ditto.
6837 (Frealize_basic_faces): Removed.
6838 (Finternal_get_lisp_face_attribute): Additional frame argument.
6839 (Finternal_lisp_face_p): Ditto.
6840 (load_color) [MSDOS]: Removed because it isn't clear how
6841 to do this for MS-DOS.
6842
6843 * xfaces.c (lface_from_symbol): Get global face definition
6844 from face-global-alist.
6845
6846 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
6847 as values for :underline and :inverse-video.
6848 (Finternal_set_lisp_face_attribute): Allow nil values.
6849
6850 1998-04-17 Gerd Moellmann <gerd@gnu.org>
6851
6852 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
6853
6854 * xfaces.c (syms_of_xfaces): Add Vall_faces.
6855 (Finternal_make_lisp_face): Add new face to Vall_faces.
6856
6857 * xdisp.c (echo_area_display): Remove code recomputing faces.
6858 (redisplay_internal): Ditto.
6859 (init_iterator): Do it here.
6860
6861 * xfaces.c (choose_face_font): Check that swidth doesn't change
6862 for subusequent attributes.
6863 (xlfd_point_size): Return int.
6864
6865 * xdisp.c (redisplay_internal, echo_area-display): If realized
6866 faces have been cleared, call recompute_basic_faces.
6867
6868 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
6869 face_attributes_changed_p.
6870 (remove_all_realized_faces): Remove all realized faces on
6871 all frames.
6872 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
6873
6874 * xdisp.c (redisplay_internal): If face attributes have been
6875 changed since the last redisplay, recompute basic faces.
6876 (echo_area_display): Ditto.
6877
6878 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
6879
6880 * xfaces.c (min_char_bounds): If face cache not yet present,
6881 don't try to get font dimensions from faces.
6882
6883 * xterm.c (x_frame_mode_line_height): If face cache not present
6884 set, return default height.
6885
6886 * alloc.c (mark_face_cache): Check for null faces. Correct
6887 index bug.
6888
6889 * dispextern.h (struct face): Renamed from struct rface. Member
6890 underline renamed underline_p. Make it a bit-field.
6891
6892 * xfaces.c (init_frame_faces): Allocate face cache.
6893 (free_frame_faces): Free face cache.
6894 (recompute_basic_faces): Realize basic faces only if face cache is
6895 allocated, i.e. after init_frame_faces has been called.
6896
6897 * frame.c (make_frame): Initialze face cache with null.
6898
6899 * xfaces.c (same_size_fonts): Removed.
6900
6901 * xterm.c (x_set_glyph_string_gc): Add post-condition
6902 s->gc != 0.
6903 (x_set_mouse_face_gc): Ditto.
6904 (x_set_mode_line_face_gc): Ditto.
6905
6906 * xfaces.c (realize_default_face): Return int. Value is
6907 zero if frame params don't contain enough information to
6908 realize the default face.
6909 (realize_basic_faces): Ditto.
6910 (init_frame_faces): Realize basic faces.
6911
6912 * xfns.c (x_set_font): First store real font name in frame
6913 parameters, then call recompute_basic_faces.
6914
6915 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
6916
6917 1998-04-16 Gerd Moellmann <gerd@gnu.org>
6918
6919 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
6920
6921 * xfns.c (Fx_face_fixed_p): Removed.
6922 (Fx_list_fonts): Moved to xfaces.c.
6923
6924 * xfaces.c (compute_face_at_buffer_pos): Renamed to
6925 face_at_buffer_position. Parameter charset removed; always
6926 compute face for CHARSET_ASCII.
6927 (face_at_string_position): Renamed from
6928 compute_face_at_string_pos. Parameter charset removed; always
6929 compute for CHARSET_ASCII.
6930 (lookup_face_for_charset): Take frame parameter instead of
6931 face_cache.
6932 (lookup_face): Ditto.
6933 (compute_char_face): Renamed from compute_glyph_face.
6934
6935 * xdisp.c (init_iterator): Initialize charset member.
6936 (reseat_iterator_to_string): Ditto.
6937 (get_charset_at_buffer_position): Determine charset at
6938 buffer position in current_buffer.
6939 (reseat_iterator): Call above function.
6940 (compute_face_at_iterator_position): Call
6941 compute_face_at_buffer_pos.
6942 (compute_face_at_iterator_string_position): Call
6943 compute_face_at_string_pos.
6944 (get_face_from_id): Removed.
6945 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
6946 Call get_charset_at_buffer_position.
6947 (reseat_iterator): Determine face if charset at pos differs
6948 from iterator's charset.
6949 (reseat_iterator_to_glyph_pos): Removed.
6950
6951 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
6952 Determine charset from buffer position.
6953 (compute_string_char_face): Renamed to compute_face_at_string_pos.
6954 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
6955
6956 * dispextern.h (struct display_iterator): Add member charset.
6957
6958 1998-04-15 Gerd Moellmann <gerd@gnu.org>
6959
6960 * xfaces.c (compute_char_face): Removed.
6961
6962 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
6963 with new parameter list.
6964
6965 * xfaces.c (region_face): Removed.
6966 (allocate_face): Removed.
6967 (copy_face): Ditto.
6968 (face_eql): Removed.
6969 (intern_face): Removed.
6970 (clear_face_cache): Removed.
6971 (load_font): Ditto.
6972 (unload_font): Ditto.
6973 (load_color): Ditto.
6974 (unload_color): Ditto.
6975 (new_computed_face): Ditto.
6976 (intern_computed_face): Ditto.
6977 (ensure_face_ready): Ditto.
6978 (merge_faces): Ditto.
6979 (compute_base_face): Ditto.
6980 (merge_face_list): Ditto.
6981 (Fmake_face_internal): Removed.
6982 (Fset_face_attribute_internal): Ditto.
6983 (face_name_id_number): Removed.
6984 (Fframe_face_alist): Ditto.
6985 (Fset_frame_face_alist): Ditto.
6986 (Finternal_next_face_id): Ditto.
6987
6988 * xterm.h (struct x_output): Remove computed_faces, and
6989 param_faces. Remove macros accessing them.
6990
6991 * xfaces.c: Entirely new face implementation added.
6992
6993 1998-04-11 Gerd Moellmann <gerd@gnu.org>
6994
6995 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
6996 `charpos'.
6997
6998 1998-04-10 Gerd Moellmann <gerd@gnu.org>
6999
7000 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
7001 scroll bar window to reduce flickering. Clear entire height.
7002
7003 * xdisp.c (move_iterator_vertically_backward): Set iterator's
7004 current_x and hpos to zero after moving to previous line
7005 start.
7006
7007 1998-04-03 Gerd Moellmann <gerd@gnu.org>
7008
7009 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
7010
7011 * xfaces.c (xlfd_point_size): Compute relative point size of
7012 fonts from font and frame resolution.
7013 (sort_fonts): New function to sort fonts, temporarily setting
7014 font_frame to the frame in effect.
7015 (xlfd_point_size): Take additional frame parameter to be able
7016 to get at the display's resolution.
7017
7018 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
7019 BLACK_PIX_DEFAULT.
7020 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
7021 screen of display.
7022
7023 1998-03-31 Gerd Moellmann <gerd@gnu.org>
7024
7025 * xfaces.c (choose_face_fontset): Instantiate fontsets.
7026
7027 * fontset.h: Add external declarations for Vfontset_alias_alist
7028 and Vglobal_fontset_alist.
7029
7030 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
7031 (realize_default_face): If frame parameters contain an artificial
7032 font name naming a fontset, set the family of the default face to
7033 the fontset name given by the registry.
7034
7035 * Makefile.in (alloc.o): Add dependency to dispextern.h.
7036
7037 1998-03-22 Gerd Moellmann <gerd@gnu.org>
7038
7039 * alloc.c (mark_object): Add function prototype. Add cast to
7040 Lisp_Object pointer in call to mark_object for symbol names
7041 because this otherwise gives a warning from gcc 2.8.1.
7042 (mark_face_cache): Mark Lisp objects in realized faces.
7043
7044 1998-03-19 Gerd Moellmann <gerd@gnu.org>
7045
7046 * frame.h (struct frame): Add member face_cache.
7047
7048 * alloc.c (mark_object): Mark face cache.
7049 (mark_face_cache): Mark Lisp faces in face cache of frame.
7050
7051 * frame.c (make_frame): Initialize face_cache.
7052 (Fdelete_frame): Free it.
7053
7054 1998-03-18 Gerd Moellmann <gerd@gnu.org>
7055
7056 * xfaces.c: Very first skeleton of functions for face realization,
7057 face merging, face cache etc.
7058
7059 * dispextern.h (struct rface): Realized faces. Will replace
7060 struct face when tested.
7061 (struct face_cache): Realized face caches.
7062
7063 * xdisp.c (init_iterator): Initialize area member of display
7064 iterator.
7065
7066 1998-03-17 Gerd Moellmann <gerd@gnu.org>
7067
7068 * xterm.c (x_append_glyph): Use it->area to store glyphs.
7069
7070 * dispextern.h (struct display_iterator): New member area.
7071
7072 * xterm.c (note_overwritten_text_cursor): Note when the text
7073 cursor of a window is overwritten.
7074
7075 * xdisp.c (set_cursor_from_row): If PT is not found in the
7076 row, display the cursor at the start of the row.
7077
7078 * dispnew.c (direct_output_forward_char): Call
7079 set_cursor_from_row.
7080
7081 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
7082 position is not in an overlay string, set iterator's position and
7083 method explicitly so.
7084 (set_cursor_from_row): Correct cursor position calculation.
7085 Make it externally visible.
7086 (redisplay_window): Call set_cursor_from_row so that there is only
7087 one place where the cursor position is calculated from a current
7088 row.
7089
7090 * dispextern.h (struct display_iterator): New member
7091 overlay_strings_at_end_processed_p.
7092
7093 * xdisp.c (check_iterator): Perform sanity checks on
7094 display_iterators.
7095 (next_element_from_buffer): Check for overlay strings at ZV.
7096
7097 1998-03-16 Gerd Moellmann <gerd@gnu.org>
7098
7099 * buffer.c (init_buffer_once): Add left_margin_width and
7100 right_margin_width to buffer_local_flags.
7101
7102 * dispnew.c (margin_glyphs_to_reserve): Function computing
7103 number of glyphs to reserve for a marginal area.
7104 (adjust_glyph_matrix): Call it.
7105 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
7106 is not alive.
7107
7108 * window.c (Fset_window_margins): Allow floats.
7109
7110 * buffer.c (syms_of_buffer): Add buffer-local variables
7111 left-margin-width and right-margin-width. Add defaults
7112 default-left-margin-width and default-right-margin-width.
7113
7114 * buffer.h (struct buffer): New members left_margin_width
7115 and right_margin_width.
7116
7117 * window.c (Fset_window_margins): Make window the last and
7118 optional argument.
7119
7120 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
7121 flag no_marginal_areas_p differently.
7122 (x_clear_end_of_line): Ditto.
7123 (x_draw_glyph_string_relief): Compute width of relief differently
7124 for rows with flag no_marginal_areas_p.
7125
7126 * dispnew.c (update_window_line): Update marginal areas only
7127 for rows that don't have no_marginal_areas_p set.
7128
7129 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
7130 (display_menu_bar): Ditto.
7131
7132 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
7133
7134 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
7135 marginal areas in window-based redisplay.
7136
7137 * dispextern.h (struct glyph_matrix): New members
7138 left_margin_glyphs and right_margin_glyphs.
7139
7140 1998-03-15 Gerd Moellmann <gerd@gnu.org>
7141
7142 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
7143
7144 * charset.c (non_ascii_char_to_string): Use char type parameters
7145 because the function is used that way from outside. Use unsigned
7146 char internally.
7147
7148 * window.c (change_window_height): Return void.
7149 (make_dummy_parent): Return void.
7150 (init_window_once): Return void.
7151 (syms_of_window): Ditto.
7152 (keys_of_window): Ditto.
7153 (delete_window): Correct return with and without value.
7154
7155 * buffer.c (record_buffer): Return void.
7156
7157 * marker.c (unchain_marker): Return void.
7158
7159 * window.c (unshow_buffer): Return void.
7160 (replace_window): Ditto.
7161 (delete_window): Ditto.
7162
7163 * term.c (delete_glyphs_hook): Void return type.
7164 (ring_bell_hook): Ditto.
7165 (set_terminal_window_hook): Ditto.
7166
7167 * sysdep.c (init_sigio): Return void.
7168
7169 * xterm.c (x_set_window_size): Return void.
7170 (x_calc_absolute_position): Ditto.
7171 (x_set_offset): Ditto.
7172 (x_focus_on_frame): Ditto.
7173 (x_unfocus_frame): Ditto.
7174 (x_make_frame_visible): Ditto.
7175 (x_make_frame_invisible): Ditto.
7176 (x_iconify_frame): Ditto.
7177 (x_destroy_window): Ditto.
7178 (x_wm_set_window_state): Ditto.
7179 (x_wm_set_icon_pixmap): Ditto.
7180 (x_wm_set_icon_position): Ditto.
7181 (x_initialize): Ditto.
7182 (x_error_quitter): Ditto.
7183 (x_destroy_window): Use xfree instead of free.
7184
7185 * keyboard.c (clear_waiting_for_input): Return void.
7186
7187 * xterm.c (x_wm_set_size_hint): Return void.
7188 (x_raise_frame): Ditto.
7189 (refreshicon): Ditto.
7190 (x_error_catcher): Ditto.
7191 (x_clear_errors): Ditto.
7192
7193 * keyboard.c (record_asynch_buffer_change): Return void.
7194
7195 * xterm.c (XTroï