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