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