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