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