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