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