(frame-set-background-mode): If a tty frame defines a
[bpt/emacs.git] / src / ChangeLog
CommitLineData
a42943e9
GM
12000-10-18 Gerd Moellmann <gerd@gnu.org>
2
e50517d9
GM
3 * strftime.c: Sync with glibc, file version 1.78.
4 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
5 should no longer be used according to ISO 8601.
6
9035a35a
GM
7 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
8 no map for meta_prefix_char, don't try to use it as a keymap.
9 Instead, if T_OK is non-zero, look up a default binding, if any,
10 otherwise, if T_OK is zero, return nil.
11
a42943e9
GM
12 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
13 (x_to_xcolors, png_load): Use x_query_color.
14
15 * xterm.c (x_color_cells, x_query_colors, x_query_color): New
16 functions.
17 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
18 which can be slow.
19 (x_copy_color, x_alloc_lighter_color): Likewise.
20
21 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
22 (x_query_color, x_query_colors): Add prototype.
23
24 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
25 check_string_bytes only if not noninteractive, increase count to 50.
26
00de2987
MB
272000-10-18 Miles Bader <miles@lsi.nec.co.jp>
28
29 * insdel.c (adjust_markers_for_delete): Handle before-insertion
30 markers correctly.
31
54918e2b
GM
322000-10-17 Gerd Moellmann <gerd@gnu.org>
33
1f0b3fd2
GM
34 * alloc.c (pure_bytes_used): Renamed from pureptr.
35 (ALIGN): New macro.
36 (pure_alloc): New function.
37 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
38 Use it.
39 (Fpurecopy): Use PURE_POINTER_P.
40
68c5d1db
GM
41 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
42 PT has moved backward.
43
9a038881
GM
44 * xdisp.c (cursor_row_p): Take continued lines into account.
45
361b097f
GM
46 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
47 string's size_byte.
48 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
49 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
50 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
51 string allocated.
52
54918e2b
GM
53 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
54 of selective display off while searching for the next line start.
55
03ed0806
KH
562000-10-17 Kenichi Handa <handa@etl.go.jp>
57
58 * Makefile.in (term.o): Depend on dispextern.h.
59
7e05cdaf
SM
602000-10-16 Stefan Monnier <monnier@cs.yale.edu>
61
62 * keymap.c (keymap_memberp): Ensure that nil is not a member.
63
a6801fd1
GM
642000-10-16 Gerd Moellmann <gerd@gnu.org>
65
483de32b
GM
66 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
67 the iterator at the beginning, so that they can be set later on,
68 for instance in reseat_at_next_visible_line_start, without being
69 overwritten.
70
a6801fd1
GM
71 * xfns.c (pbm_format): Add :foreground and :background keywords.
72 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
483de32b 73 (xbm_load): Recognize foreground and background color
a6801fd1
GM
74 specifications.
75
dbf1fcc1
EZ
762000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
77
78 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
79
80 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern
81 declaration.
82
83 * msdos.c (IT_set_face): Compare highlighted face with the default
84 face, and invert colors if these faces' colors are identical.
85 (Fmsdos_remember_default_colors): Don't swap foreground and
86 background colors in initial_colors[].
87 (IT_set_frame_parameters): Don't swap frame's foreground and
88 background pixels. If ALIST includes "(reverse . t)", swap
89 foreground-color and background-color properties in frame's
90 param_alist. If the original frame's param_alist doesn't specify
91 the colors, store unspecified-fg and unspecified-bg, reversed if
92 required.
93
94 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
95 the colors are unspecified and reversed, reverse fore- and back-
96 ground in the returned value.
97 (Fframe_parameter): Ditto.
98
b41fe2c3
GM
992000-10-16 Gerd Moellmann <gerd@gnu.org>
100
3a6b59d9
GM
101 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
102 get_last_unchanged_at_beg_row.
103 (find_first_unchanged_at_end_row): Renamed from
104 get_first_unchanged_at_end_row.
105 (find_first_unchanged_at_end_row): Convert assertions to
106 unconditional tests which abort. When looking for a row in
107 unchanged text, don't go further back than first_text_row.
108
b41fe2c3
GM
109 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
110 Don't add in the last line's height when deciding if the new
111 position is below the scroll margin.
9d1af64f 112
b41fe2c3 1132000-10-16 Miles Bader <miles@gnu.org>
f657bbf6
MB
114
115 * editfns.c (Fconstrain_to_field): Check carefully for field
116 boundaries if either OLD_POS or NEW_POS has a non-nil field
117 property, even if they're the same.
118
c412cb7b
KH
1192000-10-16 Kenichi Handa <handa@etl.go.jp>
120
121 * xterm.c (x_draw_box_rect): Fix the calculation of width and
122 height for XFillRectangle.
123
5586f3eb
SM
1242000-10-15 Stefan Monnier <monnier@cs.yale.edu>
125
126 * syntax.c (Fstring_to_syntax): New function extracted from
127 Fmodify_syntax_entry.
128 (Fmodify_syntax_entry): Use it and document the ! and | fences.
129 (skip_chars, Fforward_comment): Remove unused variables.
130 (syms_of_syntax): Add defsubr for string-to-syntax.
131 (describe_syntax): Add code for comment and string fences.
132
db785038
SM
1332000-10-14 Stefan Monnier <monnier@cs.yale.edu>
134
135 * keymap.c (access_keymap): Add AUTOLOAD parameter.
136 Do the meta->esc mapping. Call get_keyelt before returning.
137 Start scanning from the second element (the first is always `keymap')
138 to make it easier to detect when we reach a parent map.
139 Handle the case of inheriting from a symbol whose function is a map.
140 (Fkeymap_parent): Also handle the `inherit from symbol' case.
141 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
142 (get_keyelt, Flookup_key): Update call to access_keymap.
143 Remove the meta->esc mappings.
144 (define_as_prefix): Delete old disabled code.
145 (menu_item_p): New function.
146 (where_is_internal_1): Skip over the few remaining menu items.
147 * lisp.h (access_keymap): Update prototype.
148 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
149 Update call to access_keymap.
150 (follow_key, read_key_sequence): Update calls to access_keymap.
151 Remove the meta->esc mappings.
152
cafafe0b
GM
1532000-10-13 Gerd Moellmann <gerd@gnu.org>
154
a2e2a7f6
GM
155 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
156 with additional argument.
157
cafafe0b
GM
158 * xdisp.c (cursor_row_p): New function.
159 (try_cursor_movement, display_line): Use it.
160
161 * xdisp.c (append_space): Also save/restore iterator's current
162 character and its length.
163
164 * xdisp.c (init_from_display_pos): Add an assertion.
165 (handle_stop): Don't set iterator's add_overlay_start.
166 (handle_invisible_prop): Likewise.
167 (load_overlay_strings): If text under an overlay is invisible,
168 take both before- and after-strings into account when the iterator
169 is positioned either at the start or at the end of the overlay.
170 (forward_to_next_line_start): Rewritten.
171 (reseat_at_next_visible_line_start): Rewritten.
172 (set_iterator_to_next): Add parameter RESEAT_P.
173
174 * dispextern.h (struct it): Remove member add_overlay_start.
175 (set_iterator_to_next): Change prototype.
176
c744452b
KH
1772000-10-13 Kenichi Handa <handa@etl.go.jp>
178
179 * coding.c (code_convert_region): Be sure to initialize
180 coding->category_idx.
e4a3f4e1
KH
181 (decode_coding_string): Set coding->src_multibyte and
182 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
183 (encode_coding_string): Set coding->src_multibyte and
184 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
c744452b 185
321fd26f
SM
1862000-10-12 Stefan Monnier <monnier@cs.yale.edu>
187
188 * xfns.c (Fx_create_frame): Don't bother calling
189 face-set-after-frame-default since the caller does it for us anyway.
190
76832439
EZ
1912000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
192
193 * window.c (coordinates_in_window): Fix detection of vertical line
194 on character terminals.
195
2483cf58
GM
1962000-10-12 Gerd Moellmann <gerd@gnu.org>
197
198 * editfns.c (save_excursion_save): Additionally record the
199 selected window.
200 (save_excursion_restore): If buffer was visible in a window, and a
201 different window was selected, and the old selected window is
202 still live, restore point in that window.
203
eb991b25
KH
2042000-10-12 Kenichi Handa <handa@etl.go.jp>
205
8a0eba09
KH
206 * xterm.c (x_produce_glyphs): Handle
207 unibyte_display_via_language_environment correctly.
208
20401fcc
KH
209 * regex.c (regex_compile): Change the way of handling a range from
210 unibyte char to multibyte char.
211
212 * syntax.c (skip_chars): Change the way of handling a range from
213 unibyte char to multibyte char.
214
eb991b25
KH
215 * process.c (read_process_output): Cancel previous change.
216
365dd325
EZ
2172000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
218
c1b096cb
EZ
219 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
220
365dd325
EZ
221 * charset.c (Ffind_charset_string): Doc fix.
222 (Ffind_charset_region): Doc fix.
223
eb483c2b
KH
2242000-10-11 Kenichi Handa <handa@mule.m17n.org>
225
226 * process.c (read_process_output): Fix previous change. Adjust
227 multibyteness of text to insert in a buffer by
df3c11b9 228 string_make_unibyte/multibyte instead of
eb483c2b
KH
229 Fstring_as_unibyte/multibyte.
230
b40bfb99
AS
2312000-10-10 Andreas Schwab <schwab@suse.de>
232
233 * alloc.c (mark_object): Remove all workarounds installed on
234 1993-08-08.
235
caff31d4
KH
2362000-10-10 Kenichi Handa <handa@etl.go.jp>
237
238 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before
239 returning.
240 (base64_encode_1): Make it work for a text of multibyte form.
241 (Fbase64_decode_region): Allocate sufficient memory for multibyte
242 case. Don't call str_to_multibyte because base64_decode_1
243 produces correct multibyte form for eight-bit codes.
244 (Fbase64_decode_string): Adjusted for the change of
245 base64_decode_1.
246 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
247 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
248 codes.
249
250 * charset.h (CHAR_STRING): Optimized for single byte characters.
251
cba026ef
AS
2522000-10-09 Andreas Schwab <schwab@suse.de>
253
254 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
255 -1 after socket is closed, to fall through to error processing.
256
1e21fe48
EZ
2572000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
258
259 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
365dd325 260 variables. If ALIST includes foreground-color or
1e21fe48
EZ
261 background-color, change also the colors of the default face for
262 this frame.
263
a640322e
EZ
2642000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
265
266 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
267 them extern (they are defined on xfaces.c).
268 (syms_of_msdos): Don't intern and don't staticpro
269 Qbackground_color and Qforeground_color.
270
a115794c
EZ
2712000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
272
273 * frame.c (Fframe_parameter): For non-windowed frames, if
274 f->param_alist says foreground or background color is unspecified,
275 call tty_color_name to return the color name computed from the
276 frame's current colors.
277
f5533b63
DL
2782000-10-06 Dave Love <fx@gnu.org>
279
280 * terminfo.c (ospeed): Don't declare.
281
282 * sysdep.c: Don't include string.h.
283 (h_errno): Declare conditional also on TRY_AGAIN.
284
285 * charset.c (Ffind_charset_string): Doc fix.
286
287 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
288 (Fbase64_decode_region, Fbase64_decode_string): More explicit
289 error messages.
290
2b06561a
DL
2912000-10-05 Dave Love <fx@gnu.org>
292
293 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
294 position like menu-bar.
295
ca839c85
GM
2962000-10-05 Gerd Moellmann <gerd@gnu.org>
297
298 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
299
300 * xdisp.c (handle_single_display_prop): Use safe_call1.
301 (safe_call): Renamed from call_function.
302 (safe_call1): New function.
303 (handle_fontified_prop): Use safe_call1 instead of call1.
304 (safe_eval): Renamed from eval_form.
305 (safe_eval_handler): Renamed from eval_handler.
306 (handle_single_display_prop, display_mode_element): Use safe_eval
307 instead of eval_form.
308
309 * xfaces.c (merge_face_heights): Use safe_call instead of
310 call_function.
311
312 * keyboard.c (show_help_echo): Use safe_call instead of
313 call_function; use safe_eval instead of eval_form.
314
315 * lisp.h (safe_call): Renamed from call_function.
316 (safe_eval): Renamed from eval_form.
317 (safe_call1): Add prototype.
318
a3489ece
MB
3192000-10-05 Miles Bader <miles@lsi.nec.co.jp>
320
321 * xfns.c (image_ascent): Rearrange ascent calculation for the
322 has-a-font case.
323
35810b6f
SM
3242000-10-04 Stefan Monnier <monnier@cs.yale.edu>
325
326 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
327 (where_is_internal_1): Don't bother ignoring menu-items any more.
328
3dc78168
GM
3292000-10-04 Gerd Moellmann <gerd@gnu.org>
330
331 * keyboard.c (update_menu_bindings): New variable.
332 (parse_menu_item): Use AREF. If update_menu_bindings
333 is 0, don't update menu bindings.
334 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
335
1efc2bb9
EZ
3362000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
337
338 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
339 to `mark_object'.
340
3f679f55
SM
3412000-10-02 Stefan Monnier <monnier@cs.yale.edu>
342
343 * syntax.c (forw_comment): Match nestedness of ender/starter.
344 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
345 (prev_char_comstart_first): Remove.
346 (back_comment): Check two-char comment markers more carefully
347 to better handle overlapping cases like *//* or /* */* */ ...
348 Match nestedness of ender/starter.
349
2021ab61
DL
3502000-10-02 Dave Love <fx@gnu.org>
351
352 * config.in (HAVE_GAI_STRERROR): Add undef.
353
354 * process.c (Fopen_network_stream): Use it.
355
356 * m/alpha.h (NO_REMAP): Don't define.
357
64e6cc18
GM
3582000-10-02 Gerd Moellmann <gerd@gnu.org>
359
360 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
361 return with a string converted to an integer or vice versa when
362 Vmocklisp_arguments is t.
363 (Fsignal): Likewise. The function can return for `quit'.
364 (struct gcpro): Declare member `var' to point to a volatile
365 Lisp_Object.
366
367 * eval.c (error): Prevent compiler warning.
368
b1904cd9
SM
3692000-09-30 Stefan Monnier <monnier@cs.yale.edu>
370
371 * keymap.c (keymap_memberp): New function.
372 (Fset_keymap_parent): Use it.
373 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
374 Use keymap_memberp to avoid creating cycles.
375 (access_keymap): Use KEYMAPP.
376
71c9ec51
GM
3772000-09-30 Gerd Moellmann <gerd@gnu.org>
378
379 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
64e6cc18
GM
380 gai_strerror. Make sure xerrno is set if connect fails. Improve
381 error recovery.
71c9ec51 382
c70c6b58
JR
3832000-09-29 Jason Rumney <jasonr@gnu.org>
384
385 * w32term.c (w32_char_font_type, w32_encode_char)
386 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
387 (w32_bdf_per_char_metric): New function.
388 (w32_per_char_metric): Use it.
389 (x_draw_glyph_string_background): Always draw background for BDF
390 glyphs.
391
392 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
393 GDI object which is a scarce resource.
394
395 * w32bdf.c (search_file_line): Fix skipping of whitespace.
396 (get_quoted_string): Fix limit on memchr search.
397 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
398 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
399 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
400 (get_cached_font_char, cache_char_offset): Use macro
401 BDF_CODEPOINT_RANGE_COVER_P.
402 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
403 (clear_cached_bitmap_slots): New function.
404 (GET_HEX_VALUE): G-Z, g-z are not hex.
405 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
406 (get_bitmap_with_cache): Use new cache implementation.
407 (create_offscreen_bitmap): New function.
408 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
409
410 * w32term.c (x_produce_glyphs): If the distance from the current
411 position to the next tab stop is less than a canonical character
412 width, use the tab stop after that.
413 (x_draw_glyphs): Handle case START and END are out of bounds more
414 carefully.
415 (x_clear_mouse_face): Block/unblock input.
416 (x_display_and_set_cursor): Don't show a hollow box cursor for
417 buffers whose cursor_type is nil.
418
fe01239f
GM
4192000-09-29 Gerd Moellmann <gerd@gnu.org>
420
421 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar
422 disappears.
423
424 * dispextern.h (updating_frame): Declare extern.
425
e7c52f1f
AS
4262000-09-29 Andreas Schwab <schwab@suse.de>
427
428 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
429
de6e1f7c
GM
4302000-09-29 Gerd Moellmann <gerd@gnu.org>
431
25126faa
GM
432 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
433 use its function definition.
434 (tool_bar_items): Likewise.
435
de6e1f7c
GM
436 * lisp.h (fatal): Declare NO_RETURN.
437
454ee39b
KH
4382000-09-29 Kenichi Handa <handa@etl.go.jp>
439
440 * keymap.c: Remove the line "#undef NULL".
441
96301c5f
GM
4422000-09-28 Gerd Moellmann <gerd@gnu.org>
443
444 * xterm.c (x_make_frame_visible): Try harder to make the frame
445 visible.
446
efffeeb4
DL
4472000-09-28 Dave Love <fx@gnu.org>
448
ecb8b666
DL
449 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
450
dc3cd20f
DL
451 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
452
453 * .gdbinit (xreload): Note its need on GNU/Linux.
454
efffeeb4
DL
455 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
456 r_alloc, r_alloc_free.
457
8610d903
KH
4582000-09-28 Kenichi Handa <handa@etl.go.jp>
459
460 * syntax.c (skip_chars): Handle negation correctly.
461
8901d1ac
GM
4622000-09-27 Gerd Moellmann <gerd@gnu.org>
463
6f22f1ad
GM
464 * xfaces.c (realize_default_face): Call set_lface_from_font_name
465 with non-zero FORCE_P argument.
466
8901d1ac
GM
467 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
468 Add assertions.
469
470 * xdisp.c (window_box_height): Add an assertion.
471
472 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
473 tool-bar than is available.
474 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
475
36f1966f
DL
4762000-09-27 Dave Love <fx@gnu.org>
477
efffeeb4 478 * s/irix6-5.h: Now works 64-bit. Tidied.
36f1966f 479
31d929e5
GM
4802000-09-26 Gerd Moellmann <gerd@gnu.org>
481
c98863bf
GM
482 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
483 instead of BITS_PER_INT.
484 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
485 EMACS_UINT, respectively.
486 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
487
488 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
489
490 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
491
77072ab1
GM
492 * window.c (freeze_window_starts): Construct last argument for
493 foreach_window differently.
494
495 * xfns.c (x_decode_color): Don't return a Lisp_Object.
496
497 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
498 EMACS_UINT instead of `int' and `unsigned int'.
499 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
500
501 * frame.h (struct frame): Make the `nothing' member of union
502 output_data an EMACS_INT.
503
31d929e5
GM
504 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug
505 hunting.
506 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
507 size in the sdata structure.
508 (SDATA_NBYTES, SDATA_DATA): New macros.
509 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
510 differently for the different layout of the sdata structure.
511 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
512 in sdata.
513 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
514 Check that size recorded in the string size and size recorded in
515 the sdata structure agree.
516
3e60b029
DL
5172000-09-25 Dave Love <fx@gnu.org>
518
519 * buffer.c: Include stdio.h.
520
521 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
522
523 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
524
525 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
526 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as
527 size_t.
528 (__malloc_extra_blocks): Declare as __malloc_size_t.
529
8ff16b4e
GM
5302000-09-25 Gerd Moellmann <gerd@gnu.org>
531
755a2ccd
GM
532 * alloc.c (mark_image): Use GC_NILP instead of NILP.
533
d8b4516f
GM
534 * keyboard.c (show_help_echo): Set help_echo_showing_p.
535 (read_char): If help-echo is showing, preserve the echo area
536 when redisplaying.
537
538 * xdisp.c (help_echo_showing_p): New variable.
539 (set_message): Reset it to 0.
540 (init_xdisp): Initialize help_echo_showing_p.
541
542 * dispextern.h (help_echo_showing_p): Declare extern.
543
544 * config.in: Fix typo in __GNUC_MINOR__.
545
546 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
547
b11af2dd
GM
548 * s/freebsd.h (POSIX_SIGNALS): Define.
549
8ff16b4e
GM
550 * xterm.c (x_clear_mouse_face): Block/unblock input.
551
844eb643
DL
5522000-09-24 Dave Love <fx@gnu.org>
553
554 * fns.c (base64_encode_1): Fix last change.
555
b30ab1b3
GM
5562000-09-22 Gerd Moellmann <gerd@gnu.org>
557
558 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
559
560 * xdisp.c (try_window_reusing_current_matrix): More fixes
561 for the case window has a header-line.
562
c6cbe5f0
DL
5632000-09-22 Dave Love <fx@gnu.org>
564
4c7c1f3f
DL
565 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
566 a doc string.
567
568 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
569
c6cbe5f0
DL
570 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
571
550a625e
GM
5722000-09-21 Gerd Moellmann <gerd@gnu.org>
573
4c7c1f3f 574 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
fca99116
GM
575 for GCC >= 2.5.
576
577 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error): Declare
578 NO_RETURN.
579
80d26f99
GM
580 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
581 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
582 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
583 warnings.
584
585 * marker.c (byte_char_debug_check): Return void.
586
623a0aae
GM
587 * xfns.c (Fx_create_frame): Set default frame parameter value
588 for tool-bar-lines to 1.
589
590 * dispnew.c (scrolling_window): Compare y-positions of rows
591 equal at the start. Some simplification.
592
593 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
594 reused rows' y-position in the case window has a header-line, and
595 new window start is greater than old window start.
596
42ac0ae5
GM
597 * process.c (process_sent_to): New variable.
598 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
599 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
600 Declare more parameters volatile.
601
550a625e
GM
602 * lread.c (Vrecursive_load_depth_limit): New variable.
603 (Fload): Check recursive loads whose recursion depth exceeds
604 Vrecursive_load_depth_limit.
605 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
606
8320414c
GM
6072000-09-20 Gerd Moellmann <gerd@gnu.org>
608
f46c275e
GM
609 * fileio.c (Fread_file_name): Doc fix.
610
611 * editfns.c (Fmessage_or_box): Doc fix.
612
613 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
614
b7e11c5b
GM
615 * xfns.c (xbm_scan): Allow C-style comments.
616
8320414c
GM
617 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
618 symbols are specified, add color translations to the cache.
619 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New
620 functions.
621 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
622 xpm_cache_color.
623 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
624 structures to xpm_init_color_cache.
625
da1608d9
GM
6262000-09-19 Gerd Moellmann <gerd@gnu.org>
627
628 * dispnew.c (update_window_line): Make sure to always draw
629 mode-lines.
630
6badfa25
AI
6312000-09-19 Andrew Innes <andrewi@gnu.org>
632
633 * makefile.nt (bootstrap-emacs): Don't change directory.
634
3a5f42bb
KH
6352000-09-19 Kenichi Handa <handa@etl.go.jp>
636
1b7649bd
KH
637 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
638
3a5f42bb
KH
639 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
640 If output buffer is too small, signal an appropriated error.
641
9f83cf0b
DL
6422000-09-18 Dave Love <fx@gnu.org>
643
644 * keyboard.c (menu_bar_items, tool_bar_items)
645 (current_active_maps): Remove redundant get_local_map call.
646
28c7826c
GM
6472000-09-18 Gerd Moellmann <gerd@gnu.org>
648
5cefa566
GM
649 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
650 cursor for buffers whose cursor_type is nil.
651
6fed3546
GM
652 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
653 a feature to implement that is already implemented.
654 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
655 warnings.
656
657 * xfns.c (x_clear_image_1): New function.
658 (x_clear_image): Use it.
659 (x_from_xcolors): Use x_clear_image_1; don't free the image's
660 mask.
661
05b1f851
GM
662 * dispnew.c (update_window): Move test for invisible lines
663 at the top to update_window_line.
664 (update_window_line): Handle invisible lines here.
665
f4779de9
GM
666 * xfns.c (clear_image_cache): Clear current matrices of all
667 frames sharing an image cache. Block input while freeing
668 images. Fix timestamp comparison.
669 (x_clear_image): Also free the mask.
670
28c7826c
GM
671 * xfns.c (lookup_image): Block input while loading the image so
672 that we won't get interrupted in a state where the image isn't yet
673 set up completely.
674 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
675 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
676 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
677 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock
678 input.
679
b7412313
GM
6802000-09-16 Gerd Moellmann <gerd@gnu.org>
681
682 * dispnew.c (update_window): Make sure to make desired rows
683 current even if they are completely invisible at the top
684 of a window.
685
47e351a3
GM
6862000-09-15 Gerd Moellmann <gerd@gnu.org>
687
7f8f1edc
GM
688 * xfns.c (lookup_image): Build mask before applying an algorithm.
689 Recognize algorithm `disabled'.
690 (cross_disabled_images): New variable.
691 (COLOR_INTENSITY): New macro.
692 (x_detect_edges): Use COLOR_INTENSITY.
693 (x_disable_image): New function.
694 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
695
696 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
697 disabled state, don't apply an image transformation algorithm if
698 the user specified an image for the disabled state. Use
28c7826c 699 `:algorithm disabled' for creating a disabled item's image if the
7f8f1edc
GM
700 user hasn't specified an image.
701
ebb8f116
GM
702 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
703 allocation functions with the XPM lib.
704 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
705 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
706 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
707 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
708 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New
709 functions.
710 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
711 functions, if possible, because these handle color allocation
712 failure more gracefully.
713 (Fimage_mask_p): New function.
714
47e351a3
GM
715 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
716 (Qedge_detection, Qheuristic): New symbols.
717 (syms_of_xfns): Initialize new symbols.
718 (lookup_image): Handle `:mask X', `:algorithm emboss', and
719 `algorithm (edge-detection ...)'.
720 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
721 (tiff_format, gif_format, gs_format): Add `:mask'.
722 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
723 (GIF_MASK, GS_MASK): New enumerators.
724 (x_laplace_read_row, x_laplace_write_row): Functions removed.
725 (emboss_matrix, laplace_matrix): New variables.
726 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
727 (x_edge_detection): New functions.
728 (x_laplace): Rewritten in terms of x_detect_edges.
729 (x_build_heuristic_mask): If image has a mask, free it.
730
fe83b953
AI
7312000-09-14 Andrew Innes <andrewi@gnu.org>
732
733 * makefile.w32-in: Revert to Unix line endings.
734
3021e816
AI
7352000-09-14 Andrew Innes <andrewi@gnu.org>
736
737 * makefile.w32-in: Standardize indentation somewhat.
738 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
739 cater for differences between shells.
740
741 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
742
2a32b5ea
GM
7432000-09-14 Gerd Moellmann <gerd@gnu.org>
744
745 * xterm.c (x_produce_glyphs): If the distance from the current
746 position to the next tab stop is less than a canonical character
747 width, use the tab stop after that.
748
b4331e96
DL
7492000-09-14 Dave Love <fx@gnu.org>
750
751 * buffer.c (alloc_buffer_text): Fix xmalloc call.
752
ef9e4345
GM
7532000-09-14 Gerd Moellmann <gerd@gnu.org>
754
085536c2
GM
755 * xdisp.c (handle_fontified_prop): While running fontification
756 functions, bind `fontification-functions' and
757 `after-change-functions' to nil.
758
ef9e4345
GM
759 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
760 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
761
762 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
763
764 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
765 USE_MMAP_FOR_BUFFERS.
766
767 * insdel.c (make_gap): Use enlarge_buffer_text.
768
769 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
770 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
771 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
772 from former r_alloc_* functions in ralloc.c.
773 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New
774 variables.
775 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
776 (mmap_init) [REL_ALLOC_MMAP]: New function.
777 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
778 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
779 BUFFER_FREE.
780
781 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
782 (enlarge_buffer_text): Add prototype.
783
784 * ralloc.c: Remove everything having to do with the use of mmap.
785
f8608968
GM
7862000-09-13 Gerd Moellmann <gerd@gnu.org>
787
2a494b2d
GM
788 * sound.c (Fplay_sound): Doc fix.
789
8c907a56
GM
790 * keyboard.c: Avoid some more compiler warnings.
791 (parse_tool_bar_item): Ignore cached key bindings.
792
f8608968
GM
793 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
794 and allocation of Lisp data.
795
6ab70e9a
GM
7962000-09-12 Gerd Moellmann <gerd@gnu.org>
797
d12d0a9b
GM
798 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
799 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
800 defaults first.
801
6ab70e9a
GM
802 * lread.c (Fload): Put code checking for recursive loads in #if 0.
803
63c36c3c
KH
8042000-09-12 Miyashita Hisashi <himi@meadowy.org>
805
806 * ccl.c: Comment fixed.
807 (MAX_MAP_SET_LEVEL): Increased to 30.
808 (PUSH_MAPPING_STACK): Enclose with do-while block.
809 (POP_MAPPING_STACK): Likewise.
810 (stack_idx_of_map_multiple): New variable.
811 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
812 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
813 call the corresponding CCL program by
814 CCL_CALL_FOR_MAP_INSTRUCTION.
815 (ccl_driver) <CCL_MapSingle>: Likewise.
816 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
817 with the case where looking up process reaches to the end of
818 map-set, and call CCL programs as the above change.
819
7ee3bd7b
GM
8202000-09-11 Gerd Moellmann <gerd@gnu.org>
821
8ec8a5ec
GM
822 * xfns.c (png_load, jpeg_load): Declare some variables volatile
823 that might be clobbered by longjmp.
824 (check_x_display_info, x_decode_color, create_frame_xic)
825 (Fx_display_backing_store, Fx_display_visual_class)
826 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler
827 warnings.
828
f74b0705
GM
829 * lread.c (init_lread): Set Vloads_in_progress to nil.
830 (Fload): Show list of recursively loaded files, when signaling an
831 error.
832
7ee3bd7b
GM
833 * lread.c (Vloads_in_progress): New variable.
834 (record_load_unwind): New function.
835 (Fload): Check for recursive loads.
836 (syms_of_lread): Initialize Vloads_in_progress.
837 (read_integer, read1): Avoid some compiler warnings.
838
839 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
840 compiler warnings.
841
974e1e5b
MB
8422000-09-11 Miles Bader <miles@gnu.org>
843
844 * editfns.c (Fbuffer_string): Doc fix.
845
9824c4e3
GM
8462000-09-10 Gerd Moellmann <gerd@gnu.org>
847
848 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
849
6a72fdd1
KR
8502000-09-09 Ken Raeburn <raeburn@gnu.org>
851
852 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
853 whether to include other header files.
854
28e6fb66
GM
8552000-09-09 Gerd Moellmann <gerd@gnu.org>
856
857 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
9824c4e3 858 by Fmemq as a boolean.
28e6fb66 859
7f8b6551
SM
8602000-09-08 Stefan Monnier <monnier@cs.yale.edu>
861
862 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
863
a8710abf
GM
8642000-09-08 Gerd Moellmann <gerd@gnu.org>
865
d1a02881
GM
866 * ralloc.c (mmap_fd): Remove initializer which can make it
867 read-only in a dumped Emacs.
868 (mmap_fd_1): New variable.
869 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
870 restore it from there.
871 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
872 unconditionally so that mmap_fd can be initialized there.
873 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
874 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
875 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
876
c454aac1
GM
877 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
878
879 * xdisp.c (dump_glyph_row): Fix printf format string.
880 (display_line, move_it_in_display_line_to): Avoid compiler
881 warnings.
882
fc653ef2
GM
883 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
884
3015eec0
GM
885 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
886 inheritance.
887
bfe0ee88
GM
888 * xdisp.c (try_window_id): When trying to locate cursor in
889 unchanged rows at the top, handle the case that we can't find it.
890
a8710abf
GM
891 * xterm.c (x_draw_glyphs): Handle case START and END are out
892 of bounds more carefully.
893
6b7d4ae4
DL
8942000-09-08 Dave Love <fx@gnu.org>
895
423193c5
DL
896 * s/sol2.h (REL_ALLOC_MMAP): Define.
897 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
898
899 * ralloc.c: Don't include string.h (redundant).
900 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
901 [!MAP_ANON]: Include fcntl.h.
902 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
903 (r_alloc, r_re_alloc, r_alloc_free)
904 (mmap_enlarge, mmap_set_vars): Use it.
905 (r_alloc_init_fd): New function.
906 (__morecore) [SYSTEM_MALLOC]: Don't declare.
907 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
908 malloc type.
909
910 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
911 Remove vm-limit.o.
912
6b7d4ae4
DL
913 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
914 change to __NetBSD__.
915
44d31981
KH
9162000-09-08 Kenichi Handa <handa@etl.go.jp>
917
918 * search.c (compile_pattern): Check the multibyteness of cached
919 string and PATTERN.
920
aad40737
MB
9212000-09-08 Miles Bader <miles@gnu.org>
922
923 * xfaces.c (default_face_vector): Function removed.
924 (Finternal_merge_in_global_face): Restore old global/local
925 attribute override order. Use inline loop instead of calling
926 default_face_vector.
927
91a211b5
GM
9282000-09-07 Gerd Moellmann <gerd@gnu.org>
929
930 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
931 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
932 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
933 where necessary, in case POINTER_TYPE is `void'.
934
03419440
EZ
9352000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
936
937 * frame.c (make_terminal_frame): Initialize frame foreground and
938 background colors to unspecified, for the initial instance of an
939 MSDOS frame.
940
f46f845b
GM
9412000-09-07 Gerd Moellmann <gerd@gnu.org>
942
24f76fbf
GM
943 * ralloc.c (mmap_find): Fix overlap computation.
944 (mmap_enlarge): Compute nbytes before trying to find an
945 overlapping region.
946
f46f845b
GM
947 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
948 instead of `!='.
949
950 * lread.c (syms_of_lread): Change value of regexp
951 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
952
953 * xmenu.c (xdialog_show): When looking up the selection in
954 menu_items, take `quote' boundaries into account; this corresponds
955 to a nil ITEM in x-popup-dialog.
956
3c014385
KH
9572000-09-07 Kenichi Handa <handa@etl.go.jp>
958
fd6f711b
KH
959 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
960 not 0x81.
961 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
962
3c014385 963 * coding.c (encode_coding_sjis_big5): Use translation table for
ed254191
KH
964 encoding, not decoding. Fix the handling of latin-jisx0201.
965 Check for the charset katakana-jisx0201 too.
3c014385 966 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
f46f845b 967 (detect_coding_sjis): Check the byte sequence more rigidly.
3c014385 968
0da3ecef
GM
9692000-09-07 Gerd Moellmann <gerd@gnu.org>
970
ab0ee409
GM
971 * xfaces.c (Vparam_value_alist): New variable.
972 (syms_of_xfaces): Initialize it.
973 (Finternal_set_lisp_face_attribute): Avoid more consing.
974
975 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
976 specially.
977 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
978 (Qbackground_mode): New variable.
979 (syms_of_frame_1): Initialize Qbackground_mode.
980
981 * lisp.h (Qdisplay): Declare extern.
1091dd67 982
0da3ecef
GM
983 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
984 change face on all frames, and change the default for new frames.
985
b14654b9
DL
9862000-09-07 Dave Love <fx@gnu.org>
987
988 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
989
d24fd56f
KH
9902000-09-07 Kenichi Handa <handa@etl.go.jp>
991
794f3670
KH
992 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
993
0fddd0dc
KH
994 * charset.c: Include composite.h
995 (lisp_string_width): New function.
996 (Fstring_width): Call lisp_string_width instead of strwidth.
997
998 * Makefile.in (charset.o): Depends on composite.h.
999
d24fd56f
KH
1000 * process.c (read_process_output): Before inserting the decoded
1001 text in the buffer, adjust the multibyteness.
1002
fa0b693c
GM
10032000-09-06 Gerd Moellmann <gerd@gnu.org>
1004
73b77ee5
GM
1005 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
1006 buffer's text buffer is null, map new memory.
1007
0a58f946
GM
1008 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
1009 POINTER_TYPE and size_t.
1010 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
1011 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
1012 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
1013 [REL_ALLOC_MMAP]: New macros.
1014 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
1015 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
1016 [REL_ALLOC_MMAP]: New functions.
1017
1018 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
1019 before and after unexec.
1020
1021 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
1022 text buffers if necessary.
1023
1024 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
1025 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
1026 in prototypes.
1027
fa0b693c
GM
1028 * config.in (HAVE_MMAP): Add #undef.
1029
877055f6
GM
10302000-09-05 Gerd Moellmann <gerd@gnu.org>
1031
08ba3862
GM
1032 * frame.c (Qdisplay_type): New variable.
1033 (syms_of_frame_1): Initialize it.
1034 (Fframe_parameter): New function that avoids consing.
1035 (syms_of_frame): Defsubr it.
1036
66ffe51c
GM
1037 * buffer.c (Fother_buffer): Consider buffers as invisible when
1038 they are displayed in a window on an invisible frame.
1039
877055f6
GM
1040 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
1041 get-largest-window always return nil.
1042
bb970e67
GM
10432000-09-04 Gerd Moellmann <gerd@gnu.org>
1044
1045 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
1046 variable; recognize Emacs 19 elc files.
1047
7a3d0e0e
MB
10482000-09-04 Miles Bader <miles@gnu.org>
1049
1050 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
1051 before initially popping up the menu, so the menu doesn't flash
1052 when the face settings are significantly different from the
1053 defaults.
1054
14473664
SM
10552000-09-04 Stefan Monnier <monnier@cs.yale.edu>
1056
1057 * regex.c (WIDE_CHAR_SUPPORT): New macro.
1058 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
1059 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
1060 (BIT_UNIBYTE): Remove.
1061 (re_match_2_internal): Delete corresponding code and streamline the
1062 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
1063 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
1064 (re_wctype_t): New type.
1065 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
1066 (regex_compile): Use them and fix handling of overly long char classes.
1067
c1174479
AI
10682000-09-03 Andrew Innes <andrewi@gnu.org>
1069
f8803e97
AI
1070 * makefile.w32-in: Change to DOS line endings.
1071
c1174479
AI
1072 * s/ms-w32.h (ORDINARY_LINK): New define.
1073
1074 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
1075 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
1076
1077 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
1078 (distclean): Delete them here instead.
1079
44ef7cf6
AI
1080 * w32proc.c (compare_env): Convert to uppercase for comparison,
1081 not lowercase, to match how the native Windows shell works.
1082
49b3bd82
JR
10832000-09-03 Jason Rumney <jasonr@gnu.org>
1084
1085 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
1086 CVS changes the line-ends when checking in/out on DOS/Windows.
1087
1088 * makefile.nt (emacs): Do not change directory to run temacs, as
1089 the load-path is set relative to current directory.
1090
a3d35a39
MB
10912000-09-03 Miles Bader <miles@gnu.org>
1092
1093 * xterm.c (x_alloc_lighter_color_for_widget): New function.
1094
d276b0cf
GM
10952000-09-02 Gerd Moellmann <gerd@gnu.org>
1096
715e84c9
GM
1097 * xdisp.c (redisplay_mode_lines): New function.
1098 (display_mode_lines): Return number of mode lines displayed.
1099 (echo_area_display): Use redisplay_mode_lines to draw garbaged
1100 mode lines. Don't temporarily bind redisplay-dont-pause to t.
1101
8892f40b
GM
1102 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
1103 string.h and strings.h.
1104 (index) [HAVE_INDEX]: Add prototype.
1105
d276b0cf
GM
1106 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
1107 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
1108
1109 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
1110 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
1111
38404229
GM
11122000-09-01 Gerd Moellmann <gerd@gnu.org>
1113
1114 * lread.c (read1): Accept `?' as symbol constituent, for
1115 compatiblity with XEmacs.
1116
c0f9ea08
SM
11172000-08-31 Stefan Monnier <monnier@cs.yale.edu>
1118
1119 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
1120 (struct re_pattern_buffer): Remove newline_anchor.
1121 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
1122 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
1123 (re_max_failures, fail_stack): Use size_t rather than unsigned.
1124 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
1125 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
1126 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
1127 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
1128 Get rid of references to newline_anchor.
1129 (regcomp): Allocate and precompute a fastmap.
1130
8c0f83fe
GM
11312000-08-31 Gerd Moellmann <gerd@gnu.org>
1132
1133 * lread.c (openp): GCPRO local variable `filename'.
1134
4bb91c68
SM
11352000-08-30 Stefan Monnier <monnier@cs.yale.edu>
1136
1137 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
1138
1139 * regex.c: Merge some changes from GNU libc. Add prototypes.
1140 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
1141 Use memcmp and memcpy instead of bcopy and bcmp.
1142 (init_syntax_once): Use ISALNUM.
1143 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
1144 (REG_UNSET_VALUE): Remove. Use NULL instead.
1145 (REG_UNSET, re_match_2_internal): Use NULL.
1146 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
1147 New macros.
1148 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
1149 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
1150 (regex_compile): In handle_interval, return an error rather than try to
1151 unfetch the interval if we can't find the closing brace.
1152 Obey the RE_NO_GNU_OPS syntax bit.
1153 (TOLOWER): New macro.
1154 (regcomp): Use it.
1155 (regexec): Allocate regs.start and regs.end as one block.
1156
5226a931
GM
11572000-08-30 Gerd Moellmann <gerd@gnu.org>
1158
868dd24b
GM
1159 * xdisp.c (echo_area_display): Check display_completed instead
1160 of calling detect_input_pending.
1161
1162 * dispnew.c (update_frame): Only set display_completed here; move
1163 the update_begin and update_end calls here from update_frame_1.
1164 (update_frame_1): Don't set display_completed here, don't call
1165 update_begin/update_end.
1166
5226a931
GM
1167 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
1168 instead of store_frame_param.
1169
2a8bd25f
GM
11702000-08-29 Gerd Moellmann <gerd@gnu.org>
1171
1172 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
1173 desired window matrix hasn't been displayed, use the current row
1174 instead. Make sure that only those frame rows are updated for
1175 which there exists a corresponding enabled desired row.
1176
ba3478d9
MB
11772000-08-29 Miles Bader <miles@gnu.org>
1178
1179 * xfaces.c (default_face_vector): New function.
1180 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
1181
87d0f685
GM
11822000-08-29 Gerd Moellmann <gerd@gnu.org>
1183
1184 * lread.c (openp): Prevent temporary string passed to
1185 Ffile_readable_p from being garbage collected.
1186
6fa86045
DL
11872000-08-28 Dave Love <fx@gnu.org>
1188
1189 * keymap.c (store_in_keymap): Add `static' to declaration.
1190
bb17930d
GM
11912000-08-28 Gerd Moellmann <gerd@gnu.org>
1192
1193 * emacs.c, callint.c, doc.c, editfns.c
1194 (toplevel) [HAVE_STRING_H]: Include string.h.
1195 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
1196 (index): Remove prototypes which might conflict with non-standard
1197 definitions of index/strchr.
1198
1199 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
1200 (rindex): Define only if !HAVE_RINDEX.
1201
1202 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
1203
1204 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
1205
87188200
MB
12062000-08-28 Miles Bader <miles@gnu.org>
1207
1208 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
1209 made inconsistent by a font-related attribute in FROM.
1210 (merge_face_inheritance): Add function comment.
1211
41a68aef
KH
12122000-08-28 Kenichi Handa <handa@etl.go.jp>
1213
1214 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
1215 the 4th arg (PREV_EVENT) Qt to suppress input method.
1216
f7c436c1
SM
12172000-08-27 Stefan Monnier <monnier@cs.yale.edu>
1218
0b32bf0e
SM
1219 * regex.c: Indent cpp directives and remove parens after `defined'.
1220 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
1221 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
1222 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
1223 (re_compile_pattern): Use size_t for length.
1224 (init_syntax_once): Move to a better place.
1225 * regex.h: Merge changes from GNU libc. Indent cpp directives.
1226 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
1227
f7c436c1
SM
1228 * syntax.c (back_comment): Detect cases where a comment-starter is
1229 actually inside another comment as in: /* a // b */ c // d \n.
1230 Make it clear that `comstart_pos' is unused for nested comments.
1231
1232 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
1233 (KEYMAPP): New macro.
1234 (Fkeymap_parent, Fset_keymap_parent): Use it.
1235 (fix_submap_inheritance): Mark it static.
1236 (define_as_prefix, describe_buffer_bindings, describe_command)
1237 (describe_translation, describe_map): Complete prototypes.
1238
1239 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
1240
1241 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
1242 to better match the key-lookup behavior.
1243
6288c62f
GM
12442000-08-27 Gerd Moellmann <gerd@gnu.org>
1245
1246 * xfaces.c (lface_fully_specified_p): Handle :inherit.
1247 (Finternal_set_lisp_face_attribute): Fix typo in error message.
1248
e931344e
EZ
12492000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
1250
1251 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
1252 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
1253 (xterm.o): Depend on coding.h
1254
d10dfeef
KH
12552000-08-26 Kenichi Handa <handa@etl.go.jp>
1256
1257 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
1258 the corresponding '#endif'.
1259
2d73e8d3
MB
12602000-08-26 Miles Bader <miles@gnu.org>
1261
1262 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
1263 * xfaces.c (QCinherit): New variable.
1264 (syms_of_xfaces): Initialize it.
1265 (LFACE_INHERIT): New macro.
1266 (Finternal_get_lisp_face_attribute)
1267 (merge_face_vector_with_property)
1268 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
1269 (check_lface_attrs): Allow new types of face height. Check
1270 inherit attribute.
1271 (CYCLE_CHECK): New macro.
1272 (merge_face_inheritance): New function.
1273 (merge_face_vectors): Merge inherited faces too. Add F and
1274 CYCLE_CHECK arguments.
1275 (merge_face_vector_with_property, Finternal_merge_in_global_face)
1276 (lookup_named_face, lookup_derived_face, realize_named_face)
1277 (face_at_string_position, face_at_buffer_position): Supply
1278 new F and CYCLE_CHECK arguments to merge_face_vectors.
1279 (merge_face_heights): New function.
1280 (merge_face_vectors, merge_face_vector_with_property)
1281 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
1282 handle relative face heights.
1283 (lface_same_font_attributes_p): Compare heights using EQ.
1284
6ce974d4
KH
12852000-08-26 Kenichi Handa <handa@etl.go.jp>
1286
1287 * charset.c (char_to_string): Check the character validity.
1288 (char_valid_p): If C is not less than MAX_CHAR, be sure to return
1289 0.
1290
dc1e502d
SM
12912000-08-25 Stefan Monnier <monnier@cs.yale.edu>
1292
1293 * regex.c (PUSH_FAILURE_COUNT): New macro.
1294 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
1295 Handle popping of a register's or a counter's data.
1296 (POP_FAILURE_POINT): Use the new name.
1297 (re_match_2_internal): Push counter data on the stack for succeed_n,
1298 jump_n and set_number_at and remove misleading dead code in succeed_n.
1299
bd9d0f3f
GM
13002000-08-25 Gerd Moellmann <gerd@gnu.org>
1301
1302 * xdisp.c (redisplay_internal): If considering all windows on all
1303 frames, update the display for each frame as soon as possible,
1304 instead of first building all desired matrices for all frames, and
1305 then updating them all.
1306 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
1307
aa5b8e15
GM
13082000-08-24 Gerd Moellmann <gerd@gnu.org>
1309
17494071
GM
1310 * bytecode.c (mark_byte_stack): Add a comment.
1311
aa5b8e15
GM
1312 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
1313 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
1314 a graphical frame.
1315
c543db81
KH
13162000-08-24 Kenichi Handa <handa@etl.go.jp>
1317
d246d5f5
KH
1318 * minibuf.c (do_completion): Always use compare-string, not
1319 string-equal because the latter doesn't pay attention to
1320 multibyteness of strings.
1321
c543db81
KH
1322 * process.c (create_process): Don't setup raw-text coding here.
1323 (Fopen_network_stream): Don't set coding->src_multibyte and
1324 coding->dst_multibyte here.
1325 (read_process_output): For process filter, return unibyte string
1326 if default-enable-multibyte-characters is nil.
1327 (send_process): If OBJECT is multibyte text, be sure to encoded it
1328 by the specified coding system for the process. Otherwise, setup
1329 raw-text coding.
1330 (init_process): Don't initialize default-process-coding-system
1331 here.
1332
9b47cfe0
EZ
13332000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
1334
1335 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
1336 <scroll-down-aggressively>: Likewise.
1337
f5a36960
KH
13382000-08-23 Kenichi Handa <handa@etl.go.jp>
1339
1340 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
1341 zero. Set coding->produced_char correctly.
1342
69a7ffa7
AI
13432000-08-22 Andrew Innes <andrewi@gnu.org>
1344
1345 * makefile.w32-in: New file.
1346
1347 * unexw32.c (unexec): Ignore old_name, and use the actual location
1348 of the current executable instead. Base new_name on this.
1349
1350 * w32proc.c (create_child): Remove reference to security
1351 descriptor, which isn't needed and doesn't compile with mingw32.
1352
1353 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
1354 up dllimport attributes.
1355 (x_update_window_end): Update prototype.
1356
1357 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
1358 extern, which screws up dllimport attributes.
1359
1360 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
1361 up dllimport attributes.
1362
1363 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
1364 screws up dllimport attributes.
1365
1366 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
1367 up dllimport attributes.
1368 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
1369 screws up dllimport attributes.
1370
1371 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
1372 up dllimport attributes.
1373
1374 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
1375 screws up dllimport attributes.
1376
1377 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
1378 screws up dllimport attributes.
1379
1380 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
1381 up dllimport attributes.
1382
1383 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
1384 unnecessary extern, which screws up dllimport attributes.
1385 (main): Ditto.
1386
1387 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
1388 up dllimport attributes.
1389
1390 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
1391 unnecessary extern, which screws up dllimport attributes.
1392
1393 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
1394 screws up dllimport attributes.
1395
1396 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
1397 up dllimport attributes.
1398
1399 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
1400
1401 * w32bdf.c (search_file_line):
1402 (set_bdf_font_info):
1403 (seek_char):
1404 (w32_get_bdf_glyph):
1405 (w32_BDF_to_x_font): Fix compile warnings.
1406
1407 * w32menu.c: Include keyboard.h before frame.h. Fix compile
1408 warnings.
1409
1410 * w32select.c: Include keyboard.h before frame.h.
1411
1412 * w32fns.c (max): Define macro.
1413 (JOHAB_CHARSET): Define if not known.
1414 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
1415 (Fx_show_tip): Synch with X version.
1416
1417 * w32xfns.c: Include keyboard.h before frame.h.
1418
1419 * w32fns.c: Include keyboard.h before frame.h.
1420
1421 * w32term.c: Include keyboard.h before frame.h.
1422
1423 * fontset.c: Include keyboard.h before frame.h.
1424
1425 * w32inevt.c: Include keyboard.h before frame.h.
1426 (MOUSE_MOVED): Define if not known.
1427
1428 * minibuf.c: Include keyboard.h before frame.h.
1429
1430 * keyboard.c: Include keyboard.h before frame.h.
1431
1432 * indent.c: Include keyboard.h before frame.h.
1433
1434 * dispnew.c: Include keyboard.h before frame.h.
1435
1436 * buffer.c: Include keyboard.h before frame.h.
1437
1438 * alloc.c: Include keyboard.h before frame.h.
1439
1440 * print.c: Include keyboard.h before frame.h.
1441
1442 * process.c: Include keyboard.h before frame.h.
1443
1444 * scroll.c: Include keyboard.h before frame.h.
1445
1446 * sysdep.c: Include keyboard.h before frame.h.
1447
1448 * term.c: Include keyboard.h before frame.h.
1449
1450 * window.c: Include keyboard.h before frame.h.
1451
1452 * xdisp.c: Include keyboard.h before frame.h.
1453 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
1454
1455 * frame.c: Include keyboard.h before frame.h.
1456
1457 * w32heap.h: Undefine min, max.
1458
1459 * w32gui.h: Undefine min, max.
1460
1461 * unexw32.c: Change PUCHAR to PCHAR.
1462 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
1463 (relocate_offset):
1464 (get_section_info):
1465 (copy_executable_and_dump_data): Remove unnecessary static defs.
1466 (copy_executable_and_dump_data): Fix compile warnings.
1467
1468 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
1469
1470 * w32console.c (min): Define macro.
1471 (clear_frame, write_glyphs): Fix compile warning.
1472
1473 * w32proc.c (compare_env):
1474 (find_child_console): Fix compile warning.
1475
1476 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
1477 sys_errlist instead of _sys_errlist.
1478 (get_emacs_configuration_options): New function.
1479
1480 * s/ms-w32.h (sys_nerr): Provide default definition.
1481 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
1482 name with _ prepended.
1483 (NSIG): Define if not known.
1484 (get_emacs_configuration): Provide extern declaration.
1485 (get_emacs_configuration_options): Provide extern declaration.
1486 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
1487
1488 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
1489 (map_w32_filename):
1490 (read_unc_volume): Fix compile warning.
1491
1492 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
1493 definitions from being used.
1494
1495 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
1496
1497 * w32.c (unc_volume_file_attributes):
1498 (open_unc_volume): Make arg const.
1499
1500 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
1501 (read_input_waiting): Remove excess parameter.
1502
1503 * w32.c (init_environment): Call _access.
1504 (check_windows_init_file): Call _close.
1505 (init_user_info): Call _putenv.
1506 (init_environment): Call _putenv and _strdup.
1507 (init_ntproc): Reset volume info cache on startup.
1508
1509 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
1510 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
1511 cannot override the CRT malloc.
1512
1513 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
1514 (LINK_FLAGS): Append to original value of LINK_FLAGS.
1515
1516 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
1517 unless we are linking with a static CRT.
1518 (RVA_TO_PTR): Cast result to unsigned char*.
1519
1520 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
1521 (add_volume_info): Use xstrdup.
1522
25060080
SM
15232000-08-22 Stefan Monnier <monnier@cs.yale.edu>
1524
1525 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
1526 (do_completion, Fminibuffer_complete_word): Use it.
1527 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
1528 var so it can take non-boolean values.
1529
6917e6bb
GM
15302000-08-21 Gerd Moellmann <gerd@gnu.org>
1531
acb7cc89
GM
1532 * editfns.c (find_field): Formatting changes.
1533 (toplevel): Some old-style function forward declarations
1534 changed to prototypes, some new protypes added, some functions
1535 made static.
1536
1537 * lisp.h (set_time_zone_rule): Add prototype.
1538 (use_dialog_box): External declaration.
1539
0bbfdc25
GM
1540 * keyboard.c (gen_help_event): Add parameter SIZE.
1541 (kbd_buffer_events_waiting): Slightly rewritten.
1542 (clear_event): New function.
1543 (kbd_buffer_get_event): Use it, and clear the input_events of
1544 HELP_EVENTs.
1545 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
1546 don't fill the newly created array with nils.
1547 (toplevel): Convert some old-style function forward declarations
1548 to prototypes.
1549
1550 * keyboard.h (gen_help_event): Change prototype.
1551
1552 * xterm.c (XTread_socket): Change calls to gen_help_event.
1553
1554 * w32term.c (w32_read_socket): Change calls to gen_help_event.
1555
6917e6bb
GM
1556 * eval.c (Fmacroexpand): Doc fix.
1557
e5cd3d11
JR
15582000-08-20 Jason Rumney <jasonr@gnu.org>
1559
1560 * w32term.h (x_display_info_for_display): Remove as this function
1561 does not exist on W32.
1562
1563 * w32term.c (help_echo_window): New variable.
1564 (syms_of_w32term): staticpro it.
1565 (note_mode_line_highlight): Set it.
1566 (XTextExtents16): Removed as there is no equivalent on W32.
1567 (x_compute_glyph_string_overhangs): Incomplete body removed, as
1568 the X way of doing this will not work for W32.
1569 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
1570 (x_draw_image_foreground): Avoid drawing outside of the clip area
1571 when image doesn't have a mask.
1572 (note_mouse_highlight): Process overlays in the right order of
1573 priority. Set help_echo_window.
1574 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
1575 because that's more visible for large images.
1576
1577 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
1578 name to single_keymap_panes.
1579 (w32_menu_show): Set wv->title when dealing with titles.
1580 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
1581
6e69ab8c
MB
15822000-08-21 Miles Bader <miles@gnu.org>
1583
1584 * minibuf.c (do_completion): Try again if we rewrite the input
1585 string, but no completion was done, so that any completion message
1586 will be correct.
1587
511bd4eb
GM
15882000-08-20 Gerd Moellmann <gerd@gnu.org>
1589
1590 * xfaces.c (lface_equal_p): Compare strings differently.
1591 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
1592 (realize_tty_face): Use them.
1593 (syms_of_xfaces): Initialize new variables.
1594 (map_tty_color): New function, extracted from realize_tty_face.
1595 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
1596 foreground or background color, store the new color name in the
1597 realized face; previous code trying to do this had no effect.
1598 (realize_tty_face): Use map_tty_color.
1599 (Fclear_face_cache): Set face_change_count and ensure thorough
1600 redisplay.
1601
1433385f
GM
16022000-08-19 Gerd Moellmann <gerd@gnu.org>
1603
511bd4eb
GM
1604 * undo.c (record_first_change, record_marker_adjustment): Don't
1605 use XBUFFER on last_undo_buffer which might not be a buffer.
1433385f 1606
419ac0a2
KH
16072000-08-18 Kenichi Handa <handa@etl.go.jp>
1608
1609 * coding.c (decode_coding_string): Set members consumed,
1610 consumed_char, produced, produced_char of *coding correctly. If
1611 decode_coding doesn't consume any byte, don't try anymore.
1612 (encode_coding_string): Likewise.
1613
7eb9e30d
GM
16142000-08-18 Gerd Moellmann <gerd@gnu.org>
1615
511bd4eb
GM
1616 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
1617 conditional have void type, for Standard C compilers.
7eb9e30d
GM
1618
1619 * xdisp.c (redisplay_internal): Compare windows for equality with
1620 EQ, instead of applying XWINDOW to something that might not
1621 be a window.
1622
dd34a735
KH
16232000-08-18 Kenichi Handa <handa@etl.go.jp>
1624
1625 * fontset.c (Finternal_char_font): Search only the selected frame
1626 for a window of the current buffer.
1627
385ff9e3
GM
16282000-08-18 Gerd Moellmann <gerd@gnu.org>
1629
511bd4eb 1630 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
01cce3e7
GM
1631 Lisp_Objects.
1632
385ff9e3
GM
1633 * keyboard.c (kbd_buffer_get_event): Handle the case that the
1634 second half of a HELP_EVENT is found at the start of kbd_buffer.
1635
d6abb4c7
MB
16362000-08-18 Miles Bader <miles@gnu.org>
1637
4618074a
MB
1638 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
1639
d6abb4c7
MB
1640 * editfns.c (save_restriction_save): Rewrite to use markers.
1641 (save_restriction_restore): Rewrite to understand new form of data
1642 saved by save_restriction_save.
1643 (Fsave_restriction): Remove cautionary note in doc-string.
1644
a7b28523
GM
16452000-08-17 Gerd Moellmann <gerd@gnu.org>
1646
1647 * fileio.c (build_annotations): Add a comment explaining the
1648 return value of format-annotate-function. Replace a spurious call
1649 to Flength with a CONSP test. Call format-annotate-function with
1650 a fifth arg specifying how many times the function is been called
1651 in a row, to let it choose temporary buffers appropriately.
1652
03c9ed77
DL
16532000-08-17 Dave Love <fx@gnu.org>
1654
1655 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
1656 declare make_temp_name twice.
1657
1658 * lread.c: Prototype readevalloop, load_unwind,
1659 load_descriptor_unwind.
1660 (unreadpure): Give it an arg.
1661
1662 * unexalpha.c: Prototype fatal_unexec, mark_x,
1663 update_dynamic_symbols. Declare unexec as void.
1664
1665 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
1666 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
1667
1668 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
1669 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on
1670 DOUG_LEA_MALLOC.
1671
1672 * alloca.c: Use #error.
1673 [POINTER_TYPE]: Use it.
1674
1675 * eval.c (Fdefvar): Doc fix.
1676
1677 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
1678 INITIALIZE_INTERVAL.
1679
1680 * buffer.h: Avoid DECLARE_INTERVALS.
1681
1682 * config.in: Add size_t.
1683
aae41d97
EZ
16842000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
1685
1686 * w16select.c (set_clipboard_data): If there's not enough memory
1687 to put text into clipboard, return 1, as Fw16_set_clipboard_data
1688 expects. In case of other failures, return 3.
1689 (system_error_msg): New error message.
1690 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
1691 system_error_msg.
1692
65aa5e85
GM
16932000-08-16 Gerd Moellmann <gerd@gnu.org>
1694
1695 * term.c (write_glyphs): Also turn off inverse video after turning
1696 off other appearances in case TS_exit_attribute_mode is not equal
1697 to TS_end_standout_mode.
1698 (insert_glyphs): Turn inverse video on/off for each run of glyphs
1699 with the same face.
1700 (turn_off_face): Reset standout_mode only if
1701 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
1702 is equal to TS_end_standout_mode.
1703
ece23901
KH
17042000-08-16 Kenichi Handa <handa@etl.go.jp>
1705
9d7bcb2e
KH
1706 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
1707 sequence at the end of the source block.
1708
ece23901
KH
1709 * ccl.c (Fccl_program_p): Docstring modified.
1710 (Fccl_execute): Likewise.
1711 (Fccl_execute_on_string): Likewise.
1712
5e30eaa2
EZ
17132000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
1714
1715 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
1716
290602fd
KH
17172000-08-16 Kenichi Handa <handa@etl.go.jp>
1718
1719 The following changes are mainly to fix bugs of
1720 encode/decode-coding-string failing if encoding/decoding return
1721 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
1722 variable conversion_buffer.
1723
1724 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
1725 decrement dst_end to avoid buffer overflow in the later call of
1726 string_as_multibyte
1727
1728 * coding.h (conversion_buffer_size, conversion_buffer)
1729 (get_conversion_buffer): Extern deleted.
1730
1731 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
1732 (conversion_buffer, conversion_buffer_size): Variables deleted.
1733 (get_conversion_buffer): Function deleted.
1734 (struct conversion_buffer): New structure.
1735 (MAX_ALLOCA): New macro.
1736 (allocate_conversion_buffer): New macro.
1737 (extend_conversion_buffer, free_conversion_buffer): New functions.
1738 (ccl_coding_driver): Set coding->result.
1739 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
1740 this is the last block of source.
1741 (encode_coding): Likewise. Handle the source block as the last
1742 one only when the whole source text is consumed.
1743 (decode_coding_string): Handle the case that the output buffer is
1744 too small to decode the whole source text. Use
1745 allocate_conversion_buffer, extend_conversion_buffer and
1746 free_conversion_buffer, not get_conversion_buffer.
1747 (encode_coding_string): Likewise.
1748 (init_coding): Function deleted.
1749 (init_coding_once): Delete code to initialize
1750 conversion_buffer_size.
1751
1752 * emacs.c (main): Don't call init_coding.
1753
1754 * msdos.c (IT_write_glyphs): Use a locally declared
1755 conversion_buffer.
1756
1757 * term.c (write_glyphs): Use a locally declared conversion_buffer.
1758 (insert_glyphs): Likewise.
1759
1760 * w32console.c (write_glyphs): Use a locally declared
1761 conversion_buffer.
1762
b9f80d41
EZ
17632000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
1764
1765 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
1766 member of display_info is NULL.
1767
32dc52f7
GM
17682000-08-15 Gerd Moellmann <gerd@gnu.org>
1769
58ed0d3b
GM
1770 * alloc.c (compact_small_strings): Use safe_bcopy, add an
1771 assertion.
1772
32dc52f7 1773 * term.c (turn_off_face): Reset standout_mode when resetting
58ed0d3b 1774 appearances with capability `me'.
32dc52f7
GM
1775 (write_glyphs): Switch on inverse video before each face change.
1776
4eb22d33
DL
17772000-08-14 Dave Love <fx@gnu.org>
1778
1779 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
1780 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
1781 (lisp_free): Declare and make static.
1782
1783 * window.c: Fix embedded comment.
1784 (syms_of_window): Fix doc string.
1785
90cbf47e
GM
17862000-08-14 Gerd Moellmann <gerd@gnu.org>
1787
1788 * keymap.c (push_key_description): If C without modifiers is < 32,
1789 make sure to print `C-' before `M-', like in the manual.
1790
440fc135
GM
17912000-08-11 Gerd Moellmann <gerd@gnu.org>
1792
1793 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
1794 since they aren't relocated anymore.
1795 (sxhash_string): Make sure returned hash code fits in a Lisp
1796 integer.
1797
1798 * xdisp.c (try_cursor_movement): Fix handling of cursor in
1799 partially visible line which is smaller than the window's
1800 height.
1801
6e264fad
KH
18022000-08-11 Kenichi Handa <handa@etl.go.jp>
1803
1804 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
1805 the multibyte form of eight-bit-control characters.
1806 (Fccl_execute_on_string): Initialize ccl->multibyte.
1807
1808 * ccl.h (struct ccl_program): New member multibyte.
1809
1810 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
1811
c371f69a
KH
18122000-08-11 Kenichi Handa <handa@etl.go.jp>
1813
1814 * regex.c (regex_compile) <normal_char>: Pay attention to
1815 multibyteness.
1816 (analyse_first) <exactn>: Setup fastmap correctly for
1817 eight-bit-control characters.
1818
18192000-08-11 Kenichi Handa <handa@etl.go.jp>
1820
1821 * termhooks.h (enum event_kind): New member
1822 multibyte_char_keystroke.
1823
1824 * keyboard.c (make_lispy_event): Handle the new event type
1825 multibyte_char_keystroke.
1826
1827 * xterm.c: Include coding.h.
1828 (XTread_socket): Work around a bug of XmbLookupString. If the
1829 input is from XIM, decode it according to the current locale. In
1830 that case, generate multibyte_char_keystroke events.
1831
b8ddbe71
KH
18322000-08-11 Kenichi Handa <handa@etl.go.jp>
1833
1834 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
1835 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
1836
47589c8c
GM
18372000-08-10 Gerd Moellmann <gerd@gnu.org>
1838
1839 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
1840 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
1841 (move_it_in_display_line_to): Record iterator's ascent and descent
1842 before producing glyphs, and restore them when we know the glyph
1843 doesn't fit on the line.
1844 (move_it_to): Restructured so that it's easier to debug. If
1845 moving to a vpos, and not moving to an x or character position,
1846 stop as soon as the specified vpos is reached; don't move further
1847 into that line because that might change the computed line height.
1848 (try_cursor_movement): New function, extracted from the cursor
1849 movement branch of redisplay_window. If ending on a partially
1850 visible line, don't try to scroll if the cursor line is taller
1851 than the window.
1852 (redisplay_window): Use try_cursor_movement.
1853
1854 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
1855 because that function doesn't cope with variable-height lines.
1856
1857 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
1858 box cursor because that's better visible for large images.
1859
c51bacd6
MB
18602000-08-10 Miles Bader <miles@gnu.org>
1861
1862 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
1863
bea56df7
GM
18642000-08-10 Gerd Moellmann <gerd@gnu.org>
1865
1866 * xdisp.c (Vmessages_buffer_name): New variable.
1867 (message_dolog): Use it.
1868 (syms_of_xdisp): Initialize it.
1869
99cd7364
EZ
18702000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
1871
1872 * msdos.c (IT_note_mouse_highlight): Update the calls to
1873 overlays_at.
1874 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
1875 redundant now that keyboard.h is included.
1876
7d093d56
EZ
18772000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
1878
1879 * keyboard.c (kbd_buffer_events_waiting): New function.
1880
1881 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
1882
1883 * msdos.c: Include keyboard.h.
1884 (XMenuActivate): Empty no_event events from the event buffer. If
1885 no events are left after that, call clear_input_pending.
1886 (mouse_clear_clicks): New function, code moved from mouse_init.
1887 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
1888 mouse driver to ``forget'' any past clicks.
1889
1890 * Makefile.in (msdos.o): Depend on keyboard.h.
1891
41e757a6
GM
18922000-08-09 Gerd Moellmann <gerd@gnu.org>
1893
8e7bd231
GM
1894 * lisp.h (input_pending): External declaration.
1895
1896 * dispextern.h (Qredisplay_dont_pause): Declare extern.
1897
1898 * xdisp.c (echo_area_display): Display thoroughly if input is
1899 pending. Bind redisplay-dont-pause to t during the redisplay.
1900 in case input is pending.
1901
1902 * dispnew.c (Qredisplay_dont_pause): New variable.
1903 (syms_of_display): Initialize and staticpro it.
1904 (update_frame_1): Don't interrupt the display for pending input if
1905 redisplay_dont_pause is set.
1906
43028b7e
GM
1907 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
1908
41e757a6
GM
1909 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
1910
2f2174fa
KH
19112000-08-09 Miles Bader <miles@lsi.nec.co.jp>
1912
1913 * callproc.c (Fcall_process): Terminate the unwind-protect around
1914 the post-read-conversion of coding system.
1915
0a6fd67e
MB
1916 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
1917 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
1918 * buffer.h (overlays_at): Update prototype.
1919 * xdisp.c (next_overlay_change): Update call to overlays_at.
1920 * xfaces.c (face_at_buffer_position): Likewise.
1921 * textprop.c (Fget_char_property): Likewise.
1922 * xterm.c (note_mouse_highlight): Likewise.
1923
0c80756e
MB
1924 * minibuf.c (do_completion): Don't consider a simple change of
1925 case as `completion'.
1926
975f250a
KR
19272000-08-08 Ken Raeburn <raeburn@gnu.org>
1928
b347b3fd
KR
1929 * keyboard.c (syms_of_keyboard): Initialize
1930 last_point_position_buffer.
1931 * undo.c (record_delete): Make sure last_point_position_buffer is
1932 a buffer before comparing pointers.
1933
1934 * coding.h (decode_coding_string): Declare.
1935
1936 * intervals.h (Fprevious_single_char_property_change): Declare.
1937
1938 * textprop.c (Fprevious_single_char_property_change): Don't do
1939 arithmetic directly on lisp objects.
1940
25ad1371 1941 * editfns.c (find_field): Use EQ, not ==, to compare Lisp
b347b3fd
KR
1942 objects.
1943
1944 * keyboard.h (menu_item_eval_property): Declare.
1945
1946 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
1947 reuse as buffer name, instead of recreating (and discarding) every
1948 time a message is logged.
1949 (with_echo_area_buffer): Make callback arg A2 a lisp object.
25ad1371
GM
1950 (current_message_1, truncate_message_1, set_message_1)
1951 (display_echo_area_1, resize_mini_window_1): Signatures changed.
1952 (current_message, truncate_echo_area, display_echo_area)
1953 (resize_echo_area_axactly): Changed calls.
b347b3fd 1954
975f250a 1955 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
25ad1371 1956 Lisp object.
975f250a 1957 (Ffind_coding_systems_region_internal): First argument to Fappend
25ad1371 1958 must be an integer, not a Lisp object.
975f250a 1959
46dc9912
KH
19602000-08-08 Kenichi Handa <handa@etl.go.jp>
1961
1962 * charset.c (Fchar_width): Doc fix.
1963
9f6d1a6c
GM
19642000-08-08 Gerd Moellmann <gerd@gnu.org>
1965
1966 * charset.c (Fstring_width): Doc fix.
1967
ff3d9573
GM
19682000-08-07 Gerd Moellmann <gerd@gnu.org>
1969
41e757a6 1970 * xdisp.c (start_display): When starting display on a continuation
49ad1d99
GM
1971 line, clear ascent and descent members of the iterator structure;
1972 the height of the continued line does not affect the height of the
1973 continuation line.
1974 (make_cursor_line_fully_visible): Do nothing if cursor is on a
1975 line taller than the window.
1976 (redisplay_window) <forced window start>: Handle case that the
1977 middle of the window is not found in any row.
1978 (dump_glyph_row): Show more information.
1979 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
1980 first text line in a glyph matrix.
1981
1982 * xterm.c (x_draw_image_foreground): Avoid drawing outside
1983 of the clip area when image doesn't have a mask.
1984
70fc58b3
GM
1985 * fns.c (sweep_weak_table): Fix survival conditions for
1986 key-or-value and key-and-value weakness.
1987
1988 * .gdbinit (xhashtable): New command.
1989
ac0e96ee
GM
1990 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
1991 tables out of the list of all weak hash tables.
1992
ff3d9573
GM
1993 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
1994 a new buffer is created, make sure echo_area_buffer[] references
1995 the new buffer.
1996
e0d8827b
EZ
19972000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
1998
1999 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
2000 the doc string.
2001
c6f35378
KH
20022000-08-07 Kenichi Handa <handa@etl.go.jp>
2003
2004 * syntax.c (skip_chars): Fix previous change. Make the handling
2005 of unibyte string consistent with that of regex search.
2006
1fd4c450
GM
20072000-08-05 Gerd Moellmann <gerd@gnu.org>
2008
e49aa397
GM
2009 * xmenu.c (popup_get_selection): Use xfree instead of free.
2010
2011 * fileio.c (Finsert_file_contents): Use xfree instead of free.
2012
2013 * editfns.c (Ftranspose_regions): Use xfree instead of free.
2014
2015 * callproc.c (child_setup): Use xfree instead of free.
2016
2017 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
2018 instead of malloc.
2019 (run_mac_command, closedir): Use `xfree' instead of `free'.
2020
2021 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
2022
2023 * eval.c (error): Use xfree instead of free.
2024
1fd4c450
GM
2025 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
2026
2027 * fns.c: Replace `illegal' with `invalid'.
e49aa397 2028 (Fmake_hash_table, make_hash_table): Allow table size of 0.
1fd4c450 2029
82d497fc
KH
20302000-08-05 Kenichi Handa <handa@etl.go.jp>
2031
2032 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
2033 conversion.
2034
59f953a2
NF
20352000-08-04 Noah Friedman <friedman@splode.com>
2036
2037 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
2038 docstring.
2039
688351f2
GM
20402000-08-04 Gerd Moellmann <gerd@gnu.org>
2041
2042 * syntax.c (skip_chars): Fix typo in error message.
2043
2dad51cc
AS
20442000-08-04 Andreas Schwab <schwab@suse.de>
2045
2046 * m/ia64.h: Moved from s/ia64.h.
2047
99bb2c60
KH
20482000-08-04 Kenichi Handa <handa@etl.go.jp>
2049
082a1df2
KH
2050 * process.c (read_process_output): Big simplification. Handle
2051 composition and post-read-conversion of coding system correctly.
2052 (send_process): Handle composition correctly.
2053
2054 * callproc.c (Fcall_process): Handle post-read-conversion of
2055 coding system if any.
2056
99bb2c60
KH
2057 * coding.c (decode_coding_iso2022): More strict check for handling
2058 single shifting.
082a1df2
KH
2059 (coding_restore_composition): Pay attention to the case that
2060 cmp_data is not set properly (because of invalid code in the
2061 source text).
2062 (run_pre_post_conversion_on_str): Include text properties in the
2063 resulting string.
2064 (decode_coding_string): Set members of coding correctly.
99bb2c60 2065
f4988be7
GM
20662000-08-03 Gerd Moellmann <gerd@gnu.org>
2067
2068 * s/ia64.h: New file.
2069
2070 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
2071 Use NULL instead of 0 at the end of variable argument list of
2072 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
2073 sizeof (int) < sizeof (void *).
2074
2075 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
2076 of variable argument lists of XtVaGetValues and XtVaSetValues.
2077
2078 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
2079 variable argument lists of XtVaGetValues and XtVaSetValues.
2080
ead53494
GM
20812000-08-02 Gerd Moellmann <gerd@gnu.org>
2082
2083 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
2084 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
2085
2086 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
2087 prototype.
2088
2089 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
2090 in call to Fsingle_key_description.
2091
2092 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
2093 Callers changed.
2094
20952000-08-02 Colin Walters <walters@cis.ohio-state.edu>
2096
2097 * window.c (display_buffer_reuse_frames): New variable.
2098 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
2099 frames displaying BUFFER.
2100 (syms_of_window): Define Lisp variable
2101 display-buffer-reuse-frames.
2102
10b0f752
MB
21032000-08-01 Miles Bader <miles@gnu.org>
2104
2105 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
2106 when to constrain NEW_POS (they were pretty screwed up before).
2107
16425c4a
EZ
21082000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
2109
2110 * msdos.c (run_msdos_command): Save and restore the master
2111 environment, for the case that child_setup signals an error.
2112 When mirroring slashes in DOS shell commands, don't fail when
2113 argv[2] has embedded blanks.
da288c14
EZ
2114 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
2115 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
2116 (dos_ttraw): Call mouse_setup_buttons.
16425c4a
EZ
2117
2118 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
2119 using alloca; free it after run_msdos_command returns.
2120
27f73852
DL
21212000-07-27 Dave Love <fx@gnu.org>
2122
2123 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't
2124 define.
2125 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently
2126 working.
2127
2128 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
2129
c0261b5e
EZ
21302000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
2131
2132 * editfns.c (lisp_time_argument): Fix last change.
2133
b548072f
GM
21342000-07-27 Gerd Moellmann <gerd@gnu.org>
2135
3ab82477
GM
2136 * fns.c (Fdelete): Make it work on vectors and strings in addition
2137 to lists.
2138
b548072f
GM
2139 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
2140 (syms_of_fns): Initialize new variables.
2141 (sweep_weak_table): Handle weakness `key-or-value' and
2142 `key-and-value'.
2143 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
2144 weakness, with t meaning the same as `key-and-value'.
2145
91ae8751
KH
21462000-07-27 Kenichi Handa <handa@etl.go.jp>
2147
2148 * coding.h (struct coding_system): Member safe_charset deleted.
2149
2150 * coding.c (Qsafe_charsets): This variable deleted.
2151 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system): New
2152 variables.
2153 (coding_safe_chars): New function.
2154 (CODING_SAFE_CHAR_P): New macro.
2155 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
2156 checking safe_charsets member of the coding system. Caller
2157 changed.
2158 (detect_coding_iso2022): New local variable safe_chars.
2159 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
2160 safe_charsets member of the coding system.
2161 (decode_coding_iso2022): New local variable safe_chars.
2162 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
2163 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
2164 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
2165 (ENCODE_UNSAFE_CHARACTER): New macro.
2166 (encode_coding_iso2022): New local variable safe_chars. Check
2167 unsafe chars.
2168 (setup_coding_system): Delete the code to initialize
2169 coding->safe_charses
2170 (intersection, find_safe_codings): New functions.
2171 (Ffind_coding_systems_region_internal): New function.
2172 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
2173 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
2174 variable and initialize it.
2175
2176 * fns.c (char_table_ref_and_index): New function.
2177
2178 * lisp.h (char_table_ref_and_index): Add prototype.
2179
34a7a267
SS
21802000-07-26 Sam Steingold <sds@gnu.org>
2181
2182 * editfns.c (lisp_time_argument): Added third argument `usec'.
3ab82477 2183 (Ffloat_time): New built-in Lisp function.
34a7a267 2184
a95cb10a
GM
21852000-07-26 Gerd Moellmann <gerd@gnu.org>
2186
3353ef5a
GM
2187 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
2188 for the character code.
2189
2190 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
2191 GNU/Linux.
2192
a95cb10a
GM
2193 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
2194 if called for a popup menu.
2195 (xmenu_show): Store help string in widget values.
2196
b4a12321
DL
21972000-07-26 Dave Love <fx@gnu.org>
2198
2199 * syswait.h: Move some definitions.
2200 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
2201 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
2202 perspicuous definitions.
2203 (WTERMSIG): Fix bit pattern used.
2204
13f5ad37
KH
22052000-07-26 Kenichi Handa <handa@etl.go.jp>
2206
2207 * print.c (print_object): If vector printing is truncated, print
2208 "..." to indicate it as well as the case of list printing.
2209
070fe99c
GM
22102000-07-25 Gerd Moellmann <gerd@gnu.org>
2211
969065c3
GM
2212 * xdisp.c (next_element_from_display_vector): Improve comments.
2213
2214 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
2215 for the character code, and the rest for the face id as in 20.x.
2216 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
2217
2218 * window.c (window_display_table): Cleaned up.
2219
070fe99c
GM
2220 * syntax.c (Fforward_word): Add last arg nil in call of
2221 Fconstrain_to_field.
2222
bad77ef7
EZ
22232000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
2224
969065c3 2225 * fileio.c (Frename_file) [DOS_NT]: If the file names are
bad77ef7
EZ
2226 identical but for the letter-case, don't call
2227 barf_or_query_if_file_exists.
2228
c28da489
MB
22292000-07-25 Miles Bader <miles@gnu.org>
2230
2231 * editfns.c (find_field): Honor special `boundary' fields.
2232 (Qboundary): New variables.
2233 (syms_of_editfns): Initialize Qboundary.
2234 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
2235 Use scan_buffer instead of find_before_next_newline, because it
2236 allows us to detect the boundary case where there's a newline at
2237 the search limit.
2238 * lisp.h (Fconstrain_to_field): Update external declaration.
2239
e3c31fd5
GM
22402000-07-24 Gerd Moellmann <gerd@gnu.org>
2241
2242 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
2243 if that is nil.
c28da489 2244
c66c29a2
DL
22452000-07-24 Dave Love <fx@gnu.org>
2246
2247 * s/sunos4-0.h, s/sol2.h:
2248 (LIBS_TERMCAP): Move from m/sparc.h.
2249
2250 * m/sparc.h (TERMINFO): Moved to system files (probably only
2251 relevant for sunos4 judging by its vintage).
2252 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
2253 __arch64__.
2254
fbe0a958
EZ
22552000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
2256
2257 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
2258 name to single_keymap_panes.
2259
7d88e5c9
AS
22602000-07-24 Andreas Schwab <schwab@suse.de>
2261
2262 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
2263
e024b101
GM
22642000-07-24 Gerd Moellmann <gerd@gnu.org>
2265
2266 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
2267 parameters instead of using int parameters. Expect FN to accept
2268 EMACS_INT parameters.
2269 (display_echo_area, resize_echo_area_axactly, current_message)
2270 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
2271 with new argument list.
2272 (resize_mini_window_1): New callback function.
2273 (current_message_1, truncate_message_1, set_message_1): Change
2274 parameter lists to the new format expected by
2275 with_echo_area_buffer.
2276
25c1a9ce
KH
22772000-07-24 Kenichi Handa <handa@etl.go.jp>
2278
2279 * fontset.c (fontset_ref): Remove INLINE declaration.
2280 (fontset_ref_via_base): Likewise.
2281 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
2282 to downcase.
2283
7f987ac0
EZ
22842000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
2285
2286 * msdos.c (IT_note_mouse_highlight): Process overlays in the
2287 correct order of priority. If help echo was found in an overlay,
2288 use that overlay as the object in which the help echo was found.
2289
e2db3069
MB
22902000-07-22 Miles Bader <miles@gnu.org>
2291
2292 * textprop.c (Fprevious_single_char_property_change): The initial
2293 property value should be from the position preceding POSITION, not
2294 following it.
2295
5e3203e4
EZ
22962000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
2297
2298 * coding.c (syms_of_coding): Doc fix for
2299 inhibit-iso-escape-detection.
2300
62145073
GM
23012000-07-21 Gerd Moellmann <gerd@gnu.org>
2302
c20aeb83
GM
2303 * xterm.c (note_mouse_highlight): Process overlays in the right
2304 order of priority.
34a7a267 2305
743934db
GM
2306 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
2307
2308 * xterm.c (note_mouse_highlight): If help-echo was found in an
2309 overlay, use that overlay as the object in which the help was
2310 found.
2311
d1dc7e43 2312 * window.c (foreach_window_1): Fix typo reversing an if-condition.
34a7a267 2313
62145073
GM
2314 * window.c (foreach_window): Instead of a fake variable argument
2315 list, take one USER_DATA argument.
2316 (foreach_window_1): Likewise, and call callback functions with two
2317 args, the window and USER_DATA.
2318 (struct check_window_data): New struct.
2319 (check_window_containing): Use it.
2320 (window_from_coordinates): Set up a struct check_window_data for
2321 foreach_window.
2322 (add_window_to_list, freeze_window_start): Change parameters
2323 according to new calling convention.
2324
2325 * window.h (foreach_window): Change prototype.
2326
2327 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
2328
23292000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
2330
2331 * xmenu.c (menu_help_callback): Call show_help_echo with
2332 additional arguments OBJECT and POS.
2333
11270583
KH
23342000-07-21 Kenichi Handa <handa@etl.go.jp>
2335
07b14857
KH
2336 * data.c (Faset): Allow storing any multibyte character in a
2337 string. Convert unibyte string to multibyte if necessary.
2338
11270583
KH
2339 * xfns.c (x_encode_text): New function.
2340 (x_set_name): Use x_encode_text.
2341 (x_set_title): Likewise.
2342
2343 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
2344
2345 * xterm.h (x_encode_text): Add prototype.
2346
bc75b4fd
DL
23472000-07-20 Dave Love <fx@gnu.org>
2348
2349 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
2350 xfree, not free.
2351
48c14970
EZ
23522000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
2353
2354 * msdos.c (help_echo_window): New variable.
2355 (syms_of_msdos): Initialize and staticpro it.
2356 (IT_note_mode_line_highlight): Set help_echo_window.
2357 (IT_note_mouse_highlight): Ditto.
2358 (dos_rawgetc): Store help_echo_window in the second event produced
2359 for HELP_EVENTs.
2360
2361 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
2362 Record the object that generated the help echo and the position of
2363 that object in help_echo_object and help_echo_pos. Record that
2364 some glyphs in a row are displayed in mouse-face.
2365 (IT_update_begin): Don't clear mouse highlight unless one of the
2366 enabled glyph rows is marked as being displayed in mouse-face.
2367 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
2368 and position recorded in help_echo_object and help_echo_pos to the
2369 event queue.
2370 (IT_menu_display): Accept a new argument PN: the pane number of
2371 the current menu pane. Record the pane number and the item
2372 number of the item which has associated help string.
2373 (XMenuActivate): Update the prototype for help_callback in
2374 function declaration. Call IT_menu_display with the current menu
2375 pane number as an additional argument. Call help_callback with
2376 two additional arguments: the pane number and the item number of
2377 the menu item associated with the help text.
2378 (help_echo_object, help_echo_pos): New variables.
2379 (syms_of_msdos): Initialize them and staticpro help_echo_object.
2380
2381 * msdos.h (XMenuActivate): Update prototype.
2382
4279296d
GM
23832000-07-19 Gerd Moellmann <gerd@gnu.org>
2384
47db06aa
GM
2385 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
2386 Add some more prototypes.
2387
2388 * xterm.c, xterm.h: Add some more prototypes.
2389
2390 * lisp.h (Fnext_single_char_property_change): Add prototype.
2391
2392 * dispnew.c (direct_output_for_insert): Remove confusing
2393 outer local variable mouse_face_overwritten_p.
2394 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
2395
4279296d
GM
2396 * alloc.c (allocate_string_data): Don't copy old string contents.
2397
670acd62
KH
23982000-07-19 Kenichi Handa <handa@etl.go.jp>
2399
2400 * coding.c (code_convert_region): Delete text properties before
2401 shrinking the conversion region.
2402
7cea38bc
GM
24032000-07-18 Gerd Moellmann <gerd@gnu.org>
2404
dc1cac59
GM
2405 * dispnew.c (update_text_area): Write the whole row if it
2406 has mouse-face in it.
2407
85a8aca9
GM
2408 * xfaces.c (face-alternative-font-family-alist): Remove
2409 DEFVAR_LISP; staticpro instead.
2410
34a7a267 2411 * xmenu.c (menu_help_callback): Call show_help_echo with
7cea38bc
GM
2412 new arguments.
2413
2414 * keyboard.c (show_help_echo): Add parameter WINDOW.
2415 (read_char): Call show_help_echo with window extracted from Lisp
2416 help event.
2417 (gen_help_event): Add parameter WINDOW.
2418
2419 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
2420
2421 * xterm.c (help_echo_window): New variable.
2422 (note_mouse_highlight, note_tool_bar_highlight): Set
2423 help_echo_window.
2424 (XTread_socket): Pass help_echo_window to gen_help_event.
2425 (syms_of_xterm): Initialize and staticpro help_echo_window.
2426
f8276b77
DL
24272000-07-18 Dave Love <fx@gnu.org>
2428
2429 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
2430 systime.h.
2431
088831a6
GM
24322000-07-18 Gerd Moellmann <gerd@gnu.org>
2433
3d6cd763
GM
2434 * alloc.c (allocate_string_data): If string had already data
2435 assigned, copy old contents to new string data.
2436
2437 * coding.c (syms_of_coding): Fix typo in spelling of variable
2438 `inhibit-iso-escape-detection'.
2439
088831a6
GM
2440 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
2441
2442 * Makefile.in: Add dependencies on dispextern.h.
2443 (alloca.o): Don't define malloc and define EMACS_FREE instead of
2444 `free'; both can conflict with system header files.
2445
bc8a8d55
KH
24462000-07-18 Kenichi Handa <handa@etl.go.jp>
2447
2448 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
2449 undefined.
2450
069f5950
DL
24512000-07-18 Dave Love <fx@gnu.org>
2452
2453 * window.c (Fwindow_list): Declare arg `window'.
2454
aa96c820
KH
24552000-07-18 Kenichi Handa <handa@etl.go.jp>
2456
2457 * coding.c (setup_coding_system): Don't override the explicitly
2458 specified designations.
2459
06be8d32
MB
24602000-07-15 Miles Bader <miles@gnu.org>
2461
2462 * editfns.c (char_property_eq, char_property_stickiness): Renamed
2463 from `text_property_eq' and `text_property_stickiness', respectively.
2464 (find_field, Fconstrain_to_field, char_property_eq)
2465 (char_property_stickiness): Changed to call char-property functions
2466 instead of text-property-only ones.
2467
2468 * textprop.c (Fnext_single_char_property_change): Made a subr (was
2469 `next_single_char_property_change'). Do more error checking, and
2470 cleanup limit behavior.
2471 (Fprevious_single_char_property_change): New function.
2472 (syms_of_textprop): Initialize new subrs.
2473
2474 * xdisp.c (display_prop_end, invisible_text_between_p):
2475 Call Fnext_single_char_property_change instead of
2476 next_single_char_property_change.
2477
3fddcdc3
JR
24782000-07-15 Jason Rumney <jasonr@gnu.org>
2479
2480 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
2481 after menu is finished with.
2482 (add_menu_item): Only consider wv->title as a menu title.
2483 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
2484
2485 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
2486 null title.
2487 (FONT_REGEXP): Remove unused macro, and its sub-components.
2488 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
2489
2490 * w32term.c (help_echo_object, help_echo_pos): New variables.
2491 (note_mode_line_highlight): Store additional information about the
2492 help-echo in help_echo_object and help_echo_pos. Check both
2493 `local-map' and `keymap' properties for changing the cursor
2494 (note_mouse_highlight): Store additional information about the
2495 help-echo in help_echo_object and help_echo_pos.
2496 (note_tool_bar_highlight): Set help_echo_object to nil and
2497 help_echo_pos to -1.
2498 (w32_read_socket): Use gen_help_event instead of filling
2499 input_events manually.
2500 (syms_of_w32term): Staticpro help_echo_object.
2501 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
2502 set, arrange for a mouse-highlight redisplay in
2503 XTframe_up_to_date.
2504 (x_clear_mouse_face): New function.
2505 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
2506 (x_update_window_begin): No need to turn off the mouse
2507 highlight here.
2508 (show_mouse_face): Set the mouse_face_p flag of glyph rows
2509 depending on whether they contain glyphs highlighted in
2510 mouse-face.
2511 (x_fill_stretch_glyph_string): Consume runs of stretch
2512 glyphs instead of a single one.
2513 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
2514 with new argument list.
2515 (x_set_glyph_string_gc): Make sure the face's GC is valid.
2516 (x_append_glyph, x_append_composite_glyph)
2517 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
2518 changes in struct glyph starting 1999-12-27. See comments for
2519 xterm.c on 2000-07-05.
2520
178c5d9c
SS
25212000-07-14 Sam Steingold <sds@gnu.org>
2522
2523 * xfaces.c (realize_x_face): Fix the last patch:
2524 check `default_face' before dereferencing.
2525
6fe533f6
DL
25262000-07-14 Dave Love <fx@gnu.org>
2527
069f5950 2528 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 2529
dd7b81cf
KH
25302000-07-14 Kenichi Handa <handa@etl.go.jp>
2531
0693904a 2532 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 2533 default_face's fontset, not using the default fontset.
0693904a 2534
dd7b81cf
KH
2535 * coding.c (inhibit_iso_escape_detection): New variable.
2536 (syms_of_coding): Make it a Lisp variable.
2537 (detect_coding_iso2022): If inhibit_iso_escape_detection is
2538 nonzero, ignore ISO2022's escape sequence.
2539
d5aa31d8
GM
25402000-07-14 Gerd Moellmann <gerd@gnu.org>
2541
e5acf0ca
GM
2542 * alloca.c (malloc) [emacs]: Define as xmalloc.
2543
bd23a692
GM
2544 * xfns.c (Fx_show_tip): If frame parameters contain a position,
2545 use that instead of the mouse position. Add parameters DX and DY.
2546
2547 * dispextern.h (Fx_show_tip): Adjust number of parameters
2548 in prototype.
2549
9662da0b
GM
2550 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
2551 if HELP is a function, call it with OBJECT and POS as parameters
2552 to get the help to display.
2553 (gen_help_event, kbd_buffer_store_help_event): New functions.
2554 (kbd_buffer_get_event): Construct the Lisp help-event differently.
2555 (read_char): Call show_help_echo with new parameters.
2556
178c5d9c 2557 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
2558 Add prototypes.
2559
2560 * xterm.c (help_echo_object, help_echo_pos): New variables.
2561 (note_mode_line_highlight): Store additional information about the
2562 help-echo in help_echo_object and help_echo_pos. Check both
2563 `local-map' and `keymap' properties for changing the cursor
2564 (note_mouse_highlight): Store additional information about the
2565 help-echo in help_echo_object and help_echo_pos.
2566 (note_tool_bar_highlight): Set help_echo_object to nil and
2567 help_echo_pos to -1.
2568 (XTread_socket): Use gen_help_event instead of filling
2569 input_events manually.
2570 (syms_of_xterm): Staticpro help_echo_object.
2571
2572 * xmenu.c (menu_highlight_callback): Use
2573 kbd_buffer_store_help_event instead of setting up and input_event
2574 structure manually.
2575
2576 * xdisp.c (eval_form): GCPRO argument sexpr.
2577 (call_function): New function.
2578 (handle_single_display_prop): Use call_function and FUNCTIONP
2579 instead of checking whether if font_height is a symbol and
2580 using eval_form.
2581
2582 * eval.c (internal_condition_case_2): New function.
2583
2584 * lisp.h (FUNCTIONP): New macro.
2585 (internal_condition_case_2, call_function): Add prototypes.
2586
d5aa31d8
GM
2587 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
2588 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
2589 Always set `arg' member of input_events.
2590 (construct_menu_click): Unused function removed.
2591
2592 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
2593
2594 * w32term.c (construct_mouse_click, construct_mouse_wheel)
2595 (construct_drag_n_drop, x_scroll_bar_handle_click)
2596 (w32_read_socket): Always set `arg' member of input_events.
2597
2598 * keyboard.c (show_help_echo): Use eval_form. Add comment.
2599
2600 * lisp.h (eval_form): Add prototype.
2601
2602 * xdisp.c (eval_form): Make it externally visible.
2603
0f1a9b23
GM
26042000-07-13 Gerd Moellmann <gerd@gnu.org>
2605
2606 * xterm.c (x_handle_tool_bar_click): Store the frame in the
2607 frame_or_window slot of TOOL_BAR_EVENT input events instead of
2608 consing. For prefix events, store the frame in the `arg' slot of
2609 the event, otherwise store the key there.
2610 (XTread_socket): Instead of consing, use the frame_or_window slot
2611 of HELP_EVENTs for the frame, and the `arg' slot for the help
2612 string.
2613
2614 * xmenu.c (menu_highlight_callback): Store help string in the
2615 `arg' member of the input event; don't cons.
2616 (menubar_selection_callback): Use the `arg' slot of input events
2617 to queue additional information, instead of consing.
2618
2619 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
2620
2621 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
2622 TOOL_BAR_EVENTs.
2623 (w32_read_socket): Adapt to changes in HELP_EVENTs.
2624
2625 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
2626 input events to queue additional information, instead of consing.
2627
2628 * keyboard.c (kbd_buffer_gcpro): Renamed from
2629 kbd_buffer_frame_or_window. Now used for all Lisp objects
2630 referenced from the input queue.
2631 (kbd_buffer_store_event): Always use structure assignment for
2632 copying input events. Record all Lisp objects referenced from
2633 events in kbd_buffer_gcpro.
2634 (kbd_buffer_get_event): Construct Lisp `help-echo' events
2635 differently from input events. Test for prefix menu_bar_events
2636 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
2637 event in kbd_buffer_gcpro to nil.
2638 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
2639 frame_or_window is equal to its arg member as prefix events.
2640 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
2641 used by an input event to nil.
2642 (init_keyboard): Use two times the size of the input queue
2643 for kbd_buffer_gcpro.
2644 (syms_of_keyboard): Likewise.
2645
2646 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
2647 USER_SIGNAL_EVENT.
2648
2649 * termhooks.h (struct input_event): Add member `arg'.
2650 (MENU_BAR_EVENT): Renamed from menu_bar_event.
2651 (USER_SIGNAL_EVENT): Renamed from user_signal.
2652
2653 * xfaces.c (ASET): Remove definition.
2654
2655 * lisp.h (AREF, ASET, ASIZE): New macros.
2656
2657 * fontset.c (AREF, ASIZE): Remove definitions.
2658
2659 * fns.c (AREF): Remove definition.
178c5d9c 2660
0f1a9b23
GM
2661 * composite.c (AREF): Remove definition.
2662
712eaef2
GM
26632000-07-12 Gerd Moellmann <gerd@gnu.org>
2664
d8ee7803
GM
2665 * dispnew.c (redraw_overlapped_rows): Add missing local.
2666 (scrolling_window): Remove debug code.
2667
712eaef2
GM
2668 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
2669 Before scrolling, turn off a mouse-highlight in the window
2670 being scrolled.
2671
2672 * xterm.c (x_update_window_end): Add parameter
2673 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
2674 redisplay in XTframe_up_to_date.
2675 (x_clear_mouse_face): New function.
2676 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
2677
2678 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
2679 current glyph row.
2680 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
2681 it when any row is written to that contains glyphs highlighted in
2682 mouse-face.
2683 (update_window): Call the window update end hook with new
2684 parameter MOUSE_FACE_OVERWRITTEN_P.
2685 (direct_output_for_insert): Give up if row contains mouse-face.
2686
2687 * dispextern.h (struct redisplay_interface): Add parameter
2688 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
2689 (clear_mouse_face): New function pointer member.
2690
02010917
SM
26912000-07-11 Stefan Monnier <monnier@cs.yale.edu>
2692
2693 * syntax.c (back_comment): Use one switch rather than a few `if's.
2694 Obey open_paren_in_column_0_is_defun_start.
2695 When reverting to the `slow' method, try to nicely handle the case
2696 of nested comments by checking that the comment-starter we found
2697 does indeed match the comment-ender.
2698 (scan_sexps_forward, scan_sexps_forward):
2699 Ignore excessive opening parenthesis rather than throwing an error.
2700
d76c03ea
GM
27012000-07-11 Gerd Moellmann <gerd@gnu.org>
2702
2703 * doc.c (Fsubstitute_command_keys): Handle case that a GC
2704 in Fwhere_is_internal or get_keymap_1 relocates string contents.
2705
2706 * dispnew.c (direct_output_forward_char): Give up if currently
2707 displaying a message instead of the minibuffer contents.
2708
2709 * xterm.c (x_update_window_begin): No need to turn off the mouse
2710 highlight here.
2711 (show_mouse_face): Set the mouse_face_p flag of glyph rows
2712 depending on whether they contain glyphs highlighted in
2713 mouse-face.
2714
2715 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
2716 compare the mouse_face_p flags of both rows.
2717
2718 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
2719
d55ead18
EZ
27202000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
2721
2722 * keyboard.c (show_help_echo): Accept additional parameter
2723 ok_to_overwrite_keystroke_echo.
2724 (read_char): Call show_help_echo with a zero
2725 ok_to_overwrite_keystroke_echo argument.
2726 * keyboard.h (show_help_echo): Update prototype of
2727 show_help_echo.
2728 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
2729 ok_to_overwrite_keystroke_echo argument.
2730 * w32menu.c (w32_menu_display_help): Call show_help_echo with
2731 non-zero ok_to_overwrite_keystroke_echo argument.
2732
df75b1a3
GM
27332000-07-10 Gerd Moellmann <gerd@gnu.org>
2734
4b92c49a
GM
2735 * xdisp.c (try_window_id): If changes are all below what is
2736 displayed in the window, and point is in the window, we still
2737 might have to find point on the display.
2738
2739 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
2740 glyphs instead of a single one.
2741 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
2742 with new argument list.
2743 (x_set_glyph_string_gc): Make sure the face's GC is valid.
2744
df75b1a3
GM
2745 * keymap.c (get_keymap_1): Add comment that this function can GC.
2746 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
2747 comment that functions can GC.
2748 (Fset_keymap_parent): GCPRO arg KEYMAP.
2749
4314cf3e
EZ
27502000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
2751
2752 * msdos.c (XMenuActivate): After exiting the menu, restore the
2753 echo area message and erase it.
2754
ab49ce15
KH
27552000-07-10 Kenichi Handa <handa@etl.go.jp>
2756
2757 * fontset.c (Ffontset_info): Make the return value more compatible
2758 with that of Emacs 20.
2759
090a072f
GM
27602000-07-07 Gerd Moellmann <gerd@gnu.org>
2761
2762 * eval.c (Fsignal): Handle case that backtrace_list is null.
2763
f92de4a6
KH
27642000-07-07 Kenichi Handa <handa@etl.go.jp>
2765
2766 * ccl.c (Fccl_execute): Typo fixed.
2767
dd8888a1
GM
27682000-07-06 Gerd Moellmann <gerd@gnu.org>
2769
e5c81191 2770 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 2771
dd8888a1
GM
2772 * window.c (Fwindow_list): Reverse list at the end.
2773 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
2774 means allow windows on OWINDOW's frame, only.
2775 (window_loop): Simplified; use Fwindow_list.
2776
2777 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
2778
485266d0
GM
27792000-07-05 Gerd Moellmann <gerd@gnu.org>
2780
2781 * xterm.c (XTread_socket): Increment handling_signal at the start,
2782 decrement it at the end.
2783
2784 * eval.c (handling_signal): New variable.
2785 (Fsignal): Abort if handling_signal is non-zero.
2786
2787 * lisp.h (handling_signal): External declaration.
178c5d9c 2788
485266d0
GM
2789 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
2790
80fcd514
KR
27912000-07-05 Ken Raeburn <raeburn@gnu.org>
2792
2793 Sound support for NetBSD through "Linux emulation" support:
2794 * config.in (HAVE_SOUNDCARD_H): Undef.
2795 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
2796 * Makefile.in (LIBSOUND): New variable.
2797 (LIBES): Include it.
2798 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
2799 <soundcard.h>.
2800 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
2801 elsewhere.
2802 (vox_open): Use DEFAULT_SOUND_DEVICE.
2803 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
2804
d5c5cddd
GM
28052000-07-05 Gerd Moellmann <gerd@gnu.org>
2806
2807 * print.c (print_error_message): If Vsignaling_function is set,
2808 show it in *Messages*.
2809
2810 * lisp.h (Vsignaling_function): External declaration.
2811
2812 * eval.c (Vsignaling_function): New variable.
2813 (Fsignal): Compute it.
2814 (syms_of_eval): Staticpro it.
2815
65171e3a
DL
28162000-07-05 Dave Love <fx@gnu.org>
2817
2818 * syswait.h: Use the autoconf recommended approach. Old code
2819 #if'd out in case we need to revert.
2820
178c5d9c 2821 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 2822
e2c46326
AI
28232000-07-05 Andrew Innes <andrewi@gnu.org>
2824
2825 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
2826 when non-NULL instead of __morecore, to take account of buffer
2827 memory. This also solves a problem with spurious memory warnings
2828 on Windows.
2829
2830 * ralloc.c: Make real_morecore non-static.
2831
2832 * eval.c (internal_condition_case): Comment out abort if
2833 interrupt_input_blocked is not zero.
2834
2835 * makefile.nt: Add support for `bootstrap' and related targets.
2836 Include minimal debug info in emacs.exe in release build.
2837 Remove all dependencies on lisp.h, and fixup some others.
2838
2839 * w32.c (init_environment): Install code from 20.7 for providing
2840 default values for environment variables, based on the
2841 executable's own location.
2842 (map_w32_filename): Handle filenames that are longer than
2843 MAX_PATH.
2844 (sys_socket): Install socket inheritance bug fix from 20.7.
2845
2846 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
2847 here via blockinput.h).
2848
a027a91b
SM
28492000-07-05 Stefan Monnier <monnier@cs.yale.edu>
2850
e4b31601
SM
2851 * w32menu.c (w32_menu_display_help):
2852 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
2853
2854 * keyboard.h (show_help_echo): Declare.
2855
2856 * keyboard.c (show_help_echo): New function, extracted from read_char.
2857 Feval its `msg' argument if it's a cons cell.
2858 (read_char): Use it.
4cf8d9d5 2859 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 2860
178c5d9c 2861 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 2862 (note_tool_bar_highlight, XTread_socket):
178c5d9c 2863 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
2864 (dos_rawgetc):
2865 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
2866 (note_tool_bar_highlight, w32_read_socket):
2867 Do not gratuitously ignore non-string `help-echo' properties.
2868
88d75730
GM
28692000-07-05 Gerd Moellmann <gerd@gnu.org>
2870
969f7e79
GM
2871 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
2872
71201b00
GM
2873 * window.c (delete_all_subwindows): Reset Vwindow_list.
2874
88d75730
GM
2875 * xterm.c (x_append_glyph, x_append_composite_glyph)
2876 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
2877 changes in struct glyph starting 1999-12-27. Some bit-fields of
2878 struct glyph were not set, which made glyphs unequal when compared
2879 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
2880 effects were the result. This also depended on the contents of
2881 memory returned by xmalloc. If flickering happens again, activate
2882 the code in clear_glyph_row that's in #if 0. If the flickering is
2883 gone with that, chances are that it is caused by something
2884 similar.
2885
2886 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 2887
88d75730
GM
2888 * dispextern.h: Add some comments.
2889
2890 * window.c (add_window_to_list): Add parameter LIST.
2891 (window_list): Order list so that, for each frame, windows are
2892 in canonical order, and so that frames appear in the list in
2893 the order given by Vframe_list.
2894 (next_window): Reverse the handling of NEXT_P.
2895
53654733
GM
28962000-07-04 Gerd Moellmann <gerd@gnu.org>
2897
87efd256
GM
2898 * window.c (Vwindow_list): New variable.
2899 (make_window, delete_window): Set Vwindow_list to nil.
2900 (check_window_containing): New function.
2901 (window_from_coordinates): Rewritten.
2902 (add_window_to_list, window_list, candidate_window_p)
2903 (decode_next_window_args, next_window): New functions.
2904 (Fnext_window, Fprevious_window): Rewritten in terms of
2905 next_window.
2906 (Fwindow_list): New function.
2907 (Fother_window): Cleaned up.
2908 (foreach_window): Add a longer "variable argument list". Let
2909 callback function return 0 to indicate that cycling over windows
2910 should stop.
2911 (foreach_window_1): Likewise.
2912 (freeze_window_start): Return int.
2913 (init_window): New function.
2914 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
2915
2916 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
2917 input_event with bzero.
2918 (main): Call init_window.
2919
53654733
GM
2920 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
2921 a menu filter.
2922
4a8c194f
KH
29232000-07-04 Kenichi Handa <handa@etl.go.jp>
2924
2925 * composite.h (make_composition_value_copy): Extern it.
2926
2927 * composite.c (make_composition_value_copy): New function.
2928
2929 * editfns.c (Fformat): While copying text properties, make each
2930 composition property value a copy.
2931
2932 * fns.c (concat): While copying text properties, make each
2933 composition property value a copy.
2934
831a6cb0
GM
29352000-07-03 Gerd Moellmann <gerd@gnu.org>
2936
2f516940
GM
2937 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
2938
178c5d9c 2939 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
2940 marked already.
2941
831a6cb0
GM
2942 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
2943 include those frames as candidates which have their focus
2944 redirected to the minibuffer frame.
2945
d9c4f922
SM
29462000-07-03 Stefan Monnier <monnier@cs.yale.edu>
2947
2948 * fns.c (Fputhash): Return `value' rather than nil.
2949
3780bc22
GM
29502000-06-30 Gerd Moellmann <gerd@gnu.org>
2951
97d176db
GM
2952 * frame.c (next_frame): Don't check focus redirection in case
2953 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
2954 unless their focus is redirected, which contradicts the
2955 specification of next-frame, and leads to infinite loops in
2956 certain situations when cycling through windows with next-window.
2957
dca9961d
KH
29582000-06-30 Kenichi Handa <handa@etl.go.jp>
2959
2960 * coding.c (code_convert_region): Even if the length of text is
2961 zero, try to convert it if coding->type is coding_type_ccl.
2962 (decode_coding_string, encode_coding_string): Likewise.
2963
d5483ab1
GM
29642000-06-28 Gerd Moellmann <gerd@gnu.org>
2965
af5c25e1 2966 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 2967 the display if windows_or_buffers_changed.
af5c25e1
GM
2968
2969 * dispnew.c (struct row_entry): New structure.
2970 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
2971 (row_table_size, old_lines, new_lines, old_lines_size)
2972 (new_lines_size, run_pool, runs_size, runs): New variables.
2973 (add_row_entry): New function.
2974 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 2975 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
2976 holding them in local variables. Use a larger hash table whose
2977 size depends on glyph matrix sizes. Don't use bzero to clear the
2978 hash table; instead, clear used slots only.
2979
2980 * fns.c (next_almost_prime): Make it externally visible.
2981
2982 * lisp.h (next_almost_prime): Add prototype.
2983
d5483ab1
GM
2984 * s/isc4-0.h (sigunblock): Define.
2985
2986 * s/sco5.h (sigunblock): Define.
2987
93e40f40
DL
29882000-06-27 Dave Love <fx@gnu.org>
2989
2990 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
2991 (moved to osf5-0.h).
2992 [!NOT_C_CODE]: Protect string.h stuff.
2993
2994 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
2995 (sys_siglist, NSIG): Definitions moved here from osf1.h.
2996
3c4b7685
GM
29972000-06-27 Gerd Moellmann <gerd@gnu.org>
2998
97d176db 2999 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
3000 below the last line from the needed window height.
3001
32cad0aa
SM
30022000-06-26 Stefan Monnier <monnier@cs.yale.edu>
3003
3004 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
3005 (Fwidget_get): Use it.
3006 (syms_of_fns): Defsubr it.
3007
2c69ced2
GM
30082000-06-26 Gerd Moellmann <gerd@gnu.org>
3009
178c5d9c 3010 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
3011 display info for XIM.
3012 (xim_open_dpy): Likewise.
3013 (xim_close_dpy): Don't free the display info's XIM.
3014
3015 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
3016
3017 * config.in (USE_XIM): New define.
3018
3fc720e4
GM
3019 * keymap.c (get_keyelt): For menu-items containing a `:filter
3020 FILTER', apply FILTER to the menu-item's definition to get the
3021 real definition to use.
3022
3023 * lisp.h (QCfilter): External declaration.
3024
2c69ced2
GM
3025 * xfns.c (Fimage_size): New function.
3026 (syms_of_xfns): Defsubr it.
3027
f978b2a2
AS
30282000-06-26 Andreas Schwab <schwab@suse.de>
3029
3030 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
3031 Fstring_as_unibyte.
3032
94cc7892
DL
30332000-06-25 Dave Love <fx@gnu.org>
3034
3035 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
3036 tgetnum.
3037
3038 * Makefile.in (blockinput.h): Depend on atimer.h.
3039 (atimer.h): Depend on systime.h.
3040
3041 * blockinput.h: Protect against multiple inclusion. Include
3042 atimer.h.
3043
3044 * atimer.h: Protect against multiple inclusion. Include
3045 systime.h.
3046
3047 * lisp.h (swap_in_global_binding): Declare.
3048
b8c24556
KR
30492000-06-24 Ken Raeburn <raeburn@gnu.org>
3050
3051 * process.c (Fopen_network_stream): Turn off atimers for duration
3052 of call to connect. (Patch from Gerd.)
3053
8cf8560b
DL
30542000-06-23 Dave Love <fx@gnu.org>
3055
511c7541
DL
3056 * ralloc.c: Maybe include unistd.h
3057
8cf8560b
DL
3058 * emacs.c (setgrp): Undefine before defining.
3059 (malloc_warning, set_time_zone_rule, index): Prototype.
3060
3061 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
3062 HAVE_STRUCT_TIMEZONE.
3063
3064 * s/osf1.h: Move string.h hack here from alpha.h and make it
3065 conditional.
3066 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
3067 _XOPEN_SOURCE.
3068 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
3069 (SOCKLEN_TYPE): Don't define.
3070
3071 * m/alpha.h: Remove string.h hack.
3072
3073 * s/osf5-0.h: New file.
3074
3075 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
3076 include time.h, done by systime.h.
3077 [__FreeBSD__]: Remove redundant includes.
3078
3fc720e4 3079 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
3080 (delete_temp_file): Return Qnil to avoid warning.
3081
3082 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
3083
3084 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
3085 HAVE_X_WINDOWS.
3086
3087 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
3088
3089 * composite.h (compose_text): Declare.
3090
3091 * xterm.c: Don't include sys/types.h unconditionally. Don't
3092 protect its inclusion with !USG (following xmenu.c).
3093
ea055732
GM
30942000-06-23 Gerd Moellmann <gerd@gnu.org>
3095
3096 * xfns.c (x_create_tip_frame): Initialize frame's colors like
3097 in x_create_frame.
3098
74b01b80
EZ
30992000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
3100
3101 * coding.c (decode_eol_post_ccl): Special handling for undecided
3102 and inconsistent EOL types.
3103
64f3a166
GM
31042000-06-22 Gerd Moellmann <gerd@gnu.org>
3105
16cf31f7
GM
3106 * xrdb.c (x_load_resources): Add default resource for scroll bar's
3107 trough color and main window's background color.
3108
178c5d9c 3109 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
3110 differently.
3111
3112 * xterm.h (Xt_app_con): External declaration.
3113
3114 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 3115
486a103d
GM
3116 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
3117
64f3a166
GM
3118 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
3119 (handle_invisible_prop): Record the start of invisible text in
3120 it->add_overlay_start.
3121 (struct overlay_entry): Add member `overlay'.
3122 (handle_overlay_change): Simplify.
3123 (next_overlay_string): After having processed overlay strings at the
3124 end of the buffer, record that fact in
3125 it->overlay_strings_at_end_processed_p.
3126 (compare_overlay_entries): If before- and after-strings come
3127 from the same overlay, let before-strings come first.
3128 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
3129 (load_overlay_strings): Take it->add_overlay_start into account
3130 when adding overlay strings.
3131
3132 * dispextern.h (struct it): Add member add_overlay_start.
3133
bb746ea6
DL
31342000-06-22 Dave Love <fx@gnu.org>
3135
3136 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
3137
3138 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
3139
a8f573f3
KH
31402000-06-22 Kenichi Handa <handa@etl.go.jp>
3141
3142 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
3143 is greater than 0.
3144
9f2bbc92
DL
31452000-06-21 Dave Love <fx@gnu.org>
3146
178c5d9c 3147 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 3148
3ee5041c
SM
31492000-06-21 Stefan Monnier <monnier@cs.yale.edu>
3150
3151 * syntax.c (back_comment): Simplify string-parity counting (with
3152 the added benefit of handling multiple string-styles as long as
3153 they are not intertwined).
3154 Jump to the slow code as soon as a comment starter is found in
3155 a "string_lossage" position. Fixes the case: " /* " /* " */.
3156
4c343001
DL
31572000-06-21 Dave Love <fx@gnu.org>
3158
3159 * Makefile.in: Use GETLOADAVG_LIBS.
3160
3161 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
3162 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
3163
e6365855
SM
31642000-06-20 Stefan Monnier <monnier@cs.yale.edu>
3165
3166 * syntax.c (describe_syntax): Recognize the `n'estable bit.
3167 (Fforward_comment, scan_lists):
3168 Check the comstyle of single-char comment-starters.
3169 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
3170 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
3171 Check the comstyle of single-char comment-starters.
3172 Clarify control-flow around the Scomment case.
e6365855 3173
5700d2cc
DL
31742000-06-20 Dave Love <fx@gnu.org>
3175
d355bd8a
SM
3176 * fns.c (make_hash_table, maybe_resize_hash_table):
3177 Cast arg of next_almost_prime.
5700d2cc 3178
178c5d9c 3179 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
3180
3181 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
3182 and unistd.h.
3183
4a27bdfb
GM
31842000-06-20 Gerd Moellmann <gerd@gnu.org>
3185
a61d762c
GM
3186 * keyboard.c (adjust_point_for_property): Check if display
3187 property should be treated as intangible by looking at its
3188 value.
3189
178c5d9c 3190 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
3191 (display_prop_intangible_p): New functions.
3192
3193 * dispextern.h (display_prop_intangible_p): Add prototype.
3194
3195 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 3196
4a27bdfb
GM
3197 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
3198 argument to sigprocmask.
3199
3200 * s/sco5.h (sigblock): Redefined to pass a pointer as second
3201 argument to sigprocmask.
3202
3203 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
3204 sigprocmask_set, and pass a pointer to it to sigprocmask.
3205
3206 * sysdep.c (sigprocmask_set): New variable.
3207
3208 * fileio.c (make_temp_name): Don't use `%s' in string passed to
3209 report_file_error.
3210
427ec082
SS
32112000-06-20 Sam Steingold <sds@gnu.org>
3212
3213 * xrdb.c: Don't declare xmalloc, xrealloc.
3214
8972fe79 32152000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
3216
3217 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
3218 (re_comp): Cast gettext return value to avoid complaints when
3219 !HAVE_LIBINTL.
3220
074b6efe
DL
32212000-06-20 Dave Love <fx@gnu.org>
3222
f85c008a
DL
3223 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
3224 HAVE_GETTIMEOFDAY.
3225
5700d2cc 3226 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 3227
d355bd8a 3228 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
3229
3230 * m/alpha.h: Don't declare xmalloc, xrealloc.
3231
0af4f205
DL
3232 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
3233
3234 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
3235
3236 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
3237
3238 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
3239 HAVE_GETWD.
3240
074b6efe
DL
3241 * keyboard.h (poll_for_input_1): Declare.
3242
3243 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
3244
3245 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
3246
3247 * doprnt.c: Don't declare xmalloc, xrealloc.
3248
3249 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
3250 (getenv, ctime, getwd): Removed.
3251 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
3252
3253 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
3254 x_set_tool_bar_lines.
3255
3256 * config.in: Add HAVE_GETWD. Move some definitions above
3257 machine/system includes.
3258
68a5e97b
KH
32592000-06-20 Kenichi Handa <handa@etl.go.jp>
3260
95417e1e
KH
3261 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
3262
68a5e97b
KH
3263 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
3264 contain information about ENCODING.
3265
3266 * fontset.c (FONTSET_ASCII): Use the first element of char table
3267 for an ASCII font, not defalt slot.
3268 (fontset_ref_via_base): If FONTSET doesn't contain information for
3269 C, try the default fontset.
3270 (make_fontset): Don't copy the default fontset.
3271 (fontset_font_pattern): Likewise.
3272 (accumulate_font_info): If ELT is nil, use the corresponding
3273 element in the default fontset.
3274
3b4fa1b2
DL
32752000-06-19 Dave Love <fx@gnu.org>
3276
943e731c
DL
3277 * syntax.c (Fparse_partial_sexp): Doc fix.
3278
3279 * regex.h: Test PROTOTYPES as well as __STDC__.
3280
3b4fa1b2
DL
3281 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
3282 errno, strerror. Put text after #endif in comment.
3283
3284 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
3285 pcc).
3286
3287 * xterm.c (x_frame_of_widget): Likewise.
3288
cdf0357b
GM
32892000-06-19 Gerd Moellmann <gerd@gnu.org>
3290
3291 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
3292 to Vfundamental_mode_abbrev_table.
3293
3294 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
3295 bogus objects are marked. This slows down GC by ~80 percent, but
3296 it might be worth trying when debugging GC-related problems.
3297 This feature requires conservative stack marking to be enabled.
3298
3299 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
3300 returns XLookupChars, reset `modifiers' to zero.
3301
998e9f8c
DL
33022000-06-19 Dave Love <fx@gnu.org>
3303
3304 * mktime.c: Unprotoized.
3305
18e21ce8 33062000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
3307
3308 * data.c (set_internal): If variable is frame-local,
3309 store the new value immediately into the frame parameter alist.
3310
140c4ac6
KR
33112000-06-19 Ken Raeburn <raeburn@gnu.org>
3312
14358466
KR
3313 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
3314 in the custom handler pointer.
3315
140c4ac6
KR
3316 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
3317 value, or checks for CHAR_META can fail when Lisp_Object is a
3318 union type.
3319 * keymap.c (get_keyelt): Likewise.
3320
10d7bf84
KH
33212000-06-19 Kenichi Handa <handa@etl.go.jp>
3322
3323 * ccl.h (struct ccl_program): New member eol_type.
3324 (struct ccl_spec): New member cr_carryover.
3325
3326 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
3327 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
3328
3329 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
3330 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
3331 (decode_eol_post_ccl): New function.
3332 (decode_coding): Don't detect EOL format here for CCL based coding
3333 systems.
3334 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
3335 decode_eol_post_ccl after running the CCL program.
3336 (code_convert_region): Don't detect EOL format here for CCL based
3337 coding systems.
3338 (decode_coding_string): Likewise.
3339
52e386c2
KR
33402000-06-18 Ken Raeburn <raeburn@gnu.org>
3341
3342 * charset.c (update_charset_table): Use XINT on "iso_final_char"
3343 when treating it as an integer.
3344
3345 * coding.h (encode_coding_string): Declare.
3346
3347 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
3348 it as an integer.
3349
3350 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
3351 "xkeymap" to avoid shadowing the "enum map_type" value that needs
3352 to be passed to get_local_map.
3353
3354 * sound.c (Fplay_sound): Don't call make_number on
3355 Frun_hook_with_args count argument.
3356
3357 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
3358 for lisp objects in X event structure data field, when lisp
3359 objects are represented with unions.
3360 (x_scroll_bar_to_input_event): Ditto.
3361
b357b9d4
KR
33622000-06-16 Ken Raeburn <raeburn@gnu.org>
3363
3364 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
3365 termination of string. Fix sense of test whether
3366 Vline_number_display_limit is an integer.
b357b9d4 3367
a871441d
GM
33682000-06-16 Gerd Moellmann <gerd@gnu.org>
3369
a9021acd
GM
3370 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
3371 only if HAVE_X_WINDOWS.
3372
6344985d
GM
3373 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
3374 of titles.
3375
427ec082 3376 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
3377 out of bounds.
3378
228b083e
EZ
33792000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
3380
3381 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
3382 of its headers.
3383
c25b53a2
KH
33842000-06-15 Kenichi Handa <handa@etl.go.jp>
3385
3386 * coding.c (decode_coding_emacs_mule): Always set src_base at the
3387 start of the while loop.
3388
a6981b11
GM
33892000-06-15 Gerd Moellmann <gerd@gnu.org>
3390
e9924e52
GM
3391 * atimer.c (alarm_signal_handler): Add forward declaration.
3392
a6981b11
GM
3393 * data.c (set_internal): Remove debug code.
3394
25fa6deb
GM
33952000-06-14 Gerd Moellmann <gerd@gnu.org>
3396
dce6b995
GM
3397 * Makefile.in (bootstrap-temacs): Add `-I../src'.
3398
9f817ea4
GM
3399 * unexec.c (toplevel) [COFF]: Include coff.h.
3400
3401 * s/lynxos.h: New file.
3402
3403 * keymap.c (Fsingle_key_description): Enclose function key and
3404 event symbol names in angle brackets.
3405
8a4e3c0c
GM
3406 * xdisp.c (setup_echo_area_for_printing): Call
3407 message_log_maybe_newline if message_buf_print is not set.
3408
3409 * print.c (printchar, strout): Don't check message_buf_print
427ec082 3410 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
3411 function does something useful even when message_buf_print is
3412 already set.
3413
25fa6deb
GM
3414 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
3415 variables.
3416 (ensure_echo_area_buffers): Initialize echo buffer's
3417 truncate lines setting to nil.
3418 (with_echo_area_buffer): Don't set the echo buffer's truncate
3419 lines setting here.
8a4e3c0c 3420 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
3421 of message_truncate_lines.
3422 (resize_mini_window): Handle case that lines are truncated.
3423 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
3424 message-truncate-lines.
3425
3426 * keyboard.c (read_char): Bind message-truncate-lines to t
3427 while displaying a help-echo.
3428
3429 * lisp.h (Qmessage_truncate_lines): External declaration.
3430
163dcff3
GM
34312000-06-13 Gerd Moellmann <gerd@gnu.org>
3432
1681ead6
GM
3433 * xdisp.c (Vline_number_display_limit): Renamed from
3434 line_number_display_limit.
3435 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
3436 Extend documentation string. Initialize
3437 Vline_number_display_limit to nil meaning no limit.
3438 (decode_mode_spec): Use Vline_number_display_limit with its new
3439 meaning.
3440
163dcff3
GM
3441 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
3442
18e21ce8 34432000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
3444
3445 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 3446
163dcff3
GM
3447 * xfns.c (x_set_frame_parameters): Comment fix.
3448
3449 * frame.c (store_frame_param): Call swap_in_global_binding if the
3450 variable's current binding was chosen based on this frame.
3451
3452 * data.c (swap_in_global_binding): New function.
3453
a704139d
EZ
34542000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
3455
3456 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
3457 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
3458
9b6610db
EZ
34592000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
3460
3461 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
3462
c68833d2
JR
34632000-06-12 Jason Rumney <jasonr@gnu.org>
3464
3465 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
3466
3467 * w32.h (EMACS_W32_H): Renamed from _NT_H_
3468
3469 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
3470
3471 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
3472
ed1056b3
GM
34732000-06-12 Gerd Moellmann <gerd@gnu.org>
3474
3475 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
3476 (syms_of_xfaces): Defsubr Sdump_colors.
3477 (x_free_colors): Don't treat b&w specially on default visual.
3478 (x_free_dpy_colors): New function.
3479 (free_face_colors): Don't check visual class; it's done
3480 in x_free_colors.
3481
3482 * xterm.c (x_frame_of_widget): New function.
3483 (x_alloc_nearest_color_for_widget): Use it.
3484 (x_copy_dpy_color): New function.
3485 (x_destroy_window): Free various colors.
3486
5050a2ef
KH
34872000-06-12 Kenichi Handa <handa@etl.go.jp>
3488
3489 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
3490
3491 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
3492
3493 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
3494
3495 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
3496
3497 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
3498
fb1b041d
DL
34992000-06-11 Dave Love <fx@gnu.org>
3500
3501 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
3502
ff96b5f4
EZ
35032000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
3504
3505 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
3506
db8eeecd
GM
35072000-06-11 Gerd Moellmann <gerd@gnu.org>
3508
ed1056b3 3509 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
3510 to `XEvent *'.
3511
49b71c5f
KH
35122000-06-10 Kenichi Handa <handa@etl.go.jp>
3513
c479bd55
KH
3514 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
3515 (regex_compile): Fix the code for handling the case of single byte
3516 char and multibyte char being mixed in a range within [...].
3517
ff6a65c2
KH
3518 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
3519 and dst_multibyte members of coding.
3520
49b71c5f
KH
3521 * charset.c (update_charset_table): Update the table
3522 bytes_by_char_head.
3523 (init_charset_once): Initialize elements of bytes_by_char_head to
3524 1 except for leading codes for private charases.
3525
3526 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
3527 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
3528 sequence.
3529
9e80b57d
KR
35302000-06-09 Ken Raeburn <raeburn@gnu.org>
3531
3532 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
3533 access the data it doesn't point to.
3534
f83fe4b4
GM
35352000-06-08 Gerd Moellmann <gerd@gnu.org>
3536
3537 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 3538 will be translated to a switch-frame event when reading the
f83fe4b4
GM
3539 event queue. This is necessary because Emacs otherwise won't
3540 perform a switch-frame to a new frame until some other event, for
3541 example a keystroke event, forces it to do so. This has various
3542 effects, one visible being that the cursor of a frame created with
3543 C-x 5 2 or switched to with a window manager key binding like
3544 A-TAB stays hollow because selected_window isn't on the newly
3545 focused frame until the switch-frame is performed.
3546
3547 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
3548 generating a switch-frame event if necessary.
3549
3550 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
3551
3552 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
3553 it's an integer.
3554
0890801b
KH
35552000-06-08 Kenichi Handa <handa@etl.go.jp>
3556
3557 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
3558 charset.
3559
173cbca8
GM
35602000-06-07 Gerd Moellmann <gerd@gnu.org>
3561
3091c2a6
GM
3562 * window.c (displayed_window_lines): Take empty lines at
3563 the bottom of a window into account.
427ec082 3564
f38952fe
GM
3565 * window.c (displayed_window_lines): New function.
3566 (Fmove_to_window_line): Use displayed_window_lines to determine
3567 the number of lines to move, instead of using the window's height.
3568
3569 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
3570 to stop reading, even if the form read sets point to a different
3571 value when evaluated.
3572
427ec082 3573 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
3574 put the cursor.
3575
6ba6c818
KH
35762000-06-07 Kenichi Handa <handa@etl.go.jp>
3577
3578 * fileio.c (e_write): Free composition data if stored in
3579 coding->cmp_data.
3580
5f1aea9a
GM
35812000-06-06 Gerd Moellmann <gerd@gnu.org>
3582
666852af
GM
3583 * xdisp.c (display_line): Set row's and iterator's
3584 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
3585 Set cursor even if row ends in the middle of a character.
3586 (dump_glyph_row): Print values of new flags.
3587 (redisplay_window) <cursor movement in unchanged window>: When
3588 point has been moved forward, and PT is at the end of the cursor
3589 row, don't place the cursor in the next row if the cursor row ends
3590 in the middle of a character or at ZV.
3591
3592 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
3593 (struct glyph_row): Add starts_in_middle_of_char_p and
3594 ends_in_middle_of_char_p.
3595 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
3596 ends_in_middle_of_char_p flag.
3597 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
3598
d13f3e2e
GM
3599 * term.c (append_glyph): Revert change of 2000-06-06.
3600
3601 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
3602 padding glyph not fitting on line as whole character not
3603 fitting on line.
3604
5f1aea9a
GM
3605 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
3606 this isn't true for images with `:ascent 100'.
3607
10cda9b0
KH
36082000-06-06 Kenichi Handa <handa@etl.go.jp>
3609
ed00559d
KH
3610 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
3611 as modified if it is originally unmodified.
3612
10cda9b0
KH
3613 * term.c (encode_terminal_code): Change the way to check if
3614 terminal coding does any conversion.
3615 (append_glyph): Set glyph->pixel_width correctly.
3616
3617 * xdisp.c (display_line): While checking line continuation, pay
3618 attention to a padding glyph.
3619
1969fae2
GM
36202000-06-05 Gerd Moellmann <gerd@gnu.org>
3621
3622 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
3623
162ccef4
DL
36242000-06-05 Dave Love <fx@gnu.org>
3625
f19f32dd
DL
3626 * xdisp.c: Include fontset.h.
3627
3628 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
3629
3630 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
3631
3632 * dispnew.c: Conditionally include term.h.
3633
3634 * coding.h: Declare code_convert_string_norecord.
3635
3636 * frame.h (struct frame): Use volatile unconditionally.
3637
3638 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
3639
3640 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
3641
3642 * systime.h: Protect against multiple inclusion.
3643 (timezone) [USG5_4]: Define as time_t.
3644
3645 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
3646 (Foptimize_char_table, make_temp_name): Declare.
3647
3648 * Makefile.in (xdisp.o): Depend on fontset.h.
3649
3650 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
3651
3652 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
3653 (Foptimize_char_table, make_temp_name): Declare.
3654
427ec082 3655 * s/irix4-0.h:
162ccef4
DL
3656 * s/irix5-0.h:
3657 * s/netbsd.h: Don't define autoconfiscated MATHERR.
3658
2082fe81
DL
36592000-06-02 Dave Love <fx@gnu.org>
3660
3661 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
3662
dcf671d2
GM
36632000-06-02 Gerd Moellmann <gerd@gnu.org>
3664
3665 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 3666 result face, set flags in that face indicating that colors may not
dcf671d2
GM
3667 be freed.
3668
3669 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
3670 glyph, use the ASCII NUL character to determine the face.
3671
d42122a3
DL
36722000-06-02 Dave Love <fx@gnu.org>
3673
3674 * sysdep.c: Conditionally include stdlib.h, unistd.h.
3675 (VFORK_RETURN_TYPE): Remove.
427ec082 3676
d42122a3
DL
3677 * config.in: Add NO_MATHERR.
3678
dd432f16
DL
36792000-06-01 Dave Love <fx@gnu.org>
3680
90aa4ea8
DL
3681 * cmds.c (internal_self_insert): Don't check
3682 Vbefore_change_function, Vafter_change_function.
3683
3684 * insdel.c (signal_before_change, signal_after_change): Likewise.
3685
3686 * buffer.c (Vbefore_change_function, Vafter_change_function):
3687 Variables and their initializations deleted.
3688
2330c9d4
DL
3689 * callint.c (Fcall_interactively): Doc fix.
3690
dd432f16
DL
3691 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
3692
bf9e8804
DL
36932000-05-31 Dave Love <fx@gnu.org>
3694
3695 * textprop.c: Revert last change -- duplicated.
3696
3694b4ab
GM
36972000-05-31 Gerd Moellmann <gerd@gnu.org>
3698
3699 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
3700 in #if 0.
3701
3702 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
3703
f14156cd
JR
37042000-05-31 Jason Rumney <jasonr@gnu.org>
3705
8119aab8
JR
3706 * search.c (Fre_search_forward, Fre_search_backward)
3707 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
3708
f14156cd
JR
3709 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
3710
4aab9be3
JR
37112000-05-30 Jason Rumney <jasonr@gnu.org>
3712
3713 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
3714 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
3715
3716 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
3717 member.
3718
3719 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
3720 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
3721 expand a nil default_filename.
3722
3723 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
3724 pointer to glyph_to_pixel_coords, not a frame.
3725
3726 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
3727 coding.h to dependencies.
3728
3729 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
3730
3731 * w32console.c (glyph_to_pixel_coords): Change first parameter to
3732 window pointer to be consistent with w32term.c and xterm.c.
3733
3734 * w32fns.c: Format and doc changes to bring closer to xfns.c.
3735 (VIETNAMESE_CHARSET): Define if not defined in system headers.
3736 (Qline_spacing, Qcenter): New variables.
3737 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
3738 (x_set_line_spacing): New function.
3739 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
3740 macros.
3741 (x_specified_cursor_type): New function.
3742 (x_set_cursor_type): Use it.
3743 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
3744 and icon strings.
3745 (validate_x_resource_name, x_get_resource_string): Measure lengths
3746 of external strings in bytes.
3747 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
3748 GetTextExtentPoint32 with NULL title.
3749 (Fx_create_frame): Initialize Qline_spacing.
3750 (w32_load_system_font): Initialize font->double_byte_p.
3751 (x_to_w32_charset): Use Vw32_charset_info_alist.
3752 (Image, busy cursor, tooltip functions): Merged changes from
3753 xfns.c. Not yet functional on Windows.
3754
3755 * w32gui.h (W32FontStruct): Add double_byte_p member.
3756
3757 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
3758 (emacs_button_translation): Use it.
3759 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
3760 in `mask' to be set.
3761
3762 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
3763 menu strings.
3764
3765 * w32term.c: Format and doc changes to bring closer to xterm.c.
3766 (w32_char_font_type): New enum.
3767 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
3768 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
3769 (w32_encode_char): New function.
3770 (x_encode_char): Removed.
3771 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
3772 x_encode_char and w32_font_is_double_byte.
3773 (x_produce_image_glyph): Use image_ascent.
3774 (x_produce_glyphs): Use new version of w32_per_char_metric and
3775 handle NULL return value. Allow extra line spacing.
3776 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
3777 (w32_get_glyph_overhangs): Remove unicode_p param. Use
3778 w32_font_type member of glyph instead.
3779 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
3780 (fast_find_position): Make sure not to consider rows not visible
3781 in the window.
3782 (w32_read_socket) [WM_MENUSELECT]: Cannot call
3783 w32_menu_display_help with input blocked, as it can abort.
3784 (x_display_and_set_cursor): Choose cursor depending
3785 on buffer-local value of cursor_type.
3786 (x_draw_bar_cursor): Add parameter WIDTH.
3787
3788 * w32term.h (CP_DEFAULT): Define.
3789 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
3790
10fc3187
GM
37912000-05-30 Gerd Moellmann <gerd@gnu.org>
3792
3793 * search.c (Fre_search_forward, Fre_search_backward)
3794 (Fposix_search_backward, Fposix_search_forward): Doc fix.
3795
d0555360
KH
37962000-05-30 Kenichi Handa <handa@etl.go.jp>
3797
3798 * coding.c (detect_coding_iso2022): Fix code for checking
3799 CODING_CATEGORY_MASK_ISO_8_2.
3800
f1ad044f
SM
38012000-05-29 Stefan Monnier <monnier@cs.yale.edu>
3802
3803 * regex.c (PREFETCH_NOLIMIT): New function.
3804 (re_match_2_internal): Use it and adjust the end_match_2 logic.
3805
84ec3b4b
GM
38062000-05-29 Gerd Moellmann <gerd@gnu.org>
3807
66254a13
GM
3808 * syntax.c (find_defun_start): Move test for
3809 open_paren_in_column_0_is_defun_start outside of the loop.
3810
49e70dec
GM
3811 * xdisp.c (redisplay_window): Really switch buffers when
3812 displaying mode lines, and temporarily set selected_frame to the
3813 frame of the window that's redisplayed.
3814
84ec3b4b
GM
3815 * xfaces.c (free_realized_faces): Block/unblock input.
3816 (free_realized_multibyte_face): Ditto.
3817
869a3a14
DL
38182000-05-29 Dave Love <fx@gnu.org>
3819
3820 * textprop.c (Qkeymap): New variable.
3821 (syms_of_textprop): Intern it.
3822
3823 * keymap.c: Include intervals.h.
3824 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
3825
3826 * Makefile.in (keymap.o): Depend on intervals.h.
3827
3828 * keyboard.c (menu_bar_items, tool_bar_items)
3829 (Fexecute_extended_command): Deal with `keymap' property.
3830 (read_key_sequence): Track map from `keymap' property as well as
3831 `local_map'.
3832
3833 * intervals.c (get_local_map): Extra arg to allow looking for
3834 `keymap' too.
3835
3836 * intervals.h (map_property): New enum.
3837 (get_local_map): Extra arg using it.
3838 (Qkeymap): Declare.
3839
84ec3b4b 3840 * lisp.h (get_local_map): Don't declare here.
869a3a14 3841
89d0c844
KH
38422000-05-29 Kenichi Handa <handa@etl.go.jp>
3843
3844 * Makefile.in (callproc.o): Depend on composite.h.
3845
3846 * callproc.c: Include composite.h.
3847 (Fcall_process): Handle composition correctly.
3848
3849 * coding.h (coding_allocate_composition_data): Extern it.
3850 (coding_restore_composition): Likewise.
3851
3852 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
3853 yet allocated, finish decoding with result
3854 CODING_FINISH_INSUFFICIENT_CMP.
3855 (coding_allocate_composition_data): Make it non-static.
3856 (coding_restore_composition): Likewise.
3857
797a084a
EZ
38582000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
3859
3860 * charset.c (syms_of_charset): Revert last change.
3861
cf872af5
EZ
38622000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
3863
3864 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
3865 charsets as unibyte, with 1-column screen width. Sent by Kenichi
3866 Handa.
cf872af5 3867
5b1ae051
EZ
38682000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
3869
3870 * charset.c (syms_of_charset): Set width of character sets
3871 eight-bit-control and eight-bit-graphic to 1 column.
3872
34ec9ebe
GM
38732000-05-26 Gerd Moellmann <gerd@gnu.org>
3874
3875 * config.in (HAVE_SPEED_T): New define.
3876
3877 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
3878 `extern speed_t'.
3879
dd854dc2
DL
38802000-05-26 Dave Love <fx@gnu.org>
3881
3882 * coding.c (shrink_decoding_region): Initialize eol_conversion.
3883
3884 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
3885 (Fsubr_arity): New function.
3886 (syms_of_data): Install them.
3887
ba9f8f95
KH
38882000-05-26 Kenichi Handa <handa@etl.go.jp>
3889
0f3e0672
KH
3890 * charset.c (init_charset_once): Set the table bytes_by_char_head
3891 correctly.
3892
cebefb44
KH
3893 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
3894 the default fontset to what Emacs uses by default.
0f3e0672
KH
3895 (check_registry_encoding): This function deleted.
3896 (Fset_fontset_font): Remove the adhoc condition for the default
3897 fontset. Allow cons in FONTNAME.
cebefb44 3898
0f3e0672
KH
3899 * fns.c (map_char_table): Ignore char-table entries for
3900 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 3901
7a18af49
KR
39022000-05-25 Ken Raeburn <raeburn@gnu.org>
3903
3904 * emacs.c (main): Initialize keyboard syms before initializing
3905 window code, so face names are available.
3906
d2af47df
SM
39072000-05-25 Stefan Monnier <monnier@cs.yale.edu>
3908
3909 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
3910 of an anchor at the beginning of a shy-group.
3911
fc6a6a4e
GM
39122000-05-25 Gerd Moellmann <gerd@gnu.org>
3913
3914 * xdisp.c (handle_invisible_prop): Don't try to skip over
3915 invisible text if end of text is already reached.
3916
005f0d35
DL
39172000-05-25 Dave Love <fx@gnu.org>
3918
02513cdd
DL
3919 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
3920
005f0d35
DL
3921 * coding.c (encode_eol): Add null statement after label.
3922
89f6ca4e
EZ
39232000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
3924
3925 * w16select.c (Fw16_set_clipboard_data): Fix the change from
3926 2000-05-20.
3927
a4e1759e
KH
39282000-05-25 Kenichi Handa <handa@etl.go.jp>
3929
3930 * ccl.c (ccl_driver): Fix previous change.
3931
eacfd7fe
KH
39322000-05-25 Kenichi Handa <handa@etl.go.jp>
3933
46ab33a9
KH
3934 * coding.c (run_pre_post_conversion_on_str): Set point to the
3935 beginning of buffer before calling coding->post_read_conversion.
3936 (decode_coding_string): Give correct args to
3937 run_pre_post_conversion_on_str.
3938 (encode_coding_string): Likewise.
3939
eacfd7fe
KH
3940 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
3941 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
3942 eight-bit-graphic correctly.
3943
f8569325
DL
39442000-05-24 Kenichi HANDA <handa@etl.go.jp>
3945
3946 * fileio.c (Finsert_file_contents): Even if a file is not found,
3947 execute codes for setting up coding system. Call
3948 after-insert-file-functions unconditionally.
3949
04545643
GM
39502000-05-24 Gerd Moellmann <gerd@gnu.org>
3951
3952 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
3953 BSD_PGRPS are not defined.
3954
747d90ea
KH
39552000-05-24 Kenichi Handa <handa@etl.go.jp>
3956
3957 * charset.c (update_charset_table): Accept nil in LONG_NAME and
3958 DESCRIPTION.
3959 (syms_of_charset): Avoid building same strings.
3960
716e3b88
GM
39612000-05-23 Gerd Moellmann <gerd@gnu.org>
3962
3963 * lread.c (Fload): Add a comment about the meaning of
3964 Vuser_init_file being t.
3965
3966 * puresize.h (BASE_PURESIZE): Increase to 675000.
3967
3968 * s/gnu-linux.h (setpgrp): Don't define it here because this
3969 prevents compilation on GNU/Linux systems with glib 2.2.
3970
3971 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
3972 as setpgid.
427ec082 3973
9aeb39fa
EZ
39742000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
3975
3976 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
3977 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
3978 version.
3979 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
3980
29ced61b
KH
39812000-05-23 Kenichi Handa <handa@etl.go.jp>
3982
0574a2ed
KH
3983 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
3984 unconditionally.
3985
3d80f24d
KH
3986 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
3987
3988 * term.c (encode_terminal_code): Set coding->src_multibyte
3989 properly.
3990
29ced61b
KH
3991 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
3992
d7e00792
KH
39932000-05-22 Kenichi Handa <handa@etl.go.jp>
3994
c9d80d38
KH
3995 * keyboard.c (read_char): Allow character codes 128..255 to be
3996 handled by input-method-function.
3997
d7e00792
KH
3998 * insdel.c (adjust_markers_for_replace): Fix previous change.
3999 (adjust_after_replace): If PREV_TEXT is nil, call
4000 adjust_markers_for_insert, not adjust_markers_for_replace.
4001
087121cc 40022000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 4003
087121cc
GM
4004 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
4005 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
4006 [HAVE_GRANDPT]: Define.
4007 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
4008
4009 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
4010 like SYSV_PTYS.
4011
4012 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
4013
4014 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
4015
c9671f81
KH
40162000-05-20 Kenichi Handa <handa@etl.go.jp>
4017
4018 The following changes are to handle 8-bit characters in a
4019 multibyte buffer/string without facing with byte combining
4020 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
4021 eight-bit-graphic (for 0xA0..0xFF) are introduced.
4022
4023 * Makefile.in (fns.o): Depend on charset.h.
4024
4025 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
4026 convert it to unibyte.
4027 (make_string): Use parse_str_as_multibyte, not chars_in_text.
4028
4029 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
4030 apparent char boundary.
4031 (Fset_buffer_multibyte): Convert 8-bit characters in the range
4032 0x80..0x9F to/from multibyte form.
4033
4034 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
4035 to unibyte.
4036
4037 * callproc.c (Fcall_process): Always encode an argument string if
4038 it is multibyte. Setup src_multibyte and dst_multibyte members of
4039 process_coding properly.
ce75fd23 4040
c9671f81
KH
4041 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
4042 SPLIT_NON_ASCII_CHAR.
4043
4044 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
4045 as is.
4046 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
4047
4048 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
4049 variables.
4050 (SPLIT_CHARACTER_SEQ): This macro deleted.
4051 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
4052 valid.
4053 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
4054 and eight-bit-graphic.
4055 (char_to_string): Likewise. Signal an error for too large
4056 character code.
4057 (char_printable_p): Return 0 for 8-bit characters.
4058 (update_charset_table): Update iso_charset_table only when a final
4059 character is non-negative.
4060 (find_charset_in_text): Renamed from find_charset_in_str.
4061 Arguments and return value changed. Callers changed.
4062 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
4063 be -1 if CHARSET is used only internally.
4064 (Fmake_char_internal): Handle new charsets; eight-bit-control and
4065 eight-bit-graphic.
4066 (Fcharset_after): Simplified.
4067 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
4068 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
4069 (multibyte_chars_in_text): Simplified by assuming there's no
4070 invalid multibyte sequence.
4071 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
4072 str_as_unibyte): New functions.
4073 (Fstring): Simpified by assuming that byte combining never
4074 happens.
4075 (init_charset_once): Initialization for
4076 LEADING_CODE_8_BIT_CONTROL.
4077 (syms_of_charset): Intern and staticpro Qeight_bit_control and
4078 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
4079 eight-bit-control and eight-bit-graphic.
4080
4081 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
4082 CHARSET_8_BIT_GRAPHIC): New macros.
4083 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
4084 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
4085 (CHARSET_REVERSE_CHARSET): Likewise.
4086 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
4087 eight-bit-graphic.
4088 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
4089 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
4090 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
4091 encounter an invalid multibyte sequence.
4092 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
4093 sequence is always valid.
4094 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
4095 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
4096 macros.
4097 (CHAR_STRING): For 8-bit characters, call char_to_string.
4098 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
4099 multibyte sequence is always valid.
4100 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
4101 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
4102 str_as_unibyte): Extern them.
4103 (BCOPY_SHORT): Fix a bug.
4104 (CHAR_LEN): This macro deleted. Callers changed to use
4105 CHAR_BYTES.
4106 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
4107 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
4108 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
4109
bd4bde7f 4110 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
4111 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
4112 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
4113 EMIT_BYTES): New macros.
4114 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
4115 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
4116 macros deleted.
4117 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
4118 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
4119 check the validity of multibyte sequence.
4120 (decode_coding_emacs_mule): New function.
4121 (encode_coding_emacs_mule): New macro.
4122 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
4123 the source.
4124 (DECODE_ISO_CHARACTER): Just return a character code.
4125 (DECODE_COMPOSITION_START): Set coding->result instead of result.
4126 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
4127 EMIT_CHAR to produced decoded characters. Exit the loop only by
4128 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
4129 block here.
4130 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
4131 only position codes for an invalid character.
4132 (encode_designation_at_bol): Return new destination pointer. 5th
4133 arg DSTP is changed to DST.
4134 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
4135 from the source by ONE_MORE_CHAR. Don't handle the case of last
4136 block here.
4137 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
4138 macros deleted.
4139 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
4140 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
4141 TWO_MORE_BYTES to fetch a byte from the source.
4142 (encode_eol): Pay attention to coding->src_multibyte.
4143 (detect_coding, detect_eol): Preserve members src_multibyte and
4144 dst_multibyte.
4145 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
4146 (encoding_buffer_size): Set magnification to 3 for all coding
4147 systems that require encoding.
4148 (ccl_coding_driver): For decoding, be sure that the result is
4149 valid multibyte sequence.
4150 (decode_coding): Initialize coding->errors and coding->result.
4151 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
4152 and raw-text, always call decode_eol. Handle the case of last
4153 block here. If not coding->dst_multibyte, convert the resulting
4154 sequence to unibyte.
4155 (encode_coding): Initialize coding->errors and coding->result.
4156 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
4157 and raw-text, always call encode_eol. Handle the case of last
4158 block here.
4159 (shrink_decoding_region, shrink_encoding_region): Detect cases
4160 that we can't skip data more rigidly.
4161 (code_convert_region): Setup src_multibyte and dst_multibyte
4162 members of coding. For decoding, if the buffer is multibyte,
4163 convert the source sequence to unibyte in advance. For encoding,
4164 if the buffer is multibyte, convert the resulting sequence to
4165 multibyte afterward.
4166 (run_pre_post_conversion_on_str): New function.
4167 (code_convert_string): Deleted and divided into the following two.
4168 (decode_coding_string, encode_coding_string): New functions.
4169 (code_convert_string1, code_convert_string_norecord): Call one of
4170 above.
4171 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
4172 MAKE_NON_ASCII_CHAR.
4173 (Fset_terminal_coding_system_internal,
4174 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
4175 and dst_multibyte members.
4176 (init_coding_once): Initialize iso_code_class with new enum
4177 ISO_control_0 and ISO_control_1.
4178
4179 * coding.h (enum iso_code_class_type): Member ISO_control_code is
4180 devided into ISO_control_0 and ISO_control_1.
4181 (struct coding_system): New members src_multibyte, dst_multibyte,
4182 errors, and result. Delete member fake_multibyte.
4183 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
4184 nonzero.
4185 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
4186 nonzero.
4187
4188 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
4189 (Faset): Likewise.
4190
4191 * editfns.c (Fformat): Be sure to convert 8-bit characters to
4192 multibyte form.
4193 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
4194 combining occurs.
4195 (Ftranspose_region): Delete codes for handling byte combining.
4196
4197 * fileio.c (Finsert_file_contents): Setup src_multibyte and
4198 dst_multibyte members of coding. On handling REPLACE on unibyte
4199 buffer, convert the result of decode_coding to unibyte. On
4200 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 4201 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
4202 multibyteness of the source (buffer or string).
4203
4204 * fns.c (concat): Handle 8-bit characters correctly.
4205 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
4206 unibyte in the result.
4207 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
4208 valid multibyte form in the result.
4209 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
4210 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
4211 return -1, signal an error.
4212 (base64_encode_1): New arg MULTIBYTE. Get each character by
4213 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
4214 character is found, return -1.
4215 (Fbase64_decode_region): Delete codes for handling byte-combining.
4216 Treat each decoded byte as a unibyte character.
4217 (Fbase64_decode_string): Return unibyte string.
4218 (Fcompare_strings, concat, string_byte_to_char): Use
4219 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
4220 FETCH_STRING_CHAR_ADVANCE.
4221 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
4222 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
4223
4224 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
4225 SPLIT_NON_ASCII_CHAR.
4226 (fontset_ref_via_base, fontset_set): Likewise
4227
4228 * insdel.c (adjust_markers_for_record_delete): Deleted.
4229 (adjust_markers_for_insert): Argument changed. Caller changed.
4230 (adjust_markers_for_replace): Likewise.
4231 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
4232 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
4233 (copy_text): Delete unused local varialbe c_save. For converting
4234 to multibyte, be sure to make all 8-bit characters in valid
4235 multibyte form.
4236 (count_size_as_multibyte): Handle 8-bit characters correctly.
4237 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
4238 adjust_after_replace, replace_range, del_range_2)
4239 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
4240 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
4241 adjust_after_replace, replace_range, del_range_2) Delete codes for
4242 handling byte combining.
4243 (adjust_before_replace): Deleted.
427ec082 4244
c9671f81
KH
4245 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
4246 SPLIT_NON_ASCII_CHAR.
4247 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
4248 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
4249 unconditionally.
4250 (Fkey_description): Likewise.
4251
4252 * lread.c (read1): On reading multibyte string, be sure to make
4253 all 8-bit chararacters in valid multibyte form.
4254 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
4255
4256 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
4257 unconditionally.
4258
4259 * process.c (Fstart_process): GCPRO current_dir before calling
4260 Ffind_operation_coding_system. Encode arguments here.
4261 (create_process): Don't encode arguments here. Setup
4262 src_multibyte and dst_multibyte members of struct coding.
4263 (read_process_output): Setup src_multibyte and dst_multibyte
4264 members of struct coding. If the output is to multibyte buffer,
4265 always decode the output of the process. Adjust the
4266 representation of 8-bit characters to the multibyteness of the
4267 output.
4268 (send_process): Setup coding->src_multibyte according to the
4269 multibyteness of the source.
4270
4271 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
4272 unconditionally.
4273 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
4274 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
4275
4276 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
4277 CHAR_LEN.
4278
4279 * w16select.c (Fw16_set_clipboard_data): Setup members
4280 src_multibyte and dst_multibyte of coding. Adjusted for the
4281 change for find_charset_in_str.
4282 (Fw16_get_clipboard_data): Likewise.
4283
4284 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
4285 dst_multibyte of coding.
4286 (x_to_w32_font): Likewise.
4287
4288 * w32select.c (Fw32_set_clipboard_data): Setup members
4289 src_multibyte and dst_multibyte of coding. Adjusted for the
4290 change for find_charset_in_str.
4291 (Fw32_get_clipboard_data): Likewise.
4292
4293 * xdisp.c (get_next_display_element): Handle 8-bit characters
4294 correctly.
4295 (next_element_from_display_vector): Use CHAR_BYTES instead of
4296 CHAR_LEN.
4297 (disp_char_vector): Use SPLIT_CHAR instead of
4298 SPLIT_NON_ASCII_CHAR.
4299
4300 * xselect.c (selection_data_to_lisp_data): Setup members
4301 src_multibyte and dst_multibyte of coding. Adjusted for the
4302 change for find_charset_in_str.
4303 (lisp_data_to_selection_data): Likewise.
4304
5f64c9e0
GM
43052000-05-19 Gerd Moellmann <gerd@gnu.org>
4306
2b63d473
GM
4307 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
4308 buffer.
4309
5f64c9e0
GM
4310 * dispextern.h (Vimage_types): Add extern declaration.
4311
4312 * xdisp.c (Vimage_types): Moved here from xfns.c.
4313 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
4314
4315 * xfns.c (Vimages_types): Moved to xdisp.c.
4316 (syms_of_xfns): Move `image-types' to xdisp.c.
4317
4318 * w32fns.c (Vimage_types): Removed.
4319 (syms_of_w32fns): Remove `image-types'.
4320
813086ea
KH
43212000-05-18 Kenichi Handa <handa@etl.go.jp>
4322
4323 * fns.c (map_char_table): Pay attention to character number of
4324 charset. Check the validity of charset at the first level. For
4325 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
4326 the default value.
4327
4328 * fontset.c: Include "buffer.h".
4329 (fs_load_font): If the face has fontset, record the face ID in
4330 that fontset.
4331 (Finternal_char_font): New function.
4332 (accumulate_font_info): New function.
4333 (Ffontset_info): Rewritten for the new fontset implementation.
4334 (syms_of_fontset): Register Vdefault_fontset in the first element
4335 of Vfontset_table. Include Vdefault_fontset in
4336 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
4337 function.
4338
bdaebbf0
DL
43392000-05-16 Dave Love <fx@gnu.org>
4340
4341 * m/iris5d.h: Deleted -- unused.
4342
cb613bb8
GM
43432000-05-16 Gerd Moellmann <gerd@gnu.org>
4344
b15f3b77
GM
4345 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
4346 `invalid' instead of `illegal'.
4347
4348 * indent.c (Fmove_to_column): When ending within a tab, insert
4349 spaces first so that markers at the end of the tab get adjusted.
4350
835c1b36
GM
4351 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
4352 buffer list that wasn't selected in that frame.
4353
cb613bb8
GM
4354 * filelock.c (get_boot_time): To obtain an 8 char file name, which
4355 is needed on mescaline, use a 2 char prefix, and call
4356 make_temp_name with second arg non-zero.
4357
4358 * fileio.c (make_temp_name): New function, extracted from
4359 Fmake_temp_name.
4360 (Fmake_temp_name): Use it.
4361
f685bea9
EZ
43622000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
4363
4364 * window.c (coordinates_in_window): Subtract 1 when computing
4365 right_x.
4366
a1b8d58b
GM
43672000-05-15 Gerd Moellmann <gerd@gnu.org>
4368
4369 * Makefile.in (lisp): Add env.elc.
4370
4371 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
4372
a265079f
GM
43732000-05-12 Gerd Moellmann <gerd@gnu.org>
4374
4375 * search.c (Freplace_match): Handle case of `\N' in the
4376 replacement when there's no group N.
4377
da4496b6
GM
43782000-05-11 Gerd Moellmann <gerd@gnu.org>
4379
0ace421a
GM
4380 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
4381 of the message to message_dolog.
4382
1172eb8d
GM
4383 * keyboard.c (read_char): Don't clear current message for help
4384 events; let the code handling help events handle this. Change
4385 code detecting help events that should be ignored.
4386
da4496b6
GM
4387 * xdisp.c (handle_single_display_prop): Don't try to set PT if
4388 we're interating over a string.
4389
0623e40f
DL
43902000-05-09 Dave Love <fx@gnu.org>
4391
4392 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
4393 that offset before writing. Move gcpro region past call of
4394 Ffile_regular_p.
4395
bae2503b
DL
43962000-05-04 Dave Love <fx@gnu.org>
4397
4398 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
4399
ec82fb2f
GM
44002000-05-04 Gerd Moellmann <gerd@gnu.org>
4401
4402 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
4403 of inserted characters when BUF equals the current buffer, and PT
4404 is in front of or equal to FROM.
4405
cbf18892
GM
44062000-05-03 Gerd Moellmann <gerd@gnu.org>
4407
4ff40dd0
GM
4408 * xdisp.c (handle_single_display_prop): If display property value
4409 is invalid, or something not supported on the frame, restore
4410 iterator's position to what it was initially. Make sure to return
4411 0 for invalid and unsupported property values.
4412
cbf18892
GM
4413 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
4414 that x_per_char_metric returns null.
4415
1b0672c3
GM
44162000-05-02 Gerd Moellmann <gerd@gnu.org>
4417
576da55d
GM
4418 * xterm.h (struct face): Add forward declaration.
4419 (struct image): Ditto.
4420 (image_ascent): Add prototype.
4421
4422 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
4423 (x_draw_image_relief, x_draw_image_foreground_1): Call function
4424 image_ascent instead of using IMAGE_ASCENT.
4425
4426 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
4427 (IMAGE_ASCENT): Removed.
4428
4429 * xfns.c (Qcenter): New variable.
4430 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
4431 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
4432 (image_ascent): New function.
4433 (lookup_image): Recognize `:ascent center'.
4434 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
4435 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
4436 (xbm_load): Don't set image's ascent here.
4437 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
4438 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
4439 check ascent values here.
4440 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
4441 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
4442 (syms_of_xfns): Initialize Qcenter.
4443
1b0672c3
GM
4444 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
4445 to the limits, increase the limits.
4446
0d7811ed
KH
44472000-05-01 Kenichi Handa <handa@etl.go.jp>
4448
4449 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
4450 Check Vfont_encoding_alist against the full name of the opened
4451 font.
4452
a943a5ca
GM
44532000-04-28 Gerd Moellmann <gerd@gnu.org>
4454
4455 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
4456 taller than the window.
4457
5dba1e29
KH
44582000-04-28 Kenichi Handa <handa@etl.go.jp>
4459
4460 * xfaces.c (realize_x_face): Fix the argument of the second
4461 xassert. BASE_FACE may not be a face for ASCII.
4462
353964e3
GM
44632000-04-27 Gerd Moellmann <gerd@gnu.org>
4464
c76e04a8
GM
4465 * print.c (print_object): Treat print-length < 0 as nil.
4466
4467 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
4468
4469 * s/freebsd.h (TERMCAP_OBJ): Removed.
4470 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
4471
4472 * lread.c (read1): Don't treat period followed by certain
4473 characters as symbol start.
4474
4475 * xfns.c (slurp_file): New function.
4476 (xbm_image_p): Handle case of in-memory XBM files.
4477 (xbm_scan): Rewritten to work on memory buffers instead of files.
4478 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
4479 Work on memory buffers instead of files. If DATA is null test
4480 if buffer looks like an in-memory XBM file.
4481 (xbm_load_image): Renamed from xbm_load_image_file. Work on
4482 memory buffers instead of files.
4483 (xbm_file_p): New function.
4484 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
4485
353964e3
GM
4486 * lread.c (end_of_file_error): New function.
4487 (read1): Call it instead of signaling `end-of-file' directly.
4488
427ec082 4489 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
4490 with Fprinc instead of Fprin1.
4491
24d744ac
KR
44922000-04-26 Ken Raeburn <raeburn@gnu.org>
4493
4494 * window.c (freeze_window_start): Check that minibuffer scroll
4495 window isn't nil before extracting the window structure pointer
4496 from it.
4497
4498 * undo.c (record_delete): If we hit the end of the undo list, stop
4499 picking elements apart.
4500
7464346d
GM
45012000-04-26 Gerd Moellmann <gerd@gnu.org>
4502
4503 * xdisp.c (display_line): If lines are continued, restore
4504 iterator's ascent/descent information to the values before the
4505 first glyph not fitting on the line.
4506
612839b6
GM
45072000-04-25 Gerd Moellmann <gerd@gnu.org>
4508
4509 * xdisp.c (try_window_id) <all changes above window start>: Adjust
4510 positions in glyph matrix. Don't compute new window end
4511 positions.
4512
4513 * dispnew.c (increment_matrix_positions): Renamed from
4514 increment_glyph_matrix_buffer_positions.
4515 (increment_row_positions): Renamed from
4516 increment_glyph_row_buffer_positions.
4517
4518 * dispextern.h: Change names of renamed functions from dispnew.c
4519 in prototypes.
4520
cc181e95
GM
45212000-04-24 Gerd Moellmann <gerd@gnu.org>
4522
abfcc168
GM
4523 * fileio.c (Fdo_auto_save): Create directories for auto-save
4524 list file if necessary.
4525
cc181e95
GM
4526 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
4527 from buffer or frame.
4528 (automatic_hscrolling_p): New variable.
4529 (hscroll_windows): Scroll windows horizontally only if automatic
4530 hscrolling is allowed.
4531 (syms_of_xdisp): New variable `automatic-hscrolling'.
4532
4533 * frame.h (struct frame): Add member extra_line_spacing.
4534
4535 * xfns.c (x_set_line_spacing): New function.
4536 (Fx_create_frame): Set line spacing from resources.
4537 (Qline_spacing): New variable.
4538 (syms_of_xfns): Initialize Qline_spacing.
427ec082 4539
cc181e95
GM
4540 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
4541
4542 * buffer.c (init_buffer_once): Handle extra_line_spacing.
4543 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 4544 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
4545 extra_line_spacing from default value.
4546 (init_buffer_once): Initialize default value of extra_line_spacing.
4547
4548 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
4549 and extra3.
4550
4551 * xterm.c (x_produce_glyphs): Remove reference to struct it's
4552 prompt_width. Add extra line spacing.
4553
4554 * term.c (produce_glyphs): Remove reference to struct it's
4555 prompt_width.
4556
4557 * dispextern.h (struct it): Remove member prompt_width, add
4558 extra_line_spacing.
4559
58827478
GM
45602000-04-22 Gerd Moellmann <gerd@gnu.org>
4561
4562 * dispnew.c (update_frame_line): When writing a whole line, make
4563 sure cursor is in the right row afterwards, otherwise a use of
4564 capability `ch' in cmgoto might leave the cursor in the row below.
4565
25a87f42
GM
45662000-04-21 Gerd Moellmann <gerd@gnu.org>
4567
4568 * lisp.h (struct Lisp_Buffer_Cons): Remove.
4569
4570 * keyboard.c (timer_check): Fix typo in comment.
4571
54edf5c2
KH
45722000-04-21 Kenichi Handa <handa@etl.go.jp>
4573
4574 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
4575 name change: ch -> character.
4576
3a64eef5
GM
45772000-04-20 Gerd Moellmann <gerd@gnu.org>
4578
4579 * keyboard.c (echo_message_buffer): New variable.
4580 (echo_now): Set echo_message_buffer to the echo area buffer used
4581 to display the echo.
4582 (cancel_echoing): Reset echo_message_buffer to nil.
4583 (read_char): Code rewritten that handles canceling an echo or
4584 echoing a dash, respectively.
4585
4586 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
4587 directory doesn't exist.
4588
6142fdcb
DL
45892000-04-19 Dave Love <fx@gnu.org>
4590
4591 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
4592 (concat): Don't allow numeric args.
4593 (Fconcat): Doc change.
6142fdcb 4594
ac6b5352
SM
45952000-04-19 Stefan Monnier <monnier@cs.yale.edu>
4596
4597 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
4598 instead define end_match(1|2) more carefully.
4599 Use GET_CHAR_BEFORE_2 for `begline'.
4600
cb9215e4
GM
46012000-04-19 Gerd Moellmann <gerd@gnu.org>
4602
5e3dac3f
GM
4603 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
4604 on 64-bit systems where NULL is defined as `0'.
4605
4606 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
4607 the `variable argument list' to make it work on Alpha.
4608
cb9215e4
GM
4609 * m/alpha.h (_LP64) [!_LP64]: Define.
4610 (ORDINARY_LINK): Define for NetBSD.
4611
4612 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 4613
f532dca0
DL
46142000-04-19 Dave Love <fx@gnu.org>
4615
c750667e
DL
4616 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
4617 change.
4618
4619 * Makefile.in (LIBS): Don't use.
4620 (GETLOADAVG_OBJ): Define again.
4621 (otherobj): Add GETLOADAVG_OBJ.
4622
f532dca0
DL
4623 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
4624
1c7e22fd
GM
46252000-04-18 Gerd Moellmann <gerd@gnu.org>
4626
f6d3257b
GM
4627 * lread.c (read_filtered_event): Cancel and start busy cursor.
4628
427ec082 4629 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
4630 that the per-character metrics may be null.
4631
e10f64e7
GM
46322000-04-17 Gerd Moellmann <gerd@gnu.org>
4633
0daee095
GM
4634 * buffer.c (clone_per_buffer_values): New function.
4635 (Fmake_indirect_buffer): Add optional argument CLONE. Call
4636 clone_per_buffer_values if CLONE is not nil.
4637
e10f64e7
GM
4638 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
4639
38687d43
DL
46402000-04-16 Dave Love <fx@gnu.org>
4641
4642 * Makefile.in: Remove obsolete localcpp stuff.
4643 (GETLOADAVG_OBJ): Don't define.
4644 (obj): Move LIBOBJS...
4645 (otherobj): ... to here.
4646 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
4647 whitespace-only lines after the continuation (Irix).
4648
c21c7262
GM
46492000-04-14 Gerd Moellmann <gerd@gnu.org>
4650
4651 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
4652
4653 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
4654
314767c0
DL
46552000-04-14 Dave Love <fx@gnu.org>
4656
4657 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
4658 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
4659 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
4660 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
4661 NLIST_STRUCT.
4662
4663 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
4664 autoconfiscated HAVE_GETLOADAVG.
4665
4666 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
4667 BROKEN_MKTIME.
4668
a2522dca
GM
46692000-04-14 Gerd Moellmann <gerd@gnu.org>
4670
4671 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
4672 (fill_in_lock_file_name): Avoid existing files that aren't
4673 links.
4674
33744b5d
DL
46752000-04-14 Dave Love <fx@gnu.org>
4676
c21c7262 4677 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
4678 (INTERVAL_SRC): Convert to make variable.
4679 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
4680 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
4681 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
4682 add LIBOBJS.
4683 (SOME_MACHINE_OBJECTS): Remove interval stuff.
4684 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
4685 (shortlisp): Add facemenu, float-sup, frame.
4686 (SOME_MACHINE_LISP): Remove them from here.
4687 (LIBES): Change unused LDLIBS to autoconf LIBS.
4688
4689 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
4690
9d3d5916
KH
46912000-04-14 Kenichi Handa <handa@etl.go.jp>
4692
4693 * composite.c (update_compositions): If FROM and TO are not in a
4694 valid range, do nothing.
4695
198e3c7a
GM
46962000-04-13 Gerd Moellmann <gerd@gnu.org>
4697
4698 * tparam.c (tparam1): Abort when encountering an unknown
4699 `%'-specifier.
4700
4701 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
4702 terminfo.o.
4703
4704 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
4705 as TERMCAP_OBJ.
4706
055a28c9
EZ
47072000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
4708
4709 * fileio.c (a_write): Remove redundant semi-colons.
4710 (e_write): Return -1 if failed to write all the data.
4711 This fixes the changes made at 1999-12-15.
4712
f5c75033
DL
47132000-04-12 Dave Love <fx@gnu.org>
4714
4715 * fns.c (mapcar1): Test for null vals to support mapc.
4716 (Fmapc): New function.
4717
0c3cfc51
EZ
47182000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
4719
4720 * msdos.c (NUM_MOUSE_BUTTONS): Define.
4721 (IT_frame_up_to_date): Support the buffer local value of
4722 cursor-type, if defined.
4723
33465a31
DL
47242000-04-10 Dave Love <fx@gnu.org>
4725
4726 * editfns.c (preceding-char, following-char): Doc fix.
4727
6ed56568
KR
47282000-04-10 Ken Raeburn <raeburn@gnu.org>
4729
4730 * Makefile.in (temacs): Revert 2000-03-12 change.
4731
7cf80d4e
JR
47322000-04-10 Jason Rumney <jasonr@gnu.org>
4733
4734 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
4735
34f3f342
GM
47362000-04-10 Gerd Moellmann <gerd@gnu.org>
4737
1a1b1895
GM
4738 * xdisp.c (setup_echo_area_for_printing): Choose an echo
4739 area buffer, if it's not set up yet.
4740
34f3f342
GM
4741 * indent.c (compute_motion): Set immediate_quit.
4742
be0dbdab
GM
47432000-04-09 Gerd Moellmann <gerd@gnu.org>
4744
c45be9ac
GM
4745 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
4746 variable.
4747 (realize_tty_face): Suppress boldness if colors are the inverse of
4748 the default colors, and tty_suppress_bold_inverse_default_colors_p
4749 is set.
4750 (Ftty_suppress_bold_inverse_default_colors): New function.
4751 (syms_of_xfaces): Defsubr it.
4752
be0dbdab
GM
4753 * buffer.c (Frestore_buffer_modified_p): New function.
4754 (syms_of_buffer): Defsubr it.
4755
e8413c3b
KR
47562000-04-08 Ken Raeburn <raeburn@gnu.org>
4757
87f67317
KR
4758 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
4759 charset id (int) argument, not a charset (Lisp_Object).
4760
e8413c3b
KR
4761 * coding.h (code_convert_string): Declare.
4762 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
4763 object, as the fourth argument to code_convert_string.
4764
4765 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
4766 value.
4767 (Fset_fontset_font): Use EQ to compare lisp objects.
4768
7c752c80
KR
47692000-04-05 Ken Raeburn <raeburn@gnu.org>
4770
c0333abc
KR
4771 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
4772 a pointer that looks like a lisp object.
4773 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
4774 zero, instead see whether it's an integer object, since they can't
4775 have intervals.
4776 (GET_INTERVAL_OBJECT): Simply assign to the destination.
4777
7c752c80
KR
4778 * dispnew.c (allocate_matrices_for_frame_redisplay,
4779 direct_output_forward_char): Use X(U)INT and make_number as needed
4780 to convert between (unsigned) int values and lisp integers.
4781 * keyboard.c (read_key_sequence): Likewise.
4782 * lread.c (substitute_object_recurse): Likewise.
4783 * fns.c (concat, hash_lookup, hash_remove): Likewise.
4784 * minibuf.c (do_completion, Fminibuffer_complete_word,
4785 Fminibuffer_completion_help): Likewise.
4786 * term.c (produce_special_glyphs): Likewise.
4787
4788 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
4789 * print.c (print_preprocess, print_object): Likewise.
4790
4791 * search.c (compile_pattern): Use NILP when checking for nil.
4792
74e49b38
KR
4793 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
4794 __OPTIMIZE__]: Provide a GNU C macro version that handles
4795 lisp-object unions.
4796 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
4797 field, to better cope with ENABLE_CHECKING and calls that modify a
4798 Lisp_Object using its old value.
4799
685e5ed2
GM
48002000-04-04 Gerd Moellmann <gerd@gnu.org>
4801
c407c570
GM
4802 * window.c (compare_window_configurations): Signal an error
4803 if parameters C1 or C2 aren't window configurations.
4804
685e5ed2
GM
4805 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
4806 AFTER_POTENTIAL_GC calls around calls to functions that can
4807 signal an error and thus invoke the debugger.
4808
587a49ab
GM
48092000-04-03 Gerd Moellmann <gerd@gnu.org>
4810
62f20204
GM
4811 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
4812 an error if decoding fails.
4813
587a49ab
GM
4814 * keyboard.c (lispy_mouse_names): Variable removed.
4815 (Vlispy_mouse_stem): New variable.
4816 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
4817 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
4818 for any mouse button number. Increase size of mouse_syms and
4819 button_down_location as needed. Call modify_event_symbol with
4820 different arguments.
4821 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
4822 Call modify_event_symbol with different arguments.
4823 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
4824 for any button number. Call modify_event_symbol with different
4825 arguments.
4826 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
4827 Accept a string for NAME_ALIST_OR_STEM.
4828
4829 * lisp.h (larger_vector): Add prototype.
4830
4831 * fns.c (larger_vector): Make externally visible.
4832
4833 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
4834
2d1675e4
SM
48352000-04-02 Stefan Monnier <monnier@cs.yale.edu>
4836
4837 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
4838 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
4839 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
4840 we are between str1 and str2.
4841 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
4842 (PATFETCH): Use `TRANSLATE'.
4843 (PATFETCH_RAW): Fetch multibyte char if applicable.
4844 (PATUNFETCH): Remove.
4845 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
4846 When writing a char, write it directly into the pattern buffer rather
4847 than going needlessly through a temp char-array.
4848 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
4849 multibyte magic and remove the useless `#ifdef emacs'.
4850 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
4851 buffer.
4852
4853 * regex.h (struct re_pattern_buffer): Make field `multibyte'
4854 conditional on `emacs'.
4855
4856 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
4857
cc2d8c6b
KR
48582000-04-01 Ken Raeburn <raeburn@gnu.org>
4859
4860 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
4861 non-union-type versions of XMARK and friends here, because XMARK
4862 and friends won't work on an integer field if NO_UNION_TYPE is not
4863 defined.
4864 (make_number): Define as a function if it's not defined as a
4865 macro.
4866
09654086
KR
4867 * composite.c (run_composite_function): Use NILP when checking for
4868 nil.
4869 (syms_of_composite): Delete local var NARGS, pass an int as first
4870 argument to Fmake_hash_table.
4871
2387b382
KR
4872 * editfns.c (text_property_stickiness): Use NILP to test
4873 Lisp_Object boolean value.
4874 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
4875 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
4876 problems reading from and changing the same lisp value in an
4877 XSETSTRING call.
4878
27660e89
GM
48792000-04-01 Gerd Moellmann <gerd@gnu.org>
4880
4881 * term.c (TN_no_color_video): New variable.
4882 (term_init): Intitialize TN_no_color_video.
4883 (enum no_color_bit): New enumeration.
4884 (MAY_USE_WITH_COLORS_P): New macro.
4885 (turn_on_face): Use it to determine if attributes may be used
4886 combined with colors.
4887
3578db3c
KR
48882000-04-01 Ken Raeburn <raeburn@gnu.org>
4889
4890 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
4891 with int lvalues via casts; instead, just yield lisp object
4892 lvalues.
4893 (enlarge_window): Variable sizep now points to Lisp_Object. Use
4894 proper accessor macros.
4895 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
4896 (grow_mini_window): Fix typo getting int value of root->height.
4897
6fc556fd
KR
4898 * xdisp.c (compute_string_pos): Fix order of arguments to
4899 string_pos_nchars_ahead.
4900 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
4901 count arg to variable-arg routines like Frun_hook_with_args and
4902 Fformat.
587a49ab
GM
4903 (back_to_previous_visible_line_start)
4904 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
4905 fixed-arg routines like Fget_char_property and Fmake_string.
4906 (reconsider_clip_changes): Use XINT when comparing integer lisp
4907 objects, or passing them as int arguments.
587a49ab
GM
4908 (mark_window_display_accurate, insert_left_trunc_glyphs)
4909 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
4910 storing or passing integer values as lisp objects.
4911 (set_cursor_from_row, highlight_trailing_whitespace): Use
4912 INTEGERP, not implicit test against zero, for glyph object.
4913 (try_window_id): Don't use make_number when we want an int value.
4914
4915 * xfaces.c (xlfd_symbolic_value): Make last argument a
4916 Lisp_Object, to be consistent with callers.
4917 (Fbitmap_spec_p): Use XINT to get numeric value of height.
4918 (lface_hash): Apply XFASTINT to lisp values before folding in.
4919
4920 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
4921 fill in window width and height. Pass an int, not a lisp object,
4922 as first arg to Finsert.
4923
6e7b2457
GM
49242000-04-01 Gerd Moellmann <gerd@gnu.org>
4925
610d841e
GM
4926 * xfaces.c (realize_basic_faces): Block input while realizing
4927 the faces.
4928
6e7b2457
GM
4929 * keyboard.c (lispy_mouse_names): Add additional mouse names.
4930
4931 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
4932
aa110c0c
GM
49332000-03-31 Gerd Moellmann <gerd@gnu.org>
4934
4935 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 4936 or ASCII, handle case that per-char metric is null.
aa110c0c 4937
8801a864
KR
49382000-03-30 Ken Raeburn <raeburn@gnu.org>
4939
c6129d7e
KR
4940 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
4941
8801a864
KR
4942 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
4943 XSUBR, XBUFFER): Verify correct object type before returning
4944 pointer, using eassert.
4945 * frame.h (XFRAME): Likewise.
4946
4947 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
4948 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
4949 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
4950 type.
4951 * data.c (set_internal): Likewise.
4952 * dispextern.h (WINDOW_WANTS_MODELINE_P,
4953 WINDOW_WANTS_HEADER_LINE_P): Likewise.
4954 * fileio.c (auto_save_1): Likewise.
4955 * insdel.c (check_markers): Likewise.
4956 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
4957 * undo.c (record_insert): Likewise.
4958 * vmsproc.c (child_sig): Likewise.
4959 * window.c (unshow_buffer, window_loop): Likewise.
4960 * xterm.c (x_erase_phys_cursor): Likewise.
4961
8e7af858
GM
49622000-03-30 Gerd Moellmann <gerd@gnu.org>
4963
4964 * xfns.c (free_image_cache): Free the cache structure itself
4965 last, after all its members have been freed.
4966
4967 * lisp.h (xstrdup): Add prototype.
4968
4969 * alloc.c (xstrdup): Moved here from xfaces.c.
4970 (allocating_for_lisp): Variable removed.
4971 (lisp_malloc): Block input around the calls to malloc and
4972 mem_insert.
4973
4974 * xfaces.c (realize_tty_face): Use find_symbol_value instead
4975 of Fsymbol_value.
4976 (xstrdup): Moved to alloc.c.
4977
e0b8c689
KR
49782000-03-29 Ken Raeburn <raeburn@gnu.org>
4979
b96f9fb7
KR
4980 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
4981
4982 * emacs.c (main): Fix sense of no-loadup test.
4983
e0b8c689
KR
4984 * config.in (ENABLE_CHECKING): Undef.
4985
4986 * lisp.h (struct interval): Replace "parent" field with a union of
4987 interval pointer and Lisp_Object; add new bitfield to use as
4988 discriminant. Change other flag fields to bitfields.
4989 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
4990 is defined and the supplied test fails, print a message and
4991 abort.
4992 (eassert): New macro. Use CHECK to provide an assert-like
4993 facility.
4994
4995 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
4996 pointers; abort if the value looks like a lisp object.
4997 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
4998 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
4999 Modify for new interval parent definition.
5000
5001 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
5002 UNMARK_BALANCE_INTERVALS): Update references that need an
5003 addressable lisp object in the interval structure.
5004 (die): New function.
5005 (suppress_checking): New variable.
5006
5007 * intervals.c (interval_start_pos): Just return 0 if there's no
5008 parent object.
5009
f83c5440
GM
50102000-03-29 Gerd Moellmann <gerd@gnu.org>
5011
5012 * lread.c (read1): Accept `.' (period) as symbol start like in CL
5013 and earlier Emacs versions.
5014
5015 * keyboard.c (Ftop_level): Cancel busy-cursor.
5016
5017 * eval.c (call_debugger): Cancel busy-cursor.
5018
fdce64ff
KH
50192000-03-29 Kenichi Handa <handa@etl.go.jp>
5020
5021 * search.c (Freplace_match): Adjust multibyteness of the current
5022 buffer and NEWTEXT. Free allocated memory before signaling an
5023 error.
5024
f6a3f532
SM
50252000-03-28 Stefan Monnier <monnier@cs.yale.edu>
5026
5027 * regex.c (analyse_first): New function obtained by ripping out most
5028 of re_compile_fastmap and generalizing it a little bit so that it
5029 can also just return whether a given (sub)pattern can match the empty
5030 string or not.
5031 (regex_compile): Use `analyse_first' to decide whether the loop-check
5032 needs to be done or not for *, +, *? and +? (the loop check is costly
5033 for non-greedy repetition).
5034 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
5035
e9b309ac
DL
50362000-03-28 Dave Love <fx@gnu.org>
5037
bb15bd9a
DL
5038 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
5039 alpha.
5040
e9b309ac
DL
5041 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
5042
ed0767d8
SM
50432000-03-27 Stefan Monnier <monnier@cs.yale.edu>
5044
5045 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
5046 an expression.
5047 (enum re_opcode_t): Update description of succeed_n.
5048 (PATFETCH): Always define.
5049 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
5050 operators, char classes, shy-groups and intervals).
5051 Optimize special cases of intervals so as to only use succeed_n and
5052 jump_n when really needed.
5053 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
5054 that we don't have to handle the special cases any more.
5055 Simplify on_failure_jump handling as well.
5056
e11e7e46
JR
50572000-03-28 Jason Rumney <jasonr@gnu.org>
5058
5059 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
5060
88faab89
GM
50612000-03-27 Gerd Moellmann <gerd@gnu.org>
5062
182ff242
GM
5063 * s/freebsd.h (GC_SETJMP_WORKS): Define.
5064
5065 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 5066
182ff242
GM
5067 * alloc.c (mark_maybe_object): New function.
5068 (mark_memory): Use it.
5069 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
5070 (setjmp_tested_p, longjmp_done): New variables.
5071 (test_setjmp): New function.
5072 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
5073 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
5074
c1005d06
GM
5075 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
5076 to DEC_TEXT_POS and INC_TEXT_POS.
5077
5078 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
5079 with parameter MULTIBYTE_P.
5080
427ec082 5081 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
5082 MULTIBYTE_P.
5083
7439e5b9 5084 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
5085 buffers because it looks for multibyte character byte sequences
5086 which don't exist in unibyte text.
7439e5b9 5087
d9c545da
GM
5088 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
5089
11fd416e 5090 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
5091 [DEBUG_X_COLORS]: New functions.
5092 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
5093
5094 * xfns.c (x_set_cursor_color): Get color reference counts right.
5095
5096 * xterm.c (x_copy_color): New function.
5097 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
5098
5099 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
5100 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
5101 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
5102 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
5103 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
5104 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
5105 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
5106 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
5107 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
5108 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
5109
11fd416e
GM
5110 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
5111 names for handling per-buffer variables.
d9c545da
GM
5112
5113 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
5114 instead of MAX_BUFFER_LOCAL_VARS.
5115 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
5116
5117 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
5118
88faab89
GM
5119 * xfns.c (x_specified_cursor_type): New function.
5120 (x_set_cursor_type): Use it.
5121
5122 * buffer.h (struct buffer): Add cursor_type.
5123
d80f42b7
SM
51242000-03-26 Stefan Monnier <monnier@cs.yale.edu>
5125
5126 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 5127 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 5128 opcode.
d80f42b7
SM
5129 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
5130 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
5131 executing it as well as when popping it off the stack to find infinite
5132 loops in non-greedy repetition operators.
5133
89e80928
GM
51342000-03-26 Gerd Moellmann <gerd@gnu.org>
5135
3d4ff2dd
GM
5136 * doc.c (Qfunction_documentation): New variable.
5137 (syms_of_doc): Initialize Qfunction_documentation.
5138 (Fdocumentation): If FUNCTION is a symbol with non-nil
5139 `function-documentation' property, return a documentation derived
5140 from that.
5141
bd96bd79
GM
5142 * buffer.c (syms_of_buffer): Add default-cursor-type.
5143 (init_buffer_once): Don't let cursor_type have a local value
5144 in every buffer.
5145
19d1bc27
GM
5146 * xterm.c (x_display_and_set_cursor): Choose cursor depending
5147 on buffer-local value of cursor_type.
5148 (x_draw_bar_cursor): Add parameter WIDTH.
5149
5150 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
5151 (init_buffer_once): Set default cursor_type value to t.
5152 Mark cursor_type as local everywhere.
5153 (syms_of_buffer): New per-buffer variable cursor-type.
5154
89e80928
GM
5155 * buffer.h (struct buffer): Remove member local_var_flags,
5156 add local_flags.
5157 (MAX_BUFFER_LOCAL_VARS): New macro.
5158 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
5159 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
5160 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
5161 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
5162
5163 * print.c (print_object): Use new macros for per-buffer
5164 variables.
5165
5166 * category.c (Fset_category_table): Use new macros for per-buffer
5167 variables.
5168
5169 * buffer.c (buffer_permanent_local_flags): Make a char array.
5170 (max_buffer_local_idx): New variable.
5171 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
5172 for new handling of per-buffer variables.
5173 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
5174 (init_buffer_once): Initialize per-buffer vars differently.
5175 Set max_buffer_local_idx.
5176
5177 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
5178 variables.
5179
5180 * lread.c (defvar_per_buffer): Use new macros for per-buffer
5181 variables.
5182
5183 * data.c (do_symval_forwarding, store_symval_forwarding)
5184 (find_symbol_value, set_internal, default_value, Fset_default)
5185 (Fkill_local_variable, Flocal_variable_p): Use new macros for
5186 per-buffer variables.
5187
5188 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
5189
9a0dd3dc
GM
51902000-03-24 Gerd Moellmann <gerd@gnu.org>
5191
b68c375f
GM
5192 * xterm.c (x_term_init): Unblock input around call1 of
5193 Qvendor_specific_keysyms.
5194
9a0dd3dc
GM
5195 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
5196 (find_defun_start): Consider an open parenthesis in column 0
5197 a defun start only if open_paren_in_column_0_is_defun_start is set.
5198 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
5199
7973e637
SM
52002000-03-24 Stefan Monnier <monnier@cs.yale.edu>
5201
5202 * eval.c (Fautoload): Add entry in load-history (if after dump).
5203 * lread.c (load-history): Update docstring.
5204
39210e90
GM
52052000-03-24 Gerd Moellmann <gerd@gnu.org>
5206
5207 * indent.c (Fvertical_motion): Always use the current buffer.
5208 Temporarily change the window's buffer, if necessary.
5209
72db3ab5
GM
52102000-03-23 Gerd Moellmann <gerd@gnu.org>
5211
5212 * xterm.c (fast_find_position): Make sure not to consider rows
5213 not visible in the window.
5214
990b2375
SM
52152000-03-22 Stefan Monnier <monnier@cs.yale.edu>
5216
5217 * regex.c (enum syntaxcode): Provide default for non-Emacs.
5218 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
5219
ff4df011
JR
52202000-03-22 Jason Rumney <jasonr@gnu.org>
5221
5222 * w32menu.c (single_submenu): Set help string to NULL if none.
5223 (w32_menu_show): Set help string correctly.
5224 (add-menu-item): Set help string in MIIM_DATA for menu item.
5225 Load SetMenuItemInfoA explicitly.
5226 (w32_menu_display_help): New function.
427ec082 5227
ff4df011
JR
5228 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
5229 (QCdata): Moved to xdisp.c.
5230
5231 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
5232 (Vw32_charset_to_codepage_alist): Removed.
5233 (Vw32_charset_info_alist): New variable.
5234 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
5235 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
5236 greek, hebrew, thai, johab, mac, unicode]): New symbols.
5237 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
5238 with TODO comment.
5239 (w32_codepage_for_font): Use Vw32_charset_info_alist.
5240 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
5241 Define Vw32_charset_info_alist and w32_charset symbols.
5242
52432000-03-22 Jason Rumney <jasonr@gnu.org>
5244
5245 * makefile.nt (w32bdf.obj): Update dependencies.
5246
5247 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
5248
5249 * w32fns.c: Include fontset.h after dispextern.h.
5250 (Fx_create_frame): Do not create fontset.
5251 (w32_load_system_font): Doc fix.
5252 (Fx_close_connection): Free full_name if it is not shared.
5253
5254 * w32term.c: Include fontset.h after dispextern.h.
5255 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
5256 updated.
5257 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
5258 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
5259 (w32_font_is_double_byte): New function, needs body.
5260 (x_append_glyph): Set glyph->glyph_not_available_p.
5261 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
5262 it->charset. If it->multibyte_p is zero and it->c is a multibyte
5263 character, convert it to a unibyte character.
5264 (struct glyph_string): Delete member `charset'.
5265 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
5266 calculating it is found.
5267 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
5268 the case that per char metric is not available correctly.
5269 (x_fill_glyph_string): Handle the case that the specific glyph is
5270 not available correctly.
5271 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
5272 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
5273 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
5274 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
5275 fontset. Don't call FS_LOAD_FONT.
5276
439d5cb4
KR
52772000-03-22 Ken Raeburn <raeburn@gnu.org>
5278
5279 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
5280 (INT_LISPLIKE): New macro.
5281 (NULL_INTERVAL_P): Use it.
5282 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
5283 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
5284 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
5285
5286 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
5287 explicit references to "parent" field of struct interval and
5288 associated unclean type conversions.
5289 * intervals.c (create_root_interval, root_interval, rotate_right,
5290 rotate_left, balance_possible_root_interval, split_interval_right,
5291 split_interval_left, interval_start_pos, find_interval,
5292 next_interval, previous_interval, update_interval,
5293 adjust_intervals_for_insertion, delete_node, delete_interval,
5294 adjust_intervals_for_deletion, merge_interval_right,
5295 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
5296 copy_intervals_to_string): Likewise.
5297 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
5298 Likewise.
5299 * syntax.c (update_syntax_table): Likewise.
5300
5301 * intervals.c (reproduce_tree_obj): New function, like
5302 reproduce_tree but takes a Lisp_Object for the parent. Declare
5303 with prototype.
5304 (graft_intervals_into_buffer): Use it when appropriate.
5305 (reproduce_tree): Declare with prototype.
5306 (balance_possible_root_interval): Check that the parent is a lisp
5307 object before trying to examine its type.
5308
ee1c5b21
GM
53092000-03-22 Gerd Moellmann <gerd@gnu.org>
5310
5311 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
5312 as strings only if both are known to be strings.
5313
5314 * s/openbsd.h (LIBS_TERMCAP): Undef.
5315
1fb352e0
SM
53162000-03-21 Stefan Monnier <monnier@cs.yale.edu>
5317
5318 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
5319 definitions for non-Emacs compilation.
5320 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
5321 outside of `#ifdef emacs'.
5322 (print_partial_compiled_pattern): Update.
5323 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
5324 (re_compile_fastmap): Merge handling of charset and charset_not (for
5325 emacs and non-emacs compilation as well).
5326 Similarly for (not)categoryspec and (not)syntaxspec.
5327 Don't use the fastmap when reaching `anychar' since the added
5328 complexity is not justified.
5329 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
5330 and (not)syntaxspec. Merge (not)categoryspec.
5331
fdaa1f77
KH
53322000-03-22 Kenichi Handa <handa@etl.go.jp>
5333
ff1a0d8e
KH
5334 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
5335 FACE_FOR_CHAR): Define them differently for the configuration of
5336 --without-x.
fdaa1f77 5337
d152fb46
DL
53382000-03-21 Dave Love <fx@gnu.org>
5339
5340 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
5341 doc string.
5342
d2cafc8c
GM
53432000-03-21 Gerd Moellmann <gerd@gnu.org>
5344
5345 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
5346 (lface_fully_specified_p): Don't check contents of
5347 LFACE_FONT_INDEX because that attribute is optional.
5348 (realize_x_face): Remove now unwarranted xassert.
5349
9111d4b5
KH
53502000-03-21 Kenichi HANDA <handa@etl.go.jp>
5351
5352 The following changes are to make font selection based on
5353 characters, not charset. In addition, they recover fontset
5354 facilities while utilizing the new font selection mechanism.
5355
6c4bfdc0
KH
5356 * Makefile.in (fontset.o): Depend on dispextern.h.
5357
5358 * alloc.c (mark_face_cache): Don't mark face->registry.
5359
9111d4b5
KH
5360 * dispextern.h (struct glyph): New member glyph_not_available_p.
5361 Use 22 bits for face_id.
5362 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
5363 (struct face): Delete member registry, new member ascii_face.
5364 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
5365 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
5366 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
5367 (struct it): Delete member charset, new member
5368 glyph_not_available_p.
5369
5370 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
5371 (struct fontset_info, struct fontset_data): Structs removed.
5372 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
5373 Vglobale_fontset_alist, font_idx_temp): Externs removed.
5374 (fs_load_font, fs_query_fontset): Adjusted for new argument.
5375 (fs_free_face_fontset, fontset_font_pattern,
5376 face_suitable_for_char_p, face_for_char,
5377 make_fontset_for_ascii_face): Extern them.
5378 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
5379 (FS_LOAD_FACE_FONT): New macro.
5380
5381 * fontset.c: All codes rewritten or adjusted for the change of
5382 fontset implementation. Now fontset is represented by char table.
5383 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
5384 removed.
5385 (my_strcasecmp): Function removed.
5386 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
5387 variables.
5388 (AREF, ASIZE): New macros.
5389 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
5390 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
5391 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
5392 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
5393 fontset_id_valid_p, font_family_registry, fontset_name,
5394 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
5395 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
5396 New functions.
5397 (fs_load_font): New arg FACE. Caller changed.
5398 (fs_query_fontset): Argument changed. Caller changed.
5399 (Fquery_fontset): call fs_query_fontset.
5400 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
5401 Functions removed.
5402 (clear_fontset_elements, check_registry_encoding,
5403 check_fontset_name): New functions.
5404 (syms_of_fontset): Set char-table-extra-slots property of fontset
5405 to 3. Staticpro and initialize Vfontset_table and
5406 Vdefault_fontset. Defsubr fontset_font and fontset_list.
5407
5408 * frame.h (struct frame): Member `fontset_data' removed.
5409 (FRAME_FONTSET_DATA): Macro removed.
5410
5411 * frame.c (make_frame): Don't allocate f->fontset_data.
5412 (Fdelete_frame): Don't free f->fontset_data.
5413
6c4bfdc0
KH
5414 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
5415
9111d4b5
KH
5416 * xdisp.c (charset_at_position): Function removed.
5417 (init_iterator): Don't set member charset of struct `it'.
5418 (handle_face_prop, reseat_to_string, set_iterator_to_next,
5419 next_element_from_display_vector, insert_left_trunc_glyphs):
5420 Likewise.
5421 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
5422 FACE_FOR_CHARSET.
5423 (get_next_display_element, append_space,
5424 extend_face_to_end_of_line): Likewise.
5425
5426 * xfaces.c (Qx_charset_registry, Vface_default_registry):
5427 Variables removed.
5428 (clear_font_table, frame_update_line_height, load_face_font):
5429 Adjusted for the change of fontset implementation.
5430 (load_face_fontset_font): Function removed.
5431 (pixel_point_size): New function.
5432 (font_list): Argument type changed. Caller changed.
5433 (LFACE_FONT): New macro.
5434 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
5435 (set_lface_from_font_name): Type of arg FONTNAME is changed to
5436 Lisp_Object. Determine the font name by actually loading a font
5437 by the specified pattern. Set LFACE_FONT (lface) to the specified
5438 pattern. Even if a font is not found, don't try alternatives.
5439 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
5440 (set_font_frame_param): If `font' is specified in lface, use it.
5441 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
5442 (lface_same_font_attributes_p): Likewise.
5443 (make_realized_face): Arguent changed. Caller changed. Set
5444 face->ascii_face to face itself.
5445 (free_realized_face): Free face->fontset if face is for ASCII.
5446 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
5447 deduce_unibyte_registry, x_charset_registry): Functions removed.
5448 (free_realized_multibyte_face): New function.
5449 (lookup_face, lookup_named_face, lookup_derived_face): Argument
5450 changed. Caller changed.
5451 (try_font_list): Argument type changed.
5452 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
5453 (choose_face_font): Argument changed. Handle fontset properly.
5454 (choose_face_fontset_font): Function removed.
5455 (realize_default_face, realize_named_face): Don't remove the
5456 former face here.
5457 (realize_face): Argument changed. Caller changed. Remove face
5458 with the arg former_face_id in advance. Load font for the new
5459 face.
5460 (realize_x_face): Argument changed. Caller changed. For a
5461 multibyte character, share fontset with base_face. For a single
5462 byte character, make a new realized fontset. Don't load a font
5463 here.
5464 (realize_tty_face): Argument changed. Caller changed.
5465 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
5466 (face_at_buffer_position): Don't check multibyte_p for returning
5467 DEFAULT_FACE_ID.
5468 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
5469 FACE_SUITABLE_FOR_CHARSET_P.
5470 (syms_of_xfaces): Remove code for Qx_charset_registry and
5471 Vface_default_registry.
5472
6c4bfdc0
KH
5473 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
5474 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
5475 (x_per_char_metric): Don't try FONT->default_char. Even if
5476 pcm->width is zero, glyph bits may exist.
5477 (x_encode_char): Always initialize char2b->byte1.
5478 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
5479 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
5480 changed.
5481 (x_append_glyph): Set glyph->glyph_not_available_p.
5482 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
5483 it->charset. Handle the case that per char metric is not
5484 available. If it->multibyte_p is zero and it->c is a multibyte
5485 character, convert it to a unibyte character.
5486 (struct glyph_string): Delete member `charset'.
5487 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
5488 the case that per char metric is not available correctly.
5489 (x_fill_glyph_string): Handle the case that the specific glyph is
5490 not available correctly.
5491 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
5492 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
5493 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
5494 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
5495 fontset. Don't call FS_LOAD_FONT.
5496
5497 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
5498 (x_create_tip_frame): Likewise.
5499 (Fx_close_connection): Free full_name of font_info.
5500
5501 * fns.c (optimize_sub_char_table): New function.
5502 (Foptimize_char_table): New function.
5503 (syms_of_fns): Defsubr Soptimize_char_table.
5504
b33dd3b0
GM
55052000-03-20 Gerd Moellmann <gerd@gnu.org>
5506
5507 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
5508 only if buffer is displayed in some window.
5509
5510 * xdisp.c (handle_single_display_prop): Initialize local `value'.
5511 (try_window_reusing_current_matrix): Don't call scroll run
5512 function if run's current and desired position are the same;
5513 this prevents cursor flickering.
5514
4e8a9132
SM
55152000-03-19 Stefan Monnier <monnier@cs.yale.edu>
5516
5517 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
5518
5519 * regex.c (RE_STRING_CHAR): New macro.
5520 (GET_CHAR_AFER_2): Remove.
5521 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
5522 (enum re_opcode_t): Remove on_failure_jump_exclusive.
5523 (print_partial_compiled_pattern, re_compile_fastmap)
5524 (re_match_2_internal): Remove on_failure_jump_exclusive.
5525 (regex_compile): Turn optimizable P+ loops into PP*, so that the
5526 optimization only need to work for * (ie. can use of_keep_string_jump).
5527 Remove the special case for .*\n since it is now covered by the general
5528 optimization.
5529 (re_search_2): Don't bother with `room'.
5530 (skip_one_char): New function.
5531 (skip_noops): Simplify since `memory' is not needed any more.
5532 (mutually_exclusive_p): Restructure slightly to use `switch' and
5533 add handling for "all" remaining cases.
5534 (re_match_2_internal): Change on_failure_jump_smart to use
5535 on_failure_keep_string_jump (and redirect the end-of-loop jump)
5536 rather than on_failure_jump_exclusive.
5537
2136fdd4
GM
55382000-03-19 Gerd Moellmann <gerd@gnu.org>
5539
5540 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
5541 number of bits per RGB because it's everywhere used as the depth
5542 of the visual.
5543
5544 * term.c (calculate_costs): Remove code dealing with X frames.
5545
18e21ce8 55462000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
5547
5548 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
5549
d7b511c4
GM
55502000-03-18 Gerd Moellmann <gerd@gnu.org>
5551
5552 * lread.c (read_integer): Unread the last char not consumed.
5553
16b5d424
GM
55542000-03-17 Gerd Moellmann <gerd@gnu.org>
5555
5556 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 5557 which are in the process of being deleted.
16b5d424 5558
1fa28578
GM
55592000-03-16 Gerd Moellmann <gerd@gnu.org>
5560
83488cce
GM
5561 * Makefile.in (mostlyclean): Add `*.core'.
5562 (clean): Add `bootstrap-emacs'.
5563
1fa28578
GM
5564 * lread.c (read_integer): New function.
5565 (read1): Support read syntax #o, #x, #b, #r.
5566
99633e97
SM
55672000-03-15 Stefan Monnier <monnier@cs.yale.edu>
5568
1fa28578
GM
5569 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
5570 make sure POINTER_TO_OFFSET gives the same value before and after
5571 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
5572 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
5573 (debug): Now only active if > 0 rather than if != 0.
5574 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
5575 (print_partial_compiled_pattern): Add missing `succeed' case. Use
5576 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
5577 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
5578 (store_op1, store_op2, insert_op1, insert_op2)
5579 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
5580 (group_in_compile_stack): Move to after its arg's types are
5581 declared and add a prototype.
99633e97 5582 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
5583 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
5584 wrapper.
99633e97 5585 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
5586 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
5587 indentation of the greedy-op and shy-group code.
99633e97
SM
5588 (at_(beg|end)line_loc_p): Fix argument's types.
5589 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
5590 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
5591 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
5592 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
5593 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
5594 QUIT unconditionally.
99633e97 5595
699238d9
GM
55962000-03-15 Gerd Moellmann <gerd@gnu.org>
5597
5598 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
5599 a sole completion.
5600
5601 * process.c (send_process): Add a hint that the function
5602 can call Lisp code to its comment.
5603
5604 * lread.c (load_dangerous_libraries): New variable.
5605 (Vbytecomp_version_regexp): New variable.
5606 (safe_to_load_p): New function.
5607 (Fload): Handle files not compiled with Emacs specially.
5608 (syms_of_lread): New Lisp variable load-dangerous-libraries.
5609
34e23e5a
GM
56102000-03-14 Gerd Moellmann <gerd@gnu.org>
5611
9c763cca
GM
5612 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
5613
5614 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
5615 support functions only if HAVE_X11R6_XIM is defined.
5616 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
5617
5618 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
5619
5620 * xfns.c (X_I18N_INHIBITED): Don't define.
5621 (create_frame_xic): Remove conditional compilation on
5622 X_I18N_INHIBITED.
5623 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
5624
5625 * config.in (HAVE_X_I18N): Moved here from xterm.h.
5626 (HAVE_X11R6_XIM): Define.
5627
5628 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
5629
34e23e5a
GM
5630 * xterm.c (x_term_init): Add support for X resource `synchronous'.
5631 If set, call XSynchronize.
5632
66f0296e
SM
56332000-03-13 Stefan Monnier <monnier@cs.yale.edu>
5634
34e23e5a
GM
5635 * regex.c: Declare a new type `re_char' used throughout the code
5636 for the string char type. It's `const unsigned char' to match the
5637 rest of Emacs. Consistently make sure all pointers to strings use
5638 it and make sure all pointers into the pattern use `unsigned
5639 char'.
66f0296e 5640 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
5641 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
5642 code duplication.
66f0296e
SM
5643
5644 * charset.h (GET_CHAR_AFTER_2): Remove.
5645 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
5646
854a025c
KR
56472000-03-12 Ken Raeburn <raeburn@gnu.org>
5648
5649 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
5650 variable before the invocation of YMF_PASS_LDFLAGS, in case both
5651 of them try to use backquotes.
5652
b9d2c7e2
DL
56532000-03-12 Dave Love <fx@gnu.org>
5654
5655 * unexelf.c: Restore changes of 1999-10-19.
5656 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
5657 fix its type and alignment; copy it from current process.
5658
5e5dff44
GM
56592000-03-12 Gerd Moellmann <gerd@gnu.org>
5660
9b2f3c38
GM
5661 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
5662 has been found. Fix bug not computing timer's predecessor.
5663
427ec082 5664 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
5665 file name.
5666
e1cff360
GM
5667 * window.c (Fsave_window_excursion): Doc fix.
5668
5e5dff44
GM
5669 * xfns.c (x_defined_color): Rewritten to use
5670 x_allocate_nearest_color.
5671
e411ce4b
EZ
56722000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
5673
5674 * msdos.c (vga_installed): New function, code moved from
5675 dos_set_window_size.
5676 (Qbar, Qcursor_type, outside_cursor): New variables.
5677 (syms_of_msdos): Intern and staticpro them.
5678 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
5679 shape used outside Emacs when called for the first time.
5680 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
5681 cursor shape used outside Emacs.
5682 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
5683 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
5684 type has changed.
5685 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
5686 parameters specify the cursor. Make qreverse a global
5687 variable (renamed to Qreverse).
5688
80460654
GM
56892000-03-09 Gerd Moellmann <gerd@gnu.org>
5690
5691 * fns.c (Fy_or_n_p): Cancel busy-cursor.
5692
95cd4c40
SM
56932000-03-08 Stefan Monnier <monnier@cs.yale.edu>
5694
5695 This is a big redesign of failure-stack and register handling, prompted
5696 by bugs revealed when trying to add shy-groups. Overall, what happened
5697 is that loops are now structured a little differently, groups can be
5698 shy and the code is a little simpler.
5699
5700 * regex.h: Update the copyright.
5701 (RE_SHY_GROUPS): New value.
5702 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
5703 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
5704
80460654
GM
5705 * regex.c (enum re_opcode_t): Remove jump_past_alt,
5706 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
5707 on_failure_jump_(exclusive, loop and smart). Also fix the comment
5708 for (start|stop)_memory since they now only take one argument (the
5709 second has becomes unnecessary).
5710 (print_partial_compiled_pattern): Adjust for changes in
5711 re_opcode_t.
5712 (print_compiled_pattern): Use %ld to printf long ints and flush to
5713 make debugging a little easier.
95cd4c40
SM
5714 (union fail_stack_elt): Make the integer unsigned.
5715 (struct fail_stack_type): Add a `frame' element.
5716 (INIT_FAIL_STACK): Init `frame' as well.
5717 (POP_PATTERN_OP): New macro for re_compile_fastmap.
5718 (DEBUG_PUSH, DEBUG_POP): Remove.
5719 (NUM_REG_ITEMS): Remove.
5720 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
5721 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
5722 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 5723 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
5724 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
5725 macros.
5726 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
5727 address pushed is not the destination of the jump but the source
5728 of it instead.
95cd4c40
SM
5729 (NUM_FAILURE_ITEMS): Remove.
5730 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
5731 registers before the actual failure point). Don't hardcode any
5732 meaning for str==NULL anymore.
95cd4c40 5733 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
5734 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
5735 Remove.
95cd4c40
SM
5736 (REG_UNSET_VALUE): Use NULL (why not?).
5737 (compile_range): Remove declaration since it doesn't exist.
5738 (struct compile_stack_elt_t): Remove inner_group_offset.
5739 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
5740 (regex_grow_registers): Remove dead code.
5741 (FIXUP_ALT_JUMP): New macro.
80460654
GM
5742 (regex_compile): Add shy-groups Change loops to use
5743 on_failure_jump_smart&jump instead of
5744 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
5745 initial (dummy_failure_)jump. Remove c1_base (looks like unused
5746 variable to me). Use `jump' instead of `jump_past_alt' and don't
5747 bother with push_dummy_failure in alternatives since it is now
5748 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
5749 emacs' for (re)allocating the stack.
5750 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
5751 from loop when bufp->can_be_null rather than jumping to `done'.
5752 Avoid jumping backwards so as to ensure termination. Use
5753 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
5754 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 5755 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
5756 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
5757 improve mutually_exclusive_p to handle ".+\n".
5758 (lowest_active_reg, highest_active_reg,
5759 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
5760 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
5761 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
5762 variables. Push register (in `start_memory') on the stack rather
5763 than storing it in old_reg(start|end). Remove the cycle detection
5764 from `stop_memory', replaced by the use of on_failure_jump_loop
5765 for greedy loops. Add code for the new on_failure_jump_<foo>.
5766 Remove ad-hoc code in `on_failure_jump' to push more registers in
5767 the case of a loop. Take out code from `maybe_pop_jump' into
5768 separate functions and adapt it to the semantics of
5769 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
5770 and push_dummy_failure. Remove dummy_failure handling and
5771 handling of `failures to jump to on_failure_jump' (this last one
5772 was already dead code, it seems).
5773 (group_match_null_string_p, alt_match_null_string_p)
5774 (common_op_match_null_string_p): Remove.
95cd4c40 5775
7397acc4
DL
57762000-03-08 Dave Love <fx@gnu.org>
5777
5778 * config.in: Don't depend on __STDC__ for volatile.
5779 Add POINTER_TYPE, PTR, PROTOTYPES.
5780
5781 * hftctl.c, strftime.c: Use PROTOTYPES.
5782 * eval.c (find_handler_clause): Likewise.
5783
5784 * mem-limits.h: Use POINTER_TYPE.
5785
5786 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
5787 (memory_warnings): Declare using POINTER_TYPE.
5788
5e91ff9e
GM
57892000-03-08 Gerd Moellmann <gerd@gnu.org>
5790
feab4fba
GM
5791 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
5792
25edb08f
GM
5793 * xdisp.c (display_echo_area): Temporarily inhibit garbage
5794 collection.
5795
5e91ff9e
GM
5796 * xfns.c: Remove obsolete code in #if 0.
5797 (Fx_focus_frame): New function.
5798
a735b7e1
KH
57992000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
5800
5801 * coding.c (coding_category_name): Add coding-category-utf-8,
5802 coding-category-utf-16-be, coding-category-utf-16-le.
5803 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
5804 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
5805 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
5806 (detect_coding_utf_8): New function.
5807 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
5808 UTF_16_LOW_SURROGATE_P): New macros.
5809 (detect_coding_utf_16): New function
5810 (detect_coding_mask): When priorities are specified, skip any
5811 categories that have `nil' coding-system. Fix bug of returning
5812 wrong mask when PRIORITIES is specified and detect_coding_XXX()
5813 returns a mask not set in PRIORITIES.
5814 (detect_eol_type_in_2_octet_form): New function.
5815 (detect_eol): selects detect_eol_type_XXX to call according to
5816 cooding->category_idx.
5817 (detect_coding_system): Remove `nil' coding-system in the result.
5818 (Fupdate_coding_systems_internal): Update all coding-categories.
5819
5820 * coding.h (CODING_CATEGORY_IDX_UTF_8,
5821 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
5822 macros.
5823 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
5824 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
5825 CODING_CATEGORY_IDX_UTF_16_LE.
5826 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
5827 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
5828 (CODING_CATEGORY_MASK_ANY): Include the above macros.
5829 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
5830
9994cc69
GM
58312000-03-07 Gerd Moellmann <gerd@gnu.org>
5832
e9b4e5ff
GM
5833 * doc.c (Fdocumentation_property): If value is not a string,
5834 and doesn't refer to etc/DOC, evaluate it to obtain a string.
5835
f7daf1e1
GM
5836 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
5837 close the display with XtCloseDisplay. This caused a bus error
5838 on OpenWindows.
5839
9994cc69
GM
5840 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
5841 complete but not unique.
5842
4336c705
GM
58432000-03-06 Gerd Moellmann <gerd@gnu.org>
5844
18bb0684
GM
5845 * process.c (send_process): Remove local variable `procname' that
5846 might become invalid when a GC happens. Instead, access the
5847 process name slot directly.
5848
4336c705
GM
5849 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
5850 orig_height if set.
5851
5852 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
5853 orig_height if set.
5854
515d0d0e
EZ
58552000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
5856
5857 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
5858 glyph matrices have been freed.
5859
100b3cbb
GM
58602000-03-05 Gerd Moellmann <gerd@gnu.org>
5861
50df5e5a 5862 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 5863 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
5864
5865 * xfns.c (QCdata): Moved to xdisp.c.
5866
5867 * xdisp.c (QCdata): Moved here from xfns.c.
5868 (syms_of_xdisp): Initialize QCdata.
5869
5870 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
5871
5872 * window.c (coordinates_in_window): Use
5873 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
5874 FRAME_INTERNAL_BORDER_WIDTH.
5875
100b3cbb 5876 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 5877 it is obviously invalid.
100b3cbb
GM
5878
5879 * xterm.c (x_term_init): Create a colormap if not using the
5880 default visual.
5881
5882 * xterm.h (select_visual): Change prototype.
5883
5884 * xfns.c (select_visual): Rewritten. Recognize user-specified
5885 visual classes.
5886 (visual_classes): New variable.
5887
64d739c4
GM
58882000-03-04 Gerd Moellmann <gerd@gnu.org>
5889
5890 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
5891 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
5892 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
5893 (x_decode_color): Don't handle allocation of white and black
5894 specially.
5895 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
5896 XtNcolormap resources.
5897 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
5898 (Fx_create_frame): Initialize color members of x_output structure.
5899 (xpm_load): Pass colormap to XPM lib.
5900
5901 * xfaces.c (x_free_colors): Access colormap of frame using
5902 FRAME_X_COLORMAP. Be paranoid about freeing black and white
5903 when default colormap is used.
5904
5905 * xterm.c (x_term_init): Set Colormap member of x_display_info
5906 structure. Copy colormap if resource `privateColormap' is
5907 specified (PseudoColor only).
5908 (x_setup_relief_color): Access colormap of frame using
5909 FRAME_X_COLORMAP.
5910
5911 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
5912 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
5913
c3cee013
JR
59142000-03-04 Jason Rumney <jasonr@gnu.org>
5915
5916 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
5917 other non-platform-specific equivalents.
64d739c4 5918 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
5919 specific functions and macros as their w32 equivalents where
5920 non-platform-specifics are not available.
5921 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
5922 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
5923 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
5924 (frame_update_line_height): Use macros to access f->output_data.
5925 (defined_color): Remove FIXME comments; fixed.
5926 (x_face_list_fonts, prepare_face_for_display): Put X specifics
5927 into #ifdef blocks. Add WINDOWSNT blocks.
5928 (Fx_list_fonts): Use macros for accessing font data.
5929 (set_lface_from_font_name): Different default fonts for X and
5930 WINDOWSNT.
5931 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
5932 scalable for backward compatibility.
64d739c4 5933 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
5934 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
5935
64d739c4 5936 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
5937 syms_of_w32faces.
5938
5939 * makefile.nt (w32faces.obj): Remove.
5940 (xfaces.obj): Add.
5941
807cc41c
JR
59422000-03-03 Jason Rumney <jasonr@gnu.org>
5943
5944 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
5945 correct parameters.
5946
0007072a
KR
59472000-03-03 Ken Raeburn <raeburn@gnu.org>
5948
5949 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
5950 standard ELF definitions here if the system header does not.
5951
71a6ba55
GM
59522000-03-03 Gerd Moellmann <gerd@gnu.org>
5953
5954 * xterm.c (PER_CHAR_METRIC): Removed.
5955 (x_per_char_metric_1, x_default_char): New functions.
5956 (x_per_char_metric): If font's default char is invalid, return
5957 metrics of a suitably chosen usable default char.
5958 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
5959 char, replace occurrences of unprintable chars with a suitably
5960 chosen usable default char.
71a6ba55 5961
900fa1f1
GM
59622000-03-02 Gerd Moellmann <gerd@gnu.org>
5963
42f55fe0
GM
5964 * xterm.c (note_mouse_highlight): Return quickly if frame's
5965 glyph matrices have been freed.
5966
5967 * dispnew.c (free_glyphs): Block input while freeing matrices.
5968
900fa1f1
GM
5969 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
5970
5971 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
5972 x_free_colors.
5973
5974 * dispextern.h (x_free_colors): Add prototype.
5975
5976 * xfaces.c (x_free_colors): New function.
5977 (unload_color, free_face_colors): Use it.
5978
2f950292
EZ
59792000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
5980
5981 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
5982
5983 * window.c [MSDOS]: Include msdos.h.
5984
54d04320
DL
59852000-03-02 Dave Love <fx@gnu.org>
5986
5987 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
5988
5989 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
5990 set C_OPTIMIZE_SWITCH for gcc.
5991
0ba93ac4
KH
59922000-03-02 Kenichi Handa <handa@etl.go.jp>
5993
5994 * coding.c (coding_save_composition): Be sure to allocate
5995 composition data area in coding even if there's no composition in
5996 the current run.
5997
a2bc11d4
JR
59982000-03-01 Jason Rumney <jasonr@gnu.org>
5999
6000 * w32term.c: Equivalent changes to those made to xterm.c on
6001 2000-02-25 and 2000-02-24.
6002
6003 * w32fns.c: Equivalent changes to those made to xfns.c on
6004 2000-02-25 and 2000-02-21.
6005
6006 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
6007 correct line-end convention is followed.
6008
6009 * w32menu.c [HAVE_BOXES]: Remove #undef.
6010 (single_keymap_panes): Remove code for simulating checkmarks.
6011 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
6012 Remove code for drawing simulated checkmarks.
6013 (w32_menu_show): make unibyte help string correctly.
6014 (add_menu_item): draw standard Windows checkmarks. Draw radio
6015 buttons as radio buttons if possible.
6016
72d19d75
GM
60172000-03-01 Gerd Moellmann <gerd@gnu.org>
6018
2df636f4
GM
6019 * sysdep.c (start_of_text): Don't define this function for NetBSD
6020 with ELF.
6021
427ec082 6022 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
6023 Don't define.
6024 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
6025 (LINKER): Don't undef if __NetBSD__ is defined.
6026
6027 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
6028
6029 * fileio.c [__NetBSD__]: Define `unix'.
6030
72d19d75
GM
6031 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
6032
ed4d0512
GM
60332000-02-29 Gerd Moellmann <gerd@gnu.org>
6034
50b1039f
GM
6035 * atimer.c (start_atimer): Don't abort when timers are stopped.
6036 (append_atimer_lists): New function.
6037 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
6038 arbitrary lists of stopped and running atimers.
6039
ed4d0512
GM
6040 * atimer.c (cancel_atimer): Handle canceling an atimer when
6041 some timers are stopped.
6042
6043 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
6044 after canceling it.
6045
6046 * fns.c (maybe_resize_hash_table): Handle case of new size
6047 coming out as being the same as old size.
6048
387023ee
JR
60492000-02-27 Jason Rumney <jasonr@gnu.org>
6050
6051 * makefile.nt: Add atimer.h to dependencies.
6052 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
6053 * w32console.c: Only disable window system features for dispextern.h
6054 (initialize_w32_display): Build a display info for the console.
6055 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
6056 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
6057 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
6058 as 2 button mice.
6059 * w32gui.h (struct W32FontStruct): Revert last change after change
6060 to xdisp.c.
6061 * w32menu.c (single_submenu): Set up help string.
6062 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
6063 (w32_dialog_show): Set up help string.
6064 * w32term.c (w32_display_info_for_display): Remove unused function.
6065 (w32_draw_bitmap): Use pre-built bitmaps.
6066 (w32_initialize_display_info): New function to initialize parts of
6067 display info that are common to both GUI and console frames.
6068 (w32_term_init): Use w32_initialize_display_info. Do not set
6069 Vw32_num_mouse_buttons here, as it is not called for console
6070 frames. Build bitmaps for indicating truncated lines etc.
6071 (x_delete_display): Destroy pre-built bitmaps.
6072 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
6073 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
6074
4516715a
DL
60752000-02-27 Dave Love <fx@gnu.org>
6076
6077 * lisp.h: Add a bunch of prototypes.
6078
171ca836
KH
60792000-02-26 Kenichi Handa <handa@etl.go.jp>
6080
6081 * keyboard.c (read_char): Set `usec' correctly.
6082
4013921d
KH
60832000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
6084
6085 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
6086 `lambda', set reg[RRR] to the map index.
6087 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
6088 reg[RRR] to 0. Otherwise, set it to -1.
6089
9244a058
GM
60902000-02-25 Gerd Moellmann <gerd@gnu.org>
6091
2df636f4 6092 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 6093
18e21ce8 60942000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 6095
f43d79c1
GM
6096 * fileio.c (Ffile_symlink_p): If result starts with a `/'
6097 and contains a `:', prepend `/:'.
6098
6099 * window.c (select_window_1): If selected_window is nil,
6100 don't "swap out" the buffer's point.
6101 (Fset_window_configuration): Set selected_window to nil
6102 before calling Fselect_window.
6103 (unshow_buffer): Don't set point in buffer from window's point
6104 if another more recently selected window also shows the buffer.
6105
bed0c171
GM
61062000-02-25 Gerd Moellmann <gerd@gnu.org>
6107
449c3c52
GM
6108 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
6109
f5b58615
GM
6110 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
6111 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
6112 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
6113 variables.
6114 (DEFAULT_BUSY_CURSOR_DELAY): New define.
6115 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
6116 (hide_busy_cursor): New functions.
6117 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
6118
6119 * minibuf.c (read_minibuf): Cancel busy-cursor.
6120
6121 * keyboard.c (command_loop_1): Call start_busy_cursor before
6122 Fcommand_execute and cancel_busy_cursor after it.
6123 (timer_check): Remove busy-cursor code.
6124 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
6125 cursor timer.
6126
6127 * process.c (wait_reading_process_input): Remove busy-cursor code.
6128
6129 * eval.c (Fsignal): Call cancel_busy_cursor instead of
6130 Fx_hide_busy_cursor.
6131
6132 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
6133 Remove prototyoes.
6134 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
6135
6136 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
6137
6138 * xterm.c (XTread_socket): Remove busy-cursor code.
6139
4eb8436f
GM
6140 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
6141 (build_frame_matrix_from_leaf_window): Put code handling
6142 glyph row's not being a slice of a frame row in #if 0.
6143 (sync_window_with_frame_matrix_rows): New function.
6144 (frame_row_to_window): New function.
6145 (mirror_line_dance): Handle copies between windows.
6146
3cb65b0e
GM
6147 * lread.c (Fload): Use `xfree' instead of `free'.
6148 (init_obarray): Use `xmalloc' instead of `malloc'.
6149
bed0c171
GM
6150 * window.c (Fset_window_buffer): Set WINDOW to the window
6151 after decoding.
2add4349
GM
6152 (coordinates_in_window): Take frame's internal border width
6153 into account.
bed0c171 6154
42088c12
GM
61552000-02-24 Gerd Moellmann <gerd@gnu.org>
6156
6157 * xterm.c (x_display_and_set_cursor): Display cursor of
6158 non-selected windows depending on the setting of
6159 cursor_in_non_selected_windows.
6160
6161 * xdisp.c (cursor_in_non_selected_windows): New variable.
6162 (syms_of_xdisp): DEFVAR_BOOL it.
6163
d1e103b2
GM
61642000-02-23 Gerd Moellmann <gerd@gnu.org>
6165
723e779c
GM
6166 * data.c (Fstring_to_number): If number is greater than what
6167 fits into an integer, return a float.
6168
d1e103b2
GM
6169 * eval.c (specbind): Remove references to
6170 keyword_symbols_constant_flag.
6171
6172 * data.c (keyword_symbols_constant_flag): Removed.
6173 (Fmakunbound, set_internal, syms_of_data): Remove references to
6174 keyword_symbols_constant_flag.
6175
6176 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
6177
214f877f
KH
61782000-02-23 Kenichi Handa <handa@etl.go.jp>
6179
6180 * syntax.c (multibyte_syntax_as_symbol): New variable.
6181 (syms_of_syntax): Declare it as a Lisp variable.
6182 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
6183 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
6184 nonzero, treat all multibyte characters as symbol.
42088c12 6185 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
6186 characters.
6187
130adcb7
EZ
61882000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
6189
3cb65b0e 6190 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 6191 a deleted frame.
130adcb7 6192
17cbbf95
GM
61932000-02-21 Gerd Moellmann <gerd@gnu.org>
6194
6195 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
6196
6197 * xfns.c (x_window_to_frame, x_any_window_to_frame)
6198 (x_non_menubar_window_to_frame): Check the busy-cursor window.
6199
beb0bc36
DL
62002000-02-21 Dave Love <fx@gnu.org>
6201
6202 * frame.c (Vmouse_position_function): New variable.
6203 (Fmouse_position): Use it.
6204 (syms_of_frame): Install it.
6205
6206 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
6207
1d92afcd
GM
62082000-02-20 Gerd Moellmann <gerd@gnu.org>
6209
6210 * fileio.c (Finsert_file_contents): Unbind the binding of
6211 standard-output done by temp_output_buffer_setup.
329eed9f
GM
6212
6213 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
6214 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
6215 (specbind, unbind_to): Handle most common case of non-constant
6216 symbol with trivial value specially.
6217
6218 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
6219
18e21ce8 62202000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
6221
6222 * data.c (Fmake_variable_buffer_local): Doc fix.
6223 Init found_for_buffer to 0.
6224 (Fmake_variable_frame_local): If the variable has already
6225 been buffer-local, set the check_frame field.
6226
1d4311c3
EZ
62272000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
6228
6229 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
6230 produced for CODING_MODE_LAST_BLOCK requires.
6231
2dc95ddd
DL
62322000-02-18 Dave Love <fx@gnu.org>
6233
6234 * keyboard.c (echo_keystrokes): Remove declaration.
6235 (Vecho_keystrokes) New variable.
6236 (read_char, record_menu_key, read_key_sequence): Use it to allow
6237 use of float value.
6238 (syms_of_keyboard): Change Vecho_keystrokes declaration.
6239
6240 * lread.c: Undef feature selection macros before defining.
6241
f0930f35
GM
62422000-02-18 Gerd Moellmann <gerd@gnu.org>
6243
6244 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
6245 for symbols other than the symbol in question.
6246
e3d4de90
DL
62472000-02-17 Dave Love <fx@gnu.org>
6248
6249 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
6250
0b378936
GM
62512000-02-17 Gerd Moellmann <gerd@gnu.org>
6252
d621caf7
GM
6253 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
6254
0b378936
GM
6255 * alloc.c (enum mem_type): Compile unconditionally.
6256
3b451f74
EZ
62572000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
6258
6259 * xfaces.c (tty_defined_color): Don't return faulire indication
6260 for unspecified-fg and unspecified-bg pseudo-colors.
6261
10689a01
GM
62622000-02-17 Gerd Moellmann <gerd@gnu.org>
6263
1216f5e4
GM
6264 * alloc.c (mark_object): Don't mark symbol names in pure space.
6265 (gc_sweep): Don't unmark symbol names in pure space.
6266
6267 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
6268 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
6269 [GC_MARK_STACK]: New defines.
427ec082 6270 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
6271 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
6272
6273 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
6274
6275 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
6276 allocate_buffer instead of xmalloc.
6277
6278 * alloc.c (toplevel): Include setjmp.h.
6279 (PURE_POINTER_P): New define.
6280 (enum mem_type) [GC_MARK_STACK]: New enumeration.
6281 (Vdead) [GC_MARK_STACK]: New variable.
6282 (lisp_malloc): Add parameter TYPE, call mem_insert if
6283 GC_MARK_STACK is defined.
6284 (allocate_buffer): New function.
427ec082 6285 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
6286 (free_float) [GC_MARK_STACK]: Set type to Vdead.
6287 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
6288 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
6289 (MEM_NIL) [GC_MARK_STACK]: New define.
6290 (struct mem_node) [GC_MARK_STACK]: New structure.
6291 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
6292 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
6293 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
6294 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
6295 (mark_stack) [GC_MARK_STACK]: New functions.
6296 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
6297 (clear_marks): Removed.
6298 (gc_sweep): Set free conses' car, free floats' type, free
6299 symbols' function to Vdead. Use lisp_free to free buffers.
6300 (init_alloc_once): Initialize Vdead.
6301 (survives_gc_p): Return non-zero for pure objects.
6302
6303 * alloc.c: Add comments throughout the file.
6304
2503c8b1
GM
6305 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
6306 that unblocks alarms.
6307
8389e1e2
GM
6308 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
6309 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
6310 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
6311
10689a01 6312 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 6313
bfc17d18
KH
63142000-02-17 Kenichi Handa <handa@etl.go.jp>
6315
4a09dee0
KH
6316 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
6317 avoid infinite error signaling. Allocate sufficient memory for
6318 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 6319
2b927d02
SM
63202000-02-17 Stefan Monnier <monnier@cs.yale.edu>
6321
6322 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
6323 depends on the previous behavior.
6324
b49cb764
GM
63252000-02-16 Gerd Moellmann <gerd@gnu.org>
6326
6327 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
6328
99e95407
GM
63292000-02-15 Gerd Moellmann <gerd@gnu.org>
6330
6331 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
6332
6333 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 6334 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
6335 write(2).
6336
6ffd3cf7
RS
63372000-02-15 Richard M. Stallman <rms@gnu.org>
6338
6339 * data.c (set_internal): Don't make variable buffer-local
6340 if within a let-binding for the same buffer.
6341 (let_shadows_buffer_binding_p): New function.
6342
6343 * eval.c (specbind): For buffer-local value,
6344 record the current buffer also.
6345 (unbind_to): Cope with that change.
6346
cad53475
GM
63472000-02-15 Gerd Moellmann <gerd@gnu.org>
6348
6349 * window.c (Fsave_window_excursion): Doc fix.
6350
1aa963c8
SM
63512000-02-15 Stefan Monnier <monnier@cs.yale.edu>
6352
6353 * syntax.c (back_comment): Make sure we only consider comment-starters
6354 of the relevant style and return -1 in case of a failure to find the
6355 beginning of the comment.
6356 (Fforward_comment): If back_comment fails, go back to the position just
6357 after the comment-end.
6358 (scan_lists): Add comment describing a very minor bug.
6359
b9b84fd3
SM
63602000-02-14 Stefan Monnier <monnier@cs.yale.edu>
6361
6362 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
6363 `completion-regexp-list' in the docstring.
6364
3a28db80
DL
63652000-02-14 Dave Love <fx@gnu.org>
6366
6367 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
6368
fb4a568d
SM
63692000-02-14 Stefan Monnier <monnier@cs.yale.edu>
6370
6371 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
6372 to Emacs' syntax. Also fix the comment about set/not-set meanings
6373 since Emacs syntax is not the value 0 any more.
6374 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
6375 since it's now part of RE_SYNTAX_EMACS.
6376
1063ebb5
DL
63772000-02-12 Dave Love <fx@gnu.org>
6378
6379 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
6380 Alpha.
6381
fb07a302
GM
63822000-02-12 Gerd Moellmann <gerd@gnu.org>
6383
6384 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
6385
aaf2320c
DL
63862000-02-12 Dave Love <fx@gnu.org>
6387
6388 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
6389
6390 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
6391 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
6392 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
6393
6394 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
6395
6396 * s/nextstep.h: Don't define HAVE_ALLOCA.
6397
6398 * config.in: Add vfork bits.
6399
eedf8bde
GM
64002000-02-12 Gerd Moellmann <gerd@gnu.org>
6401
6402 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
6403 unwind function to undo the effect of stopping atimers.
6404
6405 * keyboard.c (bind_polling_period): Stop all timers except
6406 poll_timer.
6407
6408 * atimer.c (stopped_atimers): New variable.
6409 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
6410 New functions.
6411
6412 * atimer.h (stop_other_atimers, run_all_atimers)
6413 (unwind_stop_other_atimers): Add function prototypes.
427ec082 6414
eedf8bde
GM
6415 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
6416
8476c2f8
KR
64172000-02-11 Ken Raeburn <raeburn@gnu.org>
6418
6419 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
6420 library may depend on jpeg.
6421 (atimer.o): Depends on atimer.c.
6422
0e85e4a3
KH
64232000-02-11 Kenichi Handa <handa@etl.go.jp>
6424
6425 * insdel.c (del_range_1): Call update_compositions.
6426 (del_range_both): Call update_compositions just once..
6427
97fa0cc8
DL
64282000-02-10 Dave Love <fx@gnu.org>
6429
6430 * xfns.c (create_frame_xic): Fix initialization of automatic
6431 aggregates for pcc.
6432
25566a3c
KH
64332000-02-09 Kenichi Handa <handa@etl.go.jp>
6434
6435 * ccl.c (CCL_MAKE_CHAR): New macro.
6436 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
6437 registers by CCL_MAKE_CHAR before calling translate_char.
6438 <CCL_TranslateCharacterConstTbl> Likewise.
6439
69da54ba
DL
64402000-02-08 Dave Love <fx@gnu.org>
6441
6442 * lread.c (__EXTENSIONS__): Define.
6443
f7136ee8
GM
64442000-02-08 Gerd Moellmann <gerd@gnu.org>
6445
6446 * puresize.h (BASE_PURESIZE): Increase to 650000.
6447
7768790b
EZ
64482000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
6449
6450 * msdos.c (XMenuActivate): Turn off the cursor after displaying
6451 the help message.
6452
38fd211b
EZ
64532000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
6454
6455 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
6456 md, mh, mb, mr, and me to the fake termcap entry.
6457
66e4690f
KR
64582000-02-06 Ken Raeburn <raeburn@gnu.org>
6459
6460 * sound.c (sound_cleanup): Don't call device close routine if the
6461 function pointer is null.
6462
a75dfea0
AI
64632000-02-06 Andrew Innes <andrewi@gnu.org>
6464
6465 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
6466 around image definitions and prototypes.
6467 (gamma_correct) [WINDOWSNT]: New prototype.
6468
6469 * w32term.c (x_make_frame_visible): Replace call to
6470 input_poll_signal with poll_for_input.
6471
6472 * window.c [WINDOWSNT]: Include w32term.h.
6473
6474 * xdisp.c [WINDOWSNT]: Include w32term.h.
6475
6476 * makefile.nt: Add dependencies on w32gui.h.
6477 (OBJ1): Include atimer.obj.
6478 ($(BLD)\atimer.obj): New dependency rule.
6479
6480 * w32.c (sigmask): New function (does nothing).
6481 (sigunblock): Ditto.
6482
6483 * frame.c [WINDOWSNT]: Include w32term.h.
6484
6485 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
6486
6487 * lread.c (syms_of_lread): Fix literal newlines.
6488
6489 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
6490 the string constant limit (2048 bytes) in MSVC.
6491 (main): Ditto.
6492
59ddecde
GM
64932000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
6494
6495 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
6496 area.
6497 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
6498 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
6499 dispatch the event.
6500
07590973
DL
65012000-02-04 Dave Love <fx@gnu.org>
6502
6503 * fileio.c: Remove some unused vars.
6504 (_GNU_SOURCE): Define (for euidaccess).
6505
6506 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
6507
6508 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
6509 gcpro1, gcpro2.
6510 (read_minibuf): Deal with allow_props correctly.
6511
649351f9
EZ
65122000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
6513
6514 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
6515
66e4690f 65162000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
6517
6518 * search.c (compile_pattern): If a cache entry has a nil regexp,
6519 fill in that entry instead of clobbering a previously cached
6520 string regexp.
6521
66e4690f 65222000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
6523
6524 * puresize.h (BASE_PURESIZE): Increase to 610000.
6525
d240a249
GM
65262000-02-02 Gerd Moellmann <gerd@gnu.org>
6527
6528 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
6529 can GC.
6530
ca91fb26
KH
65312000-02-02 Kenichi Handa <handa@etl.go.jp>
6532
25660570
KH
6533 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
6534 instead of incrementing ic directly.
6535 <CCL_WriteExprConst> Likewise.
6536 <ccl_set_expr>: Set ic to jump_address.
6537
ca91fb26
KH
6538 * fileio.c (e_write): Fix the handling of
6539 CODING_FINISH_INSUFFICIENT_SRC.
6540
2ede9689
DL
65412000-02-01 Dave Love <fx@gnu.org>
6542
6543 * editfns.c (Fpropertize): Doc fix.
6544
6545 * process.c (Fstart_process): Doc fix.
6546
6547 * eval.c: Fix various doc strings not to duplicate information
6548 from help-manyarg-func-alist.
6549
6550 * window.c (Fset_window_margins): Don't make interactive. Doc
6551 fix.
6552
6553 * doc.c (Vhelp_manyarg_func_alist): New variable.
6554 (Fdocumentation): Use it.
6555 (syms_of_doc): Define it.
6556
b6680a0e
GM
65572000-01-31 Gerd Moellmann <gerd@gnu.org>
6558
2cb750ba
GM
6559 * xterm.c (xim_open_dpy): Remove unused local variable.
6560
74e9213b
GM
6561 * emacs.c (USAGE): Use term `display options' instead of `X
6562 options'.
6563
6564 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
6565 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
6566
b6680a0e
GM
6567 * fns.c (sweep_weak_table): New function.
6568 (sweep_weak_hash_tables): Use it. Keep on marking until there
6569 is no more change.
6570
994c5afe
GM
65712000-01-30 Gerd Moellmann <gerd@gnu.org>
6572
6573 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
6574 that XTread_socket does not crash by trying to call XNoOp on a
6575 closed display.
427ec082 6576
f00276e3
JR
65772000-01-30 Jason Rumney <jasonr@gnu.org>
6578
6579 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
6580 Change selected_frame to SELECTED_FRAME ().
6581 (w32_console_mouse_position): Remove #ifndef MULE from around
6582 `insist' parameter.
6583
6584 * makefile.nt: Remove dosfns.obj.
6585
6586 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
6587
6588 * w32fns.c (w32_defined_color): Check for valid frame before
6589 applying gamma correction. Eliminate dependency on frame elsewhere.
6590 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
6591 (w32_to_x_font): Use resx and resy not height_in and width_in.
6592 (x_to_w32_font): Doc fix.
6593 (xlfd_strip_height): New function to strip and return font height.
6594 (w32_font_match): Compare height separately from rest of xlfd
6595 spec, using xlfd_strip_height.
6596
6597 * w32term.c (w32_term_init): Swap resx and height_in, resy and
6598 width_in. Use w32_defined_color in place of defined_color.
6599
6600 * w32faces.c: Merge more of DOS and X specifics in preparation for
6601 merge with xfaces.c.
6602 (defined_color): Remove FIXME comment.
6603 (tty_color_name): Provide w32-specific function.
6604 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
6605
6606 * w32console.c (turn_on_face, turn_off_face): Removed.
6607 (w32_face_attributes): New function.
6608 (Global_variables): Reduce scope where possible.
6609 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
6610 fill attribute.
6611 (hl_mode): Don't modify text attributes.
6612 (write_glyphs): Don't do anything if len <= 0. Use
6613 w32_face_attributes to get attributes for drawing. Write
6614 terminating codes using char_attr_normal.
6615 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
6616 (update_begin, update_end): Likewise.
6617 (vga_stdcolor_name): New function.
6618 (initialize_w32_display): Remove char_attr_reverse and char_attr.
6619 (Fset_screen_color): Remove char_attr_reverse.
6620
b08e8bb2
GM
66212000-01-29 Gerd Moellmann <gerd@gnu.org>
6622
6623 * xfns.c (xic_set_preeditarea): Take window parameter and
6624 window-relative pixel-positions.
6625
6626 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
6627 is its frame's selected window.
6628 (xim_instantiate_callback): Likewise.
6629
6630 * xfns.c (x_create_im): Removed.
6631 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
6632 (supported_xim_styles): Renamed from supported_styles.
6633 (best_xim_style): Renamed from best_style.
6634 (create_frame_xic): Renamed from xic_create_frame.
6635 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 6636
b08e8bb2
GM
66372000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
6638
6639 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
6640 our frames, call XFilterEvent with 2nd parameter `None'.
6641 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
6642 returning XBufferOverflow.
6643 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
6644 area.
6645 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
6646 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
6647 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
6648 (xim_initialize, xim_close)
6649 [HAVE_X_I18N && HAVE_X11R6]: New functions.
6650 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
6651 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
6652 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
6653
6654 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
6655 and `xim_styles'.
6656 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
6657 `xic_style' and `xic_xfs'.
6658 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
6659 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
6660 (FRAME_XIM): Removed.
6661
6662 * xfns.c (supported_styles): New variable.
6663 (DEFAULT_STYLE, DEFAULT_FONT): New macros
6664 (xic_create_xfontset, best_style, xic_create_frame)
6665 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
6666 (xic_set_xfontset): New functions.
6667
142e109c
DL
66682000-01-28 Dave Love <fx@gnu.org>
6669
6670 * s/irix6-5.h: Revert last change after change to irix5-0.h.
6671
6672 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
6673
b02786f9
GM
66742000-01-28 Gerd Moellmann <gerd@gnu.org>
6675
d060bc9f
GM
6676 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
6677 for *scratch* if it already existed.
6678
b02786f9
GM
6679 * emacs.c (USAGE): New macro.
6680 (main): Use it to display usage information.
6681
2c52d7e4
EZ
66822000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
6683
6684 Support for the menu-help feature:
6685
6686 * msdos.h: Change prototypes of XMenuAddSelection and
6687 XMenuActivate.
6688
6689 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
6690 part of the line to the termscript file.
6691 (IT_clear_to_end): Clear the entire line, not just its beginning.
6692 (menu_help_message, prev_menu_help_message): New variables.
6693 (IT_menu_make_room): Make room for the help_text member.
6694 (IT_menu_display): New argument disp_help; all callers changed.
6695 If disp_help is non-zero, store the help text of the active menu
6696 item in menu_help_message.
6697 (XMenuAddPane): Initialize the help_text member to NULL.
6698 (XMenuAddSelection): New argument help_text. Store it in the
6699 XMenu structure.
6700 (XMenuActivate): New argument help_callback. If the value of
6701 menu_help_message has changed since the last time, display the
6702 menu help message text while waiting for the mouse to move. Clear
6703 the echo area before exiting.
6704 (XMenuDestroy): Free the help_text member.
6705
ffe0bcd1
GM
67062000-01-27 Gerd Moellmann <gerd@gnu.org>
6707
6708 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
6709 XMenuAddSelection. Pass help callback to XMenuActivate.
6710 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
6711
50dbd23f
EZ
67122000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
6713
6714 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
6715 and EMACS_SET_USECS.
6716
f5941bf8
GM
67172000-01-26 Dave Love <fx@gnu.org>
6718
6c67ddee
DL
6719 * editfns.c (Fchar_after, Fchar_before): Doc fix.
6720
f5941bf8
GM
6721 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
6722 an error may be signalled.
6723
9e49c990
GM
67242000-01-26 Gerd Moellmann <gerd@gnu.org>
6725
fc3cb460
GM
6726 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
6727 LD_SWITCH_SYSTEM inherited from irix5-0.h.
6728
9e49c990
GM
6729 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
6730
d0c037d8
GM
67312000-01-25 Gerd Moellmann <gerd@gnu.org>
6732
6733 * charset.c (Fstring): If there is a multibyte char among
6734 the args, always return a multibyte string.
6735
e12489f9
GM
67362000-01-25 Gerd Moellmann <gerd@gnu.org>
6737
6738 * sysdep.c (sys_select): Turn atimers off and on instead of
6739 recording and restoring old alarm handler
6740
6741 * process.c (toplevel): Include atimer.h.
6742 (create_process_1): Rewritten.
6743 (create_process): Use atimers instead of alarm.
6744 (wait_reading_process_input) [hpux]: Turn atimers off instead
6745 of turning off SIGALRM.
6746 (wait_reading_process_input): Turn off atimers instead off
6747 calling stop_polling.
6748
6749 * emacs.c (main): Call init_atimer.
6750
6751 * keyboard.c (toplevel): Include systime.h and atimer.h.
6752 (polling_for_input): Removed because unused.
6753 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
6754 (poll_timer): New variable.
6755 (poll_for_input, poll_for_input_1): New functions.
6756 (start_polling, stop_polling): Rewritten.
6757
6758 * keyboard.h (polling_for_input): Removed.
427ec082 6759
e12489f9
GM
6760 * atimer.h, atimer.c: New files.
6761
6762 * Makefile.in (obj): Add atimer.o.
6763 (atimer.o): New target.
6764
6765 * blockinput.h (pending_atimers): Add extern declaration.
6766 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
6767
6768 * lisp.h (popup_activated_flag): Add extern declaration.
6769
6770 * xmenu.c (popup_activated_flag): Make externally visible.
6771 (popup_activate_callback) [USE_MOTIF]: Increment
6772 popup_activated_flag.
6773 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
6774
6775 * xterm.c (toplevel): Include atimer.h.
6776 (toolkit_scroll_bar_interaction): New variable.
6777 (Fxt_process_timeouts): Removed.
6778 (x_process_timeouts): New function.
6779 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
6780 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
6781 (x_make_frame_visible): Call poll_for_input_1 instead of
6782 input_poll_signal. Don't call alarm.
6783 (x_initialize): Install timer calling x_process_timeouts.
427ec082 6784
1e5279b9
DL
67852000-01-24 Dave Love <fx@gnu.org>
6786
6c67ddee 6787 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
6788 Don't use -cckr -- apparently not now necessary.
6789
edf6aeb8
EZ
67902000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
6791
6792 * msdos.c (IT_menu_display): Truncate long menu lines at the right
6793 screen boundary.
6794
9badad41
JR
67952000-01-23 Jason Rumney <jasonr@gnu.org>
6796
6797 * w32fns.c (w32_defined_color): Apply gamma correction before
6798 trying to map to the palette.
6799 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
6800 to w32_clear_rect.
6801
6802 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
6803 here. Callers changed to always pass real device context.
6804 (w32_draw_bitmap): Likewise.
6805 (w32_get_glyph_overhangs): Likewise.
6806 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
6807 one.
6808 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
6809 pfnSetScrollInfo and SetScrollRange.
6810 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
6811 back into MULE characters after decoding them.
6812 (x_get_glyph_face_and_encoding): Likewise.
6813 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
6814 GetCharABCWidthsW fails, since this is defined on Windows 9x.
6815 (x_produce_glyphs): Calculate per char metrics for a character
6816 that we know exists in default font when font_not_found_p is true.
6817
63bd786b
JR
68182000-01-22 Jason Rumney <jasonr@gnu.org>
6819
6820 * makefile.nt (intervals.obj, composite.obj): New modules.
6821 (composite.h): Added as dependency where appropriate.
6822
6823 * w32gui.h (XGCValue): New struct for emulating X GCs.
6824
6825 * w32term.h (XCharStruct): New struct for emulating X.
6826
6827 * w32console.c (turn_on_face, turn_off_face): New functions.
6828 (change_line_highlight): New prototype for new redisplay.
6829 (write_glyphs): Support multibyte text. Support faces.
6830
6831 * w32faces.c: Complete rewrite for new redisplay based on new
6832 xfaces.c.
6833
6834 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
6835 throughout. struct frame * in place of FRAME_PTR.
6836 Skeleton support for images, toolbars, tooltips from xfns.c.
6837 (Fx_create_frame): Use system default for default scroll bar
6838 width.
6839 (w32_get_arg): Renamed from x_get_arg.
6840 (Fx_file_dialog): New function.
6841 (w32_list_fonts): Check cache before asking system.
6842 (Vw32_enable_synthesized_fonts): New variable.
6843 (Vw32_enable_italics): Obsolete, removed.
6844
6845 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
6846 Use SELECTED_FRAME macro.
6847
6848 * w32menu.c: Add skeleton support for help strings on menus.
6849 (add_menu_item): Native checkbox and radio support added, but not
6850 yet enabled due to bugs.
6851 (push_menu_item): Add parameters type, selection and help.
6852 Callers updated.
6853 Formatting changes to reduce unnecessary diffs with xmenu.c.
6854
6855 * w32select.c (Fw32_set_clipboard_data): Update call to
6856 find_charset_in_str.
6857
6858 * w32term.c: Complete rewrite for new redisplay based on new
6859 xterm.c with necessary sections merged back in from old w32term.c.
6860
6ffd3cf7 68612000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
6862
6863 * data.c (set_internal): Further fix in same criterion.
6864
6ffd3cf7 68652000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
6866
6867 * data.c (set_internal): Fix the criteria for whether
6868 to swap out the old cached binding.
6869
60af03f1
DL
68702000-01-19 Dave Love <fx@gnu.org>
6871
6872 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
6873
f9be074f
KH
68742000-01-18 Kenichi Handa <handa@etl.go.jp>
6875
6876 * regex.c (re_compile_fastmap): While checking a range table for
6877 `charset', skip flag bits for a character class correctly.
6878
52b8dbf9
GM
68792000-01-17 Gerd Moellmann <gerd@gnu.org>
6880
d36100c9
GM
6881 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
6882
52b8dbf9
GM
6883 * xfns.c (x_window): Call lw_create_widget with new parameter
6884 list.
6885
6886 * widget.c (EmacsFrameSetCharSize): Change size of children first
6887 because of problems with main window geometry management under
6888 Lesstif.
6889
6890 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
6891 MENU_ITEMS_ITEM_.*.
6892 (MENU_ITEMS_ITEM_HELP): New enumerator.
6893 (push_menu_item): Add parameter HELP. Record help in menu_items.
6894 (single_menu_item, single_submenu, list_of_items): Call
6895 push_menu_item with new parameter.
6896 (single_submenu): Set help string in widget value.
6897 (menu_highlight_callback): New function.
6898 (set_frame_menubar): Call lw_create_widget with new
6899 parameter list.
6900 (xmenu_show, xdialog_show): Ditto.
6901
3139018f
GM
69022000-01-13 Gerd Moellmann <gerd@gnu.org>
6903
6904 * sound.c (Fplay_sound): Improve doc string.
6905
83c8f461
RS
69062000-01-11 Richard M. Stallman <rms@gnu.org>
6907
6908 * lisp.h (set_internal): Enter the new arg.
6909
6910 * eval.c (specbind): Record buffer-local variables specially,
6911 indicating which buffer's binding was saved.
6912 (unbind_to): Restore buffer-local variables specially
6913 in the proper buffer.
6914
6915 * data.c (set_internal): New arg BUF.
427ec082 6916
83c8f461
RS
6917 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
6918 * data.c (Fset): Pass new arg to set_internal.
6919 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 6920
1fab1775
GM
69212000-01-11 Gerd Moellmann <gerd@gnu.org>
6922
6923 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
6924 xprintsym.
6925
83c8f461 69262000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
6927
6928 * minibuf.c (Ftry_completion): Doc fix.
6929
7a85e4df
GM
69302000-01-11 Gerd Moellmann <gerd@gnu.org>
6931
6932 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
6933 vector, too.
6934
a970dae4
AS
69352000-01-11 Andreas Schwab <schwab@suse.de>
6936
6937 * coding.c (code_convert_region): Initialize total_skip.
6938
c65d14ee
DL
69392000-01-08 Dave Love <fx@gnu.org>
6940
6941 * eval.c (Fuser_variable_p): Check customizability too.
6942
834938d2
GM
69432000-01-07 Gerd Moellmann <gerd@gnu.org>
6944
6945 * minibuf.c (Fcompleting_read): Doc fix.
6946
e0303cd6
GM
69472000-01-05 Gerd Moellmann <gerd@gnu.org>
6948
8a26744b
GM
6949 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
6950 -L /usr/local/lib.
6951
e0303cd6
GM
6952 * xfns.c (x_create_im): New function to set IM and IC of a frame.
6953 Check that input style is supported before trying to create an
6954 IC for it.
6955 (x_window): Call x_create_im.
427ec082 6956
2e471eb5
GM
69572000-01-04 Gerd Moellmann <gerd@gnu.org>
6958
560a7bd2
GM
6959 * xfns.c (current_gif_memory_src): New variable.
6960 (gif_load): Record the address of the current memory source
6961 in current_gif_memory_src.
6962 (gif_read_from_memory): Use current_gif_memory_src.
6963
f9ee84a3
GM
6964 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
6965 macros statement form.
6966
d1299cde
GM
6967 * sound.c (struct sound): Renamed from struct sound_file.
6968 (struct sound): Add members `data' and `header_size'.
6969 (enum sound_attr): Add SOUND_DATA.
6970 (current_sound, current_sound_device): Variables renamed from
6971 sound_file and sound_device.
6972 (parse_sound): Parse :data.
6973 (parse_sound): Handle sound data in strings.
6974 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 6975 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
6976 needed header size.
6977 (wav_play, au_play): Play sounds from string data.
6978
2e471eb5
GM
6979 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
6980
6981 * lisp.h: Add prototype for allocate_string_data.
6982
6983 * alloc.c (Fgarbage_collect): Return number of live and free
6984 strings.
6985
6986 * alloc.c (mark_buffer): Remove code in #if 0.
6987 (gc_sweep): Ditto.
6988 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
6989 (strings_consed): New variable.
6990 (allocate_string): Set it.
6991 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
6992 (Fmemory_use_counts): Return strings_consed. Use Flist.
6993
6994 * alloc.c: General cleanup in comments etc. Remove conditional
6995 compilation for `standalone'.
6996
6997 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
6998
6999 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
7000 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
7001 (DONT_COPY_FLAG): Removed.
7002 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
7003 (struct sdata, struct sblock): New
7004 (struct string_block): Rewritten.
7005 (STRINGS_IN_STRING_BLOCK): New macro.
7006 (oldest_sblock, current_sblock, total_strings, total_free_strings)
7007 (large_sblocks, string_blocks, string_free_list): New variables.
7008 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
7009 (init_strings): Rewritten.
7010 (allocate_string, allocate_string_data, compact_small_strings)
7011 (free_large_strings, sweep_strings): New functions.
7012 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
7013 (struct string_block_head, current_string_block)
7014 (first_string_block, large_string_blocks, STRING_FULLSIZE)
7015 (STRING_PAD): Removed.
7016 (make_uninit_multibyte_string, make_pure_string): Rewritten.
7017 (Fgarbage_collect): Don't set mark bit in large strings.
7018 (mark_object): Mark strings differently. Mark symbol names
7019 differently.
7020 (survives_gc_p): Test marked strings differently.
427ec082 7021 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
7022 symbol names.
7023 (compact_strings): Removed.
7024
42608ba8
EZ
70252000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
7026
7027 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
7028 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
7029
e0a09e1a
KH
70302000-01-04 Kenichi Handa <handa@etl.go.jp>
7031
dd9f0750 7032 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 7033 in a non-empty buffer.
dd9f0750 7034
3c0f3b15 7035 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 7036
44cd3ae5
GM
70372000-01-03 Gerd Moellmann <gerd@gnu.org>
7038
7039 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
7040 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
7041
7042 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
7043
c182a70f
EZ
70442000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
7045
7046 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
7047 need to test for MSDOS frames.
7048
24480d5b
EZ
70492000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
7050
7051 * dosfns.c (unspecified_colors): Remove.
7052 (msdos_stdcolor_idx): Use global variables unspecified_fg and
7053 unspecified_bg.
7054 (msdos_stdcolor_name): Return strings for unspecified fore- and
7055 back-ground colors.
7056
7057 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 7058 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
7059 (tty_color_name): Return Lisp strings for unspecified fore- and
7060 back-ground colors.
7061 (Finternal_set_lisp_face_attribute): Remove the special treatment
7062 for Qunspecified_{f,b}g.
7063 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
7064 string.
7065
047f434a
GM
70662000-01-03 Gerd Moellmann <gerd@gnu.org>
7067
7068 * xdisp.c (reseat_at_next_visible_line_start): Position before
7069 newline only if ending up on a newline.
7070 (next_element_from_ellipsis): Return success. Handle case of
7071 displaying no ellipsis. Fix case of ellipsis defined in display
7072 table.
7073 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
7074 returns 0.
7075
d684c676
EZ
70762000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
7077
7078 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
7079 (Fcolor_supported_p): Renamed from face-color-supported-p.
7080
5fe1d139
EZ
70812000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
7082
7083 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
7084 list of colors renamed to tty-defined-color-alist.
7085 (tty_color_name): Pass the frame to tty-color-by-index.
7086 (realize_tty_face): tty-color-alist is now a function which
7087 accepts the frame as argument.
7088
7089 * term.c (Ftty_display_color_p): Accept an optional argument
7090 FRAME.
7091
816be8b8
EZ
70922000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
7093
7094 * term.c (insert_glyphs): Pass glyph, not &glyph, to
7095 encode_terminal_code.
7096
b635321e
EZ
70972000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
7098
7099 * dispnew.c (mode_line_string): Support termcap frames as well.
7100
9b784e96
GM
71012000-01-01 Gerd Moellmann <gerd@gnu.org>
7102
27189709
GM
7103 * syntax.c (Fforward_word): Undo previous change.
7104
7105 * editfns.c (Fconstrain_to_field): Don't constrain if
7106 inhibit-field-text-motion is non-nil.
7107 (Fline_beginning_position): Undo previous change.
7108 (Fline_end_position): Ditto.
7109
7110 * syntax.c (Fforward_word): Notice field boundaries only if
7111 inhibit-field-text-motion is nil.
7112
7113 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
7114
7115 * editfns.c (Vinhibit_field_text_motion): New variable.
7116 (inhibit-field-text-motion): New DEFVAR_LISP.
7117 (Fline_beginning_position, Fline_end_position): Notice field
7118 boundaries only if inhibit-field-text-motion is nil.
7119
45158a91
GM
7120 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
7121 All calls adjusted.
7122 (x_build_heuristic_mask): Likewise.
7123 (xbm_load_image_from_file): Change error output.
7124 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
7125 (gif_load, gs_load, x_kill_gs_process): Ditto.
7126
9b784e96
GM
7127 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
7128 color indices when accessing raster pixels.
63cec32f
GM
7129 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
7130 one of :file or :data.
7131 (enum pbm_keyword_index): Add PBM_DATA.
7132 (pbm_format): Add :data.
7133 (pbm_image_p): Allow either :file or :data.
7134 (pbm_read_file): New function.
7135 (pbm_scan_number): Rewritten to read from string.
7136 (pbm_load): Support :data.
9b784e96 7137
2cb085db 7138See ChangeLog.8 for earlier changes.
6922b018
KH
7139
7140;; Local Variables:
49b3bd82 7141;; coding: iso-2022-7bit
6922b018 7142;; End: