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