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