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