*** empty log message ***
[bpt/emacs.git] / src / ChangeLog
CommitLineData
aa110c0c
GM
12000-03-31 Gerd Moellmann <gerd@gnu.org>
2
3 * xterm.c (x_produce_glyphs): When displaying unibyte text
4 or ASCII, handle case that per-char metric is NULL.
5
8801a864
KR
62000-03-30 Ken Raeburn <raeburn@gnu.org>
7
c6129d7e
KR
8 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
9
8801a864
KR
10 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
11 XSUBR, XBUFFER): Verify correct object type before returning
12 pointer, using eassert.
13 * frame.h (XFRAME): Likewise.
14
15 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
16 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
17 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
18 type.
19 * data.c (set_internal): Likewise.
20 * dispextern.h (WINDOW_WANTS_MODELINE_P,
21 WINDOW_WANTS_HEADER_LINE_P): Likewise.
22 * fileio.c (auto_save_1): Likewise.
23 * insdel.c (check_markers): Likewise.
24 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
25 * undo.c (record_insert): Likewise.
26 * vmsproc.c (child_sig): Likewise.
27 * window.c (unshow_buffer, window_loop): Likewise.
28 * xterm.c (x_erase_phys_cursor): Likewise.
29
8e7af858
GM
302000-03-30 Gerd Moellmann <gerd@gnu.org>
31
32 * xfns.c (free_image_cache): Free the cache structure itself
33 last, after all its members have been freed.
34
35 * lisp.h (xstrdup): Add prototype.
36
37 * alloc.c (xstrdup): Moved here from xfaces.c.
38 (allocating_for_lisp): Variable removed.
39 (lisp_malloc): Block input around the calls to malloc and
40 mem_insert.
41
42 * xfaces.c (realize_tty_face): Use find_symbol_value instead
43 of Fsymbol_value.
44 (xstrdup): Moved to alloc.c.
45
e0b8c689
KR
462000-03-29 Ken Raeburn <raeburn@gnu.org>
47
b96f9fb7
KR
48 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
49
50 * emacs.c (main): Fix sense of no-loadup test.
51
e0b8c689
KR
52 * config.in (ENABLE_CHECKING): Undef.
53
54 * lisp.h (struct interval): Replace "parent" field with a union of
55 interval pointer and Lisp_Object; add new bitfield to use as
56 discriminant. Change other flag fields to bitfields.
57 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
58 is defined and the supplied test fails, print a message and
59 abort.
60 (eassert): New macro. Use CHECK to provide an assert-like
61 facility.
62
63 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
64 pointers; abort if the value looks like a lisp object.
65 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
66 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
67 Modify for new interval parent definition.
68
69 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
70 UNMARK_BALANCE_INTERVALS): Update references that need an
71 addressable lisp object in the interval structure.
72 (die): New function.
73 (suppress_checking): New variable.
74
75 * intervals.c (interval_start_pos): Just return 0 if there's no
76 parent object.
77
f83c5440
GM
782000-03-29 Gerd Moellmann <gerd@gnu.org>
79
80 * lread.c (read1): Accept `.' (period) as symbol start like in CL
81 and earlier Emacs versions.
82
83 * keyboard.c (Ftop_level): Cancel busy-cursor.
84
85 * eval.c (call_debugger): Cancel busy-cursor.
86
fdce64ff
KH
872000-03-29 Kenichi Handa <handa@etl.go.jp>
88
89 * search.c (Freplace_match): Adjust multibyteness of the current
90 buffer and NEWTEXT. Free allocated memory before signaling an
91 error.
92
f6a3f532
SM
932000-03-28 Stefan Monnier <monnier@cs.yale.edu>
94
95 * regex.c (analyse_first): New function obtained by ripping out most
96 of re_compile_fastmap and generalizing it a little bit so that it
97 can also just return whether a given (sub)pattern can match the empty
98 string or not.
99 (regex_compile): Use `analyse_first' to decide whether the loop-check
100 needs to be done or not for *, +, *? and +? (the loop check is costly
101 for non-greedy repetition).
102 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
103
e9b309ac
DL
1042000-03-28 Dave Love <fx@gnu.org>
105
bb15bd9a
DL
106 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
107 alpha.
108
e9b309ac
DL
109 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
110
ed0767d8
SM
1112000-03-27 Stefan Monnier <monnier@cs.yale.edu>
112
113 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
114 an expression.
115 (enum re_opcode_t): Update description of succeed_n.
116 (PATFETCH): Always define.
117 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
118 operators, char classes, shy-groups and intervals).
119 Optimize special cases of intervals so as to only use succeed_n and
120 jump_n when really needed.
121 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
122 that we don't have to handle the special cases any more.
123 Simplify on_failure_jump handling as well.
124
e11e7e46
JR
1252000-03-28 Jason Rumney <jasonr@gnu.org>
126
127 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
128
88faab89
GM
1292000-03-27 Gerd Moellmann <gerd@gnu.org>
130
182ff242
GM
131 * s/freebsd.h (GC_SETJMP_WORKS): Define.
132
133 * s/msdos.h (GC_SETJMP_WORKS): Define.
134
135 * alloc.c (mark_maybe_object): New function.
136 (mark_memory): Use it.
137 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
138 (setjmp_tested_p, longjmp_done): New variables.
139 (test_setjmp): New function.
140 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
141 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
142
c1005d06
GM
143 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
144 to DEC_TEXT_POS and INC_TEXT_POS.
145
146 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
147 with parameter MULTIBYTE_P.
148
149 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
150 MULTIBYTE_P.
151
7439e5b9 152 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
153 buffers because it looks for multibyte character byte sequences
154 which don't exist in unibyte text.
7439e5b9 155
d9c545da
GM
156 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
157
11fd416e 158 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
159 [DEBUG_X_COLORS]: New functions.
160 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
161
162 * xfns.c (x_set_cursor_color): Get color reference counts right.
163
164 * xterm.c (x_copy_color): New function.
165 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
166
167 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
168 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
169 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
170 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
171 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
172 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
173 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
174 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
175 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
176 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
177
11fd416e
GM
178 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
179 names for handling per-buffer variables.
d9c545da
GM
180
181 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
182 instead of MAX_BUFFER_LOCAL_VARS.
183 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
184
185 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
186
88faab89
GM
187 * xfns.c (x_specified_cursor_type): New function.
188 (x_set_cursor_type): Use it.
189
190 * buffer.h (struct buffer): Add cursor_type.
191
d80f42b7
SM
1922000-03-26 Stefan Monnier <monnier@cs.yale.edu>
193
194 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
88faab89
GM
195 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
196 opcode.
d80f42b7
SM
197 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
198 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
199 executing it as well as when popping it off the stack to find infinite
200 loops in non-greedy repetition operators.
201
89e80928
GM
2022000-03-26 Gerd Moellmann <gerd@gnu.org>
203
3d4ff2dd
GM
204 * doc.c (Qfunction_documentation): New variable.
205 (syms_of_doc): Initialize Qfunction_documentation.
206 (Fdocumentation): If FUNCTION is a symbol with non-nil
207 `function-documentation' property, return a documentation derived
208 from that.
209
bd96bd79
GM
210 * buffer.c (syms_of_buffer): Add default-cursor-type.
211 (init_buffer_once): Don't let cursor_type have a local value
212 in every buffer.
213
19d1bc27
GM
214 * xterm.c (x_display_and_set_cursor): Choose cursor depending
215 on buffer-local value of cursor_type.
216 (x_draw_bar_cursor): Add parameter WIDTH.
217
218 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
219 (init_buffer_once): Set default cursor_type value to t.
220 Mark cursor_type as local everywhere.
221 (syms_of_buffer): New per-buffer variable cursor-type.
222
89e80928
GM
223 * buffer.h (struct buffer): Remove member local_var_flags,
224 add local_flags.
225 (MAX_BUFFER_LOCAL_VARS): New macro.
226 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
227 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
228 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
229 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
230
231 * print.c (print_object): Use new macros for per-buffer
232 variables.
233
234 * category.c (Fset_category_table): Use new macros for per-buffer
235 variables.
236
237 * buffer.c (buffer_permanent_local_flags): Make a char array.
238 (max_buffer_local_idx): New variable.
239 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
240 for new handling of per-buffer variables.
241 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
242 (init_buffer_once): Initialize per-buffer vars differently.
243 Set max_buffer_local_idx.
244
245 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
246 variables.
247
248 * lread.c (defvar_per_buffer): Use new macros for per-buffer
249 variables.
250
251 * data.c (do_symval_forwarding, store_symval_forwarding)
252 (find_symbol_value, set_internal, default_value, Fset_default)
253 (Fkill_local_variable, Flocal_variable_p): Use new macros for
254 per-buffer variables.
255
256 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
257
9a0dd3dc
GM
2582000-03-24 Gerd Moellmann <gerd@gnu.org>
259
b68c375f
GM
260 * xterm.c (x_term_init): Unblock input around call1 of
261 Qvendor_specific_keysyms.
262
9a0dd3dc
GM
263 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
264 (find_defun_start): Consider an open parenthesis in column 0
265 a defun start only if open_paren_in_column_0_is_defun_start is set.
266 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
267
7973e637
SM
2682000-03-24 Stefan Monnier <monnier@cs.yale.edu>
269
270 * eval.c (Fautoload): Add entry in load-history (if after dump).
271 * lread.c (load-history): Update docstring.
272
39210e90
GM
2732000-03-24 Gerd Moellmann <gerd@gnu.org>
274
275 * indent.c (Fvertical_motion): Always use the current buffer.
276 Temporarily change the window's buffer, if necessary.
277
72db3ab5
GM
2782000-03-23 Gerd Moellmann <gerd@gnu.org>
279
280 * xterm.c (fast_find_position): Make sure not to consider rows
281 not visible in the window.
282
990b2375
SM
2832000-03-22 Stefan Monnier <monnier@cs.yale.edu>
284
285 * regex.c (enum syntaxcode): Provide default for non-Emacs.
286 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
287
ff4df011
JR
2882000-03-22 Jason Rumney <jasonr@gnu.org>
289
290 * w32menu.c (single_submenu): Set help string to NULL if none.
291 (w32_menu_show): Set help string correctly.
292 (add-menu-item): Set help string in MIIM_DATA for menu item.
293 Load SetMenuItemInfoA explicitly.
294 (w32_menu_display_help): New function.
295
296 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
297 (QCdata): Moved to xdisp.c.
298
299 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
300 (Vw32_charset_to_codepage_alist): Removed.
301 (Vw32_charset_info_alist): New variable.
302 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
303 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
304 greek, hebrew, thai, johab, mac, unicode]): New symbols.
305 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
306 with TODO comment.
307 (w32_codepage_for_font): Use Vw32_charset_info_alist.
308 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
309 Define Vw32_charset_info_alist and w32_charset symbols.
310
3112000-03-22 Jason Rumney <jasonr@gnu.org>
312
313 * makefile.nt (w32bdf.obj): Update dependencies.
314
315 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
316
317 * w32fns.c: Include fontset.h after dispextern.h.
318 (Fx_create_frame): Do not create fontset.
319 (w32_load_system_font): Doc fix.
320 (Fx_close_connection): Free full_name if it is not shared.
321
322 * w32term.c: Include fontset.h after dispextern.h.
323 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
324 updated.
325 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
326 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
327 (w32_font_is_double_byte): New function, needs body.
328 (x_append_glyph): Set glyph->glyph_not_available_p.
329 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
330 it->charset. If it->multibyte_p is zero and it->c is a multibyte
331 character, convert it to a unibyte character.
332 (struct glyph_string): Delete member `charset'.
333 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
334 calculating it is found.
335 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
336 the case that per char metric is not available correctly.
337 (x_fill_glyph_string): Handle the case that the specific glyph is
338 not available correctly.
339 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
340 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
341 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
342 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
343 fontset. Don't call FS_LOAD_FONT.
344
439d5cb4
KR
3452000-03-22 Ken Raeburn <raeburn@gnu.org>
346
347 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
348 (INT_LISPLIKE): New macro.
349 (NULL_INTERVAL_P): Use it.
350 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
351 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
352 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
353
354 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
355 explicit references to "parent" field of struct interval and
356 associated unclean type conversions.
357 * intervals.c (create_root_interval, root_interval, rotate_right,
358 rotate_left, balance_possible_root_interval, split_interval_right,
359 split_interval_left, interval_start_pos, find_interval,
360 next_interval, previous_interval, update_interval,
361 adjust_intervals_for_insertion, delete_node, delete_interval,
362 adjust_intervals_for_deletion, merge_interval_right,
363 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
364 copy_intervals_to_string): Likewise.
365 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
366 Likewise.
367 * syntax.c (update_syntax_table): Likewise.
368
369 * intervals.c (reproduce_tree_obj): New function, like
370 reproduce_tree but takes a Lisp_Object for the parent. Declare
371 with prototype.
372 (graft_intervals_into_buffer): Use it when appropriate.
373 (reproduce_tree): Declare with prototype.
374 (balance_possible_root_interval): Check that the parent is a lisp
375 object before trying to examine its type.
376
ee1c5b21
GM
3772000-03-22 Gerd Moellmann <gerd@gnu.org>
378
379 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
380 as strings only if both are known to be strings.
381
382 * s/openbsd.h (LIBS_TERMCAP): Undef.
383
1fb352e0
SM
3842000-03-21 Stefan Monnier <monnier@cs.yale.edu>
385
386 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
387 definitions for non-Emacs compilation.
388 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
389 outside of `#ifdef emacs'.
390 (print_partial_compiled_pattern): Update.
391 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
392 (re_compile_fastmap): Merge handling of charset and charset_not (for
393 emacs and non-emacs compilation as well).
394 Similarly for (not)categoryspec and (not)syntaxspec.
395 Don't use the fastmap when reaching `anychar' since the added
396 complexity is not justified.
397 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
398 and (not)syntaxspec. Merge (not)categoryspec.
399
fdaa1f77
KH
4002000-03-22 Kenichi Handa <handa@etl.go.jp>
401
ff1a0d8e
KH
402 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
403 FACE_FOR_CHAR): Define them differently for the configuration of
404 --without-x.
fdaa1f77 405
d152fb46
DL
4062000-03-21 Dave Love <fx@gnu.org>
407
408 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
409 doc string.
410
d2cafc8c
GM
4112000-03-21 Gerd Moellmann <gerd@gnu.org>
412
413 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
414 (lface_fully_specified_p): Don't check contents of
415 LFACE_FONT_INDEX because that attribute is optional.
416 (realize_x_face): Remove now unwarranted xassert.
417
9111d4b5
KH
4182000-03-21 Kenichi HANDA <handa@etl.go.jp>
419
420 The following changes are to make font selection based on
421 characters, not charset. In addition, they recover fontset
422 facilities while utilizing the new font selection mechanism.
423
6c4bfdc0
KH
424 * Makefile.in (fontset.o): Depend on dispextern.h.
425
426 * alloc.c (mark_face_cache): Don't mark face->registry.
427
9111d4b5
KH
428 * dispextern.h (struct glyph): New member glyph_not_available_p.
429 Use 22 bits for face_id.
430 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
431 (struct face): Delete member registry, new member ascii_face.
432 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
433 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
434 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
435 (struct it): Delete member charset, new member
436 glyph_not_available_p.
437
438 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
439 (struct fontset_info, struct fontset_data): Structs removed.
440 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
441 Vglobale_fontset_alist, font_idx_temp): Externs removed.
442 (fs_load_font, fs_query_fontset): Adjusted for new argument.
443 (fs_free_face_fontset, fontset_font_pattern,
444 face_suitable_for_char_p, face_for_char,
445 make_fontset_for_ascii_face): Extern them.
446 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
447 (FS_LOAD_FACE_FONT): New macro.
448
449 * fontset.c: All codes rewritten or adjusted for the change of
450 fontset implementation. Now fontset is represented by char table.
451 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
452 removed.
453 (my_strcasecmp): Function removed.
454 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
455 variables.
456 (AREF, ASIZE): New macros.
457 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
458 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
459 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
460 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
461 fontset_id_valid_p, font_family_registry, fontset_name,
462 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
463 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
464 New functions.
465 (fs_load_font): New arg FACE. Caller changed.
466 (fs_query_fontset): Argument changed. Caller changed.
467 (Fquery_fontset): call fs_query_fontset.
468 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
469 Functions removed.
470 (clear_fontset_elements, check_registry_encoding,
471 check_fontset_name): New functions.
472 (syms_of_fontset): Set char-table-extra-slots property of fontset
473 to 3. Staticpro and initialize Vfontset_table and
474 Vdefault_fontset. Defsubr fontset_font and fontset_list.
475
476 * frame.h (struct frame): Member `fontset_data' removed.
477 (FRAME_FONTSET_DATA): Macro removed.
478
479 * frame.c (make_frame): Don't allocate f->fontset_data.
480 (Fdelete_frame): Don't free f->fontset_data.
481
6c4bfdc0
KH
482 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
483
9111d4b5
KH
484 * xdisp.c (charset_at_position): Function removed.
485 (init_iterator): Don't set member charset of struct `it'.
486 (handle_face_prop, reseat_to_string, set_iterator_to_next,
487 next_element_from_display_vector, insert_left_trunc_glyphs):
488 Likewise.
489 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
490 FACE_FOR_CHARSET.
491 (get_next_display_element, append_space,
492 extend_face_to_end_of_line): Likewise.
493
494 * xfaces.c (Qx_charset_registry, Vface_default_registry):
495 Variables removed.
496 (clear_font_table, frame_update_line_height, load_face_font):
497 Adjusted for the change of fontset implementation.
498 (load_face_fontset_font): Function removed.
499 (pixel_point_size): New function.
500 (font_list): Argument type changed. Caller changed.
501 (LFACE_FONT): New macro.
502 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
503 (set_lface_from_font_name): Type of arg FONTNAME is changed to
504 Lisp_Object. Determine the font name by actually loading a font
505 by the specified pattern. Set LFACE_FONT (lface) to the specified
506 pattern. Even if a font is not found, don't try alternatives.
507 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
508 (set_font_frame_param): If `font' is specified in lface, use it.
509 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
510 (lface_same_font_attributes_p): Likewise.
511 (make_realized_face): Arguent changed. Caller changed. Set
512 face->ascii_face to face itself.
513 (free_realized_face): Free face->fontset if face is for ASCII.
514 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
515 deduce_unibyte_registry, x_charset_registry): Functions removed.
516 (free_realized_multibyte_face): New function.
517 (lookup_face, lookup_named_face, lookup_derived_face): Argument
518 changed. Caller changed.
519 (try_font_list): Argument type changed.
520 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
521 (choose_face_font): Argument changed. Handle fontset properly.
522 (choose_face_fontset_font): Function removed.
523 (realize_default_face, realize_named_face): Don't remove the
524 former face here.
525 (realize_face): Argument changed. Caller changed. Remove face
526 with the arg former_face_id in advance. Load font for the new
527 face.
528 (realize_x_face): Argument changed. Caller changed. For a
529 multibyte character, share fontset with base_face. For a single
530 byte character, make a new realized fontset. Don't load a font
531 here.
532 (realize_tty_face): Argument changed. Caller changed.
533 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
534 (face_at_buffer_position): Don't check multibyte_p for returning
535 DEFAULT_FACE_ID.
536 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
537 FACE_SUITABLE_FOR_CHARSET_P.
538 (syms_of_xfaces): Remove code for Qx_charset_registry and
539 Vface_default_registry.
540
6c4bfdc0
KH
541 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
542 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
543 (x_per_char_metric): Don't try FONT->default_char. Even if
544 pcm->width is zero, glyph bits may exist.
545 (x_encode_char): Always initialize char2b->byte1.
546 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
547 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
548 changed.
549 (x_append_glyph): Set glyph->glyph_not_available_p.
550 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
551 it->charset. Handle the case that per char metric is not
552 available. If it->multibyte_p is zero and it->c is a multibyte
553 character, convert it to a unibyte character.
554 (struct glyph_string): Delete member `charset'.
555 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
556 the case that per char metric is not available correctly.
557 (x_fill_glyph_string): Handle the case that the specific glyph is
558 not available correctly.
559 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
560 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
561 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
562 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
563 fontset. Don't call FS_LOAD_FONT.
564
565 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
566 (x_create_tip_frame): Likewise.
567 (Fx_close_connection): Free full_name of font_info.
568
569 * fns.c (optimize_sub_char_table): New function.
570 (Foptimize_char_table): New function.
571 (syms_of_fns): Defsubr Soptimize_char_table.
572
b33dd3b0
GM
5732000-03-20 Gerd Moellmann <gerd@gnu.org>
574
575 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
576 only if buffer is displayed in some window.
577
578 * xdisp.c (handle_single_display_prop): Initialize local `value'.
579 (try_window_reusing_current_matrix): Don't call scroll run
580 function if run's current and desired position are the same;
581 this prevents cursor flickering.
582
4e8a9132
SM
5832000-03-19 Stefan Monnier <monnier@cs.yale.edu>
584
585 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
586
587 * regex.c (RE_STRING_CHAR): New macro.
588 (GET_CHAR_AFER_2): Remove.
589 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
590 (enum re_opcode_t): Remove on_failure_jump_exclusive.
591 (print_partial_compiled_pattern, re_compile_fastmap)
592 (re_match_2_internal): Remove on_failure_jump_exclusive.
593 (regex_compile): Turn optimizable P+ loops into PP*, so that the
594 optimization only need to work for * (ie. can use of_keep_string_jump).
595 Remove the special case for .*\n since it is now covered by the general
596 optimization.
597 (re_search_2): Don't bother with `room'.
598 (skip_one_char): New function.
599 (skip_noops): Simplify since `memory' is not needed any more.
600 (mutually_exclusive_p): Restructure slightly to use `switch' and
601 add handling for "all" remaining cases.
602 (re_match_2_internal): Change on_failure_jump_smart to use
603 on_failure_keep_string_jump (and redirect the end-of-loop jump)
604 rather than on_failure_jump_exclusive.
605
2136fdd4
GM
6062000-03-19 Gerd Moellmann <gerd@gnu.org>
607
608 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
609 number of bits per RGB because it's everywhere used as the depth
610 of the visual.
611
612 * term.c (calculate_costs): Remove code dealing with X frames.
613
e53ae11c
RS
6142000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
615
616 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
617
d7b511c4
GM
6182000-03-18 Gerd Moellmann <gerd@gnu.org>
619
620 * lread.c (read_integer): Unread the last char not consumed.
621
16b5d424
GM
6222000-03-17 Gerd Moellmann <gerd@gnu.org>
623
624 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 625 which are in the process of being deleted.
16b5d424 626
1fa28578
GM
6272000-03-16 Gerd Moellmann <gerd@gnu.org>
628
83488cce
GM
629 * Makefile.in (mostlyclean): Add `*.core'.
630 (clean): Add `bootstrap-emacs'.
631
1fa28578
GM
632 * lread.c (read_integer): New function.
633 (read1): Support read syntax #o, #x, #b, #r.
634
99633e97
SM
6352000-03-15 Stefan Monnier <monnier@cs.yale.edu>
636
1fa28578
GM
637 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
638 make sure POINTER_TO_OFFSET gives the same value before and after
639 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
640 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
641 (debug): Now only active if > 0 rather than if != 0.
642 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
643 (print_partial_compiled_pattern): Add missing `succeed' case. Use
644 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
645 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
646 (store_op1, store_op2, insert_op1, insert_op2)
647 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
648 (group_in_compile_stack): Move to after its arg's types are
649 declared and add a prototype.
99633e97 650 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
651 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
652 wrapper.
99633e97 653 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
654 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
655 indentation of the greedy-op and shy-group code.
99633e97
SM
656 (at_(beg|end)line_loc_p): Fix argument's types.
657 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
658 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
659 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
660 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
661 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
662 QUIT unconditionally.
99633e97 663
699238d9
GM
6642000-03-15 Gerd Moellmann <gerd@gnu.org>
665
666 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
667 a sole completion.
668
669 * process.c (send_process): Add a hint that the function
670 can call Lisp code to its comment.
671
672 * lread.c (load_dangerous_libraries): New variable.
673 (Vbytecomp_version_regexp): New variable.
674 (safe_to_load_p): New function.
675 (Fload): Handle files not compiled with Emacs specially.
676 (syms_of_lread): New Lisp variable load-dangerous-libraries.
677
34e23e5a
GM
6782000-03-14 Gerd Moellmann <gerd@gnu.org>
679
9c763cca
GM
680 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
681
682 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
683 support functions only if HAVE_X11R6_XIM is defined.
684 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
685
686 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
687
688 * xfns.c (X_I18N_INHIBITED): Don't define.
689 (create_frame_xic): Remove conditional compilation on
690 X_I18N_INHIBITED.
691 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
692
693 * config.in (HAVE_X_I18N): Moved here from xterm.h.
694 (HAVE_X11R6_XIM): Define.
695
696 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
697
34e23e5a
GM
698 * xterm.c (x_term_init): Add support for X resource `synchronous'.
699 If set, call XSynchronize.
700
66f0296e
SM
7012000-03-13 Stefan Monnier <monnier@cs.yale.edu>
702
34e23e5a
GM
703 * regex.c: Declare a new type `re_char' used throughout the code
704 for the string char type. It's `const unsigned char' to match the
705 rest of Emacs. Consistently make sure all pointers to strings use
706 it and make sure all pointers into the pattern use `unsigned
707 char'.
66f0296e 708 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
709 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
710 code duplication.
66f0296e
SM
711
712 * charset.h (GET_CHAR_AFTER_2): Remove.
713 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
714
854a025c
KR
7152000-03-12 Ken Raeburn <raeburn@gnu.org>
716
717 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
718 variable before the invocation of YMF_PASS_LDFLAGS, in case both
719 of them try to use backquotes.
720
b9d2c7e2
DL
7212000-03-12 Dave Love <fx@gnu.org>
722
723 * unexelf.c: Restore changes of 1999-10-19.
724 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
725 fix its type and alignment; copy it from current process.
726
5e5dff44
GM
7272000-03-12 Gerd Moellmann <gerd@gnu.org>
728
9b2f3c38
GM
729 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
730 has been found. Fix bug not computing timer's predecessor.
731
9172b88d
GM
732 * fileio.c (Fread_file_name): Handle case that DIR contains a
733 file name.
734
e1cff360
GM
735 * window.c (Fsave_window_excursion): Doc fix.
736
5e5dff44
GM
737 * xfns.c (x_defined_color): Rewritten to use
738 x_allocate_nearest_color.
739
e411ce4b
EZ
7402000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
741
742 * msdos.c (vga_installed): New function, code moved from
743 dos_set_window_size.
744 (Qbar, Qcursor_type, outside_cursor): New variables.
745 (syms_of_msdos): Intern and staticpro them.
746 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
747 shape used outside Emacs when called for the first time.
748 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
749 cursor shape used outside Emacs.
750 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
751 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
752 type has changed.
753 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
754 parameters specify the cursor. Make qreverse a global
755 variable (renamed to Qreverse).
756
80460654
GM
7572000-03-09 Gerd Moellmann <gerd@gnu.org>
758
759 * fns.c (Fy_or_n_p): Cancel busy-cursor.
760
95cd4c40
SM
7612000-03-08 Stefan Monnier <monnier@cs.yale.edu>
762
763 This is a big redesign of failure-stack and register handling, prompted
764 by bugs revealed when trying to add shy-groups. Overall, what happened
765 is that loops are now structured a little differently, groups can be
766 shy and the code is a little simpler.
767
768 * regex.h: Update the copyright.
769 (RE_SHY_GROUPS): New value.
770 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
771 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
772
80460654
GM
773 * regex.c (enum re_opcode_t): Remove jump_past_alt,
774 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
775 on_failure_jump_(exclusive, loop and smart). Also fix the comment
776 for (start|stop)_memory since they now only take one argument (the
777 second has becomes unnecessary).
778 (print_partial_compiled_pattern): Adjust for changes in
779 re_opcode_t.
780 (print_compiled_pattern): Use %ld to printf long ints and flush to
781 make debugging a little easier.
95cd4c40
SM
782 (union fail_stack_elt): Make the integer unsigned.
783 (struct fail_stack_type): Add a `frame' element.
784 (INIT_FAIL_STACK): Init `frame' as well.
785 (POP_PATTERN_OP): New macro for re_compile_fastmap.
786 (DEBUG_PUSH, DEBUG_POP): Remove.
787 (NUM_REG_ITEMS): Remove.
788 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
789 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
790 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 791 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
792 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
793 macros.
794 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
795 address pushed is not the destination of the jump but the source
796 of it instead.
95cd4c40
SM
797 (NUM_FAILURE_ITEMS): Remove.
798 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
799 registers before the actual failure point). Don't hardcode any
800 meaning for str==NULL anymore.
95cd4c40 801 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
802 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
803 Remove.
95cd4c40
SM
804 (REG_UNSET_VALUE): Use NULL (why not?).
805 (compile_range): Remove declaration since it doesn't exist.
806 (struct compile_stack_elt_t): Remove inner_group_offset.
807 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
808 (regex_grow_registers): Remove dead code.
809 (FIXUP_ALT_JUMP): New macro.
80460654
GM
810 (regex_compile): Add shy-groups Change loops to use
811 on_failure_jump_smart&jump instead of
812 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
813 initial (dummy_failure_)jump. Remove c1_base (looks like unused
814 variable to me). Use `jump' instead of `jump_past_alt' and don't
815 bother with push_dummy_failure in alternatives since it is now
816 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
817 emacs' for (re)allocating the stack.
818 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
819 from loop when bufp->can_be_null rather than jumping to `done'.
820 Avoid jumping backwards so as to ensure termination. Use
821 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
822 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 823 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
824 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
825 improve mutually_exclusive_p to handle ".+\n".
826 (lowest_active_reg, highest_active_reg,
827 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
828 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
829 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
830 variables. Push register (in `start_memory') on the stack rather
831 than storing it in old_reg(start|end). Remove the cycle detection
832 from `stop_memory', replaced by the use of on_failure_jump_loop
833 for greedy loops. Add code for the new on_failure_jump_<foo>.
834 Remove ad-hoc code in `on_failure_jump' to push more registers in
835 the case of a loop. Take out code from `maybe_pop_jump' into
836 separate functions and adapt it to the semantics of
837 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
838 and push_dummy_failure. Remove dummy_failure handling and
839 handling of `failures to jump to on_failure_jump' (this last one
840 was already dead code, it seems).
841 (group_match_null_string_p, alt_match_null_string_p)
842 (common_op_match_null_string_p): Remove.
95cd4c40 843
7397acc4
DL
8442000-03-08 Dave Love <fx@gnu.org>
845
846 * config.in: Don't depend on __STDC__ for volatile.
847 Add POINTER_TYPE, PTR, PROTOTYPES.
848
849 * hftctl.c, strftime.c: Use PROTOTYPES.
850 * eval.c (find_handler_clause): Likewise.
851
852 * mem-limits.h: Use POINTER_TYPE.
853
854 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
855 (memory_warnings): Declare using POINTER_TYPE.
856
5e91ff9e
GM
8572000-03-08 Gerd Moellmann <gerd@gnu.org>
858
feab4fba
GM
859 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
860
25edb08f
GM
861 * xdisp.c (display_echo_area): Temporarily inhibit garbage
862 collection.
863
5e91ff9e
GM
864 * xfns.c: Remove obsolete code in #if 0.
865 (Fx_focus_frame): New function.
866
a735b7e1
KH
8672000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
868
869 * coding.c (coding_category_name): Add coding-category-utf-8,
870 coding-category-utf-16-be, coding-category-utf-16-le.
871 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
872 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
873 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
874 (detect_coding_utf_8): New function.
875 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
876 UTF_16_LOW_SURROGATE_P): New macros.
877 (detect_coding_utf_16): New function
878 (detect_coding_mask): When priorities are specified, skip any
879 categories that have `nil' coding-system. Fix bug of returning
880 wrong mask when PRIORITIES is specified and detect_coding_XXX()
881 returns a mask not set in PRIORITIES.
882 (detect_eol_type_in_2_octet_form): New function.
883 (detect_eol): selects detect_eol_type_XXX to call according to
884 cooding->category_idx.
885 (detect_coding_system): Remove `nil' coding-system in the result.
886 (Fupdate_coding_systems_internal): Update all coding-categories.
887
888 * coding.h (CODING_CATEGORY_IDX_UTF_8,
889 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
890 macros.
891 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
892 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
893 CODING_CATEGORY_IDX_UTF_16_LE.
894 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
895 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
896 (CODING_CATEGORY_MASK_ANY): Include the above macros.
897 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
898
9994cc69
GM
8992000-03-07 Gerd Moellmann <gerd@gnu.org>
900
e9b4e5ff
GM
901 * doc.c (Fdocumentation_property): If value is not a string,
902 and doesn't refer to etc/DOC, evaluate it to obtain a string.
903
f7daf1e1
GM
904 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
905 close the display with XtCloseDisplay. This caused a bus error
906 on OpenWindows.
907
9994cc69
GM
908 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
909 complete but not unique.
910
4336c705
GM
9112000-03-06 Gerd Moellmann <gerd@gnu.org>
912
18bb0684
GM
913 * process.c (send_process): Remove local variable `procname' that
914 might become invalid when a GC happens. Instead, access the
915 process name slot directly.
916
4336c705
GM
917 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
918 orig_height if set.
919
920 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
921 orig_height if set.
922
515d0d0e
EZ
9232000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
924
925 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
926 glyph matrices have been freed.
927
100b3cbb
GM
9282000-03-05 Gerd Moellmann <gerd@gnu.org>
929
50df5e5a 930 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 931 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
932
933 * xfns.c (QCdata): Moved to xdisp.c.
934
935 * xdisp.c (QCdata): Moved here from xfns.c.
936 (syms_of_xdisp): Initialize QCdata.
937
938 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
939
940 * window.c (coordinates_in_window): Use
941 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
942 FRAME_INTERNAL_BORDER_WIDTH.
943
100b3cbb 944 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 945 it is obviously invalid.
100b3cbb
GM
946
947 * xterm.c (x_term_init): Create a colormap if not using the
948 default visual.
949
950 * xterm.h (select_visual): Change prototype.
951
952 * xfns.c (select_visual): Rewritten. Recognize user-specified
953 visual classes.
954 (visual_classes): New variable.
955
64d739c4
GM
9562000-03-04 Gerd Moellmann <gerd@gnu.org>
957
958 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
959 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
960 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
961 (x_decode_color): Don't handle allocation of white and black
962 specially.
963 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
964 XtNcolormap resources.
965 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
966 (Fx_create_frame): Initialize color members of x_output structure.
967 (xpm_load): Pass colormap to XPM lib.
968
969 * xfaces.c (x_free_colors): Access colormap of frame using
970 FRAME_X_COLORMAP. Be paranoid about freeing black and white
971 when default colormap is used.
972
973 * xterm.c (x_term_init): Set Colormap member of x_display_info
974 structure. Copy colormap if resource `privateColormap' is
975 specified (PseudoColor only).
976 (x_setup_relief_color): Access colormap of frame using
977 FRAME_X_COLORMAP.
978
979 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
980 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
981
c3cee013
JR
9822000-03-04 Jason Rumney <jasonr@gnu.org>
983
984 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
985 other non-platform-specific equivalents.
64d739c4 986 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
987 specific functions and macros as their w32 equivalents where
988 non-platform-specifics are not available.
989 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
990 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
991 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
992 (frame_update_line_height): Use macros to access f->output_data.
993 (defined_color): Remove FIXME comments; fixed.
994 (x_face_list_fonts, prepare_face_for_display): Put X specifics
995 into #ifdef blocks. Add WINDOWSNT blocks.
996 (Fx_list_fonts): Use macros for accessing font data.
997 (set_lface_from_font_name): Different default fonts for X and
998 WINDOWSNT.
999 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
1000 scalable for backward compatibility.
64d739c4 1001 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
1002 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
1003
64d739c4 1004 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
1005 syms_of_w32faces.
1006
1007 * makefile.nt (w32faces.obj): Remove.
1008 (xfaces.obj): Add.
1009
807cc41c
JR
10102000-03-03 Jason Rumney <jasonr@gnu.org>
1011
1012 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
1013 correct parameters.
1014
0007072a
KR
10152000-03-03 Ken Raeburn <raeburn@gnu.org>
1016
1017 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
1018 standard ELF definitions here if the system header does not.
1019
71a6ba55
GM
10202000-03-03 Gerd Moellmann <gerd@gnu.org>
1021
1022 * xterm.c (PER_CHAR_METRIC): Removed.
1023 (x_per_char_metric_1, x_default_char): New functions.
1024 (x_per_char_metric): If font's default char is invalid, return
1025 metrics of a suitably chosen usable default char.
1026 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
1027 char, replace occurrences of unprintable chars with a suitably
1028 chosen usable default char.
71a6ba55 1029
900fa1f1
GM
10302000-03-02 Gerd Moellmann <gerd@gnu.org>
1031
42f55fe0
GM
1032 * xterm.c (note_mouse_highlight): Return quickly if frame's
1033 glyph matrices have been freed.
1034
1035 * dispnew.c (free_glyphs): Block input while freeing matrices.
1036
900fa1f1
GM
1037 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
1038
1039 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
1040 x_free_colors.
1041
1042 * dispextern.h (x_free_colors): Add prototype.
1043
1044 * xfaces.c (x_free_colors): New function.
1045 (unload_color, free_face_colors): Use it.
1046
2f950292
EZ
10472000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
1048
1049 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
1050
1051 * window.c [MSDOS]: Include msdos.h.
1052
54d04320
DL
10532000-03-02 Dave Love <fx@gnu.org>
1054
1055 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
1056
1057 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
1058 set C_OPTIMIZE_SWITCH for gcc.
1059
0ba93ac4
KH
10602000-03-02 Kenichi Handa <handa@etl.go.jp>
1061
1062 * coding.c (coding_save_composition): Be sure to allocate
1063 composition data area in coding even if there's no composition in
1064 the current run.
1065
a2bc11d4
JR
10662000-03-01 Jason Rumney <jasonr@gnu.org>
1067
1068 * w32term.c: Equivalent changes to those made to xterm.c on
1069 2000-02-25 and 2000-02-24.
1070
1071 * w32fns.c: Equivalent changes to those made to xfns.c on
1072 2000-02-25 and 2000-02-21.
1073
1074 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
1075 correct line-end convention is followed.
1076
1077 * w32menu.c [HAVE_BOXES]: Remove #undef.
1078 (single_keymap_panes): Remove code for simulating checkmarks.
1079 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
1080 Remove code for drawing simulated checkmarks.
1081 (w32_menu_show): make unibyte help string correctly.
1082 (add_menu_item): draw standard Windows checkmarks. Draw radio
1083 buttons as radio buttons if possible.
1084
72d19d75
GM
10852000-03-01 Gerd Moellmann <gerd@gnu.org>
1086
2df636f4
GM
1087 * sysdep.c (start_of_text): Don't define this function for NetBSD
1088 with ELF.
1089
1090 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
1091 Don't define.
1092 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
1093 (LINKER): Don't undef if __NetBSD__ is defined.
1094
1095 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
1096
1097 * fileio.c [__NetBSD__]: Define `unix'.
1098
72d19d75
GM
1099 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
1100
ed4d0512
GM
11012000-02-29 Gerd Moellmann <gerd@gnu.org>
1102
50b1039f
GM
1103 * atimer.c (start_atimer): Don't abort when timers are stopped.
1104 (append_atimer_lists): New function.
1105 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
1106 arbitrary lists of stopped and running atimers.
1107
ed4d0512
GM
1108 * atimer.c (cancel_atimer): Handle canceling an atimer when
1109 some timers are stopped.
1110
1111 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
1112 after canceling it.
1113
1114 * fns.c (maybe_resize_hash_table): Handle case of new size
1115 coming out as being the same as old size.
1116
387023ee
JR
11172000-02-27 Jason Rumney <jasonr@gnu.org>
1118
1119 * makefile.nt: Add atimer.h to dependencies.
1120 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
1121 * w32console.c: Only disable window system features for dispextern.h
1122 (initialize_w32_display): Build a display info for the console.
1123 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
1124 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
1125 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
1126 as 2 button mice.
1127 * w32gui.h (struct W32FontStruct): Revert last change after change
1128 to xdisp.c.
1129 * w32menu.c (single_submenu): Set up help string.
1130 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
1131 (w32_dialog_show): Set up help string.
1132 * w32term.c (w32_display_info_for_display): Remove unused function.
1133 (w32_draw_bitmap): Use pre-built bitmaps.
1134 (w32_initialize_display_info): New function to initialize parts of
1135 display info that are common to both GUI and console frames.
1136 (w32_term_init): Use w32_initialize_display_info. Do not set
1137 Vw32_num_mouse_buttons here, as it is not called for console
1138 frames. Build bitmaps for indicating truncated lines etc.
1139 (x_delete_display): Destroy pre-built bitmaps.
1140 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
1141 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
1142
4516715a
DL
11432000-02-27 Dave Love <fx@gnu.org>
1144
1145 * lisp.h: Add a bunch of prototypes.
1146
171ca836
KH
11472000-02-26 Kenichi Handa <handa@etl.go.jp>
1148
1149 * keyboard.c (read_char): Set `usec' correctly.
1150
4013921d
KH
11512000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
1152
1153 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
1154 `lambda', set reg[RRR] to the map index.
1155 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
1156 reg[RRR] to 0. Otherwise, set it to -1.
1157
9244a058
GM
11582000-02-25 Gerd Moellmann <gerd@gnu.org>
1159
2df636f4 1160 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 1161
f43d79c1
GM
11622000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
1163
1164 * fileio.c (Ffile_symlink_p): If result starts with a `/'
1165 and contains a `:', prepend `/:'.
1166
1167 * window.c (select_window_1): If selected_window is nil,
1168 don't "swap out" the buffer's point.
1169 (Fset_window_configuration): Set selected_window to nil
1170 before calling Fselect_window.
1171 (unshow_buffer): Don't set point in buffer from window's point
1172 if another more recently selected window also shows the buffer.
1173
bed0c171
GM
11742000-02-25 Gerd Moellmann <gerd@gnu.org>
1175
449c3c52
GM
1176 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
1177
f5b58615
GM
1178 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
1179 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
1180 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
1181 variables.
1182 (DEFAULT_BUSY_CURSOR_DELAY): New define.
1183 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
1184 (hide_busy_cursor): New functions.
1185 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
1186
1187 * minibuf.c (read_minibuf): Cancel busy-cursor.
1188
1189 * keyboard.c (command_loop_1): Call start_busy_cursor before
1190 Fcommand_execute and cancel_busy_cursor after it.
1191 (timer_check): Remove busy-cursor code.
1192 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
1193 cursor timer.
1194
1195 * process.c (wait_reading_process_input): Remove busy-cursor code.
1196
1197 * eval.c (Fsignal): Call cancel_busy_cursor instead of
1198 Fx_hide_busy_cursor.
1199
1200 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
1201 Remove prototyoes.
1202 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
1203
1204 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
1205
1206 * xterm.c (XTread_socket): Remove busy-cursor code.
1207
4eb8436f
GM
1208 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
1209 (build_frame_matrix_from_leaf_window): Put code handling
1210 glyph row's not being a slice of a frame row in #if 0.
1211 (sync_window_with_frame_matrix_rows): New function.
1212 (frame_row_to_window): New function.
1213 (mirror_line_dance): Handle copies between windows.
1214
3cb65b0e
GM
1215 * lread.c (Fload): Use `xfree' instead of `free'.
1216 (init_obarray): Use `xmalloc' instead of `malloc'.
1217
bed0c171
GM
1218 * window.c (Fset_window_buffer): Set WINDOW to the window
1219 after decoding.
2add4349
GM
1220 (coordinates_in_window): Take frame's internal border width
1221 into account.
bed0c171 1222
42088c12
GM
12232000-02-24 Gerd Moellmann <gerd@gnu.org>
1224
1225 * xterm.c (x_display_and_set_cursor): Display cursor of
1226 non-selected windows depending on the setting of
1227 cursor_in_non_selected_windows.
1228
1229 * xdisp.c (cursor_in_non_selected_windows): New variable.
1230 (syms_of_xdisp): DEFVAR_BOOL it.
1231
d1e103b2
GM
12322000-02-23 Gerd Moellmann <gerd@gnu.org>
1233
723e779c
GM
1234 * data.c (Fstring_to_number): If number is greater than what
1235 fits into an integer, return a float.
1236
d1e103b2
GM
1237 * eval.c (specbind): Remove references to
1238 keyword_symbols_constant_flag.
1239
1240 * data.c (keyword_symbols_constant_flag): Removed.
1241 (Fmakunbound, set_internal, syms_of_data): Remove references to
1242 keyword_symbols_constant_flag.
1243
1244 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
1245
214f877f
KH
12462000-02-23 Kenichi Handa <handa@etl.go.jp>
1247
1248 * syntax.c (multibyte_syntax_as_symbol): New variable.
1249 (syms_of_syntax): Declare it as a Lisp variable.
1250 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
1251 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
1252 nonzero, treat all multibyte characters as symbol.
42088c12 1253 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
1254 characters.
1255
130adcb7
EZ
12562000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
1257
3cb65b0e 1258 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
130adcb7
EZ
1259 a deleted frame.
1260
17cbbf95
GM
12612000-02-21 Gerd Moellmann <gerd@gnu.org>
1262
1263 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
1264
1265 * xfns.c (x_window_to_frame, x_any_window_to_frame)
1266 (x_non_menubar_window_to_frame): Check the busy-cursor window.
1267
beb0bc36
DL
12682000-02-21 Dave Love <fx@gnu.org>
1269
1270 * frame.c (Vmouse_position_function): New variable.
1271 (Fmouse_position): Use it.
1272 (syms_of_frame): Install it.
1273
1274 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
1275
1d92afcd
GM
12762000-02-20 Gerd Moellmann <gerd@gnu.org>
1277
1278 * fileio.c (Finsert_file_contents): Unbind the binding of
1279 standard-output done by temp_output_buffer_setup.
329eed9f
GM
1280
1281 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
1282 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
1283 (specbind, unbind_to): Handle most common case of non-constant
1284 symbol with trivial value specially.
1285
1286 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
1287
2d06696f
RS
12882000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
1289
1290 * data.c (Fmake_variable_buffer_local): Doc fix.
1291 Init found_for_buffer to 0.
1292 (Fmake_variable_frame_local): If the variable has already
1293 been buffer-local, set the check_frame field.
1294
1d4311c3
EZ
12952000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
1296
1297 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
1298 produced for CODING_MODE_LAST_BLOCK requires.
1299
2dc95ddd
DL
13002000-02-18 Dave Love <fx@gnu.org>
1301
1302 * keyboard.c (echo_keystrokes): Remove declaration.
1303 (Vecho_keystrokes) New variable.
1304 (read_char, record_menu_key, read_key_sequence): Use it to allow
1305 use of float value.
1306 (syms_of_keyboard): Change Vecho_keystrokes declaration.
1307
1308 * lread.c: Undef feature selection macros before defining.
1309
f0930f35
GM
13102000-02-18 Gerd Moellmann <gerd@gnu.org>
1311
1312 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
1313 for symbols other than the symbol in question.
1314
e3d4de90
DL
13152000-02-17 Dave Love <fx@gnu.org>
1316
1317 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
1318
0b378936
GM
13192000-02-17 Gerd Moellmann <gerd@gnu.org>
1320
d621caf7
GM
1321 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
1322
0b378936
GM
1323 * alloc.c (enum mem_type): Compile unconditionally.
1324
3b451f74
EZ
13252000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
1326
1327 * xfaces.c (tty_defined_color): Don't return faulire indication
1328 for unspecified-fg and unspecified-bg pseudo-colors.
1329
10689a01
GM
13302000-02-17 Gerd Moellmann <gerd@gnu.org>
1331
1216f5e4
GM
1332 * alloc.c (mark_object): Don't mark symbol names in pure space.
1333 (gc_sweep): Don't unmark symbol names in pure space.
1334
1335 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
1336 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
1337 [GC_MARK_STACK]: New defines.
1338 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1339 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
1340
1341 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
1342
1343 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
1344 allocate_buffer instead of xmalloc.
1345
1346 * alloc.c (toplevel): Include setjmp.h.
1347 (PURE_POINTER_P): New define.
1348 (enum mem_type) [GC_MARK_STACK]: New enumeration.
1349 (Vdead) [GC_MARK_STACK]: New variable.
1350 (lisp_malloc): Add parameter TYPE, call mem_insert if
1351 GC_MARK_STACK is defined.
1352 (allocate_buffer): New function.
1353 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1354 (free_float) [GC_MARK_STACK]: Set type to Vdead.
1355 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
1356 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
1357 (MEM_NIL) [GC_MARK_STACK]: New define.
1358 (struct mem_node) [GC_MARK_STACK]: New structure.
1359 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
1360 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
1361 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
1362 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
1363 (mark_stack) [GC_MARK_STACK]: New functions.
1364 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
1365 (clear_marks): Removed.
1366 (gc_sweep): Set free conses' car, free floats' type, free
1367 symbols' function to Vdead. Use lisp_free to free buffers.
1368 (init_alloc_once): Initialize Vdead.
1369 (survives_gc_p): Return non-zero for pure objects.
1370
1371 * alloc.c: Add comments throughout the file.
1372
2503c8b1
GM
1373 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
1374 that unblocks alarms.
1375
8389e1e2
GM
1376 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
1377 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
1378 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
1379
10689a01
GM
1380 * frame.c (make_frame): Set frame initiallly to `garbaged'.
1381
bfc17d18
KH
13822000-02-17 Kenichi Handa <handa@etl.go.jp>
1383
4a09dee0
KH
1384 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
1385 avoid infinite error signaling. Allocate sufficient memory for
1386 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 1387
2b927d02
SM
13882000-02-17 Stefan Monnier <monnier@cs.yale.edu>
1389
1390 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
1391 depends on the previous behavior.
1392
b49cb764
GM
13932000-02-16 Gerd Moellmann <gerd@gnu.org>
1394
1395 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
1396
99e95407
GM
13972000-02-15 Gerd Moellmann <gerd@gnu.org>
1398
1399 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
1400
1401 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 1402 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
1403 write(2).
1404
6ffd3cf7
RS
14052000-02-15 Richard M. Stallman <rms@gnu.org>
1406
1407 * data.c (set_internal): Don't make variable buffer-local
1408 if within a let-binding for the same buffer.
1409 (let_shadows_buffer_binding_p): New function.
1410
1411 * eval.c (specbind): For buffer-local value,
1412 record the current buffer also.
1413 (unbind_to): Cope with that change.
1414
cad53475
GM
14152000-02-15 Gerd Moellmann <gerd@gnu.org>
1416
1417 * window.c (Fsave_window_excursion): Doc fix.
1418
1aa963c8
SM
14192000-02-15 Stefan Monnier <monnier@cs.yale.edu>
1420
1421 * syntax.c (back_comment): Make sure we only consider comment-starters
1422 of the relevant style and return -1 in case of a failure to find the
1423 beginning of the comment.
1424 (Fforward_comment): If back_comment fails, go back to the position just
1425 after the comment-end.
1426 (scan_lists): Add comment describing a very minor bug.
1427
b9b84fd3
SM
14282000-02-14 Stefan Monnier <monnier@cs.yale.edu>
1429
1430 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
1431 `completion-regexp-list' in the docstring.
1432
3a28db80
DL
14332000-02-14 Dave Love <fx@gnu.org>
1434
1435 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
1436
fb4a568d
SM
14372000-02-14 Stefan Monnier <monnier@cs.yale.edu>
1438
1439 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
1440 to Emacs' syntax. Also fix the comment about set/not-set meanings
1441 since Emacs syntax is not the value 0 any more.
1442 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
1443 since it's now part of RE_SYNTAX_EMACS.
1444
1063ebb5
DL
14452000-02-12 Dave Love <fx@gnu.org>
1446
1447 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
1448 Alpha.
1449
fb07a302
GM
14502000-02-12 Gerd Moellmann <gerd@gnu.org>
1451
1452 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
1453
aaf2320c
DL
14542000-02-12 Dave Love <fx@gnu.org>
1455
1456 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
1457
1458 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
1459 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
1460 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
1461
1462 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
1463
1464 * s/nextstep.h: Don't define HAVE_ALLOCA.
1465
1466 * config.in: Add vfork bits.
1467
eedf8bde
GM
14682000-02-12 Gerd Moellmann <gerd@gnu.org>
1469
1470 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
1471 unwind function to undo the effect of stopping atimers.
1472
1473 * keyboard.c (bind_polling_period): Stop all timers except
1474 poll_timer.
1475
1476 * atimer.c (stopped_atimers): New variable.
1477 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
1478 New functions.
1479
1480 * atimer.h (stop_other_atimers, run_all_atimers)
1481 (unwind_stop_other_atimers): Add function prototypes.
1482
1483 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
1484
8476c2f8
KR
14852000-02-11 Ken Raeburn <raeburn@gnu.org>
1486
1487 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
1488 library may depend on jpeg.
1489 (atimer.o): Depends on atimer.c.
1490
0e85e4a3
KH
14912000-02-11 Kenichi Handa <handa@etl.go.jp>
1492
1493 * insdel.c (del_range_1): Call update_compositions.
1494 (del_range_both): Call update_compositions just once..
1495
97fa0cc8
DL
14962000-02-10 Dave Love <fx@gnu.org>
1497
1498 * xfns.c (create_frame_xic): Fix initialization of automatic
1499 aggregates for pcc.
1500
25566a3c
KH
15012000-02-09 Kenichi Handa <handa@etl.go.jp>
1502
1503 * ccl.c (CCL_MAKE_CHAR): New macro.
1504 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
1505 registers by CCL_MAKE_CHAR before calling translate_char.
1506 <CCL_TranslateCharacterConstTbl> Likewise.
1507
69da54ba
DL
15082000-02-08 Dave Love <fx@gnu.org>
1509
1510 * lread.c (__EXTENSIONS__): Define.
1511
f7136ee8
GM
15122000-02-08 Gerd Moellmann <gerd@gnu.org>
1513
1514 * puresize.h (BASE_PURESIZE): Increase to 650000.
1515
7768790b
EZ
15162000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
1517
1518 * msdos.c (XMenuActivate): Turn off the cursor after displaying
1519 the help message.
1520
38fd211b
EZ
15212000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
1522
1523 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
1524 md, mh, mb, mr, and me to the fake termcap entry.
1525
66e4690f
KR
15262000-02-06 Ken Raeburn <raeburn@gnu.org>
1527
1528 * sound.c (sound_cleanup): Don't call device close routine if the
1529 function pointer is null.
1530
a75dfea0
AI
15312000-02-06 Andrew Innes <andrewi@gnu.org>
1532
1533 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
1534 around image definitions and prototypes.
1535 (gamma_correct) [WINDOWSNT]: New prototype.
1536
1537 * w32term.c (x_make_frame_visible): Replace call to
1538 input_poll_signal with poll_for_input.
1539
1540 * window.c [WINDOWSNT]: Include w32term.h.
1541
1542 * xdisp.c [WINDOWSNT]: Include w32term.h.
1543
1544 * makefile.nt: Add dependencies on w32gui.h.
1545 (OBJ1): Include atimer.obj.
1546 ($(BLD)\atimer.obj): New dependency rule.
1547
1548 * w32.c (sigmask): New function (does nothing).
1549 (sigunblock): Ditto.
1550
1551 * frame.c [WINDOWSNT]: Include w32term.h.
1552
1553 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
1554
1555 * lread.c (syms_of_lread): Fix literal newlines.
1556
1557 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
1558 the string constant limit (2048 bytes) in MSVC.
1559 (main): Ditto.
1560
59ddecde
GM
15612000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
1562
1563 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
1564 area.
1565 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
1566 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
1567 dispatch the event.
1568
07590973
DL
15692000-02-04 Dave Love <fx@gnu.org>
1570
1571 * fileio.c: Remove some unused vars.
1572 (_GNU_SOURCE): Define (for euidaccess).
1573
1574 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
1575
1576 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
1577 gcpro1, gcpro2.
1578 (read_minibuf): Deal with allow_props correctly.
1579
649351f9
EZ
15802000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
1581
1582 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
1583
66e4690f 15842000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
1585
1586 * search.c (compile_pattern): If a cache entry has a nil regexp,
1587 fill in that entry instead of clobbering a previously cached
1588 string regexp.
1589
66e4690f 15902000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
1591
1592 * puresize.h (BASE_PURESIZE): Increase to 610000.
1593
d240a249
GM
15942000-02-02 Gerd Moellmann <gerd@gnu.org>
1595
1596 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
1597 can GC.
1598
ca91fb26
KH
15992000-02-02 Kenichi Handa <handa@etl.go.jp>
1600
25660570
KH
1601 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
1602 instead of incrementing ic directly.
1603 <CCL_WriteExprConst> Likewise.
1604 <ccl_set_expr>: Set ic to jump_address.
1605
ca91fb26
KH
1606 * fileio.c (e_write): Fix the handling of
1607 CODING_FINISH_INSUFFICIENT_SRC.
1608
2ede9689
DL
16092000-02-01 Dave Love <fx@gnu.org>
1610
1611 * editfns.c (Fpropertize): Doc fix.
1612
1613 * process.c (Fstart_process): Doc fix.
1614
1615 * eval.c: Fix various doc strings not to duplicate information
1616 from help-manyarg-func-alist.
1617
1618 * window.c (Fset_window_margins): Don't make interactive. Doc
1619 fix.
1620
1621 * doc.c (Vhelp_manyarg_func_alist): New variable.
1622 (Fdocumentation): Use it.
1623 (syms_of_doc): Define it.
1624
b6680a0e
GM
16252000-01-31 Gerd Moellmann <gerd@gnu.org>
1626
2cb750ba
GM
1627 * xterm.c (xim_open_dpy): Remove unused local variable.
1628
74e9213b
GM
1629 * emacs.c (USAGE): Use term `display options' instead of `X
1630 options'.
1631
1632 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
1633 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
1634
b6680a0e
GM
1635 * fns.c (sweep_weak_table): New function.
1636 (sweep_weak_hash_tables): Use it. Keep on marking until there
1637 is no more change.
1638
994c5afe
GM
16392000-01-30 Gerd Moellmann <gerd@gnu.org>
1640
1641 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
1642 that XTread_socket does not crash by trying to call XNoOp on a
1643 closed display.
1644
f00276e3
JR
16452000-01-30 Jason Rumney <jasonr@gnu.org>
1646
1647 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
1648 Change selected_frame to SELECTED_FRAME ().
1649 (w32_console_mouse_position): Remove #ifndef MULE from around
1650 `insist' parameter.
1651
1652 * makefile.nt: Remove dosfns.obj.
1653
1654 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
1655
1656 * w32fns.c (w32_defined_color): Check for valid frame before
1657 applying gamma correction. Eliminate dependency on frame elsewhere.
1658 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
1659 (w32_to_x_font): Use resx and resy not height_in and width_in.
1660 (x_to_w32_font): Doc fix.
1661 (xlfd_strip_height): New function to strip and return font height.
1662 (w32_font_match): Compare height separately from rest of xlfd
1663 spec, using xlfd_strip_height.
1664
1665 * w32term.c (w32_term_init): Swap resx and height_in, resy and
1666 width_in. Use w32_defined_color in place of defined_color.
1667
1668 * w32faces.c: Merge more of DOS and X specifics in preparation for
1669 merge with xfaces.c.
1670 (defined_color): Remove FIXME comment.
1671 (tty_color_name): Provide w32-specific function.
1672 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
1673
1674 * w32console.c (turn_on_face, turn_off_face): Removed.
1675 (w32_face_attributes): New function.
1676 (Global_variables): Reduce scope where possible.
1677 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
1678 fill attribute.
1679 (hl_mode): Don't modify text attributes.
1680 (write_glyphs): Don't do anything if len <= 0. Use
1681 w32_face_attributes to get attributes for drawing. Write
1682 terminating codes using char_attr_normal.
1683 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
1684 (update_begin, update_end): Likewise.
1685 (vga_stdcolor_name): New function.
1686 (initialize_w32_display): Remove char_attr_reverse and char_attr.
1687 (Fset_screen_color): Remove char_attr_reverse.
1688
b08e8bb2
GM
16892000-01-29 Gerd Moellmann <gerd@gnu.org>
1690
1691 * xfns.c (xic_set_preeditarea): Take window parameter and
1692 window-relative pixel-positions.
1693
1694 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
1695 is its frame's selected window.
1696 (xim_instantiate_callback): Likewise.
1697
1698 * xfns.c (x_create_im): Removed.
1699 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
1700 (supported_xim_styles): Renamed from supported_styles.
1701 (best_xim_style): Renamed from best_style.
1702 (create_frame_xic): Renamed from xic_create_frame.
1703 (free_frame_xic): Renamed from xic_destroy_frame.
1704
17052000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
1706
1707 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
1708 our frames, call XFilterEvent with 2nd parameter `None'.
1709 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
1710 returning XBufferOverflow.
1711 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
1712 area.
1713 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
1714 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
1715 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
1716 (xim_initialize, xim_close)
1717 [HAVE_X_I18N && HAVE_X11R6]: New functions.
1718 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
1719 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
1720 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
1721
1722 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
1723 and `xim_styles'.
1724 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
1725 `xic_style' and `xic_xfs'.
1726 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
1727 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
1728 (FRAME_XIM): Removed.
1729
1730 * xfns.c (supported_styles): New variable.
1731 (DEFAULT_STYLE, DEFAULT_FONT): New macros
1732 (xic_create_xfontset, best_style, xic_create_frame)
1733 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
1734 (xic_set_xfontset): New functions.
1735
142e109c
DL
17362000-01-28 Dave Love <fx@gnu.org>
1737
1738 * s/irix6-5.h: Revert last change after change to irix5-0.h.
1739
1740 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
1741
b02786f9
GM
17422000-01-28 Gerd Moellmann <gerd@gnu.org>
1743
d060bc9f
GM
1744 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
1745 for *scratch* if it already existed.
1746
b02786f9
GM
1747 * emacs.c (USAGE): New macro.
1748 (main): Use it to display usage information.
1749
2c52d7e4
EZ
17502000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
1751
1752 Support for the menu-help feature:
1753
1754 * msdos.h: Change prototypes of XMenuAddSelection and
1755 XMenuActivate.
1756
1757 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
1758 part of the line to the termscript file.
1759 (IT_clear_to_end): Clear the entire line, not just its beginning.
1760 (menu_help_message, prev_menu_help_message): New variables.
1761 (IT_menu_make_room): Make room for the help_text member.
1762 (IT_menu_display): New argument disp_help; all callers changed.
1763 If disp_help is non-zero, store the help text of the active menu
1764 item in menu_help_message.
1765 (XMenuAddPane): Initialize the help_text member to NULL.
1766 (XMenuAddSelection): New argument help_text. Store it in the
1767 XMenu structure.
1768 (XMenuActivate): New argument help_callback. If the value of
1769 menu_help_message has changed since the last time, display the
1770 menu help message text while waiting for the mouse to move. Clear
1771 the echo area before exiting.
1772 (XMenuDestroy): Free the help_text member.
1773
ffe0bcd1
GM
17742000-01-27 Gerd Moellmann <gerd@gnu.org>
1775
1776 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
1777 XMenuAddSelection. Pass help callback to XMenuActivate.
1778 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
1779
50dbd23f
EZ
17802000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
1781
1782 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
1783 and EMACS_SET_USECS.
1784
f5941bf8
GM
17852000-01-26 Dave Love <fx@gnu.org>
1786
6c67ddee
DL
1787 * editfns.c (Fchar_after, Fchar_before): Doc fix.
1788
f5941bf8
GM
1789 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
1790 an error may be signalled.
1791
9e49c990
GM
17922000-01-26 Gerd Moellmann <gerd@gnu.org>
1793
fc3cb460
GM
1794 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
1795 LD_SWITCH_SYSTEM inherited from irix5-0.h.
1796
9e49c990
GM
1797 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
1798
d0c037d8
GM
17992000-01-25 Gerd Moellmann <gerd@gnu.org>
1800
1801 * charset.c (Fstring): If there is a multibyte char among
1802 the args, always return a multibyte string.
1803
e12489f9
GM
18042000-01-25 Gerd Moellmann <gerd@gnu.org>
1805
1806 * sysdep.c (sys_select): Turn atimers off and on instead of
1807 recording and restoring old alarm handler
1808
1809 * process.c (toplevel): Include atimer.h.
1810 (create_process_1): Rewritten.
1811 (create_process): Use atimers instead of alarm.
1812 (wait_reading_process_input) [hpux]: Turn atimers off instead
1813 of turning off SIGALRM.
1814 (wait_reading_process_input): Turn off atimers instead off
1815 calling stop_polling.
1816
1817 * emacs.c (main): Call init_atimer.
1818
1819 * keyboard.c (toplevel): Include systime.h and atimer.h.
1820 (polling_for_input): Removed because unused.
1821 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
1822 (poll_timer): New variable.
1823 (poll_for_input, poll_for_input_1): New functions.
1824 (start_polling, stop_polling): Rewritten.
1825
1826 * keyboard.h (polling_for_input): Removed.
1827
1828 * atimer.h, atimer.c: New files.
1829
1830 * Makefile.in (obj): Add atimer.o.
1831 (atimer.o): New target.
1832
1833 * blockinput.h (pending_atimers): Add extern declaration.
1834 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
1835
1836 * lisp.h (popup_activated_flag): Add extern declaration.
1837
1838 * xmenu.c (popup_activated_flag): Make externally visible.
1839 (popup_activate_callback) [USE_MOTIF]: Increment
1840 popup_activated_flag.
1841 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
1842
1843 * xterm.c (toplevel): Include atimer.h.
1844 (toolkit_scroll_bar_interaction): New variable.
1845 (Fxt_process_timeouts): Removed.
1846 (x_process_timeouts): New function.
1847 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
1848 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
1849 (x_make_frame_visible): Call poll_for_input_1 instead of
1850 input_poll_signal. Don't call alarm.
1851 (x_initialize): Install timer calling x_process_timeouts.
1852
1e5279b9
DL
18532000-01-24 Dave Love <fx@gnu.org>
1854
6c67ddee 1855 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
1856 Don't use -cckr -- apparently not now necessary.
1857
edf6aeb8
EZ
18582000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
1859
1860 * msdos.c (IT_menu_display): Truncate long menu lines at the right
1861 screen boundary.
1862
9badad41
JR
18632000-01-23 Jason Rumney <jasonr@gnu.org>
1864
1865 * w32fns.c (w32_defined_color): Apply gamma correction before
1866 trying to map to the palette.
1867 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
1868 to w32_clear_rect.
1869
1870 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
1871 here. Callers changed to always pass real device context.
1872 (w32_draw_bitmap): Likewise.
1873 (w32_get_glyph_overhangs): Likewise.
1874 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
1875 one.
1876 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
1877 pfnSetScrollInfo and SetScrollRange.
1878 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
1879 back into MULE characters after decoding them.
1880 (x_get_glyph_face_and_encoding): Likewise.
1881 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
1882 GetCharABCWidthsW fails, since this is defined on Windows 9x.
1883 (x_produce_glyphs): Calculate per char metrics for a character
1884 that we know exists in default font when font_not_found_p is true.
1885
63bd786b
JR
18862000-01-22 Jason Rumney <jasonr@gnu.org>
1887
1888 * makefile.nt (intervals.obj, composite.obj): New modules.
1889 (composite.h): Added as dependency where appropriate.
1890
1891 * w32gui.h (XGCValue): New struct for emulating X GCs.
1892
1893 * w32term.h (XCharStruct): New struct for emulating X.
1894
1895 * w32console.c (turn_on_face, turn_off_face): New functions.
1896 (change_line_highlight): New prototype for new redisplay.
1897 (write_glyphs): Support multibyte text. Support faces.
1898
1899 * w32faces.c: Complete rewrite for new redisplay based on new
1900 xfaces.c.
1901
1902 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
1903 throughout. struct frame * in place of FRAME_PTR.
1904 Skeleton support for images, toolbars, tooltips from xfns.c.
1905 (Fx_create_frame): Use system default for default scroll bar
1906 width.
1907 (w32_get_arg): Renamed from x_get_arg.
1908 (Fx_file_dialog): New function.
1909 (w32_list_fonts): Check cache before asking system.
1910 (Vw32_enable_synthesized_fonts): New variable.
1911 (Vw32_enable_italics): Obsolete, removed.
1912
1913 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
1914 Use SELECTED_FRAME macro.
1915
1916 * w32menu.c: Add skeleton support for help strings on menus.
1917 (add_menu_item): Native checkbox and radio support added, but not
1918 yet enabled due to bugs.
1919 (push_menu_item): Add parameters type, selection and help.
1920 Callers updated.
1921 Formatting changes to reduce unnecessary diffs with xmenu.c.
1922
1923 * w32select.c (Fw32_set_clipboard_data): Update call to
1924 find_charset_in_str.
1925
1926 * w32term.c: Complete rewrite for new redisplay based on new
1927 xterm.c with necessary sections merged back in from old w32term.c.
1928
6ffd3cf7 19292000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
1930
1931 * data.c (set_internal): Further fix in same criterion.
1932
6ffd3cf7 19332000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
1934
1935 * data.c (set_internal): Fix the criteria for whether
1936 to swap out the old cached binding.
1937
60af03f1
DL
19382000-01-19 Dave Love <fx@gnu.org>
1939
1940 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
1941
f9be074f
KH
19422000-01-18 Kenichi Handa <handa@etl.go.jp>
1943
1944 * regex.c (re_compile_fastmap): While checking a range table for
1945 `charset', skip flag bits for a character class correctly.
1946
52b8dbf9
GM
19472000-01-17 Gerd Moellmann <gerd@gnu.org>
1948
d36100c9
GM
1949 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
1950
52b8dbf9
GM
1951 * xfns.c (x_window): Call lw_create_widget with new parameter
1952 list.
1953
1954 * widget.c (EmacsFrameSetCharSize): Change size of children first
1955 because of problems with main window geometry management under
1956 Lesstif.
1957
1958 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
1959 MENU_ITEMS_ITEM_.*.
1960 (MENU_ITEMS_ITEM_HELP): New enumerator.
1961 (push_menu_item): Add parameter HELP. Record help in menu_items.
1962 (single_menu_item, single_submenu, list_of_items): Call
1963 push_menu_item with new parameter.
1964 (single_submenu): Set help string in widget value.
1965 (menu_highlight_callback): New function.
1966 (set_frame_menubar): Call lw_create_widget with new
1967 parameter list.
1968 (xmenu_show, xdialog_show): Ditto.
1969
3139018f
GM
19702000-01-13 Gerd Moellmann <gerd@gnu.org>
1971
1972 * sound.c (Fplay_sound): Improve doc string.
1973
83c8f461
RS
19742000-01-11 Richard M. Stallman <rms@gnu.org>
1975
1976 * lisp.h (set_internal): Enter the new arg.
1977
1978 * eval.c (specbind): Record buffer-local variables specially,
1979 indicating which buffer's binding was saved.
1980 (unbind_to): Restore buffer-local variables specially
1981 in the proper buffer.
1982
1983 * data.c (set_internal): New arg BUF.
1984
1985 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
1986 * data.c (Fset): Pass new arg to set_internal.
1987 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
1988
1fab1775
GM
19892000-01-11 Gerd Moellmann <gerd@gnu.org>
1990
1991 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
1992 xprintsym.
1993
83c8f461 19942000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
1995
1996 * minibuf.c (Ftry_completion): Doc fix.
1997
7a85e4df
GM
19982000-01-11 Gerd Moellmann <gerd@gnu.org>
1999
2000 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
2001 vector, too.
2002
a970dae4
AS
20032000-01-11 Andreas Schwab <schwab@suse.de>
2004
2005 * coding.c (code_convert_region): Initialize total_skip.
2006
c65d14ee
DL
20072000-01-08 Dave Love <fx@gnu.org>
2008
2009 * eval.c (Fuser_variable_p): Check customizability too.
2010
834938d2
GM
20112000-01-07 Gerd Moellmann <gerd@gnu.org>
2012
2013 * minibuf.c (Fcompleting_read): Doc fix.
2014
e0303cd6
GM
20152000-01-05 Gerd Moellmann <gerd@gnu.org>
2016
8a26744b
GM
2017 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
2018 -L /usr/local/lib.
2019
e0303cd6
GM
2020 * xfns.c (x_create_im): New function to set IM and IC of a frame.
2021 Check that input style is supported before trying to create an
2022 IC for it.
2023 (x_window): Call x_create_im.
2024
2e471eb5
GM
20252000-01-04 Gerd Moellmann <gerd@gnu.org>
2026
560a7bd2
GM
2027 * xfns.c (current_gif_memory_src): New variable.
2028 (gif_load): Record the address of the current memory source
2029 in current_gif_memory_src.
2030 (gif_read_from_memory): Use current_gif_memory_src.
2031
f9ee84a3
GM
2032 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
2033 macros statement form.
2034
d1299cde
GM
2035 * sound.c (struct sound): Renamed from struct sound_file.
2036 (struct sound): Add members `data' and `header_size'.
2037 (enum sound_attr): Add SOUND_DATA.
2038 (current_sound, current_sound_device): Variables renamed from
2039 sound_file and sound_device.
2040 (parse_sound): Parse :data.
2041 (parse_sound): Handle sound data in strings.
2042 (find_sound_type): Function renamed from find_sound_file_type.
2043 (wav_init, au_init): Fail if sound's header_size is smaller than
2044 needed header size.
2045 (wav_play, au_play): Play sounds from string data.
2046
2e471eb5
GM
2047 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
2048
2049 * lisp.h: Add prototype for allocate_string_data.
2050
2051 * alloc.c (Fgarbage_collect): Return number of live and free
2052 strings.
2053
2054 * alloc.c (mark_buffer): Remove code in #if 0.
2055 (gc_sweep): Ditto.
2056 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
2057 (strings_consed): New variable.
2058 (allocate_string): Set it.
2059 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
2060 (Fmemory_use_counts): Return strings_consed. Use Flist.
2061
2062 * alloc.c: General cleanup in comments etc. Remove conditional
2063 compilation for `standalone'.
2064
2065 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
2066
2067 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
2068 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
2069 (DONT_COPY_FLAG): Removed.
2070 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
2071 (struct sdata, struct sblock): New
2072 (struct string_block): Rewritten.
2073 (STRINGS_IN_STRING_BLOCK): New macro.
2074 (oldest_sblock, current_sblock, total_strings, total_free_strings)
2075 (large_sblocks, string_blocks, string_free_list): New variables.
2076 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
2077 (init_strings): Rewritten.
2078 (allocate_string, allocate_string_data, compact_small_strings)
2079 (free_large_strings, sweep_strings): New functions.
2080 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
2081 (struct string_block_head, current_string_block)
2082 (first_string_block, large_string_blocks, STRING_FULLSIZE)
2083 (STRING_PAD): Removed.
2084 (make_uninit_multibyte_string, make_pure_string): Rewritten.
2085 (Fgarbage_collect): Don't set mark bit in large strings.
2086 (mark_object): Mark strings differently. Mark symbol names
2087 differently.
2088 (survives_gc_p): Test marked strings differently.
2089 (gc_sweep): Sweep strings differently, unmark strings in
2090 symbol names.
2091 (compact_strings): Removed.
2092
42608ba8
EZ
20932000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
2094
2095 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
2096 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
2097
e0a09e1a
KH
20982000-01-04 Kenichi Handa <handa@etl.go.jp>
2099
dd9f0750
KH
2100 * fileio.c (Finsert_file_contents): Signal error if visiting file
2101 in a non-empty buffer.
2102
3c0f3b15 2103 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 2104
44cd3ae5
GM
21052000-01-03 Gerd Moellmann <gerd@gnu.org>
2106
2107 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
2108 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
2109
2110 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
2111
c182a70f
EZ
21122000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
2113
2114 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
2115 need to test for MSDOS frames.
2116
24480d5b
EZ
21172000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
2118
2119 * dosfns.c (unspecified_colors): Remove.
2120 (msdos_stdcolor_idx): Use global variables unspecified_fg and
2121 unspecified_bg.
2122 (msdos_stdcolor_name): Return strings for unspecified fore- and
2123 back-ground colors.
2124
2125 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 2126 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
2127 (tty_color_name): Return Lisp strings for unspecified fore- and
2128 back-ground colors.
2129 (Finternal_set_lisp_face_attribute): Remove the special treatment
2130 for Qunspecified_{f,b}g.
2131 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
2132 string.
2133
047f434a
GM
21342000-01-03 Gerd Moellmann <gerd@gnu.org>
2135
2136 * xdisp.c (reseat_at_next_visible_line_start): Position before
2137 newline only if ending up on a newline.
2138 (next_element_from_ellipsis): Return success. Handle case of
2139 displaying no ellipsis. Fix case of ellipsis defined in display
2140 table.
2141 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
2142 returns 0.
2143
d684c676
EZ
21442000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
2145
2146 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
2147 (Fcolor_supported_p): Renamed from face-color-supported-p.
2148
5fe1d139
EZ
21492000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
2150
2151 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
2152 list of colors renamed to tty-defined-color-alist.
2153 (tty_color_name): Pass the frame to tty-color-by-index.
2154 (realize_tty_face): tty-color-alist is now a function which
2155 accepts the frame as argument.
2156
2157 * term.c (Ftty_display_color_p): Accept an optional argument
2158 FRAME.
2159
816be8b8
EZ
21602000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
2161
2162 * term.c (insert_glyphs): Pass glyph, not &glyph, to
2163 encode_terminal_code.
2164
b635321e
EZ
21652000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
2166
2167 * dispnew.c (mode_line_string): Support termcap frames as well.
2168
9b784e96
GM
21692000-01-01 Gerd Moellmann <gerd@gnu.org>
2170
27189709
GM
2171 * syntax.c (Fforward_word): Undo previous change.
2172
2173 * editfns.c (Fconstrain_to_field): Don't constrain if
2174 inhibit-field-text-motion is non-nil.
2175 (Fline_beginning_position): Undo previous change.
2176 (Fline_end_position): Ditto.
2177
2178 * syntax.c (Fforward_word): Notice field boundaries only if
2179 inhibit-field-text-motion is nil.
2180
2181 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
2182
2183 * editfns.c (Vinhibit_field_text_motion): New variable.
2184 (inhibit-field-text-motion): New DEFVAR_LISP.
2185 (Fline_beginning_position, Fline_end_position): Notice field
2186 boundaries only if inhibit-field-text-motion is nil.
2187
45158a91
GM
2188 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
2189 All calls adjusted.
2190 (x_build_heuristic_mask): Likewise.
2191 (xbm_load_image_from_file): Change error output.
2192 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
2193 (gif_load, gs_load, x_kill_gs_process): Ditto.
2194
9b784e96
GM
2195 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
2196 color indices when accessing raster pixels.
63cec32f
GM
2197 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
2198 one of :file or :data.
2199 (enum pbm_keyword_index): Add PBM_DATA.
2200 (pbm_format): Add :data.
2201 (pbm_image_p): Allow either :file or :data.
2202 (pbm_read_file): New function.
2203 (pbm_scan_number): Rewritten to read from string.
2204 (pbm_load): Support :data.
9b784e96 2205
5ad6a5fb
GM
22061999-12-31 Gerd Moellmann <gerd@gnu.org>
2207
2208 * xfns.c: New image functions adapted to Emacs conventions.
2209 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
2210 variable `file'.
2211
63448a4d
WP
22121999-12-31 William M. Perry <wmperry@aventail.com>
2213
2214 * xfns.c (jpeg_format): Added the :data keyword
2215 (jpeg_image_p): JPEG is valid with :file _or_ :data
2216 (jpeg_memory_src): Defined new JPEG image source to read from a
2217 memory buffer.
2218 (jpeg_load): Pay attention to the :data keyword if specified.
2219 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
2220 found.
2221 (png_format): Added the :data keyword
2222 (png_image_p): PNG is valid with :file _or_ :data
2223 (png_read_from_memory): New PNG read function to read from a
2224 memory buffer.
2225 (png_load): Pay attention to the :data keyword if specified. Uses
2226 png_set_read_fn() instead of png_init_io() if specified.
2227 (tiff_format): Added the :data keyword for TIFF images.
2228 (tiff_image_p): TIFF is valid with :file _or_ :data
2229 (tiff_read_from_memory): Defined new TIFF I/O functions to read
2230 from a memory buffer.
2231 (tiff_load): Pay attention to the :data keyword if specified.
2232 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
2233 (gif_format): Added the :data keyword
2234 (gif_image_p): GIF is valid with :file _or_ :data
2235 (gif_read_from_memory): New GIF input function to read from a
2236 memory buffer.
c65d14ee 2237 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
2238 instead of DGifOpenFileName() if specified.
2239
c880678e
GM
22401999-12-31 Gerd Moellmann <gerd@gnu.org>
2241
2242 * xdisp.c (next_element_from_buffer): Change assertion at the end
2243 because it doesn't hold when there's an overlay string at the end
2244 from which we deliver an image.
2245
8ccb9a54
EZ
22461999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
2247
2248 * msdos.c (IT_update_begin): Don't dereference members of struct
2249 window for deleted windows.
2250
12ce2351
GM
22511999-12-30 Gerd Moellmann <gerd@gnu.org>
2252
a915c648
GM
2253 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
2254 a hook, and the hook has a non-nil `no-self-insert' property, let
2255 the return value of the hook specify whether an expansion took
2256 place. If it returns nil, no expansion has been performed.
2257
12ce2351
GM
2258 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
2259 differently.
2260
04ee4f45
EZ
22611999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
2262
2263 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
2264
7f4bc0c3
EZ
22651999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
2266
2267 * dispnew.c (mode_line_string): Support MS-DOS frames.
2268
dac204bc
GM
22691999-12-29 Gerd Moellmann <gerd@gnu.org>
2270
2271 * eval.c (syms_of_eval): Initialize debugger_may_continue.
2272
7b712ad8
KH
22731999-12-29 Kenichi Handa <handa@etl.go.jp>
2274
2275 * process.c (read_process_output): Fix the args CHARPOS and LENINS
2276 to signal_after_change.
2277
adb9900f
EZ
22781999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
2279
41ad069b
EZ
2280 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
2281 dimensions changed, invalidate the mouse highlight info.
2282 (disable_mouse_highlight, help_echo, previous_help_echo): New
2283 variables.
2284 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
2285 (fast_find_position, IT_note_mode_line_highlight)
2286 (IT_note_mouse_highlight): New functions.
2287 (IT_update_begin): If the redisplay affects the window where the
2288 mouse highlight is, clear the highlight. If the frame where the
2289 highlight was displayed was killed, invalidate the highlight
2290 info.
2291 (IT_update_end): Reset the highlight flag. Reset the mouse
2292 highlight-defer flag.
2293 (IT_frame_up_to_date): New function, if mouse highlight was
2294 deferred due to GC, do it now.
2295 (internal_terminal_init): Initialize mouse-highlight related
2296 members of the_only_x_display. Assign IT_frame_up_to_date to
2297 frame_up_to_date_hook.
2298 (dos_rawgetc): If the mouse moved, update mouse highlight. If
2299 help_echo changed value, generate a HELP_EVENT event.
2300 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
2301
adb9900f
EZ
2302 * msdos.h (struct display_info): New.
2303 (struct x_output): Add the display_info member.
2304 (FRAME_X_DISPLAY_INFO): New macro.
2305
481b5054
GM
23061999-12-28 Gerd Moellmann <gerd@gnu.org>
2307
2308 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
2309 if MODIFF > 1.
6448a6b3 2310 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
2311
2312 * buffer.c (modify_overlay): Always compute unchanged info.
2313
a2882b0d
KH
23141999-12-27 Kenichi Handa <handa@etl.go.jp>
2315
2316 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
2317
89ba5b5f
KH
23181999-12-27 Kenichi Handa <handa@etl.go.jp>
2319
2320 The following changes are to use more bits for face IDs.
2321
2322 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
2323 lowest 8 bits are single byte character code, the bits above are
2324 face ID.
481b5054 2325 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 2326 above.
481b5054
GM
2327 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
2328 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
2329
2330 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
2331 of GLYPH_MASK_CHAR.
2332
2333 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
2334 of GLYPH_MASK_CHAR.
2335
2336 * dispextern.h (struct glyph): Make face_id and padding_p the top
2337 level members. Change members in union `u'.
2338 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
2339 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
2340 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
2341 (CHAR_GLYPH_PADDING_P): Likewise.
2342 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
2343 characters.
2344
481b5054 2345 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
2346 for the change of struct glyph.
2347 (line_draw_cost): Adjusted for the change of
2348 GLYPH_FROM_CHAR_GLYPH.
2349 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
2350
2351 * term.c (encode_terminal_code): Adjusted for the change of struct
2352 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 2353 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
2354 change of struct glyph.
2355
2356 * xdisp.c: All codes adjusted for the change of struct glyph.
2357
2358 * xterm.c: All codes adjusted for the change of struct glyph.
2359
5bcd116c
KH
23601999-12-27 Kenichi Handa <handa@etl.go.jp>
2361
2362 * composite.h (struct composition): Change the order of declaring
2363 members to reduce the byte size of the structure.
2364
f21b06b7
GM
23651999-12-25 Gerd Moellmann <gerd@gnu.org>
2366
2367 * search.c (looking_at_1): Reset immediate_quit before modifying
2368 global data.
2369
e36557c9
KH
23701999-12-24 Kenichi Handa <handa@etl.go.jp>
2371
2372 * process.c (read_process_output): Fix the arg FROM to
2373 update_compositions.
2374
83c8f461 23751999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
2376
2377 * search.c (Freplace_match): For nonliteral replacement in buffer,
2378 construct all the new text first, then insert all at once.
2379
0b863bd9
DL
23801999-12-22 Dave Love <fx@gnu.org>
2381
2382 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
2383
6d8e8ef3
GM
23841999-12-22 Gerd Moellmann <gerd@gnu.org>
2385
28d7281d
GM
2386 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
2387 lead to size changes to after the X window has been created.
2388
e22ef6eb 2389 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
2390 variable in xassert.
2391
8affcced
KH
23921999-12-22 Kenichi Handa <handa@etl.go.jp>
2393
2394 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 2395 only when the frame is not for a window system.
8affcced 2396
f2be1146
GM
23971999-12-22 Gerd Moellmann <gerd@gnu.org>
2398
deca1348
GM
2399 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
2400 redisplay after changing the multibyteness of a buffer.
2401
f2be1146
GM
2402 * xterm.c (XTread_socket): At the beginning of the loop, pass the
2403 frame's X window to XFilterEvent instead of None because that's
2404 the X window for which the IC was created. This makes dead
2405 accents work when the pointer is not in Emacs' frame.
2406 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
2407
a744a2ec
DL
24081999-12-20 Dave Love <fx@gnu.org>
2409
2410 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
2411
9e6985ed
GM
24121999-12-19 Gerd Moellmann <gerd@gnu.org>
2413
2414 * eval.c (debugger_may_continue): New variable.
2415 (syms_of_eval): Add a DEFVAR_BOOL for it.
2416 (call_debugger): Bind it.
2417
3b620731
EZ
24181999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
2419
2420 * msdos.c (IT_set_face): Don't swap face colors when highlight or
2421 fp->tty_reverse_p is set, unless the computed colors are identical
2422 to frame colors. Print both original and computed colors to
2423 termscript file.
2424 (IT_write_glyphs): Track the changes in handling of composite
2425 characters.
2426 (IT_set_frame_parameters): Don't set frame colors from
2427 unspecified-fg and unspecified-bg pseudo-colors.
2428
0f9a51c4
DL
24291999-12-17 Dave Love <fx@gnu.org>
2430
2431 * data.c (Fkeywordp): New function.
2432 (syms_of_data): Install it.
2433
363e4e42
EZ
24341999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
2435
2436 * xfaces.c (tty_defined_color): Fix last change.
2437
cfad01b4
GM
24381999-12-15 Gerd Moellmann <gerd@gnu.org>
2439
2440 * xdisp.c (redisplay_window) <optional new window start>: Check
2441 that window start is in [BEGV..ZV].
2442
f9d2fdc4
EZ
24431999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
2444
2445 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
2446 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
2447
2448 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
2449 (syms_of_xfaces): Initialize and staticpro them.
2450 (tty_defined_color): If the color name is unspecified-fg or
2451 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
2452 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
2453 (tty_color_name): If the color pixel value is either
2454 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
2455 Qunspecified_fg or Qunspecified_bg, respectively.
2456 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
2457 and Qunspecified_bg for foreground and background colors.
2458 (realize_default_face): If the foreground and background colors
2459 are not specified, default to Qunspecified_fg and Qunspecified_bg.
2460 (realize_tty_face): By default, set the face colors to
2461 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
2462 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
2463 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
2464 Reverse the colors if the default colors were reversed.
2465
2466 * dispnew.c (init_display): Initialize the frame pixels of the
2467 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
2468 FACE_TTY_DEFAULT_BG_COLOR.
2469
2470 * term.c (turn_on_face): If the default fore- and background
2471 colors are reversed, enter inverse video mode. Don't send color
2472 escape sequences for unspecified foreground and background colors.
2473 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
2474
2475 * dosfns.c (unspecified_colors): New variable.
2476 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
2477 color names, return FACE_TTY_DEFAULT_FG_COLOR and
2478 FACE_TTY_DEFAULT_BG_COLOR, respectively.
2479 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
2480 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
2481 Qunspecified_bg, respectively.
2482
2483 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
2484 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
2485
e19539f1
KH
24861999-12-15 Kenichi Handa <handa@etl.go.jp>
2487
2488 * coding.c (code_convert_region): Fix the secoding arg to
2489 update_compositions.
2490
5ec14d3c
KH
24911999-12-15 Kenichi Handa <handa@etl.go.jp>
2492
2493 The following changes are for the new composition mechanism. We
2494 have deleted `composition' charset and composite characters,
2495 instead introduced a special text property `composition'.
2496
2497 * Makefile.in (INTERVAL_SRC): Include composite.h.
2498 (INTERVAL_OBJ): Include composite.o.
2499 (SOME_MACHINE_OBJECTS): Include composite.o.
2500 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
2501 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
2502 Depend on composite.h.
2503 (doc.o): Depend on charset.h.
2504 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
2505 (composite.o): New target.
2506
2507 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
2508
2509 * callproc.c (Fcall_process): Call code_convert_string to encode
2510 arguments. Use CODING_REQUIRE_DECODING to check if the process
2511 output should be decoded.
2512
2513 * casefiddle.c: Include composite.h.
2514 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
2515 multibyte character. Adjusted for the change of CHAR_STRING.
2516 (casify_region): Likewise. Call update_compositions.
2517
2518 * category.h (CATEGORY_SET): Delete codes for a composite
2519 character.
2520
2521 * category.c (word_boundary_p): Delete codes for a composite
2522 character.
2523 (Fmake_category_table): New function.
2524 (syms_of_category): Defsubr it.
2525
2526 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
2527 (ccl_driver): Delete codes for a composite character.
2528
2529 * charset.h: In this entry, just `Modified' means that codes for a
2530 composite character is deleted.
2531 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
2532 (charset_composition) (MIN_CHAR_COMPOSITION)
2533 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
2534 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
2535 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
2536 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
2537 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
2538 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
2539 Modified.
2540 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
2541 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
2542 non_ascii_char_to_string.
2543 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
2544 (STRING_CHAR_AND_LENGTH): Likewise.
2545 (FETCH_CHAR_ADVANCE): New macro.
2546 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
2547 (MAX_MULTIBYTE_LENGTH): New macro.
2548 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
2549 (find_charset_in_str): Argument adjusted.
2550 (CHAR_LEN): Modified.
2551
2552 * charset.c: In this entry, just `Modified' means that codes for a
2553 composite character is deleted.
2554 (Qcomposition) (leading_code_composition)
2555 (charset_composition) (min_composite_char) (cmpchar_table)
2556 (cmpchar_table_size) (n_cmpchars): Deleted.
2557 (SPLIT_COMPOSITE_SEQ): Deleted.
2558 (SPLIT_MULTIBYTE_SEQ): Modified.
2559 (char_to_string): Renamed from non_ascii_char_to_string.
2560 Modified.
2561 (string_to_char): Renamed from string_to_non_ascii_char.
2562 (split_string): Renamed from split_non_ascii_string.
2563 (char_printable_p) (Fsplit_char)
2564 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
2565 (char_bytes) (Fchar_width) (strwidth): Modified.
2566 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
2567 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
2568 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
2569 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
2570 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
2571 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
2572 (Fcmpchar_cmp_count): Deleted.
2573 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
2574 (init_charset_once): Modified.
2575 (syms_of_charset): Modified.
2576
2577 * cmds.c (internal_self_insert): Adjusted for the change of
2578 CHAR_STRING.
2579
2580 * coding.h (emacs_code_class_type): Delete the member
2581 EMACS_leading_code_composition.
2582 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
2583 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
2584 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
2585 (COMPOSING_WITH_RULE_P): Macros deleted.
2586 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
2587 macros.
2588 (struct composition_data): New structure.
2589 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
2590 (struct coding_system): New members composition_rule_follows,
2591 cmp_data, cmp_data_start, cmp_data_index.
2592 (coding_save_composition) (coding_free_composition_data)
2593 (coding_adjust_composition_offset): Extern them.
2594
2595 * coding.c: Include composite.h.
2596 (DECODE_CHARACTER_ASCII): Don't handle composition here.
2597 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
2598 of multibyte code here.
2599 (DECODE_CHARACTER_DIMENSION2): Likewise.
2600 (detect_coding_emacs_mule): Change the case label from
2601 EMACS_leading_code_composition to 0x80.
2602 (detect_coding_iso2022): Handle new composition sequence.
2603 (DECODE_ISO_CHARACTER): Likewise.
2604 (check_composing_code): Deleted.
2605 (coding_allocate_composition_data): New function.
2606 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
2607 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
2608 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
2609 (decode_coding_iso2022): Handle new composition sequence.
2610 (ENCODE_ISO_CHARACTER): Don't check composition here.
2611 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
2612 (ENCODE_COMPOSITION_NO_RULE_START)
2613 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
2614 (ENCODE_COMPOSITION_END): Handle new composition sequence.
2615 (ENCODE_COMPOSITION_FAKE_START): New macro.
2616 (encode_coding_iso2022): Handle new composition sequence.
2617 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
2618 (encode_coding_sjis_big5): Ignore composition.
2619 (setup_coding_system): Initialize new members of struct
2620 coding_system. Enable composition only when the coding system has
2621 `composition' property t.
2622 (coding_free_composition_data) (coding_adjust_composition_offset)
2623 (coding_save_composition) (coding_restore_composition): New
2624 functions.
2625 (code_convert_region): Call coding_save_composition for encoding
2626 and coding_allocate_composition_data for decoding. Don't skip
2627 ASCII characters if we handle composition on encoding. Call
2628 signal_after_change with Check_BORDER.
2629 (code_convert_string): Call coding_save_composition for encoding
2630 and coding_allocate_composition_data for decoding. Don't skip
2631 ASCII characters if we handle composition on encoding.
2632 (code_convert_string1): Set Vlast_coding_system_used after calling
2633 code_convert_string.
2634 (code_convert_string_norecord): Disable composition.
2635 (Fset_terminal_coding_system_internal): Likewise.
2636 (Fset_safe_terminal_coding_system_internal): Likewise.
2637 (Fset_keyboard_coding_system_internal): Likewise.
2638 (init_coding_once): Set emacs_code_class[0x80] to
2639 EMACS_invalid_code.
2640
2641 * composite.h: New file.
2642
2643 * composite.c: New file.
2644
2645 * data.c (Faref): Delete codes for a composite character..
2646 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
2647
2648 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
2649 (struct glyph): Add new sub-structure cmp to the union `u'.
2650 (enum display_element_type): New member IT_COMPOSITION.
2651 (enum prop_idx): New member COMPOSITION_PROP_IDX.
2652 (struct it): New members cmp_id, cmp_len.
2653
2654 * dispnew.c (direct_output_forward_char): Check point moving into
2655 or out of a composition. If so, give up direct method.
2656
2657 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
2658
2659 * editfns.c (Fchar_to_string): Adjusted for the change of
2660 CHAR_STRING.
2661 (general_insert_function): Likewise.
2662 (Finsert_char): Likewise.
2663 (Fsubst_char_in_region): Likewise. Call update_compositions.
2664 (Ftranslate_region): Call update_compositions.
2665 (Ftranspose_regions): Call update_compositions.
2666
2667 * emacs.c (main): Call syms_of_composite.
2668
2669 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
2670 CHAR_STRING.
2671 (Finsert_file_contents): Set Vlast_coding_system_used before
2672 calling signal_after_change. Call update_compositions if some
2673 texts are inserted..
2674 (Fwrite_region): Adjusted for the change of a_write and e_write.
2675 (a_write): Argument changed. Work based on character position,
2676 not byte position.
2677 (e_write): Argument changed. Handle new way of composition.
2678
2679 * fns.c (Flength): The length of char-table is MAX_CHAR.
2680 (concat): Adjusted for the change of CHAR_STRING.
2681 (Ffillarray): Adjusted for the change of CHAR_STRING.
2682 (Fset_char_table_default): Delete codes for a composite character.
2683 (hash_put): Return hash index.
2684
2685 * fontset.h (struct font_info): New member vertical_centering.
2686 (Vvertical_centering_font_regexp): Extern it.
2687
2688 * fontset.c (Vvertical_centering_font_regexp): New variable.
2689 (syms_of_fontset): Declare it as a Lisp variable and initialize.
2690 Set Vignore_relative_composition to nil.
2691 (fs_load_font): Initialize `vertical_centering' of struct
2692 font_info.
2693
2694 * indent.c (check_composition): New function.
2695 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
2696 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
2697 (current_column_1): Handle new way of composition.
2698 (Fmove_to_column): Likewise.
2699 (compute_motion): Likewise.
2700
2701 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
2702 (insert_char): Likewise.
2703 (insert): Call update_compositions.
2704 (insert_and_inherit): Likewise.
2705 (insert_before_markers): Likewise.
2706 (insert_before_markers_and_inherit): Likewise.
2707 (insert_from_string): Likewise.
2708 (insert_from_string_before_markers): Likewise.
2709 (insert_from_buffer): Likewise.
2710 (replace_range): Likewise.
2711 (count_combining_composition): Deleted.
2712 (count_combining_before): Delete codes for a composite character.
2713 (count_combining_after): Likewise.
2714 (del_range_1): Call update_compositions.
2715 (del_range_byte): Likewise.
2716 (del_range_both): Likewise.
2717 (Fcombine_after_change_execute): Likewise.
2718
2719 * intervals.h: Include composite.h.
2720 (get_property_and_range): Extern it.
2721 (Vtext_property_default_nonsticky): Extern it.
2722
2723 * intervals.c (adjust_intervals_for_insertion): To check stickines
2724 of properties, pay attention to text-property-default-nonsticky.
2725 (merge_properties_sticky): Likewise.
2726 (get_property_and_range): New function.
2727
2728 * keyboard.c (Vdisable_point_adjustment): New variable.
2729 (Vglobal_disable_point_adjustment): New variable.
2730 (syms_of_keyboard): Declare them as Lisp variables.
2731 (command_loop_1): Check them and call adjust_point_for_property if
2732 necessary.
2733 (adjust_point_for_property): New function.
2734
2735 * keymap.c (push_key_description): Adjusted for the change of
2736 CHAR_STRING.
2737 (Ftext_char_description): Likewise.
2738
2739 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
2740 (hash_put): Adjusted for the change of the definition.
2741 (signal_after_change): Likewise.
2742 (check_point_in_composition): Extern it.
2743
2744 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
2745 Delete a code that handles an invalid too-long multibyte sequence
2746 because we are now sure that we never encounter with such a
2747 sequence.
2748 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
2749 MAX_LENGTH_OF_MULTI_BYTE_FORM.
2750 (init_obarray): Likewise.
2751 (read1): Likewise. Adjusted for the change of CHAR_STRING.
2752
2753 * print.c (printchar): Adjusted for the change of CHAR_STRING.
2754
2755 * process.c: Include composite.h.
2756 (read_process_output): Call update_compositions.
2757
2758 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
2759
2760 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
2761
2762 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
2763 character.
2764
2765 * term.c (encode_terminal_code): Delete codes for a composite
2766 character. Adjusted for the change of CHAR_STRING.
2767 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
2768 Delete codes for a composite character.
2769
2770 * textprop.c (Vtext_property_default_nonsticky): New variable
2771 (syms_of_textprop): Declare it as a Lisp variable.
2772
2773 * window.c (Frecenter): Clear all caches of compositions.
2774
2775 * xdisp.c (it_props): Add an entry for composition.
2776 (face_before_or_after_it_pos): For composition, check face of a
2777 character after the composition.
2778 (handle_composition_prop): New function.
2779 (get_next_display_element): Adjusted for the change of
2780 CHAR_STRING.
2781 (set_iterator_to_next): Handle the case that it->method ==
2782 next_element_from_composition.
2783 (next_element_from_composition): New function.
2784 (message_dolog): Adjusted for the change of CHAR_STRING.
2785 (set_message_1): Likewise.
2786 (check_point_in_composition): New function.
2787 (reconsider_clip_changes): If point moved into or out of
2788 composition, set b->clip_changed to 1 to force updating of the
2789 screen.
2790 (disp_char_vector): Delete codes for a composite character.
2791 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
2792
2793 * xfaces.c (choose_face_fontset_font): Delete codes for a
2794 composite character.
2795 (realize_x_face): Likewise. Change a place to set local variable
2796 `f' to avoid a bug of GCC 2.8.1 on Solaris.
2797
2798 * xfns.c: Include intervals.h.
2799 (syms_of_xfns): Make `display' property nonsticky by default.
2800
2801 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
2802 for find_charset_in_str.
2803
2804 * xterm.h (struct x_output): Change member font_baseline to
2805 baseline_offset.
2806
2807 * xterm.c (x_append_glyph): Setup members of struct glyph properly
2808 for composition.
2809 (x_append_composite_glyph): New function.
2810 (VCENTER_BASELINE_OFFSET): New macro.
2811 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
2812 of struct it for the composition. Cache pixel offsets in the
2813 struct composition. Delete codes for a composite character.
2814 Handle Vignore_relative_composition in composition code.
2815 (struct glyph_string): Delete member cmpcharp, add new member cmp.
2816 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
2817 (x_compute_glyph_string_overhangs): Likewise.
2818 (x_get_glyph_overhangs): Delete codes for a composite character.
2819 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
2820 (x_draw_glyph_string_background): Likewise. Delete codes for
2821 checking s->gidx for a composition.
2822 (x_draw_glyph_string_foreground): Delete code for a composite
2823 character.
2824 (x_draw_composite_glyph_string_foreground): New function.
2825 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
2826 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
2827 (struct work): Deleted.
2828 (x_fill_composite_glyph_string): Argument changed. Mostly
2829 rewritten for that.
2830 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
2831 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
2832 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
2833 (BUILD_GLYPH_STRINGS): For composition, call
2834 BUILD_COMPOSITE_GLYPH_STRING.
2835 (x_new_font): Initialize f->output_data.x->baseline_offset, not
2836 f->output_data.x->font_baseline.
2837
c3c60f13
GM
28381999-12-14 Gerd Moellmann <gerd@gnu.org>
2839
2840 * xterm.c (show_mouse_face): Don't use updated_area, use
2841 TEXT_AREA.
2842
83c8f461 28431999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
2844
2845 * minibuf.c (Fall_completions): Doc fix.
2846
83c8f461 28471999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
2848
2849 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
2850 has been changed by the Lisp code.
2851
d8eccf12
GM
28521999-12-12 Gerd Moellmann <gerd@gnu.org>
2853
2854 * xfns.c: Indentation fixes.
2855
ae56feae
SM
28561999-12-10 Stefan Monnier <monnier@cs.yale.edu>
2857
2858 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
2859
dfa1c6ae
GM
28601999-12-10 Gerd Moellmann <gerd@gnu.org>
2861
2862 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
2863 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
2864
2865 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
2866 to frame.h.
2867
ec18280f
SM
28681999-12-09 Stefan Monnier <monnier@cs.yale.edu>
2869
2870 * keyboard.c (Qratio): New symbol.
2871 (scroll_bar_parts): Add `Qratio' to it.
2872 (syms_of_keyboard): Init `Qratio'.
2873 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
2874 * xterm.c (#includes): Allow compilation with only Xaw.
2875 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
2876 (xt_action_hook): Replace XAW3D by XAW.
2877 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
2878 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
2879 Determine epsilon dynamically and don't try to be too clever.
2880 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
2881 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
2882 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
2883 scrollbar (using `ratio').
2884 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
2885 scrollbar we have so as to set it up more optimally and to fix
2886 xaw3d_arrow_scroll and xaw3d_pick_top.
2887 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
2888 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
2889 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
2890 is not ignored, using a major gross hack.
2891 (x_initialize): Init default values for xaw3d_arrow_scroll and
2892 xaw3d_pick_top.
2893
83b6d970
DL
28941999-12-09 Dave Love <fx@gnu.org>
2895
2896 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
2897
3648c842
GM
28981999-12-08 Gerd Moellmann <gerd@gnu.org>
2899
2900 * eval.c: Remove conditional compilation on `standalone'.
2901 (call_debugger): When entering the debugger while redisplaying,
2902 reset redisplaying_p, and go back to the top-level if the debugger
2903 returns.
2904
05e71564
GM
29051999-12-07 Gerd Moellmann <gerd@gnu.org>
2906
2907 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
2908 basic faces are realized before trying to use face `menu'.
2909
2910 * window.c (delete_window): Block input for the time window
2911 matrices are being changed.
2912
b46cd536
DL
29131999-12-07 Dave Love <fx@gnu.org>
2914
2915 * lread.c (Fintern_soft): Fix newlines in doc string.
2916
96acb1f7
GM
29171999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
2918
2919 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
2920 duplicate definition of ElfW.
2921 (find_section): Copied from unexsgi.c.
2922 (unexec): Use find_section. Adjust whitespace. Initialize
2923 new_data2_offset based on old_data, not sbss (this fixes a bug on
2924 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
2925 Adjust test for presence of .mdebug section to the new return
2926 value of find_section.
2927
29281999-12-07 Gerd Moellmann <gerd@gnu.org>
2929
2930 * unexelf.c: Merge changes from 20.5.
2931 (unexec): Handle .lit4 and .lit8 unconditionally.
2932
2933 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
2934 unexsgi.o again.
2935
2936 * m/iris5d.h (UNEXEC): Likewise.
2937
7dae4502
SM
29381999-12-06 Stefan Monnier <monnier@cs.yale.edu>
2939
2940 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
2941 (syms_of_editfns): Register it.
2942 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
2943 (del_range_1, del_range_2): Add a ret_string argument to
2944 request that the deleted text be returned.
2945 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 2946 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
2947 * casefiddle.c (casify_region): Update del_range_1 call.
2948 * coding.c (code_convert_region): Update del_range_2 call.
2949 * fileio.c (Finsert_file_contents): Update del_range_2 call.
2950
397e4fae
GM
29511999-12-06 Gerd Moellmann <gerd@gnu.org>
2952
2953 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
2954
3d973f71
GM
29551999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
2956
2957 * lread.c (Fintern_soft): Accept a symbol argument.
2958
740e985f
EZ
29591999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
2960
2961 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
2962
2963 * insdel.c (adjust_markers_for_delete): Fix last change.
2964
2d764c78
EZ
29651999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
2966
2967 Changes for automatic remapping of X colors on terminal frames:
2968
2969 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
2970 frames.
2971 (Vface_tty_color_alist): Remove.
2972 (tty_defined_color): New function.
2973 (defined_color): Rewrite to support any type of frame.
2974 (tty_color_name): New function.
2975 (face_color_supported_p, Fface_color_gray_p,
2976 Fface_color_supported_p): Support non-X frames.
2977 (load_color): Enclose the color name in quotes, in the log
2978 messages. Remove DOS-specific version of load_color.
2979 (realize_tty_face): Take the supported colors from
2980 tty-color-alist. Support translation of X colors to the closest
2981 tty color, for both MSDOS and tty frames.
2982 [MSDOS]: Don't invert face colors if they were taken from the
2983 frame colors.
2984 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
2985
2986 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
2987 Define a mostly empty surrogate.
2988 (tty_display): Declare.
2989
2990 * frame.c (make_terminal_frame) [!macintosh]: Don't use
2991 tty_display.
2992 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
2993 frames when the frame's param_alist includes 'reverse.
2994 (tty_display): Define.
2995 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
2996 output_data.x member.
2997 (Fframe_parameters): Return foreground and background color names
2998 on tty frames as well, in addition to MSDOS frames.
2999
3000 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
3001 selected_frame.
3002 (struct x_output): Remove unused members; document who uses each
3003 member.
3004 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
3005 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
3006 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
3007 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
3008 unused macro definintions.
3009
3010 * msdos.c (IT_set_frame_parameters): Don't call
3011 recompute_basic_faces, the next redisplay will, anyway.
3012 (x_current_display): Remove unused variable.
3013 Many functions: changes for Lisp_object selected_frame.
3014 (IT_set_face): If the tty_reverse_p flag is set for the face,
3015 reverse the foreground and background colors.
3016 (Fmsdos_remember_default_colors): New function.
3017 (syms_of_msdos): Defsubr it.
3018 (IT_set_frame_parameters): Use initial_screen_colors[] when
3019 creating a new frame. If the frame parameters include 'reverse,
3020 swap the foreground and background colors.
3021 (internal_terminal_init): Initialize initial_screen_colors to -1.
3022 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
3023 cus-start.el.
3024
3025 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
3026
3027 * xfns.c (x_defined_color): Rename from defined_color. All
3028 callers changed.
3029 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
3030 all callers changed.
3031 (Fxw_color_values): Renamed from Fx_color_values; all callers
3032 changed.
3033 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
3034 callers changed.
3035 (x_window_to_frame, x_any_window_to_frame,
3036 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
3037 x_top_window_to_frame): Use !FRAME_X_P instead of
3038 f->output_data.nothing.
3039 * xterm.h (x_defined_color): Rename from defined_color.
3040
3041 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
3042 f->output_data.nothing.
3043 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
3044 all callers changed.
3045 (Fxw_color_values): Renamed from Fx_color_values; all callers
3046 changed.
3047 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
3048 callers changed.
3049
3050 * dispextern.h (tty_color_name): Add prototype.
3051
3052 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
3053 f->output_data.nothing.
3054 * w32menu.c (menubar_id_to_frame): Likewise.
3055 * w32term.h (w32_output): Declare.
3056
3057 * dosfns.c (Qmsdos_color_translate): Remove.
3058 (msdos_stdcolor_name): Now returns a Lisp_Object.
3059 * dosfns.h (Qmsdos_color_translate): Remove.
3060
3061 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
3062
b3e5232e
KH
30631999-12-06 Kenichi Handa <handa@etl.go.jp>
3064
3065 * fileio.c (decide_coding_unwind): Renamed from
3066 set_auto_coding_unwind.
3067 (Finsert_file_contents): Make single unwind protect to call both
3068 Vset_auto_coding_function and Ffind_operation_coding_system.
3069
3070 * insdel.c (adjust_markers_for_delete): Make it non-static.
3071
db0e466c
SM
30721999-12-04 Stefan Monnier <monnier@cs.yale.edu>
3073
3074 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
3075 operators and handle them properly.
3076 * regex.h (RE_ALL_GREEDY): New option.
3077 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
3078 sorting would put it.
3079 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
3080 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
3081
22afa6e8
DL
30821999-12-04 Dave Love <d.love@dl.ac.uk>
3083
3084 * m/arm.h: New file.
3085
40afb967
DL
30861999-12-03 Dave Love <fx@gnu.org>
3087
3088 * editfns.c (Fmessage_or_box): Use use_dialog_box.
3089
ddf8eff5
GM
30901999-12-02 Gerd Moellmann <gerd@gnu.org>
3091
3092 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
3093 for building with Motif.
3094
3095 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
3096 unexelf.o.
3097
3098 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
3099
fa09a82d
DL
31001999-12-01 Dave Love <fx@gnu.org>
3101
3102 * emacs.c (main): Set LANG=C iff AX3_2 defined.
3103
ddf8eff5
GM
31041999-11-28 Gerd Moellmann <gerd@gnu.org>
3105
3106 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
3107 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
3108 macros.
3109
3110 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
3111
fa09a82d
DL
31121999-11-28 eliz <eliz@dlpx1>
3113
3114 * emacs.c (synchronize_locale): Avoid compiler warnings about
3115 pointer type mismatch.
3116
f9632fc8
GM
31171999-11-28 Gerd Moellmann <gerd@gnu.org>
3118
717d0121
GM
3119 * window.c (Fwindow_end): Don't call temp_set_pt_both with
3120 out of range position.
3121
f9632fc8
GM
3122 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
3123 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
3124
59c65f1e
EZ
31251999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
3126
613a8346
EZ
3127 * charset.c (Fmake_char_internal): Print the charset ID when
3128 signalling an error.
3129
59c65f1e
EZ
3130 * emacs.c (synchronize_locale): Avoid compiler warnings about
3131 pointer type mismatch.
3132
83c8f461 31331999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
3134
3135 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
3136
18df9369
GM
31371999-11-26 Gerd Moellmann <gerd@gnu.org>
3138
65a3ccf7
GM
3139 * puresize.h (BASE_PURESIZE): Increase to 550000.
3140
b3b98592
GM
3141 * textprop.c (set_text_properties): New function. Like
3142 Fset_text_properties, but with additional parameter
3143 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
3144 changes.
3145 (Fset_text_properties): Use it.
3146
3147 * insdel.c (insert_1_both): Call set_text_properties with last
3148 parameter nil so that no after changes will be signaled.
3149
3150 * lisp.h: Add prototype for set_text_properties.
3151
18df9369
GM
3152 * xfaces.c (set_lface_from_font_name): Fix previous change.
3153 (recompute_basic_faces): Change assert to abort.
3154
71a8e74b
DL
31551999-11-25 Dave Love <fx@gnu.org>
3156
3157 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
3158 (Fmember, Fdelq, Fdelete): Inline car.
3159 (Fy_or_n_p): Doc fix.
3160
bc6a5782
GM
31611999-11-25 Gerd Moellmann <gerd@gnu.org>
3162
3221576b 3163 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 3164 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
3165 is not set, try to use a reasonable default.
3166
bc6a5782
GM
3167 * dispnew.c (direct_output_for_insert): Set glyph row's
3168 displays_text_p flag. Correct window's window_end_vpos if
3169 necessary.
3170
0c8559bb
PE
31711999-11-25 Paul Eggert <eggert@twinsun.com>
3172
3173 * emacs.c (fixup_locale): Don't bother to record initial locale.
3174 (synchronize_locale): If the desired locale is nil,
3175 treat it as if it were the empty string,
3176 so that we set the locale from the environment.
3177
35737351
KH
31781999-11-25 Kenichi Handa <handa@etl.go.jp>
3179
3180 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
3181 of the current buffer via Fset.
3182
5562b47f
DL
31831999-11-24 Dave Love <fx@gnu.org>
3184
3185 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
3186
3187 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
3188
3189 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
3190
00da0e4a
GM
31911999-11-24 Gerd Moellmann <gerd@gnu.org>
3192
3193 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
3194
3195 * emacs.c (PVEC_FLAG): New variable.
3196
b1775dc1
GM
31971999-11-23 Gerd Moellmann <gerd@gnu.org>
3198
3199 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
3200 that fails on IBM PowerPC, AIX 4.2.
3201
08de6200
EZ
32021999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
3203
3204 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
3205 string of mode-line-format. Remove the obsolete %t.
3206
02fda8ff
GM
32071999-11-22 Gerd Moellmann <gerd@gnu.org>
3208
f2fa858f
GM
3209 * dispnew.c (direct_output_for_insert): Increment glyph positions
3210 for glyphs from buffer text only.
3211
02fda8ff
GM
3212 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
3213 (gdb_data_seg_bits): New variables.
3214
3215 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
3216 work on systems not allowing enumerators > INT_MAX, and it
3217 won't work if EMACS_INT is long long.
3218
1b0d24e7
PE
32191999-11-22 Paul Eggert <eggert@twinsun.com>
3220
3221 Port to SunOS 4.1.x again. Help out with Alpha port.
3222 Rename messages-locale to system-messages-locale,
3223 and likewise for time-locale.
3224
3225 * callproc.c (strerror): Remove decl.
3226 * fileio.c (strerror): Likewise.
3227 * process.c (strerror): Likewise.
3228 * emacs.c (strerror): Likewise.
3229 (Vsystem_messages_locale): Renamed from Vmessages_locale.
3230 All uses changed.
3231 (Vprevious_system_messages_locale): Likewise, from
3232 Vprevious_messages_locale.
3233 (Vsystem_time_locale): Likewise, from Vtime_locale.
3234 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
3235 (ABORT_RETURN_TYPE): New macro.
3236 (abort): Return type is now ABORT_RETURN_TYPE.
3237 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
3238 defined.
3239 (syms_of_emacs): messages-locale -> system-messages-locale,
3240 previous-messages-locale -> previous-system-messages-locale,
3241 time-locale -> system-time-locale,
3242 previous-time-locale -> previous-system-time-locale.
3243
3244 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
3245 (const): Do not define; that's config.h's job.
3246 (<limits.h>): Include if HAVE_LIMITS_H is defined.
3247 (CHAR_BIT): Move test for definedness outside of limits.h condition.
3248 (<stddef.h>): Include if STDC_HEADERS is defined.
3249 (FREE_RETURN_TYPE): New macro.
3250 (free): Return type is now FREE_RETURN_TYPE.
3251
3252 * lisp.h (synchronize_system_time_locale): Renamed from
3253 synchronize_time_locale. All uses changed.
3254 (synchronize_system_messages_locale): Likewise, from
3255 synchronize_messages_locale.
3256
3257 * m/alpha.h (malloc, realloc, calloc): Remove decls;
3258 stdlib.h now does this.
3259
3260 * process.c (sys_siglist): Remove.
3261
3262 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
3263 New macros.
3264
3265 * syntax.c (scan_sexps_forward): Use abort, not assert.
3266
3267 * sysdep.c (my_sys_siglist): New var.
3268 (sys_siglist): New macro. Remove old initialized vars of same name.
3269 (init_signals): Initialize sys_siglist.
3270
3271 * xfns.c (abort): Remove decl; stdlib.h now does this.
3272
0dcd5b54
DL
32731999-11-18 Dave Love <fx@gnu.org>
3274
946173ad
DL
3275 * filelock.c: Add forward declaration for get_boot_time_1.
3276
0dcd5b54
DL
3277 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
3278
71447e8f
GM
32791999-11-18 Gerd Moellmann <gerd@gnu.org>
3280
3281 * buffer.h (struct buffer_text): Add comment about moving
3282 buffer text if REL_ALLOC is defined.
3283
eeedff63
KH
32841999-11-18 Kenichi Handa <handa@etl.go.jp>
3285
3286 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
3287
3288 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
3289 memory for push_key_description.
3290
3291 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
3292 allocate memory for push_key_description.
3293 (describe_buffer_bindings): Likewise.
3294
5d7e4a2c
GM
32951999-11-17 Gerd Moellmann <gerd@gnu.org>
3296
3297 * xfns.c (Fx_show_busy_cursor): Doc-fix.
3298 (Fx_hide_busy_cursor): Ditto.
3299
33001999-11-17 Marco Walther <walther@siemens-pyramid.com>
3301
3302 * unexsni.c (unexec): Handle .rel.dyn section.
3303
b5b41e02
DL
33041999-11-16 Dave Love <fx@gnu.org>
3305
3306 * doc.c (Fdocumentation): Remove gcpro here too.
3307
e35b6123
GM
33081999-11-16 Gerd Moellmann <gerd@gnu.org>
3309
3310 * keyboard.c (command_loop_1): Remove no_redisplay.
3311
83c8f461 33121999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
3313
3314 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
3315 in noninteractive.
3316
b05d3bee
GM
33171999-11-14 Gerd Moellmann <gerd@gnu.org>
3318
5bcfeb49
GM
3319 * xdisp.c (ensure_echo_area_buffers): New.
3320 (with_echo_area_buffer): Use it.
3321 (setup_echo_area_for_printing): Ditto.
3322
b05d3bee
GM
3323 * buffer.c (indicate-empty-lines): Doc-fix.
3324
9b2e6e4c
GM
33251999-11-12 Gerd Moellmann <gerd@gnu.org>
3326
e7f90eab
GM
3327 * term.c (term_init): If "op" isn't available, don't support color
3328 because we can't switch back to the default foreground and
3329 background.
3330
9b2e6e4c
GM
3331 * doc.c (Fdocumentation_property): Remove GCPRO because
3332 Fsubstitute_command_keys gcpro's the string.
3333
1bf21027
KH
33341999-11-12 Kenichi Handa <handa@etl.go.jp>
3335
3336 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
3337
3bc6df53
GM
33381999-11-11 Gerd Moellmann <gerd@gnu.org>
3339
3340 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
3341 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
3342 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
3343
35a5514b
GM
33441999-11-10 Gerd Moellmann <gerd@gnu.org>
3345
3346 * xfns.c (QCuser_data): Removed.
3347 (syms_of_xfns): Initialization of QCuser_data removed.
3348 (parse_image_spec): Don't handle :user-data specially. Allow
3349 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
3350 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
3351 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
3352 parse_image_spec accordingly.
3353
83c8f461 33541999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
3355
3356 * cmds.c (Fbeginning_of_line): Doc fix.
3357 (Fend_of_line): Doc fix.
3358
3359 * editfns.c (Fline_beginning_position): If N is not 1,
3360 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
3361
3362 * syntax.c (Fforward_word): Handle fields even if would have hit
3363 an edge of the buffer. Return nil if affected by fields.
3364
83c8f461 33651999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
3366
3367 * editfns.c (preceding_pos): Function deleted.
3368 (text_property_stickiness): Decrement POS directly.
3369 Fix a confusion that used PT instead of POS.
3370
3371 * editfns.c (find_field): Properly handle the case
3372 of a field boundary where `field' inherits from neither side.
3373
3374 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
3375 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
3376
fa9aabf6
GM
33771999-11-08 Gerd Moellmann <gerd@gnu.org>
3378
3379 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
3380 BEFORE_POTENTIAL_GC before DISCARD.
3381
4015b3c0
GM
33821999-11-07 Gerd Moellmann <gerd@gnu.org>
3383
033a5fa3
GM
3384 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
3385
3386 * lisp.h: Add prototype for unmark_byte_stack.
3387
3388 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
3389 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
3390 XUNMARK.
3391
55b064bd
GM
3392 * xdisp.c (resize_mini_window): Fix computation of needed
3393 mini-window height.
3394
3395 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
3396 compilation on USE_TEXT_PROPERTIES.
01e9b9df 3397
4015b3c0 3398 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 3399 locally there. Rearrange case statements so that those most
4015b3c0
GM
3400 frequently executed come first. Avoid goto's in frequently
3401 executed cases.
3402
fe512f27
GM
34031999-11-05 Gerd Moellmann <gerd@gnu.org>
3404
dd59e217
GM
3405 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
3406 AFTER_POTENTIAL_GC around internal_catch.
3407
bcf28080
GM
3408 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
3409 relocate_byte_pcs.
3410 (init_alloc_once, init_alloc): Set byte_stack_list to null.
3411
3412 * eval.c (struct catchtag): Add member byte_stack.
3413 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 3414 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
3415 catchtag.
3416 (unwind_to_catch): Restore byte_stack_list from catchtag.
3417
3418 * lisp.h: Add prototypes for new functions in bytecode.c.
3419 Add extern declaration for byte_stack_list.
3420
3421 * bytecode.c (struct byte_stack): New.
3422 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
3423 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
3424 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
3425 (HANDLE_RELOCATION): Removed.
3426 (Fbyte_code): Use byte_stack structures.
3427
4d59c34c
GM
3428 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
3429
fe512f27
GM
3430 * buffer.c (syms_of_buffer): Extend documentation of
3431 mode-line-format.
3432
60b64cd6
GM
34331999-11-04 Gerd Moellmann <gerd@gnu.org>
3434
3435 * editfns.c (Fdelete_field): Renamed from Ferase_field.
3436
3437 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
3438 Ferase_field instead of Fdelete_field.
3439
b51b619b
GM
34401999-11-03 Gerd Moellmann <gerd@gnu.org>
3441
3442 * dispnew.c (Finternal_show_cursor): Change it to set the
3443 cursor on/off, not toggle its state.
3444 (Finternal_show_cursor_p): New.
3445 (syms_of_display): Defsubr Sinternal_show_cursor_p.
3446
5865af0d
DL
34471999-11-03 Dave Love <fx@gnu.org>
3448
3449 * charset.c (split_non_ascii_string): Define return value.
3450
82a700f3
GM
34511999-11-03 Gerd Moellmann <gerd@gnu.org>
3452
edfef199
GM
3453 * minibuf.c (string_to_object): New.
3454 (read_minibuf_noninteractive): New.
3455 (read_minibuf): Call read_minibuf_noninteractive if
3456 noninteractive. Use string_to_object.
3457
82a700f3
GM
3458 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
3459
b5540f0d
DL
34601999-11-02 Dave Love <fx@gnu.org>
3461
e69dcd60
DL
3462 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
3463
827a1788
DL
3464 * process.c: Define _GNU_SOURCE before config.h to get strsignal
3465 declared with glibc2.
b5540f0d 3466
a69a6e61
GM
34671999-11-02 Gerd Moellmann <gerd@gnu.org>
3468
3469 * lisp.h (QUIT): Give it statement form.
3470
87e21fbd
DL
34711999-11-02 Dave Love <fx@gnu.org>
3472
3473 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
3474
1b335865
GM
34751999-11-02 Gerd Moellmann <gerd@gnu.org>
3476
9fb5e03d
GM
3477 * xfns.c (QCuser_data): New.
3478 (syms_of_xfns): Initialize QCuser_data.
3479 (parse_image_spec): Ignore :user-data DATA properties.
3480
1b335865
GM
3481 * xdisp.c (display_line): Set charpos of first glyph in blank
3482 lines not corresponding to any text to -1, even if no glyphs are
3483 filled in in that line.
3484
e76f1c44
GM
34851999-11-01 Gerd Moellmann <gerd@gnu.org>
3486
36fcd3d9
GM
3487 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
3488 png_get_sRGB in #ifdef.
3489
111259b4
GM
3490 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
3491 (syms_of_display): Use the new name.
3492
dd5c96e8
GM
3493 * textprop.c (verify_interval_modification): Signal text-read-only
3494 instead of calling error.
3495
db8878fb
GM
3496 * data.c (Qtext_read_only): New built-in error.
3497 (syms_of_data): Initialize it.
3498
3499 * lisp.h: Add extern declaration for Qtext_read_only.
3500
e76f1c44
GM
3501 * syntax.c: Remove whitespace after open or in front of closing
3502 parentheses.
3503
83c8f461 35041999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
3505
3506 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
3507
7843e09c
GM
35081999-10-31 Gerd Moellmann <gerd@gnu.org>
3509
575ed805
GM
3510 * xdisp.c (resize_mini_window): Compute needed height differently.
3511
7843e09c
GM
3512 * fns.c (Flength): Unroll loop over lists.
3513
3514 * xdisp.c (append_space): Return non-zero if space was appended.
3515 (display_line): Set charpos of first glyph to -1 only if that
3516 glyph is the space added by append_glyph.
3517
83c8f461 35181999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
3519
3520 * print.c (strout): Consider `noninteractive' and use stdout
3521 only when PRINTCHARFUN is t.
3522
3523 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
3524 (gcpro_level): Declare it extern.
3525 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
3526 Alternate definitions that set `level' and increment `gcpro_level'.
3527 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
3528
3529 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
3530 (init_eval) [DEBUG_GCPRO]: Initialize it.
3531 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
3532 from remaining gcprolist.
3533
3636f7a3
KH
35341999-10-29 Kenichi Handa <handa@etl.go.jp>
3535
3536 * coding.c (code_convert_region): Update `dst' correctly.
3537
a2ad7096
GM
35381999-10-28 Gerd Moellmann <gerd@gnu.org>
3539
3540 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
3541 (Frassoc): Rewritten.
3542
1e3196e8
GM
35431999-10-27 Noah Friedman <friedman@splode.com>
3544
3545 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
3546 Define PTY_NAME_SPRINTF.
3547 Redefine PTY_TTY_NAME_SPRINTF.
3548 * config.in: Add undef for HAVE_DEV_PTMX.
3549
83c8f461 35501999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
3551
3552 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
3553 as arg to DEBUG_POP and DEBUG_PRINT.
3554
83c8f461 35551999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
3556
3557 * data.c (Qad_activate_internal): Renamed from Qad_activate.
3558 (Ffset): Call Qad_activate_internal.
3559 (syms_of_data): Initialize Qad_activate_internal.
3560
26922151
GM
35611999-10-27 Gerd Moellmann <gerd@gnu.org>
3562
3563 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
3564 Vterminal_frame is selected and Vwindow_system is non-nil.
3565
67a5596f
GM
35661999-10-26 Gerd Moellmann <gerd@gnu.org>
3567
2bea706b
GM
3568 * xdisp.c (echo_area_display): Put previous change in #if 0.
3569
67a5596f
GM
3570 * emacs.c (standard_args): Add `file' as synonym for `visit',
3571 `execute' as synonym for `eval'.
3572 (main): Add new options to usage message.
3573
81dc5de5
GM
35741999-10-25 Gerd Moellmann <gerd@gnu.org>
3575
3576 * data.c (Qhash_table): New.
3577 (Ftype_of): Return it for hash tables.
3578 (syms_of_data): Initialize Qhash_table.
3579
83c8f461 35801999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
3581
3582 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
3583
66e4690f 35841999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 3585
7539e11f
KR
3586 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
3587 lisp.h.
3588
3589 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
3590 Fbuffer_local_variables, Fother_buffer, record_buffer,
3591 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
3592 swap_out_buffer_local_variables, overlays_at, overlays_in,
3593 overlay_touches_p, overlay_strings, recenter_overlay_lists,
3594 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
3595 Foverlay_put, report_overlay_modification, evaporate_overlays):
3596 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
3597 references.
3598 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
3599 swap_in_symval_forwarding, set_internal, default_value,
3600 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
3601 Fmake_variable_frame_local, Flocal_variable_p,
3602 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
3603 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
3604 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
3605 * emacs.c (main): Likewise.
3606 * fontset.c (fs_load_font, fs_register_fontset,
3607 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
3608 Fnew_fontset, Fset_fontset_font): Likewise.
3609 * frame.c (do_switch_frame, next_frame, prev_frame,
3610 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
3611 Likewise.
3612 * keyboard.c (read_char, help_char_p, event_to_kboard,
3613 kbd_buffer_get_event, timer_start_idle, timer_check,
3614 make_lispy_event, apply_modifiers, reorder_modifiers,
3615 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
3616 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
3617 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
3618 Fcommand_execute, Fexecute_extended_command): Likewise.
3619 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
3620 Fall_completions): Likewise.
3621 * window.c (Fset_window_margins): Likewise.
3622
3623 * callint.c (quotify_args): Don't explicitly use struct
3624 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
3625
3a7093d8
KR
3626 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
3627 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
3628 if __ELF__ is defined.
3629
2a3d7146
GM
36301999-10-24 Gerd Moellmann <gerd@gnu.org>
3631
3632 * window.c (Fnext_window): Add a QUIT in the loop.
3633
8ac52782
GM
36341999-10-23 Gerd Moellmann <gerd@gnu.org>
3635
3636 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
3637 New targets.
3638
05f0d15a
DL
36391999-10-22 Dave Love <fx@gnu.org>
3640
3641 * emacs.c (main): Enable profiling conditional on __linux also.
3642
882fb0e6
GM
36431999-10-20 Gerd Moellmann <gerd@gnu.org>
3644
3645 * xrdb.c (x_load_resources): Set default resources for resource
3646 classes instead of for the specific Emacs.
3647
b5f5bc31
GM
36481999-10-19 Gerd Moellmann <gerd@gnu.org>
3649
66f4dd69
GM
3650 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
3651 defines it that way.
3652
b5f5bc31
GM
3653 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
3654 if selected_frame is equal to Vterminal_frame.
3655
68c45bf0
PE
36561999-10-19 Paul Eggert <eggert@twinsun.com>
3657
3658 Add support for large files, 64-bit Solaris, system locale codings.
3659
3660 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
3661 when dumping, so that the dumped Emacs doesn't have stray locale info.
3662 (dired.o): Depend on systime.h.
3663 (editfns.o): Depend on coding.h.
3664
3665 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
3666 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
3667 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
3668 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
3669 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
3670 Include <config.h> before any system include files.
3671
3672 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
3673 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
3674 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
3675 xmenu.c, xterm.c:
3676 Do not include <stdlib.h>, as <config.h> does this now.
3677
3678 * callproc.c (Fcall_process):
3679 Synchronize messages locale before invoking strerror.
3680 Decode resulting string with locale-coding-system.
3681
3682 * coding.c (Vlocale_coding_system): New var.
3683 (syms_of_coding): Adjust to above change.
3684 (emacs_strerror): New function.
3685
3686 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
3687
3688 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
3689 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
3690 HAVE_STRSIGNAL): New macros.
3691 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
3692 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
3693
3694 * dired.c: Include "systime.h".
3695 (Ffile_attributes): Do not cast s.st_size to int; this loses
3696 information if int is 32 bits but st_size and EMACS_INT are larger.
3697 Treat large device numbers like large inode numbers.
3698
3699 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
3700
3701 * editfns.c: Include coding.h.
3702 (emacs_strftime): Remove decl.
3703 (emacs_strftimeu): New decl.
3704 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
3705 Use emacs_strftimeu instead of emacs_strftime.
3706 (Fformat_time_string): Convert format string using
3707 Vlocale_coding_system, and convert result back. Synchronize time
3708 locale before invoking lower level function. Invoke
3709 emacs_memftimeu, passing ut, instead of emacs_memftime.
3710
3711 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
3712 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
3713 Vprevious_time_locale): New variables.
3714 (main): Invoke setlocale early, so that initial error messages are
3715 localized properly. But skip locale-setting if LC_ALL is "C".
3716 Fix up locale when it's safe to do so.
3717 (fixup_locale): Moved here from xterm.c.
3718 (synchronize_locale, synchronize_time_locale,
3719 synchronize_messages_locale): New functions.
3720 (syms_of_emacs): Accommodate above changes.
3721
3722 * fileio.c (report_file_error): Convert strerror output according
3723 to Vlocale_coding_system.
3724 (Finsert_file_contents): Check for arithmetic overflow in
3725 computations that depend on file size. Report IO errors
3726 with emacs_strerror, not strerror.
3727
3728 * fns.c (Fgethash): Declare dflt parameter.
3729
3730 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
3731 is defined; that's config.h's job.
3732
3733 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
3734 default these values to long, BITS_PER_LONG, and unsigned long.
3735 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
3736 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
3737 (code_convert_string_norecord, fixup_locale,
3738 synchronize_messages_locale, synchronize_time_locale,
3739 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
3740 All Emacs callers of open, close, read, write changed to use
3741 emacs_open, emacs_close, emacs_read, emacs_write.
3742
3743 * lread.c (file_offset, file_tell): New macros. All uses of ftell
3744 changed to file_tell.
3745 (saved_doc_string_position, prev_saved_doc_string_position): Now
3746 of type file_offset.
3747 (init_lread): Do not fix locale here; fixup_locale now does this.
3748
3749 * m/amdahl.h, s/usg5-4.h:
3750 (NSIG): Remove.
3751 (NSIG_MINIMUM): New macro.
3752
3753 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
3754 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
3755 s/umips.h, s/usg5-4.h:
3756 (SIGIO): Do not undef.
3757 (BROKEN_SIGIO): New macro.
3758
3759 * m/ustation.h:
3760 (SIGTSTP): Do not undef.
3761 (BROKEN_SIGTSTP): New macro.
3762
3763 * s/gnu-linux.h:
3764 (SIGPOLL, SIGURG): Do not undef.
3765 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
3766
3767 * s/ptx4.h:
3768 (SIGINFO): Do not undef.
3769 (BROKEN_SIGINFO): New macros.
3770
3771 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
3772
3773 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
3774 some Emacs-related changes merged.
3775
3776 * print.c (float_to_string): Prepend "-" to representation of a
3777 NaN if the NaN is negative.
3778
3779 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
3780 (wait_reading_process_input): Use emacs_strerror, not strerror.
3781
3782 * process.c (status_message, sigchld_handler): Synchronize locale,
3783 then use strsignal istead of sys_siglist.
3784 * w32proc.c (sys_wait): Likewise.
3785
3786 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
3787 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
3788 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
3789 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
3790 (open, close, read, write, INTERRUPTIBLE_OPEN,
3791 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
3792
3793 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
3794
3795 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
3796 sys_open, open): Remove.
3797 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
3798 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
3799 macros are no longer used.
3800 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
3801 (emacs_close): Renamed from sys_close.
3802 (emacs_read): Renamed from sys_read.
3803 (emacs_write): Renamed from sys_write.
3804 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
3805 (dup2): Do not print error on failure; the real dup2 doesn't.
3806 (strsignal): New function, defined if !HAVE_STRSIGNAL.
3807
3808 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
3809 is defined.
3810 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
3811 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
3812 (strsignal): Declare if !HAVE_STRSIGNAL.
3813
3814 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
3815 (ElfW): Define in terms of ElfExpandBitsW.
3816
3817 * w32proc.c (sys_siglist): Remove decl.
3818
3819 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
3820 with ANSI C.
3821 (display_string): Declare face_string_pos arg.
3822
3823 * xfns.c (Fx_show_tip): Declare timeout param.
3824
3825 * xterm.c: No need to include locale.h.
3826 (x_alloc_lighter_color, x_setup_relief_color):
3827 Pass arg as double, not float, for compatibility with ANSI C.
3828 (fixup_locale): Move to emacs.c.
3829 (x_term_init): Do not setlocale or fixup locale; the main program
3830 does this now.
3831
2f0b74ea
DL
38321999-10-18 Dave Love <fx@gnu.org>
3833
3834 * doc.c (Fdocumentation_property): Gcpro `tem'.
3835
471aa4a0
KH
38361999-10-18 Kenichi Handa <handa@etl.go.jp>
3837
3838 * lread.c (Fload): Calculate bytes of filename correctly.
3839 (openp): Likewise.
3840
aca2020b
KH
38411999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
3842
3843 * print.c (print_preprocess): In case print-circle is nil,
3844 add OBJ to Vprint_number_table only when OBJ is a symbol.
3845
1f5fe392 38461999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
3847
3848 * coding.c (code_convert_string): Add record_unwind_protect to
3849 assure setting inhibit_pre_post_conversion back to zero. Take
3850 care of the multibyteness of the working buffer.
3851
3852 * coding.c (inhibit_pre_post_conversion): New variable.
3853 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
3854 ignore post-read-conversion and pre-write-conversion property of
3855 the coding system.
3856 (code_convert_region_unwind): New function.
3857 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
3858 running pre-write-conversion and post-read-conversion.
3859 (code_convert_string): Likewise.
3860
cd876a91
GM
38611999-10-17 Miles Bader <miles@gnu.org>
3862
3863 * editfns.c: Doc fix.
3864
38651999-10-17 Miles Bader <miles@gnu.org>
3866
3867 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
3868 argument preconditions of find_before_next_newline in the case
3869 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
3870 was indeed at the edge.
3871
38721999-10-17 Miles Bader <miles@gnu.org>
3873
3874 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
3875 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
3876
3877 * editfns.c (text_property_eq, text_property_stickiness): Don't
3878 use initializers for auto variables of type Lisp_Object.
3879 (find_field): Likewise. Use braces around nested ifs.
3880 (Fline_end_position): Store the raw eol in a variable, so that the
3881 final expression doesn't look so ugly.
3882 (Fconstrain_to_field): Doc fix.
3883 (preceding_pos): Renamed from `preceeding_pos'.
3884 (text_property_stickiness, find_field): Call preceding_pos,
3885 not preceeding_pos.
3886
38871999-10-17 Miles Bader <miles@gnu.org>
3888
3889 * editfns.c (Ffield_string_no_properties): New function.
3890 (text_property_stickiness, preceeding_pos): New functions.
3891 (Ffield_string): Remove PROPS parameter.
3892 (find_field): Add MERGE_AT_BOUNDARY parameter.
3893 Rewrite to use stickiness of `field' property to resolve
3894 ambiguous cases.
3895 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
3896 (Fconstrain_to_field): Likewise.
3897 (syms_of_editfns): Init Sfield_string_no_properties.
3898 (Ffield_string, Ferase_field, Ffield_end):
3899 Supply new MERGE_AT_BOUNDARY argument to find_field.
3900 (Fline_beginning_position, Fline_end_position): Supply new
3901 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
3902 Pass a value of Qt for the ONLY_IN_LINE argument to
3903 Fconstrain_to_field (only matters if N != 1).
3904 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
3905 to Fconstrain_to_field.
3906
3907 * minibuf.c (Fminibuffer_complete_word): Use
3908 Ffield_beginning to find the prompt end.
3909
39101999-10-17 Miles Bader <miles@gnu.org>
3911
3912 * editfns.c (Fconstrain_to_field): Add get/set-current-point
3913 behavior when NEW_POS is nil.
3914 (find_field): Use XSETFASTINT instead of make_number.
3915 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
3916 input string by seeing where the field begins, instead of
3917 looking at text-properties.
3918
39191999-10-17 Miles Bader <miles@gnu.org>
3920
3921 * editfns.c (Qfield): New variable.
3922 (find_field, Ferase_field, Ffield_string,
3923 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
3924 (Fline_beginning_position, Fline_end_position): Constrain to any field.
3925 (make_buffer_string_both): Remove minibuffer-prompt hack.
3926 (syms_of_editfns): Initialize Qfield, and subr entries for
3927 field functions above.
3928 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
3929 minibuf_save_list.
3930 Don't initialize minibuffer prompt length.
3931 Wrap prompt text-properties around the entire prompt.
3932 Add 'prompt text-property to prompt.
3933 Get final value with Ffield_string instead of make_buffer_string.
3934 (read_minibuf_unwind): Don't restore minibuffer prompt length from
3935 minibuf_save_list.
3936 (do_completion): Get minibuffer input with Ffield_string
3937 instead of Fbuffer_string.
3938 Erase minibuffer input with Ferase_field instead of erase_buffer.
3939 (Fminibuffer_complete_and_exit): Likewise.
3940 Test whether buffer is empty by looking for the 'prompt text
3941 property at the end.
3942 Set prompt length by looking for the end of the prompt text property,
3943 and save prompt length for later use (since there is no longer a
3944 buffer variable to get it from).
3945 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
3946 (syms_of_minibuf): Remove initializations of
3947 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
3948 * buffer.h (struct buffer): Remove prompt_end_charpos field.
3949 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
3950 Don't initialize prompt_end_charpos field.
3951 * syntax.c (Fforward_word): Likewise.
3952 Constrain to any field.
3953
3f6f7508
GM
39541999-10-16 Gerd Moellmann <gerd@gnu.org>
3955
3956 * window.c (enum save_restore_action): New.
3957 (save_restore_orig_size): Change parameter list. Add
3958 functionality to check for valid orig_top and orig_height members
3959 in a window tree.
3960 (grow_mini_window): Call save_restore_orig_size with new parameter
3961 list.
3962 (shrink_mini_window): Restore old window sizes only if old
3963 size information is valid in all windows in a window tree.
3964
06482119
GM
39651999-10-15 Gerd Moellmann <gerd@gnu.org>
3966
2710454d
GM
3967 * xmenu.c (set_frame_menubar): Don't call
3968 x_set_menu_resources_from_menu_face here.
3969 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
3970
06482119
GM
3971 * xfns.c (gif_load): Fix handling of interlaced GIFs.
3972
17fa2837
DL
39731999-10-14 Dave Love <fx@gnu.org>
3974
3975 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
3976
45f93416
GM
39771999-10-14 Gerd Moellmann <gerd@gnu.org>
3978
3979 * process.c (Fopen_network_stream): Don't loop if gethostbyname
3980 fails and h_errno is TRY_AGAIN.
3981
c765b723
DL
39821999-10-13 Dave Love <fx@gnu.org>
3983
3984 * filelock.c (lock_file): Move gcpro of `fn'.
3985
dace7f4e
GM
39861999-10-10 Gerd Moellmann <gerd@gnu.org>
3987
3988 * keyboard.c (auto-save-interval): Fix documentation.
3989
83c8f461 39901999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
3991
3992 * print.c (print): When removing objects from Vprint_number_table,
3993 only scan the newly added objects.
3994 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
3995 unconditionally force it to stay in the table.
3996
85177c86
GM
39971999-10-09 Gerd Moellmann <gerd@gnu.org>
3998
3999 * xfns.c (prepare_image_for_display): Don't try to load image if
4000 loading it failed before.
4001 (lookup_image, prepare_image_for_display): Remember if loading the
4002 image failed.
4003 (xpm_load): Add missing UNBLOCK_INPUT.
4004
4005 * dispextern.h (struct image): New member load_failed_p.
4006
11e4de5d
SM
40071999-10-08 Stefan Monnier <monnier@cs.yale.edu>
4008
f28eba7b 4009 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
4010 in the docstring.
4011
f1da8f06
GM
40121999-10-08 Gerd Moellmann <gerd@gnu.org>
4013
4014 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
4015 Don't call XSetInputFocus because that can generate additional
4016 FocusIn events.
4017
c37bbd4f
GM
40181999-10-07 Jeffrey C Honig <jch@bsdi.com>
4019
4020 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
4021
83c8f461 40221999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
4023
4024 * process.c (wait_reading_process_input): When trying to suck
4025 input from one process, for accept-process-output,
4026 exit that loop if we get EAGAIN or EWOULDBLOCK.
4027
577d9e2f
GM
40281999-10-07 Gerd Moellmann <gerd@gnu.org>
4029
4030 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
4031 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
4032 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
4033 Fpixmap_spec_p and Qpixmap_spec_p.
4034 (load_face_colors, check_lface_attrs,
4035 merge_face_vector_with_property,
4036 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
4037 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
4038 Fbitmap_spec_p.
4039
f5737ad2
GM
40401999-10-07 Gerd Moellmann <gerd@gnu.org>
4041
4042 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
4043 MODE_LINE_FACE_ID.
4044
4045 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
4046 (struct x_resources) [USE_X_TOOLKIT]: New.
4047 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
4048 [USE_MOTIF]: New.
4049 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
4050 [USE_LUCID]: New.
4051 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
4052 (Qmenu): New.
4053 (syms_of_xfaces): Initialize Qmenu.
4054 (realize_basic_faces): Realize face `menu'.
4055 (resolve_face_name): New.
4056 (lface_from_face_name): Use it.
4057 (Finternal_set_lisp_face_attribute): Ditto.
4058 (Fpixmap_spec_p): Rewritten. Extend doc string.
4059
4060 * xmenu.c (set_frame_menubar, xmenu_show): Call
4061 x_set_menu_resources_from_menu_face.
4062
4063 * dispextern.h (enum face_id): Add MENU_FACE_ID.
4064 (toplevel): Include X11/Intrinsic.h.
4065
6a1aa823
DL
40661999-10-03 Ken'ichi Handa <handa@gnu.org>
4067
4068 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
4069 correctly.
4070
26901792
DL
40711999-09-30 Kenichi Handa <handa@etl.go.jp>
4072
4073 * category.c (modify_lower_category_set): Set default value of
4074 TABLE correctly.
4075
4076 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
4077 size correctly.
4078
40791999-09-29 Gerd Moellmann <gerd@gnu.org>
4080
4081 * editfns.c (Fpropertize): Renamed from Fproperties.
4082
40831999-09-29 Gerd Moellmann <gerd@gnu.org>
4084
4085 * xdisp.c (resize_mini_window): Do nothing if frame is an X
4086 frame that hasn't been initialized yet.
4087
83c8f461 40881999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
4089
4090 * keymap.c (Fsingle_key_description): Make tem big enough.
4091 (describe_buffer_bindings): Make buf big enough.
4092
83c8f461 40931999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
4094
4095 * intervals.c (get_local_map): Use indirect_function,
4096 not Findirect_function.
4097
26901792
DL
40981999-09-27 Dave Love <fx@gnu.org>
4099
4100 * cm.h: Remove unneeded declaration of ospeed.
4101
41021999-09-26 Gerd Moellmann <gerd@gnu.org>
4103
4104 * lisp.h (toplevel): Add prototype for
4105 next_single_char_property_change.
4106
4107 * textprop.c (next_single_char_property_change): New.
4108
4109 * xdisp.c (display_prop_end, invisible_text_between_p): Use
4110 next_single_char_property_change.
4111
41121999-09-25 Gerd Moellmann <gerd@gnu.org>
4113
4114 * editfns.c (Fproperties): New.
4115 (syms_of_editfns): Defsubr it.
4116
4117 * xfns.c (lookup_image): Set image's timestamp because it's
4118 used when we look it up.
4119
41201999-09-23 Gerd Moellmann <gerd@gnu.org>
4121
4122 * window.c (enlarge_window): Add window parameter instead of using
4123 selected_window.
4124 (Fdisplay_buffer): Call it with window parameter instead of
4125 setting selected_window.
4126 (Fenlarge_window, Fshrink_window): Ditto.
4127 (shrink_mini_window): If there is no recorded height and position
4128 info, resize mini-window to height 1.
4129
4130 * xfns.c (image_error): Use add_to_log.
4131
4132 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
4133 (load_face_font_or_fontset, load_color,
4134 merge_face_vector_with_property): Ditto.
4135
4136 * dispextern.h: Add prototype for add_to_log.
4137
4138 * xfaces.c (add_to_log): Move to xdisp.c.
4139
4140 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
4141 parameter.
4142
41431999-09-23 Gerd Moellmann <gerd@gnu.org>
4144
4145 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
4146 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
4147
4148 * xdisp.c (resize_mini_window): Use grow_mini_window and
4149 shrink_mini_window.
4150
4151 * window.c (window_min_size): Add parameter ignore_fixed_p.
4152 (change_window_height): Call window_min_size with new parameter.
4153 (shrink_window_lowest_first, save_restore_orig_size,
4154 grow_mini_window, shrink_mini_window): New.
4155 (make_window, replace_window): Initialize orig_top and
4156 orig_height.
4157 (enlarge_window): Renamed from change_window_height. Make it
4158 static.
4159 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
4160 enlarge_window instead of change_window_height.
4161
4162 * window.h (struct window): New members orig_top, orig_height.
4163 (toplevel): Add prototypes for grow_mini_window and
4164 shrink_mini_window. Remove prototype for change_window_height.
4165
41661999-09-21 Eli Zaretskii <eliz@gnu.org>
4167
4168 * frame.c (frame_name_fnn_p): Fix previous change.
4169
41701999-09-20 Gerd Moellmann <gerd@gnu.org>
4171
4172 * minibuf.c (toplevel): Move include of stdio.h to other includes.
4173
4174 * dispnew.c (direct_output_for_insert): Cast arguments to
4175 safe_bcopy to char *.
4176
4177 * lread.c (readchar): Remove unused variables.
4178 (read_filtered_event, read1, Fmapatoms): Ditto.
4179 (toplevel): Include intervals.h.
4180
4181 * eval.c (Fsignal): Remove unused variables.
4182 (Fcommandp, do_autoload): Ditto.
4183
4184 * lisp.h: Add prototype for safe_bcopy, fatal.
4185
4186 * editfns.c (init_editfns): Remove unused variables.
4187 (Fgoto_char, Fchar_after, Fformat): Ditto.
4188 (message_text, message_length): Put in #ifndef HAVE_MENUS.
4189
4190 * data.c (find_symbol_value): Remove unused variables.
4191 (Faref, Fstring_to_number): Ditto.
4192 (toplevel): Include stdio.h.
4193 (Fnumber_to_string): Cast XINT to long for %ld.
4194
4195 * casefiddle.c (casify_object): Remove unused variables.
4196 (casify_region): Ditto.
4197
4198 * filelock.c (get_boot_time): Put local variable used in
4199 conditinally compiled section in #ifdef.
4200 (toplevel): Include stdio.h.
4201
4202 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
4203 keys_of_keymap, syms_of_keymap): Remove unused variables.
4204
42051999-09-20 Gerd Moellmann <gerd@gnu.org>
4206
4207 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
4208 whose corresponding window rows have been disabled in
4209 try_window_id.
4210
42111999-09-20 Gerd Moellmann <gerd@gnu.org>
4212
4213 * xdisp.c (compute_window_start_on_continuation_line): Handle case
4214 that window start is out of range.
4215 (handle_display_prop, handle_single_display_prop): Replace
4216 marginal area specifications like `left-margin' with `(margin
4217 left-margin)'.
4218 (Qmargin): New.
4219 (syms_of_xdisp): Initialize Qmargin.
4220
42211999-09-19 Gerd Moellmann <gerd@gnu.org>
4222
4223 * syntax.c (update_syntax_table, find_defun_start, back_comment,
4224 describe_syntax, skip_chars): Remove unused variables.
4225 (back_comment, forw_comment): Add braces to if-statement with
4226 if-else as dependent statement.
4227
4228 * process.c (list_processes_1): Remove unused variables.
4229 (Fopen_network_stream, create_process): Add parentheses to
4230 conditional expressions.
4231 (create_process): Put declaration of sigchld in #if 0.
4232 (Fopen_network_stream): Removed unused variables.
4233 (Fopen_network_stream, wait_reading_process_input,
4234 wait_reading_process_input, send_process, send_process): Ditto.
4235 (toplevel): Add prototypes for set_waiting_for_input and
4236 keyboard_bit_set.
4237
4238 * abbrev.c (Fexpand_abbrev): Remove unused variables.
4239
4240 * textprop.c (Fset_text_properties): Remove unused variables.
4241 (text_property_list, verify_interval_modification,
4242 interval_has_all_properties): Ditto.
4243
4244 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
4245 (Fcall_process): Remove unused variable.
4246
4247 * keyboard.c (Frecursive_edit): Remove unused variable.
4248 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
4249 timer_check, make_lispy_event, menu_bar_items,
4250 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
4251 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
4252 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
4253 read_key_sequence): Ditto. Fread_key_sequence,
4254 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
4255 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
4256 used when GOBBLE_FIRST_EVENT is defined in #ifdef
4257 (Fexecute_extended_command): Cast XINT to long for %ld.
4258 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
4259 (toplevel): Include sys/types.h.
4260
4261 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
4262 (toplevel): Add prototypes for stuff_char, and
4263 code_convert_string_norecord.
4264
42651999-09-19 Gerd Moellmann <gerd@gnu.org>
4266
4267 * buffer.h: Add prototype for r_re_alloc.
4268
4269 * insdel.c (copy_text): Removed unused variables.
4270 (count_combining_after, count_combining_after, insert_1_both,
4271 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
4272 (adjust_after_replace, replace_range): Add parentheses to logical
4273 expressions. Remove unused variables.
4274 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
4275 expression.
4276
4277 * alloc.c (Fgarbage_collect): Remove unused variable.
4278 (compact_strings): Add parentheses around assignments in
4279 conditional context.
4280 (toplevel): Put declaration of unused function clear_marks
4281 in #if 0 like its definition.
4282
4283 * lisp.h: Add prototype for shrink_regexp_cache,
4284 sweep_weak_hash_tables.
4285
42861999-09-19 Dave Love <fx@gnu.org>
4287
4288 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
4289
4290 * doc.c (read_bytecode_char): Declare arg.
4291
4292 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
4293 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
4294
42951999-09-18 Richard Stallman <rms@gnu.org>
4296
4297 * xdisp.c (echo_area_display): Turn off code that returned
4298 without doing anything when using a terminal frame.
4299
83c8f461 43001999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
4301
4302 * unexelf.c (unexec): Don't get confused by a short section
4303 just before the bss section.
4304
26901792
DL
43051999-09-16 Gerd Moellmann <gerd@gnu.org>
4306
4307 * emacs.c (main): Remove unused variables.
4308 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
4309
4310 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
4311 init_fileio_once, syms_of_sound, init_xfns, init_fns
4312 init_sound, check_message_stack.
4313
4314 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
4315
4316 * intervals.c (rotate_right, rotate_left): Add braces to avoid
4317 ambiguous else warning.
4318 (split_interval_left): Remove unused variables.
4319 (previous_interval, adjust_intervals_for_deletion,
4320 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
4321 (icount, idepth, zero_length): Move into #if 0 section below
4322 original position where these are used.
4323
4324 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
4325
4326 * buffer.c (Fkill_buffer): Remove unused variables.
4327 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
4328 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
4329 init_buffer_once, (syms_of_buffer): Ditto.
4330
4331 * xrdb.c (get_fallback): Remove unused variable.
4332 (x_load_resources): Ditto. Put local variable used for Motif only
4333 in #ifdef USE_MOTIF.
4334
43351999-09-16 Gerd Moellmann <gerd@gnu.org>
4336
4337 * minibuf.c (read_minibuf): Remove unused variables.
4338 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
4339 (do_completion): Move assignment out of conditional context.
4340 (Fdisplay_completion_list): Add parentheses to conditional expression.
4341
4342 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
4343
4344 * lisp.h: Add prototype for no_switch_window.
4345
4346 * window.c (Fset_window_buffer): Remove unused variables.
4347 (Fset_window_margins): Ditto.
4348
4349 * xdisp.c (resize_mini_window): Temporarily set the selected
4350 window's or Vminibuf_scroll_window's height to "fixed" around
4351 the call the change_window_height.
4352
4353 * window.c (window_fixed_size_p): Check window's height_fixed_p
4354 flag.
4355
4356 * window.h (struct window): New member height_fixed_p.
4357
4358 * dispnew.c (direct_output_forward_char): Don't use this method
4359 if showing a message or a message was just cleared because we
4360 might need to resize the mini-window.
4361
43621999-09-16 Gerd Moellmann <gerd@gnu.org>
4363
4364 * frame.c (Fdelete_frame): Correct local variable pointing to
4365 selected frame after selecting new frame.
4366
43671999-09-15 Richard Stallman <rms@gnu.org>
4368
4369 * puresize.h (BASE_PURESIZE): Increase to 525000.
4370
4371 * filelock.c (Vtemporary_file_directory): New variable.
4372 (syms_of_filelock): Set up Lisp variable.
4373
43741999-09-15 Gerd Moellmann <gerd@gnu.org>
4375
4376 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
4377 (encode_terminal_code): Remove unused variables.
4378 (turn_off_face): Ditto.
4379 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
4380
4381 * dispnew.c (update_frame_line): If writing whole desired line,
4382 don't clear to end of line if already at the end.
4383
43841999-09-15 Gerd Moellmann <gerd@gnu.org>
4385
4386 * xdisp.c (resize_mini_window): Don't report changed window
4387 height if it actually hasn't changed.
4388
4389 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
4390 unused variables.
4391 (mark_shell_size_user_specified): Put in #if 0 because not used.
4392 (create_frame_gcs): Put in #if 0 because currently unused.
4393 (first_frame_p): Ditto.
4394
4395 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
4396 single_submenu, update_frame_menubar, set_frame_menubar,
4397 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
4398 variables.
4399
4400 * print.c (PRINTFULLP): Removed because it is no longer used and
4401 is misleading.
4402 (Ferror_message_string): Remove unused variables.
4403 (print_object): Cast argument of sprintf to long for `%ld'
4404 specifier. Remove unused variable.
4405
44061999-09-14 Gerd Moellmann <gerd@gnu.org>
4407
4408 * sound.c (Fplay_sound): Remove usused variables.
4409 (be2hs): Put in #if 0 because it's currently not used.
4410
44111999-09-14 Ken Raeburn <raeburn@gnu.org>
4412
4413 * print.c (Ferror_message_string, print_error_message,
4414 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
4415 member access.
4416
44171999-09-14 Gerd Moellmann <gerd@gnu.org>
4418
4419 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
4420
4421 * frame.c (Fnext_frame): Remove unused variable(s).
4422 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
4423 (store_frame_param): Add parentheses to conditional expression.
4424 (Fmodify_frame_parameters): Remove unused variables.
4425 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
4426 Ditto.
4427
4428 * xfns.c (x_set_background_color): Remove unused variable(s).
4429 (x_set_border_pixel): Ditto.
4430 (x_set_menu_bar_lines): Put local variable used only for
4431 non-toolkit case in #ifdef/#endif.
4432 (x_figure_window_size): Remove unused variable(s).
4433 (x_figure_window_size, x_window, lookup_image,
4434 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
4435 png_load, jpeg_load, gif_load, x_create_tip_frame,
4436 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
4437
4438 * xterm.c (x_scroll_bar_handle_click): Compile only if
4439 not USE_TOOLKIT_SCROLL_BARS.
4440 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
4441
4442 * dispextern.h: Add prototypes for gamma_correct and
4443 x_kill_gs_process.
4444
4445 * xterm.c (x_produce_glyphs): Remove unused variable(s).
4446 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
4447 x_set_toolkit_scroll_bar_thumb): Ditto.
4448 (x_scroll_bar_create): Move local variable to the
4449 conditionally compiled section of code where it is used.
4450 (x_scroll_bar_create): Remove unused variable(s).
4451 (x_scroll_bar_remove, XTread_socket): Ditto.
4452 (XTread_socket) <ConfigureNotify>: Move variables used for
4453 non-toolkit case into conditionally compiled section of code.
4454
4455 * window.h (freeze_window_starts): Fix typo in prototype.
4456
4457 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
4458 variable(s).
4459
4460 * lisp.h: Add prototype for debug_print.
4461
4462 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
4463 to use do-while.
4464
4465 * fns.c (SXHASH_COMBINE): Add missing parentheses.
4466 (Fchar_table_range, Fset_char_table_default, mapcar1,
4467 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
4468
4469 * lisp.h: Add prototype for getloadavg.
4470
44711999-09-14 Andreas Schwab <schwab@gnu.org>
4472
4473 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
4474
4475 * lisp.h: Declare close_file_unwind.
4476
44771999-09-14 Richard Stallman <rms@gnu.org>
4478
4479 * filelock.c (get_boot_time): Make the temp name in the proper dir.
4480
44811999-09-13 Gerd Moellmann <gerd@gnu.org>
4482
4483 * xdisp.c (redisplay_window): Make sure start_at_line_beg
4484 is always set correctly.
4485
44861999-09-13 Dave Love <fx@gnu.org>
4487
4488 * xdisp.c (move_it_in_display_line_to): Make type consistent with
4489 declaration.
4490
44911999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
4492
4493 * xdisp.c (QCfile): Move here from xfns.c.
4494 (syms_of_xdisp): Initialize it.
4495 (message2_nolog): Change for Lisp_Object selected_frame.
4496 (message3_nolog, message_with_string, message,
4497 setup_echo_area_for_printing, truncate_echo_area,
4498 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
4499
45001999-09-13 Dave Love <fx@gnu.org>
4501
4502 * xterm.c: Don't continue #define args for benefit of old cc.
4503 (xt_action_hook): Indent #error for benefit of K&R cc.
4504
45051999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
4506
4507 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
4508 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
4509 (XRINGBELL): Removed.
4510
45111999-09-13 Dave Love <fx@gnu.org>
4512
4513 * xfns.c (x_put_x_image): Make type consistent with declaration.
4514
4515 * fns.c (Fmake_hash_table): Fix string continuation.
4516
45171999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
4518
4519 * xfns.c (QCfile): Moved to xdisp.c.
4520 (syms_of_xfns): Don't initialize QCfile.
4521 (check_x_frame): Change for Lisp_Object selected_frame.
4522 (check_x_display_info, x_get_resource_string): Ditto.
4523
45241999-09-13 Gerd Moellmann <gerd@gnu.org>
4525
4526 * minibuf.c (choose_minibuf_frame): Don't try to set the
4527 mini-buffer window's buffer, if the buffer is invalid.
4528
4529 * xfns.c (QCfile): Moved to xdisp.c.
4530 (syms_of_xfns): Don't initialize QCfile.
4531
4532 * xdisp.c (QCfile): Move here from xfns.c.
4533 (syms_of_xdisp): Initialize it.
4534
4535 * lisp.h (selected_frame): Add external declaration.
4536
4537 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
4538 (Fx_store_cut_buffer_internal): Ditto.
4539 (Fx_rotate_cut_buffers_internal): Ditto.
4540
4541 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
4542 selected_frame.
4543 (Finternal_set_lisp_face_attribute): Ditto.
4544 (Finternal_get_lisp_face_attribute): Ditto.
4545 (Finternal_lisp_face_empty_p): Ditto.
4546 (Fdump_face): Ditto.
4547
4548 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
4549 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
4550 set_terminal_window, set_scroll_region, reassert_line_highlight,
4551 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
4552 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
4553 encode_terminal_code, write_glyphs, term_init): Ditto.
4554
4555 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
4556 (kbd_input_ast, read_input_waiting): Ditto.
4557
4558 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
4559 selected_frame.
4560 (read_minibuf): Ditto.
4561
4562 * keyboard.c (command_loop_1): Change for Lisp_Object
4563 selected_frame.
4564 (cmd_error_internal, command_loop_1, read_char,
4565 kbd_buffer_get_event, read_avail_input,
4566 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
4567 interrupt_signal, quit_throw_to_read_char): Ditto.
4568
4569 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
4570 (Ffontset_info): DItto.
4571
4572 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
4573
4574 * dispnew.c (selected_frame): Make it a Lisp_Object.
4575 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
4576 (direct_output_for_insert, direct_output_forward_char,
4577 init_display): Ditto.
4578
4579 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
4580 selected_frame.
4581 (set_internal): Ditto.
4582
4583 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
4584 (record_buffer): Ditto.
4585
4586 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
4587 (do_switch_frame): Change for Lisp_Object selected_frame.
4588 (Fselected_frame): Ditto.
4589 (Fframe_first_window): Use SELECTED_FRAME.
4590 (Fframe_root_window): Change for Lisp_Object selected_frame.
4591 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
4592 Fprevious_frame, other_visible_frames, Fdelete_frame,
4593 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
4594 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
4595 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
4596 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
4597 Fset_frame_height, Fset_frame_width): Ditto.
4598
45991999-09-13 Gerd Moellmann <gerd@gnu.org>
4600
4601 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
4602 (message3_nolog, message_with_string, message,
4603 setup_echo_area_for_printing, truncate_echo_area,
4604 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
4605
4606 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
4607 (Fx_popup_dialog): Ditto.
4608
4609 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
4610 (check_x_display_info, x_get_resource_string): Ditto.
4611
4612 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
4613 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
4614 (XRINGBELL): Removed.
4615
4616 * window.c (Fminibuffer_window): Change for Lisp_Object
4617 selected_frame.
4618 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
4619 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
4620 Fcurrent_window_configuration, init_window_once): Ditto.
4621
4622 * frame.h (SELECTED_FRAME): New.
4623
46241999-09-12 Ken Raeburn <raeburn@gnu.org>
4625
4626 * category.c (word_boundary_p): Use XCAR and XCDR.
4627 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
4628 Fregister_code_conversion_map): Likewise.
4629 * coding.c (setup_coding_system, detect_coding_system,
4630 Ffind_operation_coding_system, Fset_coding_priority_internal):
4631 Likewise.
4632 * doc.c (get_doc_string, Fdocumentation,
4633 store_function_docstring): Likewise.
4634 * editfns.c (save_restriction_restore): Likewise.
4635 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
4636 skip_debugger, find_handler_clause, Fautoload, Fapply,
4637 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
4638 Likewise.
4639 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
4640 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
4641 Fread_file_name): Likewise.
4642 * filelock.c (unlock_all_files): Likewise.
4643 * insdel.c (Fcombine_after_change_execute): Likewise.
4644 * intervals.c (adjust_intervals_for_insertion): Likewise.
4645 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
4646 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
4647 store_in_keymap, Fcopy_keymap, define_as_prefix,
4648 current_minor_maps, Faccessible_keymaps,
4649 accessible_keymaps_char_table, Fkey_description,
4650 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
4651 describe_buffer_bindings, describe_map_tree, shadow_lookup,
4652 describe_map): Likewise.
4653 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
4654 read_list, init_lread): Likewise.
4655 * search.c (Fmatch_data): Likewise.
4656 * sunfns.c (Fsun_menu_internal): Likewise.
4657 * syntax.c (describe_syntax): Likewise.
4658 * undo.c (record_insert, record_delete, Fundo_boundary,
4659 truncate_undo_list): Likewise.
4660 * vmsproc.c (child_sig): Likewise.
4661
4662 * editfns.c (Fformat): Use XFLOAT_DATA.
4663
46641999-09-12 Gerd Moellmann <gerd@gnu.org>
4665
4666 * keyboard.c (command_loop_1): Resize mini-window to the
4667 exact size of a message displayed, if any.
4668
4669 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
4670 to exact size if exact_p is non-zero.
4671 (display_echo_area_1): Call resize_mini_window with
4672 new parameter.
4673 (redisplay_internal): Ditto.
4674 (resize_echo_area_axactly): New.
4675
4676 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
4677 new parameter.
4678
4679 * dispextern.h: Change prototype of resize_mini_window.
4680 Add prototype for resize_echo_area_axactly.
4681
4682 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
4683 (syms_of_xfaces): Defsubr accordingly.
4684
4685 * xdisp.c (hscroll_window_tree): Choose cursor row from
4686 desired or current matrix.
4687 (redisplay_internal): Hscroll before updating.
4688
46891999-09-12 Gerd Moellmann <gerd@gnu.org>
4690
4691 * syntax.c (Fforward_word): Use prompt_end_charpos instead
4692 of minibuffer_prompt_length.
4693
4694 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
4695 of minibuffer_prompt_length.
4696 (read_minibuf_unwind): Ditto.
4697 (Fminibuffer_complete_and_exit): Ditto.
4698 (Fminibuffer_complete_word): Ditto.
4699 (Fminibuffer_prompt_end): Ditto.
4700
4701 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
4702 of minibuffer_prompt_length.
4703 (Fline_beginning_position): Ditto.
4704
4705 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
4706 of minibuffer_prompt_length.
4707 (Fmake_indirect_buffer): Ditto.
4708 (Fkill_buffer): Ditto.
4709 (Ferase_buffer): Ditto.
4710
4711 * buffer.h (prompt_end_charpos): Replaces
4712 minibuffer_prompt_length.
4713
4714 * minibuf.c (read_minibuf): Return mini-buffer contents
4715 without the prompt.
4716
4717 * editfns.c (make_buffer_string_both): Take out the code
4718 to handle mini-buffer prompts.
4719 (Fbuffer_string): Handle the prompt here, instead.
4720
4721 * xfaces.c (lface_from_face_name): Resolve face aliases.
4722 (Qmode_line): Replaces Qmodeline.
4723 (realize_basic_faces): Use Qmode_line.
4724 (syms_of_xfaces): Initialize Qmode_line.
4725
47261999-09-12 Gerd Moellmann <gerd@gnu.org>
4727
4728 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
4729 current column after inserting prompt.
4730 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
4731
4732 * xfaces.c (Qframe_update_face_colors): New.
4733 (syms_of_xfaces): Initialize call.
4734 (update_face_from_frame_parameter): Call that function when
4735 the frame's background changes.
4736
47371999-09-12 Richard Stallman <rms@gnu.org>
4738
4739 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
4740
47411999-09-12 Ken Raeburn <raeburn@gnu.org>
4742
4743 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
4744 mark_object, mark_buffer): Use XCAR and XCDR.
4745 * bytecode.c (Fbyte_code): Likewise.
4746 * callint.c (Fcall_interactively, Fprefix_numeric_value):
4747 Likewise.
4748 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
4749 getenv_internal): Likewise.
4750 * dired.c (file_name_completion): Likewise.
4751 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
4752 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
4753 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
4754 * indent.c (Fcompute_motion): Likewise.
4755 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
4756 list_processes_1, Fstart_process, Fopen_network_stream,
4757 wait_reading_process_input, read_process_output_call,
4758 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
4759 status_notify, wait_reading_process_input): Likewise.
4760 * textprop.c (PLIST_ELT_P, property_value, set_properties,
4761 extend_property_ranges): Likewise.
4762 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
4763 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
4764 x_report_frame_params, x_set_cursor_type, x_icon_type,
4765 x_figure_window_size, Fx_create_frame, w32_load_system_font,
4766 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
4767 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
4768 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
4769 x_display_info_for_name, Fx_display_list): Likewise.
4770 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
4771 Fx_popup_menu, Fx_popup_dialog): Likewise.
4772 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
4773 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
4774 w32_term_init, x_delete_display): Likewise.
4775 * xfns.c (x_window_to_frame, x_any_window_to_frame,
4776 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
4777 x_top_window_to_frame, x_set_frame_parameters,
4778 x_report_frame_params, x_set_cursor_type, x_icon_type,
4779 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
4780 Fx_display_list, x_create_tip_frame): Likewise.
4781 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
4782 Fx_popup_menu, Fx_popup_dialog): Likewise.
4783 * xselect.c (x_own_selection, x_get_local_selection,
4784 x_handle_selection_request, x_handle_selection_clear,
4785 x_clear_frame_selections, wait_for_property_change_unwind,
4786 wait_for_property_change, x_handle_property_notify,
4787 copy_multiple_data, x_get_foreign_selection,
4788 lisp_data_to_selection_data, clean_local_selection_data,
4789 x_handle_selection_notify, Fx_get_selection_internal,
4790 x_disown_buffer_selections): Likewise.
4791 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
4792 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
4793 Likewise.
4794
4795 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
4796 XFLOAT_DATA.
4797 * bytecode.c (Fbyte_code): Likewise.
4798 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
4799 fmod_float): Likewise.
4800
48011999-09-11 Richard Stallman <rms@gnu.org>
4802
4803 * xdisp.c (run_window_scroll_functions): If hook functions switch
4804 buffers, switch back after.
4805
48061999-09-11 Ken Raeburn <raeburn@gnu.org>
4807
4808 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
4809 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
4810 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
4811 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
4812 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
4813 XCDR.
4814 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
4815 XCDR.
4816
48171999-09-10 Richard Stallman <rms@gnu.org>
4818
4819 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
4820 not RevertToPointerRoot.
4821 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
4822 Fix the code to clear around the scroll bar.
4823
48241999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
4825
4826 * print.c: Support print-circle and related features.
4827 (Vprint_gensym_alist): Removed.
4828 (Vprint_circle, Vprint_continuous_numbering, print_number_index
4829 Vprint_number_table): New variables.
4830 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
4831 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
4832 (print, print_preprocess, print_preprocess_string, print_object):
4833 New/modified functions with print-circle feature. Use
4834 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
4835 (syms_of_print): Defined new Lisp variables `print-circle',
4836 `print-continuous-numbering', `print-number-table'.
4837
48381999-09-10 Gerd Moellmann <gerd@gnu.org>
4839
4840 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
4841 as background color specification instead of an integer.
4842 (image-cache-eviction-delay): Replaces image-eviction-seconds.
4843 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
4844 (clear_image_cache, syms_of_xfns): Use it.
4845 (Qpostscript): Replaces Qghostscript.
4846 (gs_type): Use it.
4847 (gs_image_p): Ditto.
4848 (syms_of_xfns): Initialize Qpostscript.
4849
48501999-09-10 Richard Stallman <rms@gnu.org>
4851
4852 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
4853
48541999-09-09 Richard Stallman <rms@gnu.org>
4855
4856 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
4857
4858 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
4859
48601999-09-09 Gerd Moellmann <gerd@gnu.org>
4861
4862 * fns.c (Fmakehash): Accept just one optional argument TEST.
4863
4864 * xfns.c (QCindex): New.
4865 (syms_of_xfns): Initialize QCindex.
4866 (gif_load): Use it instead of `:image'.
4867
48681999-09-09 Richard Stallman <rms@gnu.org>
4869
4870 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
4871 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
4872
48731999-09-08 Gerd Moellmann <gerd@gnu.org>
4874
4875 * xdisp.c (Qwhen): Replaces QCwhen.
4876 (syms_of_xdisp): Initialized it instead of QCwhen.
4877 (handle_single_display_prop): Use it instead of QCwhen.
4878
48791999-09-08 Ken'ichi Handa <handa@gnu.org>
4880
4881 * charset.c (translate_char): Reset MSBs of arguments of
4882 MAKE_CHAR.
4883 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
4884
48851999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
4886
4887 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
4888
4889 * fns.c (Fbase64_decode_region): Don't place point outside of the
4890 current accessible portion.
4891
48921999-09-07 Richard Stallman <rms@gnu.org>
4893
4894 * keymap.c (fix_submap_inheritance): Do nothing if the proper
4895 parent is an ancestor of SUBMAP; otherwise, add it as the
4896 ultimate ancestor.
4897
48981999-09-07 Gerd Moellmann <gerd@gnu.org>
4899
4900 * xdisp.c (handle_single_display_prop): Change conditional
4901 display property to `:when FORM . VALUE'.
4902
49031999-09-07 Richard Stallman <rms@gnu.org>
4904
4905 * fileio.c (Fwrite_region): Doc fix.
4906
49071999-09-07 Stefan Monnier <monnier@cs.yale.edu>
4908
4909 * fileio.c (Qexcl): New variable.
4910 (report_file_error): Handle EEXIST specially.
4911 (Fwrite_region): Special handling for CONFIRM = `excl'.
4912 (syms_of_fileio): Initialize Qexcl.
4913
49141999-09-07 Gerd Moellmann <gerd@gnu.org>
4915
4916 * xfns.c (x_set_foreground_color): Call
4917 update_face_from_frame_parameter.
4918 (x_set_background_color): Ditto.
4919 (x_set_mouse_color): Ditto.
4920 (x_set_cursor_color): Ditto.
4921 (x_set_border_color): Ditto.
4922 (x_set_scroll_bar_foreground): Ditto.
4923 (x_set_scroll_bar_background): Ditto.
4924
4925 * xfaces.c (recompute_basic_faces): Clear face cache.
4926 (Finternal_set_lisp_face_attribute): Modify frame parameters
4927 if attributes of certain faces are changed.
4928 (update_face_from_frame_parameter): New.
4929
4930 * xfaces.c (realize_basic_faces): Realize new basic faces.
4931
4932 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
4933 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
4934
4935 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
4936 (syms_of_xfaces): Intialize new symbols.
4937
4938 * fns.c (Fmakehash): Take one argument, test, make all the
4939 rest keyword arguments.
4940
4941 * window.c (Fset_window_margins): Make window the first argument.
4942 (set_window_buffer): Call Fset_window_margins with window as first
4943 argument.
4944
49451999-09-07 Gerd Moellmann <gerd@gnu.org>
4946
4947 * xfaces.c (Qfringe): Replaces Qmargin.
4948
49491999-09-07 Kenichi Handa <handa@etl.go.jp>
4950
4951 * charset.h: Lots of comments fixed.
4952 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
4953 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
4954
4955 * charset.c : Lots of comments fixed.
4956 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
4957 (CHAR_COMPONENTS_VALID_P): Name changed from
4958 CHAR_COMPONENT_VALID_P. Caller changed.
4959
49601999-09-06 Richard Stallman <rms@gnu.org>
4961
4962 * insdel.c (syms_of_insdel): Define Lisp variable
4963 inhibit-modification-hooks.
4964
49651999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
4966
4967 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
4968 unexaix.c.
4969
4970 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
4971
49721999-09-06 Dave Love <fx@gnu.org>
4973
4974 * unexaix.c: New version incorporating Michael Sperber's changes
4975 from XEmacs. Should solve problems on AIX 4.3.
4976
4977 * lread.c (Vbyte_boolean_vars): New variable.
4978 (defvar_bool, syms_of_lread): Use it.
4979
49801999-09-05 Richard Stallman <rms@gnu.org>
4981
4982 * minibuf.c (read_minibuf): Put all three properties on the
4983 same range, the whole prompt.
4984
49851999-09-05 Gerd Moellmann <gerd@gnu.org>
4986
4987 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
4988 (Fplay_sound, syms_of_sound): Use it.
4989 (parse_sound): Allow float volume values in the range [0, 1].
4990 (Fplay_sound): Ditto.
4991
4992 * window.c (Fset_window_vscroll): Make window the first argument,
4993 amount to scroll the second. Take non-negative vscroll as
4994 argument.
4995 (Fwindow_vscroll): Return non-negative vscroll.
4996
4997 * xfns.c (Fx_show_tip): Improve documentation.
4998
49991999-09-05 Gerd Moellmann <gerd@gnu.org>
5000
5001 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
5002 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
5003 `top-line' and `top_line' to `header-line' and `header_line'.
5004 Likewise for similar spellings.
5005
50061999-09-05 Gerd Moellmann <gerd@gnu.org>
5007
5008 * xdisp.c (row_containing_pos): New.
5009 (try_window_id): Use it.
5010
5011 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
5012 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
5013 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
5014 Likewise for upper-case etc.
5015
50161999-09-05 Gerd Moellmann <gerd@gnu.org>
5017
5018 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
5019 Fix reference to renamed variable.
5020
50211999-09-04 Gerd Moellmann <gerd@gnu.org>
5022
5023 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
5024 (window_fixed_size_p): Use Qwindow_size_fixed instead of
5025 Qfixed_window_size.
5026 (syms_of_window): Ditto.
5027
5028 * fns.c (Fmakehash): Exchange optional test and size arguments.
5029
50301999-09-03 Gerd Moellmann <gerd@gnu.org>
5031
5032 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
5033 under newly created scroll bar.
5034 (expose_window): If window is not yet fully initialized, do
5035 nothing. This can happen when toolkit scroll bars are used and a
5036 window is split. Reconfiguring the scroll bars will generate an
5037 expose for a newly created window.
5038
5039 * frame.h (struct frame): New member `gamma'.
5040
5041 * xfns.c: Include math.h. Add extern declaration for atof in case
5042 we don't see one.
5043 (Qscreen_gamma): New.
5044 (struct x_frame_parm_table): Add prototypes, add
5045 x_set_screen_gamma.
5046 (gamma_correct): New function.
5047 (defined_color): Call it.
5048 (x_set_screen_gamma): New.
5049 (x_set_title): Add parameter old_value.
5050 (RES_TYPE_FLOAT): New.
5051 (x_get_arg): Handle RES_TYPE_FLOAT.
5052 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
5053 (lookup_pixel_color): Change call to x_alloc_nearest_color to
5054 new prototype.
5055 (lookup_rgb_color): Ditto.
5056 (syms_of_xfns): Initialize Qscreen_gamma.
5057
5058 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
5059 New. Allocate color for lwlib widgets.
5060 (x_alloc_nearest_color): Change parameter list include the
5061 frame on which to allocate colors. Gamma-correct colors.
5062 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
5063 parameter list.
5064
5065 * xterm.h: Change protorype of x_alloc_nearest_color.
5066
50671999-09-03 Richard Stallman <rms@gnu.org>
5068
5069 * callproc.c: Delete the system-independent include of stdlib.h
5070 (leaving only the one in the WINDOWSNT conditional).
5071
50721999-09-03 Andrew Choi <choi@cs.hku.hk>
5073
5074 * callproc.c (call-process) [macintosh]: Call mac_run_command in
5075 sysdep.c. The Mac code is modeled after the DOS code.
5076
5077 * dispextern.h [macintosh]: Include macterm.h to define substitute X
5078 Window types and macros.
5079
5080 * frame.h: Do nothing if included a second time.
5081 (enum output_method): Add mac_output frame type.
5082 (union output_data): Add new alternative `mac'.
5083 (FRAME_MAC_P): New macro.
5084
5085 * frame.c (Fframep) [macintosh]: Handle mac frame type.
5086 (syms_of_frame_1): Initialize Qmac.
5087 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
5088 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
5089 (Fmodify_frame_parameters) [macintosh]: Call
5090 mac_set_frame_parameter in macterm.c.
5091
5092 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
5093 (512) because Mac compilers limit local data of a function to 32K.
5094
5095 * make-docfiles.c: Correctly handle input files with Mac-style
5096 eol's.
5097
5098 * sysdep.c: Define numerous routines to emulate Unix system calls.
5099
5100 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
5101 file of an X Window environment.
5102
5103 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
5104 x-display-grayscale, x-color-defined-p, and x-color-values.
5105
5106 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
5107 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
5108 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
5109 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
5110 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
5111 New functions, replacing POSIX features.
5112
5113 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
5114 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
5115 (InitEmacsPasswdDir, run_mac_command): New subroutines.
5116
5117 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
5118 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
5119 (myPasswdDir, TempDirName, sys_siglist): New variables.
5120
5121 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
5122 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
5123 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
5124 Define empty stubs so Emacs will link.
5125
51261999-09-03 Gerd Moellmann <gerd@gnu.org>
5127
5128 * xdisp.c: Use XCAR and XCDR instead of XCONS.
5129
5130 * window.h: New member frozen_window_start_p.
5131
5132 * window.c (foreach_window, foreach_window_1): New.
5133 (freeze_window_start, freeze_window_starts): New.
5134 (make_window): Initialize frozen_window_start_p.
5135 (replace_window): Ditto.
5136 (Fset_window_point): Remove references to deleted variables.
5137 (Fset_window_start): Ditto.
5138
5139 * xdisp.c (Vresize_mini_config, resize_mini_frame,
5140 resize_mini_initial_height): Removed.
5141 (syms_of_xdisp): Remove references to these variables.
5142 (resize_mini_window): Don't save window configuration, freeze
5143 window starts instead. Enlarge window until displaying an empty
5144 buffer, then shrink it. Make the function externally visible.
5145 (redisplay_window): Treat frozen window start like forced start,
5146 but accept point outside of the window.
5147
5148 * dispextern.h: Add function prototype for resize_mini_window.
5149
5150 * minibuf.c (read_minibuf_unwind): Resize mini-window when
5151 reaching minibuf_level 0.
5152
5153 * lisp.h: Remove extern declarations for variables deleted from
5154 xdisp.c.
5155
5156 * dispnew.c (adjust_frame_glyphs): Remove reference to
5157 Vresize_mini_config.
5158
51591999-09-03 Gerd Moellmann <gerd@gnu.org>
5160
5161 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
5162 to USE_TOOLKIT_SCROLL_BARS.
5163
5164 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
5165 here.
5166 (XTset_vertical_scroll_bar): Clarify position computations. Clear
5167 under newly created scroll bar. Put toolkit scroll bars in the
5168 middle of the area reserved for the scroll bar.
5169
51701999-09-03 Kenichi Handa <handa@etl.go.jp>
5171
5172 The following changes are for the new handling of mulitbyte
5173 sequence. Now, except for a composite character, no multibyte
5174 character in string/buffer has trailing garbage bytes. For
5175 instance, the length of string "\201\300\300" is now 2, the first
5176 character is Latin-1 A-grave, the second is raw \300.
5177
5178 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
5179 are negative.
5180 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
5181 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
5182 (PARSE_COMPOSITE_SEQ): New macro.
5183 (PARSE_CHARACTER_SEQ): New macro.
5184 (PARSE_MULTIBYTE_SEQ): New macro.
5185 (CHAR_PRINTABLE_P): New macro.
5186 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
5187 (STRING_CHAR_AND_LENGTH): Likewise.
5188 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
5189 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
5190 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
5191
5192 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
5193 (SPLIT_CHARACTER_SEQ): New macro.
5194 (SPLIT_MULTIBYTE_SEQ): New macro.
5195 (CHAR_COMPONENT_VALID_P): New macro.
5196 (non_ascii_char_to_string): Generate a multibyte sequence as far
5197 as possible.
5198 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
5199 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
5200 (split_non_ascii_string): Likewise.
5201 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
5202 (char_printable_p): New function.
5203 (translate_char): Check character by NATNUMP instead of INTEGERP.
5204 (unibyte_char_to_multibyte): Call char_valid_p instead of
5205 VALID_MULTIBYTE_CHAR_P.
5206 (Fmake_char_internal): Check the arguments more rigidly.
5207 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
5208 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
5209 (Fmultibyte_char_to_unibyte): Check the validity of character by
5210 CHAR_VALID_P.
5211 (chars_in_text): Call multibyte_chars_in_text.
5212 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
5213 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
5214 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
5215
5216 * data.c (Faset): Adjust the way to check byte-combining
5217 possibility for the new handling of multibyte sequence.
5218
5219 * editfns.c (Fsubst_char_in_region): Likewise.
5220
5221 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
5222 (string_char_to_byte): Likewise.
5223 (string_byte_to_char): Likewise.
5224
5225 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
5226 macro STRING_CHAR_AND_LENGTH. Caller changed.
5227
5228 * insdel.c (count_combining_composition): New function.
5229 (count_combining_before): Adjust the way to check byte-combining
5230 possibility for the new handling of multibyte sequence. Call
5231 count_combining_composition for a composite character.
5232 (count_combining_after): Likewise.
5233
5234 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
5235 (print): Likewise.
5236
5237 * dispextern.h (struct it): Change the size of the member
5238 `ctl_chars'.
5239
5240 * xdisp.c (get_next_display_element): Display incomplete multibyte
5241 sequence (e.g. \222\300) by octal form.
5242
52431999-09-02 Gerd Moellmann <gerd@gnu.org>
5244
5245 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
5246
5247 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
5248 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
5249
52501999-09-02 Gerd Moellmann <gerd@gnu.org>
5251
5252 * buffer.c (set_buffer_internal): Never set
5253 windows_or_buffers_changed.
5254
5255 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
5256 if we have displayed to the bottom of the window.
5257
5258 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
5259 in both directions. Extend documentation.
5260
52611999-09-01 Gerd Moellmann <gerd@gnu.org>
5262
5263 * minibuf.c (read_minibuf): Flush display after setting cursor to
5264 column 0.
5265
52661999-08-31 Gerd Moellmann <gerd@gnu.org>
5267
5268 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
5269 already defined. This avoids a warning from buffer.c.
5270
52711999-08-30 Gerd Moellmann <gerd@gnu.org>
5272
5273 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
5274 of both margins.
5275 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
5276 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
5277 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
5278
5279 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
5280 once instead of twice.
5281 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
5282
5283 * xterm.c: Remove unused bitmaps.
5284 (continued_bits, continuation_bits, overlay_bits): Change images.
5285 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
5286 instead of FRAME_X_FLAGS_AREA_WIDTH.
5287 (x_after_update_window_line): Ditto.
5288 (x_draw_bitmap): Likewise.
5289 (x_draw_row_bitmaps): Likewise.
5290 (x_draw_glyph_string_box): Likewise.
5291 (x_draw_glyphs): Likewise.
5292 (x_scroll_run): Likewise.
5293 (expose_window_tree): Likewise.
5294 (note_mode_line_highlight): Likewise.
5295 (XTset_vertical_scroll_bar): Likewise.
5296 (x_clip_to_row): Likewise.
5297 (x_set_window_size): Likewise.
5298
5299 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
5300 of 2 * that value.
5301
5302 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
5303 2 * that value.
5304 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
5305 FRAME_FLAGS_AREA_WIDTH.
5306
5307 * window.c (coordinates_in_window): Use
5308 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
5309 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
5310 instead of twice.
5311
5312 * widget.c (set_frame_size): Set flags_area_extra to
5313 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
5314 (EmacsFrameSetCharSize): Ditto.
5315
5316 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
5317 instead of FRAME_FLAGS_AREA_WIDTH.
5318
5319 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
5320 FRAME_FLAGS_AREA_COLS once.
5321 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
5322 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
5323
53241999-08-30 Gerd Moellmann <gerd@gnu.org>
5325
5326 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
5327 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
5328
53291999-08-30 Gerd Moellmann <gerd@gnu.org>
5330
5331 * fns.c (QCweakness): Replaces QCweak.
5332 (Fmake_hash_table): Ditto.
5333 (Fmakehash): Ditto.
5334 (syms_of_fns): Ditto.
5335
53361999-08-29 Richard Stallman <rms@gnu.org>
5337
5338 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
5339
5340 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
5341
5342 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
5343 Add support for nested comments.
5344
863476d1
SM
5345 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
5346 Consolidate the forward comment code into the new `forw_comment'.
5347 (forw_comment): New subroutine. Added support for nested comments.
5348 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
5349 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
5350
53511999-08-28 Ken Raeburn <raeburn@gnu.org>
5352
5353 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
5354 names of structure elements if HIDE_LISP_IMPLEMENTATION is
5355 defined, to help detect code that uses knowledge of the Lisp
5356 internals that it shouldn't have.
5357 (XFLOAT_DATA): New macro.
5358
53591999-08-25 Gerd Moellmann <gerd@gnu.org>
5360
5361 * syntax.c (Fforward_word): If in a mini-buffer and moving
5362 backwards, stop in front of the prompt to prevent accidentially
5363 moving into the read-only prompt.
5364
5365 * window.c (Frecenter): Clear frame if called with nil or no arg.
5366
5367 * xdisp.c (resize_mini_window): Don't resize if
5368 Vmax_mini_window_height is nil. Otherwise, use a default if
5369 Vmax_mini_window_height is not ot a number.
5370 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
5371
53721999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
5373
5374 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
5375 * m/iris4d.h: Use unexelf for IRIX 5.*.
5376 * m/iris5d.h: Use unexelf for IRIX 6.*.
5377 * unexsgi.c: Deleted.
5378
5379 * unexelf.c: Auto-detect .sbss section.
5380 (round_up): Make it static.
5381 (unexec): Declare alignment as Elf Word. Skip ``Program
5382 segment above .bss'' test on MIPS without .sbss.
5383 Copy sections .got and .sdata1 sections. Adjust offsets in
5384 sections .sdata, .lit4, .lit8, .got and .sdata1.
5385
53861999-08-25 Gerd Moellmann <gerd@gnu.org>
5387
5388 * xdisp.c (try_window_id): Remove typo.
5389
53901999-08-24 Gerd Moellmann <gerd@gnu.org>
5391
5392 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
5393 unchanged text at the bottom when computing the cursor position.
5394 (message3_nolog): Raise frame only if minibuffer_auto_raise is
5395 set.
5396
5397 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
5398
53991999-08-24 Gerd Moellmann <gerd@gnu.org>
5400
5401 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
5402 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
5403 (syms_of_xfaces): Ditto.
5404
5405 * window.c (Fset_window_point): Reset Vresize_mini_config.
5406 (Fset_window_start): Ditto.
5407 (set_window_buffer): Ditto.
5408
5409 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
5410
5411 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
5412 before calling try_window.
5413 (echo_area_display): If height has changed, update other windows.
5414 (resize_mini_frame, resize_mini_initial_height): New.
5415 (resize_mini_window): Save/restore window configuration
5416 differently.
5417
5418 * lisp.h (Vresize_mini_config, resize_mini_frame,
5419 resize_mini_initial_height): Add extern declarations.
5420
5421 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
5422 CANON_X_UNIT.
5423
5424 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
5425 being redefined in jconfig.h.
5426
54271999-08-23 Ken'ichi Handa <handa@gnu.org>
5428
5429 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
5430
54311999-08-22 Gerd Moellmann <gerd@gnu.org>
5432
5433 * alloc.c (mark_glyph_matrix): Mark strings only.
5434
5435 * xdisp.c (redisplay_internal): Clear garbaged frames after
5436 resizing mini-window.
5437
54381999-08-22 Gerd Moellmann <gerd@gnu.org>
5439
5440 * xdisp.c (unwind_with_echo_area_buffer): Use
5441 set_buffer_internal_1 instead of set_buffer_internal.
5442 (with_echo_area_buffer): Ditto.
5443
5444 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
5445 only if buffer is displayed somewhere.
5446
5447 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
5448
5449 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
5450 (gap_right): Ditto.
5451 (modify_region): Ditto.
5452
5453 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
5454
5455 * xdisp.c (Vresize_mini_config): New.
5456 (resize_mini_window): Use it to save restore original window
5457 configuration
5458 (syms_of_xdisp): Initialize it.
5459
5460 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
5461
5462 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
5463
5464 * xdisp.c (reconsider_clip_changes): New.
5465 (redisplay_internal, redisplay_window): Call it.
5466 (mark_window_display_accurate, redisplay_internal): Set current
5467 matrix' buffer, begv, zv.
5468
5469 * window.c (Fset_window_hscroll): Set
5470 prevent_redisplay_optimizations_p instead of clip_changed.
5471 (Fset_window_hscroll): Ditto.
5472 (temp_output_buffer_show): Ditto.
5473 (Fset_window_vscroll): Ditto.
5474
5475 * buffer.c (reset_buffer): Set clip_changed to 0 and
5476 prevent_redisplay_optimizations_p to 1.
5477 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
5478
5479 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
5480 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
5481 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
5482 END_UNCHANGED): New.
5483 (struct buffer_text): Add beg_unchanged, end_unchanged,
5484 unchanged_modified, overlay_unchanged_modified.
5485
5486 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
5487 overlay_unchanged_modified): Removed.
5488 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
5489 (unwind_with_echo_area_buffer): Don't restore them.
5490 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
5491 (text_outside_line_unchanged_p, redisplay_internal,
5492 try_scrolling): Use/set buffer-specific beg/end_unchanged.
5493 (redisplay_window): Let try_window_id be called if more than one
5494 window is displayed. Use/set buffer-specific beg/end_unchanged.
5495 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
5496 try_window_id):
5497 Use buffer-specific beg/end_unchanged.
5498
5499 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
5500 overlay_unchanged_modified): Remove extern declarations.
5501
5502 * keyboard.c (command_loop_1): Set beg/end_unchanged per
5503 buffer.
5504
5505 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
5506 (gap_right): Ditto.
5507 (adjust_after_replace): Likewise.
5508 (replace_range, del_range_2, modify_region): Likewise.
5509
5510 * dispnew.c (direct_output_for_insert): Set beg_unchanged
5511 and unchanged_modified per buffer.
5512
5513 * coding.c (code_convert_region): Compute beg/end_unchanged per
5514 buffer.
5515
5516 * buffer.c (modify_overlay): Compute beg/end_unchanged
5517 per buffer.
5518 (Fget_buffer_create): Initialize new members of the buffer
5519 structure.
5520
55211999-08-22 Gerd Moellmann <gerd@gnu.org>
5522
5523 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
5524
5525 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
5526 (Qkey_value_weak): Removed.
5527 (make_hash_table): Use nil, `key', `value', t for weakness.
5528 (Fmake_hash_table): Ditto.
5529 (copy_hash_table): New.
5530 (Fcopy_hash_table): New.
5531
55321999-08-22 Gerd Moellmann <gerd@gnu.org>
5533
5534 * xfns.c: Call change_frame_size and do_pending_window_change with
5535 new parameter.
5536
55371999-08-21 Gerd Moellmann <gerd@gnu.org>
5538
5539 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
5540 well.
5541 (redisplay_internal): Resize mini-window only if text might
5542 have changed.
5543 (display_echo_area): Reset displayed echo_area_buffer to nil
5544 at the end if we're displaying a nil message.
5545
55461999-08-21 Gerd Moellmann <gerd@gnu.org>
5547
5548 * fns.c (hash_lookup): Test with EQ before calling key comparion
5549 function.
5550 (hash_remove): Ditto.
5551 (cmpfn_eq): Removed.
5552 (cmpfn_eql): Don't test with EQ.
5553 (cmpfn_equal): Ditto.
5554 (make_hash_table): Set comparison function for `eq' to null.
5555
5556 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
5557 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
5558
5559 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
5560
5561 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
5562 xterm.c: Call change_frame_size and do_pending_window_change with
5563 new parameter.
5564
5565 * dispnew.c (do_pending_window_change): Add parameter `safe'.
5566 (change_frame_size): Ditto.
5567 (change_frame_size_1): Ditto. Deley size changes if redisplaying
5568 and not called from a safe place.
5569 (window_change_signal): Call change_frame_size with new parameter.
5570
5571 * dispextern.h: Change prototypes for do_pending_window_change
5572 and change_frame_size.
5573
5574 * xfaces.c (face_at_buffer_position): Don't xassert that
5575 window's buffers equals current_buffer; this is not the
5576 case during echo area display.
5577
55781999-08-21 Gerd Moellmann <gerd@gnu.org>
5579
5580 * xdisp.c, minibuf.c: Remove conditional compilation on
5581 NO_PROMPT_IN_BUFFER.
5582
5583 * minibuf.c (Fminibuffer_prompt_end): New.
5584 (syms_of_minibuf): Defsubr it. Remove
5585 minibuffer-prompt-in-buffer.
5586 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
5587 Extend documentation.
5588
5589 * xdisp.c (get_next_display_element): Display \r as ^M.
5590
5591 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
5592 under scroll bar widget.
5593
55941999-08-21 Gerd Moellmann <gerd@gnu.org>
5595
5596 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
5597 anywhere.
5598 (unwind_redisplay): Return nil.
5599 (clear_garbaged_frames): New.
5600 (redisplay_internal): Use it.
5601 (echo_area_display): Ditto.
5602 (resize_mini_window): Mew.
5603 (display_echo_area_1): Use it to resize echo area window.
5604 (redisplay_internal): Use it to resize active mini-window.
5605
5606 * dispextern.h, lisp.h: Add function prototypes.
5607
5608 * dispnew.c (set_window_cursor_after_update): Do the
5609 cursor_in_echo_area case only for a mini-window showing
5610 a message. Don't let cursor end up after the end of a row.
5611
5612 * xdisp.c (echo_area_glyphs, echo_area_message,
5613 echo_area_glyphs_length, previous_echo_glyphs,
5614 previous_echo_area_message, previous_echo_area_glyphs_length):
5615 Removed.
5616 (Vmessage_stack, echo_area_buffer, echo_buffer,
5617 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
5618 (message2_nolog): Use set_message and clear_message.
5619 (message3): Rename parameter len to nbytes to make clear what
5620 it is.
5621 (message3_nolog): Ditto. Use set_message and clear_message.
5622 (update_echo_area): Rewritten.
5623 (with_echo_area_buffer): New.
5624 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
5625 (setup_echo_area_for_printing): New.
5626 (display_echo_area, display_echo_area_1): New.
5627
5628 (current_message, current_message_1): New.
5629 (push_message, restore_message, pop_message,
5630 check_message_stack): New.
5631 (truncate_echo_area): Rewritten.
5632 (truncate_message_1): New.
5633 (set_message, set_message_1, clear_message): New.
5634 (echo_area_display): Rewritten.
5635 (redisplay_internal): Check for needed echo area update
5636 differently.
5637 (redisplay_preserve_echo_area): Rewritten.
5638 (redisplay_window): Check for mini-window displaying echo area
5639 message differently.
5640 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
5641 Remove initialzation of removed variables.
5642 (init_xdisp): Remove references to removed variables.
5643
5644 * dispnew.c (adjust_frame_message_buffer): Removed references
5645 to echo_area_glyphs and previous_echo_glyphs.
5646 (direct_output_for_insert): Check for mini-window displaying
5647 echo area message differently.
5648 (update_frame): Likewise.
5649 (set_window_cursor_after_update): Likewise. In echo area,
5650 don't try to set cursor on rows that aren't enabled.
5651
5652 * print.c: Remove conditional compilation on `standalone'.
5653 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
5654 glyph_to_str_cpy): Remove that section because GLYPHs are no
5655 longer used in that way.
5656 (PRINTDECLARE): Add multibyte.
5657 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
5658 (printbufidx): Removed.
5659 (printchar, strout): Rewritten.
5660
5661 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
5662 a struct kboard.
5663 (echo_kboard): New.
5664 (echo_now): Set echo_kboard to the current kboard.
5665 (cancel_echoing): Set echo_kboard to null.
5666 (cmd_error_internal): Use clear_message, remove references
5667 to echo_area_glyphs and echo_area_message.
5668 (command_loop_1): Check for echo area messages differently.
5669 (read_char): Likewise.
5670 (record_menu_key): Use clear_message.
5671 (Fexecute_extended_command): Check for echo area messages
5672 differently. Use push_message, restore_message, pop_message.
5673
5674 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
5675 pop_message.
5676
5677 * emacs.c (shut_down_emacs): Call check_message_stack.
5678
5679 * lisp.h: Add function prototypes and extern declarations for
5680 new functions and variables.
5681
5682 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
5683 pop_message.
5684
5685 * minibuf.c (read_minibuf): Use clear_message instead of
5686 setting echo_area_glyphs.
5687 (Fminibuffer_completion_help): Ditto.
5688
5689 * editfns.c (Fcurrent_message): Rewritten.
5690
5691 * frame.c, window.h: Remove references to echo_area_glyphs
5692 and previous_echo_glyphs.
5693
56941999-08-21 Dave Love <fx@gnu.org>
5695
5696 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
5697 * aix4-1.h: Likewise.
5698
5699 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
5700
57011999-08-20 Gerd Moellmann <gerd@gnu.org>
5702
5703 * xfns.c: Remove tiff34 prefix from include.
5704
57051999-08-20 Dave Love <fx@gnu.org>
5706
5707 * cm.c: Revert previous change.
5708
57091999-08-19 Gerd Moellmann <gerd@gnu.org>
5710
5711 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
5712 under scroll bar with width FRAME_SCROLL_BAR_COLS.
5713
57141999-08-18 Dave Love <fx@gnu.org>
5715
5716 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
5717 stdlib.h.
5718
5719 * doprnt.c: Use stdlib.h, unistd.h.
5720
5721 * config.in: Add HAVE_TERMCAP_H.
5722
5723 * cm.c: Use termcap.h.
5724
57251999-08-18 Gerd Moellmann <gerd@gnu.org>
5726
5727 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
5728 FRAME_X_WINDOW (f) being null at the of the function. If widgets
5729 cannot be created we will already have crashed earlier. Call
5730 lw_set_main_areas with a null menu-bar widget, so that we have
5731 a reasonable default.
5732 (Fx_create_frame): Rearranged so that Lisp errors during frame
5733 initialization cause less damage. Initialize menu bar widget
5734 here.
5735
57361999-08-18 Gerd Moellmann <gerd@gnu.org>
5737
5738 * dispnew.c (update_frame_line): Fix previous change. If writing
5739 whole line clear to end of frame.
5740
57411999-08-17 Gerd Moellmann <gerd@gnu.org>
5742
5743 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
5744 and `right-bitmap-area' if position is in the bitmap areas. This
5745 avoids an error when clicking on the bitmap areas. Instead, they
5746 are currently treated like clicks inside the window.
5747 (coordinates_in_window): Return 5 and 6 for bitmap areas.
5748 (Qleft_bitmap_area, Qright_bitmap_area): New.
5749 (syms_of_window): Initialize new symbols.
5750
5751 * dispnew.c (update_frame_line): If writing whole line,
5752 don't write trailing spaces unless we must.
5753
5754 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
5755 (redisplay_internal): Register unwind_redisplay with
5756 register_unwind_protect.
5757 (try_window_reusing_current_matrix): If new start > old start,
5758 give up if start pos of first reusable row is not equal to new
5759 start.
5760
5761 * eval.c (Fsignal): Don't reset redisplaying_p here.
5762
5763 * xterm.c (expose_area): If row extends face to end of line,
5764 write the whole line.
5765
57661999-08-16 Gerd Moellmann <gerd@gnu.org>
5767
5768 * dispextern.h (struct it): Remove member
5769 show_trailing_whitespace_p.
5770
5771 * dispnew.c (direct_output_for_insert): Use
5772 Vshow_trailing_whitespace instead of former iterator member
5773 show_trailing_whitespace_p.
5774 (direct_output_forward_char): Don't do it if hightlighting
5775 trailing whitespace.
5776
5777 * xdisp.c (Qshow_trailing_whitespace): Removed.
5778 (Vshow_trailing_whitespace): Added.
5779 (init_iterator): Remove initialization code for
5780 show_trailing_whitespace_p.
5781 (redisplay_internal): Don't try cursor movement in this_line
5782 if showing trailing whitespace.
5783 (redisplay_window): Likewise for cursor movement in current
5784 matrix and try_window_id.
5785 (try_window_reusing_current_matrix): Likewise.
5786 (trailing_whitespace_p): Return 0 if trailing whitespace is
5787 in front of point.
5788 (display_line): Use Vshow_trailing_whitespace instead of
5789 former iterator member show_trailing_whitespace_p.
5790 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
5791
57921999-08-16 Gerd Moellmann <gerd@gnu.org>
5793
5794 * window.c (Fpos_visible_in_window_p): Rewritten.
5795
5796 * xfaces.c (add_to_log): Renamed from display_message.
5797 Don't display messages in echo area.
5798
5799 * xterm.c (x_draw_glyph_string_box): Use the background width
5800 of the glyph string for the width of the box.
5801
58021999-08-16 Stefan Monnier <monnier@cs.yale.edu>
5803
5804 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
5805
58061999-08-16 Geoff Voelker <voelker@cs.washington.edu>
5807
5808 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
5809 background first, and then set other parameters that might
5810 depend upon their new values.
5811
58121999-08-15 Gerd Moellmann <gerd@gnu.org>
5813
5814 * xfaces.c (Vfont_list_limit): New.
5815 (syms_of_xfaces): Make it a user-variable.
5816 (DEFAULT_FONT_LIST_LIMIT): New.
5817 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
5818 maximally that number of fonts, otherwise use
5819 DEFAULT_FONT_LIST_LIMIT.
5820 (Fx_font_family_list): Bind `font-list-limit' to higher values
5821 until we have all fonts.
5822 (Fxfont_list): Additionally return the full names of fonts and
5823 their registry and encoding.
5824
5825 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
5826 Simplify clearing "under" scroll bar.
5827
5828 * window.c (Qfixed_window_size): New.
5829 (syms_of_window): Initialiaze it.
5830 (check_all_windows): Add return type void.
5831 (window_fixed_size_p): New. Return non-zero if window
5832 is fixed-size.
5833 (window_min_size_1): New.
5834 (window_min_size): Handle fixed-size windows.
5835 (size_window): New. Rewritten combination of set_window_height and
5836 set_window_width that handles fixed-size windows.
5837 (set_window_height): Call it.
5838 (set_window_width): Call it.
5839 (Fsplit_window): Give an error on attempt to split a fixed-size
5840 window.
5841 (change_window_height): Partly rewritten to handle fixed-size
5842 windows.
5843
58441999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
5845
5846 * process.c (Fopen_network_stream): Fix previous change.
5847
58481999-08-13 Karl Heuer <kwzh@gnu.org>
5849
5850 * xdisp.c (line_number_display_limit_width): New var.
5851 (decode_mode_spec): Use it instead of hardcoded value.
5852 (syms_of_xdisp): Defvar it.
5853
58541999-08-13 Richard M. Stallman <rms@gnu.org>
5855
5856 * eval.c (run_hook_list_with_args): Gcpro `globals'.
5857 (run_hook_with_args): Likewise.
5858
5859 * window.h (struct window): New field too_small_ok.
5860
5861 * window.c (set_window_height, set_window_width):
5862 If window starts out "too small", set its too_small_ok flag.
5863 If window's too_small_ok flag is set, don't delete it
5864 unless it is so small it would cause a crash.
5865
58661999-08-13 Gerd Moellmann <gerd@gnu.org>
5867
5868 * window.c (MINSIZE): Removed.
5869 (window_min_size): New.
5870 (set_window_height): Use window_min_size.
5871 (change_window_height): Ditto.
5872
58731999-08-12 Gerd Moellmann <gerd@gnu.org>
5874
5875 * indent.c (vmotion): Don't add in mini-buffer prompt width
5876 if prompts are inserted into mini-buffer.
5877
58781999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
5879
5880 * config.in: Add HAVE_GETADDRINFO.
5881 * process.c (Fopen_network_stream): Use getaddrinfo.
5882
58831999-08-11 Gerd Moellmann <gerd@gnu.org>
5884
5885 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
5886 glyphs to -1.
5887
5888 * xdisp.c (face_before_or_after_it_pos): If position after
5889 or before iterator's current position in the buffer is out
5890 of bounds, return the iterator's original face id.
5891
5892 * dispnew.c (mirror_make_current): If desired row isn't enabled,
5893 just swap glyphs pointers between current and desired row.
5894 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
5895 desired matrix method string to current matrix.
5896
58971999-08-11 Kenichi Handa <handa@etl.go.jp>
5898
5899 * lisp.h (CHAR_MODIFIER_MASK): New macro.
5900
5901 * lread.c (read_escape): For Control modifier, pay attention to
5902 multibyte character.
5903 (read1): Likewise. Singal error or a multibyte character which
5904 has a modifer bit. Check validity of Shift modifer.
5905
5906 * charset.c (non_ascii_char_to_string): Handle modifier bits as
5907 the same as Lisp reader.
5908
59091999-08-10 Richard M. Stallman <rms@gnu.org>
5910
5911 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
5912
59131999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
5914
5915 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
5916
59171999-08-10 Eli Zaretskii <eliz@gnu.org>
5918
5919 * msdos.c (IT_set_face): Abort if the default face is not realized
5920 and cached.
5921 (IT_write_glyphs): Reset the screen face to the default face
5922 before writing glyphs.
5923
5924 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
5925 colors from the frame here.
5926 (realize_tty_face) [MSDOS]: Do it here. Update the face
5927 attributes with the actual name of the color taken from the
5928 frame.
5929
5930 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
5931 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
5932
5933 * frame.c (Fframe_parameters): Swap foreground and background
5934 colors returned in frame parameters if the frame has reverse in
5935 its parameter alist.
5936 (Fmake_terminal_frame): Make a unique copy of face_alist for
5937 each frame.
5938
59391999-08-07 Richard Stallman <rms@gnu.org>
5940
5941 * buffer.c (Fprevious_overlay_change): Just return
5942 the answer obtained from overlays_at.
5943
5944 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
5945 Use XpmCloseness and attrs.closeness instead.
5946
59471999-08-06 Richard Stallman <rms@gnu.org>
5948
5949 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
5950
59511999-08-06 Geoff Voelker <voelker@cs.washington.edu>
5952
5953 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
5954 Ffile_attributes_lessp): New functions.
5955 (Fdirectory_files): Use directory_files_internal.
5956 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
5957 Ffile_attributes_lessp.
5958
5959 * w32.c (stat): Check for directory ending in separator when
5960 doing readdir fast path.
5961
5962 * w32fns.c (x_set_icon_type): Support setting frame icons.
5963 * w32term.c (x_bitmap_icon): New function.
5964 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
5965
59661999-08-06 Gerd Moellmann <gerd@gnu.org>
5967
5968 * xdisp.c (set_iterator_to_next): After delivering a character
5969 from a display vector, restore face and charset to what they were
5970 before the display vector was processed.
5971
59721999-08-06 Gerd Moellmann <gerd@gnu.org>
5973
5974 * xdisp.c (reseat_at_next_visible_line_start): New parameter
5975 on_newline_p.
5976 (set_iterator_to_next): After delivering last char
5977 from display vector, reseat on next visible line start if
5978 dpvec_char_len < 0.
5979 (next_element_from_buffer): Set dpvec_char_len to -1 for
5980 selective display.
5981
59821999-08-06 Gerd Moellmann <gerd@gnu.org>
5983
5984 * xdisp.c (compute_line_metrics): If first line's physical ascent
5985 is larger than its logical ascent, use the physical ascent, and
5986 make the row taller. Set row's overlapping_p flag.
5987
5988 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
5989 (direct_output_for_insert): Ditto.
5990
5991 * dispextern.h (struct glyph_row): Add overlapping_p.
5992
5993 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
5994
5995 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
5996 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
5997
5998 * dispnew.c (direct_output_for_insert): Don't use this method if
5999 row is overlapped by others.
6000 (update_text_area): Write full line if current line is overlapped.
6001 (redraw_overlapped_rows): New.
6002 (update_window): Call it.
6003 (redraw_overlapping_rows): New.
6004 (update_window): Call it.
6005 (scrolling_window): Make sure overlapped_p flag in current rows is
6006 unchanged.
6007 (row_equal_p): Take rows overlapped_p flag into account.
6008
6009 * dispextern.h (struct glyph_row): Add flag overlapped_p.
6010
6011 * xterm.c (x_fix_overlapping_area): New.
6012 (x_redisplay_interface): Add x_fix_overlapping_area.
6013
6014 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
6015
60161999-08-06 Gerd Moellmann <gerd@gnu.org>
6017
6018 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
6019 (struct glyph_string): Add member for_overlaps_p.
6020 (x_get_glyph_string_clip_rect): If glyph string draws foreground
6021 of overlapping rows, clip to window bottom.
6022 (x_fill_glyph_string): Add parameter overlaps_p.
6023 (x_fill_composite_glyph_string): Ditto.
6024 (BUILD_GLYPH_STRINGS): Ditto.
6025 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
6026 (x_draw_glyph_string): Don't draw anything but the foreground
6027 if glyph string draws row overlaps.
6028
6029 * dispnew.c (direct_output_for_insert): Don't use this
6030 optimization for rows that overlap others.
6031 (update_window_line): Return non-zero if display has changed.
6032 (update_text_area): Ditto.
6033 (update_window): Record if display has been changed.
6034
6035 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
6036
6037 * dispextern.h (struct redisplay_interface): Add
6038 fix_overlapping_area.
6039
6040 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
6041
6042 * dispextern.h (struct glyph): Add overlaps_vertically_p.
6043
6044 * xterm.c (x_produce_image_glyph): Compute iterator's physical
6045 ascent and descent.
6046 (x_produce_stretch_glyph): Ditto.
6047 (x_produce_glyphs): Ditto.
6048
6049 * xdisp.c (init_iterator): Reset physical line height info
6050 after producing special glyphs.
6051 (display_toolbar_line): Set physical line height info.
6052 (compute_line_metrics): Ditto.
6053 (display_line): Ditto.
6054 (display_string): Ditto.
6055
6056 * term.c (produce_glyphs): Set iterator's physical height
6057 information.
6058
6059 * dispnew.c (blank_row): Compute glyph row's physical height.
6060 (row_equal_p): Take physical row heights into account.
6061 (direct_output_for_insert): Ditto.
6062 (update_text_area): Ditto.
6063
6064 * dispextern.h (struct glyph_row): Add phys_ascent and
6065 phys_height.
6066 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
6067 max_phys_descent.
6068
60691999-08-04 Stefan Monnier <monnier@cs.yale.edu>
6070
6071 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
6072 Fswitch_to_buffer.
6073 (no_switch_buffer): New function.
6074 (Fswitch_to_buffer): Call them. Don't get confused
6075 by "same-window" buffers in a dedicated frame.
6076
6077 * window.c (display-buffer): Don't get confused
6078 by "same-window" buffers in a dedicated frame.
6079
60801999-08-04 Andreas Schwab <schwab@gnu.org>
6081
6082 * insdel.c (insert_from_string_1): Check gap size against number
6083 of outgoing bytes, not incoming bytes.
6084
60851999-08-03 Tom Breton <tob@world.std.com>
6086
6087 * lread.c (read1): Added circular reading code to #N=.
6088 (SUBSTITUTE): New macro.
6089 (seen_list): New variable.
6090 (substitute_object_in_subtree): New function.
6091 (substitute_object_recurse): New function.
6092 (substitute_in_interval): New function.
6093
60941999-08-02 Eli Zaretskii <eliz@gnu.org>
6095
6096 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
6097
6098 * frame.c (make_terminal_frame): Don't call init_frame_faces if
6099 noninteractive, for termcap frames as well.
6100
6101 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
6102 frames.
6103
61041999-08-01 Richard Stallman <rms@gnu.org>
6105
6106 * fns.c (internal_equal): Correct overlay comparison.
6107
83c8f461 61081999-07-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
6109
6110 * xfns.c (x_set_internal_border_width):
6111 Call do_pending_window_change. Don't block input, don't call XFlush.
6112 (x_set_vertical_scroll_bars): Call do_pending_window_change.
6113 (x_set_scroll_bar_width, x_set_font): Likewise.
6114
6115 * frame.c (Fset_frame_height): Call do_pending_window_change.
6116 (Fset_frame_width, Fset_frame_size): Likewise.
6117
6118 * xterm.c (x_set_window_size): When calling change_frame_size,
6119 specify 1 for DELAY.
6120
6121 * widget.c (EmacsFrameSetCharSize): Don't call
6122 do_pending_window_change here.
6123
61241999-07-30 Dave Love <fx@gnu.org>
6125
6126 * config.in: Add HAVE_STDLIB_H.
6127
61281999-07-30 Richard M. Stallman <rms@gnu.org>
6129
6130 * process.c (create_process): Detect failure of `pipe'.
6131
61321999-07-30 Keisuke Nishida <kei@psn.net>
6133
6134 * alloc.c (allocate_vectorlike): Add missing increment.
6135
6136 * data.c (Fdefalias): Call Ffset instead of duplicating code.
6137
6138 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
6139 before calling indirect_function.
6140
61411999-07-30 Eli Zaretskii <eliz@gnu.org>
6142
6143 * dispextern.h (load_color, lookup_derived_face): Declare
6144 prototypes.
6145
6146 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
6147 it will be done later.
6148
6149 * frame.c (make_terminal_frame) [MSDOS]: Don't call
6150 init_frame_faces if non-interactive.
6151 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
6152 array with a call to msdos_stdcolor_name. The font name is now
6153 "ms-dos", consistent with realize_tty_face.
6154
6155 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
6156 MSDOS frame.
6157
6158 * window.c (Fset_window_configuration) [MSDOS]: Don't call
6159 x_set_toolbar_lines.
6160
6161 * xfaces.c (load_color): Remove static from definition and remove
6162 prototype.
6163 [MSDOS]: Add a DOS-specific version of load_color.
6164 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
6165 (lookup_derived_face): New function.
6166 (realize_default_face): Support MSDOS frames.
6167 [MSDOS]: If fore/background colors are unspecified, inherit them
6168 from the frame.
6169 (realize_face): Support MSDOS frames.
6170 (realize_tty_face): Support MSDOS frames.
6171 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
6172 load_color to try to find a suitable approximation. If the face
6173 is inverse-video, swap the foreground and background colors.
6174
6175 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
6176 functions.
6177
6178 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
6179
6180 * msdos.h: Remove redundant declarations (most of them are now in
6181 dispextern.h).
6182
6183 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
6184 Use default frame colors if the face doesn't specify them; invert
6185 the colors if highlight is ON.
6186 (IT_write_glyphs): Rewritten for the new redisplay engine.
6187 (IT_change_line_highlight): Add (unused) parameter Y, since that's
6188 how the hook is called by term.c.
6189 (IT_copy_glyphs): New function, copies an area of the display in
6190 video RAM.
6191 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
6192 redisplay now calls it even if char_ins_del_ok is zero.
6193 (IT_set_frame_parameters): Prototype changed. Calls the new
6194 load_color. Puts the new fore/background colors into the default
6195 face on current frame.
6196 (IT_menu_display): Rewritten to handle the new struct glyph
6197 instead of a char array.
6198 (XMenuActivate): Call lookup_derived_face to create and use
6199 special faces for the pop-up and drop-down menus.
6200
62011999-07-29 Gerd Moellmann <gerd@gnu.org>
6202
6203 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
6204 XawScrollbarSetThumb if thumb parameters haven't changed because
6205 that function apparently isn't optimized for this case.
6206
62071999-07-29 Eli Zaretskii <eliz@gnu.org>
6208
6209 * msdos.c (getdefdir): Don't return failure indication when
6210 _fixpath sets errno to ENOSYS.
6211
62121999-07-28 Gerd Moellmann <gerd@gnu.org>
6213
6214 * xdisp.c (string_char_and_length): New. Use it everywhere
6215 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
6216
62171999-07-28 Kenichi Handa <handa@etl.go.jp>
6218
6219 * fns.c (count_combining): New function.
6220 (struct textprop_rec): New structure.
6221 (concat): Copy text properties correctly when byte combining
6222 occurs.
6223
62241999-07-28 Gerd Moellmann <gerd@gnu.org>
6225
6226 * xterm.c (x_setup_relief_color): Don't try smart color allocation
6227 if display is mono.
6228 (x_draw_row_bitmaps): If face has stipple, don't switch
6229 to foreground color for clearing areas, and set the fill style.
6230
6231 * xfaces.c (load_face_colors): Load background color if setting
6232 stipple, too.
6233 (prepare_face_for_display): Use FillOpaqueStippled instead of
6234 FillStippled.
6235
62361999-07-26 Ken'ichi Handa <handa@gnu.org>
6237
6238 * xterm.c (x_find_ccl_program): Add casting.
6239
6240 * w32fns.c (w32_find_ccl_program): Add casting.
6241
62421999-07-27 Gerd Moellmann <gerd@gnu.org>
6243
6244 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
6245
6246 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
6247 because this will try to access a nonexisting widget.
6248
62491999-07-26 Markus Rost <rost@gnu.org>
6250
6251 * fns.c (Fgethash): Fix order of variables (patch by gerd).
6252 (Fputhash): Ditto.
6253 (Fremhash): Ditto.
6254
62551999-07-26 Gerd Moellmann <gerd@gnu.org>
6256
6257 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
6258 value to frame width and height.
6259
6260 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
6261 into account for full-width windows. Don't add scroll bar width
6262 to width of clip rect.
6263 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
6264 (x_set_glyph_string_background_width): Add 1 to background width.
6265 (x_draw_glyphs): Take internal border into account for full-width
6266 lines.
6267
62681999-07-26 Richard M. Stallman <rms@gnu.org>
6269
6270 * xfns.c (x_set_mouse_color): Always unload the old color.
6271 Don't allow nil as color value.
6272 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
6273 Always unload the old color.
6274
6275 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
6276
62771999-07-26 Karl Heuer <kwzh@gnu.org>
6278
6279 * fns.c (Fy_or_n_p): Doc fix.
6280
62811999-07-26 Kenichi Handa <handa@etl.go.jp>
6282
6283 * ccl.h (setup_ccl_program): The type is changed to `int'.
6284
6285 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
6286 stored in the following CCL code. Adjusted for the change of
6287 Vccl_program_table.
6288 (resolve_symbol_ccl_program): Adjusted for the new style of
6289 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
6290 is resolving failed.
6291 (ccl_get_compiled_code): New function.
6292 (setup_ccl_program): Function type changed from `void' to `int'.
6293 Resolve symbols in CCL_PROG.
6294 (Fccl_program_p): New function.
6295 (Fccl_execute): Get compiled CCL code by just calling
6296 setup_ccl_program.
6297 (Fccl_execute_on_string): Likewise.
6298 (Fregister_ccl_program): Adjusted for the change of
6299 Vccl_program_table.
6300
6301 * coding.c (setup_coding_system): Get compiled CCL code by just
6302 calling setup_ccl_program.
6303
6304 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
6305 calling setup_ccl_program.
6306
6307 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
6308 calling setup_ccl_program.
6309
63101999-07-23 Gerd Moellmann <gerd@gnu.org>
6311
6312 * xfaces.c (frame_update_line_height): Just use the height of the
6313 frame's fontset or font, instead of taking face fonts into
6314 account.
6315
6316 * xdisp.c (get_next_display_element): Display DEL as `^?'.
6317
63181999-07-23 Richard M. Stallman <rms@gnu.org>
6319
6320 * window.c (Fsplit_window): For default size, round up for left window.
6321
63221999-07-21 Joe Ramey <ramey@ti.com>
6323
6324 * filelock.c (lock_if_free): Return -1 if check_lock_owner
6325 has returned -1 (lockfile exists but is not a symlink?).
6326
63271999-07-20 Gerd Moellmann <gerd@gnu.org>
6328
6329 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
6330 because of a change in cursor_gc made in 20.4.
6331
63321999-07-19 Gerd Moellmann <gerd@gnu.org>
6333
6334 * xterm.c (x_calc_absolute_position): Subtract menu bar height
6335 for YNegative, if using X toolkit.
6336
6337 * xfns.c (x_real_positions): Don't subtract window borders
6338 from positions returned.
6339
63401999-07-17 Gerd Moellmann <gerd@gnu.org>
6341
6342 * xrdb.c (x_load_resources): Set double-click time defaults
6343 for Motif list boxes from double-click-time.
6344
6345 * fns.c (Vhash_table_tests): Remvoed.
6346 (Qhash_table_test): New.
6347 (syms_of_fns): Initialize Qhash_table_test.
6348 (Fmake_hash_table): Look up user-defined tests in symbol prop
6349 `hash-table-test'.
6350 (Fdefine_hash_table_test): Store test and hash function as
6351 symbol prop `hash-table-test'.
6352 (make_hash_table): Add parameters user_test and user_hash.
6353
6354 * window.c (set_window_buffer): Set window margins for tty
6355 frames, too.
6356 (Fset_window_margins): Ditto.
6357
6358 * term.c (append_glyph): Use glyph area of iterator instead of
6359 always TEXT_AREA.
6360
6361 * dispnew.c (update_frame_1): Add left margin width to cursor
6362 hpos.
6363 (direct_output_for_insert): Ditto.
6364 (direct_output_forward_char): Ditto.
6365
6366 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
6367
6368 * dispextern.h (struct glyph_matrix): Add top_line_p.
6369
63701999-07-16 Gerd Moellmann <gerd@gnu.org>
6371
6372 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
6373 instead.
6374
6375 * fns.c (cmpfn_eq): Add hash code parameters.
6376 (cmpfn_eql): Ditto.
6377 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
6378 (cmpfn_user_defined): Likewise.
6379
63801999-07-15 Gerd Moellmann <gerd@gnu.org>
6381
6382 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
6383
6384 * fns.c (maybe_resize_hash_table): Correct computation of
6385 index vector size.
6386 (make_hash_table): Ditto.
6387 (Fmakehash): New.
6388
6389 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
6390
6391 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
6392 (survives_gc_p): Make it externally visible.
6393 (mark_object): Ditto.
6394
6395 * fns.c (remove_hash_entry): Removed.
6396 (sweep_weak_hash_tables): New.
6397
6398 * print.c (print): Print more information about hash tables.
6399
6400 * xfns.c (image_spec_hash): Removed.
6401 (lookup_image): Use sxhash instead of image_spec_hash.
6402 (image_spec_equal_p): Removed.
6403 (lookup_image): Use Fequal instead of image_spec_equal_p.
6404
64051999-07-14 Gerd Moellmann <gerd@gnu.org>
6406
6407 * lisp.h (P_): Moved to top of file.
6408
6409 * fns.c (make_hash_table): Set new members.
6410
6411 * alloc.c (mark_object): Mark hash table's user_hash_function.
6412 Mark index vector for weak hash tables.
6413
6414 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
6415 user_hash_function, cmpfn, and hashfn.
6416
6417 * fns.c (build_hash): Removed.
6418 (hash_test): Removed.
6419 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
6420 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
6421
64221999-07-13 Gerd Moellmann <gerd@gnu.org>
6423
6424 * alloc.c (survives_gc_p): New.
6425
6426 * print.c (print): Add hash table handling.
6427
6428 * alloc.c (mark_object): Add code to mark hash tables.
6429
6430 * lisp.h (GC_HASH_TABLE_P): New.
6431
6432 * emacs.c (main): Call init_fns.
6433
6434 * fns.c (init_fns): New.
6435
6436 * fns.c: Add hash table implementation.
6437
6438 * lisp.h (PVEC_HASH_TABLE): New.
6439 (struct Lisp_Hash_Table): New.
6440 (XHASH_TABLE): New.
6441 (XSET_HASH_TABLE): New.
6442 (HASH_TABLE_P): New.
6443 (CHECK_HASH_TABLE): New.
6444 (DEFAULT_HASH_SIZE): New.
6445 (DEFAULT_REHASH_THRESHOLD): New.
6446 (DEFAULT_REHASH_SIZE): New.
6447
6448 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
6449 (x_write_glyphs): Compute overwritten cursor using real start
6450 and end positions of display.
6451 (x_insert_glyphs): Ditto.
6452
64531999-07-10 Gerd Moellmann <gerd@gnu.org>
6454
6455 * keyboard.c (read_char): Use message3_nolog to show help-echo.
6456
6457 * dispnew.c (blank_row): Add y-position as parameter. Compute
6458 visible height.
6459
6460 * xdisp.c (next_element_from_string): Give padding spaces
6461 a position of -1.
6462
6463 * dispnew.c (adjust_glyph_matrix): Some work to support
6464 marginals areas on tty frames in a future version.
6465 (allocate_matrices_for_frame_redisplay): Ditto.
6466
6467 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
6468 to zero if number of glyphs in the row is <= 1.
6469
64701999-07-09 Gerd Moellmann <gerd@gnu.org>
6471
6472 * dispnew.c (buffer_posn_from_coords): Take left marginal area
6473 into account.
6474
6475 * xdisp.c (handle_display_prop): Don't reset area if handing
6476 a property from a string that came from a `display' property.
6477 (handle_single_display_prop): Don't handle recursive `display'
6478 properties.
6479 (handle_single_display_prop): Handle some display property
6480 forms for terminal frames.
6481 (Qimage): Moved here from xfns.c.
6482
6483 * dispextern.h (struct it): New field string_from_display_prop_p.
6484
6485 * xterm.c (x_clip_to_row): Don't let clip_rect include top
6486 line.
6487
64881999-07-08 Gerd Moellmann <gerd@gnu.org>
6489
6490 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
6491
6492 * window.c (set_window_buffer): Set window's vscroll to zero.
6493
6494 * xdisp.c (QCwhen): New.
6495 (display_prop_end): New.
6496 (handle_single_display_prop): Use it.
6497 (debug_method_add): Print buffer name if tracing.
6498 (try_window_reusing_current_matrix): Compute visible height
6499 of reused rows. Fix cursor position calculation in case of
6500 top-line.
6501
6502 * dispextern.h (struct redisplay_interface): Add parameter
6503 cursor_on_p to update_window_end_hook.
6504
6505 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
6506
65071999-07-07 Gerd Moellmann <gerd@gnu.org>
6508
6509 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
6510 doesn't become negative when decrementing it.
6511
6512 * eval.c (Fsignal): Reset redisplaying_p to zero.
6513
6514 * xdisp.c (try_window_reusing_current_matrix): Call hooks
6515 for window update.
6516 (try_window_id): Ditto.
6517
6518 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
6519 (x_scroll_run): Ditto.
6520 (any_help_event_p): New.
6521 (x_initialize): Set it to zero.
6522 (XTread_socket): Clear help echo only if any_help_event_p.
6523
6524 * xdisp.c (init_iterator): Set top_line_p.
6525 (start_display): Use correct initial y if top-line is present.
6526 (make_cursor_line_fully_visible): Bug fixes for top-line.
6527 (try_scrolling): Ditto.
6528 (try_window_reusing_current_matrix): Ditto.
6529
6530 * dispextern.h (struct it): Add top_line_p.
6531
6532 * dispnew.c (shift_glyph_matrix): Move some computations out
6533 of the loop.
6534
6535 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
6536 XFLOATINT.
6537
65381999-07-06 Gerd Moellmann <gerd@gnu.org>
6539
6540 * dispnew.c (update_frame_1): When setting cursor in echo area,
6541 skip only over padding spaces at the end.
6542
6543 * xfaces.c (realize_tty_face): Set face's font_name field to
6544 "tty".
6545
6546 * term.c (update_end): Turn cursor on only if selected window's
6547 cursor_off_p flag is not set.
6548
65491999-07-05 Gerd Moellmann <gerd@gnu.org>
6550
6551 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
6552 (TS_cursor_normal): Renamed from TS_end_visual_mode.
6553 (TS_cursor_invisible): New.
6554 (term_init): Initialize TS_cursor_invisible.
6555 (tty_hide_cursor): New.
6556 (tty_show_cursor): New.
6557 (update_end): Show tty cursor.
6558 (update_begin): Hide tty cursor to prevent cursor flickering
6559 during redisplays triggered by timers (stealth fontification).
6560
6561 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
6562
6563 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
6564 in scroll bars.
6565 (x_handle_toolbar_click): Set modifier bits.
6566
65671999-07-04 Gerd Moellmann <gerd@gnu.org>
6568
6569 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
6570 instead of a pointer to a volatile input_event.
6571 (kbd_buffer_store_event): Remove volatile modifier from
6572 declaration of local variable `sp'.
6573 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
6574 to kbd_fetch_ptr.
6575
65761999-07-03 Gerd Moellmann <gerd@gnu.org>
6577
6578 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
6579 only if buffer is modified. Return quickly if changes are
6580 above window start.
6581
65821999-07-02 Gerd Moellmann <gerd@gnu.org>
6583
6584 * dispextern.h (HSCROLL_WINDOWS): Removed.
6585
6586 * xdisp.c (mark_window_display_accurate): Don't set
6587 w->region_showing.
6588 (redisplay_internal): Don't call redraw_garbaged_frames.
6589
65901999-07-01 Gerd Moellmann <gerd@gnu.org>
6591
6592 * xdisp.c (echo_area_display): Don't display truncation marks
6593 for messages because 20.4 doesn't do it either.
6594 (redisplay_window): Case same window start. Instead of giving
6595 up when cursor is partially visible, make it fully visible.
6596 (mark_window_display_accurate): Some cleanup. Record window's
6597 last cursor information.
6598 (debug_method_add): Improved.
6599 (redisplay_internal): Record last cursor info only if not
6600 consider_all_windows_p.
6601
6602 * dispnew.c (update_window): Update top line after scrolling.
6603 (blank_row): Renamed from make_empty_enabled_row.
6604 (increment_glyph_row_buffer_positions): Increment positions
6605 in buffers, only.
6606
6607 * window.c (Fcoordinates_in_window_p): Add top-line to doc
6608 string.
6609
66101999-06-30 Gerd Moellmann <gerd@gnu.org>
6611
6612 * dispnew.c (update_window): Check that updated row is visible.
6613
6614 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
6615 top of window differently.
6616
6617 * xdisp.c (try_window_reusing_current_matrix): Don't do it
6618 if region is showing.
6619
6620 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
6621 avoiding matrix reallocation. Set window_vscroll in matrix.
6622
6623 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
6624
26901792
DL
6625 * xdisp.c (debug_method_add): New.
6626 (debug_redisplay_method): Removed.
6627 (try_window_reusing_current_matrix): Handle case where old
6628 window start is the same as new window start.
6629
6630 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
6631 an array instead of a pointer.
6632
26901792
DL
6633 * xfns.c (Fx_show_tip): Undo previous change.
6634
6635 * xterm.c (x_append_glyph): Clear glyph->u.val.
6636
6637 * dispextern.h (struct glyph): Increase size of face_id bit-field
6638 for CHAR_GLYPH to 12.
6639
66401999-06-29 Gerd Moellmann <gerd@gnu.org>
6641
6642 * xfaces.c (x_charset_registry): Make it externally visible.
6643
66441999-06-28 Gerd Moellmann <gerd@gnu.org>
6645
6646 * dispnew.c (update_window): Use mode_line_p flag of rows
6647 instead of WINDOW_WANTS_MODELINE_P.
6648
6649 * xterm.c (clear_mouse_face): Make externally visible.
6650
6651 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
6652
6653 * xterm.c (expose_line): Handle exposure of top-lines.
6654
6655 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
6656 if mouse_face_mouse_frame is null.
6657
6658 * xdisp.c (redisplay_window): If window is echo_area_window,
6659 and update_mode_line is set, update menubar and toolbar.
6660
6661 * dispnew.c (space_glyph): Set its charpos to -1.
6662 (update_frame_1): Ignore trailing padding spaces.
6663
6664 * xdisp.c (next_element_from_c_string): Set position of padding
6665 glyphs to -1.
6666
66671999-06-27 Gerd Moellmann <gerd@gnu.org>
6668
6669 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
6670 XQueryColor.
6671
6672 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
6673 (set_cursor_from_row): Skip over glyphs having a null object at
6674 the start of rows.
6675 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
6676 glyphs.
6677 (handle_invisible_prop): Compute next change only when needed.
6678 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
6679 line.
6680
66811999-06-26 Gerd Moellmann <gerd@gnu.org>
6682
6683 * xrdb.c (x_load_resources): Don't set resource for double-click
6684 time.
6685
6686 * xdisp.c (try_window_id): Return quickly if all changes are
6687 below the window's current matrix end.
6688
6689 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
6690 parameter.
6691
6692 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
6693 in desired not in current matrix.
6694 (try_window_reusing_current_matrix): Rotate matrices starting
6695 at start_vpos instead of 0.
6696
6697 * xterm.c (expose_window): Use window_text_bottom_y.
6698 (fast_find_position): Ditto.
6699
6700 * xdisp.c (redisplay_window): Use window_text_bottom_y.
6701 (try_window_reusing_current_matrix): Ditto.
6702 (get_last_unchanged_at_beg_row): Ditto.
6703 (init_iterator): Ditto.
6704
6705 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
6706 more row.
6707 (check_matrix_invariants): Use window_text_bottom_y.
6708 (update_window): Ditto.
6709 (scrolling_window): Ditto.
6710
6711 * xdisp.c (window_text_bottom_y): New.
6712
67131999-06-25 Gerd Moellmann <gerd@gnu.org>
6714
6715 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
6716 clearing mouse face.
6717 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
6718 event.xcrossing.focus is not set, and focus is in the menu bar,
6719 set focus frame as if event.xcrossing.focus were set.
6720
67211999-06-24 Gerd Moellmann <gerd@gnu.org>
6722
6723 * keyboard.c (make_lispy_event): Handle mouse on top lines.
6724 * keyboard.c (make_lispy_movement): Ditto.
6725
6726 * window.c (coordinates_in_window): Return 4 if on top line.
6727 (Fcoordinates_in_window_p): Return `top-line' if on top line.
6728
6729 * xdisp.c (window_box_height): Subtract top line height.
6730 (window_box): Add top line height to top y position if top line
6731 exists.
6732 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
6733 the top line row of the window. Set initial y-position to
6734 window's top line height plus delta.
6735 (start_display): Choose start glyph row depending on whether
6736 window has a top line.
6737 (try_scrolling): Take top line height into account for aggressive
6738 scrolling.
6739 (compute_window_start_on_continuation_line): Take top line into
6740 account.
6741 (redisplay_window): Ditto. If top line height has changed,
6742 trigger a new redisplay.
6743 (try_window_reusing_current_matrix): Take top line into account.
6744 (find_last_row_displaying_text): Ditto.
6745 (get_last_unchanged_at_beg_row): DItto.
6746 (try_window_id): Ditto.
6747 (compute_line_metrics): Ditto.
6748
6749 * dispnew.c (shift_glyph_matrix): Compute visible row height
6750 taking top line of window into account.
6751 (update_window): Update top line. If scrolling_window detects
6752 that all rows are equal, only set cursor.
6753 (update_window_line): Call after_update_window_line_hook if
6754 mode_line_p flag of rows has changed.
6755 (scrolling_window): Add parameter top_line_p. Return -1 if
6756 all rows are equal.
6757 (mode_line_string): Add parameter mode_line_p. Handle strings
6758 in top lines.
6759
6760 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
6761 (MATRIX_FIRST_TEXT_ROW): New.
6762 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
6763 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
6764 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
6765 (MATRIX_TOP_LINE_HEIGHT): New.
6766 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
6767 (CURRENT_TOP_LINE_HEIGHT): New.
6768 (DESIRED_TOP_LINE_HEIGHT): New.
6769 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
6770 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
6771 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
6772 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
6773
6774 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
6775 lines.
6776 (x_draw_row_bitmaps): Take top line into account when clearing
6777 bitmap area.
6778 (x_estimate_mode_line_height): Replacement for
6779 x_frame_mode_line_height.
6780 (x_get_glyph_string_clip_rect): Take top line into account.
6781 (x_clear_end_of_line): Ditto.
6782 (note_mode_line_highlight): Add parameter mode_line_p. Handle
6783 top lines.
6784 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
6785 (x_erase_phys_cursor): Take top line into account.
6786
6787 * xdisp.c (window_box_height): Subtract top line height if
6788 window wants a top line.
6789 (display_mode_lines): New.
6790 (redisplay_window): Call it.
6791 (display_mode_line): Add parameters face_id and format.
6792
6793 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
6794 (MATRIX_TOP_LINE_HEIGHT): New.
6795
6796 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
6797
6798 * term.c (estimate_mode_line_height): Renamed from
6799 frame_mode_line_height. Add parameter face_id.
6800 (estimate_mode_line_height_hook): Renamed from
6801 frame_mode_line_height_hook.
6802 (produce_special_glyphs_hook): Removed.
6803 (produce_glyphs_hook): Removed.
6804
68051999-06-23 Gerd Moellmann <gerd@gnu.org>
6806
6807 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
6808 (struct glyph_row): Add mode_line_p.
6809
6810 * xfaces.c (realize_basic_faces): Realize face `top-line'.
6811 (Qtop_line): New.
6812 (syms_of_xfaces): Initialize Qtop_line.
6813
6814 * dispextern.h (TOP_LINE_FACE_ID): New.
6815
6816 * buffer.c (init_buffer_once): Set default for
6817 top_line_format to nil.
6818 (init_buffer_once): Init top_line_format.
6819 (default-top-line-format): New.
6820 (top-line-format): New buffer-local variable.
6821
6822 * buffer.h: Add top_line_format.
6823
6824 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
6825
68261999-06-17 Dave Love <fx@gnu.org>
6827
6828 * xfns.c: Move the PNG section before the JPEG one to avoid
6829 problems surrounding setjmp.h/png.h on GNU/Linux.
6830
68311999-06-17 Gerd Moellmann <gerd@gnu.org>
6832
6833 * xfns.c (x_kill_gs_process): Don't free colors.
6834
68351999-06-17 Dave Love <fx@gnu.org>
6836
6837 * s/gnu-linux.h: Zap spurious ~.
6838
68391999-06-16 Gerd Moellmann <gerd@gnu.org>
6840
6841 * xfns.c (gif_load): Improve multi-image support.
6842
68431999-06-15 Gerd Moellmann <gerd@gnu.org>
6844
6845 * xfns.c (gif_load): Support multi-image files.
6846
6847 * Makefile.in (LIBGIF): Use libungif.
6848
6849 * configure.in (HAVE_GIF): Use libungif instead of libgif
6850 because the former doesn't contain patented compression code.
6851
6852 * xdisp.c (compute_window_start_on_continuation_line): Don't
6853 do it if line start is too far away from window start.
6854
68551999-06-14 Gerd Moellmann <gerd@gnu.org>
6856
6857 * buffer.c (init_buffer_once): Set buffer_local_flags for
6858 scroll_*_aggressively.
6859 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
6860 (init_buffer_once): Set defaults for these variables.
6861 (syms_of_buffer): Add default-scroll-*-aggressively.
6862
6863 * buffer.h (scroll_up_aggressively): New.
6864 (scroll_down_aggressively): New.
6865
6866 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
6867 a static PNG library.
6868
6869 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
6870 in case it's a static library.
6871
6872 * Makefile.in (ctagsfiles): Split so that files starting
6873 with an `x' are found before files starting with `w32'.
6874 (ctagsfiles1): New.
6875 (ctagsfiles2): New.
6876 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
6877
6878 * xdisp.c (compute_window_start_on_continuation_line): New.
6879 (redisplay_window): Use it.
6880 (INFINITY): New.
6881 (reseat_to_string): Use it.
6882 (hscroll_window_tree): Ditto.
6883 (compute_window_start_on_continuation_line): Ditto.
6884 (redisplay_window): Don't force display with a new window start.
6885
68861999-06-06 Gerd Moellmann <gerd@gnu.org>
6887
6888 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
6889 if widget not present.
6890
6891 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
6892
68931999-06-04 Gerd Moellmann <gerd@gnu.org>
6894
6895 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
6896 value of realize_basic_faces.
6897 (load_face_font_or_fontset): Store full font name in face.
6898 (realize_default_face): Use full font name.
6899
26901792
DL
6900 * xterm.c (x_produce_glyphs): Set member char_to_display.
6901 (x_append_glyph): Store char_to_display in glyphs.
6902
6903 * dispextern.h (struct it): Add char_to_display.
6904
6905 * xfns.c (x_set_font): Don't call face-set-after-frame-default
6906 if faces haven't been initialized.
6907 (Fx_create_frame): Call face-set-after-frame-default after
6908 faces have been initialized, and widget has been created.
6909
6910 * puresize.h (BASE_PURESIZE): Increased.
6911
69121999-06-01 Gerd Moellmann <gerd@gnu.org>
6913
6914 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
6915 (Finternal_set_lisp_face_attribute): If frame is t when
6916 :font attribute is set, use the selected frame.
6917 (clear_face_cache): Add parameter clear_fonts_p.
6918 (Fclear_face_cache): Add optional parameter thorougly.
6919
6920 * xfaces.c (face_numeric_value): Return -1 if symbol is not
6921 in table.
6922 (Fclear_face_cache): New.
6923 (choose_face_fontset_font): If fontset doesn't contain font
6924 pattern for the given charset, use CHARSET_ASCII.
6925 (Finternal_set_lisp_face_attribute): Fix handling of nil
6926 stipple attribute.
6927 (Finternal_set_lisp_face_attribute): Fix handling of changing
6928 font-related face attributes of the default face.
6929 (set_lface_from_font_name): Set only attributes that aren't
6930 specified.
6931
69321999-05-31 Gerd Moellmann <gerd@gnu.org>
6933
6934 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
6935 font support.
6936 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
6937 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
6938 scalable fonts depending on the setting of SCALABLE_FONTS.
6939 (first_font_matching): List more than one font to find the
6940 first non-scalable matching font.
6941 (sorted_font_list): Let x_face_list_fonts return scalable fonts
6942 depending on SCALABLE_FONTS.
6943 (better_font_p): New parameter compare_pt_p. If zero, don't
6944 compare point sizes of fonts.
6945 (exact_face_match_p) [SCALABLE_FONTS]: New.
6946 (build_scalable_font_name) [SCALABLE_FONTS]: New.
6947 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
6948 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
6949 (syms_of_xfaces): Add scalable-fonts-allowed.
6950
69511999-05-26 Gerd Moellmann <gerd@gnu.org>
6952
6953 * xfns.c (png_load): Let PNG lib handle gamma. Construct
6954 mask only if image contains simple transparency information.
6955 Otherwise, combine image with frame background color.
6956
6957 * configure.in (--with-png, HAVE_PNG): New.
6958
6959 * config.in (HAVE_PNG): New.
6960
6961 * Makefile.in: Add PNG library.
6962
6963 * xfns.c: Add PNG support.
6964
69651999-05-25 Gerd Moellmann <gerd@gnu.org>
6966
6967 * xdisp.c (init_xdisp): Initialize echo_area_message and
6968 previous_echo_area_message to nil.
6969
6970 * keyboard.c (read_char): Rename local variable echo_area_message
6971 because it shadows the global one.
6972
69731999-05-05 Gerd Moellmann <gerd@gnu.org>
6974
6975 * xterm.c (note_mode_line_highlight): Restructured.
6976
6977 * window.c (coordinates_in_window): Handle windows that don't have
6978 a mode line because their buffer's mode-line-format is nil.
6979 Recognize the mode line under x positions that correspond to
6980 flags areas and left scroll bar.
6981
69821999-05-02 Dave Love <fx@gnu.org>
6983
6984 * xterm.c (note_mouse_highlight): Separate help-echo processing
6985 from check on mouse-face so that it works generally.
6986
69871999-04-21 Gerd Moellmann <gerd@gnu.org>
6988
6989 * sound.c (Fplay_sound): Run hook play-sound-hook.
6990 (Qplay_sound_hook): New.
6991
69921999-04-20 Gerd Moellmann <gerd@gnu.org>
6993
6994 * xdisp.c (update_echo_area): Handle echo_area_message.
6995
69961999-04-19 Gerd Moellmann <gerd@gnu.org>
6997
6998 * editfns.c (Fmessage): Use message3.
6999
7000 * print.c (printchar): Set echo_area_message to nil.
7001 (strout): Ditto.
7002
7003 * minibuf.c (read_minibuf): Reset echo message strings to nil.
7004 (Fminibuffer_completion_help): Ditto.
7005
7006 * keyboard.c (cmd_error_internal): Set echo_areA_message.
7007 (command_loop_1): Test echo_areA_message.
7008 (read_char): Ditto.
7009 (record_menu_key): Set echo_area_message to nil.
7010 (Fexecute_extended_command): Test echo_area_message.
7011 (Fexecute_extended_command): Handle echo_area_message.
7012
7013 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
7014 is set.
7015
7016 * editfns.c (Fcurrent_message): If echo_area_message is set,
7017 return a substring of that string.
7018
7019 * dispnew.c (direct_output_for_insert): Test echo_area_message
7020 in addition to echo_area_glyphs.
7021 (set_window_cursor_after_update): Ditto.
7022 (update_frame_1): Ditto.
7023
7024 * alloc.c (Fgarbage_collect): Use message3_nolog to display
7025 old Lisp message string.
7026
7027 * xdisp.c (echo_area_message): New.
7028 (previous_echo_area_message): New.
7029 (syms_of_xdisp): Initialize and staticpro new variables.
7030 (echo_area_display): Display echo_area_message if set.
7031 (message2_nolog): Set echo_area_message and
7032 previous_echo_area_message.
7033 (echo_area_display): Set previous_echo_area_message.
7034 (redisplay_internal): Display echo area if echo_area_message
7035 or previous_echo_area_message are set.
7036 (redisplay_preserve_echo_area): Test/set echo_area_message and
7037 previous_echo_area_message.
7038 (redisplay_window): Test echo_area_message.
7039 (message3_nolog): New.
7040 (message3): New.
7041
7042 * editfns.c (Fformat): Add text properties to the result string
7043 from properties of the format string and properties of string
7044 arguments.
7045
7046 * textprop.c (text_property_list): New.
7047 (add_text_properties_from_list): New.
7048 (extend_property_ranges): New.
7049
70501999-03-29 Gerd Moellmann <gerd@gnu.org>
7051
7052 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
7053 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
7054 Use these symbols for the box face attribute instead of the
7055 removed ones.
7056
70571999-03-12 Gerd Moellmann <gerd@gnu.org>
7058
7059 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
7060 Correct wrong test for slant.
7061
70621999-03-10 Gerd Moellmann <gerd@gnu.org>
7063
7064 * xfaces.c: Use `unspecified' for unspecified face attributes,
7065 use t and nil for on/off.
7066
70671999-03-06 Gerd Moellmann <gerd@gnu.org>
7068
7069 * buffer.c (syms_of_buffer): Extend doc string of
7070 mode-line-format.
7071
7072 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
7073 (first_font_matching): New.
7074 (set_lface_from_font_name): Use it if font name is a pattern.
7075 (font_field_wildcard_p): Removed.
7076
7077 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
7078 Recompute visible height of rows.
7079
7080 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
7081 Don't accept non-strings for help-echo from overlays.
7082
70831999-03-04 Dave Love <fx@gnu.org>
7084
7085 * xterm.c (note_mouse_highlight): Check overlays for help-text
7086 property.
7087 (XTread_socket): Fix compiler warning.
7088
70891999-03-05 Gerd Moellmann <gerd@gnu.org>
7090
7091 * xterm.c (note_mouse_highlight): Don't restrict number of
7092 overlay to 10. Call overlays_at so that it doesn't try to
7093 extend the vector.
7094
7095 * xdisp.c (compute_line_metrics): Compute glyph row's visible
7096 height.
7097
7098 * dispnew.c (row_equal_p): Compare visible row height, only.
7099 (update_text_area): Draw whole line if visible heights of
7100 rows differ.
7101 (update_window_line): Call after_update_window_line_hook
7102 if visible row height has changed.
7103
7104 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
7105 (struct glyph_row): New member visible_height.
7106
7107 * xfaces.c (font_field_wildcard_p): New.
7108 (set_lface_from_font_name): Remove parameter force_p. Accept
7109 font names containing wildcards.
7110
71111999-03-04 Gerd Moellmann <gerd@gnu.org>
7112
7113 * xterm.c (x_after_update_window_line): Clear internal border
7114 when windows_or_buffers_changed.
7115
7116 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
7117 buffer has a nil mode_line_format.
7118
71191999-03-03 Gerd Moellmann <gerd@gnu.org>
7120
7121 * xterm.c (x_setup_relief_colors): Use either background color
7122 or specified color.
7123
7124 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
7125
7126 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
7127
7128 * xterm.c (x_draw_box_rect): New.
7129 (x_draw_glyph_string_box): Renamed from
7130 x_draw_glyph_string_relief. Call x_draw_box_rect.
7131
7132 * xfns.c (QCrelief): New.
7133 (syms_of_xfns): Initialize it.
7134
7135 * dispextern.h (struct glyph): Rename left_shadow_p to
7136 left_box_line_p, right_shadow_p to right_box_line_p.
7137 (MAX_RELIEF_THICKNESS): Removed.
7138 (struct it): Rename members having `relief' in their names
7139 to contain `box' instead.
7140
7141 * xfaces.c (realize_x_face): Handle new box attribute values.
7142 (QCrelief, Qbox): Removed.
7143 (QCshadow, QCcolor, Qraised, Qsunken): New.
7144 (syms_of_xfaces): Initialize new symbols.
7145
71461999-03-02 Gerd Moellmann <gerd@gnu.org>
7147
7148 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
7149
7150 * xfaces.c (LFACE_RELIEF): Removed.
7151 (merge_face_vector_with_property): Remove handling of `:relief'.
7152 (Finternal_set_lisp_face_attribute): Ditto.
7153 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
7154 (Finternal_get_lisp_face_attribute): Ditto.
7155 (realize_default_face): Ditto.
7156 (lface_hash): Don't compute hash from relief.
7157
7158 * dispextern.h (struct face): Replace member `relief' by
7159 `box_line_width'. Add member `box'.
7160 (face_box_type): New.
7161
7162 * xterm.c (x_produce_glyphs): If face has overline, add overline
7163 thickness + 1 to ascent.
7164
71651999-03-01 Gerd Moellmann <gerd@gnu.org>
7166
7167 * xterm.c (x_draw_glyph_string): Draw underline, overline,
7168 strike-through, and boxes.
7169 (x_draw_glyph_string_underline): Removed.
7170
7171 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
7172 (Qoverline, Qstrike_through, Qbox): New.
7173 (syms_of_xfaces): Define these symbols.
7174 (check_lface_attrs): Add checks for overline, strike-through,
7175 and box.
7176 (Finternal_set_lisp_face_attribute): Set new attributes.
7177 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
7178 (load_color): Handle new attributes.
7179 (realize_x_face): Ditto.
7180 (merge_face_vector_with_property): Ditto.
7181 (free_face_colors): Ditto.
7182 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
7183 (Finternal_get_lisp_face_attribute): Ditto.
7184 (Finternal_lisp_face_attribute_values): Ditto.
7185
7186 * dispextern.h (lface_attribute_index): Add enumerators for
7187 overstrike, strike-through, and box.
7188 (struct face): Add members for overline, strike-through, and
7189 box.
7190
71911999-02-17 Dave Love <fx@gnu.org>
7192
7193 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
7194 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
7195 files.
7196
71971999-02-16 Gerd Moellmann <gerd@gnu.org>
7198
7199 * keyboard.c (toolbar_items): Call access_keymap with third
7200 parameter 1, so that we don't get inherited toolbar item
7201 definitions.
7202
7203 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
7204 the window end vpos when in empty first line of window.
7205
72061999-02-15 Gerd Moellmann <gerd@gnu.org>
7207
7208 * xfaces.c (set_font_frame_param): New.
7209 (Finternal_set_lisp_face_attribute): Call it.
7210
7211Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
7212
7213 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
7214 Accept specifications of color for underline.
7215
72161999-02-13 Gerd Moellmann <gerd@gnu.org>
7217
7218 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
7219 `frame' is t, operate on face defaults for new frames. If it
7220 is nil, operate on the selected frame.
7221
72221999-02-12 Gerd Moellmann <gerd@gnu.org>
7223
7224 * dispnew.c (check_matrix_invariants): Put it in #if 0.
7225 (update_window): Put the call to check_matrix_invariants in #if 0.
7226
7227Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
7228
7229 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
7230 Remove definition of UNDERLINE_COLOR.
7231
7232Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
7233
7234 * xfaces.c (free_face_colors): Free the color for underline.
7235
7236 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
7237 to the GC.
7238
7239Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
7240
7241 * dispextern.h (UNDERLINE_COLOR): Defined.
7242 (struct face): Added two new members.
7243 underline_color, underline_defaulted_p.
7244
7245 * xfaces.c (merge_face_vector_with_property):
7246 (check_lface_attrs): Accept the string value for underline.
7247 (Finternal_set_lisp_face_attribute): Likewise.
7248
7249 * xfaces.c (load_color): Change the last argument type to enum
7250 lface_attribute_index from int. And addec code for underling coloring.
7251 (load_face_colors): Pass LFACE_*_INDEX to load_color.
7252
72531999-02-12 Gerd Moellmann <gerd@gnu.org>
7254
7255 * xfns.c (Fx_image_header): Removed.
7256
72571999-02-07 Gerd Moellmann <gerd@gnu.org>
7258
7259 * xterm.c: Don't include <bitmaps/gray>.
7260 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
7261
7262 * xfns.c (Fx_image_header): Add missing `\n\'.
7263 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
7264
72651999-02-01 Gerd Moellmann <gerd@gnu.org>
7266
7267 * xterm.c (x_scroll_bar_create): Set background pixel from
7268 specified scroll bar color.
7269 (x_scroll_bar_set_handle): Use scroll bar foreground color.
7270
7271 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
7272 (x_set_scroll_bar_background): Ditto.
7273
7274 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
7275
7276 * xfns.c (x_default_scroll_bar_color_parameter): New.
7277 (Fx_create_frame): Call it.
7278
72791999-01-31 Gerd Moellmann <gerd@gnu.org>
7280
7281 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
7282 values in x_output structure.
7283 (Qscroll_bar_foreground, Qscroll_bar_background): New.
7284 (syms_of_xfns): Initialize these symbols.
7285
7286 * xterm.h (struct x_output): Add scroll bar pixel colors.
7287
7288 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
7289 (x_set_scroll_bar_foreground): New.
7290 (x_set_scroll_bar_background): New.
7291
26901792
DL
72921999-01-12 Gerd Moellmann <gerd@gnu.org>
7293
7294 * xdisp.c (handle_single_display_prop): New.
7295 (handle_display_prop): Call it.
7296 (handle_raise_prop): Removed.
7297 (handle_height_prop): Removed.
7298 (handle_space_width_prop): Removed.
7299 (handle_face_prop): Remove handling of raised text.
7300 (handle_display_prop): Do it here.
7301
7302 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
7303 (RAISE_PROP_IDX): Removed.
7304 (HEIGHT_PROP_IDX): Removed.
7305 (SPACE_WIDTH_PROP_IDX): Removed.
7306
7307 * xdisp.c (Qdisplay): Replaces Qglyph.
7308 (handle_display_prop): Formerly handle_glyph_prop.
7309
73101999-01-11 Gerd Moellmann <gerd@gnu.org>
7311
7312 * xdisp.c (reseat_to_string): Set position in display vector to -1.
7313 (handle_stop): Set position in display vector to -1. Don't
7314 check overlay strings when set up to deliver characters from a
7315 display vector.
7316 (set_iterator_to_next): At the end of a run of characters from a
7317 display vector, check whether the display vector display replaces
7318 the display of a character.
7319
73201999-01-05 Gerd Moellmann <gerd@gnu.org>
7321
7322 * xfaces.c (init_frame_faces): Don't realize faces if frame's
7323 X window hasn't been created yet.
7324
73251998-12-06 Gerd Moellmann <gerd@gnu.org>
7326
7327 * sound.c: New.
7328
73291998-12-04 Gerd Moellmann <gerd@gnu.org>
7330
7331 * config.in (HAVE_SOUND): New.
7332
7333 * emacs.c (main): Call syms_of_sound and init_sound.
7334
7335 * Makefile.in (obj): Add sound.o.
7336
7337 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
7338
7339 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
7340 (HAVE_SYS_SOUNDCARD_H): New.
7341
73421998-12-03 Gerd Moellmann <gerd@gnu.org>
7343
7344 * buffer.h (struct buffer): indicate_empty_lines renamed from
7345 indicate_zv_lines.
7346
7347 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
7348 (default-indicate-zv-lines): Likewise.
7349
7350 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
7351 to indicate_empty_line_p.
7352
7353 * xdisp.c (reseat_at_next_visible_line_start): Reset method
7354 to next_element_from_buffer.
7355
7356 * frame.c (make_frame): Set n_current_toolbar_items to 0.
7357
7358 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
7359 and `N-'.
7360
7361 * xfns.c (xbm_scan): New.
7362 (xbm_read_hexint): Removed.
7363 (xbm_read_bitmap_file_data): Use xbm_scan.
7364
7365 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
7366
73671998-12-02 Gerd Moellmann <gerd@gnu.org>
7368
7369 * xfns.c (xbm_read_hexint): New.
7370 (xbm_read_bitmap_file_data): New.
7371 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
7372 instead of XReadBitmapFileData.
7373
7374 * xdisp.c (handle_raise_prop): Compute voffset from current font.
7375
7376 * xfaces.c (face_with_height): New.
7377
7378 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
7379 (eval_form): Renamed from eval_mode_element.
7380 (handle_face_prop): Use it.
7381 (Qheight): Replaces Qsmaller.
7382 (handle_height_prop): Replaces handle_smaller_prop.
7383 (handle_face_prop): If iterator's font_height is not an
7384 integer, evaluate it to get the font height to use.
7385
7386 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
7387 (struct it): Use `font_height' instead of `smaller'.
7388
73891998-12-01 Gerd Moellmann <gerd@gnu.org>
7390
7391 * xdisp.c (reseat_1): New.
7392 (reseat): Call it.
7393 (move_it_vertically_backward): Ditto.
7394 (redisplay_window): Don't abort when cursor not found in recenter.
7395
73961998-11-30 Gerd Moellmann <gerd@gnu.org>
7397
7398 * xdisp.c (reseat_at_next_visible_line_start): When not
7399 currently delivering display elements from the current buffer,
7400 restore buffer position first.
7401 (init_from_display_pos): Don't set IT's position from the
7402 position passed to this function.
7403
74041998-11-28 Gerd Moellmann <gerd@gnu.org>
7405
7406 * config.in (PROTO): Removed.
7407
7408 * xterm.h: Change PROTO to P_.
7409
74101998-11-26 Gerd Moellmann <gerd@gnu.org>
7411
7412 * xterm.c (take_vertical_position_into_account): New.
7413 (x_produce_image_glyph): Call it.
7414 (x_produce_stretch_glyph): Ditto.
7415 (x_produce_glyphs): Ditto.
7416 (x_fill_glyph_string): Adjust base line for glyph's voffset.
7417 (x_fill_composite_glyph_string): Ditto.
7418 (x_fill_image_glyph_string): Ditto.
7419 (x_fill_stretch_glyph_string): Ditto.
7420
7421 * xdisp.c (display_line): Always compute row height from
7422 max_ascent and max_descent.
7423
7424 * dispextern.h (struct glyph): Add voffset.
7425 (struct it): Replace height by descent, max_height by max_descent.
7426
7427 * xterm.c (x_append_glyph): Set voffset
7428 (x_append_stretch_glyph): Ditto.
7429 (x_produce_image_glyph): Ditto.
7430 (x_produce_glyphs): Take voffset into account.
7431 (x_produce_image_glyph): Ditto.
7432 (x_produce_stretch_glyph): Ditto.
7433
7434 * dispextern.h (struct it): Add voffset.
7435 * xdisp.c (push_it): Save voffset.
7436 (pop_it): Restore it.
7437
7438 * xdisp.c (it_props): Add entry for `raise'.
7439 (handle_raise_prop): New.
7440
7441 * dispextern.h (RAISE_PROP_IDX): New.
7442
7443 * xdisp.c (Qraise): New.
7444 (syms_of_xdisp): Define Qraised.
7445
7446 * xterm.c (x_scroll_bar_move): Clear to the left and right
7447 of toolkit scroll bars differently.
7448 (x_scroll_bar_move): Removed.
7449 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
7450
7451 * dispextern.h: Make it compilable --with-x=no.
7452 * alloc.c: Ditto.
7453 * emacs.c: Ditto.
7454 * dispnew.c: Ditto.
7455 * keyboard.c: Ditto.
7456 * term.c: Ditto.
7457 * xdisp.c: Ditto.
7458 * xfaces.c: Ditto.
7459 * xfns.c: Ditto.
7460 * xmenu.c: Ditto.
7461
74621998-11-25 Gerd Moellmann <gerd@gnu.org>
7463
7464 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
7465
74661998-11-24 Gerd Moellmann <gerd@gnu.org>
7467
7468 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
7469 update slider size, only.
7470 (xm_scroll_callback): Set dragging member of the scroll bar.
7471 (xt_action_hook): Reset last_scroll_bar_part.
7472 (XTredeem_scroll_bar): Reset bar->dragging to nil.
7473
26901792
DL
7474 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
7475 window on newly created frames that don't have one.
7476
74771998-11-23 Gerd Moellmann <gerd@gnu.org>
7478
7479 * xdisp.c (restore_overlay_strings): Removed.
7480 (restore_dpvec): Removed.
7481 (init_from_display_pos): Inline both functions above.
7482
7483 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
7484 (parse_image_spec): Handle it.
7485 (xbm_format): Use it.
7486 (xpm_format): Ditto.
7487 (pbm_format): Ditto.
7488 (jpeg_format): Ditto.
7489 (tiff_format): Ditto.
7490 (gif_format): Ditto.
7491 (gs_format): Ditto.
7492
7493 * xdisp.c (set_window_cursor): Removed.
7494 (redisplay_internal): Case cursor motion in cursor line of
7495 selected window; use set_cursor_from_row.
7496
74971998-11-22 Gerd Moellmann <gerd@gnu.org>
7498
7499 * widget.c (EmacsFrameSetCharSize): Take widget's border width
7500 into account.
7501
75021998-11-21 Gerd Moellmann <gerd@gnu.org>
7503
7504 * xterm.c (expose_frame): Redraw menu bar window.
7505
7506 * xdisp.c (display_menu_bar): Record hpos instead of x-position
7507 in menu item.
7508
7509 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
7510 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
7511
7512 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
7513 to determine vertical_scroll_bar_extra.
7514 (EmacsFrameSetCharSize): Ditto.
7515 * xfns.c (x_figure_window_size): Ditto.
7516
7517 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
7518 (x_draw_bitmap): Ditto.
7519
7520 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
7521 * xfaces.c (realize_basic_faces): Realize it.
7522
75231998-11-20 Gerd Moellmann <gerd@gnu.org>
7524
7525 * xmenu.c (xmenu_show): Add workaround for remaining button grab
7526 under LessTif Use the widget of the frame as parent for the
7527 menu, again.
7528
75291998-11-19 Gerd Moellmann <gerd@gnu.org>
7530
7531 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
7532 When EnterNotify, don't generate a mouse movement event if
7533 notification is from a busy-cursor child window.
7534
7535 * xterm.h (struct x_output): Add busy_window, remove cursor.
7536
7537 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
7538 Use a transparent window to display the busy-cursor.
7539 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
7540
75411998-11-17 Gerd Moellmann <gerd@gnu.org>
7542
7543 * xdisp.c (check_window_end): New, for debugging.
7544 (CHECK_WINDOW_END): New.
7545 (try_window_id): Use it.
7546
7547 * xterm.c (process_expose_from_menu): Return int.
7548
7549 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
7550 TOOLBAR_EVENT events in last_nonmenu_event.
7551
75521998-11-16 Gerd Moellmann <gerd@gnu.org>
7553
7554 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
7555 window end isn't reliable, so set window_end_valid to nil.
7556 (redisplay_internal): If overlay arrow has changed, set
7557 windows_or_buffers_changed to redisplay thoroughly.
7558
7559 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
7560 necessary.
7561
7562 * xfns.c (file_dialog_cb): New.
7563 (Fx_file_dialog): New.
7564 * fileio.c (Fread_file_name): Call it.
7565
7566 * xrdb.c (x_load_resources): Add default resoures for file
7567 selection dialog.
7568
75691998-11-14 Gerd Moellmann <gerd@gnu.org>
7570
7571 * xterm.c (note_mouse_highlight): Don't highlight when popup
7572 is active.
7573
26901792
DL
7574 * keyboard.c (timer_check): Inhibit busy cursor around calls to
7575 timer-event-handler. This busy cursor tends to be anoying if
7576 fontifying stealthily.
7577
7578 * dispnew.c (direct_output_for_insert): Give up if current row
7579 contains trailing whitespace.
7580
75811998-11-13 Gerd Moellmann <gerd@gnu.org>
7582
7583 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
7584
7585 * xdisp.c (handle_fontified_prop): New.
7586 (Vfontification_functions): New.
7587 (Qfontification_functions): New.
7588 (it_props): Add handle_fontified_prop.
7589
75901998-11-12 Gerd Moellmann <gerd@gnu.org>
7591
7592 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
7593 Otherwise, under LessTif, after the popup has gone, all button
7594 press events come in for the frame's widget, and release events
7595 come in for the edit_widget.
7596 * xterm.c (XTread_socket): Remove workaround for that problem.
7597 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
7598 XmScrollBarSetValues.
7599 (SET_SAVED_MENU_EVENT): Give it statement form.
7600
26901792
DL
7601 * xfaces.c (display_message): If waiting_for_input, don't display
7602 the message.
7603
7604 * window.c (scroll_command): If not acting on current_buffer,
7605 make redisplay consider all windows.
7606
7607 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
7608
7609 * xdisp.c (handle_glyph_prop): Set it->object for images to
7610 the object having the glyph property.
7611
7612 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
7613 invisible.
7614
76151998-11-11 Gerd Moellmann <gerd@gnu.org>
7616
7617 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
7618 (x_term_init): Create the gray pixmap.
7619 (x_setup_relief_color): Use it.
7620 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
7621 internal border at the top of a frame.
7622 (x_init_glyph_string): Likewise.
7623 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
7624 full-width lines.
7625 (XTflash): Don't flash the toolbar window.
7626
7627 * xterm.c (XTread_socket): Workaround for LessTif popup menus
7628 in case of ButtonPress events.
7629
76301998-11-10 Gerd Moellmann <gerd@gnu.org>
7631
7632 * xrdb.c (x_load_resources): Add grey background colors as
7633 defaults for menus, scroll bars, and dialogs.
7634
7635 * insdel.c (prepare_to_modify_buffer): Move setting
7636 windows_or_buffers_changed from modify_region here.
7637
7638 * xfns.c (Fx_show_tip): Inhibit redisplay.
7639 (Fx_hide_tip): Ditto.
7640 (Fx_image_header): New.
7641
76421998-11-09 Gerd Moellmann <gerd@gnu.org>
7643
7644 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
7645 when clearing current window matrices.
7646
76471998-11-08 Gerd Moellmann <gerd@gnu.org>
7648
7649 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
7650 position from a string position. Use the right end position
7651 if the property spans a whole overlay string.
7652
76531998-11-07 Gerd Moellmann <gerd@gnu.org>
7654
7655 * xmenu.c (menubar_selection_callback): Remove workaround for
7656 Lesstif not calling XmNpopdownCallback because it doesn't
7657 handle the case where users don't select any menu item.
7658
26901792
DL
7659 * insdel.c (modify_region): Set windows_or_buffers_changed.
7660
7661 * buffer.c (set_buffer_internal): Don't set
7662 windows_or_buffers_changed.
7663
26901792
DL
7664 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
7665
26901792
DL
7666 * xmenu.c (menubar_selection_callback): Add workaround for
7667 Lesstif not calling XmNpopdownCallback.
7668
7669 * xdisp.c (eval_mode_element): New.
7670 (eval_mode_handler): New.
7671 (display_mode_element): Use eval_mode_element.
7672
7673 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
7674 Remove code looking at text props of default value.
7675
7676 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
7677
26901792
DL
76781998-11-06 Gerd Moellmann <gerd@gnu.org>
7679
7680 * xmenu.c (single_submenu): Set button_type of menu to
7681 BUTTON_TYPE_NONE.
7682 (single_submenu): Likewise for panes and menu items.
7683 (set_frame_menubar): Set button_type of menu bar to none.
7684 (xmenu_show): Likewise.
7685 (single_submenu): Set widget values selected slot.
7686 (xmenu_show): Likewise.
7687
26901792
DL
7688 * xmenu.c (push_menu_item): Add parameters `type' and
7689 `selected'. Store it in menu_items.
7690 (MENU_ITEMS_ITEM_TYPE): New.
7691 (MENU_ITEMS_ITEM_SELECTED): New.
7692 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
7693
7694 * xfns.c (clear_image_cache): Get the current time, before
7695 doing anything.
7696 (cache_image): Set prev pointer of next image.
7697 (clear_image_cache): Clear current matrices if any image was
7698 freed.
7699
7700 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
7701
7702 * xfns.c (x_set_cursor): New.
7703 (Fx_display_busy_cursor): New.
7704 (Fx_undisplay_busy_cursor): New.
7705
7706 * xterm.h (struct x_output): Add busy_cursor.
7707
7708 * xfns.c (Vx_busy_pointer_shape): New.
7709 (x_set_mouse_color): Create busy cursor.
7710
7711 * process.c (wait_reading_process_input): Show and hide busy
7712 cursor.
7713
7714 * keyboard.c (command_loop_1): Display busy cursor.
7715
7716 * eval.c (Fsignal): Hide busy cursor.
7717
7718 * buffer.c (set_buffer_internal): Don't set
7719 windows_or_buffers_changed.
7720
7721 * xterm.c (redo_mouse_highlight): New.
7722
77231998-11-04 Gerd Moellmann <gerd@gnu.org>
7724
26901792
DL
7725 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
7726 (x_build_heuritic_mask): New.
7727 (lookup_image): Call it.
7728
7729 * xterm.c (note_toolbar_highlight): Always set up help_echo.
7730 (previous_help_echo): New.
7731 (XTread_socket): Generate help event with nil message when
7732 leaving a region with help-echo.
7733 (note_mouse_highlight): Handle `help-echo' over text.
7734 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
7735 CirculateRequest.
7736 (clear_mouse_face): Don't clear if tooltip is shown.
7737 (XTread_socket): Redo mouse-highlight after tooltip is gone.
7738 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
7739
7740 * keyboard.c (Vshow_help_function): New.
7741 (read_char): Use it.
7742
77431998-11-03 Gerd Moellmann <gerd@gnu.org>
7744
7745 * xfns.c (x_create_tip_frame): New.
7746 (Fx_show_tip): New.
7747 (Fx_hide_tip): New.
7748
7749 * xterm.c (x_destroy_window): Handle case that we don't have
7750 a widget.
7751
7752 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
7753 to full_width_p. Add internal_border_p.
7754
77551998-11-02 Gerd Moellmann <gerd@gnu.org>
7756
7757 * xterm.c (note_mode_line_highlight): Check the charpos of
7758 the glyph under the mouse pointer before accessing text
7759 properties at that position.
7760
77611998-11-01 Gerd Moellmann <gerd@gnu.org>
7762
7763 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
7764
7765 * xdisp.c (auto-raise-toolbar-buttons): New.
7766 (build_desired_toolbar_string): Handle the flag.
7767 (toolbar-button-margin): New.
7768 (toolbar-button-relief): New.
7769 (build_desired_toolbar_string): Use margin and relief.
7770
7771 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
7772 for FreeBSD.
7773 (note_mode_line_highlight): New.
7774 (note_mouse_highlight): Call it.
7775
77761998-10-31 Gerd Moellmann <gerd@gnu.org>
7777
7778 * s/freebsd.h (NARROWPROTO): New.
7779
7780 * xdisp.c (display_string): New parameter face_string.
7781 (display_mode_element): When displaying a symbol with a string
7782 value, use text properties from the symbol's default value, maybe.
7783
7784 * xrdb.c (x_load_resources): Add font defaults for menus and
7785 dialogs.
7786
77871998-10-30 Gerd Moellmann <gerd@gnu.org>
7788
7789 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
7790
77911998-10-29 Gerd Moellmann <gerd@gnu.org>
7792
7793 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
7794 produced for characters with codes < 32 under certain
7795 circumstances.
7796
7797 * xdisp.c (redisplay_window): Handle values of PT in front
7798 of invisible, intangible text.
7799 (try_window_id): Set overlay_arrow_seen to zero before
7800 displaying lines.
7801 (display_mode_element): Assign to glyphs written for a mode
7802 line spec `%x' as object the Lisp format string, as position
7803 the position of the `%' in that string.
7804 (display_string): If displaying a C string, optionally get
7805 the face to use from a Lisp string.
7806
7807 * xterm.c (expose_window_tree): Include mode line height.
7808
7809 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
7810
78111998-10-27 Gerd Moellmann <gerd@gnu.org>
7812
7813 * xterm.c (note_mouse_highlight): Change mouse pointer shape
7814 over mode line.
7815
78161998-10-26 Gerd Moellmann <gerd@gnu.org>
7817
7818 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
7819
7820 * xdisp.c (redisplay_window): If mode line height has changed,
7821 arrange for a thorough immediate redisplay using the correct mode
7822 line height.
7823 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
7824
7825 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
7826 (CURRENT_MODE_LINE_HEIGHT): New.
7827 (DESIRED_MODE_LINE_HEIGHT): New.
7828
7829 * keyboard.c (make_lispy_event): Add string and string position
7830 info to mouse-click events.
7831 (read_key_sequence): Handle `local-map' property of mode line
7832 strings.
7833
7834 * keyboard.h (POSN_STRING): New.
7835
78361998-10-25 Gerd Moellmann <gerd@gnu.org>
7837
7838 * dispnew.c (mode_line_string): Mew.
7839
7840 * xterm.c (xt_action_hook): New.
7841 (x_create_toolkit_scroll_bar): Add action hook.
7842 (xm_scroll_callback): Implement dragging.
7843
7844 * keyboard.c (Qend_scroll): New.
7845 (scroll_bar_parts): Add it.
7846
7847 * termhooks.h (scroll_bar_end_scroll): New.
7848
7849 * xterm.c (XTread_socket): Bug fix.
7850
78511998-10-24 Gerd Moellmann <gerd@gnu.org>
7852
7853 * xdisp.c (redisplay_window): Finish scroll bars after
7854 redisplaying toolbar.
7855
7856 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
7857 (syms_of_keyboard): Add Qbottom.
7858
7859 * termhooks.h (scroll_bar_to_top): New.
7860 (scroll_bar_to_bottom): New.
7861
7862 * xdisp.c (redisplay_window): Always resize toolbar window if
7863 auto_resize_toolbar_p is non-zero.
7864 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
7865 (window_box): New.
7866 (window_box_height): New.
7867 (window_box_width): New.
7868 (window_box_left): New.
7869 (window_box_right): New.
7870 (window_box_edges): New.
7871
78721998-10-23 Gerd Moellmann <gerd@gnu.org>
7873
7874 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
7875 XawScrollbarSetThumb in FreeBSD.
7876 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
7877 to true.
7878
7879 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
7880 is out of range.
7881
7882 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
7883 (x_term_init): Initialize it.
7884
7885 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
7886
7887 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
7888 cursor.
7889
78901998-10-22 Gerd Moellmann <gerd@gnu.org>
7891
7892 * keyboard.c (make_lispy_event): Handle scroll_bar_click
7893 differently when using toolkit scroll bars.
7894
7895 * xterm.c (x_send_scroll_bar_event): New.
7896 (x_scroll_bar_to_input_event): New.
7897 (xaw3d_scroll_callback): New.
7898 (xaw3d_jump_callback): New.
7899 (xm_scroll_callback): New.
7900 (x_toolkit_scroll_p): New.
7901 (XTread_socket): Handle scroll bar client message.
7902 (x_term_init): Initialize Xatom_Scrollbar.
7903 (x_scroll_bar_create): Set cursor.
7904 (xm_scroll_callback):
7905 (x_create_toolkit_scroll_bar): New.
7906 (x_set_toolkit_scroll_bar_thumb): New.
7907 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
7908 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
7909
7910 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
7911
79121998-10-21 Gerd Moellmann <gerd@gnu.org>
7913
7914 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
7915 (XTread_socket): Don't handle mouse button events for scroll bars
7916 if using toolkit scroll bars.
7917 (XTset_vertical_scroll_bar): Set thumb size and position for
7918 Athena scroll bar.
7919
7920 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
7921
7922 * xterm.c (XTread_socket): Dispatch expose event to widget
7923 if using toolkit scroll bars.
7924 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
7925 (x_scroll_bar_create): Create and show a scroll bar widget
7926 if using toolkit scroll bars.
7927 (x_scroll_bar_move): Handle tookit scroll bars.
7928
7929 * Makefile.in (LIBW): Use Xaw3d if present.
7930
7931 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
7932 (HAVE_XAW3D): New.
7933
7934 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
7935 (HAVE_XAW3D): New.
7936
7937 * xterm.c (XTset_vertical_scroll_bar): Correct position of
7938 right vertical scroll bar.
7939
79401998-10-20 Gerd Moellmann <gerd@gnu.org>
7941
7942 * xfns.c (xpm_load): Support reading XPM images from string
7943 buffers containing data in the same format as an XPM file.
7944 Support `:color-symbols'.
7945 (xpm_format): Add `:data'.
7946 (xpm_keyword_index): Add XPM_DATA.
7947 (syms_of_xfns): Add `:color-symbols'.
7948 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
7949 (xpm_valid_color_symbols_p): New.
7950 (xpm_image_p): Call it.
7951
7952 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
7953 attribute to the image if item is not enabled.
7954
7955 * xfns.c (x_laplace): New.
7956 (x_laplace_read_row): New.
7957 (x_laplace_write_row): New.
7958 (lookup_image): Handle common image attributes here. New
7959 attribute `:algorithm'.
7960
7961 * xfaces.c (clear_face_cache): Call clear_image_cache.
7962
7963 * xterm.c (x_inverted_image_mask): Removed.
7964 (x_draw_image_foreground_1): New.
7965 (x_draw_image_glyph_string): Draw images with mask to a temporary
7966 pixmap to reduce flickering.
7967
7968 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
7969 (display_toolbar_line): Remove parameter `margin'.
7970
79711998-10-19 Gerd Moellmann <gerd@gnu.org>
7972
7973 * xdisp.c (toolbar_lines_needed): New.
7974 (auto-resize-toolbars): New.
7975
7976 * xfns.c (cache_image): Correct call to xrealloc.
7977
7978 * dispnew.c (Fset_toolbar_height): Removed.
7979
7980 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
7981 FRAME_MENU_BAR_LINES.
7982
7983 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
7984 instead of FRAME_MENU_BAR_LINES.
7985 (check_frame_size): Ditto.
7986
7987 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
7988 instead of FRAME_MENU_BAR_LINES.
7989 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
7990 (build_frame_matrix): Ditto.
7991 (change_frame_size_1): Ditto.
7992
7993 * frame.h (FRAME_TOOLBAR_LINES): New.
7994 (FRAME_TOP_MARGIN): New.
7995
7996 * window.c (struct save_window_data): Add frame_toolbar_lines.
7997 (Fset_window_configuration): Handle toolbar lines.
7998 (Fcurrent_window_configuration): Save toolbar lines.
7999
8000 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
8001
8002 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
8003
8004 * frame.h (struct frame): Rename top_margin to toolbar_lines.
8005
8006 * xfns.c (x_frame_parms): Add `toolbar-lines'.
8007 (x_set_toolbar_lines): New.
8008
8009 * keyboard.c (cmd_error_internal): Bug fix.
8010
8011 * xterm.c: Remove double include of syssignal.h.
8012
80131998-10-18 Gerd Moellmann <gerd@gnu.org>
8014
8015 * xterm.c (x_toolbar_item): New.
8016 (x_handle_toolbar_click): Use it.
8017 (note_toolbar_highlight): Use it.
8018
8019 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
8020 and toolbar_items_vectors.
8021
8022 * xterm.c (help_echo): New.
8023 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
8024 (x_set_glyph_string_gc): Handle them.
8025 (x_after_update_window_line): Don't do anything in pseudo-windows.
8026 (x_produce_image_glyph): Take image margin and face relief into
8027 account.
8028 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
8029 (x_draw_glyph_string_background): Optimize case when face has
8030 relief.
8031 (x_setup_relief_color): Take frame instead of glyph string
8032 parameter.
8033 (x_draw_relief_rect): New.
8034 (x_draw_glyph_string_relief): Call it.
8035 (x_draw_image_glyph_string_foreground): Handle margin and image
8036 relief.
8037 (x_draw_image_glyph_string_background): Ditto.
8038 (expose_frame): Redraw toolbar window.
8039 (expose_window): Don't draw cursor for pseudo-windows.
8040 (x_y_to_hpos_vpos): Handle pseudo-windows.
8041 (frame_to_window_pixel_xy): New.
8042 (note_mouse_highlight): Call note_toolbar_highlight.
8043 (x_handle_toolbar_click): New.
8044 (note_toolbar_highlight): New.
8045 (show_mouse_face): Change int parameter `hl' to parameter of
8046 type enum draw_glyphs_face. Handle image highlighting.
8047 (XTread_socket): Return a HELP_EVENT input event if help_echo is
8048 non-nil. Use x_handle_toolbar_click.
8049
8050 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
8051
8052 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
8053 IMAGE_BOOL_VALUE.
8054 (parse_image_spec): Handle them.
8055 (image_spec_value): Additional parameter found.
8056 (free_image): Remove image from the vector `images' of the
8057 image cache.
8058 (clear_image_cache): Additional parameter force_p.
8059 (Fclear_image_cache): New.
8060 (x_find_image_file): New.
8061 (xbm_load): Handle `:margin' and `:relief'. Use
8062 x_find_image_file.
8063 (xpm_load): Likewise.
8064 (pbm_load): Likewise.
8065 (jpeg_load): Likewise.
8066 (tiff_load): Likewise.
8067 (gif_load): Likewise.
8068
8069 * keyboard.c (Qhelp_echo): New symbol.
8070 (read_char): Handle `toolbar' and `help_echo' events.
8071 (kbd_buffer_get_event): Handle HELP_ECHO input event.
8072 (make_lispy_event): Handle TOOLBAR_EVENT.
8073 (toolbar_items): New.
8074 (process_toolbar_item): New.
8075 (PROP): New.
8076 (init_toolbar_items): New.
8077 (append_toolbar_item): New.
8078 (read_char_x_menu_prompt): Handle `toolbar' event.
8079 (read_key_sequence): Ditto.
8080
8081 * xfaces.c (Qtoolbar): New.
8082 (realize_basic_faces): Realize `toolbar' face.
8083 (face_at_string_position): Remove parameter modeline_p, add
8084 base_face_id.
8085
8086 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
8087 to read data.
8088
80891998-10-17 Gerd Moellmann <gerd@gnu.org>
8090
8091 * xdisp.c (init_iterator): Replace parameter modeline_p with
8092 base_face_id.
8093 (next_element_from_string): Call get_next_display_element
8094 recursively after handling text properties.
8095 (prepare_menu_bars): Call update_toolbar.
8096 (update_toolbar): New.
8097 (build_desired_toolbar_string): New.
8098 (display_toolbar_line): New.
8099 (redisplay_toolbar): New.
8100 (toolbar_item_info): New.
8101 (redisplay_window): Call redisplay_toolbar.
8102 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
8103
8104 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
8105 window.
8106 (clear_desired_matrices): Ditto.
8107 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
8108 (free_glyphs): Free matrices of toolbar window.
8109 (update_frame): Update toolbar window.
8110 (change_frame_size_1): Take toolbar into account.
8111 (Fset_toolbar_height): New.
8112
8113 * dispextern.h (struct it): Remove member modeline_p, add
8114 base_face_id.
8115 (struct image): Add members relief and margin.
8116 (IMAGE_ASCENT): Include margin in height.
8117
81181998-10-14 Gerd Moellmann <gerd@gnu.org>
8119
8120 * xfns.c (Fclear_image_cache): New.
8121
8122 * xfaces.c (realize_basic_faces): Realize toolbar face.
8123 (face_at_string_position): Remove parameter modeline_p, add
8124 base_face_id.
8125
8126 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
8127
81281998-10-13 Gerd Moellmann <gerd@gnu.org>
8129
8130 * keyboard.c (syms_of_keyboard): Intern `:help'.
8131
81321998-10-12 Gerd Moellmann <gerd@gnu.org>
8133
8134 * xterm.c (note_toolbar_highlight): New.
8135 (note_mouse_highlight): Call it.
8136
8137 * window.c (window_from_coordinates): Additional parameter toolbar_p.
8138 (coordinates_in_window): Handle toolbar window.
8139
8140 * keyboard.c (toolbar_items): New.
8141 (process_toolbar_item): New.
8142 (parse_toolbar_item): New.
8143 (init_toolbar_items): New.
8144 (append_toolbar_item): New.
8145
8146 * dispextern.h (enum toolbar_item_idx): New.
8147 (enum toolbar_item_image): New.
8148
8149 * frame.h (struct frame): Add toolbar-related members.
8150
8151 * xfaces.c (face_at_string_position): Remove assertion that
8152 current_buffer == window's buffer. This is not the case when
8153 called for the toolbar window.
8154
8155 * frame.c (make_frame): Initialize toolbar members.
8156
8157 * alloc.c (mark_object): Mark toolbar data of frames.
8158
8159 * frame.h (struct frame): Add toolbar-related members
8160 toolbar_window, desired_toolbar_items, current_toolbar_items,
8161 desired_toolbar_string, current_toolbar_string,
8162 n_desired_toolbar_items, n_current_toolbar_items. Add
8163 window_height.
8164
8165 * xterm.c (x_after_update_window_line): Don't draw bitmap
8166 areas for pseudo-windows.
8167 (expose_frame): Handle toolbar window.
8168 (expose_window): Don't do cursor stuff for pseudo-windows.
8169
8170 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
8171
81721998-10-11 Gerd Moellmann <gerd@gnu.org>
8173
8174 * frame.c (make_frame): Initialize toolbar_window.
8175
8176 * alloc.c (mark_object): Make the toolbar window.
8177
8178 * dispnew.c (update_frame): Update frame's toolbar_window.
8179 (clear_current_matrices): Likewise.
8180 (clear_desired_matrices): Likewise.
8181 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
8182 (free_glyphs): Free the toolbar window and its matrices.
8183
8184 * frame.h (struct frame): Add toolbar_window.
8185
8186 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
8187 with relief.
8188
81891998-10-10 Gerd Moellmann <gerd@gnu.org>
8190
8191 * dispnew.c (buffer_posn_from_coords): Don't screw up if
8192 window start is not in the range BEGV..ZV.
8193
81941998-10-09 Gerd Moellmann <gerd@gnu.org>
8195
8196 * xdisp.c (try_scrolling): Experimentally handle the case
8197 that scroll-preserve-screen-position is set to `always'.
8198
8199 * window.c (Vscroll_preserve_screen_position): Replacement for
8200 scroll_preserve_screen_position.
8201
82021998-10-08 Gerd Moellmann <gerd@gnu.org>
8203
8204 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
8205 doesn't like it.
8206 * xdisp.c: Ditto.
8207
8208 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
8209
82101998-10-06 Gerd Moellmann <gerd@gnu.org>
8211
8212 * minibuf.c (Fminibuffer_complete_word): Fix computation of
8213 i_byte when prompts are inserted into minibuffers.
8214
8215 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
8216 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
8217 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
8218
82191998-10-04 Gerd Moellmann <gerd@gnu.org>
8220
8221 * xdisp.c (make_cursor_line_fully_visible): New.
8222 (try_scrolling): New.
8223 (redisplay_window): Move scrolling code to try_scrolling.
8224 (make_cursor_line_fully_visible): Handle case of window too small
8225 to show a single line.
8226 (redisplay_window): Case forced window start---use
8227 make_cursor_line_fully_visible.
8228 (redisplay_window): Case cursor movement via current matrix.
8229 If ending up on a partially visible line, make it fully visible
8230 instead of recentering.
8231 (try_scrolling): Additional parameter scroll_smoothly.
8232
8233 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
8234
82351998-09-28 Gerd Moellmann <gerd@gnu.org>
8236
8237 * window.c (window_scroll_pixel_based): Bug fix: vpos used
8238 instead of y-position for scroll-preserved-screen-position.
8239
82401998-09-07 Gerd Moellmann <gerd@gnu.org>
8241
8242 * dispnew.c (update_frame_line): If current row is not enabled,
8243 write the whole line.
8244
82451998-09-06 Gerd Moellmann <gerd@gnu.org>
8246
8247 * lisp.h (HAVE_FACES): Removed.
8248
8249 * dispextern.h (HAVE_FACES): Removed.
8250
8251 * config.in (HAVE_FACES): Removed.
8252
8253 * dispnew.c (HAVE_FACES): Removed.
8254
8255 * xdisp.c (HAVE_FACES): Removed.
8256
8257 * xfaces.c (HAVE_FACES): Removed.
8258
82591998-09-05 Gerd Moellmann <gerd@gnu.org>
8260
8261 * xdisp.c (init_iterator): If face_change_count is non-zero,
8262 free realized faces.
8263
8264 * xfaces.c (free_all_realized_faces): Make it externally visible.
8265 (Finternal_set_lisp_face_attribute): Increment
8266 windows_or_buffers_changed.
8267
8268 * dispnew.c (direct_output_for_insert): Give up if
8269 face_change_count is non-zero.
8270 (direct_output_forward_char): Ditto.
8271
8272 * xfaces.c (face_change_count): New.
8273
82741998-09-04 Gerd Moellmann <gerd@gnu.org>
8275
8276 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
8277 of range.
8278
82791998-09-03 Gerd Moellmann <gerd@gnu.org>
8280
8281 * term.c (Ftty_display_color_p): New.
8282
82831998-09-02 Gerd Moellmann <gerd@gnu.org>
8284
8285 * xfaces.c (Ftty_defined_colors): New.
8286
8287 * xterm.c (x_produce_glyphs): Fix computation of
8288 contains_overlapping_glyphs_p for ASCII.
8289
8290 * dispnew.c (Fshow_cursor): Don't change cursor state while
8291 redisplaying.
8292 (direct_output_for_insert): If a glyph with lbearing or rbearing
8293 is among the new glyphs, set row flag contains_overlapping_glyph_p.
8294
82951998-09-01 Gerd Moellmann <gerd@gnu.org>
8296
8297 * term.c (OUTPUT_IF): Make replacement text have statement form.
8298 (OUTPUT1_IF): Ditto.
8299 (TS_italic_mode, TS_end_italic_mode): Removed.
8300 (TS_bold_mode): Removed.
8301 (TS_underscore_mode, TS_end_underscore_mode): Removed.
8302 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
8303 (TS_enter_reverse_mode): New.
8304 (TS_enter_underline_mode, TS_exit_underline_mode): New.
8305 (TN_magic_cookie_glitch_ul): New.
8306 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
8307 (TS_exit_attribute_mode): New.
8308 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
8309 (TS_set_foreground, TS_set_background): New.
8310 (reset_terminal_modes): Switch colors back to default.
8311 (write_glyphs): Turn face on before writing text, turn it off
8312 afterwards.
8313 (insert_glyphs): Ditto.
8314 (term_init): Initialize new terminal capability variables.
8315 (turn_on_face): Turn a face on.
8316 (turn_off_face): Turn a face off.
8317
8318 * lisp.h (MAKE_GLYPH): Remove test for frame type.
8319 (GLYPH_CHAR): Ditto.
8320 (GLYPH_FACE): Ditto.
8321
8322 * xfaces.c (Vface_tty_color_alist): New.
8323 (face-register-tty-color): New.
8324 (face-clear-tty-colors): New.
8325
8326 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
8327 (struct it): Remove member faces_p since we now always have faces.
8328
83291998-08-31 Gerd Moellmann <gerd@gnu.org>
8330
8331 * dispextern.h (struct face): Add tty appearance flags.
8332
8333 * xdisp.c (init_iterator): Always handle faces.
8334 (extend_face_to_end_of_line): Handle tty frames.
8335
8336 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
8337 passed in.
8338
83391998-08-30 Gerd Moellmann <gerd@gnu.org>
8340
8341 * xfaces.c (realize_default_face): Use empty strings to indicate
8342 that the face should use the default foreground/background
8343 color of the terminal. Fill font-related attributes with
8344 appropriate values for tty frames.
8345
8346 * emacs.c (main): Call syms_of_xfaces before init_window_once.
8347
8348 * xfaces.c (realize_default_face): If face `default' is not
8349 yet known, create it.
8350
8351 * frame.c (make_terminal_frame): Call init_frame_faces
8352 unconditionally.
8353
8354 * xfaces.c (init_frame_faces): Make it work for tty frames.
8355 (free_frame_faces): Ditto.
8356 (clear_face_cache): Ditto.
8357 (recompute_basic_faces): Ditto.
8358 (Fframe_face_alist): Ditto.
8359 (free_realized_face): Ditto.
8360 (prepare_face_for_display): Ditto.
8361 (clear_face_gcs): Ditto.
8362 (lookup_face): Ditto.
8363 (smaller_face): Ditto.
8364 (realize_default_face): Ditto.
8365 (realize_face): Ditto.
8366 (realize_face): Dispatch to functions depending on the frame type.
8367 (realize_x_face): X way of realizing faces.
8368 (realize_tty_face): TTY way of realizing faces.
8369
83701998-08-29 Gerd Moellmann <gerd@gnu.org>
8371
8372 * xfaces.c (realize_face): Remove parameter unibyte_registry,
8373 compute it instead.
8374 (lookup_face): Remove local variable unibyte_registry.
8375
83761998-08-22 Gerd Moellmann <gerd@gnu.org>
8377
8378 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
8379 1 pixel longer.
8380
8381 * xdisp.c (face_before_or_after_it_pos): Fix computation
8382 of face in buffer.
8383
8384 * editfns.c (make_buffer_string_both): If prompt in buffer,
8385 prevent start > end.
8386
8387 * indent.c (Fvertical_motion): Set current_buffer to window's
8388 buffer if it isn't already.
8389
83901998-08-21 Gerd Moellmann <gerd@gnu.org>
8391
8392 * dispextern.h (GLYPH_DEBUG): Use default 0.
8393
8394 * xdisp.c (it_props): New member `smaller'.
8395 (init_iterator): Initialize it.
8396 (Qsmaller): New.
8397 (push_it): Save value of `smaller' value on the stack.
8398 (pop_it): Restore `smaller' from the stack.
8399 (handle_smaller_prop): New.
8400 (handle_face_prop): Use `smaller' text property to select a
8401 suitable face.
8402
8403 * dispextern.h (SMALLER_PROP_IDX): New.
8404 (struct it): Add member `smaller'.
8405
8406 * xfaces.c (smaller_face): New.
8407
8408 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
8409
8410 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
8411 total pixel width of window differently.
8412
8413 * xdisp.c (init_iterator): Compute width of mode line differently.
8414
8415 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
8416 of bitmap areas.
8417
8418 * window.c (Fsplit_window): Include width of bitmap areas in
8419 window width.
8420 (window_internal_width): Subtract width of bitmap areas from
8421 total width.
8422
84231998-08-18 Gerd Moellmann <gerd@gnu.org>
8424
8425 * xdisp.c: Functions reordered for better readability.
8426
8427 * dispnew.c (update_text_area): Handle glyphs with arbitrary
8428 lbearing.
8429 (update_window_tree): Parameter no_scrolling_p removed.
8430 (update_single_window): Ditto.
8431
8432 * xterm.c (x_get_char_font_and_encoding): Renamed to
8433 x_get_char_face_and_encoding.
8434
8435 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
8436 if end of current row reached.
8437
8438 * xterm.c (x_get_glyph_face_and_encoding): New.
8439 (x_get_glyph_overhangs): Call it.
8440
8441 * xdisp.c (Qshow_trailing_whitespace): New.
8442 (Qtrailing_whitespace): New.
8443 (enum prop_handled): New.
8444 (struct props, it_props): New.
8445 (next_overlay_change): New. Works like Fnext_overlay_change
8446 but doesn't use xmalloc.
8447 (handle_stop): Restructured.
8448 (face_before_or_after_it_pos): Case iteration over a string: fix
8449 handling of face before current position.
8450
84511998-08-16 Gerd Moellmann <gerd@gnu.org>
8452
8453 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
8454 reallocation matrix if fonts_changed_p.
8455 (update_text_area): Handle glyphs with lbearing.
8456
84571998-08-14 Gerd Moellmann <gerd@gnu.org>
8458
8459 * xdisp.c (struct props): New.
8460 (it_props): New.
8461 (compute_prop_info): New.
8462 (handle_stop): New.
8463
8464 * textprop.c (validate_interval_range): Make it externally
8465 visible.
8466
8467 * dispnew.c (direct_output_for_insert): Remove calls
8468 to compute_stop_pos.
8469
8470 * dispextern.h (struct it): Remove check_charpos,
8471 next_overlay_pos. Add what_changes.
8472
84731998-08-10 Gerd Moellmann <gerd@gnu.org>
8474
8475 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
8476
8477 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
8478 face_default_registry instead.
8479
8480 * syntax.c (scan_sexps_forward): Set up syntax table before
8481 jumping to initial state label.
8482
84831998-08-09 Gerd Moellmann <gerd@gnu.org>
8484
8485 * dispnew.c (check_matrix_invariants): Handle case of row end pos
8486 >= ZV specially.
8487
84881998-08-08 Gerd Moellmann <gerd@gnu.org>
8489
8490 * xdisp.c (redisplay_window): Case cursor movement---if cursor
8491 ends up in partially visible row, try to scroll. Case forced
8492 window start---handle windows not tall enough to show a single
8493 line.
8494
8495 * window.h (struct window): Member dy renamed vscroll.
8496
8497 * xterm.c (x_list_fonts): Re-activate suppression of scalable
8498 fonts.
8499 (x_draw_stretch_glyph_string): Set clipping if using GC that
8500 hasn't set it yet.
8501
8502 * xdisp.c (redisplay_window): Case forced window start -
8503 don't let cursor end on partially visible row. Use desired
8504 matrix to find a suitable PT if it doesn't appear.
8505 (decode_mode_spec): Merged with 20.2.97.
8506 (try_window_reusing_current_matrix): Give up if old or
8507 new display is vscrolled.
8508 (redisplay_window): Reset vscrolling if forced window start,
8509 or if recentering.
8510
85111998-08-06 Gerd Moellmann <gerd@gnu.org>
8512
8513 * xfaces.c (realize_default_face): Use the fontset name instead of
8514 the alias for the family attribute of the default face because we
8515 can't easily determine a good alias from fontset-alias-alist.
8516 (face_fontset): Use Fquery_fontset to find the fontset.
8517 (font_list): Additional pattern parameter.
8518 (try_font_list): Ditto.
8519 (set_lface_from_font_name): Set face family from font foundry
8520 and family.
8521 (font_list): If family contains a hyphen, build pattern differently.
8522
85231998-08-05 Gerd Moellmann <gerd@gnu.org>
8524
8525 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
8526 changed instead of setting the frame garbaged.
8527
8528 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
8529 all attribute values. This is wrong if values are unspecified,
8530 i.e. nil.
8531
8532 * xdisp.c (try_window_id): Give up if window start changed.
8533
8534 * xfaces.c (make_realized_face): Store registry as Lisp object.
8535 (load_face_font_or_fontset): Compute registry of a face
8536 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
8537 possible.
8538
8539 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
8540 differently.
8541
8542 * alloc.c (mark_face_cache): Mark the registry member of faces.
8543
8544 * dispextern.h (struct face): Make registry a Lisp string.
8545
85461998-08-04 Gerd Moellmann <gerd@gnu.org>
8547
8548 * xterm.c (x_get_char_font_and_encoding): Additional parameter
8549 multibyte_p. Handle unibyte text.
8550 (x_append_glyph): Set the multibyte_p flag of glyphs.
8551 (x_produce_image_glyph): Ditto.
8552 (x_append_stretch_glyph): Ditto.
8553 (x_produce_glyphs): Handle unibyte text like ASCII.
8554
8555 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
8556 stack.
8557 (pop_it): Restore it.
8558 (face_before_or_after_it_pos): Handle the case that the string or
8559 buffer is unibyte.
8560 (get_overlay_strings): Set the multibyte flag of the iterator if
8561 the new overlay string is multibyte.
8562 (get_glyph_property): Likewise.
8563 (get_next_display_element): Don't check for charset changes in
8564 unibyte text.
8565 (append_space): Compute face differently for unibyte text.
8566 (extend_face_to_end_of_line): Don't return quickly if face has
8567 stipple.
8568
8569 * xfaces.c (load_face_font_or_fontset): Store registry and
8570 encoding of the font in the registry member of the face.
8571 (make_realized_face): Additional parameter `registry'.
8572 (free_realized_face): Free the registry of a realized face.
8573 (face_suitable_for_charset_p): Function form of the macro
8574 with the same name in uppercase.
8575 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
8576 (choose_face_font): New parameter unibyte_registry.
8577 (choose_face_fontset_font): Ditto.
8578 (realize_default_face): Remember the registry and encoding of
8579 the specified frame font in Vx_unibyte_registry_and_encoding.
8580 (face_at_buffer_position): Handle unibyte.
8581 (face_at_string_position): Likewise.
8582 (realize_face): New parameter unibyte_registry.
8583 (compute_char_face): Handle the unibyte case.
8584
8585 * dispextern.h (struct glyph): Add bit multibyte_p.
8586 (struct face): New member registry holding the registry and
8587 encoding of the X font of the face.
8588 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
8589 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
8590 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
8591 text.
8592 (struct iterator_stack_entry): Add multibyte_p.
8593
8594 * xdisp.c (string_pos): Use string_char_to_byte.
8595 (char_charset): Removed.
8596
85971998-08-03 Gerd Moellmann <gerd@gnu.org>
8598
8599 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
8600 rectangle for a block cursor over an image without a mask.
8601 (x_stretch_block_cursor): Added. Non-zero means don't draw
8602 a block cursor over a stretch as wide as that stretch.
8603 (x_draw_stretch_glyph_string): Use it.
8604 (x_draw_hollow_cursor): Ditto.
8605
8606 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
8607 (read_minibuf): Add front-sticky text property for prompt.
8608
8609 * xdisp.c (char_charset): Return charset of a character,
8610 depending on whether or not multi-byte characters are enabled.
8611
8612 * xfaces.c (Fset_face_charset_registry): Removed.
8613 (x_charset_registry): Determine registry from charset plist.
8614
86151998-08-02 Gerd Moellmann <gerd@gnu.org>
8616
8617 * xdisp.c (get_next_display_element): Don't check for charset
8618 changes if multi-byte characters are not enabled.
8619
8620 * xdisp.c (echo_area_display): Use the flush function from the
8621 redisplay interface.
8622 * keyboard.c (detect_input_pending_run_timers): Likewise.
8623
8624 * dispextern.h (produce_*glyphs_hook): Removed.
8625 * term.c (produce_*glyphs): Ditto.
8626 (cursor_to): Remove pixel position parameters.
8627
8628 * dispnew.c: Remove hooks for window-based redisplay, introduce
8629 a redisplay interface structure.
8630
8631 * xterm.c (x_per_char_metric): Return default char metrics if per
8632 char metric exists but contains a zero width. Adobe Courier seems
8633 to contain such characters.
8634
8635 * xdisp.c (compute_line_metrics): Compute the width of rows
8636 without stopping at glyphs with zero width.
8637
86381998-08-01 Gerd Moellmann <gerd@gnu.org>
8639
8640 * xdisp.c (display_mode_line): If nothing was displayed at all,
8641 display a space.
8642 (hscroll_window_tree): Don't subtract 1 from target point if equal
8643 to ZV and window is not the selected window.
8644
8645 * dispnew.c (check_matrix_invariants): Remove check for window
8646 start at BEGV or after newline. This happens in rare cases
8647 intentionally.
8648
86491998-07-31 Gerd Moellmann <gerd@gnu.org>
8650
8651 * xfaces.c (x_charset_registry): Use STRING_BYTES.
8652 (syms_of_xfaces): Add Vface_default_registry.
8653 (x_charset_registry): Use it.
8654
8655 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
8656 (redisplay_window): Use it.
8657
8658 * dispnew.c (update_text_area): Handle lbearing of deleted text
8659 by backing up one character.
8660
86611998-07-30 Gerd Moellmann <gerd@gnu.org>
8662
8663 * dispnew.c (adjust_glyph_matrix): Use a different check to
8664 decide to do nothing.
8665
8666 * xfaces.c (face_at_string_position): Additional parameter
8667 mode_line_p. If non-zero, merge with the mode line face
8668 instead of the default face.
8669 * dispextern.h (struct it): Add mode_line_p.
8670 * xdisp.c (init_iterator): Set it.
8671 (compute_face_in_string): Use it.
8672 (face_before_or_after_it_pos): Handle strings.
8673 (get_next_display_element): Don't look for relief end in C strings.
8674 (next_element_from_string): Deliver string position instead of
8675 buffer position.
8676
8677 * xterm.c (x_flush): Flush X output buffer.
8678 (XTflash): Use it.
8679
8680 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
8681 Allow strings as face names.
8682
8683 * xfns.c (forall_images_in_image_cache): Check that frame is
8684 alive.
8685
8686 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
8687 it's also called from x_destroy_window. Since this function is
8688 called from X, freeing stuff allocated with xmalloc is dangerous
8689 here, anyway.
8690
8691 * xfaces.c (free_realized_faces): Don't clear current matrices
8692 of a frame being destroyed.
8693
8694 * frame.c (make_frame): Call set_window_buffer instead of
8695 Fset_window_buffer.
8696
8697 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
8698 with an additional argument specifying whether or not hooks may
8699 be called.
8700 (Fset_window_buffer): Call it.
8701
8702 * dispnew.c (clear_desired_matrices): Check that frame has
8703 a valid root window before clearing matrices in the window tree.
8704 (clear_current_matrices): Ditto.
8705 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
8706 vchild are valid windows if not nil.
8707
8708 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
8709 for :inverse-video.
8710 (Finternal_set_lisp_face_attribute): Ditto.
8711 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
8712 (Finternal_get_lisp_face_attribute): Ditto.
8713 (Finternal_lisp_face_attribute_values): Ditto.
8714 (syms_of_xfaces): Define the symbol `:reverse-video'.
8715
8716 * xdisp.c (get_glyph_property): Renamed from
8717 fill_iterator_from_glyph_property.
8718 (next_element_from_buffer): Handle case that no `glyph' property
8719 was found correctly.
8720 (display_line): Extend face to end of line only if we have faces.
8721
87221998-07-29 Gerd Moellmann <gerd@gnu.org>
8723
8724 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
8725 additional window argument.
8726
8727 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
8728 set_iterator_to_previous_visible_line_start.
8729 (reseat_at_next_visible_line_start): Likewise.
8730 (compute_stop_pos): Renamed from set_iterator_stop_pos.
8731 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
8732 (compute_face_in_buffer): Renamed from
8733 compute_face_at_iterator_position.
8734 (compute_face_in_string): Renamed from
8735 compute_face_at_iterator_string_position.
8736 (get_space_width): Renamed from get_iterator_space_width.
8737 (next_overlay_string): Renamed from
8738 set_iterator_to_next_overlay_string.
8739 (get_overlay_strings): Renamed from
8740 get_overlay_strings_at_iterator_position.
8741 (restore_overlay_strings): Renamed from
8742 setup_overlay_strings_from_glyph_pos.
8743 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
8744 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
8745 (init_to_row_start): Renamed from init_iterator_to_row_start.
8746 (init_to_row_end): Formerly init_iterator_to_next_row_start.
8747
8748 * xterm.c: Merge with 20.2.97.
8749 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
8750
8751 * dispextern.h (struct glyph): Replace text_pos position with
8752 simple charpos.
8753
8754 * xdisp.c (this_line_start_pos): Use struct text_pos.
8755 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
8756 (enum move_it_result): Renamed from move_iterator_result.
8757 (string_pos_nchars_ahead): Compute text_pos in a string from a
8758 known text_pos plus a character delta.
8759 (string_pos): Compute text_pos in string from charpos.
8760 (c_string_pos): Likewise for a C string.
8761 (number_of_chars): Return number of characters in a possibly
8762 multi-byte C string.
8763 (check_it): Renamed from check_iterator. Check that charpos and
8764 bytepos are in sync.
8765 (push_it): Renamed from save_iterator_settings.
8766 (pop_it): Renamed from restore_iterator_settings.
8767 (move_it_.*): Renamed from move_iterator_.*.
8768 (charset_at_position): Take charpos/bytepos into account.
8769 (back_to_previous_line_start): Set iterator to previous line start.
8770 (forward_to_next_line_start): Set iterator to next line start.
8771 (back_to_previous_visible_line_start): Renamed from
8772 move_iterator_previous_visible_line_start.
8773 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
8774 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
8775 Handle charpos/bytepos.
8776 (compute_face_at_iterator_position): Handle charpos/bytepos.
8777 (compute_face_at_iterator_string_position): Likewise.
8778 (get_iterator_space_width): Likewise.
8779 (load_overlay_strings): Likewise.
8780 (get_overlay_strings_at_iterator_position): Likewise.
8781 (reseat_iterator): Take a text_pos position argument.
8782 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
8783 bytepos.
8784 (init_iterator): Take additional bytepos parameter.
8785 (reseat_iterator_to_string): Handle charpos/bytepos.
8786 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
8787 (next_element_from_string): Handle charpos/bytepos.
8788 (next_element_from_c_string): Likewise.
8789 (fill_iterator_from_glyph_property): Likewise.
8790 (next_element_from_buffer): Likewise.
8791 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
8792 (move_iterator_in_display_line_to): Handle charpos/bytepos.
8793 (move_it_to): Likewise.
8794 (move_it_vertically_backward): Likewise.
8795 (move_it_vertically): Likewise.
8796 (move_it_by_lines): Likewise.
8797 (hscroll_window_tree): Likewise.
8798 (redisplay_internal): Likewise.
8799 (set_cursor_from_row): Likewise.
8800 (redisplay_window): Likewise.
8801 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
8802 (try_window_reusing_current_matrix): Handle charpos/bytepos.
8803 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
8804 (try_window_id): Handle charpos/bytepos.
8805 (Ftrace_redisplay_toggle): Return Qnil.
8806 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
8807 (insert_left_trunc_glyphs): Likewise.
8808
8809 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
8810 do a real merge).
8811 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
8812 (increment_glyph_row_buffer_positions): Ditto.
8813 (copy_glyph_row_contents): Ditto.
8814 (check_matrix_invariants): Add additional checks for charpos/
8815 bytepos consistency.
8816 (direct_output_for_insert): Changed for charpos/bytepos.
8817 (buffer_posn_from_coords): Likewise. Put code dealing with
8818 `direction-reversed' in #if 0.
8819
8820 * xterm.h: Merge with 20.2.97.
8821
8822 * frame.h: Merge with 20.2.97.
8823
8824 * window.h: Merge with 20.2.97. Add window_end_bytepos.
8825
8826 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
8827 start.
8828 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
8829 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
8830 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
8831 (struct it): Various members renamed from .*pos to .*charpos.
8832 (IT_CHARPOS): Access current buffer character position of an
8833 iterator.
8834 (IT_BYTEPOS): Access current buffer byte position of an iterator.
8835 (IT_STRING_CHARPOS): Access current string character position of
8836 an iterator.
8837 (IT_STRING_BYTEPOS): Access current string byte position of
8838 an iterator.
8839 (globally): Add function prototypes from 20.2.97.
8840
8841 * everywhere: Use P_ instead of PROTO for function prototypes
8842 because everyone else seems to use P_.
8843
8844 * dispextern.h (struct text_pos): Structure describing a charpos/
8845 bytepos position in text.
8846 (BYTEPOS): Access the byte position part of a text_pos.
8847 (CHARPOS): Likewise for the character position.
8848 (SET_TEXT_POS): Set a text_pos from a character and byte position.
8849 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
8850 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
8851 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
8852 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
8853 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
8854 for buffer and string positions.
8855 (struct glyph): Use text_pos.
8856 (struct it): Renamed from display_iterator. Use text_pos.
8857
88581998-07-23 Gerd Moellmann <gerd@gnu.org>
8859
8860 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
8861 pixmap.
8862
88631998-07-21 Gerd Moellmann <gerd@gnu.org>
8864
8865 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
8866 * xterm.c (x_draw_row_bitmaps): Use it.
8867 * dispnew.c (row_equal_p): Ditto.
8868 (update_window_line): Ditto.
8869
8870 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
8871 flag of images.
8872
8873 * dispextern.h (struct image): Removed member loading_failed_p.
8874 It's probably better to have the chance to try to load an image
8875 again.
8876
88771998-07-20 Gerd Moellmann <gerd@gnu.org>
8878
8879 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
8880 at ZV if `indicate-zv-lines' is non-nil.
8881 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
8882
8883 * dispnew.c (row_equal_p): Compare displays_text_p and
8884 ends_at_zv_p flags of rows.
8885 (update_window_line): Ditto.
8886
8887 * buffer.h (struct buffer): New member indicate_zv_lines.
8888
8889 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
8890 (init_buffer_once): New variable `default-indicate-zv-lines'.
8891 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
8892
8893 * xdisp.c (redisplay_window): Don't try moving the cursor
8894 if current glyph row w->last_cursor.vpos isn't enabled.
8895
8896 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
8897
8898 * window.c (Fset_window_vscroll): Allow only negative scroll
8899 values. Others don't seem to make sense, and this way it's easy
8900 to restore a vscroll of zero.
8901
8902 * xterm.c (x_inverted_image_mask): Check that pixmap could be
8903 allocated.
8904 (x_draw_image_glyph_string_background): Don't clip if pixmap
8905 could not be created.
8906
8907 * xfns.c (xbm_load_image_from_file): Check that pixmap could
8908 be created.
8909 (xbm_load): Ditto.
8910 (gs_load): Ditto.
8911
8912 * xterm.c (x_get_glyph_overhangs): Take image and stretch
8913 glyphs into account.
8914
8915 * xfaces.c (realize_default_face): Don't set font family of
8916 the default face from the fontset alias name for `fontset-startup'.
8917
8918 * xfns.c (gs_load): Pass frame's pixel foreground and background
8919 color to the Lisp loader.
8920
89211998-07-19 Gerd Moellmann <gerd@gnu.org>
8922
8923 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
8924 libtiff34.
8925
8926 * configure.in (--with-tiff, HAVE_TIFF): Added.
8927
8928 * config.in (HAVE_TIFF): Added.
8929
8930 * Makefile.in (LIBTIFF): Added.
8931
8932 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
8933
8934 * Makefile.in (LIBJPEG): Added.
8935
8936 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
8937 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
8938 jpeglib.h.
8939
8940 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
8941 where the library is installed in /usr/local/lib, e.g. FreeBSD,
8942 configure must be run with `--x-includes=/usr/X11R6/include:
8943 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
8944
89451998-07-18 Gerd Moellmann <gerd@gnu.org>
8946
8947 * config.in (HAVE_JPEG): Added.
8948
8949 * xfns.c (ct_init): Initialize color table used to map RGB colors
8950 from images to X pixel colors.
8951 (ct_free): Free color table.
8952 (ct_lookup): Look an RGB color up.
8953 (ct_allocated_colors): Get vector of allocated colors.
8954 (pbm_image_p): Test if image specification is a valid PPM
8955 image specification.
8956 (pbm_scan_number): Scan a decimal ASCII number from a file.
8957 (pbm_load): Load a PPM image.
8958
8959 * window.c (Fset_window_vscroll): Adjust glyph matrix if
8960 necessary. Take canonical character units as parameter.
8961 (Fwindow_vscroll): Return canonical character units.
8962
8963 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
8964 w->dy to display height for which glyph rows must be allocated.
8965
89661998-07-17 Gerd Moellmann <gerd@gnu.org>
8967
8968 * xfaces.c (face_at_string_position): Merge in region face
8969 so that it won't overwrite the font in the region.
8970 (face_at_buffer_position): Ditto.
8971 (realize_basic_faces): Don't realize region face.
8972
8973 * dispextern.h (enum face_id): REGION_FACE_ID removed.
8974
8975 * xterm.c (x_set_glyph_string_background_width): Don't let
8976 cursor face extend to end of line.
8977
8978 * xdisp.c (append_space): If adding space of default face,
8979 make sure glyph ist produced with right face.
8980
8981 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
8982 background color of a glyph string.
8983 (x_draw_glyph_string_background): Call it.
8984 (x_draw_glyph_string_bg_rect): Ditto.
8985 (x_draw_stretch_glyph_string): Ditto.
8986
89871998-07-15 Gerd Moellmann <gerd@gnu.org>
8988
8989 * xdisp.c (init_iterator): Initialize it->current_y to the
8990 window's vscroll w->dy.
8991
8992 * window.c (Fwindow_vscroll): Return number of pixels window
8993 is vscrolled smoothly.
8994 (Fset_window_vscroll): Set the number.
8995
8996 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
8997 to_pos in truncated part of a line.
8998
89991998-07-14 Gerd Moellmann <gerd@gnu.org>
9000
9001 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
9002 doesn't fit on the line, truncate it, despite truncate_lines nil.
9003 (display_line): Ditto.
9004
9005 * xfns.c: Experimental support for Ghostscript images.
9006
9007 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
9008 (XTread_socket): React on events from Ghostscript.
9009 (expose_frame): If width or height are zero, redraw entire frame.
9010 (XTread_socket): Call expose_frame after receiving event from
9011 Ghostscript.
9012
9013 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
9014 for Ghostscript support.
9015
9016 * xdisp.c (redisplay_internal): Return quickly if called
9017 recursively.
9018
9019 * alloc.c (NSTATICS): Increased to 1024.
9020
90211998-07-08 Gerd Moellmann <gerd@gnu.org>
9022
9023 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
9024 iterator's glyph row.
9025 (x_produce_stretch_glyph): Call it.
9026 (x_produce_glyphs): Handle `space-width' property; call
9027 x_append_stretch_glyph.
9028
9029 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
9030 property.
9031 (get_iterator_space_width): Determine value of `space-width'
9032 property at iterator's position.
9033 (reseat_iterator): Call it.
9034 (next_element_from_string): Ditto.
9035 (next_element_from_buffer): Ditto.
9036 (init_iterator): Initialize space_width of iterator.
9037 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
9038 moved, but cursor blinks.
9039 (redisplay_internal): Set w->last_cursor_off_p after update.
9040
9041 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
9042 (struct display_iterator): Add new member space_width.
9043
9044 * window.h (struct window): Add last_cursor_off_p.
9045
90461998-07-07 Gerd Moellmann <gerd@gnu.org>
9047
9048 * Saved.
9049
9050 * window.c (Fpos_visible_in_window_p): Case window not up to
9051 date---return nil if iterator hasn't reached position.
9052
90531998-07-06 Gerd Moellmann <gerd@gnu.org>
9054
9055 * xdisp.c (text_outside_line_unchanged_p): Fix case that
9056 overlays have changed.
9057 (redisplay_window): Case cursor movement. Don't try it if
9058 last_cursor.vpos is out of range.
9059
9060 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
9061 way, the display optimization for the line containing the cursor
9062 is used more frequently, esp. when we have a blinking cursor.
9063 (display_line): Don't set this_line_.* variables.
9064
9065 * xterm.c (x_redraw_cursor): Removed.
9066 (x_display_and_set_cursor): Set cursor type depending on
9067 cursor_off_p flag of window.
9068
9069 * dispnew.c (redraw_cursor_hook): Removed.
9070 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
9071 member of the selected window.
9072
9073 * xfaces.c (Fface_font): Added for compatibility with 20.2.
9074
9075 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
9076 Return glyph area under x/y.
9077 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
9078
9079 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
9080 after redisplaying.
9081
90821998-07-05 Gerd Moellmann <gerd@gnu.org>
9083
9084 * xdisp.c (text_outside_line_unchanged_p): Test if changes
9085 are all outside of a line of text.
9086 (redisplay_internal): Use it.
9087
90881998-06-30 Gerd Moellmann <gerd@gnu.org>
9089
9090 * xdisp.c (next_element_from_buffer): After skipping over
9091 invisible text, look for the `glyph' property.
9092 (set_iterator_stop_pos): Ignore check positions in front
9093 of an iterator's current position.
9094
9095 * xterm.c (show_mouse_face): Don't act on rows that don't exist
9096 anymore or which are marked as not having valid contents.
9097
9098 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
9099 realized faces if new attribute value is equal to old value.
9100
91011998-06-29 Gerd Moellmann <gerd@gnu.org>
9102
9103 * xfaces.c (Finternal_make_lisp_face): Increment
9104 lface_id_to_name_size when lface_id_to_name is reallocated.
9105
91061998-06-27 Gerd Moellmann <gerd@gnu.org>
9107
9108 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
9109 as minimum of endpos and overlay_pos.
9110 (load_overlay_strings): Set next_overlay_pos of iterator to
9111 -1 if we don't have to check for more overlay strings.
9112
91131998-05-09 Gerd Moellmann <gerd@gnu.org>
9114
9115 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
9116 do anything if iterator is at ZV because scan_buffer doesn't
9117 work otherwise.
9118
9119 * xterm.c (x_encode_char): Inline it.
9120 (x_get_char_font_and_encoding): Simplified.
9121 (x_per_char_metric): Inline it.
9122
9123 * xterm.c (x_draw_glyph_string_relief): Use clipping.
9124
9125 * xdisp.c (get_next_display_element): Check for end of relief
9126 face moved here from next_element_from_buffer.
9127
9128 * xterm.c (x_produce_image_glyph): Add relief thickness.
9129 (x_produce_stretch_glyph): Ditto.
9130
91311998-05-08 Gerd Moellmann <gerd@gnu.org>
9132
9133 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
9134 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
9135
9136 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
9137 from a glyph property.
9138 (x_produce_glyphs): Use it.
9139
9140 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
9141
9142 * xterm.c (x_produce_image_glyph): Add to current_x only if
9143 in text area.
9144 (x_produce_glyphs): Ditto.
9145
9146 * xdisp.c (display_line): Compute row height from glyphs in
9147 marginal areas.
9148
9149 * xterm.c (x_draw_image_glyph_string_background): Draw
9150 background of an image glyph string.
9151 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
9152 the background of a glyph string.
9153 (x_draw_image_glyph_string_foreground): Draw the foreground of
9154 an image glyph string.
9155 (x_inverted_image_mask): Return the inverted mask of an image.
9156
9157 * xfns.c (x_draw_image): Removed.
9158
9159 * dispextern.h (struct image_type): Remove drawing function.
9160
9161 * xfaces.c (load_face_colors): Swap colors if face is inverse.
9162
9163 * xdisp.c (get_next_display_element): In marginal areas, translate
9164 newlines, tabs, etc. like normal control characters.
9165
9166 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
9167 and color.
9168 (free_realized_faces): Set frame garbaged.
9169
9170 * xfaces.c (syms_of_xfaces): Add defsubr for
9171 internal-lisp-face-attribute-values.
9172
91731998-05-07 Gerd Moellmann <gerd@gnu.org>
9174
9175 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
9176 full.
9177 (x_produce_image_glyph): Set IT->nglyphs to 1.
9178 (x_draw_image_glyph_string): Use inverted mask to draw background.
9179
9180 * dispextern.h (struct image_type): Additional clipping rect
9181 parameters for drawing functions.
9182
9183 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
9184 a glyph string.
9185 (x_draw_image_glyph_string): Use it and pass the rect to the
9186 image drawing function.
9187
9188 * xdisp.c (fill_iterator_from_glyph_property): Use position of
9189 first character with `glyph' property as image position. Set
9190 iterator back to that position as long as the image hasn't been
9191 consumed with set_iterator_to_next.
9192 (set_cursor_from_row): Accept when glyph with given position is
9193 not found in the row. Set cursor x to end of line in that case,
9194 so that we can hscroll.
9195 (redisplay_internal): Correct computation of delta by which
9196 positions have changed in redisplay optimization for cursor
9197 row of selected window.
9198
9199 * xdisp.c (display_line): Remove start_pos.
9200 (display_line): Fix bug preventing display optimization for
9201 cursor line of selected window.
9202 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
9203 instead.
9204
9205 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
9206 (update_text_area): Take glyph pixel width into account
9207 when trying to find a resync point.
9208 (row_equal_p): Compare glyphs in all areas.
9209
92101998-05-06 Gerd Moellmann <gerd@gnu.org>
9211
9212 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
9213
9214 * dispextern.h (struct glyph_row): Use unsigned hash value.
9215
9216 * xdisp.c (display_line): Simplified and made faster by setting
9217 the cursor with set_cursor_from_row.
9218 (set_cursor_from_row): Handle rows of desired matrix.
9219
92201998-05-05 Gerd Moellmann <gerd@gnu.org>
9221
9222 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
9223 with type != CHAR_GLYPH.
9224 (fill_iterator_from_glyph_property): Return void. Set
9225 method to next_element_from_image.
9226 (next_element_from_image): Dummy function for delivering a
9227 single image id.
9228 (set_iterator_to_next): Add method next_element_from_image.
9229 (redisplay_window): When recentering, and cursor vpos is -1
9230 after display, assume middle of window is in first line displayed
9231 in window, and display again.
9232 (fill_iterator_from_glyph_property): Assign image glyph
9233 the position of the first character having the glyph property.
9234
9235 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
9236 * xfns.c (x_draw_image): Use it.
9237 * xterm.c (x_produce_image_glyph): Use it.
9238
9239 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
9240
9241 * Makefile.in: Extraneous #define of LIBXPM removed.
9242
9243 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
9244 (x_fill_stretch_glyph_string): Fill a glyph string from a
9245 stretch glyph.
9246 (x_compute_glyph_string_overhangs): Compute overhangs only
9247 for text glyph strings.
9248 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
9249 (x_draw_glyph_string): Call it.
9250
9251 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
9252 (struct glyph): Add sub-structure for stretchable glyphs.
9253 (GLYPH_EQUAL_P): Compare glyph type and u.val.
9254
9255 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
9256 #ifdef HAVE_FACES.
9257
9258 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
9259
9260 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
9261 setup_iterator_from_glyph_property. Don't do it for terminal
9262 frames.
9263
9264 * xterm.c (x_produce_image_glyph): Produce glyph for image
9265 that can't be loaded.
9266
9267 * xfns.c (lookup_image): If image can't be loaded, set its
9268 width and height so that we can draw a rectangle.
9269 (x_draw_image): Draw a rectangle for images that don't have
9270 a pixmap.
9271 (make_image): Set hash value.
9272 (image_spec_equal_p): Use image_spec_value.
9273
9274 * xterm.c (expose_frame): Don't try to redraw if basic faces
9275 haven't benn realized yet.
9276 (x_draw_image_glyph_string): Fill background only if image
9277 is not as tall as row.
9278
92791998-05-04 Gerd Moellmann <gerd@gnu.org>
9280
9281 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
9282 (LIBX)[HAVE_X11]: Add LIBXPM.
9283
9284 * xfns.c (xpm_image_p): Implementation of image type functions
9285 for XPM.
9286 (xpm_load): Ditto.
9287
9288 * dispextern.h (struct image): Add mask pixmap for XPM.
9289
9290 * xfns.c (x_draw_image): Handle images with masks.
9291
9292 * configure.in: --with-xpm added. Code detecting -lXpm added.
9293
9294 * config.in: Add HAVE_XPM.
9295
9296 * xfns.c (xbm_draw): Removed.
9297 (x_draw_image): Default implementation for drawing images.
9298 (xbm_keyword_index): Remove XBM_DEPTH.
9299 (xbm_format): Remove `:depth'.
9300 (xbm_image_spec_from_file): Removed to reduce consing.
9301 (xbm_load_image_from_file): Added for the same reason.
9302
9303 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
9304 glyph string.
9305 (x_draw_image_glyph_string): Pass ybase to image draw function.
9306
9307 * xfns.c (make_image): Set default baseline.
9308
9309 * xterm.c (x_produce_image_glyph): Compute ascent of image
9310 from its height and baseline percentage.
9311
9312 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
9313 (xbm_format): Add description for `:baseline'.
9314 (xbm_image_spec_from_file): Add keywords from original spec to
9315 result.
9316 (xbm_load): Set baseline of image.
9317 (xbm_image_p): Check range for baseline.
9318
9319 * dispextern.h (struct image): Add member baseline.
9320
9321 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
9322
9323 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
9324
9325 * xdisp.c (get_next_display_element): Do character translations
9326 only if delivering characters.
9327
93281998-05-03 Gerd Moellmann <gerd@gnu.org>
9329
9330 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
9331 DISP_CHARACTER.
9332
9333 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
9334 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
9335
93361998-05-02 Gerd Moellmann <gerd@gnu.org>
9337
9338 * xfns.c (prepare_image_for_display): Set image timestamp.
9339 (clear_image_cache): Clear images if image's timestamp +
9340 Vimage_eviction_seconds is > now.
9341 (syms_of_xfns): New variables image-eviction-seconds, and
9342 image-types.
9343 (add_image_format): Add to image-types.
9344 (xbm_load): Support new image spec format.
9345 (x_alloc_image_color): Allocate a color for an image.
9346
9347 * dispextern.h (struct image): Add timestamp.
9348
9349 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
9350 vectors of bool-vectors.
9351 (xbm_lisp_object_from_file): Build new format image spec.
9352
93531998-05-01 Gerd Moellmann <gerd@gnu.org>
9354
9355 * xfaces.c (init_frame_faces): Initialize image cache.
9356 (free_frame_faces): Free it.
9357
9358 * xterm.c (x_delete_display): Don't free image cache.
9359
9360 * emacs.c (main): Call init_xfns.
9361
93621998-04-30 Gerd Moellmann <gerd@gnu.org>
9363
9364 * alloc.c (mark_object): Mark objects in image cache.
9365
9366 * xfns.c (x_set_internal_border_width): Correct call to
9367 widget_store_internal_border_width.
9368
9369 * widget.c (widget_store_internal_border): Return void.
9370
9371 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
9372 void.
9373 (init_x_parm_symbols): Return void.
9374 (x_report_frame_params): Ditto.
9375 (x_set_border_pixel): Ditto.
9376 (syms_of_xfns): Ditto.
9377 (x_destroy_all_bitmaps): Use xfree instead of free.
9378
9379 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
9380
9381 * xterm.c (x_term_init): Initialize image_cache of display info.
9382 (x_delete_display): Free image cache.
9383
9384 * xterm.h (struct x_display_info): Add image_cache.
9385
9386 * xfns.c (make_image_cache): Allocate a new image cache.
9387 (free_image_cache): Free an image cache.
9388 (make_image): Allocate an image.
9389 (free_image): Free an image.
9390
9391 * dispextern.h (struct image): Structure describing an image.
9392 (struct image_cache): Structure describing an image cache.
9393
93941998-04-29 Gerd Moellmann <gerd@gnu.org>
9395
9396 * xdisp.c (check_iterator_glyph_property): Return int. Value is
9397 non-zero if iterator is filled with something to return.
9398 (next_element_from_buffer): Immediately return if
9399 setup_iterator_from_glyph_prop has filled iterator with pixmap.
9400 (next_element_from_string): Likewise.
9401
9402 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
9403
9404 * dispextern.h (struct glyph): Add pixmap_id.
9405 (display_element_type): Add DISP_PIXMAP.
9406
9407 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
9408 malloc/free.
9409
9410 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
9411 (clear_face_cache): Call it.
9412
9413 * xterm.c (x_query_font): Don't look at empty font table slots.
9414 (x_compute_min_glyph_bounds): Likewise.
9415 (x_term_init): Initialize font_table to null.
9416 (x_load_font): Change allocation of font_info structures so
9417 that it is possible to free fonts.
9418
9419 * xfns.c (Fx_close_connection): Use xfree instead of free.
9420 Only free fonts from filled font table entries.
9421
9422 * xfaces.c (best_matching_font): Support use of scalable fonts.
9423 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
9424
9425 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
9426 and resy.
9427 * xterm.c (x_term_init): Compute resx and resy.
9428
9429 * xfaces.c (split_font_name): Don't reject scalable fonts.
9430
9431 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
9432 in #if 0.
9433
9434 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
9435 point size cannot be determined.
9436
9437 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
9438 width over all fonts on a frame.
9439 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
9440 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
9441 macros.
9442
9443 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
9444 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
9445 (x_load_font): Use x_compute_min_char_bounds.
9446
9447 * xterm.h (struct x_display_info): New members smallest_char_width
9448 and smallest_font_height.
9449
94501998-04-28 Gerd Moellmann <gerd@gnu.org>
9451
9452 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
9453 the same name if GC of face is zero.
9454
9455 * dispextern.h (struct face): Member non_ascii_gc removed.
9456
9457 * xterm.c (x_get_char_font_and_encoding): Return face's font
9458 for characters < 0177 in default face. Prepare face for
9459 display before returning it.
9460 (x_produce_glyphs): Use it->charset.
9461 (x_get_char_font_and_encoding): Simplified.
9462 (x_encode_char): Remove parameter `font'.
9463
9464 * xfaces.c (choose_face_font): If registry from charset symbol
9465 doesn't contain a `-', make it a pattern by appending "*-*".
9466
9467 * xdisp.c (check_iterator_glyph_property): Adjust limit for
9468 glyph_check_pos computation to character boundary.
9469
94701998-04-27 Gerd Moellmann <gerd@gnu.org>
9471
9472 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
9473
9474 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
9475 ASCII face for a given Lisp face id.
9476
9477 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
9478 account.
9479 (reseat_iterator): Set glyph_check_pos. Handle case where
9480 new position is < original position.
9481 (check_iterator_glyph_property): Handle glyph property in strings.
9482 (next_element_from_string): Call above function.
9483 (next_element_from_display_vector): Handle faces in glyphs.
9484 (get_next_display_element): Set face_id of glyphs for
9485 control chars to zero.
9486
9487 * Makefile.in (term.o): Add dependency on dispextern.h.
9488
9489 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
9490 (display_line): Handle marginal areas.
9491 (move_iterator_in_display_line_to): Likewise.
9492
9493 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
9494
9495 * xfaces.c (face_at_buffer_position): Don't merge with nil
9496 text property.
9497 (face_at_string_position): Ditto.
9498
9499 * dispextern.h (struct display_iterator): Use a stack of saved
9500 values instead of saving check positions etc. individually.
9501
9502 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
9503 maybe pop the iterator's stack.
9504 (save_iterator_settings): Push a value on iterator's stack.
9505 (get_overlay_strings_at_iterator_position): Use it.
9506 (restore_iterator_settings): Pop the stack.
9507 (set_iterator_to_next_overlay_string): Use it.
9508
9509 * xfaces.c (try_font_list): Use alternative font families.
9510
95111998-04-26 Gerd Moellmann <gerd@gnu.org>
9512
9513 * xfaces.c (Fset_face_font_sort_order): Set the order in which
9514 font selection matches fonts.
9515 (Fface_font_sort_order): Return the font sort order.
9516 (best_matching_font): Find best matching font based on sort order.
9517 (cmp_font_names): Sort by given sort order.
9518
9519 * dispextern.h (struct display_iterator): New member faces_p.
9520 * xdisp.c (init_iterator): Initialize it->faces_p.
9521 (compute_face_at_iterator_string_position): Use it.
9522 (compute_face_at_iterator_position): Use it.
9523 (init_iterator): Use it.
9524 (display_mode_line): Ditto.
9525
9526 * xdisp.c (get_next_display_element): Put code choosing a face
9527 when the charset changes in #ifdef HAVE_FACES.
9528
9529 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
9530 lookup_face_for_charset.
9531
9532 * xfaces.c (free_font_names): Renamed from free_split_font_names.
9533 (free_all_realized_faces): Renamed from remove_all_realized_faces.
9534
95351998-04-25 Gerd Moellmann <gerd@gnu.org>
9536
9537 * xfaces.c (best_matching_font): Return the name of the best
9538 matching font in an array of font_name structures.
9539 (choose_face_font): Use it.
9540 (choose_face_fontset_font): Use it.
9541 (find_best_weight_font): If final font found has same weight as
9542 the font we started with, return the original font because it is a
9543 better match for the resolution of the display.
9544 (find_best_slant_font): Likewise.
9545 (merge_face_vector_with_property): Check more invalid attribute
9546 values.
9547 (lface_suitable_for_charset_p): Replaced by a macro with the same
9548 name in upper-case.
9549
95501998-04-24 Gerd Moellmann <gerd@gnu.org>
9551
9552 * dispextern.h (struct face): Member
9553 fontset_chosen_for_realization_p removed.
9554
9555 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
9556 end of the collision list, so that we find more specific faces
9557 first.
9558 (lookup_face_for_charset): Look up a new face if face->fontset >=
9559 0, and charset != CHARSET_COMPOSITION.
9560
9561 * xfaces.c (split_font_name): Return zero if point size of font
9562 couldn't be computed.
9563 (realize_default_face): Use ASCII font of a fontset to determine
9564 font-related attributes of the default face.
9565 (face_fontset): Return fontset id for face family.
9566 (font_list): Additional parameter font_pattern. If non-nil,
9567 return fonts matching that pattern.
9568
95691998-04-23 Gerd Moellmann <gerd@gnu.org>
9570
9571 * xfaces.c (choose_face_fontset): If new fontset cannot be
9572 constructed, or fontset name cannot be split, return the id of the
9573 standard fontset.
9574
9575 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
9576 When Emacs starts, it may be called for the initial frame which
9577 isn't an X frame.
9578
9579 * dispextern.h (struct face): New members foreground_defaulted_p,
9580 background_defaulted_p.
9581 (struct face): Members `mask' and `cache' removed.
9582
9583 * xfaces.c (load_color): Set them.
9584 (free_face_colors): Check them.
9585 (xlfd_point_size): Return -1 if resolution or point size of
9586 font unknown.
9587
9588 * xfaces.c (free_font): Removed.
9589 (load_face_font_or_fontset): Renamed from load_font.
9590 (load_face_font_or_fontset): Use message2 instead of signalling.
9591 (load_color): Likewise.
9592 (load_pixmap): Likewise.
9593
9594 * xterm.h (struct x_display_info): Add screen_dpi.
9595 * xterm.c (x_term_init): Initialize it.
9596 * xfaces.c (xlfd_point_size): Use it.
9597 (split_font_name): Compute numeric XLFD_RESY.
9598 (cmp_font_names): Make fonts with an y-resolution more
9599 similar to that of the frame appear first in the result.
9600
9601 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
9602 is set for the face to cache, add it to the end of the collision
9603 list.
9604 (try_font_list): If fonts for given family and registry cannot
9605 be found, first try to keep the registry, and choose a different
9606 family.
9607 (choose_face_font): Allow nfonts == 0.
9608 (try_font_list): Give up if no font matches given registry.
9609
96101998-04-22 Gerd Moellmann <gerd@gnu.org>
9611
9612 * xterm.c (x_get_char_font_and_encoding): Get font_info from
9613 font info id of the face.
9614
9615 * xfaces.c (load_font): Set font_info_id.
9616 (realize_face): Ditto.
9617
9618 * dispextern.h (struct face): Change member font_info to
9619 font_info_id.
9620
9621 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
9622 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
9623
9624 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
9625 isn't ASCII, get the ASCII face before adding a space.
9626 (append_space): Likewise.
9627 (insert_left_trunc_glyphs): Initialize truncate_it's charset
9628 to -1 so that it will compute the right face for the truncation
9629 glyphs.
9630
9631 * xfaces.c (realize_face): Set
9632 face->fontset_chosen_for_realization_p.
9633 (lookup_face_for_charset): If fontset wasn't specified originally
9634 and new charset != CHARSET_COMPOSITION, get a new face for that
9635 charset.
9636
9637 * dispextern.h (struct face): New member
9638 fontset_chosen_for_realization_p_specified_p. Set to 1 when
9639 realize_face has chosen a fontset to display composite characters
9640 for a Lisp face not specifying a fontset.
9641
9642 * xdisp.c (extend_face_to_end_of_line): Move tests for default
9643 face and line already filled here. Don't do anything if current
9644 face hasn't a relief or has a background equal to the frame
9645 background.
9646
9647 * xfaces.c (split_font_name): Additional parameter numeric_p.
9648 Don't compute numeric values if it is non-zero.
9649 (choose_face_fontset): Call split_font_name with numeric_p == 0.
9650 (choose_face_fontset): Print a message if fontset contains a
9651 font whose name cannot be split into fields.
9652
96531998-04-21 Gerd Moellmann <gerd@gnu.org>
9654
9655 * xfaces.c (try_font_list): Try to load a list of fonts,
9656 possibly using less restrictive patterns.
9657 (choose_face_font): Use it.
9658
9659 * xterm.c (x_get_char_font_and_encoding): For charset !=
9660 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
9661
9662 * dispextern.h (struct face): New member font_info.
9663
9664 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
9665 specifying a fontset as well as those not having a fontset.
9666 (free_font): Make it empty.
9667 (realize_face): Use changed load_font.
9668
9669 * xterm.c (x_get_char_font_and_encoding): If face doesn't
9670 fit for charset, get the right one.
9671
9672 * xfaces.c (load_font): Take frame and name parameter, return
9673 font.
9674 (free_font): Likewise.
9675 (split_font_name): Compute numeric values for height, swidth etc.
9676 (cmp_font_names): Use them.
9677 (find_best_width_font): Ditto.
9678 (find_best_height_font): Ditto.
9679 (find_best_weight_font): Ditto.
9680 (find_best_slant_font): Ditto.
9681 (lface_hash): Add weight, slant, swidth and relief to hash value.
9682 (lface_equal_p): Make it faster.
9683 (lface_from_symbol): Use assq_no_quit.
9684 (Fnote_default_face_changed): Removed.
9685 (cmp_font_names): Use strcmp instead of xstricmp.
9686 (face_charset_registries): Removed.
9687
96881998-04-20 Gerd Moellmann <gerd@gnu.org>
9689
9690 * frame.h (CHECK_FRAME): Give this macro a statement form.
9691 (CHECK_LIVE_FRAME): Ditto.
9692
9693 * xfaces.c (find_best_width_font): Find the best matching font
9694 for a given width.
9695 (find_best_height_font): Likewise for height.
9696 (find_best_weight_font): Likewise for weight.
9697 (find_best_slant_font): Likewise for slant.
9698 (choose_face_font): Use them.
9699 (get_lface_attributes): Always return frame-local face attrs.
9700 (Finternal_merge_in_global_face): Merge local face with
9701 global face attributes.
9702
9703 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
9704 Lisp face attributes.
9705
97061998-04-19 Gerd Moellmann <gerd@gnu.org>
9707
9708 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
9709 and :italic for compatibility.
9710 (Finternal_set_lisp_face_attribute_from_resource): Handle
9711 :bold and :italic. Handle boolean resource values for
9712 :underline and :italic.
9713
9714 * xfns.c (display_x_get_resource): Make it externally visible.
9715
9716 * xfaces.c (lface_from_symbol): Take a frame as parameter.
9717 If that frame is non-null, return the frame-local face.
9718 (Finternal_make_lisp_face): Additional frame argument.
9719 (lface_attributes): Get face attributes from global and frame-local
9720 definitions.
9721 (Finternal_lisp_face_equal_p): Additional frame argument.
9722 (merge_lisp_face_vector_with_property): Ditto.
9723 (Frealize_basic_faces): Removed.
9724 (Finternal_get_lisp_face_attribute): Additional frame argument.
9725 (Finternal_lisp_face_p): Ditto.
9726 (load_color) [MSDOS]: Removed because it isn't clear how
9727 to do this for MS-DOS.
9728
9729 * xfaces.c (lface_from_symbol): Get global face definition
9730 from face-global-alist.
9731
9732 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
9733 as values for :underline and :inverse-video.
9734 (Finternal_set_lisp_face_attribute): Allow nil values.
9735
97361998-04-17 Gerd Moellmann <gerd@gnu.org>
9737
9738 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
9739
9740 * xfaces.c (syms_of_xfaces): Add Vall_faces.
9741 (Finternal_make_lisp_face): Add new face to Vall_faces.
9742
9743 * xdisp.c (echo_area_display): Remove code recomputing faces.
9744 (redisplay_internal): Ditto.
9745 (init_iterator): Do it here.
9746
9747 * xfaces.c (choose_face_font): Check that swidth doesn't change
9748 for subusequent attributes.
9749 (xlfd_point_size): Return int.
9750
9751 * xdisp.c (redisplay_internal, echo_area-display): If realized
9752 faces have been cleared, call recompute_basic_faces.
9753
9754 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
9755 face_attributes_changed_p.
9756 (remove_all_realized_faces): Remove all realized faces on
9757 all frames.
9758 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
9759
9760 * xdisp.c (redisplay_internal): If face attributes have been
9761 changed since the last redisplay, recompute basic faces.
9762 (echo_area_display): Ditto.
9763
9764 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
9765
9766 * xfaces.c (min_char_bounds): If face cache not yet present,
9767 don't try to get font dimensions from faces.
9768
9769 * xterm.c (x_frame_mode_line_height): If face cache not present
9770 set, return default height.
9771
9772 * alloc.c (mark_face_cache): Check for null faces. Correct
9773 index bug.
9774
9775 * dispextern.h (struct face): Renamed from struct rface. Member
9776 underline renamed underline_p. Make it a bit-field.
9777
9778 * xfaces.c (init_frame_faces): Allocate face cache.
9779 (free_frame_faces): Free face cache.
9780 (recompute_basic_faces): Realize basic faces only if face cache is
9781 allocated, i.e. after init_frame_faces has been called.
9782
9783 * frame.c (make_frame): Initialze face cache with null.
9784
9785 * xfaces.c (same_size_fonts): Removed.
9786
9787 * xterm.c (x_set_glyph_string_gc): Add post-condition
9788 s->gc != 0.
9789 (x_set_mouse_face_gc): Ditto.
9790 (x_set_mode_line_face_gc): Ditto.
9791
9792 * xfaces.c (realize_default_face): Return int. Value is
9793 zero if frame params don't contain enough information to
9794 realize the default face.
9795 (realize_basic_faces): Ditto.
9796 (init_frame_faces): Realize basic faces.
9797
9798 * xfns.c (x_set_font): First store real font name in frame
9799 parameters, then call recompute_basic_faces.
9800
9801 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
9802
98031998-04-16 Gerd Moellmann <gerd@gnu.org>
9804
9805 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
9806
9807 * xfns.c (Fx_face_fixed_p): Removed.
9808 (Fx_list_fonts): Moved to xfaces.c.
9809
9810 * xfaces.c (compute_face_at_buffer_pos): Renamed to
9811 face_at_buffer_position. Parameter charset removed; always
9812 compute face for CHARSET_ASCII.
9813 (face_at_string_position): Renamed from
9814 compute_face_at_string_pos. Parameter charset removed; always
9815 compute for CHARSET_ASCII.
9816 (lookup_face_for_charset): Take frame parameter instead of
9817 face_cache.
9818 (lookup_face): Ditto.
9819 (compute_char_face): Renamed from compute_glyph_face.
9820
9821 * xdisp.c (init_iterator): Initialize charset member.
9822 (reseat_iterator_to_string): Ditto.
9823 (get_charset_at_buffer_position): Determine charset at
9824 buffer position in current_buffer.
9825 (reseat_iterator): Call above function.
9826 (compute_face_at_iterator_position): Call
9827 compute_face_at_buffer_pos.
9828 (compute_face_at_iterator_string_position): Call
9829 compute_face_at_string_pos.
9830 (get_face_from_id): Removed.
9831 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
9832 Call get_charset_at_buffer_position.
9833 (reseat_iterator): Determine face if charset at pos differs
9834 from iterator's charset.
9835 (reseat_iterator_to_glyph_pos): Removed.
9836
9837 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
9838 Determine charset from buffer position.
9839 (compute_string_char_face): Renamed to compute_face_at_string_pos.
9840 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
9841
9842 * dispextern.h (struct display_iterator): Add member charset.
9843
98441998-04-15 Gerd Moellmann <gerd@gnu.org>
9845
9846 * xfaces.c (compute_char_face): Removed.
9847
9848 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
9849 with new parameter list.
9850
9851 * xfaces.c (region_face): Removed.
9852 (allocate_face): Removed.
9853 (copy_face): Ditto.
9854 (face_eql): Removed.
9855 (intern_face): Removed.
9856 (clear_face_cache): Removed.
9857 (load_font): Ditto.
9858 (unload_font): Ditto.
9859 (load_color): Ditto.
9860 (unload_color): Ditto.
9861 (new_computed_face): Ditto.
9862 (intern_computed_face): Ditto.
9863 (ensure_face_ready): Ditto.
9864 (merge_faces): Ditto.
9865 (compute_base_face): Ditto.
9866 (merge_face_list): Ditto.
9867 (Fmake_face_internal): Removed.
9868 (Fset_face_attribute_internal): Ditto.
9869 (face_name_id_number): Removed.
9870 (Fframe_face_alist): Ditto.
9871 (Fset_frame_face_alist): Ditto.
9872 (Finternal_next_face_id): Ditto.
9873
9874 * xterm.h (struct x_output): Remove computed_faces, and
9875 param_faces. Remove macros accessing them.
9876
9877 * xfaces.c: Entirely new face implementation added.
9878
98791998-04-11 Gerd Moellmann <gerd@gnu.org>
9880
9881 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
9882 `charpos'.
9883
98841998-04-10 Gerd Moellmann <gerd@gnu.org>
9885
9886 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
9887 scroll bar window to reduce flickering. Clear entire height.
9888
9889 * xdisp.c (move_iterator_vertically_backward): Set iterator's
9890 current_x and hpos to zero after moving to previous line
9891 start.
9892
98931998-04-03 Gerd Moellmann <gerd@gnu.org>
9894
9895 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
9896
9897 * xfaces.c (xlfd_point_size): Compute relative point size of
9898 fonts from font and frame resolution.
9899 (sort_fonts): New function to sort fonts, temporarily setting
9900 font_frame to the frame in effect.
9901 (xlfd_point_size): Take additional frame parameter to be able
9902 to get at the display's resolution.
9903
9904 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
9905 BLACK_PIX_DEFAULT.
9906 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
9907 screen of display.
9908
99091998-03-31 Gerd Moellmann <gerd@gnu.org>
9910
9911 * xfaces.c (choose_face_fontset): Instantiate fontsets.
9912
9913 * fontset.h: Add external declarations for Vfontset_alias_alist
9914 and Vglobal_fontset_alist.
9915
9916 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
9917 (realize_default_face): If frame parameters contain an artificial
9918 font name naming a fontset, set the family of the default face to
9919 the fontset name given by the registry.
9920
9921 * Makefile.in (alloc.o): Add dependency to dispextern.h.
9922
99231998-03-22 Gerd Moellmann <gerd@gnu.org>
9924
9925 * alloc.c (mark_object): Add function prototype. Add cast to
9926 Lisp_Object pointer in call to mark_object for symbol names
9927 because this otherwise gives a warning from gcc 2.8.1.
9928 (mark_face_cache): Mark Lisp objects in realized faces.
9929
99301998-03-19 Gerd Moellmann <gerd@gnu.org>
9931
9932 * frame.h (struct frame): Add member face_cache.
9933
9934 * alloc.c (mark_object): Mark face cache.
9935 (mark_face_cache): Mark Lisp faces in face cache of frame.
9936
9937 * frame.c (make_frame): Initialize face_cache.
9938 (Fdelete_frame): Free it.
9939
99401998-03-18 Gerd Moellmann <gerd@gnu.org>
9941
9942 * xfaces.c: Very first skeleton of functions for face realization,
9943 face merging, face cache etc.
9944
9945 * dispextern.h (struct rface): Realized faces. Will replace
9946 struct face when tested.
9947 (struct face_cache): Realized face caches.
9948
9949 * xdisp.c (init_iterator): Initialize area member of display
9950 iterator.
9951
99521998-03-17 Gerd Moellmann <gerd@gnu.org>
9953
9954 * xterm.c (x_append_glyph): Use it->area to store glyphs.
9955
9956 * dispextern.h (struct display_iterator): New member area.
9957
9958 * xterm.c (note_overwritten_text_cursor): Note when the text
9959 cursor of a window is overwritten.
9960
9961 * xdisp.c (set_cursor_from_row): If PT is not found in the
9962 row, display the cursor at the start of the row.
9963
9964 * dispnew.c (direct_output_forward_char): Call
9965 set_cursor_from_row.
9966
9967 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
9968 position is not in an overlay string, set iterator's position and
9969 method explicitly so.
9970 (set_cursor_from_row): Correct cursor position calculation.
9971 Make it externally visible.
9972 (redisplay_window): Call set_cursor_from_row so that there is only
9973 one place where the cursor position is calculated from a current
9974 row.
9975
9976 * dispextern.h (struct display_iterator): New member
9977 overlay_strings_at_end_processed_p.
9978
9979 * xdisp.c (check_iterator): Perform sanity checks on
9980 display_iterators.
9981 (next_element_from_buffer): Check for overlay strings at ZV.
9982
99831998-03-16 Gerd Moellmann <gerd@gnu.org>
9984
9985 * buffer.c (init_buffer_once): Add left_margin_width and
9986 right_margin_width to buffer_local_flags.
9987
9988 * dispnew.c (margin_glyphs_to_reserve): Function computing
9989 number of glyphs to reserve for a marginal area.
9990 (adjust_glyph_matrix): Call it.
9991 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
9992 is not alive.
9993
9994 * window.c (Fset_window_margins): Allow floats.
9995
9996 * buffer.c (syms_of_buffer): Add buffer-local variables
9997 left-margin-width and right-margin-width. Add defaults
9998 default-left-margin-width and default-right-margin-width.
9999
10000 * buffer.h (struct buffer): New members left_margin_width
10001 and right_margin_width.
10002
10003 * window.c (Fset_window_margins): Make window the last and
10004 optional argument.
10005
10006 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
10007 flag no_marginal_areas_p differently.
10008 (x_clear_end_of_line): Ditto.
10009 (x_draw_glyph_string_relief): Compute width of relief differently
10010 for rows with flag no_marginal_areas_p.
10011
10012 * dispnew.c (update_window_line): Update marginal areas only
10013 for rows that don't have no_marginal_areas_p set.
10014
10015 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
10016 (display_menu_bar): Ditto.
10017
10018 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
10019
10020 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
10021 marginal areas in window-based redisplay.
10022
10023 * dispextern.h (struct glyph_matrix): New members
10024 left_margin_glyphs and right_margin_glyphs.
10025
100261998-03-15 Gerd Moellmann <gerd@gnu.org>
10027
10028 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
10029
10030 * charset.c (non_ascii_char_to_string): Use char type parameters
10031 because the function is used that way from outside. Use unsigned
10032 char internally.
10033
10034 * window.c (change_window_height): Return void.
10035 (make_dummy_parent): Return void.
10036 (init_window_once): Return void.
10037 (syms_of_window): Ditto.
10038 (keys_of_window): Ditto.
10039 (delete_window): Correct return with and without value.
10040
10041 * buffer.c (record_buffer): Return void.
10042
10043 * marker.c (unchain_marker): Return void.
10044
10045 * window.c (unshow_buffer): Return void.
10046 (replace_window): Ditto.
10047 (delete_window): Ditto.
10048
10049 * term.c (delete_glyphs_hook): Void return type.
10050 (ring_bell_hook): Ditto.
10051 (set_terminal_window_hook): Ditto.
10052
10053 * sysdep.c (init_sigio): Return void.
10054
10055 * xterm.c (x_set_window_size): Return void.
10056 (x_calc_absolute_position): Ditto.
10057 (x_set_offset): Ditto.
10058 (x_focus_on_frame): Ditto.
10059 (x_unfocus_frame): Ditto.
10060 (x_make_frame_visible): Ditto.
10061 (x_make_frame_invisible): Ditto.
10062 (x_iconify_frame): Ditto.
10063 (x_destroy_window): Ditto.
10064 (x_wm_set_window_state): Ditto.
10065 (x_wm_set_icon_pixmap): Ditto.
10066 (x_wm_set_icon_position): Ditto.
10067 (x_initialize): Ditto.
10068 (x_error_quitter): Ditto.
10069 (x_destroy_window): Use xfree instead of free.
10070
10071 * keyboard.c (clear_waiting_for_input): Return void.
10072
10073 * xterm.c (x_wm_set_size_hint): Return void.
10074 (x_raise_frame): Ditto.
10075 (refreshicon): Ditto.
10076 (x_error_catcher): Ditto.
10077 (x_clear_errors): Ditto.
10078
10079 * keyboard.c (record_asynch_buffer_change): Return void.
10080
10081