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