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