(quail-help): Fix previous change.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
0da3ecef
GM
12000-09-07 Gerd Moellmann <gerd@gnu.org>
2
ab0ee409
GM
3 * xfaces.c (Vparam_value_alist): New variable.
4 (syms_of_xfaces): Initialize it.
5 (Finternal_set_lisp_face_attribute): Avoid more consing.
6
7 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
8 specially.
9 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
10 (Qbackground_mode): New variable.
11 (syms_of_frame_1): Initialize Qbackground_mode.
12
13 * lisp.h (Qdisplay): Declare extern.
1091dd67 14
0da3ecef
GM
15 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
16 change face on all frames, and change the default for new frames.
17
b14654b9
DL
182000-09-07 Dave Love <fx@gnu.org>
19
20 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
21
d24fd56f
KH
222000-09-07 Kenichi Handa <handa@etl.go.jp>
23
794f3670
KH
24 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
25
0fddd0dc
KH
26 * charset.c: Include composite.h
27 (lisp_string_width): New function.
28 (Fstring_width): Call lisp_string_width instead of strwidth.
29
30 * Makefile.in (charset.o): Depends on composite.h.
31
d24fd56f
KH
32 * process.c (read_process_output): Before inserting the decoded
33 text in the buffer, adjust the multibyteness.
34
fa0b693c
GM
352000-09-06 Gerd Moellmann <gerd@gnu.org>
36
73b77ee5
GM
37 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
38 buffer's text buffer is null, map new memory.
39
0a58f946
GM
40 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
41 POINTER_TYPE and size_t.
42 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
43 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
44 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
45 [REL_ALLOC_MMAP]: New macros.
46 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
47 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
48 [REL_ALLOC_MMAP]: New functions.
49
50 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
51 before and after unexec.
52
53 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
54 text buffers if necessary.
55
56 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
57 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
58 in prototypes.
59
fa0b693c
GM
60 * config.in (HAVE_MMAP): Add #undef.
61
877055f6
GM
622000-09-05 Gerd Moellmann <gerd@gnu.org>
63
08ba3862
GM
64 * frame.c (Qdisplay_type): New variable.
65 (syms_of_frame_1): Initialize it.
66 (Fframe_parameter): New function that avoids consing.
67 (syms_of_frame): Defsubr it.
68
66ffe51c
GM
69 * buffer.c (Fother_buffer): Consider buffers as invisible when
70 they are displayed in a window on an invisible frame.
71
877055f6
GM
72 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
73 get-largest-window always return nil.
74
bb970e67
GM
752000-09-04 Gerd Moellmann <gerd@gnu.org>
76
77 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
78 variable; recognize Emacs 19 elc files.
79
7a3d0e0e
MB
802000-09-04 Miles Bader <miles@gnu.org>
81
82 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
83 before initially popping up the menu, so the menu doesn't flash
84 when the face settings are significantly different from the
85 defaults.
86
14473664
SM
872000-09-04 Stefan Monnier <monnier@cs.yale.edu>
88
89 * regex.c (WIDE_CHAR_SUPPORT): New macro.
90 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
91 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
92 (BIT_UNIBYTE): Remove.
93 (re_match_2_internal): Delete corresponding code and streamline the
94 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
95 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
96 (re_wctype_t): New type.
97 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
98 (regex_compile): Use them and fix handling of overly long char classes.
99
c1174479
AI
1002000-09-03 Andrew Innes <andrewi@gnu.org>
101
f8803e97
AI
102 * makefile.w32-in: Change to DOS line endings.
103
c1174479
AI
104 * s/ms-w32.h (ORDINARY_LINK): New define.
105
106 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
107 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
108
109 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
110 (distclean): Delete them here instead.
111
44ef7cf6
AI
112 * w32proc.c (compare_env): Convert to uppercase for comparison,
113 not lowercase, to match how the native Windows shell works.
114
49b3bd82
JR
1152000-09-03 Jason Rumney <jasonr@gnu.org>
116
117 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
118 CVS changes the line-ends when checking in/out on DOS/Windows.
119
120 * makefile.nt (emacs): Do not change directory to run temacs, as
121 the load-path is set relative to current directory.
122
a3d35a39
MB
1232000-09-03 Miles Bader <miles@gnu.org>
124
125 * xterm.c (x_alloc_lighter_color_for_widget): New function.
126
d276b0cf
GM
1272000-09-02 Gerd Moellmann <gerd@gnu.org>
128
715e84c9
GM
129 * xdisp.c (redisplay_mode_lines): New function.
130 (display_mode_lines): Return number of mode lines displayed.
131 (echo_area_display): Use redisplay_mode_lines to draw garbaged
132 mode lines. Don't temporarily bind redisplay-dont-pause to t.
133
8892f40b
GM
134 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
135 string.h and strings.h.
136 (index) [HAVE_INDEX]: Add prototype.
137
d276b0cf
GM
138 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
139 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
140
141 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
142 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
143
38404229
GM
1442000-09-01 Gerd Moellmann <gerd@gnu.org>
145
146 * lread.c (read1): Accept `?' as symbol constituent, for
147 compatiblity with XEmacs.
148
c0f9ea08
SM
1492000-08-31 Stefan Monnier <monnier@cs.yale.edu>
150
151 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
152 (struct re_pattern_buffer): Remove newline_anchor.
153 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
154 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
155 (re_max_failures, fail_stack): Use size_t rather than unsigned.
156 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
157 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
158 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
159 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
160 Get rid of references to newline_anchor.
161 (regcomp): Allocate and precompute a fastmap.
162
8c0f83fe
GM
1632000-08-31 Gerd Moellmann <gerd@gnu.org>
164
165 * lread.c (openp): GCPRO local variable `filename'.
166
4bb91c68
SM
1672000-08-30 Stefan Monnier <monnier@cs.yale.edu>
168
169 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
170
171 * regex.c: Merge some changes from GNU libc. Add prototypes.
172 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
173 Use memcmp and memcpy instead of bcopy and bcmp.
174 (init_syntax_once): Use ISALNUM.
175 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
176 (REG_UNSET_VALUE): Remove. Use NULL instead.
177 (REG_UNSET, re_match_2_internal): Use NULL.
178 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
179 New macros.
180 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
181 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
182 (regex_compile): In handle_interval, return an error rather than try to
183 unfetch the interval if we can't find the closing brace.
184 Obey the RE_NO_GNU_OPS syntax bit.
185 (TOLOWER): New macro.
186 (regcomp): Use it.
187 (regexec): Allocate regs.start and regs.end as one block.
188
5226a931
GM
1892000-08-30 Gerd Moellmann <gerd@gnu.org>
190
868dd24b
GM
191 * xdisp.c (echo_area_display): Check display_completed instead
192 of calling detect_input_pending.
193
194 * dispnew.c (update_frame): Only set display_completed here; move
195 the update_begin and update_end calls here from update_frame_1.
196 (update_frame_1): Don't set display_completed here, don't call
197 update_begin/update_end.
198
5226a931
GM
199 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
200 instead of store_frame_param.
201
2a8bd25f
GM
2022000-08-29 Gerd Moellmann <gerd@gnu.org>
203
204 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
205 desired window matrix hasn't been displayed, use the current row
206 instead. Make sure that only those frame rows are updated for
207 which there exists a corresponding enabled desired row.
208
ba3478d9
MB
2092000-08-29 Miles Bader <miles@gnu.org>
210
211 * xfaces.c (default_face_vector): New function.
212 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
213
87d0f685
GM
2142000-08-29 Gerd Moellmann <gerd@gnu.org>
215
216 * lread.c (openp): Prevent temporary string passed to
217 Ffile_readable_p from being garbage collected.
218
6fa86045
DL
2192000-08-28 Dave Love <fx@gnu.org>
220
221 * keymap.c (store_in_keymap): Add `static' to declaration.
222
bb17930d
GM
2232000-08-28 Gerd Moellmann <gerd@gnu.org>
224
225 * emacs.c, callint.c, doc.c, editfns.c
226 (toplevel) [HAVE_STRING_H]: Include string.h.
227 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
228 (index): Remove prototypes which might conflict with non-standard
229 definitions of index/strchr.
230
231 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
232 (rindex): Define only if !HAVE_RINDEX.
233
234 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
235
236 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
237
87188200
MB
2382000-08-28 Miles Bader <miles@gnu.org>
239
240 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
241 made inconsistent by a font-related attribute in FROM.
242 (merge_face_inheritance): Add function comment.
243
41a68aef
KH
2442000-08-28 Kenichi Handa <handa@etl.go.jp>
245
246 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
247 the 4th arg (PREV_EVENT) Qt to suppress input method.
248
f7c436c1
SM
2492000-08-27 Stefan Monnier <monnier@cs.yale.edu>
250
0b32bf0e
SM
251 * regex.c: Indent cpp directives and remove parens after `defined'.
252 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
253 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
254 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
255 (re_compile_pattern): Use size_t for length.
256 (init_syntax_once): Move to a better place.
257 * regex.h: Merge changes from GNU libc. Indent cpp directives.
258 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
259
f7c436c1
SM
260 * syntax.c (back_comment): Detect cases where a comment-starter is
261 actually inside another comment as in: /* a // b */ c // d \n.
262 Make it clear that `comstart_pos' is unused for nested comments.
263
264 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
265 (KEYMAPP): New macro.
266 (Fkeymap_parent, Fset_keymap_parent): Use it.
267 (fix_submap_inheritance): Mark it static.
268 (define_as_prefix, describe_buffer_bindings, describe_command)
269 (describe_translation, describe_map): Complete prototypes.
270
271 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
272
273 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
274 to better match the key-lookup behavior.
275
6288c62f
GM
2762000-08-27 Gerd Moellmann <gerd@gnu.org>
277
278 * xfaces.c (lface_fully_specified_p): Handle :inherit.
279 (Finternal_set_lisp_face_attribute): Fix typo in error message.
280
e931344e
EZ
2812000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
282
283 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
284 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
285 (xterm.o): Depend on coding.h
286
d10dfeef
KH
2872000-08-26 Kenichi Handa <handa@etl.go.jp>
288
289 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
290 the corresponding '#endif'.
291
2d73e8d3
MB
2922000-08-26 Miles Bader <miles@gnu.org>
293
294 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
295 * xfaces.c (QCinherit): New variable.
296 (syms_of_xfaces): Initialize it.
297 (LFACE_INHERIT): New macro.
298 (Finternal_get_lisp_face_attribute)
299 (merge_face_vector_with_property)
300 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
301 (check_lface_attrs): Allow new types of face height. Check
302 inherit attribute.
303 (CYCLE_CHECK): New macro.
304 (merge_face_inheritance): New function.
305 (merge_face_vectors): Merge inherited faces too. Add F and
306 CYCLE_CHECK arguments.
307 (merge_face_vector_with_property, Finternal_merge_in_global_face)
308 (lookup_named_face, lookup_derived_face, realize_named_face)
309 (face_at_string_position, face_at_buffer_position): Supply
310 new F and CYCLE_CHECK arguments to merge_face_vectors.
311 (merge_face_heights): New function.
312 (merge_face_vectors, merge_face_vector_with_property)
313 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
314 handle relative face heights.
315 (lface_same_font_attributes_p): Compare heights using EQ.
316
6ce974d4
KH
3172000-08-26 Kenichi Handa <handa@etl.go.jp>
318
319 * charset.c (char_to_string): Check the character validity.
320 (char_valid_p): If C is not less than MAX_CHAR, be sure to return
321 0.
322
dc1e502d
SM
3232000-08-25 Stefan Monnier <monnier@cs.yale.edu>
324
325 * regex.c (PUSH_FAILURE_COUNT): New macro.
326 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
327 Handle popping of a register's or a counter's data.
328 (POP_FAILURE_POINT): Use the new name.
329 (re_match_2_internal): Push counter data on the stack for succeed_n,
330 jump_n and set_number_at and remove misleading dead code in succeed_n.
331
bd9d0f3f
GM
3322000-08-25 Gerd Moellmann <gerd@gnu.org>
333
334 * xdisp.c (redisplay_internal): If considering all windows on all
335 frames, update the display for each frame as soon as possible,
336 instead of first building all desired matrices for all frames, and
337 then updating them all.
338 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
339
aa5b8e15
GM
3402000-08-24 Gerd Moellmann <gerd@gnu.org>
341
17494071
GM
342 * bytecode.c (mark_byte_stack): Add a comment.
343
aa5b8e15
GM
344 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
345 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
346 a graphical frame.
347
c543db81
KH
3482000-08-24 Kenichi Handa <handa@etl.go.jp>
349
d246d5f5
KH
350 * minibuf.c (do_completion): Always use compare-string, not
351 string-equal because the latter doesn't pay attention to
352 multibyteness of strings.
353
c543db81
KH
354 * process.c (create_process): Don't setup raw-text coding here.
355 (Fopen_network_stream): Don't set coding->src_multibyte and
356 coding->dst_multibyte here.
357 (read_process_output): For process filter, return unibyte string
358 if default-enable-multibyte-characters is nil.
359 (send_process): If OBJECT is multibyte text, be sure to encoded it
360 by the specified coding system for the process. Otherwise, setup
361 raw-text coding.
362 (init_process): Don't initialize default-process-coding-system
363 here.
364
9b47cfe0
EZ
3652000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
366
367 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
368 <scroll-down-aggressively>: Likewise.
369
f5a36960
KH
3702000-08-23 Kenichi Handa <handa@etl.go.jp>
371
372 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
373 zero. Set coding->produced_char correctly.
374
69a7ffa7
AI
3752000-08-22 Andrew Innes <andrewi@gnu.org>
376
377 * makefile.w32-in: New file.
378
379 * unexw32.c (unexec): Ignore old_name, and use the actual location
380 of the current executable instead. Base new_name on this.
381
382 * w32proc.c (create_child): Remove reference to security
383 descriptor, which isn't needed and doesn't compile with mingw32.
384
385 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
386 up dllimport attributes.
387 (x_update_window_end): Update prototype.
388
389 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
390 extern, which screws up dllimport attributes.
391
392 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
393 up dllimport attributes.
394
395 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
396 screws up dllimport attributes.
397
398 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
399 up dllimport attributes.
400 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
401 screws up dllimport attributes.
402
403 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
404 up dllimport attributes.
405
406 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
407 screws up dllimport attributes.
408
409 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
410 screws up dllimport attributes.
411
412 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
413 up dllimport attributes.
414
415 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
416 unnecessary extern, which screws up dllimport attributes.
417 (main): Ditto.
418
419 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
420 up dllimport attributes.
421
422 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
423 unnecessary extern, which screws up dllimport attributes.
424
425 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
426 screws up dllimport attributes.
427
428 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
429 up dllimport attributes.
430
431 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
432
433 * w32bdf.c (search_file_line):
434 (set_bdf_font_info):
435 (seek_char):
436 (w32_get_bdf_glyph):
437 (w32_BDF_to_x_font): Fix compile warnings.
438
439 * w32menu.c: Include keyboard.h before frame.h. Fix compile
440 warnings.
441
442 * w32select.c: Include keyboard.h before frame.h.
443
444 * w32fns.c (max): Define macro.
445 (JOHAB_CHARSET): Define if not known.
446 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
447 (Fx_show_tip): Synch with X version.
448
449 * w32xfns.c: Include keyboard.h before frame.h.
450
451 * w32fns.c: Include keyboard.h before frame.h.
452
453 * w32term.c: Include keyboard.h before frame.h.
454
455 * fontset.c: Include keyboard.h before frame.h.
456
457 * w32inevt.c: Include keyboard.h before frame.h.
458 (MOUSE_MOVED): Define if not known.
459
460 * minibuf.c: Include keyboard.h before frame.h.
461
462 * keyboard.c: Include keyboard.h before frame.h.
463
464 * indent.c: Include keyboard.h before frame.h.
465
466 * dispnew.c: Include keyboard.h before frame.h.
467
468 * buffer.c: Include keyboard.h before frame.h.
469
470 * alloc.c: Include keyboard.h before frame.h.
471
472 * print.c: Include keyboard.h before frame.h.
473
474 * process.c: Include keyboard.h before frame.h.
475
476 * scroll.c: Include keyboard.h before frame.h.
477
478 * sysdep.c: Include keyboard.h before frame.h.
479
480 * term.c: Include keyboard.h before frame.h.
481
482 * window.c: Include keyboard.h before frame.h.
483
484 * xdisp.c: Include keyboard.h before frame.h.
485 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
486
487 * frame.c: Include keyboard.h before frame.h.
488
489 * w32heap.h: Undefine min, max.
490
491 * w32gui.h: Undefine min, max.
492
493 * unexw32.c: Change PUCHAR to PCHAR.
494 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
495 (relocate_offset):
496 (get_section_info):
497 (copy_executable_and_dump_data): Remove unnecessary static defs.
498 (copy_executable_and_dump_data): Fix compile warnings.
499
500 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
501
502 * w32console.c (min): Define macro.
503 (clear_frame, write_glyphs): Fix compile warning.
504
505 * w32proc.c (compare_env):
506 (find_child_console): Fix compile warning.
507
508 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
509 sys_errlist instead of _sys_errlist.
510 (get_emacs_configuration_options): New function.
511
512 * s/ms-w32.h (sys_nerr): Provide default definition.
513 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
514 name with _ prepended.
515 (NSIG): Define if not known.
516 (get_emacs_configuration): Provide extern declaration.
517 (get_emacs_configuration_options): Provide extern declaration.
518 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
519
520 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
521 (map_w32_filename):
522 (read_unc_volume): Fix compile warning.
523
524 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
525 definitions from being used.
526
527 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
528
529 * w32.c (unc_volume_file_attributes):
530 (open_unc_volume): Make arg const.
531
532 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
533 (read_input_waiting): Remove excess parameter.
534
535 * w32.c (init_environment): Call _access.
536 (check_windows_init_file): Call _close.
537 (init_user_info): Call _putenv.
538 (init_environment): Call _putenv and _strdup.
539 (init_ntproc): Reset volume info cache on startup.
540
541 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
542 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
543 cannot override the CRT malloc.
544
545 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
546 (LINK_FLAGS): Append to original value of LINK_FLAGS.
547
548 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
549 unless we are linking with a static CRT.
550 (RVA_TO_PTR): Cast result to unsigned char*.
551
552 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
553 (add_volume_info): Use xstrdup.
554
25060080
SM
5552000-08-22 Stefan Monnier <monnier@cs.yale.edu>
556
557 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
558 (do_completion, Fminibuffer_complete_word): Use it.
559 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
560 var so it can take non-boolean values.
561
6917e6bb
GM
5622000-08-21 Gerd Moellmann <gerd@gnu.org>
563
acb7cc89
GM
564 * editfns.c (find_field): Formatting changes.
565 (toplevel): Some old-style function forward declarations
566 changed to prototypes, some new protypes added, some functions
567 made static.
568
569 * lisp.h (set_time_zone_rule): Add prototype.
570 (use_dialog_box): External declaration.
571
0bbfdc25
GM
572 * keyboard.c (gen_help_event): Add parameter SIZE.
573 (kbd_buffer_events_waiting): Slightly rewritten.
574 (clear_event): New function.
575 (kbd_buffer_get_event): Use it, and clear the input_events of
576 HELP_EVENTs.
577 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
578 don't fill the newly created array with nils.
579 (toplevel): Convert some old-style function forward declarations
580 to prototypes.
581
582 * keyboard.h (gen_help_event): Change prototype.
583
584 * xterm.c (XTread_socket): Change calls to gen_help_event.
585
586 * w32term.c (w32_read_socket): Change calls to gen_help_event.
587
6917e6bb
GM
588 * eval.c (Fmacroexpand): Doc fix.
589
e5cd3d11
JR
5902000-08-20 Jason Rumney <jasonr@gnu.org>
591
592 * w32term.h (x_display_info_for_display): Remove as this function
593 does not exist on W32.
594
595 * w32term.c (help_echo_window): New variable.
596 (syms_of_w32term): staticpro it.
597 (note_mode_line_highlight): Set it.
598 (XTextExtents16): Removed as there is no equivalent on W32.
599 (x_compute_glyph_string_overhangs): Incomplete body removed, as
600 the X way of doing this will not work for W32.
601 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
602 (x_draw_image_foreground): Avoid drawing outside of the clip area
603 when image doesn't have a mask.
604 (note_mouse_highlight): Process overlays in the right order of
605 priority. Set help_echo_window.
606 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
607 because that's more visible for large images.
608
609 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
610 name to single_keymap_panes.
611 (w32_menu_show): Set wv->title when dealing with titles.
612 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
613
6e69ab8c
MB
6142000-08-21 Miles Bader <miles@gnu.org>
615
616 * minibuf.c (do_completion): Try again if we rewrite the input
617 string, but no completion was done, so that any completion message
618 will be correct.
619
511bd4eb
GM
6202000-08-20 Gerd Moellmann <gerd@gnu.org>
621
622 * xfaces.c (lface_equal_p): Compare strings differently.
623 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
624 (realize_tty_face): Use them.
625 (syms_of_xfaces): Initialize new variables.
626 (map_tty_color): New function, extracted from realize_tty_face.
627 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
628 foreground or background color, store the new color name in the
629 realized face; previous code trying to do this had no effect.
630 (realize_tty_face): Use map_tty_color.
631 (Fclear_face_cache): Set face_change_count and ensure thorough
632 redisplay.
633
1433385f
GM
6342000-08-19 Gerd Moellmann <gerd@gnu.org>
635
511bd4eb
GM
636 * undo.c (record_first_change, record_marker_adjustment): Don't
637 use XBUFFER on last_undo_buffer which might not be a buffer.
1433385f 638
419ac0a2
KH
6392000-08-18 Kenichi Handa <handa@etl.go.jp>
640
641 * coding.c (decode_coding_string): Set members consumed,
642 consumed_char, produced, produced_char of *coding correctly. If
643 decode_coding doesn't consume any byte, don't try anymore.
644 (encode_coding_string): Likewise.
645
7eb9e30d
GM
6462000-08-18 Gerd Moellmann <gerd@gnu.org>
647
511bd4eb
GM
648 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
649 conditional have void type, for Standard C compilers.
7eb9e30d
GM
650
651 * xdisp.c (redisplay_internal): Compare windows for equality with
652 EQ, instead of applying XWINDOW to something that might not
653 be a window.
654
dd34a735
KH
6552000-08-18 Kenichi Handa <handa@etl.go.jp>
656
657 * fontset.c (Finternal_char_font): Search only the selected frame
658 for a window of the current buffer.
659
385ff9e3
GM
6602000-08-18 Gerd Moellmann <gerd@gnu.org>
661
511bd4eb 662 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
01cce3e7
GM
663 Lisp_Objects.
664
385ff9e3
GM
665 * keyboard.c (kbd_buffer_get_event): Handle the case that the
666 second half of a HELP_EVENT is found at the start of kbd_buffer.
667
d6abb4c7
MB
6682000-08-18 Miles Bader <miles@gnu.org>
669
4618074a
MB
670 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
671
d6abb4c7
MB
672 * editfns.c (save_restriction_save): Rewrite to use markers.
673 (save_restriction_restore): Rewrite to understand new form of data
674 saved by save_restriction_save.
675 (Fsave_restriction): Remove cautionary note in doc-string.
676
a7b28523
GM
6772000-08-17 Gerd Moellmann <gerd@gnu.org>
678
679 * fileio.c (build_annotations): Add a comment explaining the
680 return value of format-annotate-function. Replace a spurious call
681 to Flength with a CONSP test. Call format-annotate-function with
682 a fifth arg specifying how many times the function is been called
683 in a row, to let it choose temporary buffers appropriately.
684
03c9ed77
DL
6852000-08-17 Dave Love <fx@gnu.org>
686
687 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
688 declare make_temp_name twice.
689
690 * lread.c: Prototype readevalloop, load_unwind,
691 load_descriptor_unwind.
692 (unreadpure): Give it an arg.
693
694 * unexalpha.c: Prototype fatal_unexec, mark_x,
695 update_dynamic_symbols. Declare unexec as void.
696
697 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
698 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
699
700 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
701 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on
702 DOUG_LEA_MALLOC.
703
704 * alloca.c: Use #error.
705 [POINTER_TYPE]: Use it.
706
707 * eval.c (Fdefvar): Doc fix.
708
709 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
710 INITIALIZE_INTERVAL.
711
712 * buffer.h: Avoid DECLARE_INTERVALS.
713
714 * config.in: Add size_t.
715
aae41d97
EZ
7162000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
717
718 * w16select.c (set_clipboard_data): If there's not enough memory
719 to put text into clipboard, return 1, as Fw16_set_clipboard_data
720 expects. In case of other failures, return 3.
721 (system_error_msg): New error message.
722 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
723 system_error_msg.
724
65aa5e85
GM
7252000-08-16 Gerd Moellmann <gerd@gnu.org>
726
727 * term.c (write_glyphs): Also turn off inverse video after turning
728 off other appearances in case TS_exit_attribute_mode is not equal
729 to TS_end_standout_mode.
730 (insert_glyphs): Turn inverse video on/off for each run of glyphs
731 with the same face.
732 (turn_off_face): Reset standout_mode only if
733 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
734 is equal to TS_end_standout_mode.
735
ece23901
KH
7362000-08-16 Kenichi Handa <handa@etl.go.jp>
737
9d7bcb2e
KH
738 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
739 sequence at the end of the source block.
740
ece23901
KH
741 * ccl.c (Fccl_program_p): Docstring modified.
742 (Fccl_execute): Likewise.
743 (Fccl_execute_on_string): Likewise.
744
5e30eaa2
EZ
7452000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
746
747 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
748
290602fd
KH
7492000-08-16 Kenichi Handa <handa@etl.go.jp>
750
751 The following changes are mainly to fix bugs of
752 encode/decode-coding-string failing if encoding/decoding return
753 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
754 variable conversion_buffer.
755
756 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
757 decrement dst_end to avoid buffer overflow in the later call of
758 string_as_multibyte
759
760 * coding.h (conversion_buffer_size, conversion_buffer)
761 (get_conversion_buffer): Extern deleted.
762
763 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
764 (conversion_buffer, conversion_buffer_size): Variables deleted.
765 (get_conversion_buffer): Function deleted.
766 (struct conversion_buffer): New structure.
767 (MAX_ALLOCA): New macro.
768 (allocate_conversion_buffer): New macro.
769 (extend_conversion_buffer, free_conversion_buffer): New functions.
770 (ccl_coding_driver): Set coding->result.
771 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
772 this is the last block of source.
773 (encode_coding): Likewise. Handle the source block as the last
774 one only when the whole source text is consumed.
775 (decode_coding_string): Handle the case that the output buffer is
776 too small to decode the whole source text. Use
777 allocate_conversion_buffer, extend_conversion_buffer and
778 free_conversion_buffer, not get_conversion_buffer.
779 (encode_coding_string): Likewise.
780 (init_coding): Function deleted.
781 (init_coding_once): Delete code to initialize
782 conversion_buffer_size.
783
784 * emacs.c (main): Don't call init_coding.
785
786 * msdos.c (IT_write_glyphs): Use a locally declared
787 conversion_buffer.
788
789 * term.c (write_glyphs): Use a locally declared conversion_buffer.
790 (insert_glyphs): Likewise.
791
792 * w32console.c (write_glyphs): Use a locally declared
793 conversion_buffer.
794
b9f80d41
EZ
7952000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
796
797 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
798 member of display_info is NULL.
799
32dc52f7
GM
8002000-08-15 Gerd Moellmann <gerd@gnu.org>
801
58ed0d3b
GM
802 * alloc.c (compact_small_strings): Use safe_bcopy, add an
803 assertion.
804
32dc52f7 805 * term.c (turn_off_face): Reset standout_mode when resetting
58ed0d3b 806 appearances with capability `me'.
32dc52f7
GM
807 (write_glyphs): Switch on inverse video before each face change.
808
4eb22d33
DL
8092000-08-14 Dave Love <fx@gnu.org>
810
811 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
812 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
813 (lisp_free): Declare and make static.
814
815 * window.c: Fix embedded comment.
816 (syms_of_window): Fix doc string.
817
90cbf47e
GM
8182000-08-14 Gerd Moellmann <gerd@gnu.org>
819
820 * keymap.c (push_key_description): If C without modifiers is < 32,
821 make sure to print `C-' before `M-', like in the manual.
822
440fc135
GM
8232000-08-11 Gerd Moellmann <gerd@gnu.org>
824
825 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
826 since they aren't relocated anymore.
827 (sxhash_string): Make sure returned hash code fits in a Lisp
828 integer.
829
830 * xdisp.c (try_cursor_movement): Fix handling of cursor in
831 partially visible line which is smaller than the window's
832 height.
833
6e264fad
KH
8342000-08-11 Kenichi Handa <handa@etl.go.jp>
835
836 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
837 the multibyte form of eight-bit-control characters.
838 (Fccl_execute_on_string): Initialize ccl->multibyte.
839
840 * ccl.h (struct ccl_program): New member multibyte.
841
842 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
843
c371f69a
KH
8442000-08-11 Kenichi Handa <handa@etl.go.jp>
845
846 * regex.c (regex_compile) <normal_char>: Pay attention to
847 multibyteness.
848 (analyse_first) <exactn>: Setup fastmap correctly for
849 eight-bit-control characters.
850
8512000-08-11 Kenichi Handa <handa@etl.go.jp>
852
853 * termhooks.h (enum event_kind): New member
854 multibyte_char_keystroke.
855
856 * keyboard.c (make_lispy_event): Handle the new event type
857 multibyte_char_keystroke.
858
859 * xterm.c: Include coding.h.
860 (XTread_socket): Work around a bug of XmbLookupString. If the
861 input is from XIM, decode it according to the current locale. In
862 that case, generate multibyte_char_keystroke events.
863
b8ddbe71
KH
8642000-08-11 Kenichi Handa <handa@etl.go.jp>
865
866 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
867 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
868
47589c8c
GM
8692000-08-10 Gerd Moellmann <gerd@gnu.org>
870
871 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
872 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
873 (move_it_in_display_line_to): Record iterator's ascent and descent
874 before producing glyphs, and restore them when we know the glyph
875 doesn't fit on the line.
876 (move_it_to): Restructured so that it's easier to debug. If
877 moving to a vpos, and not moving to an x or character position,
878 stop as soon as the specified vpos is reached; don't move further
879 into that line because that might change the computed line height.
880 (try_cursor_movement): New function, extracted from the cursor
881 movement branch of redisplay_window. If ending on a partially
882 visible line, don't try to scroll if the cursor line is taller
883 than the window.
884 (redisplay_window): Use try_cursor_movement.
885
886 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
887 because that function doesn't cope with variable-height lines.
888
889 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
890 box cursor because that's better visible for large images.
891
c51bacd6
MB
8922000-08-10 Miles Bader <miles@gnu.org>
893
894 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
895
bea56df7
GM
8962000-08-10 Gerd Moellmann <gerd@gnu.org>
897
898 * xdisp.c (Vmessages_buffer_name): New variable.
899 (message_dolog): Use it.
900 (syms_of_xdisp): Initialize it.
901
99cd7364
EZ
9022000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
903
904 * msdos.c (IT_note_mouse_highlight): Update the calls to
905 overlays_at.
906 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
907 redundant now that keyboard.h is included.
908
7d093d56
EZ
9092000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
910
911 * keyboard.c (kbd_buffer_events_waiting): New function.
912
913 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
914
915 * msdos.c: Include keyboard.h.
916 (XMenuActivate): Empty no_event events from the event buffer. If
917 no events are left after that, call clear_input_pending.
918 (mouse_clear_clicks): New function, code moved from mouse_init.
919 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
920 mouse driver to ``forget'' any past clicks.
921
922 * Makefile.in (msdos.o): Depend on keyboard.h.
923
41e757a6
GM
9242000-08-09 Gerd Moellmann <gerd@gnu.org>
925
8e7bd231
GM
926 * lisp.h (input_pending): External declaration.
927
928 * dispextern.h (Qredisplay_dont_pause): Declare extern.
929
930 * xdisp.c (echo_area_display): Display thoroughly if input is
931 pending. Bind redisplay-dont-pause to t during the redisplay.
932 in case input is pending.
933
934 * dispnew.c (Qredisplay_dont_pause): New variable.
935 (syms_of_display): Initialize and staticpro it.
936 (update_frame_1): Don't interrupt the display for pending input if
937 redisplay_dont_pause is set.
938
43028b7e
GM
939 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
940
41e757a6
GM
941 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
942
2f2174fa
KH
9432000-08-09 Miles Bader <miles@lsi.nec.co.jp>
944
945 * callproc.c (Fcall_process): Terminate the unwind-protect around
946 the post-read-conversion of coding system.
947
0a6fd67e
MB
948 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
949 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
950 * buffer.h (overlays_at): Update prototype.
951 * xdisp.c (next_overlay_change): Update call to overlays_at.
952 * xfaces.c (face_at_buffer_position): Likewise.
953 * textprop.c (Fget_char_property): Likewise.
954 * xterm.c (note_mouse_highlight): Likewise.
955
0c80756e
MB
956 * minibuf.c (do_completion): Don't consider a simple change of
957 case as `completion'.
958
975f250a
KR
9592000-08-08 Ken Raeburn <raeburn@gnu.org>
960
b347b3fd
KR
961 * keyboard.c (syms_of_keyboard): Initialize
962 last_point_position_buffer.
963 * undo.c (record_delete): Make sure last_point_position_buffer is
964 a buffer before comparing pointers.
965
966 * coding.h (decode_coding_string): Declare.
967
968 * intervals.h (Fprevious_single_char_property_change): Declare.
969
970 * textprop.c (Fprevious_single_char_property_change): Don't do
971 arithmetic directly on lisp objects.
972
25ad1371 973 * editfns.c (find_field): Use EQ, not ==, to compare Lisp
b347b3fd
KR
974 objects.
975
976 * keyboard.h (menu_item_eval_property): Declare.
977
978 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
979 reuse as buffer name, instead of recreating (and discarding) every
980 time a message is logged.
981 (with_echo_area_buffer): Make callback arg A2 a lisp object.
25ad1371
GM
982 (current_message_1, truncate_message_1, set_message_1)
983 (display_echo_area_1, resize_mini_window_1): Signatures changed.
984 (current_message, truncate_echo_area, display_echo_area)
985 (resize_echo_area_axactly): Changed calls.
b347b3fd 986
975f250a 987 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
25ad1371 988 Lisp object.
975f250a 989 (Ffind_coding_systems_region_internal): First argument to Fappend
25ad1371 990 must be an integer, not a Lisp object.
975f250a 991
46dc9912
KH
9922000-08-08 Kenichi Handa <handa@etl.go.jp>
993
994 * charset.c (Fchar_width): Doc fix.
995
9f6d1a6c
GM
9962000-08-08 Gerd Moellmann <gerd@gnu.org>
997
998 * charset.c (Fstring_width): Doc fix.
999
ff3d9573
GM
10002000-08-07 Gerd Moellmann <gerd@gnu.org>
1001
41e757a6 1002 * xdisp.c (start_display): When starting display on a continuation
49ad1d99
GM
1003 line, clear ascent and descent members of the iterator structure;
1004 the height of the continued line does not affect the height of the
1005 continuation line.
1006 (make_cursor_line_fully_visible): Do nothing if cursor is on a
1007 line taller than the window.
1008 (redisplay_window) <forced window start>: Handle case that the
1009 middle of the window is not found in any row.
1010 (dump_glyph_row): Show more information.
1011 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
1012 first text line in a glyph matrix.
1013
1014 * xterm.c (x_draw_image_foreground): Avoid drawing outside
1015 of the clip area when image doesn't have a mask.
1016
70fc58b3
GM
1017 * fns.c (sweep_weak_table): Fix survival conditions for
1018 key-or-value and key-and-value weakness.
1019
1020 * .gdbinit (xhashtable): New command.
1021
ac0e96ee
GM
1022 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
1023 tables out of the list of all weak hash tables.
1024
ff3d9573
GM
1025 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
1026 a new buffer is created, make sure echo_area_buffer[] references
1027 the new buffer.
1028
e0d8827b
EZ
10292000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
1030
1031 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
1032 the doc string.
1033
c6f35378
KH
10342000-08-07 Kenichi Handa <handa@etl.go.jp>
1035
1036 * syntax.c (skip_chars): Fix previous change. Make the handling
1037 of unibyte string consistent with that of regex search.
1038
1fd4c450
GM
10392000-08-05 Gerd Moellmann <gerd@gnu.org>
1040
e49aa397
GM
1041 * xmenu.c (popup_get_selection): Use xfree instead of free.
1042
1043 * fileio.c (Finsert_file_contents): Use xfree instead of free.
1044
1045 * editfns.c (Ftranspose_regions): Use xfree instead of free.
1046
1047 * callproc.c (child_setup): Use xfree instead of free.
1048
1049 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
1050 instead of malloc.
1051 (run_mac_command, closedir): Use `xfree' instead of `free'.
1052
1053 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
1054
1055 * eval.c (error): Use xfree instead of free.
1056
1fd4c450
GM
1057 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
1058
1059 * fns.c: Replace `illegal' with `invalid'.
e49aa397 1060 (Fmake_hash_table, make_hash_table): Allow table size of 0.
1fd4c450 1061
82d497fc
KH
10622000-08-05 Kenichi Handa <handa@etl.go.jp>
1063
1064 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
1065 conversion.
1066
59f953a2
NF
10672000-08-04 Noah Friedman <friedman@splode.com>
1068
1069 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
1070 docstring.
1071
688351f2
GM
10722000-08-04 Gerd Moellmann <gerd@gnu.org>
1073
1074 * syntax.c (skip_chars): Fix typo in error message.
1075
2dad51cc
AS
10762000-08-04 Andreas Schwab <schwab@suse.de>
1077
1078 * m/ia64.h: Moved from s/ia64.h.
1079
99bb2c60
KH
10802000-08-04 Kenichi Handa <handa@etl.go.jp>
1081
082a1df2
KH
1082 * process.c (read_process_output): Big simplification. Handle
1083 composition and post-read-conversion of coding system correctly.
1084 (send_process): Handle composition correctly.
1085
1086 * callproc.c (Fcall_process): Handle post-read-conversion of
1087 coding system if any.
1088
99bb2c60
KH
1089 * coding.c (decode_coding_iso2022): More strict check for handling
1090 single shifting.
082a1df2
KH
1091 (coding_restore_composition): Pay attention to the case that
1092 cmp_data is not set properly (because of invalid code in the
1093 source text).
1094 (run_pre_post_conversion_on_str): Include text properties in the
1095 resulting string.
1096 (decode_coding_string): Set members of coding correctly.
99bb2c60 1097
f4988be7
GM
10982000-08-03 Gerd Moellmann <gerd@gnu.org>
1099
1100 * s/ia64.h: New file.
1101
1102 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
1103 Use NULL instead of 0 at the end of variable argument list of
1104 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
1105 sizeof (int) < sizeof (void *).
1106
1107 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
1108 of variable argument lists of XtVaGetValues and XtVaSetValues.
1109
1110 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
1111 variable argument lists of XtVaGetValues and XtVaSetValues.
1112
ead53494
GM
11132000-08-02 Gerd Moellmann <gerd@gnu.org>
1114
1115 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
1116 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
1117
1118 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
1119 prototype.
1120
1121 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
1122 in call to Fsingle_key_description.
1123
1124 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
1125 Callers changed.
1126
11272000-08-02 Colin Walters <walters@cis.ohio-state.edu>
1128
1129 * window.c (display_buffer_reuse_frames): New variable.
1130 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
1131 frames displaying BUFFER.
1132 (syms_of_window): Define Lisp variable
1133 display-buffer-reuse-frames.
1134
10b0f752
MB
11352000-08-01 Miles Bader <miles@gnu.org>
1136
1137 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
1138 when to constrain NEW_POS (they were pretty screwed up before).
1139
16425c4a
EZ
11402000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
1141
1142 * msdos.c (run_msdos_command): Save and restore the master
1143 environment, for the case that child_setup signals an error.
1144 When mirroring slashes in DOS shell commands, don't fail when
1145 argv[2] has embedded blanks.
da288c14
EZ
1146 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
1147 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
1148 (dos_ttraw): Call mouse_setup_buttons.
16425c4a
EZ
1149
1150 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
1151 using alloca; free it after run_msdos_command returns.
1152
27f73852
DL
11532000-07-27 Dave Love <fx@gnu.org>
1154
1155 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't
1156 define.
1157 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently
1158 working.
1159
1160 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
1161
c0261b5e
EZ
11622000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
1163
1164 * editfns.c (lisp_time_argument): Fix last change.
1165
b548072f
GM
11662000-07-27 Gerd Moellmann <gerd@gnu.org>
1167
3ab82477
GM
1168 * fns.c (Fdelete): Make it work on vectors and strings in addition
1169 to lists.
1170
b548072f
GM
1171 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
1172 (syms_of_fns): Initialize new variables.
1173 (sweep_weak_table): Handle weakness `key-or-value' and
1174 `key-and-value'.
1175 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
1176 weakness, with t meaning the same as `key-and-value'.
1177
91ae8751
KH
11782000-07-27 Kenichi Handa <handa@etl.go.jp>
1179
1180 * coding.h (struct coding_system): Member safe_charset deleted.
1181
1182 * coding.c (Qsafe_charsets): This variable deleted.
1183 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system): New
1184 variables.
1185 (coding_safe_chars): New function.
1186 (CODING_SAFE_CHAR_P): New macro.
1187 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
1188 checking safe_charsets member of the coding system. Caller
1189 changed.
1190 (detect_coding_iso2022): New local variable safe_chars.
1191 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
1192 safe_charsets member of the coding system.
1193 (decode_coding_iso2022): New local variable safe_chars.
1194 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
1195 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
1196 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
1197 (ENCODE_UNSAFE_CHARACTER): New macro.
1198 (encode_coding_iso2022): New local variable safe_chars. Check
1199 unsafe chars.
1200 (setup_coding_system): Delete the code to initialize
1201 coding->safe_charses
1202 (intersection, find_safe_codings): New functions.
1203 (Ffind_coding_systems_region_internal): New function.
1204 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
1205 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
1206 variable and initialize it.
1207
1208 * fns.c (char_table_ref_and_index): New function.
1209
1210 * lisp.h (char_table_ref_and_index): Add prototype.
1211
34a7a267
SS
12122000-07-26 Sam Steingold <sds@gnu.org>
1213
1214 * editfns.c (lisp_time_argument): Added third argument `usec'.
3ab82477 1215 (Ffloat_time): New built-in Lisp function.
34a7a267 1216
a95cb10a
GM
12172000-07-26 Gerd Moellmann <gerd@gnu.org>
1218
3353ef5a
GM
1219 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
1220 for the character code.
1221
1222 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
1223 GNU/Linux.
1224
a95cb10a
GM
1225 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
1226 if called for a popup menu.
1227 (xmenu_show): Store help string in widget values.
1228
b4a12321
DL
12292000-07-26 Dave Love <fx@gnu.org>
1230
1231 * syswait.h: Move some definitions.
1232 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
1233 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
1234 perspicuous definitions.
1235 (WTERMSIG): Fix bit pattern used.
1236
13f5ad37
KH
12372000-07-26 Kenichi Handa <handa@etl.go.jp>
1238
1239 * print.c (print_object): If vector printing is truncated, print
1240 "..." to indicate it as well as the case of list printing.
1241
070fe99c
GM
12422000-07-25 Gerd Moellmann <gerd@gnu.org>
1243
969065c3
GM
1244 * xdisp.c (next_element_from_display_vector): Improve comments.
1245
1246 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
1247 for the character code, and the rest for the face id as in 20.x.
1248 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
1249
1250 * window.c (window_display_table): Cleaned up.
1251
070fe99c
GM
1252 * syntax.c (Fforward_word): Add last arg nil in call of
1253 Fconstrain_to_field.
1254
bad77ef7
EZ
12552000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
1256
969065c3 1257 * fileio.c (Frename_file) [DOS_NT]: If the file names are
bad77ef7
EZ
1258 identical but for the letter-case, don't call
1259 barf_or_query_if_file_exists.
1260
c28da489
MB
12612000-07-25 Miles Bader <miles@gnu.org>
1262
1263 * editfns.c (find_field): Honor special `boundary' fields.
1264 (Qboundary): New variables.
1265 (syms_of_editfns): Initialize Qboundary.
1266 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
1267 Use scan_buffer instead of find_before_next_newline, because it
1268 allows us to detect the boundary case where there's a newline at
1269 the search limit.
1270 * lisp.h (Fconstrain_to_field): Update external declaration.
1271
e3c31fd5
GM
12722000-07-24 Gerd Moellmann <gerd@gnu.org>
1273
1274 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
1275 if that is nil.
c28da489 1276
c66c29a2
DL
12772000-07-24 Dave Love <fx@gnu.org>
1278
1279 * s/sunos4-0.h, s/sol2.h:
1280 (LIBS_TERMCAP): Move from m/sparc.h.
1281
1282 * m/sparc.h (TERMINFO): Moved to system files (probably only
1283 relevant for sunos4 judging by its vintage).
1284 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
1285 __arch64__.
1286
fbe0a958
EZ
12872000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
1288
1289 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
1290 name to single_keymap_panes.
1291
7d88e5c9
AS
12922000-07-24 Andreas Schwab <schwab@suse.de>
1293
1294 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
1295
e024b101
GM
12962000-07-24 Gerd Moellmann <gerd@gnu.org>
1297
1298 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
1299 parameters instead of using int parameters. Expect FN to accept
1300 EMACS_INT parameters.
1301 (display_echo_area, resize_echo_area_axactly, current_message)
1302 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
1303 with new argument list.
1304 (resize_mini_window_1): New callback function.
1305 (current_message_1, truncate_message_1, set_message_1): Change
1306 parameter lists to the new format expected by
1307 with_echo_area_buffer.
1308
25c1a9ce
KH
13092000-07-24 Kenichi Handa <handa@etl.go.jp>
1310
1311 * fontset.c (fontset_ref): Remove INLINE declaration.
1312 (fontset_ref_via_base): Likewise.
1313 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
1314 to downcase.
1315
7f987ac0
EZ
13162000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
1317
1318 * msdos.c (IT_note_mouse_highlight): Process overlays in the
1319 correct order of priority. If help echo was found in an overlay,
1320 use that overlay as the object in which the help echo was found.
1321
e2db3069
MB
13222000-07-22 Miles Bader <miles@gnu.org>
1323
1324 * textprop.c (Fprevious_single_char_property_change): The initial
1325 property value should be from the position preceding POSITION, not
1326 following it.
1327
5e3203e4
EZ
13282000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
1329
1330 * coding.c (syms_of_coding): Doc fix for
1331 inhibit-iso-escape-detection.
1332
62145073
GM
13332000-07-21 Gerd Moellmann <gerd@gnu.org>
1334
c20aeb83
GM
1335 * xterm.c (note_mouse_highlight): Process overlays in the right
1336 order of priority.
34a7a267 1337
743934db
GM
1338 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
1339
1340 * xterm.c (note_mouse_highlight): If help-echo was found in an
1341 overlay, use that overlay as the object in which the help was
1342 found.
1343
d1dc7e43 1344 * window.c (foreach_window_1): Fix typo reversing an if-condition.
34a7a267 1345
62145073
GM
1346 * window.c (foreach_window): Instead of a fake variable argument
1347 list, take one USER_DATA argument.
1348 (foreach_window_1): Likewise, and call callback functions with two
1349 args, the window and USER_DATA.
1350 (struct check_window_data): New struct.
1351 (check_window_containing): Use it.
1352 (window_from_coordinates): Set up a struct check_window_data for
1353 foreach_window.
1354 (add_window_to_list, freeze_window_start): Change parameters
1355 according to new calling convention.
1356
1357 * window.h (foreach_window): Change prototype.
1358
1359 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
1360
13612000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
1362
1363 * xmenu.c (menu_help_callback): Call show_help_echo with
1364 additional arguments OBJECT and POS.
1365
11270583
KH
13662000-07-21 Kenichi Handa <handa@etl.go.jp>
1367
07b14857
KH
1368 * data.c (Faset): Allow storing any multibyte character in a
1369 string. Convert unibyte string to multibyte if necessary.
1370
11270583
KH
1371 * xfns.c (x_encode_text): New function.
1372 (x_set_name): Use x_encode_text.
1373 (x_set_title): Likewise.
1374
1375 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
1376
1377 * xterm.h (x_encode_text): Add prototype.
1378
bc75b4fd
DL
13792000-07-20 Dave Love <fx@gnu.org>
1380
1381 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
1382 xfree, not free.
1383
48c14970
EZ
13842000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
1385
1386 * msdos.c (help_echo_window): New variable.
1387 (syms_of_msdos): Initialize and staticpro it.
1388 (IT_note_mode_line_highlight): Set help_echo_window.
1389 (IT_note_mouse_highlight): Ditto.
1390 (dos_rawgetc): Store help_echo_window in the second event produced
1391 for HELP_EVENTs.
1392
1393 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
1394 Record the object that generated the help echo and the position of
1395 that object in help_echo_object and help_echo_pos. Record that
1396 some glyphs in a row are displayed in mouse-face.
1397 (IT_update_begin): Don't clear mouse highlight unless one of the
1398 enabled glyph rows is marked as being displayed in mouse-face.
1399 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
1400 and position recorded in help_echo_object and help_echo_pos to the
1401 event queue.
1402 (IT_menu_display): Accept a new argument PN: the pane number of
1403 the current menu pane. Record the pane number and the item
1404 number of the item which has associated help string.
1405 (XMenuActivate): Update the prototype for help_callback in
1406 function declaration. Call IT_menu_display with the current menu
1407 pane number as an additional argument. Call help_callback with
1408 two additional arguments: the pane number and the item number of
1409 the menu item associated with the help text.
1410 (help_echo_object, help_echo_pos): New variables.
1411 (syms_of_msdos): Initialize them and staticpro help_echo_object.
1412
1413 * msdos.h (XMenuActivate): Update prototype.
1414
4279296d
GM
14152000-07-19 Gerd Moellmann <gerd@gnu.org>
1416
47db06aa
GM
1417 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
1418 Add some more prototypes.
1419
1420 * xterm.c, xterm.h: Add some more prototypes.
1421
1422 * lisp.h (Fnext_single_char_property_change): Add prototype.
1423
1424 * dispnew.c (direct_output_for_insert): Remove confusing
1425 outer local variable mouse_face_overwritten_p.
1426 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
1427
4279296d
GM
1428 * alloc.c (allocate_string_data): Don't copy old string contents.
1429
670acd62
KH
14302000-07-19 Kenichi Handa <handa@etl.go.jp>
1431
1432 * coding.c (code_convert_region): Delete text properties before
1433 shrinking the conversion region.
1434
7cea38bc
GM
14352000-07-18 Gerd Moellmann <gerd@gnu.org>
1436
dc1cac59
GM
1437 * dispnew.c (update_text_area): Write the whole row if it
1438 has mouse-face in it.
1439
85a8aca9
GM
1440 * xfaces.c (face-alternative-font-family-alist): Remove
1441 DEFVAR_LISP; staticpro instead.
1442
34a7a267 1443 * xmenu.c (menu_help_callback): Call show_help_echo with
7cea38bc
GM
1444 new arguments.
1445
1446 * keyboard.c (show_help_echo): Add parameter WINDOW.
1447 (read_char): Call show_help_echo with window extracted from Lisp
1448 help event.
1449 (gen_help_event): Add parameter WINDOW.
1450
1451 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
1452
1453 * xterm.c (help_echo_window): New variable.
1454 (note_mouse_highlight, note_tool_bar_highlight): Set
1455 help_echo_window.
1456 (XTread_socket): Pass help_echo_window to gen_help_event.
1457 (syms_of_xterm): Initialize and staticpro help_echo_window.
1458
f8276b77
DL
14592000-07-18 Dave Love <fx@gnu.org>
1460
1461 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
1462 systime.h.
1463
088831a6
GM
14642000-07-18 Gerd Moellmann <gerd@gnu.org>
1465
3d6cd763
GM
1466 * alloc.c (allocate_string_data): If string had already data
1467 assigned, copy old contents to new string data.
1468
1469 * coding.c (syms_of_coding): Fix typo in spelling of variable
1470 `inhibit-iso-escape-detection'.
1471
088831a6
GM
1472 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
1473
1474 * Makefile.in: Add dependencies on dispextern.h.
1475 (alloca.o): Don't define malloc and define EMACS_FREE instead of
1476 `free'; both can conflict with system header files.
1477
bc8a8d55
KH
14782000-07-18 Kenichi Handa <handa@etl.go.jp>
1479
1480 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
1481 undefined.
1482
069f5950
DL
14832000-07-18 Dave Love <fx@gnu.org>
1484
1485 * window.c (Fwindow_list): Declare arg `window'.
1486
aa96c820
KH
14872000-07-18 Kenichi Handa <handa@etl.go.jp>
1488
1489 * coding.c (setup_coding_system): Don't override the explicitly
1490 specified designations.
1491
06be8d32
MB
14922000-07-15 Miles Bader <miles@gnu.org>
1493
1494 * editfns.c (char_property_eq, char_property_stickiness): Renamed
1495 from `text_property_eq' and `text_property_stickiness', respectively.
1496 (find_field, Fconstrain_to_field, char_property_eq)
1497 (char_property_stickiness): Changed to call char-property functions
1498 instead of text-property-only ones.
1499
1500 * textprop.c (Fnext_single_char_property_change): Made a subr (was
1501 `next_single_char_property_change'). Do more error checking, and
1502 cleanup limit behavior.
1503 (Fprevious_single_char_property_change): New function.
1504 (syms_of_textprop): Initialize new subrs.
1505
1506 * xdisp.c (display_prop_end, invisible_text_between_p):
1507 Call Fnext_single_char_property_change instead of
1508 next_single_char_property_change.
1509
3fddcdc3
JR
15102000-07-15 Jason Rumney <jasonr@gnu.org>
1511
1512 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
1513 after menu is finished with.
1514 (add_menu_item): Only consider wv->title as a menu title.
1515 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
1516
1517 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
1518 null title.
1519 (FONT_REGEXP): Remove unused macro, and its sub-components.
1520 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
1521
1522 * w32term.c (help_echo_object, help_echo_pos): New variables.
1523 (note_mode_line_highlight): Store additional information about the
1524 help-echo in help_echo_object and help_echo_pos. Check both
1525 `local-map' and `keymap' properties for changing the cursor
1526 (note_mouse_highlight): Store additional information about the
1527 help-echo in help_echo_object and help_echo_pos.
1528 (note_tool_bar_highlight): Set help_echo_object to nil and
1529 help_echo_pos to -1.
1530 (w32_read_socket): Use gen_help_event instead of filling
1531 input_events manually.
1532 (syms_of_w32term): Staticpro help_echo_object.
1533 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
1534 set, arrange for a mouse-highlight redisplay in
1535 XTframe_up_to_date.
1536 (x_clear_mouse_face): New function.
1537 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
1538 (x_update_window_begin): No need to turn off the mouse
1539 highlight here.
1540 (show_mouse_face): Set the mouse_face_p flag of glyph rows
1541 depending on whether they contain glyphs highlighted in
1542 mouse-face.
1543 (x_fill_stretch_glyph_string): Consume runs of stretch
1544 glyphs instead of a single one.
1545 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
1546 with new argument list.
1547 (x_set_glyph_string_gc): Make sure the face's GC is valid.
1548 (x_append_glyph, x_append_composite_glyph)
1549 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
1550 changes in struct glyph starting 1999-12-27. See comments for
1551 xterm.c on 2000-07-05.
1552
178c5d9c
SS
15532000-07-14 Sam Steingold <sds@gnu.org>
1554
1555 * xfaces.c (realize_x_face): Fix the last patch:
1556 check `default_face' before dereferencing.
1557
6fe533f6
DL
15582000-07-14 Dave Love <fx@gnu.org>
1559
069f5950 1560 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 1561
dd7b81cf
KH
15622000-07-14 Kenichi Handa <handa@etl.go.jp>
1563
0693904a 1564 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 1565 default_face's fontset, not using the default fontset.
0693904a 1566
dd7b81cf
KH
1567 * coding.c (inhibit_iso_escape_detection): New variable.
1568 (syms_of_coding): Make it a Lisp variable.
1569 (detect_coding_iso2022): If inhibit_iso_escape_detection is
1570 nonzero, ignore ISO2022's escape sequence.
1571
d5aa31d8
GM
15722000-07-14 Gerd Moellmann <gerd@gnu.org>
1573
e5acf0ca
GM
1574 * alloca.c (malloc) [emacs]: Define as xmalloc.
1575
bd23a692
GM
1576 * xfns.c (Fx_show_tip): If frame parameters contain a position,
1577 use that instead of the mouse position. Add parameters DX and DY.
1578
1579 * dispextern.h (Fx_show_tip): Adjust number of parameters
1580 in prototype.
1581
9662da0b
GM
1582 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
1583 if HELP is a function, call it with OBJECT and POS as parameters
1584 to get the help to display.
1585 (gen_help_event, kbd_buffer_store_help_event): New functions.
1586 (kbd_buffer_get_event): Construct the Lisp help-event differently.
1587 (read_char): Call show_help_echo with new parameters.
1588
178c5d9c 1589 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
1590 Add prototypes.
1591
1592 * xterm.c (help_echo_object, help_echo_pos): New variables.
1593 (note_mode_line_highlight): Store additional information about the
1594 help-echo in help_echo_object and help_echo_pos. Check both
1595 `local-map' and `keymap' properties for changing the cursor
1596 (note_mouse_highlight): Store additional information about the
1597 help-echo in help_echo_object and help_echo_pos.
1598 (note_tool_bar_highlight): Set help_echo_object to nil and
1599 help_echo_pos to -1.
1600 (XTread_socket): Use gen_help_event instead of filling
1601 input_events manually.
1602 (syms_of_xterm): Staticpro help_echo_object.
1603
1604 * xmenu.c (menu_highlight_callback): Use
1605 kbd_buffer_store_help_event instead of setting up and input_event
1606 structure manually.
1607
1608 * xdisp.c (eval_form): GCPRO argument sexpr.
1609 (call_function): New function.
1610 (handle_single_display_prop): Use call_function and FUNCTIONP
1611 instead of checking whether if font_height is a symbol and
1612 using eval_form.
1613
1614 * eval.c (internal_condition_case_2): New function.
1615
1616 * lisp.h (FUNCTIONP): New macro.
1617 (internal_condition_case_2, call_function): Add prototypes.
1618
d5aa31d8
GM
1619 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
1620 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
1621 Always set `arg' member of input_events.
1622 (construct_menu_click): Unused function removed.
1623
1624 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
1625
1626 * w32term.c (construct_mouse_click, construct_mouse_wheel)
1627 (construct_drag_n_drop, x_scroll_bar_handle_click)
1628 (w32_read_socket): Always set `arg' member of input_events.
1629
1630 * keyboard.c (show_help_echo): Use eval_form. Add comment.
1631
1632 * lisp.h (eval_form): Add prototype.
1633
1634 * xdisp.c (eval_form): Make it externally visible.
1635
0f1a9b23
GM
16362000-07-13 Gerd Moellmann <gerd@gnu.org>
1637
1638 * xterm.c (x_handle_tool_bar_click): Store the frame in the
1639 frame_or_window slot of TOOL_BAR_EVENT input events instead of
1640 consing. For prefix events, store the frame in the `arg' slot of
1641 the event, otherwise store the key there.
1642 (XTread_socket): Instead of consing, use the frame_or_window slot
1643 of HELP_EVENTs for the frame, and the `arg' slot for the help
1644 string.
1645
1646 * xmenu.c (menu_highlight_callback): Store help string in the
1647 `arg' member of the input event; don't cons.
1648 (menubar_selection_callback): Use the `arg' slot of input events
1649 to queue additional information, instead of consing.
1650
1651 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
1652
1653 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
1654 TOOL_BAR_EVENTs.
1655 (w32_read_socket): Adapt to changes in HELP_EVENTs.
1656
1657 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
1658 input events to queue additional information, instead of consing.
1659
1660 * keyboard.c (kbd_buffer_gcpro): Renamed from
1661 kbd_buffer_frame_or_window. Now used for all Lisp objects
1662 referenced from the input queue.
1663 (kbd_buffer_store_event): Always use structure assignment for
1664 copying input events. Record all Lisp objects referenced from
1665 events in kbd_buffer_gcpro.
1666 (kbd_buffer_get_event): Construct Lisp `help-echo' events
1667 differently from input events. Test for prefix menu_bar_events
1668 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
1669 event in kbd_buffer_gcpro to nil.
1670 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
1671 frame_or_window is equal to its arg member as prefix events.
1672 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
1673 used by an input event to nil.
1674 (init_keyboard): Use two times the size of the input queue
1675 for kbd_buffer_gcpro.
1676 (syms_of_keyboard): Likewise.
1677
1678 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
1679 USER_SIGNAL_EVENT.
1680
1681 * termhooks.h (struct input_event): Add member `arg'.
1682 (MENU_BAR_EVENT): Renamed from menu_bar_event.
1683 (USER_SIGNAL_EVENT): Renamed from user_signal.
1684
1685 * xfaces.c (ASET): Remove definition.
1686
1687 * lisp.h (AREF, ASET, ASIZE): New macros.
1688
1689 * fontset.c (AREF, ASIZE): Remove definitions.
1690
1691 * fns.c (AREF): Remove definition.
178c5d9c 1692
0f1a9b23
GM
1693 * composite.c (AREF): Remove definition.
1694
712eaef2
GM
16952000-07-12 Gerd Moellmann <gerd@gnu.org>
1696
d8ee7803
GM
1697 * dispnew.c (redraw_overlapped_rows): Add missing local.
1698 (scrolling_window): Remove debug code.
1699
712eaef2
GM
1700 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
1701 Before scrolling, turn off a mouse-highlight in the window
1702 being scrolled.
1703
1704 * xterm.c (x_update_window_end): Add parameter
1705 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
1706 redisplay in XTframe_up_to_date.
1707 (x_clear_mouse_face): New function.
1708 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
1709
1710 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
1711 current glyph row.
1712 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
1713 it when any row is written to that contains glyphs highlighted in
1714 mouse-face.
1715 (update_window): Call the window update end hook with new
1716 parameter MOUSE_FACE_OVERWRITTEN_P.
1717 (direct_output_for_insert): Give up if row contains mouse-face.
1718
1719 * dispextern.h (struct redisplay_interface): Add parameter
1720 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
1721 (clear_mouse_face): New function pointer member.
1722
02010917
SM
17232000-07-11 Stefan Monnier <monnier@cs.yale.edu>
1724
1725 * syntax.c (back_comment): Use one switch rather than a few `if's.
1726 Obey open_paren_in_column_0_is_defun_start.
1727 When reverting to the `slow' method, try to nicely handle the case
1728 of nested comments by checking that the comment-starter we found
1729 does indeed match the comment-ender.
1730 (scan_sexps_forward, scan_sexps_forward):
1731 Ignore excessive opening parenthesis rather than throwing an error.
1732
d76c03ea
GM
17332000-07-11 Gerd Moellmann <gerd@gnu.org>
1734
1735 * doc.c (Fsubstitute_command_keys): Handle case that a GC
1736 in Fwhere_is_internal or get_keymap_1 relocates string contents.
1737
1738 * dispnew.c (direct_output_forward_char): Give up if currently
1739 displaying a message instead of the minibuffer contents.
1740
1741 * xterm.c (x_update_window_begin): No need to turn off the mouse
1742 highlight here.
1743 (show_mouse_face): Set the mouse_face_p flag of glyph rows
1744 depending on whether they contain glyphs highlighted in
1745 mouse-face.
1746
1747 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
1748 compare the mouse_face_p flags of both rows.
1749
1750 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
1751
d55ead18
EZ
17522000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
1753
1754 * keyboard.c (show_help_echo): Accept additional parameter
1755 ok_to_overwrite_keystroke_echo.
1756 (read_char): Call show_help_echo with a zero
1757 ok_to_overwrite_keystroke_echo argument.
1758 * keyboard.h (show_help_echo): Update prototype of
1759 show_help_echo.
1760 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
1761 ok_to_overwrite_keystroke_echo argument.
1762 * w32menu.c (w32_menu_display_help): Call show_help_echo with
1763 non-zero ok_to_overwrite_keystroke_echo argument.
1764
df75b1a3
GM
17652000-07-10 Gerd Moellmann <gerd@gnu.org>
1766
4b92c49a
GM
1767 * xdisp.c (try_window_id): If changes are all below what is
1768 displayed in the window, and point is in the window, we still
1769 might have to find point on the display.
1770
1771 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
1772 glyphs instead of a single one.
1773 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
1774 with new argument list.
1775 (x_set_glyph_string_gc): Make sure the face's GC is valid.
1776
df75b1a3
GM
1777 * keymap.c (get_keymap_1): Add comment that this function can GC.
1778 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
1779 comment that functions can GC.
1780 (Fset_keymap_parent): GCPRO arg KEYMAP.
1781
4314cf3e
EZ
17822000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
1783
1784 * msdos.c (XMenuActivate): After exiting the menu, restore the
1785 echo area message and erase it.
1786
ab49ce15
KH
17872000-07-10 Kenichi Handa <handa@etl.go.jp>
1788
1789 * fontset.c (Ffontset_info): Make the return value more compatible
1790 with that of Emacs 20.
1791
090a072f
GM
17922000-07-07 Gerd Moellmann <gerd@gnu.org>
1793
1794 * eval.c (Fsignal): Handle case that backtrace_list is null.
1795
f92de4a6
KH
17962000-07-07 Kenichi Handa <handa@etl.go.jp>
1797
1798 * ccl.c (Fccl_execute): Typo fixed.
1799
dd8888a1
GM
18002000-07-06 Gerd Moellmann <gerd@gnu.org>
1801
e5c81191 1802 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 1803
dd8888a1
GM
1804 * window.c (Fwindow_list): Reverse list at the end.
1805 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
1806 means allow windows on OWINDOW's frame, only.
1807 (window_loop): Simplified; use Fwindow_list.
1808
1809 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
1810
485266d0
GM
18112000-07-05 Gerd Moellmann <gerd@gnu.org>
1812
1813 * xterm.c (XTread_socket): Increment handling_signal at the start,
1814 decrement it at the end.
1815
1816 * eval.c (handling_signal): New variable.
1817 (Fsignal): Abort if handling_signal is non-zero.
1818
1819 * lisp.h (handling_signal): External declaration.
178c5d9c 1820
485266d0
GM
1821 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
1822
80fcd514
KR
18232000-07-05 Ken Raeburn <raeburn@gnu.org>
1824
1825 Sound support for NetBSD through "Linux emulation" support:
1826 * config.in (HAVE_SOUNDCARD_H): Undef.
1827 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
1828 * Makefile.in (LIBSOUND): New variable.
1829 (LIBES): Include it.
1830 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
1831 <soundcard.h>.
1832 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
1833 elsewhere.
1834 (vox_open): Use DEFAULT_SOUND_DEVICE.
1835 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
1836
d5c5cddd
GM
18372000-07-05 Gerd Moellmann <gerd@gnu.org>
1838
1839 * print.c (print_error_message): If Vsignaling_function is set,
1840 show it in *Messages*.
1841
1842 * lisp.h (Vsignaling_function): External declaration.
1843
1844 * eval.c (Vsignaling_function): New variable.
1845 (Fsignal): Compute it.
1846 (syms_of_eval): Staticpro it.
1847
65171e3a
DL
18482000-07-05 Dave Love <fx@gnu.org>
1849
1850 * syswait.h: Use the autoconf recommended approach. Old code
1851 #if'd out in case we need to revert.
1852
178c5d9c 1853 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 1854
e2c46326
AI
18552000-07-05 Andrew Innes <andrewi@gnu.org>
1856
1857 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
1858 when non-NULL instead of __morecore, to take account of buffer
1859 memory. This also solves a problem with spurious memory warnings
1860 on Windows.
1861
1862 * ralloc.c: Make real_morecore non-static.
1863
1864 * eval.c (internal_condition_case): Comment out abort if
1865 interrupt_input_blocked is not zero.
1866
1867 * makefile.nt: Add support for `bootstrap' and related targets.
1868 Include minimal debug info in emacs.exe in release build.
1869 Remove all dependencies on lisp.h, and fixup some others.
1870
1871 * w32.c (init_environment): Install code from 20.7 for providing
1872 default values for environment variables, based on the
1873 executable's own location.
1874 (map_w32_filename): Handle filenames that are longer than
1875 MAX_PATH.
1876 (sys_socket): Install socket inheritance bug fix from 20.7.
1877
1878 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
1879 here via blockinput.h).
1880
a027a91b
SM
18812000-07-05 Stefan Monnier <monnier@cs.yale.edu>
1882
e4b31601
SM
1883 * w32menu.c (w32_menu_display_help):
1884 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
1885
1886 * keyboard.h (show_help_echo): Declare.
1887
1888 * keyboard.c (show_help_echo): New function, extracted from read_char.
1889 Feval its `msg' argument if it's a cons cell.
1890 (read_char): Use it.
4cf8d9d5 1891 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 1892
178c5d9c 1893 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 1894 (note_tool_bar_highlight, XTread_socket):
178c5d9c 1895 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
1896 (dos_rawgetc):
1897 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
1898 (note_tool_bar_highlight, w32_read_socket):
1899 Do not gratuitously ignore non-string `help-echo' properties.
1900
88d75730
GM
19012000-07-05 Gerd Moellmann <gerd@gnu.org>
1902
969f7e79
GM
1903 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
1904
71201b00
GM
1905 * window.c (delete_all_subwindows): Reset Vwindow_list.
1906
88d75730
GM
1907 * xterm.c (x_append_glyph, x_append_composite_glyph)
1908 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
1909 changes in struct glyph starting 1999-12-27. Some bit-fields of
1910 struct glyph were not set, which made glyphs unequal when compared
1911 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
1912 effects were the result. This also depended on the contents of
1913 memory returned by xmalloc. If flickering happens again, activate
1914 the code in clear_glyph_row that's in #if 0. If the flickering is
1915 gone with that, chances are that it is caused by something
1916 similar.
1917
1918 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 1919
88d75730
GM
1920 * dispextern.h: Add some comments.
1921
1922 * window.c (add_window_to_list): Add parameter LIST.
1923 (window_list): Order list so that, for each frame, windows are
1924 in canonical order, and so that frames appear in the list in
1925 the order given by Vframe_list.
1926 (next_window): Reverse the handling of NEXT_P.
1927
53654733
GM
19282000-07-04 Gerd Moellmann <gerd@gnu.org>
1929
87efd256
GM
1930 * window.c (Vwindow_list): New variable.
1931 (make_window, delete_window): Set Vwindow_list to nil.
1932 (check_window_containing): New function.
1933 (window_from_coordinates): Rewritten.
1934 (add_window_to_list, window_list, candidate_window_p)
1935 (decode_next_window_args, next_window): New functions.
1936 (Fnext_window, Fprevious_window): Rewritten in terms of
1937 next_window.
1938 (Fwindow_list): New function.
1939 (Fother_window): Cleaned up.
1940 (foreach_window): Add a longer "variable argument list". Let
1941 callback function return 0 to indicate that cycling over windows
1942 should stop.
1943 (foreach_window_1): Likewise.
1944 (freeze_window_start): Return int.
1945 (init_window): New function.
1946 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
1947
1948 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
1949 input_event with bzero.
1950 (main): Call init_window.
1951
53654733
GM
1952 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
1953 a menu filter.
1954
4a8c194f
KH
19552000-07-04 Kenichi Handa <handa@etl.go.jp>
1956
1957 * composite.h (make_composition_value_copy): Extern it.
1958
1959 * composite.c (make_composition_value_copy): New function.
1960
1961 * editfns.c (Fformat): While copying text properties, make each
1962 composition property value a copy.
1963
1964 * fns.c (concat): While copying text properties, make each
1965 composition property value a copy.
1966
831a6cb0
GM
19672000-07-03 Gerd Moellmann <gerd@gnu.org>
1968
2f516940
GM
1969 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
1970
178c5d9c 1971 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
1972 marked already.
1973
831a6cb0
GM
1974 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
1975 include those frames as candidates which have their focus
1976 redirected to the minibuffer frame.
1977
d9c4f922
SM
19782000-07-03 Stefan Monnier <monnier@cs.yale.edu>
1979
1980 * fns.c (Fputhash): Return `value' rather than nil.
1981
3780bc22
GM
19822000-06-30 Gerd Moellmann <gerd@gnu.org>
1983
97d176db
GM
1984 * frame.c (next_frame): Don't check focus redirection in case
1985 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
1986 unless their focus is redirected, which contradicts the
1987 specification of next-frame, and leads to infinite loops in
1988 certain situations when cycling through windows with next-window.
1989
dca9961d
KH
19902000-06-30 Kenichi Handa <handa@etl.go.jp>
1991
1992 * coding.c (code_convert_region): Even if the length of text is
1993 zero, try to convert it if coding->type is coding_type_ccl.
1994 (decode_coding_string, encode_coding_string): Likewise.
1995
d5483ab1
GM
19962000-06-28 Gerd Moellmann <gerd@gnu.org>
1997
af5c25e1 1998 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 1999 the display if windows_or_buffers_changed.
af5c25e1
GM
2000
2001 * dispnew.c (struct row_entry): New structure.
2002 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
2003 (row_table_size, old_lines, new_lines, old_lines_size)
2004 (new_lines_size, run_pool, runs_size, runs): New variables.
2005 (add_row_entry): New function.
2006 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 2007 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
2008 holding them in local variables. Use a larger hash table whose
2009 size depends on glyph matrix sizes. Don't use bzero to clear the
2010 hash table; instead, clear used slots only.
2011
2012 * fns.c (next_almost_prime): Make it externally visible.
2013
2014 * lisp.h (next_almost_prime): Add prototype.
2015
d5483ab1
GM
2016 * s/isc4-0.h (sigunblock): Define.
2017
2018 * s/sco5.h (sigunblock): Define.
2019
93e40f40
DL
20202000-06-27 Dave Love <fx@gnu.org>
2021
2022 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
2023 (moved to osf5-0.h).
2024 [!NOT_C_CODE]: Protect string.h stuff.
2025
2026 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
2027 (sys_siglist, NSIG): Definitions moved here from osf1.h.
2028
3c4b7685
GM
20292000-06-27 Gerd Moellmann <gerd@gnu.org>
2030
97d176db 2031 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
2032 below the last line from the needed window height.
2033
32cad0aa
SM
20342000-06-26 Stefan Monnier <monnier@cs.yale.edu>
2035
2036 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
2037 (Fwidget_get): Use it.
2038 (syms_of_fns): Defsubr it.
2039
2c69ced2
GM
20402000-06-26 Gerd Moellmann <gerd@gnu.org>
2041
178c5d9c 2042 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
2043 display info for XIM.
2044 (xim_open_dpy): Likewise.
2045 (xim_close_dpy): Don't free the display info's XIM.
2046
2047 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
2048
2049 * config.in (USE_XIM): New define.
2050
3fc720e4
GM
2051 * keymap.c (get_keyelt): For menu-items containing a `:filter
2052 FILTER', apply FILTER to the menu-item's definition to get the
2053 real definition to use.
2054
2055 * lisp.h (QCfilter): External declaration.
2056
2c69ced2
GM
2057 * xfns.c (Fimage_size): New function.
2058 (syms_of_xfns): Defsubr it.
2059
f978b2a2
AS
20602000-06-26 Andreas Schwab <schwab@suse.de>
2061
2062 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
2063 Fstring_as_unibyte.
2064
94cc7892
DL
20652000-06-25 Dave Love <fx@gnu.org>
2066
2067 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
2068 tgetnum.
2069
2070 * Makefile.in (blockinput.h): Depend on atimer.h.
2071 (atimer.h): Depend on systime.h.
2072
2073 * blockinput.h: Protect against multiple inclusion. Include
2074 atimer.h.
2075
2076 * atimer.h: Protect against multiple inclusion. Include
2077 systime.h.
2078
2079 * lisp.h (swap_in_global_binding): Declare.
2080
b8c24556
KR
20812000-06-24 Ken Raeburn <raeburn@gnu.org>
2082
2083 * process.c (Fopen_network_stream): Turn off atimers for duration
2084 of call to connect. (Patch from Gerd.)
2085
8cf8560b
DL
20862000-06-23 Dave Love <fx@gnu.org>
2087
511c7541
DL
2088 * ralloc.c: Maybe include unistd.h
2089
8cf8560b
DL
2090 * emacs.c (setgrp): Undefine before defining.
2091 (malloc_warning, set_time_zone_rule, index): Prototype.
2092
2093 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
2094 HAVE_STRUCT_TIMEZONE.
2095
2096 * s/osf1.h: Move string.h hack here from alpha.h and make it
2097 conditional.
2098 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
2099 _XOPEN_SOURCE.
2100 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
2101 (SOCKLEN_TYPE): Don't define.
2102
2103 * m/alpha.h: Remove string.h hack.
2104
2105 * s/osf5-0.h: New file.
2106
2107 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
2108 include time.h, done by systime.h.
2109 [__FreeBSD__]: Remove redundant includes.
2110
3fc720e4 2111 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
2112 (delete_temp_file): Return Qnil to avoid warning.
2113
2114 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
2115
2116 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
2117 HAVE_X_WINDOWS.
2118
2119 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
2120
2121 * composite.h (compose_text): Declare.
2122
2123 * xterm.c: Don't include sys/types.h unconditionally. Don't
2124 protect its inclusion with !USG (following xmenu.c).
2125
ea055732
GM
21262000-06-23 Gerd Moellmann <gerd@gnu.org>
2127
2128 * xfns.c (x_create_tip_frame): Initialize frame's colors like
2129 in x_create_frame.
2130
74b01b80
EZ
21312000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
2132
2133 * coding.c (decode_eol_post_ccl): Special handling for undecided
2134 and inconsistent EOL types.
2135
64f3a166
GM
21362000-06-22 Gerd Moellmann <gerd@gnu.org>
2137
16cf31f7
GM
2138 * xrdb.c (x_load_resources): Add default resource for scroll bar's
2139 trough color and main window's background color.
2140
178c5d9c 2141 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
2142 differently.
2143
2144 * xterm.h (Xt_app_con): External declaration.
2145
2146 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 2147
486a103d
GM
2148 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
2149
64f3a166
GM
2150 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
2151 (handle_invisible_prop): Record the start of invisible text in
2152 it->add_overlay_start.
2153 (struct overlay_entry): Add member `overlay'.
2154 (handle_overlay_change): Simplify.
2155 (next_overlay_string): After having processed overlay strings at the
2156 end of the buffer, record that fact in
2157 it->overlay_strings_at_end_processed_p.
2158 (compare_overlay_entries): If before- and after-strings come
2159 from the same overlay, let before-strings come first.
2160 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
2161 (load_overlay_strings): Take it->add_overlay_start into account
2162 when adding overlay strings.
2163
2164 * dispextern.h (struct it): Add member add_overlay_start.
2165
bb746ea6
DL
21662000-06-22 Dave Love <fx@gnu.org>
2167
2168 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
2169
2170 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
2171
a8f573f3
KH
21722000-06-22 Kenichi Handa <handa@etl.go.jp>
2173
2174 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
2175 is greater than 0.
2176
9f2bbc92
DL
21772000-06-21 Dave Love <fx@gnu.org>
2178
178c5d9c 2179 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 2180
3ee5041c
SM
21812000-06-21 Stefan Monnier <monnier@cs.yale.edu>
2182
2183 * syntax.c (back_comment): Simplify string-parity counting (with
2184 the added benefit of handling multiple string-styles as long as
2185 they are not intertwined).
2186 Jump to the slow code as soon as a comment starter is found in
2187 a "string_lossage" position. Fixes the case: " /* " /* " */.
2188
4c343001
DL
21892000-06-21 Dave Love <fx@gnu.org>
2190
2191 * Makefile.in: Use GETLOADAVG_LIBS.
2192
2193 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
2194 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
2195
e6365855
SM
21962000-06-20 Stefan Monnier <monnier@cs.yale.edu>
2197
2198 * syntax.c (describe_syntax): Recognize the `n'estable bit.
2199 (Fforward_comment, scan_lists):
2200 Check the comstyle of single-char comment-starters.
2201 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
2202 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
2203 Check the comstyle of single-char comment-starters.
2204 Clarify control-flow around the Scomment case.
e6365855 2205
5700d2cc
DL
22062000-06-20 Dave Love <fx@gnu.org>
2207
d355bd8a
SM
2208 * fns.c (make_hash_table, maybe_resize_hash_table):
2209 Cast arg of next_almost_prime.
5700d2cc 2210
178c5d9c 2211 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
2212
2213 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
2214 and unistd.h.
2215
4a27bdfb
GM
22162000-06-20 Gerd Moellmann <gerd@gnu.org>
2217
a61d762c
GM
2218 * keyboard.c (adjust_point_for_property): Check if display
2219 property should be treated as intangible by looking at its
2220 value.
2221
178c5d9c 2222 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
2223 (display_prop_intangible_p): New functions.
2224
2225 * dispextern.h (display_prop_intangible_p): Add prototype.
2226
2227 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 2228
4a27bdfb
GM
2229 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
2230 argument to sigprocmask.
2231
2232 * s/sco5.h (sigblock): Redefined to pass a pointer as second
2233 argument to sigprocmask.
2234
2235 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
2236 sigprocmask_set, and pass a pointer to it to sigprocmask.
2237
2238 * sysdep.c (sigprocmask_set): New variable.
2239
2240 * fileio.c (make_temp_name): Don't use `%s' in string passed to
2241 report_file_error.
2242
427ec082
SS
22432000-06-20 Sam Steingold <sds@gnu.org>
2244
2245 * xrdb.c: Don't declare xmalloc, xrealloc.
2246
8972fe79 22472000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
2248
2249 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
2250 (re_comp): Cast gettext return value to avoid complaints when
2251 !HAVE_LIBINTL.
2252
074b6efe
DL
22532000-06-20 Dave Love <fx@gnu.org>
2254
f85c008a
DL
2255 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
2256 HAVE_GETTIMEOFDAY.
2257
5700d2cc 2258 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 2259
d355bd8a 2260 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
2261
2262 * m/alpha.h: Don't declare xmalloc, xrealloc.
2263
0af4f205
DL
2264 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
2265
2266 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
2267
2268 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
2269
2270 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
2271 HAVE_GETWD.
2272
074b6efe
DL
2273 * keyboard.h (poll_for_input_1): Declare.
2274
2275 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
2276
2277 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
2278
2279 * doprnt.c: Don't declare xmalloc, xrealloc.
2280
2281 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
2282 (getenv, ctime, getwd): Removed.
2283 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
2284
2285 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
2286 x_set_tool_bar_lines.
2287
2288 * config.in: Add HAVE_GETWD. Move some definitions above
2289 machine/system includes.
2290
68a5e97b
KH
22912000-06-20 Kenichi Handa <handa@etl.go.jp>
2292
95417e1e
KH
2293 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
2294
68a5e97b
KH
2295 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
2296 contain information about ENCODING.
2297
2298 * fontset.c (FONTSET_ASCII): Use the first element of char table
2299 for an ASCII font, not defalt slot.
2300 (fontset_ref_via_base): If FONTSET doesn't contain information for
2301 C, try the default fontset.
2302 (make_fontset): Don't copy the default fontset.
2303 (fontset_font_pattern): Likewise.
2304 (accumulate_font_info): If ELT is nil, use the corresponding
2305 element in the default fontset.
2306
3b4fa1b2
DL
23072000-06-19 Dave Love <fx@gnu.org>
2308
943e731c
DL
2309 * syntax.c (Fparse_partial_sexp): Doc fix.
2310
2311 * regex.h: Test PROTOTYPES as well as __STDC__.
2312
3b4fa1b2
DL
2313 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
2314 errno, strerror. Put text after #endif in comment.
2315
2316 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
2317 pcc).
2318
2319 * xterm.c (x_frame_of_widget): Likewise.
2320
cdf0357b
GM
23212000-06-19 Gerd Moellmann <gerd@gnu.org>
2322
2323 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
2324 to Vfundamental_mode_abbrev_table.
2325
2326 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
2327 bogus objects are marked. This slows down GC by ~80 percent, but
2328 it might be worth trying when debugging GC-related problems.
2329 This feature requires conservative stack marking to be enabled.
2330
2331 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
2332 returns XLookupChars, reset `modifiers' to zero.
2333
998e9f8c
DL
23342000-06-19 Dave Love <fx@gnu.org>
2335
2336 * mktime.c: Unprotoized.
2337
18e21ce8 23382000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
2339
2340 * data.c (set_internal): If variable is frame-local,
2341 store the new value immediately into the frame parameter alist.
2342
140c4ac6
KR
23432000-06-19 Ken Raeburn <raeburn@gnu.org>
2344
14358466
KR
2345 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
2346 in the custom handler pointer.
2347
140c4ac6
KR
2348 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
2349 value, or checks for CHAR_META can fail when Lisp_Object is a
2350 union type.
2351 * keymap.c (get_keyelt): Likewise.
2352
10d7bf84
KH
23532000-06-19 Kenichi Handa <handa@etl.go.jp>
2354
2355 * ccl.h (struct ccl_program): New member eol_type.
2356 (struct ccl_spec): New member cr_carryover.
2357
2358 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
2359 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
2360
2361 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
2362 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
2363 (decode_eol_post_ccl): New function.
2364 (decode_coding): Don't detect EOL format here for CCL based coding
2365 systems.
2366 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
2367 decode_eol_post_ccl after running the CCL program.
2368 (code_convert_region): Don't detect EOL format here for CCL based
2369 coding systems.
2370 (decode_coding_string): Likewise.
2371
52e386c2
KR
23722000-06-18 Ken Raeburn <raeburn@gnu.org>
2373
2374 * charset.c (update_charset_table): Use XINT on "iso_final_char"
2375 when treating it as an integer.
2376
2377 * coding.h (encode_coding_string): Declare.
2378
2379 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
2380 it as an integer.
2381
2382 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
2383 "xkeymap" to avoid shadowing the "enum map_type" value that needs
2384 to be passed to get_local_map.
2385
2386 * sound.c (Fplay_sound): Don't call make_number on
2387 Frun_hook_with_args count argument.
2388
2389 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
2390 for lisp objects in X event structure data field, when lisp
2391 objects are represented with unions.
2392 (x_scroll_bar_to_input_event): Ditto.
2393
b357b9d4
KR
23942000-06-16 Ken Raeburn <raeburn@gnu.org>
2395
2396 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
2397 termination of string. Fix sense of test whether
2398 Vline_number_display_limit is an integer.
b357b9d4 2399
a871441d
GM
24002000-06-16 Gerd Moellmann <gerd@gnu.org>
2401
a9021acd
GM
2402 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
2403 only if HAVE_X_WINDOWS.
2404
6344985d
GM
2405 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
2406 of titles.
2407
427ec082 2408 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
2409 out of bounds.
2410
228b083e
EZ
24112000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
2412
2413 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
2414 of its headers.
2415
c25b53a2
KH
24162000-06-15 Kenichi Handa <handa@etl.go.jp>
2417
2418 * coding.c (decode_coding_emacs_mule): Always set src_base at the
2419 start of the while loop.
2420
a6981b11
GM
24212000-06-15 Gerd Moellmann <gerd@gnu.org>
2422
e9924e52
GM
2423 * atimer.c (alarm_signal_handler): Add forward declaration.
2424
a6981b11
GM
2425 * data.c (set_internal): Remove debug code.
2426
25fa6deb
GM
24272000-06-14 Gerd Moellmann <gerd@gnu.org>
2428
dce6b995
GM
2429 * Makefile.in (bootstrap-temacs): Add `-I../src'.
2430
9f817ea4
GM
2431 * unexec.c (toplevel) [COFF]: Include coff.h.
2432
2433 * s/lynxos.h: New file.
2434
2435 * keymap.c (Fsingle_key_description): Enclose function key and
2436 event symbol names in angle brackets.
2437
8a4e3c0c
GM
2438 * xdisp.c (setup_echo_area_for_printing): Call
2439 message_log_maybe_newline if message_buf_print is not set.
2440
2441 * print.c (printchar, strout): Don't check message_buf_print
427ec082 2442 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
2443 function does something useful even when message_buf_print is
2444 already set.
2445
25fa6deb
GM
2446 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
2447 variables.
2448 (ensure_echo_area_buffers): Initialize echo buffer's
2449 truncate lines setting to nil.
2450 (with_echo_area_buffer): Don't set the echo buffer's truncate
2451 lines setting here.
8a4e3c0c 2452 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
2453 of message_truncate_lines.
2454 (resize_mini_window): Handle case that lines are truncated.
2455 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
2456 message-truncate-lines.
2457
2458 * keyboard.c (read_char): Bind message-truncate-lines to t
2459 while displaying a help-echo.
2460
2461 * lisp.h (Qmessage_truncate_lines): External declaration.
2462
163dcff3
GM
24632000-06-13 Gerd Moellmann <gerd@gnu.org>
2464
1681ead6
GM
2465 * xdisp.c (Vline_number_display_limit): Renamed from
2466 line_number_display_limit.
2467 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
2468 Extend documentation string. Initialize
2469 Vline_number_display_limit to nil meaning no limit.
2470 (decode_mode_spec): Use Vline_number_display_limit with its new
2471 meaning.
2472
163dcff3
GM
2473 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
2474
18e21ce8 24752000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
2476
2477 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 2478
163dcff3
GM
2479 * xfns.c (x_set_frame_parameters): Comment fix.
2480
2481 * frame.c (store_frame_param): Call swap_in_global_binding if the
2482 variable's current binding was chosen based on this frame.
2483
2484 * data.c (swap_in_global_binding): New function.
2485
a704139d
EZ
24862000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
2487
2488 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
2489 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
2490
9b6610db
EZ
24912000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
2492
2493 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
2494
c68833d2
JR
24952000-06-12 Jason Rumney <jasonr@gnu.org>
2496
2497 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
2498
2499 * w32.h (EMACS_W32_H): Renamed from _NT_H_
2500
2501 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
2502
2503 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
2504
ed1056b3
GM
25052000-06-12 Gerd Moellmann <gerd@gnu.org>
2506
2507 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
2508 (syms_of_xfaces): Defsubr Sdump_colors.
2509 (x_free_colors): Don't treat b&w specially on default visual.
2510 (x_free_dpy_colors): New function.
2511 (free_face_colors): Don't check visual class; it's done
2512 in x_free_colors.
2513
2514 * xterm.c (x_frame_of_widget): New function.
2515 (x_alloc_nearest_color_for_widget): Use it.
2516 (x_copy_dpy_color): New function.
2517 (x_destroy_window): Free various colors.
2518
5050a2ef
KH
25192000-06-12 Kenichi Handa <handa@etl.go.jp>
2520
2521 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
2522
2523 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
2524
2525 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
2526
2527 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
2528
2529 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
2530
fb1b041d
DL
25312000-06-11 Dave Love <fx@gnu.org>
2532
2533 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
2534
ff96b5f4
EZ
25352000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
2536
2537 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
2538
db8eeecd
GM
25392000-06-11 Gerd Moellmann <gerd@gnu.org>
2540
ed1056b3 2541 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
2542 to `XEvent *'.
2543
49b71c5f
KH
25442000-06-10 Kenichi Handa <handa@etl.go.jp>
2545
c479bd55
KH
2546 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
2547 (regex_compile): Fix the code for handling the case of single byte
2548 char and multibyte char being mixed in a range within [...].
2549
ff6a65c2
KH
2550 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
2551 and dst_multibyte members of coding.
2552
49b71c5f
KH
2553 * charset.c (update_charset_table): Update the table
2554 bytes_by_char_head.
2555 (init_charset_once): Initialize elements of bytes_by_char_head to
2556 1 except for leading codes for private charases.
2557
2558 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
2559 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
2560 sequence.
2561
9e80b57d
KR
25622000-06-09 Ken Raeburn <raeburn@gnu.org>
2563
2564 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
2565 access the data it doesn't point to.
2566
f83fe4b4
GM
25672000-06-08 Gerd Moellmann <gerd@gnu.org>
2568
2569 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 2570 will be translated to a switch-frame event when reading the
f83fe4b4
GM
2571 event queue. This is necessary because Emacs otherwise won't
2572 perform a switch-frame to a new frame until some other event, for
2573 example a keystroke event, forces it to do so. This has various
2574 effects, one visible being that the cursor of a frame created with
2575 C-x 5 2 or switched to with a window manager key binding like
2576 A-TAB stays hollow because selected_window isn't on the newly
2577 focused frame until the switch-frame is performed.
2578
2579 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
2580 generating a switch-frame event if necessary.
2581
2582 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
2583
2584 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
2585 it's an integer.
2586
0890801b
KH
25872000-06-08 Kenichi Handa <handa@etl.go.jp>
2588
2589 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
2590 charset.
2591
173cbca8
GM
25922000-06-07 Gerd Moellmann <gerd@gnu.org>
2593
3091c2a6
GM
2594 * window.c (displayed_window_lines): Take empty lines at
2595 the bottom of a window into account.
427ec082 2596
f38952fe
GM
2597 * window.c (displayed_window_lines): New function.
2598 (Fmove_to_window_line): Use displayed_window_lines to determine
2599 the number of lines to move, instead of using the window's height.
2600
2601 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
2602 to stop reading, even if the form read sets point to a different
2603 value when evaluated.
2604
427ec082 2605 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
2606 put the cursor.
2607
6ba6c818
KH
26082000-06-07 Kenichi Handa <handa@etl.go.jp>
2609
2610 * fileio.c (e_write): Free composition data if stored in
2611 coding->cmp_data.
2612
5f1aea9a
GM
26132000-06-06 Gerd Moellmann <gerd@gnu.org>
2614
666852af
GM
2615 * xdisp.c (display_line): Set row's and iterator's
2616 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
2617 Set cursor even if row ends in the middle of a character.
2618 (dump_glyph_row): Print values of new flags.
2619 (redisplay_window) <cursor movement in unchanged window>: When
2620 point has been moved forward, and PT is at the end of the cursor
2621 row, don't place the cursor in the next row if the cursor row ends
2622 in the middle of a character or at ZV.
2623
2624 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
2625 (struct glyph_row): Add starts_in_middle_of_char_p and
2626 ends_in_middle_of_char_p.
2627 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
2628 ends_in_middle_of_char_p flag.
2629 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
2630
d13f3e2e
GM
2631 * term.c (append_glyph): Revert change of 2000-06-06.
2632
2633 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
2634 padding glyph not fitting on line as whole character not
2635 fitting on line.
2636
5f1aea9a
GM
2637 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
2638 this isn't true for images with `:ascent 100'.
2639
10cda9b0
KH
26402000-06-06 Kenichi Handa <handa@etl.go.jp>
2641
ed00559d
KH
2642 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
2643 as modified if it is originally unmodified.
2644
10cda9b0
KH
2645 * term.c (encode_terminal_code): Change the way to check if
2646 terminal coding does any conversion.
2647 (append_glyph): Set glyph->pixel_width correctly.
2648
2649 * xdisp.c (display_line): While checking line continuation, pay
2650 attention to a padding glyph.
2651
1969fae2
GM
26522000-06-05 Gerd Moellmann <gerd@gnu.org>
2653
2654 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
2655
162ccef4
DL
26562000-06-05 Dave Love <fx@gnu.org>
2657
f19f32dd
DL
2658 * xdisp.c: Include fontset.h.
2659
2660 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
2661
2662 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
2663
2664 * dispnew.c: Conditionally include term.h.
2665
2666 * coding.h: Declare code_convert_string_norecord.
2667
2668 * frame.h (struct frame): Use volatile unconditionally.
2669
2670 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
2671
2672 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
2673
2674 * systime.h: Protect against multiple inclusion.
2675 (timezone) [USG5_4]: Define as time_t.
2676
2677 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
2678 (Foptimize_char_table, make_temp_name): Declare.
2679
2680 * Makefile.in (xdisp.o): Depend on fontset.h.
2681
2682 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
2683
2684 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
2685 (Foptimize_char_table, make_temp_name): Declare.
2686
427ec082 2687 * s/irix4-0.h:
162ccef4
DL
2688 * s/irix5-0.h:
2689 * s/netbsd.h: Don't define autoconfiscated MATHERR.
2690
2082fe81
DL
26912000-06-02 Dave Love <fx@gnu.org>
2692
2693 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
2694
dcf671d2
GM
26952000-06-02 Gerd Moellmann <gerd@gnu.org>
2696
2697 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 2698 result face, set flags in that face indicating that colors may not
dcf671d2
GM
2699 be freed.
2700
2701 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
2702 glyph, use the ASCII NUL character to determine the face.
2703
d42122a3
DL
27042000-06-02 Dave Love <fx@gnu.org>
2705
2706 * sysdep.c: Conditionally include stdlib.h, unistd.h.
2707 (VFORK_RETURN_TYPE): Remove.
427ec082 2708
d42122a3
DL
2709 * config.in: Add NO_MATHERR.
2710
dd432f16
DL
27112000-06-01 Dave Love <fx@gnu.org>
2712
90aa4ea8
DL
2713 * cmds.c (internal_self_insert): Don't check
2714 Vbefore_change_function, Vafter_change_function.
2715
2716 * insdel.c (signal_before_change, signal_after_change): Likewise.
2717
2718 * buffer.c (Vbefore_change_function, Vafter_change_function):
2719 Variables and their initializations deleted.
2720
2330c9d4
DL
2721 * callint.c (Fcall_interactively): Doc fix.
2722
dd432f16
DL
2723 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
2724
bf9e8804
DL
27252000-05-31 Dave Love <fx@gnu.org>
2726
2727 * textprop.c: Revert last change -- duplicated.
2728
3694b4ab
GM
27292000-05-31 Gerd Moellmann <gerd@gnu.org>
2730
2731 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
2732 in #if 0.
2733
2734 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
2735
f14156cd
JR
27362000-05-31 Jason Rumney <jasonr@gnu.org>
2737
8119aab8
JR
2738 * search.c (Fre_search_forward, Fre_search_backward)
2739 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
2740
f14156cd
JR
2741 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
2742
4aab9be3
JR
27432000-05-30 Jason Rumney <jasonr@gnu.org>
2744
2745 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
2746 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
2747
2748 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
2749 member.
2750
2751 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
2752 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
2753 expand a nil default_filename.
2754
2755 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
2756 pointer to glyph_to_pixel_coords, not a frame.
2757
2758 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
2759 coding.h to dependencies.
2760
2761 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
2762
2763 * w32console.c (glyph_to_pixel_coords): Change first parameter to
2764 window pointer to be consistent with w32term.c and xterm.c.
2765
2766 * w32fns.c: Format and doc changes to bring closer to xfns.c.
2767 (VIETNAMESE_CHARSET): Define if not defined in system headers.
2768 (Qline_spacing, Qcenter): New variables.
2769 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
2770 (x_set_line_spacing): New function.
2771 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
2772 macros.
2773 (x_specified_cursor_type): New function.
2774 (x_set_cursor_type): Use it.
2775 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
2776 and icon strings.
2777 (validate_x_resource_name, x_get_resource_string): Measure lengths
2778 of external strings in bytes.
2779 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
2780 GetTextExtentPoint32 with NULL title.
2781 (Fx_create_frame): Initialize Qline_spacing.
2782 (w32_load_system_font): Initialize font->double_byte_p.
2783 (x_to_w32_charset): Use Vw32_charset_info_alist.
2784 (Image, busy cursor, tooltip functions): Merged changes from
2785 xfns.c. Not yet functional on Windows.
2786
2787 * w32gui.h (W32FontStruct): Add double_byte_p member.
2788
2789 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
2790 (emacs_button_translation): Use it.
2791 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
2792 in `mask' to be set.
2793
2794 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
2795 menu strings.
2796
2797 * w32term.c: Format and doc changes to bring closer to xterm.c.
2798 (w32_char_font_type): New enum.
2799 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
2800 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
2801 (w32_encode_char): New function.
2802 (x_encode_char): Removed.
2803 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
2804 x_encode_char and w32_font_is_double_byte.
2805 (x_produce_image_glyph): Use image_ascent.
2806 (x_produce_glyphs): Use new version of w32_per_char_metric and
2807 handle NULL return value. Allow extra line spacing.
2808 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
2809 (w32_get_glyph_overhangs): Remove unicode_p param. Use
2810 w32_font_type member of glyph instead.
2811 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
2812 (fast_find_position): Make sure not to consider rows not visible
2813 in the window.
2814 (w32_read_socket) [WM_MENUSELECT]: Cannot call
2815 w32_menu_display_help with input blocked, as it can abort.
2816 (x_display_and_set_cursor): Choose cursor depending
2817 on buffer-local value of cursor_type.
2818 (x_draw_bar_cursor): Add parameter WIDTH.
2819
2820 * w32term.h (CP_DEFAULT): Define.
2821 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
2822
10fc3187
GM
28232000-05-30 Gerd Moellmann <gerd@gnu.org>
2824
2825 * search.c (Fre_search_forward, Fre_search_backward)
2826 (Fposix_search_backward, Fposix_search_forward): Doc fix.
2827
d0555360
KH
28282000-05-30 Kenichi Handa <handa@etl.go.jp>
2829
2830 * coding.c (detect_coding_iso2022): Fix code for checking
2831 CODING_CATEGORY_MASK_ISO_8_2.
2832
f1ad044f
SM
28332000-05-29 Stefan Monnier <monnier@cs.yale.edu>
2834
2835 * regex.c (PREFETCH_NOLIMIT): New function.
2836 (re_match_2_internal): Use it and adjust the end_match_2 logic.
2837
84ec3b4b
GM
28382000-05-29 Gerd Moellmann <gerd@gnu.org>
2839
66254a13
GM
2840 * syntax.c (find_defun_start): Move test for
2841 open_paren_in_column_0_is_defun_start outside of the loop.
2842
49e70dec
GM
2843 * xdisp.c (redisplay_window): Really switch buffers when
2844 displaying mode lines, and temporarily set selected_frame to the
2845 frame of the window that's redisplayed.
2846
84ec3b4b
GM
2847 * xfaces.c (free_realized_faces): Block/unblock input.
2848 (free_realized_multibyte_face): Ditto.
2849
869a3a14
DL
28502000-05-29 Dave Love <fx@gnu.org>
2851
2852 * textprop.c (Qkeymap): New variable.
2853 (syms_of_textprop): Intern it.
2854
2855 * keymap.c: Include intervals.h.
2856 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
2857
2858 * Makefile.in (keymap.o): Depend on intervals.h.
2859
2860 * keyboard.c (menu_bar_items, tool_bar_items)
2861 (Fexecute_extended_command): Deal with `keymap' property.
2862 (read_key_sequence): Track map from `keymap' property as well as
2863 `local_map'.
2864
2865 * intervals.c (get_local_map): Extra arg to allow looking for
2866 `keymap' too.
2867
2868 * intervals.h (map_property): New enum.
2869 (get_local_map): Extra arg using it.
2870 (Qkeymap): Declare.
2871
84ec3b4b 2872 * lisp.h (get_local_map): Don't declare here.
869a3a14 2873
89d0c844
KH
28742000-05-29 Kenichi Handa <handa@etl.go.jp>
2875
2876 * Makefile.in (callproc.o): Depend on composite.h.
2877
2878 * callproc.c: Include composite.h.
2879 (Fcall_process): Handle composition correctly.
2880
2881 * coding.h (coding_allocate_composition_data): Extern it.
2882 (coding_restore_composition): Likewise.
2883
2884 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
2885 yet allocated, finish decoding with result
2886 CODING_FINISH_INSUFFICIENT_CMP.
2887 (coding_allocate_composition_data): Make it non-static.
2888 (coding_restore_composition): Likewise.
2889
797a084a
EZ
28902000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
2891
2892 * charset.c (syms_of_charset): Revert last change.
2893
cf872af5
EZ
28942000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
2895
2896 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
2897 charsets as unibyte, with 1-column screen width. Sent by Kenichi
2898 Handa.
cf872af5 2899
5b1ae051
EZ
29002000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
2901
2902 * charset.c (syms_of_charset): Set width of character sets
2903 eight-bit-control and eight-bit-graphic to 1 column.
2904
34ec9ebe
GM
29052000-05-26 Gerd Moellmann <gerd@gnu.org>
2906
2907 * config.in (HAVE_SPEED_T): New define.
2908
2909 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
2910 `extern speed_t'.
2911
dd854dc2
DL
29122000-05-26 Dave Love <fx@gnu.org>
2913
2914 * coding.c (shrink_decoding_region): Initialize eol_conversion.
2915
2916 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
2917 (Fsubr_arity): New function.
2918 (syms_of_data): Install them.
2919
ba9f8f95
KH
29202000-05-26 Kenichi Handa <handa@etl.go.jp>
2921
0f3e0672
KH
2922 * charset.c (init_charset_once): Set the table bytes_by_char_head
2923 correctly.
2924
cebefb44
KH
2925 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
2926 the default fontset to what Emacs uses by default.
0f3e0672
KH
2927 (check_registry_encoding): This function deleted.
2928 (Fset_fontset_font): Remove the adhoc condition for the default
2929 fontset. Allow cons in FONTNAME.
cebefb44 2930
0f3e0672
KH
2931 * fns.c (map_char_table): Ignore char-table entries for
2932 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 2933
7a18af49
KR
29342000-05-25 Ken Raeburn <raeburn@gnu.org>
2935
2936 * emacs.c (main): Initialize keyboard syms before initializing
2937 window code, so face names are available.
2938
d2af47df
SM
29392000-05-25 Stefan Monnier <monnier@cs.yale.edu>
2940
2941 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
2942 of an anchor at the beginning of a shy-group.
2943
fc6a6a4e
GM
29442000-05-25 Gerd Moellmann <gerd@gnu.org>
2945
2946 * xdisp.c (handle_invisible_prop): Don't try to skip over
2947 invisible text if end of text is already reached.
2948
005f0d35
DL
29492000-05-25 Dave Love <fx@gnu.org>
2950
02513cdd
DL
2951 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
2952
005f0d35
DL
2953 * coding.c (encode_eol): Add null statement after label.
2954
89f6ca4e
EZ
29552000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
2956
2957 * w16select.c (Fw16_set_clipboard_data): Fix the change from
2958 2000-05-20.
2959
a4e1759e
KH
29602000-05-25 Kenichi Handa <handa@etl.go.jp>
2961
2962 * ccl.c (ccl_driver): Fix previous change.
2963
eacfd7fe
KH
29642000-05-25 Kenichi Handa <handa@etl.go.jp>
2965
46ab33a9
KH
2966 * coding.c (run_pre_post_conversion_on_str): Set point to the
2967 beginning of buffer before calling coding->post_read_conversion.
2968 (decode_coding_string): Give correct args to
2969 run_pre_post_conversion_on_str.
2970 (encode_coding_string): Likewise.
2971
eacfd7fe
KH
2972 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
2973 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
2974 eight-bit-graphic correctly.
2975
f8569325
DL
29762000-05-24 Kenichi HANDA <handa@etl.go.jp>
2977
2978 * fileio.c (Finsert_file_contents): Even if a file is not found,
2979 execute codes for setting up coding system. Call
2980 after-insert-file-functions unconditionally.
2981
04545643
GM
29822000-05-24 Gerd Moellmann <gerd@gnu.org>
2983
2984 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
2985 BSD_PGRPS are not defined.
2986
747d90ea
KH
29872000-05-24 Kenichi Handa <handa@etl.go.jp>
2988
2989 * charset.c (update_charset_table): Accept nil in LONG_NAME and
2990 DESCRIPTION.
2991 (syms_of_charset): Avoid building same strings.
2992
716e3b88
GM
29932000-05-23 Gerd Moellmann <gerd@gnu.org>
2994
2995 * lread.c (Fload): Add a comment about the meaning of
2996 Vuser_init_file being t.
2997
2998 * puresize.h (BASE_PURESIZE): Increase to 675000.
2999
3000 * s/gnu-linux.h (setpgrp): Don't define it here because this
3001 prevents compilation on GNU/Linux systems with glib 2.2.
3002
3003 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
3004 as setpgid.
427ec082 3005
9aeb39fa
EZ
30062000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
3007
3008 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
3009 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
3010 version.
3011 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
3012
29ced61b
KH
30132000-05-23 Kenichi Handa <handa@etl.go.jp>
3014
0574a2ed
KH
3015 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
3016 unconditionally.
3017
3d80f24d
KH
3018 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
3019
3020 * term.c (encode_terminal_code): Set coding->src_multibyte
3021 properly.
3022
29ced61b
KH
3023 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
3024
d7e00792
KH
30252000-05-22 Kenichi Handa <handa@etl.go.jp>
3026
c9d80d38
KH
3027 * keyboard.c (read_char): Allow character codes 128..255 to be
3028 handled by input-method-function.
3029
d7e00792
KH
3030 * insdel.c (adjust_markers_for_replace): Fix previous change.
3031 (adjust_after_replace): If PREV_TEXT is nil, call
3032 adjust_markers_for_insert, not adjust_markers_for_replace.
3033
087121cc 30342000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 3035
087121cc
GM
3036 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
3037 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
3038 [HAVE_GRANDPT]: Define.
3039 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
3040
3041 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
3042 like SYSV_PTYS.
3043
3044 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
3045
3046 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
3047
c9671f81
KH
30482000-05-20 Kenichi Handa <handa@etl.go.jp>
3049
3050 The following changes are to handle 8-bit characters in a
3051 multibyte buffer/string without facing with byte combining
3052 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
3053 eight-bit-graphic (for 0xA0..0xFF) are introduced.
3054
3055 * Makefile.in (fns.o): Depend on charset.h.
3056
3057 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
3058 convert it to unibyte.
3059 (make_string): Use parse_str_as_multibyte, not chars_in_text.
3060
3061 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
3062 apparent char boundary.
3063 (Fset_buffer_multibyte): Convert 8-bit characters in the range
3064 0x80..0x9F to/from multibyte form.
3065
3066 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
3067 to unibyte.
3068
3069 * callproc.c (Fcall_process): Always encode an argument string if
3070 it is multibyte. Setup src_multibyte and dst_multibyte members of
3071 process_coding properly.
ce75fd23 3072
c9671f81
KH
3073 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
3074 SPLIT_NON_ASCII_CHAR.
3075
3076 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
3077 as is.
3078 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
3079
3080 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
3081 variables.
3082 (SPLIT_CHARACTER_SEQ): This macro deleted.
3083 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
3084 valid.
3085 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
3086 and eight-bit-graphic.
3087 (char_to_string): Likewise. Signal an error for too large
3088 character code.
3089 (char_printable_p): Return 0 for 8-bit characters.
3090 (update_charset_table): Update iso_charset_table only when a final
3091 character is non-negative.
3092 (find_charset_in_text): Renamed from find_charset_in_str.
3093 Arguments and return value changed. Callers changed.
3094 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
3095 be -1 if CHARSET is used only internally.
3096 (Fmake_char_internal): Handle new charsets; eight-bit-control and
3097 eight-bit-graphic.
3098 (Fcharset_after): Simplified.
3099 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
3100 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
3101 (multibyte_chars_in_text): Simplified by assuming there's no
3102 invalid multibyte sequence.
3103 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
3104 str_as_unibyte): New functions.
3105 (Fstring): Simpified by assuming that byte combining never
3106 happens.
3107 (init_charset_once): Initialization for
3108 LEADING_CODE_8_BIT_CONTROL.
3109 (syms_of_charset): Intern and staticpro Qeight_bit_control and
3110 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
3111 eight-bit-control and eight-bit-graphic.
3112
3113 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
3114 CHARSET_8_BIT_GRAPHIC): New macros.
3115 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
3116 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
3117 (CHARSET_REVERSE_CHARSET): Likewise.
3118 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
3119 eight-bit-graphic.
3120 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
3121 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
3122 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
3123 encounter an invalid multibyte sequence.
3124 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
3125 sequence is always valid.
3126 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
3127 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
3128 macros.
3129 (CHAR_STRING): For 8-bit characters, call char_to_string.
3130 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
3131 multibyte sequence is always valid.
3132 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
3133 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
3134 str_as_unibyte): Extern them.
3135 (BCOPY_SHORT): Fix a bug.
3136 (CHAR_LEN): This macro deleted. Callers changed to use
3137 CHAR_BYTES.
3138 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
3139 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
3140 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
3141
bd4bde7f 3142 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
3143 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
3144 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
3145 EMIT_BYTES): New macros.
3146 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
3147 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
3148 macros deleted.
3149 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
3150 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
3151 check the validity of multibyte sequence.
3152 (decode_coding_emacs_mule): New function.
3153 (encode_coding_emacs_mule): New macro.
3154 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
3155 the source.
3156 (DECODE_ISO_CHARACTER): Just return a character code.
3157 (DECODE_COMPOSITION_START): Set coding->result instead of result.
3158 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
3159 EMIT_CHAR to produced decoded characters. Exit the loop only by
3160 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
3161 block here.
3162 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
3163 only position codes for an invalid character.
3164 (encode_designation_at_bol): Return new destination pointer. 5th
3165 arg DSTP is changed to DST.
3166 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
3167 from the source by ONE_MORE_CHAR. Don't handle the case of last
3168 block here.
3169 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
3170 macros deleted.
3171 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
3172 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
3173 TWO_MORE_BYTES to fetch a byte from the source.
3174 (encode_eol): Pay attention to coding->src_multibyte.
3175 (detect_coding, detect_eol): Preserve members src_multibyte and
3176 dst_multibyte.
3177 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
3178 (encoding_buffer_size): Set magnification to 3 for all coding
3179 systems that require encoding.
3180 (ccl_coding_driver): For decoding, be sure that the result is
3181 valid multibyte sequence.
3182 (decode_coding): Initialize coding->errors and coding->result.
3183 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
3184 and raw-text, always call decode_eol. Handle the case of last
3185 block here. If not coding->dst_multibyte, convert the resulting
3186 sequence to unibyte.
3187 (encode_coding): Initialize coding->errors and coding->result.
3188 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
3189 and raw-text, always call encode_eol. Handle the case of last
3190 block here.
3191 (shrink_decoding_region, shrink_encoding_region): Detect cases
3192 that we can't skip data more rigidly.
3193 (code_convert_region): Setup src_multibyte and dst_multibyte
3194 members of coding. For decoding, if the buffer is multibyte,
3195 convert the source sequence to unibyte in advance. For encoding,
3196 if the buffer is multibyte, convert the resulting sequence to
3197 multibyte afterward.
3198 (run_pre_post_conversion_on_str): New function.
3199 (code_convert_string): Deleted and divided into the following two.
3200 (decode_coding_string, encode_coding_string): New functions.
3201 (code_convert_string1, code_convert_string_norecord): Call one of
3202 above.
3203 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
3204 MAKE_NON_ASCII_CHAR.
3205 (Fset_terminal_coding_system_internal,
3206 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
3207 and dst_multibyte members.
3208 (init_coding_once): Initialize iso_code_class with new enum
3209 ISO_control_0 and ISO_control_1.
3210
3211 * coding.h (enum iso_code_class_type): Member ISO_control_code is
3212 devided into ISO_control_0 and ISO_control_1.
3213 (struct coding_system): New members src_multibyte, dst_multibyte,
3214 errors, and result. Delete member fake_multibyte.
3215 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
3216 nonzero.
3217 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
3218 nonzero.
3219
3220 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
3221 (Faset): Likewise.
3222
3223 * editfns.c (Fformat): Be sure to convert 8-bit characters to
3224 multibyte form.
3225 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
3226 combining occurs.
3227 (Ftranspose_region): Delete codes for handling byte combining.
3228
3229 * fileio.c (Finsert_file_contents): Setup src_multibyte and
3230 dst_multibyte members of coding. On handling REPLACE on unibyte
3231 buffer, convert the result of decode_coding to unibyte. On
3232 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 3233 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
3234 multibyteness of the source (buffer or string).
3235
3236 * fns.c (concat): Handle 8-bit characters correctly.
3237 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
3238 unibyte in the result.
3239 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
3240 valid multibyte form in the result.
3241 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
3242 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
3243 return -1, signal an error.
3244 (base64_encode_1): New arg MULTIBYTE. Get each character by
3245 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
3246 character is found, return -1.
3247 (Fbase64_decode_region): Delete codes for handling byte-combining.
3248 Treat each decoded byte as a unibyte character.
3249 (Fbase64_decode_string): Return unibyte string.
3250 (Fcompare_strings, concat, string_byte_to_char): Use
3251 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
3252 FETCH_STRING_CHAR_ADVANCE.
3253 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
3254 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
3255
3256 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
3257 SPLIT_NON_ASCII_CHAR.
3258 (fontset_ref_via_base, fontset_set): Likewise
3259
3260 * insdel.c (adjust_markers_for_record_delete): Deleted.
3261 (adjust_markers_for_insert): Argument changed. Caller changed.
3262 (adjust_markers_for_replace): Likewise.
3263 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
3264 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
3265 (copy_text): Delete unused local varialbe c_save. For converting
3266 to multibyte, be sure to make all 8-bit characters in valid
3267 multibyte form.
3268 (count_size_as_multibyte): Handle 8-bit characters correctly.
3269 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
3270 adjust_after_replace, replace_range, del_range_2)
3271 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
3272 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
3273 adjust_after_replace, replace_range, del_range_2) Delete codes for
3274 handling byte combining.
3275 (adjust_before_replace): Deleted.
427ec082 3276
c9671f81
KH
3277 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
3278 SPLIT_NON_ASCII_CHAR.
3279 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
3280 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
3281 unconditionally.
3282 (Fkey_description): Likewise.
3283
3284 * lread.c (read1): On reading multibyte string, be sure to make
3285 all 8-bit chararacters in valid multibyte form.
3286 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
3287
3288 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
3289 unconditionally.
3290
3291 * process.c (Fstart_process): GCPRO current_dir before calling
3292 Ffind_operation_coding_system. Encode arguments here.
3293 (create_process): Don't encode arguments here. Setup
3294 src_multibyte and dst_multibyte members of struct coding.
3295 (read_process_output): Setup src_multibyte and dst_multibyte
3296 members of struct coding. If the output is to multibyte buffer,
3297 always decode the output of the process. Adjust the
3298 representation of 8-bit characters to the multibyteness of the
3299 output.
3300 (send_process): Setup coding->src_multibyte according to the
3301 multibyteness of the source.
3302
3303 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
3304 unconditionally.
3305 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
3306 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
3307
3308 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
3309 CHAR_LEN.
3310
3311 * w16select.c (Fw16_set_clipboard_data): Setup members
3312 src_multibyte and dst_multibyte of coding. Adjusted for the
3313 change for find_charset_in_str.
3314 (Fw16_get_clipboard_data): Likewise.
3315
3316 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
3317 dst_multibyte of coding.
3318 (x_to_w32_font): Likewise.
3319
3320 * w32select.c (Fw32_set_clipboard_data): Setup members
3321 src_multibyte and dst_multibyte of coding. Adjusted for the
3322 change for find_charset_in_str.
3323 (Fw32_get_clipboard_data): Likewise.
3324
3325 * xdisp.c (get_next_display_element): Handle 8-bit characters
3326 correctly.
3327 (next_element_from_display_vector): Use CHAR_BYTES instead of
3328 CHAR_LEN.
3329 (disp_char_vector): Use SPLIT_CHAR instead of
3330 SPLIT_NON_ASCII_CHAR.
3331
3332 * xselect.c (selection_data_to_lisp_data): Setup members
3333 src_multibyte and dst_multibyte of coding. Adjusted for the
3334 change for find_charset_in_str.
3335 (lisp_data_to_selection_data): Likewise.
3336
5f64c9e0
GM
33372000-05-19 Gerd Moellmann <gerd@gnu.org>
3338
2b63d473
GM
3339 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
3340 buffer.
3341
5f64c9e0
GM
3342 * dispextern.h (Vimage_types): Add extern declaration.
3343
3344 * xdisp.c (Vimage_types): Moved here from xfns.c.
3345 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
3346
3347 * xfns.c (Vimages_types): Moved to xdisp.c.
3348 (syms_of_xfns): Move `image-types' to xdisp.c.
3349
3350 * w32fns.c (Vimage_types): Removed.
3351 (syms_of_w32fns): Remove `image-types'.
3352
813086ea
KH
33532000-05-18 Kenichi Handa <handa@etl.go.jp>
3354
3355 * fns.c (map_char_table): Pay attention to character number of
3356 charset. Check the validity of charset at the first level. For
3357 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
3358 the default value.
3359
3360 * fontset.c: Include "buffer.h".
3361 (fs_load_font): If the face has fontset, record the face ID in
3362 that fontset.
3363 (Finternal_char_font): New function.
3364 (accumulate_font_info): New function.
3365 (Ffontset_info): Rewritten for the new fontset implementation.
3366 (syms_of_fontset): Register Vdefault_fontset in the first element
3367 of Vfontset_table. Include Vdefault_fontset in
3368 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
3369 function.
3370
bdaebbf0
DL
33712000-05-16 Dave Love <fx@gnu.org>
3372
3373 * m/iris5d.h: Deleted -- unused.
3374
cb613bb8
GM
33752000-05-16 Gerd Moellmann <gerd@gnu.org>
3376
b15f3b77
GM
3377 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
3378 `invalid' instead of `illegal'.
3379
3380 * indent.c (Fmove_to_column): When ending within a tab, insert
3381 spaces first so that markers at the end of the tab get adjusted.
3382
835c1b36
GM
3383 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
3384 buffer list that wasn't selected in that frame.
3385
cb613bb8
GM
3386 * filelock.c (get_boot_time): To obtain an 8 char file name, which
3387 is needed on mescaline, use a 2 char prefix, and call
3388 make_temp_name with second arg non-zero.
3389
3390 * fileio.c (make_temp_name): New function, extracted from
3391 Fmake_temp_name.
3392 (Fmake_temp_name): Use it.
3393
f685bea9
EZ
33942000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
3395
3396 * window.c (coordinates_in_window): Subtract 1 when computing
3397 right_x.
3398
a1b8d58b
GM
33992000-05-15 Gerd Moellmann <gerd@gnu.org>
3400
3401 * Makefile.in (lisp): Add env.elc.
3402
3403 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
3404
a265079f
GM
34052000-05-12 Gerd Moellmann <gerd@gnu.org>
3406
3407 * search.c (Freplace_match): Handle case of `\N' in the
3408 replacement when there's no group N.
3409
da4496b6
GM
34102000-05-11 Gerd Moellmann <gerd@gnu.org>
3411
0ace421a
GM
3412 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
3413 of the message to message_dolog.
3414
1172eb8d
GM
3415 * keyboard.c (read_char): Don't clear current message for help
3416 events; let the code handling help events handle this. Change
3417 code detecting help events that should be ignored.
3418
da4496b6
GM
3419 * xdisp.c (handle_single_display_prop): Don't try to set PT if
3420 we're interating over a string.
3421
0623e40f
DL
34222000-05-09 Dave Love <fx@gnu.org>
3423
3424 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
3425 that offset before writing. Move gcpro region past call of
3426 Ffile_regular_p.
3427
bae2503b
DL
34282000-05-04 Dave Love <fx@gnu.org>
3429
3430 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
3431
ec82fb2f
GM
34322000-05-04 Gerd Moellmann <gerd@gnu.org>
3433
3434 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
3435 of inserted characters when BUF equals the current buffer, and PT
3436 is in front of or equal to FROM.
3437
cbf18892
GM
34382000-05-03 Gerd Moellmann <gerd@gnu.org>
3439
4ff40dd0
GM
3440 * xdisp.c (handle_single_display_prop): If display property value
3441 is invalid, or something not supported on the frame, restore
3442 iterator's position to what it was initially. Make sure to return
3443 0 for invalid and unsupported property values.
3444
cbf18892
GM
3445 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
3446 that x_per_char_metric returns null.
3447
1b0672c3
GM
34482000-05-02 Gerd Moellmann <gerd@gnu.org>
3449
576da55d
GM
3450 * xterm.h (struct face): Add forward declaration.
3451 (struct image): Ditto.
3452 (image_ascent): Add prototype.
3453
3454 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
3455 (x_draw_image_relief, x_draw_image_foreground_1): Call function
3456 image_ascent instead of using IMAGE_ASCENT.
3457
3458 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
3459 (IMAGE_ASCENT): Removed.
3460
3461 * xfns.c (Qcenter): New variable.
3462 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
3463 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
3464 (image_ascent): New function.
3465 (lookup_image): Recognize `:ascent center'.
3466 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
3467 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
3468 (xbm_load): Don't set image's ascent here.
3469 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
3470 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
3471 check ascent values here.
3472 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
3473 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
3474 (syms_of_xfns): Initialize Qcenter.
3475
1b0672c3
GM
3476 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
3477 to the limits, increase the limits.
3478
0d7811ed
KH
34792000-05-01 Kenichi Handa <handa@etl.go.jp>
3480
3481 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
3482 Check Vfont_encoding_alist against the full name of the opened
3483 font.
3484
a943a5ca
GM
34852000-04-28 Gerd Moellmann <gerd@gnu.org>
3486
3487 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
3488 taller than the window.
3489
5dba1e29
KH
34902000-04-28 Kenichi Handa <handa@etl.go.jp>
3491
3492 * xfaces.c (realize_x_face): Fix the argument of the second
3493 xassert. BASE_FACE may not be a face for ASCII.
3494
353964e3
GM
34952000-04-27 Gerd Moellmann <gerd@gnu.org>
3496
c76e04a8
GM
3497 * print.c (print_object): Treat print-length < 0 as nil.
3498
3499 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
3500
3501 * s/freebsd.h (TERMCAP_OBJ): Removed.
3502 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
3503
3504 * lread.c (read1): Don't treat period followed by certain
3505 characters as symbol start.
3506
3507 * xfns.c (slurp_file): New function.
3508 (xbm_image_p): Handle case of in-memory XBM files.
3509 (xbm_scan): Rewritten to work on memory buffers instead of files.
3510 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
3511 Work on memory buffers instead of files. If DATA is null test
3512 if buffer looks like an in-memory XBM file.
3513 (xbm_load_image): Renamed from xbm_load_image_file. Work on
3514 memory buffers instead of files.
3515 (xbm_file_p): New function.
3516 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
3517
353964e3
GM
3518 * lread.c (end_of_file_error): New function.
3519 (read1): Call it instead of signaling `end-of-file' directly.
3520
427ec082 3521 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
3522 with Fprinc instead of Fprin1.
3523
24d744ac
KR
35242000-04-26 Ken Raeburn <raeburn@gnu.org>
3525
3526 * window.c (freeze_window_start): Check that minibuffer scroll
3527 window isn't nil before extracting the window structure pointer
3528 from it.
3529
3530 * undo.c (record_delete): If we hit the end of the undo list, stop
3531 picking elements apart.
3532
7464346d
GM
35332000-04-26 Gerd Moellmann <gerd@gnu.org>
3534
3535 * xdisp.c (display_line): If lines are continued, restore
3536 iterator's ascent/descent information to the values before the
3537 first glyph not fitting on the line.
3538
612839b6
GM
35392000-04-25 Gerd Moellmann <gerd@gnu.org>
3540
3541 * xdisp.c (try_window_id) <all changes above window start>: Adjust
3542 positions in glyph matrix. Don't compute new window end
3543 positions.
3544
3545 * dispnew.c (increment_matrix_positions): Renamed from
3546 increment_glyph_matrix_buffer_positions.
3547 (increment_row_positions): Renamed from
3548 increment_glyph_row_buffer_positions.
3549
3550 * dispextern.h: Change names of renamed functions from dispnew.c
3551 in prototypes.
3552
cc181e95
GM
35532000-04-24 Gerd Moellmann <gerd@gnu.org>
3554
abfcc168
GM
3555 * fileio.c (Fdo_auto_save): Create directories for auto-save
3556 list file if necessary.
3557
cc181e95
GM
3558 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
3559 from buffer or frame.
3560 (automatic_hscrolling_p): New variable.
3561 (hscroll_windows): Scroll windows horizontally only if automatic
3562 hscrolling is allowed.
3563 (syms_of_xdisp): New variable `automatic-hscrolling'.
3564
3565 * frame.h (struct frame): Add member extra_line_spacing.
3566
3567 * xfns.c (x_set_line_spacing): New function.
3568 (Fx_create_frame): Set line spacing from resources.
3569 (Qline_spacing): New variable.
3570 (syms_of_xfns): Initialize Qline_spacing.
427ec082 3571
cc181e95
GM
3572 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
3573
3574 * buffer.c (init_buffer_once): Handle extra_line_spacing.
3575 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 3576 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
3577 extra_line_spacing from default value.
3578 (init_buffer_once): Initialize default value of extra_line_spacing.
3579
3580 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
3581 and extra3.
3582
3583 * xterm.c (x_produce_glyphs): Remove reference to struct it's
3584 prompt_width. Add extra line spacing.
3585
3586 * term.c (produce_glyphs): Remove reference to struct it's
3587 prompt_width.
3588
3589 * dispextern.h (struct it): Remove member prompt_width, add
3590 extra_line_spacing.
3591
58827478
GM
35922000-04-22 Gerd Moellmann <gerd@gnu.org>
3593
3594 * dispnew.c (update_frame_line): When writing a whole line, make
3595 sure cursor is in the right row afterwards, otherwise a use of
3596 capability `ch' in cmgoto might leave the cursor in the row below.
3597
25a87f42
GM
35982000-04-21 Gerd Moellmann <gerd@gnu.org>
3599
3600 * lisp.h (struct Lisp_Buffer_Cons): Remove.
3601
3602 * keyboard.c (timer_check): Fix typo in comment.
3603
54edf5c2
KH
36042000-04-21 Kenichi Handa <handa@etl.go.jp>
3605
3606 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
3607 name change: ch -> character.
3608
3a64eef5
GM
36092000-04-20 Gerd Moellmann <gerd@gnu.org>
3610
3611 * keyboard.c (echo_message_buffer): New variable.
3612 (echo_now): Set echo_message_buffer to the echo area buffer used
3613 to display the echo.
3614 (cancel_echoing): Reset echo_message_buffer to nil.
3615 (read_char): Code rewritten that handles canceling an echo or
3616 echoing a dash, respectively.
3617
3618 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
3619 directory doesn't exist.
3620
6142fdcb
DL
36212000-04-19 Dave Love <fx@gnu.org>
3622
3623 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
3624 (concat): Don't allow numeric args.
3625 (Fconcat): Doc change.
6142fdcb 3626
ac6b5352
SM
36272000-04-19 Stefan Monnier <monnier@cs.yale.edu>
3628
3629 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
3630 instead define end_match(1|2) more carefully.
3631 Use GET_CHAR_BEFORE_2 for `begline'.
3632
cb9215e4
GM
36332000-04-19 Gerd Moellmann <gerd@gnu.org>
3634
5e3dac3f
GM
3635 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
3636 on 64-bit systems where NULL is defined as `0'.
3637
3638 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
3639 the `variable argument list' to make it work on Alpha.
3640
cb9215e4
GM
3641 * m/alpha.h (_LP64) [!_LP64]: Define.
3642 (ORDINARY_LINK): Define for NetBSD.
3643
3644 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 3645
f532dca0
DL
36462000-04-19 Dave Love <fx@gnu.org>
3647
c750667e
DL
3648 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
3649 change.
3650
3651 * Makefile.in (LIBS): Don't use.
3652 (GETLOADAVG_OBJ): Define again.
3653 (otherobj): Add GETLOADAVG_OBJ.
3654
f532dca0
DL
3655 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
3656
1c7e22fd
GM
36572000-04-18 Gerd Moellmann <gerd@gnu.org>
3658
f6d3257b
GM
3659 * lread.c (read_filtered_event): Cancel and start busy cursor.
3660
427ec082 3661 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
3662 that the per-character metrics may be null.
3663
e10f64e7
GM
36642000-04-17 Gerd Moellmann <gerd@gnu.org>
3665
0daee095
GM
3666 * buffer.c (clone_per_buffer_values): New function.
3667 (Fmake_indirect_buffer): Add optional argument CLONE. Call
3668 clone_per_buffer_values if CLONE is not nil.
3669
e10f64e7
GM
3670 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
3671
38687d43
DL
36722000-04-16 Dave Love <fx@gnu.org>
3673
3674 * Makefile.in: Remove obsolete localcpp stuff.
3675 (GETLOADAVG_OBJ): Don't define.
3676 (obj): Move LIBOBJS...
3677 (otherobj): ... to here.
3678 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
3679 whitespace-only lines after the continuation (Irix).
3680
c21c7262
GM
36812000-04-14 Gerd Moellmann <gerd@gnu.org>
3682
3683 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
3684
3685 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
3686
314767c0
DL
36872000-04-14 Dave Love <fx@gnu.org>
3688
3689 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
3690 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
3691 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
3692 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
3693 NLIST_STRUCT.
3694
3695 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
3696 autoconfiscated HAVE_GETLOADAVG.
3697
3698 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
3699 BROKEN_MKTIME.
3700
a2522dca
GM
37012000-04-14 Gerd Moellmann <gerd@gnu.org>
3702
3703 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
3704 (fill_in_lock_file_name): Avoid existing files that aren't
3705 links.
3706
33744b5d
DL
37072000-04-14 Dave Love <fx@gnu.org>
3708
c21c7262 3709 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
3710 (INTERVAL_SRC): Convert to make variable.
3711 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
3712 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
3713 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
3714 add LIBOBJS.
3715 (SOME_MACHINE_OBJECTS): Remove interval stuff.
3716 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
3717 (shortlisp): Add facemenu, float-sup, frame.
3718 (SOME_MACHINE_LISP): Remove them from here.
3719 (LIBES): Change unused LDLIBS to autoconf LIBS.
3720
3721 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
3722
9d3d5916
KH
37232000-04-14 Kenichi Handa <handa@etl.go.jp>
3724
3725 * composite.c (update_compositions): If FROM and TO are not in a
3726 valid range, do nothing.
3727
198e3c7a
GM
37282000-04-13 Gerd Moellmann <gerd@gnu.org>
3729
3730 * tparam.c (tparam1): Abort when encountering an unknown
3731 `%'-specifier.
3732
3733 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
3734 terminfo.o.
3735
3736 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
3737 as TERMCAP_OBJ.
3738
055a28c9
EZ
37392000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
3740
3741 * fileio.c (a_write): Remove redundant semi-colons.
3742 (e_write): Return -1 if failed to write all the data.
3743 This fixes the changes made at 1999-12-15.
3744
f5c75033
DL
37452000-04-12 Dave Love <fx@gnu.org>
3746
3747 * fns.c (mapcar1): Test for null vals to support mapc.
3748 (Fmapc): New function.
3749
0c3cfc51
EZ
37502000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
3751
3752 * msdos.c (NUM_MOUSE_BUTTONS): Define.
3753 (IT_frame_up_to_date): Support the buffer local value of
3754 cursor-type, if defined.
3755
33465a31
DL
37562000-04-10 Dave Love <fx@gnu.org>
3757
3758 * editfns.c (preceding-char, following-char): Doc fix.
3759
6ed56568
KR
37602000-04-10 Ken Raeburn <raeburn@gnu.org>
3761
3762 * Makefile.in (temacs): Revert 2000-03-12 change.
3763
7cf80d4e
JR
37642000-04-10 Jason Rumney <jasonr@gnu.org>
3765
3766 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
3767
34f3f342
GM
37682000-04-10 Gerd Moellmann <gerd@gnu.org>
3769
1a1b1895
GM
3770 * xdisp.c (setup_echo_area_for_printing): Choose an echo
3771 area buffer, if it's not set up yet.
3772
34f3f342
GM
3773 * indent.c (compute_motion): Set immediate_quit.
3774
be0dbdab
GM
37752000-04-09 Gerd Moellmann <gerd@gnu.org>
3776
c45be9ac
GM
3777 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
3778 variable.
3779 (realize_tty_face): Suppress boldness if colors are the inverse of
3780 the default colors, and tty_suppress_bold_inverse_default_colors_p
3781 is set.
3782 (Ftty_suppress_bold_inverse_default_colors): New function.
3783 (syms_of_xfaces): Defsubr it.
3784
be0dbdab
GM
3785 * buffer.c (Frestore_buffer_modified_p): New function.
3786 (syms_of_buffer): Defsubr it.
3787
e8413c3b
KR
37882000-04-08 Ken Raeburn <raeburn@gnu.org>
3789
87f67317
KR
3790 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
3791 charset id (int) argument, not a charset (Lisp_Object).
3792
e8413c3b
KR
3793 * coding.h (code_convert_string): Declare.
3794 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
3795 object, as the fourth argument to code_convert_string.
3796
3797 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
3798 value.
3799 (Fset_fontset_font): Use EQ to compare lisp objects.
3800
7c752c80
KR
38012000-04-05 Ken Raeburn <raeburn@gnu.org>
3802
c0333abc
KR
3803 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
3804 a pointer that looks like a lisp object.
3805 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
3806 zero, instead see whether it's an integer object, since they can't
3807 have intervals.
3808 (GET_INTERVAL_OBJECT): Simply assign to the destination.
3809
7c752c80
KR
3810 * dispnew.c (allocate_matrices_for_frame_redisplay,
3811 direct_output_forward_char): Use X(U)INT and make_number as needed
3812 to convert between (unsigned) int values and lisp integers.
3813 * keyboard.c (read_key_sequence): Likewise.
3814 * lread.c (substitute_object_recurse): Likewise.
3815 * fns.c (concat, hash_lookup, hash_remove): Likewise.
3816 * minibuf.c (do_completion, Fminibuffer_complete_word,
3817 Fminibuffer_completion_help): Likewise.
3818 * term.c (produce_special_glyphs): Likewise.
3819
3820 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
3821 * print.c (print_preprocess, print_object): Likewise.
3822
3823 * search.c (compile_pattern): Use NILP when checking for nil.
3824
74e49b38
KR
3825 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
3826 __OPTIMIZE__]: Provide a GNU C macro version that handles
3827 lisp-object unions.
3828 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
3829 field, to better cope with ENABLE_CHECKING and calls that modify a
3830 Lisp_Object using its old value.
3831
685e5ed2
GM
38322000-04-04 Gerd Moellmann <gerd@gnu.org>
3833
c407c570
GM
3834 * window.c (compare_window_configurations): Signal an error
3835 if parameters C1 or C2 aren't window configurations.
3836
685e5ed2
GM
3837 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
3838 AFTER_POTENTIAL_GC calls around calls to functions that can
3839 signal an error and thus invoke the debugger.
3840
587a49ab
GM
38412000-04-03 Gerd Moellmann <gerd@gnu.org>
3842
62f20204
GM
3843 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
3844 an error if decoding fails.
3845
587a49ab
GM
3846 * keyboard.c (lispy_mouse_names): Variable removed.
3847 (Vlispy_mouse_stem): New variable.
3848 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
3849 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
3850 for any mouse button number. Increase size of mouse_syms and
3851 button_down_location as needed. Call modify_event_symbol with
3852 different arguments.
3853 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
3854 Call modify_event_symbol with different arguments.
3855 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
3856 for any button number. Call modify_event_symbol with different
3857 arguments.
3858 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
3859 Accept a string for NAME_ALIST_OR_STEM.
3860
3861 * lisp.h (larger_vector): Add prototype.
3862
3863 * fns.c (larger_vector): Make externally visible.
3864
3865 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
3866
2d1675e4
SM
38672000-04-02 Stefan Monnier <monnier@cs.yale.edu>
3868
3869 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
3870 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
3871 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
3872 we are between str1 and str2.
3873 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
3874 (PATFETCH): Use `TRANSLATE'.
3875 (PATFETCH_RAW): Fetch multibyte char if applicable.
3876 (PATUNFETCH): Remove.
3877 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
3878 When writing a char, write it directly into the pattern buffer rather
3879 than going needlessly through a temp char-array.
3880 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
3881 multibyte magic and remove the useless `#ifdef emacs'.
3882 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
3883 buffer.
3884
3885 * regex.h (struct re_pattern_buffer): Make field `multibyte'
3886 conditional on `emacs'.
3887
3888 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
3889
cc2d8c6b
KR
38902000-04-01 Ken Raeburn <raeburn@gnu.org>
3891
3892 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
3893 non-union-type versions of XMARK and friends here, because XMARK
3894 and friends won't work on an integer field if NO_UNION_TYPE is not
3895 defined.
3896 (make_number): Define as a function if it's not defined as a
3897 macro.
3898
09654086
KR
3899 * composite.c (run_composite_function): Use NILP when checking for
3900 nil.
3901 (syms_of_composite): Delete local var NARGS, pass an int as first
3902 argument to Fmake_hash_table.
3903
2387b382
KR
3904 * editfns.c (text_property_stickiness): Use NILP to test
3905 Lisp_Object boolean value.
3906 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
3907 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
3908 problems reading from and changing the same lisp value in an
3909 XSETSTRING call.
3910
27660e89
GM
39112000-04-01 Gerd Moellmann <gerd@gnu.org>
3912
3913 * term.c (TN_no_color_video): New variable.
3914 (term_init): Intitialize TN_no_color_video.
3915 (enum no_color_bit): New enumeration.
3916 (MAY_USE_WITH_COLORS_P): New macro.
3917 (turn_on_face): Use it to determine if attributes may be used
3918 combined with colors.
3919
3578db3c
KR
39202000-04-01 Ken Raeburn <raeburn@gnu.org>
3921
3922 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
3923 with int lvalues via casts; instead, just yield lisp object
3924 lvalues.
3925 (enlarge_window): Variable sizep now points to Lisp_Object. Use
3926 proper accessor macros.
3927 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
3928 (grow_mini_window): Fix typo getting int value of root->height.
3929
6fc556fd
KR
3930 * xdisp.c (compute_string_pos): Fix order of arguments to
3931 string_pos_nchars_ahead.
3932 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
3933 count arg to variable-arg routines like Frun_hook_with_args and
3934 Fformat.
587a49ab
GM
3935 (back_to_previous_visible_line_start)
3936 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
3937 fixed-arg routines like Fget_char_property and Fmake_string.
3938 (reconsider_clip_changes): Use XINT when comparing integer lisp
3939 objects, or passing them as int arguments.
587a49ab
GM
3940 (mark_window_display_accurate, insert_left_trunc_glyphs)
3941 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
3942 storing or passing integer values as lisp objects.
3943 (set_cursor_from_row, highlight_trailing_whitespace): Use
3944 INTEGERP, not implicit test against zero, for glyph object.
3945 (try_window_id): Don't use make_number when we want an int value.
3946
3947 * xfaces.c (xlfd_symbolic_value): Make last argument a
3948 Lisp_Object, to be consistent with callers.
3949 (Fbitmap_spec_p): Use XINT to get numeric value of height.
3950 (lface_hash): Apply XFASTINT to lisp values before folding in.
3951
3952 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
3953 fill in window width and height. Pass an int, not a lisp object,
3954 as first arg to Finsert.
3955
6e7b2457
GM
39562000-04-01 Gerd Moellmann <gerd@gnu.org>
3957
610d841e
GM
3958 * xfaces.c (realize_basic_faces): Block input while realizing
3959 the faces.
3960
6e7b2457
GM
3961 * keyboard.c (lispy_mouse_names): Add additional mouse names.
3962
3963 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
3964
aa110c0c
GM
39652000-03-31 Gerd Moellmann <gerd@gnu.org>
3966
3967 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 3968 or ASCII, handle case that per-char metric is null.
aa110c0c 3969
8801a864
KR
39702000-03-30 Ken Raeburn <raeburn@gnu.org>
3971
c6129d7e
KR
3972 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
3973
8801a864
KR
3974 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
3975 XSUBR, XBUFFER): Verify correct object type before returning
3976 pointer, using eassert.
3977 * frame.h (XFRAME): Likewise.
3978
3979 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
3980 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
3981 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
3982 type.
3983 * data.c (set_internal): Likewise.
3984 * dispextern.h (WINDOW_WANTS_MODELINE_P,
3985 WINDOW_WANTS_HEADER_LINE_P): Likewise.
3986 * fileio.c (auto_save_1): Likewise.
3987 * insdel.c (check_markers): Likewise.
3988 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
3989 * undo.c (record_insert): Likewise.
3990 * vmsproc.c (child_sig): Likewise.
3991 * window.c (unshow_buffer, window_loop): Likewise.
3992 * xterm.c (x_erase_phys_cursor): Likewise.
3993
8e7af858
GM
39942000-03-30 Gerd Moellmann <gerd@gnu.org>
3995
3996 * xfns.c (free_image_cache): Free the cache structure itself
3997 last, after all its members have been freed.
3998
3999 * lisp.h (xstrdup): Add prototype.
4000
4001 * alloc.c (xstrdup): Moved here from xfaces.c.
4002 (allocating_for_lisp): Variable removed.
4003 (lisp_malloc): Block input around the calls to malloc and
4004 mem_insert.
4005
4006 * xfaces.c (realize_tty_face): Use find_symbol_value instead
4007 of Fsymbol_value.
4008 (xstrdup): Moved to alloc.c.
4009
e0b8c689
KR
40102000-03-29 Ken Raeburn <raeburn@gnu.org>
4011
b96f9fb7
KR
4012 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
4013
4014 * emacs.c (main): Fix sense of no-loadup test.
4015
e0b8c689
KR
4016 * config.in (ENABLE_CHECKING): Undef.
4017
4018 * lisp.h (struct interval): Replace "parent" field with a union of
4019 interval pointer and Lisp_Object; add new bitfield to use as
4020 discriminant. Change other flag fields to bitfields.
4021 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
4022 is defined and the supplied test fails, print a message and
4023 abort.
4024 (eassert): New macro. Use CHECK to provide an assert-like
4025 facility.
4026
4027 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
4028 pointers; abort if the value looks like a lisp object.
4029 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
4030 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
4031 Modify for new interval parent definition.
4032
4033 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
4034 UNMARK_BALANCE_INTERVALS): Update references that need an
4035 addressable lisp object in the interval structure.
4036 (die): New function.
4037 (suppress_checking): New variable.
4038
4039 * intervals.c (interval_start_pos): Just return 0 if there's no
4040 parent object.
4041
f83c5440
GM
40422000-03-29 Gerd Moellmann <gerd@gnu.org>
4043
4044 * lread.c (read1): Accept `.' (period) as symbol start like in CL
4045 and earlier Emacs versions.
4046
4047 * keyboard.c (Ftop_level): Cancel busy-cursor.
4048
4049 * eval.c (call_debugger): Cancel busy-cursor.
4050
fdce64ff
KH
40512000-03-29 Kenichi Handa <handa@etl.go.jp>
4052
4053 * search.c (Freplace_match): Adjust multibyteness of the current
4054 buffer and NEWTEXT. Free allocated memory before signaling an
4055 error.
4056
f6a3f532
SM
40572000-03-28 Stefan Monnier <monnier@cs.yale.edu>
4058
4059 * regex.c (analyse_first): New function obtained by ripping out most
4060 of re_compile_fastmap and generalizing it a little bit so that it
4061 can also just return whether a given (sub)pattern can match the empty
4062 string or not.
4063 (regex_compile): Use `analyse_first' to decide whether the loop-check
4064 needs to be done or not for *, +, *? and +? (the loop check is costly
4065 for non-greedy repetition).
4066 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
4067
e9b309ac
DL
40682000-03-28 Dave Love <fx@gnu.org>
4069
bb15bd9a
DL
4070 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
4071 alpha.
4072
e9b309ac
DL
4073 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
4074
ed0767d8
SM
40752000-03-27 Stefan Monnier <monnier@cs.yale.edu>
4076
4077 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
4078 an expression.
4079 (enum re_opcode_t): Update description of succeed_n.
4080 (PATFETCH): Always define.
4081 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
4082 operators, char classes, shy-groups and intervals).
4083 Optimize special cases of intervals so as to only use succeed_n and
4084 jump_n when really needed.
4085 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
4086 that we don't have to handle the special cases any more.
4087 Simplify on_failure_jump handling as well.
4088
e11e7e46
JR
40892000-03-28 Jason Rumney <jasonr@gnu.org>
4090
4091 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
4092
88faab89
GM
40932000-03-27 Gerd Moellmann <gerd@gnu.org>
4094
182ff242
GM
4095 * s/freebsd.h (GC_SETJMP_WORKS): Define.
4096
4097 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 4098
182ff242
GM
4099 * alloc.c (mark_maybe_object): New function.
4100 (mark_memory): Use it.
4101 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
4102 (setjmp_tested_p, longjmp_done): New variables.
4103 (test_setjmp): New function.
4104 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
4105 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
4106
c1005d06
GM
4107 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
4108 to DEC_TEXT_POS and INC_TEXT_POS.
4109
4110 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
4111 with parameter MULTIBYTE_P.
4112
427ec082 4113 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
4114 MULTIBYTE_P.
4115
7439e5b9 4116 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
4117 buffers because it looks for multibyte character byte sequences
4118 which don't exist in unibyte text.
7439e5b9 4119
d9c545da
GM
4120 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
4121
11fd416e 4122 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
4123 [DEBUG_X_COLORS]: New functions.
4124 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
4125
4126 * xfns.c (x_set_cursor_color): Get color reference counts right.
4127
4128 * xterm.c (x_copy_color): New function.
4129 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
4130
4131 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
4132 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
4133 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
4134 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
4135 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
4136 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
4137 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
4138 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
4139 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
4140 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
4141
11fd416e
GM
4142 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
4143 names for handling per-buffer variables.
d9c545da
GM
4144
4145 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
4146 instead of MAX_BUFFER_LOCAL_VARS.
4147 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
4148
4149 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
4150
88faab89
GM
4151 * xfns.c (x_specified_cursor_type): New function.
4152 (x_set_cursor_type): Use it.
4153
4154 * buffer.h (struct buffer): Add cursor_type.
4155
d80f42b7
SM
41562000-03-26 Stefan Monnier <monnier@cs.yale.edu>
4157
4158 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 4159 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 4160 opcode.
d80f42b7
SM
4161 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
4162 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
4163 executing it as well as when popping it off the stack to find infinite
4164 loops in non-greedy repetition operators.
4165
89e80928
GM
41662000-03-26 Gerd Moellmann <gerd@gnu.org>
4167
3d4ff2dd
GM
4168 * doc.c (Qfunction_documentation): New variable.
4169 (syms_of_doc): Initialize Qfunction_documentation.
4170 (Fdocumentation): If FUNCTION is a symbol with non-nil
4171 `function-documentation' property, return a documentation derived
4172 from that.
4173
bd96bd79
GM
4174 * buffer.c (syms_of_buffer): Add default-cursor-type.
4175 (init_buffer_once): Don't let cursor_type have a local value
4176 in every buffer.
4177
19d1bc27
GM
4178 * xterm.c (x_display_and_set_cursor): Choose cursor depending
4179 on buffer-local value of cursor_type.
4180 (x_draw_bar_cursor): Add parameter WIDTH.
4181
4182 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
4183 (init_buffer_once): Set default cursor_type value to t.
4184 Mark cursor_type as local everywhere.
4185 (syms_of_buffer): New per-buffer variable cursor-type.
4186
89e80928
GM
4187 * buffer.h (struct buffer): Remove member local_var_flags,
4188 add local_flags.
4189 (MAX_BUFFER_LOCAL_VARS): New macro.
4190 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
4191 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
4192 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
4193 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
4194
4195 * print.c (print_object): Use new macros for per-buffer
4196 variables.
4197
4198 * category.c (Fset_category_table): Use new macros for per-buffer
4199 variables.
4200
4201 * buffer.c (buffer_permanent_local_flags): Make a char array.
4202 (max_buffer_local_idx): New variable.
4203 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
4204 for new handling of per-buffer variables.
4205 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
4206 (init_buffer_once): Initialize per-buffer vars differently.
4207 Set max_buffer_local_idx.
4208
4209 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
4210 variables.
4211
4212 * lread.c (defvar_per_buffer): Use new macros for per-buffer
4213 variables.
4214
4215 * data.c (do_symval_forwarding, store_symval_forwarding)
4216 (find_symbol_value, set_internal, default_value, Fset_default)
4217 (Fkill_local_variable, Flocal_variable_p): Use new macros for
4218 per-buffer variables.
4219
4220 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
4221
9a0dd3dc
GM
42222000-03-24 Gerd Moellmann <gerd@gnu.org>
4223
b68c375f
GM
4224 * xterm.c (x_term_init): Unblock input around call1 of
4225 Qvendor_specific_keysyms.
4226
9a0dd3dc
GM
4227 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
4228 (find_defun_start): Consider an open parenthesis in column 0
4229 a defun start only if open_paren_in_column_0_is_defun_start is set.
4230 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
4231
7973e637
SM
42322000-03-24 Stefan Monnier <monnier@cs.yale.edu>
4233
4234 * eval.c (Fautoload): Add entry in load-history (if after dump).
4235 * lread.c (load-history): Update docstring.
4236
39210e90
GM
42372000-03-24 Gerd Moellmann <gerd@gnu.org>
4238
4239 * indent.c (Fvertical_motion): Always use the current buffer.
4240 Temporarily change the window's buffer, if necessary.
4241
72db3ab5
GM
42422000-03-23 Gerd Moellmann <gerd@gnu.org>
4243
4244 * xterm.c (fast_find_position): Make sure not to consider rows
4245 not visible in the window.
4246
990b2375
SM
42472000-03-22 Stefan Monnier <monnier@cs.yale.edu>
4248
4249 * regex.c (enum syntaxcode): Provide default for non-Emacs.
4250 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
4251
ff4df011
JR
42522000-03-22 Jason Rumney <jasonr@gnu.org>
4253
4254 * w32menu.c (single_submenu): Set help string to NULL if none.
4255 (w32_menu_show): Set help string correctly.
4256 (add-menu-item): Set help string in MIIM_DATA for menu item.
4257 Load SetMenuItemInfoA explicitly.
4258 (w32_menu_display_help): New function.
427ec082 4259
ff4df011
JR
4260 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
4261 (QCdata): Moved to xdisp.c.
4262
4263 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
4264 (Vw32_charset_to_codepage_alist): Removed.
4265 (Vw32_charset_info_alist): New variable.
4266 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
4267 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
4268 greek, hebrew, thai, johab, mac, unicode]): New symbols.
4269 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
4270 with TODO comment.
4271 (w32_codepage_for_font): Use Vw32_charset_info_alist.
4272 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
4273 Define Vw32_charset_info_alist and w32_charset symbols.
4274
42752000-03-22 Jason Rumney <jasonr@gnu.org>
4276
4277 * makefile.nt (w32bdf.obj): Update dependencies.
4278
4279 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
4280
4281 * w32fns.c: Include fontset.h after dispextern.h.
4282 (Fx_create_frame): Do not create fontset.
4283 (w32_load_system_font): Doc fix.
4284 (Fx_close_connection): Free full_name if it is not shared.
4285
4286 * w32term.c: Include fontset.h after dispextern.h.
4287 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
4288 updated.
4289 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
4290 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
4291 (w32_font_is_double_byte): New function, needs body.
4292 (x_append_glyph): Set glyph->glyph_not_available_p.
4293 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
4294 it->charset. If it->multibyte_p is zero and it->c is a multibyte
4295 character, convert it to a unibyte character.
4296 (struct glyph_string): Delete member `charset'.
4297 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
4298 calculating it is found.
4299 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
4300 the case that per char metric is not available correctly.
4301 (x_fill_glyph_string): Handle the case that the specific glyph is
4302 not available correctly.
4303 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
4304 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
4305 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
4306 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
4307 fontset. Don't call FS_LOAD_FONT.
4308
439d5cb4
KR
43092000-03-22 Ken Raeburn <raeburn@gnu.org>
4310
4311 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
4312 (INT_LISPLIKE): New macro.
4313 (NULL_INTERVAL_P): Use it.
4314 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
4315 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
4316 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
4317
4318 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
4319 explicit references to "parent" field of struct interval and
4320 associated unclean type conversions.
4321 * intervals.c (create_root_interval, root_interval, rotate_right,
4322 rotate_left, balance_possible_root_interval, split_interval_right,
4323 split_interval_left, interval_start_pos, find_interval,
4324 next_interval, previous_interval, update_interval,
4325 adjust_intervals_for_insertion, delete_node, delete_interval,
4326 adjust_intervals_for_deletion, merge_interval_right,
4327 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
4328 copy_intervals_to_string): Likewise.
4329 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
4330 Likewise.
4331 * syntax.c (update_syntax_table): Likewise.
4332
4333 * intervals.c (reproduce_tree_obj): New function, like
4334 reproduce_tree but takes a Lisp_Object for the parent. Declare
4335 with prototype.
4336 (graft_intervals_into_buffer): Use it when appropriate.
4337 (reproduce_tree): Declare with prototype.
4338 (balance_possible_root_interval): Check that the parent is a lisp
4339 object before trying to examine its type.
4340
ee1c5b21
GM
43412000-03-22 Gerd Moellmann <gerd@gnu.org>
4342
4343 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
4344 as strings only if both are known to be strings.
4345
4346 * s/openbsd.h (LIBS_TERMCAP): Undef.
4347
1fb352e0
SM
43482000-03-21 Stefan Monnier <monnier@cs.yale.edu>
4349
4350 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
4351 definitions for non-Emacs compilation.
4352 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
4353 outside of `#ifdef emacs'.
4354 (print_partial_compiled_pattern): Update.
4355 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
4356 (re_compile_fastmap): Merge handling of charset and charset_not (for
4357 emacs and non-emacs compilation as well).
4358 Similarly for (not)categoryspec and (not)syntaxspec.
4359 Don't use the fastmap when reaching `anychar' since the added
4360 complexity is not justified.
4361 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
4362 and (not)syntaxspec. Merge (not)categoryspec.
4363
fdaa1f77
KH
43642000-03-22 Kenichi Handa <handa@etl.go.jp>
4365
ff1a0d8e
KH
4366 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
4367 FACE_FOR_CHAR): Define them differently for the configuration of
4368 --without-x.
fdaa1f77 4369
d152fb46
DL
43702000-03-21 Dave Love <fx@gnu.org>
4371
4372 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
4373 doc string.
4374
d2cafc8c
GM
43752000-03-21 Gerd Moellmann <gerd@gnu.org>
4376
4377 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
4378 (lface_fully_specified_p): Don't check contents of
4379 LFACE_FONT_INDEX because that attribute is optional.
4380 (realize_x_face): Remove now unwarranted xassert.
4381
9111d4b5
KH
43822000-03-21 Kenichi HANDA <handa@etl.go.jp>
4383
4384 The following changes are to make font selection based on
4385 characters, not charset. In addition, they recover fontset
4386 facilities while utilizing the new font selection mechanism.
4387
6c4bfdc0
KH
4388 * Makefile.in (fontset.o): Depend on dispextern.h.
4389
4390 * alloc.c (mark_face_cache): Don't mark face->registry.
4391
9111d4b5
KH
4392 * dispextern.h (struct glyph): New member glyph_not_available_p.
4393 Use 22 bits for face_id.
4394 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
4395 (struct face): Delete member registry, new member ascii_face.
4396 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
4397 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
4398 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
4399 (struct it): Delete member charset, new member
4400 glyph_not_available_p.
4401
4402 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
4403 (struct fontset_info, struct fontset_data): Structs removed.
4404 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
4405 Vglobale_fontset_alist, font_idx_temp): Externs removed.
4406 (fs_load_font, fs_query_fontset): Adjusted for new argument.
4407 (fs_free_face_fontset, fontset_font_pattern,
4408 face_suitable_for_char_p, face_for_char,
4409 make_fontset_for_ascii_face): Extern them.
4410 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
4411 (FS_LOAD_FACE_FONT): New macro.
4412
4413 * fontset.c: All codes rewritten or adjusted for the change of
4414 fontset implementation. Now fontset is represented by char table.
4415 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
4416 removed.
4417 (my_strcasecmp): Function removed.
4418 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
4419 variables.
4420 (AREF, ASIZE): New macros.
4421 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
4422 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
4423 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
4424 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
4425 fontset_id_valid_p, font_family_registry, fontset_name,
4426 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
4427 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
4428 New functions.
4429 (fs_load_font): New arg FACE. Caller changed.
4430 (fs_query_fontset): Argument changed. Caller changed.
4431 (Fquery_fontset): call fs_query_fontset.
4432 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
4433 Functions removed.
4434 (clear_fontset_elements, check_registry_encoding,
4435 check_fontset_name): New functions.
4436 (syms_of_fontset): Set char-table-extra-slots property of fontset
4437 to 3. Staticpro and initialize Vfontset_table and
4438 Vdefault_fontset. Defsubr fontset_font and fontset_list.
4439
4440 * frame.h (struct frame): Member `fontset_data' removed.
4441 (FRAME_FONTSET_DATA): Macro removed.
4442
4443 * frame.c (make_frame): Don't allocate f->fontset_data.
4444 (Fdelete_frame): Don't free f->fontset_data.
4445
6c4bfdc0
KH
4446 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
4447
9111d4b5
KH
4448 * xdisp.c (charset_at_position): Function removed.
4449 (init_iterator): Don't set member charset of struct `it'.
4450 (handle_face_prop, reseat_to_string, set_iterator_to_next,
4451 next_element_from_display_vector, insert_left_trunc_glyphs):
4452 Likewise.
4453 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
4454 FACE_FOR_CHARSET.
4455 (get_next_display_element, append_space,
4456 extend_face_to_end_of_line): Likewise.
4457
4458 * xfaces.c (Qx_charset_registry, Vface_default_registry):
4459 Variables removed.
4460 (clear_font_table, frame_update_line_height, load_face_font):
4461 Adjusted for the change of fontset implementation.
4462 (load_face_fontset_font): Function removed.
4463 (pixel_point_size): New function.
4464 (font_list): Argument type changed. Caller changed.
4465 (LFACE_FONT): New macro.
4466 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
4467 (set_lface_from_font_name): Type of arg FONTNAME is changed to
4468 Lisp_Object. Determine the font name by actually loading a font
4469 by the specified pattern. Set LFACE_FONT (lface) to the specified
4470 pattern. Even if a font is not found, don't try alternatives.
4471 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
4472 (set_font_frame_param): If `font' is specified in lface, use it.
4473 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
4474 (lface_same_font_attributes_p): Likewise.
4475 (make_realized_face): Arguent changed. Caller changed. Set
4476 face->ascii_face to face itself.
4477 (free_realized_face): Free face->fontset if face is for ASCII.
4478 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
4479 deduce_unibyte_registry, x_charset_registry): Functions removed.
4480 (free_realized_multibyte_face): New function.
4481 (lookup_face, lookup_named_face, lookup_derived_face): Argument
4482 changed. Caller changed.
4483 (try_font_list): Argument type changed.
4484 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
4485 (choose_face_font): Argument changed. Handle fontset properly.
4486 (choose_face_fontset_font): Function removed.
4487 (realize_default_face, realize_named_face): Don't remove the
4488 former face here.
4489 (realize_face): Argument changed. Caller changed. Remove face
4490 with the arg former_face_id in advance. Load font for the new
4491 face.
4492 (realize_x_face): Argument changed. Caller changed. For a
4493 multibyte character, share fontset with base_face. For a single
4494 byte character, make a new realized fontset. Don't load a font
4495 here.
4496 (realize_tty_face): Argument changed. Caller changed.
4497 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
4498 (face_at_buffer_position): Don't check multibyte_p for returning
4499 DEFAULT_FACE_ID.
4500 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
4501 FACE_SUITABLE_FOR_CHARSET_P.
4502 (syms_of_xfaces): Remove code for Qx_charset_registry and
4503 Vface_default_registry.
4504
6c4bfdc0
KH
4505 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
4506 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
4507 (x_per_char_metric): Don't try FONT->default_char. Even if
4508 pcm->width is zero, glyph bits may exist.
4509 (x_encode_char): Always initialize char2b->byte1.
4510 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
4511 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
4512 changed.
4513 (x_append_glyph): Set glyph->glyph_not_available_p.
4514 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
4515 it->charset. Handle the case that per char metric is not
4516 available. If it->multibyte_p is zero and it->c is a multibyte
4517 character, convert it to a unibyte character.
4518 (struct glyph_string): Delete member `charset'.
4519 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
4520 the case that per char metric is not available correctly.
4521 (x_fill_glyph_string): Handle the case that the specific glyph is
4522 not available correctly.
4523 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
4524 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
4525 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
4526 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
4527 fontset. Don't call FS_LOAD_FONT.
4528
4529 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
4530 (x_create_tip_frame): Likewise.
4531 (Fx_close_connection): Free full_name of font_info.
4532
4533 * fns.c (optimize_sub_char_table): New function.
4534 (Foptimize_char_table): New function.
4535 (syms_of_fns): Defsubr Soptimize_char_table.
4536
b33dd3b0
GM
45372000-03-20 Gerd Moellmann <gerd@gnu.org>
4538
4539 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
4540 only if buffer is displayed in some window.
4541
4542 * xdisp.c (handle_single_display_prop): Initialize local `value'.
4543 (try_window_reusing_current_matrix): Don't call scroll run
4544 function if run's current and desired position are the same;
4545 this prevents cursor flickering.
4546
4e8a9132
SM
45472000-03-19 Stefan Monnier <monnier@cs.yale.edu>
4548
4549 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
4550
4551 * regex.c (RE_STRING_CHAR): New macro.
4552 (GET_CHAR_AFER_2): Remove.
4553 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
4554 (enum re_opcode_t): Remove on_failure_jump_exclusive.
4555 (print_partial_compiled_pattern, re_compile_fastmap)
4556 (re_match_2_internal): Remove on_failure_jump_exclusive.
4557 (regex_compile): Turn optimizable P+ loops into PP*, so that the
4558 optimization only need to work for * (ie. can use of_keep_string_jump).
4559 Remove the special case for .*\n since it is now covered by the general
4560 optimization.
4561 (re_search_2): Don't bother with `room'.
4562 (skip_one_char): New function.
4563 (skip_noops): Simplify since `memory' is not needed any more.
4564 (mutually_exclusive_p): Restructure slightly to use `switch' and
4565 add handling for "all" remaining cases.
4566 (re_match_2_internal): Change on_failure_jump_smart to use
4567 on_failure_keep_string_jump (and redirect the end-of-loop jump)
4568 rather than on_failure_jump_exclusive.
4569
2136fdd4
GM
45702000-03-19 Gerd Moellmann <gerd@gnu.org>
4571
4572 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
4573 number of bits per RGB because it's everywhere used as the depth
4574 of the visual.
4575
4576 * term.c (calculate_costs): Remove code dealing with X frames.
4577
18e21ce8 45782000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
4579
4580 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
4581
d7b511c4
GM
45822000-03-18 Gerd Moellmann <gerd@gnu.org>
4583
4584 * lread.c (read_integer): Unread the last char not consumed.
4585
16b5d424
GM
45862000-03-17 Gerd Moellmann <gerd@gnu.org>
4587
4588 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 4589 which are in the process of being deleted.
16b5d424 4590
1fa28578
GM
45912000-03-16 Gerd Moellmann <gerd@gnu.org>
4592
83488cce
GM
4593 * Makefile.in (mostlyclean): Add `*.core'.
4594 (clean): Add `bootstrap-emacs'.
4595
1fa28578
GM
4596 * lread.c (read_integer): New function.
4597 (read1): Support read syntax #o, #x, #b, #r.
4598
99633e97
SM
45992000-03-15 Stefan Monnier <monnier@cs.yale.edu>
4600
1fa28578
GM
4601 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
4602 make sure POINTER_TO_OFFSET gives the same value before and after
4603 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
4604 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
4605 (debug): Now only active if > 0 rather than if != 0.
4606 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
4607 (print_partial_compiled_pattern): Add missing `succeed' case. Use
4608 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
4609 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
4610 (store_op1, store_op2, insert_op1, insert_op2)
4611 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
4612 (group_in_compile_stack): Move to after its arg's types are
4613 declared and add a prototype.
99633e97 4614 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
4615 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
4616 wrapper.
99633e97 4617 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
4618 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
4619 indentation of the greedy-op and shy-group code.
99633e97
SM
4620 (at_(beg|end)line_loc_p): Fix argument's types.
4621 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
4622 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
4623 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
4624 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
4625 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
4626 QUIT unconditionally.
99633e97 4627
699238d9
GM
46282000-03-15 Gerd Moellmann <gerd@gnu.org>
4629
4630 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
4631 a sole completion.
4632
4633 * process.c (send_process): Add a hint that the function
4634 can call Lisp code to its comment.
4635
4636 * lread.c (load_dangerous_libraries): New variable.
4637 (Vbytecomp_version_regexp): New variable.
4638 (safe_to_load_p): New function.
4639 (Fload): Handle files not compiled with Emacs specially.
4640 (syms_of_lread): New Lisp variable load-dangerous-libraries.
4641
34e23e5a
GM
46422000-03-14 Gerd Moellmann <gerd@gnu.org>
4643
9c763cca
GM
4644 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
4645
4646 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
4647 support functions only if HAVE_X11R6_XIM is defined.
4648 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
4649
4650 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
4651
4652 * xfns.c (X_I18N_INHIBITED): Don't define.
4653 (create_frame_xic): Remove conditional compilation on
4654 X_I18N_INHIBITED.
4655 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
4656
4657 * config.in (HAVE_X_I18N): Moved here from xterm.h.
4658 (HAVE_X11R6_XIM): Define.
4659
4660 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
4661
34e23e5a
GM
4662 * xterm.c (x_term_init): Add support for X resource `synchronous'.
4663 If set, call XSynchronize.
4664
66f0296e
SM
46652000-03-13 Stefan Monnier <monnier@cs.yale.edu>
4666
34e23e5a
GM
4667 * regex.c: Declare a new type `re_char' used throughout the code
4668 for the string char type. It's `const unsigned char' to match the
4669 rest of Emacs. Consistently make sure all pointers to strings use
4670 it and make sure all pointers into the pattern use `unsigned
4671 char'.
66f0296e 4672 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
4673 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
4674 code duplication.
66f0296e
SM
4675
4676 * charset.h (GET_CHAR_AFTER_2): Remove.
4677 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
4678
854a025c
KR
46792000-03-12 Ken Raeburn <raeburn@gnu.org>
4680
4681 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
4682 variable before the invocation of YMF_PASS_LDFLAGS, in case both
4683 of them try to use backquotes.
4684
b9d2c7e2
DL
46852000-03-12 Dave Love <fx@gnu.org>
4686
4687 * unexelf.c: Restore changes of 1999-10-19.
4688 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
4689 fix its type and alignment; copy it from current process.
4690
5e5dff44
GM
46912000-03-12 Gerd Moellmann <gerd@gnu.org>
4692
9b2f3c38
GM
4693 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
4694 has been found. Fix bug not computing timer's predecessor.
4695
427ec082 4696 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
4697 file name.
4698
e1cff360
GM
4699 * window.c (Fsave_window_excursion): Doc fix.
4700
5e5dff44
GM
4701 * xfns.c (x_defined_color): Rewritten to use
4702 x_allocate_nearest_color.
4703
e411ce4b
EZ
47042000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
4705
4706 * msdos.c (vga_installed): New function, code moved from
4707 dos_set_window_size.
4708 (Qbar, Qcursor_type, outside_cursor): New variables.
4709 (syms_of_msdos): Intern and staticpro them.
4710 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
4711 shape used outside Emacs when called for the first time.
4712 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
4713 cursor shape used outside Emacs.
4714 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
4715 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
4716 type has changed.
4717 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
4718 parameters specify the cursor. Make qreverse a global
4719 variable (renamed to Qreverse).
4720
80460654
GM
47212000-03-09 Gerd Moellmann <gerd@gnu.org>
4722
4723 * fns.c (Fy_or_n_p): Cancel busy-cursor.
4724
95cd4c40
SM
47252000-03-08 Stefan Monnier <monnier@cs.yale.edu>
4726
4727 This is a big redesign of failure-stack and register handling, prompted
4728 by bugs revealed when trying to add shy-groups. Overall, what happened
4729 is that loops are now structured a little differently, groups can be
4730 shy and the code is a little simpler.
4731
4732 * regex.h: Update the copyright.
4733 (RE_SHY_GROUPS): New value.
4734 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
4735 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
4736
80460654
GM
4737 * regex.c (enum re_opcode_t): Remove jump_past_alt,
4738 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
4739 on_failure_jump_(exclusive, loop and smart). Also fix the comment
4740 for (start|stop)_memory since they now only take one argument (the
4741 second has becomes unnecessary).
4742 (print_partial_compiled_pattern): Adjust for changes in
4743 re_opcode_t.
4744 (print_compiled_pattern): Use %ld to printf long ints and flush to
4745 make debugging a little easier.
95cd4c40
SM
4746 (union fail_stack_elt): Make the integer unsigned.
4747 (struct fail_stack_type): Add a `frame' element.
4748 (INIT_FAIL_STACK): Init `frame' as well.
4749 (POP_PATTERN_OP): New macro for re_compile_fastmap.
4750 (DEBUG_PUSH, DEBUG_POP): Remove.
4751 (NUM_REG_ITEMS): Remove.
4752 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
4753 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
4754 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 4755 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
4756 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
4757 macros.
4758 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
4759 address pushed is not the destination of the jump but the source
4760 of it instead.
95cd4c40
SM
4761 (NUM_FAILURE_ITEMS): Remove.
4762 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
4763 registers before the actual failure point). Don't hardcode any
4764 meaning for str==NULL anymore.
95cd4c40 4765 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
4766 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
4767 Remove.
95cd4c40
SM
4768 (REG_UNSET_VALUE): Use NULL (why not?).
4769 (compile_range): Remove declaration since it doesn't exist.
4770 (struct compile_stack_elt_t): Remove inner_group_offset.
4771 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
4772 (regex_grow_registers): Remove dead code.
4773 (FIXUP_ALT_JUMP): New macro.
80460654
GM
4774 (regex_compile): Add shy-groups Change loops to use
4775 on_failure_jump_smart&jump instead of
4776 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
4777 initial (dummy_failure_)jump. Remove c1_base (looks like unused
4778 variable to me). Use `jump' instead of `jump_past_alt' and don't
4779 bother with push_dummy_failure in alternatives since it is now
4780 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
4781 emacs' for (re)allocating the stack.
4782 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
4783 from loop when bufp->can_be_null rather than jumping to `done'.
4784 Avoid jumping backwards so as to ensure termination. Use
4785 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
4786 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 4787 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
4788 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
4789 improve mutually_exclusive_p to handle ".+\n".
4790 (lowest_active_reg, highest_active_reg,
4791 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
4792 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
4793 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
4794 variables. Push register (in `start_memory') on the stack rather
4795 than storing it in old_reg(start|end). Remove the cycle detection
4796 from `stop_memory', replaced by the use of on_failure_jump_loop
4797 for greedy loops. Add code for the new on_failure_jump_<foo>.
4798 Remove ad-hoc code in `on_failure_jump' to push more registers in
4799 the case of a loop. Take out code from `maybe_pop_jump' into
4800 separate functions and adapt it to the semantics of
4801 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
4802 and push_dummy_failure. Remove dummy_failure handling and
4803 handling of `failures to jump to on_failure_jump' (this last one
4804 was already dead code, it seems).
4805 (group_match_null_string_p, alt_match_null_string_p)
4806 (common_op_match_null_string_p): Remove.
95cd4c40 4807
7397acc4
DL
48082000-03-08 Dave Love <fx@gnu.org>
4809
4810 * config.in: Don't depend on __STDC__ for volatile.
4811 Add POINTER_TYPE, PTR, PROTOTYPES.
4812
4813 * hftctl.c, strftime.c: Use PROTOTYPES.
4814 * eval.c (find_handler_clause): Likewise.
4815
4816 * mem-limits.h: Use POINTER_TYPE.
4817
4818 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
4819 (memory_warnings): Declare using POINTER_TYPE.
4820
5e91ff9e
GM
48212000-03-08 Gerd Moellmann <gerd@gnu.org>
4822
feab4fba
GM
4823 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
4824
25edb08f
GM
4825 * xdisp.c (display_echo_area): Temporarily inhibit garbage
4826 collection.
4827
5e91ff9e
GM
4828 * xfns.c: Remove obsolete code in #if 0.
4829 (Fx_focus_frame): New function.
4830
a735b7e1
KH
48312000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
4832
4833 * coding.c (coding_category_name): Add coding-category-utf-8,
4834 coding-category-utf-16-be, coding-category-utf-16-le.
4835 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
4836 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
4837 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
4838 (detect_coding_utf_8): New function.
4839 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
4840 UTF_16_LOW_SURROGATE_P): New macros.
4841 (detect_coding_utf_16): New function
4842 (detect_coding_mask): When priorities are specified, skip any
4843 categories that have `nil' coding-system. Fix bug of returning
4844 wrong mask when PRIORITIES is specified and detect_coding_XXX()
4845 returns a mask not set in PRIORITIES.
4846 (detect_eol_type_in_2_octet_form): New function.
4847 (detect_eol): selects detect_eol_type_XXX to call according to
4848 cooding->category_idx.
4849 (detect_coding_system): Remove `nil' coding-system in the result.
4850 (Fupdate_coding_systems_internal): Update all coding-categories.
4851
4852 * coding.h (CODING_CATEGORY_IDX_UTF_8,
4853 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
4854 macros.
4855 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
4856 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
4857 CODING_CATEGORY_IDX_UTF_16_LE.
4858 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
4859 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
4860 (CODING_CATEGORY_MASK_ANY): Include the above macros.
4861 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
4862
9994cc69
GM
48632000-03-07 Gerd Moellmann <gerd@gnu.org>
4864
e9b4e5ff
GM
4865 * doc.c (Fdocumentation_property): If value is not a string,
4866 and doesn't refer to etc/DOC, evaluate it to obtain a string.
4867
f7daf1e1
GM
4868 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
4869 close the display with XtCloseDisplay. This caused a bus error
4870 on OpenWindows.
4871
9994cc69
GM
4872 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
4873 complete but not unique.
4874
4336c705
GM
48752000-03-06 Gerd Moellmann <gerd@gnu.org>
4876
18bb0684
GM
4877 * process.c (send_process): Remove local variable `procname' that
4878 might become invalid when a GC happens. Instead, access the
4879 process name slot directly.
4880
4336c705
GM
4881 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
4882 orig_height if set.
4883
4884 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
4885 orig_height if set.
4886
515d0d0e
EZ
48872000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
4888
4889 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
4890 glyph matrices have been freed.
4891
100b3cbb
GM
48922000-03-05 Gerd Moellmann <gerd@gnu.org>
4893
50df5e5a 4894 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 4895 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
4896
4897 * xfns.c (QCdata): Moved to xdisp.c.
4898
4899 * xdisp.c (QCdata): Moved here from xfns.c.
4900 (syms_of_xdisp): Initialize QCdata.
4901
4902 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
4903
4904 * window.c (coordinates_in_window): Use
4905 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
4906 FRAME_INTERNAL_BORDER_WIDTH.
4907
100b3cbb 4908 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 4909 it is obviously invalid.
100b3cbb
GM
4910
4911 * xterm.c (x_term_init): Create a colormap if not using the
4912 default visual.
4913
4914 * xterm.h (select_visual): Change prototype.
4915
4916 * xfns.c (select_visual): Rewritten. Recognize user-specified
4917 visual classes.
4918 (visual_classes): New variable.
4919
64d739c4
GM
49202000-03-04 Gerd Moellmann <gerd@gnu.org>
4921
4922 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
4923 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
4924 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
4925 (x_decode_color): Don't handle allocation of white and black
4926 specially.
4927 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
4928 XtNcolormap resources.
4929 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
4930 (Fx_create_frame): Initialize color members of x_output structure.
4931 (xpm_load): Pass colormap to XPM lib.
4932
4933 * xfaces.c (x_free_colors): Access colormap of frame using
4934 FRAME_X_COLORMAP. Be paranoid about freeing black and white
4935 when default colormap is used.
4936
4937 * xterm.c (x_term_init): Set Colormap member of x_display_info
4938 structure. Copy colormap if resource `privateColormap' is
4939 specified (PseudoColor only).
4940 (x_setup_relief_color): Access colormap of frame using
4941 FRAME_X_COLORMAP.
4942
4943 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
4944 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
4945
c3cee013
JR
49462000-03-04 Jason Rumney <jasonr@gnu.org>
4947
4948 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
4949 other non-platform-specific equivalents.
64d739c4 4950 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
4951 specific functions and macros as their w32 equivalents where
4952 non-platform-specifics are not available.
4953 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
4954 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
4955 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
4956 (frame_update_line_height): Use macros to access f->output_data.
4957 (defined_color): Remove FIXME comments; fixed.
4958 (x_face_list_fonts, prepare_face_for_display): Put X specifics
4959 into #ifdef blocks. Add WINDOWSNT blocks.
4960 (Fx_list_fonts): Use macros for accessing font data.
4961 (set_lface_from_font_name): Different default fonts for X and
4962 WINDOWSNT.
4963 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
4964 scalable for backward compatibility.
64d739c4 4965 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
4966 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
4967
64d739c4 4968 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
4969 syms_of_w32faces.
4970
4971 * makefile.nt (w32faces.obj): Remove.
4972 (xfaces.obj): Add.
4973
807cc41c
JR
49742000-03-03 Jason Rumney <jasonr@gnu.org>
4975
4976 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
4977 correct parameters.
4978
0007072a
KR
49792000-03-03 Ken Raeburn <raeburn@gnu.org>
4980
4981 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
4982 standard ELF definitions here if the system header does not.
4983
71a6ba55
GM
49842000-03-03 Gerd Moellmann <gerd@gnu.org>
4985
4986 * xterm.c (PER_CHAR_METRIC): Removed.
4987 (x_per_char_metric_1, x_default_char): New functions.
4988 (x_per_char_metric): If font's default char is invalid, return
4989 metrics of a suitably chosen usable default char.
4990 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
4991 char, replace occurrences of unprintable chars with a suitably
4992 chosen usable default char.
71a6ba55 4993
900fa1f1
GM
49942000-03-02 Gerd Moellmann <gerd@gnu.org>
4995
42f55fe0
GM
4996 * xterm.c (note_mouse_highlight): Return quickly if frame's
4997 glyph matrices have been freed.
4998
4999 * dispnew.c (free_glyphs): Block input while freeing matrices.
5000
900fa1f1
GM
5001 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
5002
5003 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
5004 x_free_colors.
5005
5006 * dispextern.h (x_free_colors): Add prototype.
5007
5008 * xfaces.c (x_free_colors): New function.
5009 (unload_color, free_face_colors): Use it.
5010
2f950292
EZ
50112000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
5012
5013 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
5014
5015 * window.c [MSDOS]: Include msdos.h.
5016
54d04320
DL
50172000-03-02 Dave Love <fx@gnu.org>
5018
5019 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
5020
5021 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
5022 set C_OPTIMIZE_SWITCH for gcc.
5023
0ba93ac4
KH
50242000-03-02 Kenichi Handa <handa@etl.go.jp>
5025
5026 * coding.c (coding_save_composition): Be sure to allocate
5027 composition data area in coding even if there's no composition in
5028 the current run.
5029
a2bc11d4
JR
50302000-03-01 Jason Rumney <jasonr@gnu.org>
5031
5032 * w32term.c: Equivalent changes to those made to xterm.c on
5033 2000-02-25 and 2000-02-24.
5034
5035 * w32fns.c: Equivalent changes to those made to xfns.c on
5036 2000-02-25 and 2000-02-21.
5037
5038 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
5039 correct line-end convention is followed.
5040
5041 * w32menu.c [HAVE_BOXES]: Remove #undef.
5042 (single_keymap_panes): Remove code for simulating checkmarks.
5043 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
5044 Remove code for drawing simulated checkmarks.
5045 (w32_menu_show): make unibyte help string correctly.
5046 (add_menu_item): draw standard Windows checkmarks. Draw radio
5047 buttons as radio buttons if possible.
5048
72d19d75
GM
50492000-03-01 Gerd Moellmann <gerd@gnu.org>
5050
2df636f4
GM
5051 * sysdep.c (start_of_text): Don't define this function for NetBSD
5052 with ELF.
5053
427ec082 5054 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
5055 Don't define.
5056 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
5057 (LINKER): Don't undef if __NetBSD__ is defined.
5058
5059 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
5060
5061 * fileio.c [__NetBSD__]: Define `unix'.
5062
72d19d75
GM
5063 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
5064
ed4d0512
GM
50652000-02-29 Gerd Moellmann <gerd@gnu.org>
5066
50b1039f
GM
5067 * atimer.c (start_atimer): Don't abort when timers are stopped.
5068 (append_atimer_lists): New function.
5069 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
5070 arbitrary lists of stopped and running atimers.
5071
ed4d0512
GM
5072 * atimer.c (cancel_atimer): Handle canceling an atimer when
5073 some timers are stopped.
5074
5075 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
5076 after canceling it.
5077
5078 * fns.c (maybe_resize_hash_table): Handle case of new size
5079 coming out as being the same as old size.
5080
387023ee
JR
50812000-02-27 Jason Rumney <jasonr@gnu.org>
5082
5083 * makefile.nt: Add atimer.h to dependencies.
5084 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
5085 * w32console.c: Only disable window system features for dispextern.h
5086 (initialize_w32_display): Build a display info for the console.
5087 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
5088 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
5089 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
5090 as 2 button mice.
5091 * w32gui.h (struct W32FontStruct): Revert last change after change
5092 to xdisp.c.
5093 * w32menu.c (single_submenu): Set up help string.
5094 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
5095 (w32_dialog_show): Set up help string.
5096 * w32term.c (w32_display_info_for_display): Remove unused function.
5097 (w32_draw_bitmap): Use pre-built bitmaps.
5098 (w32_initialize_display_info): New function to initialize parts of
5099 display info that are common to both GUI and console frames.
5100 (w32_term_init): Use w32_initialize_display_info. Do not set
5101 Vw32_num_mouse_buttons here, as it is not called for console
5102 frames. Build bitmaps for indicating truncated lines etc.
5103 (x_delete_display): Destroy pre-built bitmaps.
5104 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
5105 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
5106
4516715a
DL
51072000-02-27 Dave Love <fx@gnu.org>
5108
5109 * lisp.h: Add a bunch of prototypes.
5110
171ca836
KH
51112000-02-26 Kenichi Handa <handa@etl.go.jp>
5112
5113 * keyboard.c (read_char): Set `usec' correctly.
5114
4013921d
KH
51152000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
5116
5117 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
5118 `lambda', set reg[RRR] to the map index.
5119 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
5120 reg[RRR] to 0. Otherwise, set it to -1.
5121
9244a058
GM
51222000-02-25 Gerd Moellmann <gerd@gnu.org>
5123
2df636f4 5124 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 5125
18e21ce8 51262000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 5127
f43d79c1
GM
5128 * fileio.c (Ffile_symlink_p): If result starts with a `/'
5129 and contains a `:', prepend `/:'.
5130
5131 * window.c (select_window_1): If selected_window is nil,
5132 don't "swap out" the buffer's point.
5133 (Fset_window_configuration): Set selected_window to nil
5134 before calling Fselect_window.
5135 (unshow_buffer): Don't set point in buffer from window's point
5136 if another more recently selected window also shows the buffer.
5137
bed0c171
GM
51382000-02-25 Gerd Moellmann <gerd@gnu.org>
5139
449c3c52
GM
5140 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
5141
f5b58615
GM
5142 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
5143 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
5144 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
5145 variables.
5146 (DEFAULT_BUSY_CURSOR_DELAY): New define.
5147 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
5148 (hide_busy_cursor): New functions.
5149 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
5150
5151 * minibuf.c (read_minibuf): Cancel busy-cursor.
5152
5153 * keyboard.c (command_loop_1): Call start_busy_cursor before
5154 Fcommand_execute and cancel_busy_cursor after it.
5155 (timer_check): Remove busy-cursor code.
5156 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
5157 cursor timer.
5158
5159 * process.c (wait_reading_process_input): Remove busy-cursor code.
5160
5161 * eval.c (Fsignal): Call cancel_busy_cursor instead of
5162 Fx_hide_busy_cursor.
5163
5164 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
5165 Remove prototyoes.
5166 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
5167
5168 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
5169
5170 * xterm.c (XTread_socket): Remove busy-cursor code.
5171
4eb8436f
GM
5172 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
5173 (build_frame_matrix_from_leaf_window): Put code handling
5174 glyph row's not being a slice of a frame row in #if 0.
5175 (sync_window_with_frame_matrix_rows): New function.
5176 (frame_row_to_window): New function.
5177 (mirror_line_dance): Handle copies between windows.
5178
3cb65b0e
GM
5179 * lread.c (Fload): Use `xfree' instead of `free'.
5180 (init_obarray): Use `xmalloc' instead of `malloc'.
5181
bed0c171
GM
5182 * window.c (Fset_window_buffer): Set WINDOW to the window
5183 after decoding.
2add4349
GM
5184 (coordinates_in_window): Take frame's internal border width
5185 into account.
bed0c171 5186
42088c12
GM
51872000-02-24 Gerd Moellmann <gerd@gnu.org>
5188
5189 * xterm.c (x_display_and_set_cursor): Display cursor of
5190 non-selected windows depending on the setting of
5191 cursor_in_non_selected_windows.
5192
5193 * xdisp.c (cursor_in_non_selected_windows): New variable.
5194 (syms_of_xdisp): DEFVAR_BOOL it.
5195
d1e103b2
GM
51962000-02-23 Gerd Moellmann <gerd@gnu.org>
5197
723e779c
GM
5198 * data.c (Fstring_to_number): If number is greater than what
5199 fits into an integer, return a float.
5200
d1e103b2
GM
5201 * eval.c (specbind): Remove references to
5202 keyword_symbols_constant_flag.
5203
5204 * data.c (keyword_symbols_constant_flag): Removed.
5205 (Fmakunbound, set_internal, syms_of_data): Remove references to
5206 keyword_symbols_constant_flag.
5207
5208 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
5209
214f877f
KH
52102000-02-23 Kenichi Handa <handa@etl.go.jp>
5211
5212 * syntax.c (multibyte_syntax_as_symbol): New variable.
5213 (syms_of_syntax): Declare it as a Lisp variable.
5214 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
5215 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
5216 nonzero, treat all multibyte characters as symbol.
42088c12 5217 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
5218 characters.
5219
130adcb7
EZ
52202000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
5221
3cb65b0e 5222 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 5223 a deleted frame.
130adcb7 5224
17cbbf95
GM
52252000-02-21 Gerd Moellmann <gerd@gnu.org>
5226
5227 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
5228
5229 * xfns.c (x_window_to_frame, x_any_window_to_frame)
5230 (x_non_menubar_window_to_frame): Check the busy-cursor window.
5231
beb0bc36
DL
52322000-02-21 Dave Love <fx@gnu.org>
5233
5234 * frame.c (Vmouse_position_function): New variable.
5235 (Fmouse_position): Use it.
5236 (syms_of_frame): Install it.
5237
5238 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
5239
1d92afcd
GM
52402000-02-20 Gerd Moellmann <gerd@gnu.org>
5241
5242 * fileio.c (Finsert_file_contents): Unbind the binding of
5243 standard-output done by temp_output_buffer_setup.
329eed9f
GM
5244
5245 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
5246 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
5247 (specbind, unbind_to): Handle most common case of non-constant
5248 symbol with trivial value specially.
5249
5250 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
5251
18e21ce8 52522000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
5253
5254 * data.c (Fmake_variable_buffer_local): Doc fix.
5255 Init found_for_buffer to 0.
5256 (Fmake_variable_frame_local): If the variable has already
5257 been buffer-local, set the check_frame field.
5258
1d4311c3
EZ
52592000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
5260
5261 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
5262 produced for CODING_MODE_LAST_BLOCK requires.
5263
2dc95ddd
DL
52642000-02-18 Dave Love <fx@gnu.org>
5265
5266 * keyboard.c (echo_keystrokes): Remove declaration.
5267 (Vecho_keystrokes) New variable.
5268 (read_char, record_menu_key, read_key_sequence): Use it to allow
5269 use of float value.
5270 (syms_of_keyboard): Change Vecho_keystrokes declaration.
5271
5272 * lread.c: Undef feature selection macros before defining.
5273
f0930f35
GM
52742000-02-18 Gerd Moellmann <gerd@gnu.org>
5275
5276 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
5277 for symbols other than the symbol in question.
5278
e3d4de90
DL
52792000-02-17 Dave Love <fx@gnu.org>
5280
5281 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
5282
0b378936
GM
52832000-02-17 Gerd Moellmann <gerd@gnu.org>
5284
d621caf7
GM
5285 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
5286
0b378936
GM
5287 * alloc.c (enum mem_type): Compile unconditionally.
5288
3b451f74
EZ
52892000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
5290
5291 * xfaces.c (tty_defined_color): Don't return faulire indication
5292 for unspecified-fg and unspecified-bg pseudo-colors.
5293
10689a01
GM
52942000-02-17 Gerd Moellmann <gerd@gnu.org>
5295
1216f5e4
GM
5296 * alloc.c (mark_object): Don't mark symbol names in pure space.
5297 (gc_sweep): Don't unmark symbol names in pure space.
5298
5299 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
5300 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
5301 [GC_MARK_STACK]: New defines.
427ec082 5302 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
5303 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
5304
5305 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
5306
5307 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
5308 allocate_buffer instead of xmalloc.
5309
5310 * alloc.c (toplevel): Include setjmp.h.
5311 (PURE_POINTER_P): New define.
5312 (enum mem_type) [GC_MARK_STACK]: New enumeration.
5313 (Vdead) [GC_MARK_STACK]: New variable.
5314 (lisp_malloc): Add parameter TYPE, call mem_insert if
5315 GC_MARK_STACK is defined.
5316 (allocate_buffer): New function.
427ec082 5317 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
5318 (free_float) [GC_MARK_STACK]: Set type to Vdead.
5319 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
5320 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
5321 (MEM_NIL) [GC_MARK_STACK]: New define.
5322 (struct mem_node) [GC_MARK_STACK]: New structure.
5323 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
5324 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
5325 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
5326 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
5327 (mark_stack) [GC_MARK_STACK]: New functions.
5328 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
5329 (clear_marks): Removed.
5330 (gc_sweep): Set free conses' car, free floats' type, free
5331 symbols' function to Vdead. Use lisp_free to free buffers.
5332 (init_alloc_once): Initialize Vdead.
5333 (survives_gc_p): Return non-zero for pure objects.
5334
5335 * alloc.c: Add comments throughout the file.
5336
2503c8b1
GM
5337 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
5338 that unblocks alarms.
5339
8389e1e2
GM
5340 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
5341 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
5342 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
5343
10689a01 5344 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 5345
bfc17d18
KH
53462000-02-17 Kenichi Handa <handa@etl.go.jp>
5347
4a09dee0
KH
5348 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
5349 avoid infinite error signaling. Allocate sufficient memory for
5350 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 5351
2b927d02
SM
53522000-02-17 Stefan Monnier <monnier@cs.yale.edu>
5353
5354 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
5355 depends on the previous behavior.
5356
b49cb764
GM
53572000-02-16 Gerd Moellmann <gerd@gnu.org>
5358
5359 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
5360
99e95407
GM
53612000-02-15 Gerd Moellmann <gerd@gnu.org>
5362
5363 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
5364
5365 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 5366 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
5367 write(2).
5368
6ffd3cf7
RS
53692000-02-15 Richard M. Stallman <rms@gnu.org>
5370
5371 * data.c (set_internal): Don't make variable buffer-local
5372 if within a let-binding for the same buffer.
5373 (let_shadows_buffer_binding_p): New function.
5374
5375 * eval.c (specbind): For buffer-local value,
5376 record the current buffer also.
5377 (unbind_to): Cope with that change.
5378
cad53475
GM
53792000-02-15 Gerd Moellmann <gerd@gnu.org>
5380
5381 * window.c (Fsave_window_excursion): Doc fix.
5382
1aa963c8
SM
53832000-02-15 Stefan Monnier <monnier@cs.yale.edu>
5384
5385 * syntax.c (back_comment): Make sure we only consider comment-starters
5386 of the relevant style and return -1 in case of a failure to find the
5387 beginning of the comment.
5388 (Fforward_comment): If back_comment fails, go back to the position just
5389 after the comment-end.
5390 (scan_lists): Add comment describing a very minor bug.
5391
b9b84fd3
SM
53922000-02-14 Stefan Monnier <monnier@cs.yale.edu>
5393
5394 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
5395 `completion-regexp-list' in the docstring.
5396
3a28db80
DL
53972000-02-14 Dave Love <fx@gnu.org>
5398
5399 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
5400
fb4a568d
SM
54012000-02-14 Stefan Monnier <monnier@cs.yale.edu>
5402
5403 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
5404 to Emacs' syntax. Also fix the comment about set/not-set meanings
5405 since Emacs syntax is not the value 0 any more.
5406 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
5407 since it's now part of RE_SYNTAX_EMACS.
5408
1063ebb5
DL
54092000-02-12 Dave Love <fx@gnu.org>
5410
5411 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
5412 Alpha.
5413
fb07a302
GM
54142000-02-12 Gerd Moellmann <gerd@gnu.org>
5415
5416 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
5417
aaf2320c
DL
54182000-02-12 Dave Love <fx@gnu.org>
5419
5420 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
5421
5422 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
5423 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
5424 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
5425
5426 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
5427
5428 * s/nextstep.h: Don't define HAVE_ALLOCA.
5429
5430 * config.in: Add vfork bits.
5431
eedf8bde
GM
54322000-02-12 Gerd Moellmann <gerd@gnu.org>
5433
5434 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
5435 unwind function to undo the effect of stopping atimers.
5436
5437 * keyboard.c (bind_polling_period): Stop all timers except
5438 poll_timer.
5439
5440 * atimer.c (stopped_atimers): New variable.
5441 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
5442 New functions.
5443
5444 * atimer.h (stop_other_atimers, run_all_atimers)
5445 (unwind_stop_other_atimers): Add function prototypes.
427ec082 5446
eedf8bde
GM
5447 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
5448
8476c2f8
KR
54492000-02-11 Ken Raeburn <raeburn@gnu.org>
5450
5451 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
5452 library may depend on jpeg.
5453 (atimer.o): Depends on atimer.c.
5454
0e85e4a3
KH
54552000-02-11 Kenichi Handa <handa@etl.go.jp>
5456
5457 * insdel.c (del_range_1): Call update_compositions.
5458 (del_range_both): Call update_compositions just once..
5459
97fa0cc8
DL
54602000-02-10 Dave Love <fx@gnu.org>
5461
5462 * xfns.c (create_frame_xic): Fix initialization of automatic
5463 aggregates for pcc.
5464
25566a3c
KH
54652000-02-09 Kenichi Handa <handa@etl.go.jp>
5466
5467 * ccl.c (CCL_MAKE_CHAR): New macro.
5468 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
5469 registers by CCL_MAKE_CHAR before calling translate_char.
5470 <CCL_TranslateCharacterConstTbl> Likewise.
5471
69da54ba
DL
54722000-02-08 Dave Love <fx@gnu.org>
5473
5474 * lread.c (__EXTENSIONS__): Define.
5475
f7136ee8
GM
54762000-02-08 Gerd Moellmann <gerd@gnu.org>
5477
5478 * puresize.h (BASE_PURESIZE): Increase to 650000.
5479
7768790b
EZ
54802000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
5481
5482 * msdos.c (XMenuActivate): Turn off the cursor after displaying
5483 the help message.
5484
38fd211b
EZ
54852000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
5486
5487 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
5488 md, mh, mb, mr, and me to the fake termcap entry.
5489
66e4690f
KR
54902000-02-06 Ken Raeburn <raeburn@gnu.org>
5491
5492 * sound.c (sound_cleanup): Don't call device close routine if the
5493 function pointer is null.
5494
a75dfea0
AI
54952000-02-06 Andrew Innes <andrewi@gnu.org>
5496
5497 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
5498 around image definitions and prototypes.
5499 (gamma_correct) [WINDOWSNT]: New prototype.
5500
5501 * w32term.c (x_make_frame_visible): Replace call to
5502 input_poll_signal with poll_for_input.
5503
5504 * window.c [WINDOWSNT]: Include w32term.h.
5505
5506 * xdisp.c [WINDOWSNT]: Include w32term.h.
5507
5508 * makefile.nt: Add dependencies on w32gui.h.
5509 (OBJ1): Include atimer.obj.
5510 ($(BLD)\atimer.obj): New dependency rule.
5511
5512 * w32.c (sigmask): New function (does nothing).
5513 (sigunblock): Ditto.
5514
5515 * frame.c [WINDOWSNT]: Include w32term.h.
5516
5517 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
5518
5519 * lread.c (syms_of_lread): Fix literal newlines.
5520
5521 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
5522 the string constant limit (2048 bytes) in MSVC.
5523 (main): Ditto.
5524
59ddecde
GM
55252000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
5526
5527 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
5528 area.
5529 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
5530 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
5531 dispatch the event.
5532
07590973
DL
55332000-02-04 Dave Love <fx@gnu.org>
5534
5535 * fileio.c: Remove some unused vars.
5536 (_GNU_SOURCE): Define (for euidaccess).
5537
5538 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
5539
5540 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
5541 gcpro1, gcpro2.
5542 (read_minibuf): Deal with allow_props correctly.
5543
649351f9
EZ
55442000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
5545
5546 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
5547
66e4690f 55482000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
5549
5550 * search.c (compile_pattern): If a cache entry has a nil regexp,
5551 fill in that entry instead of clobbering a previously cached
5552 string regexp.
5553
66e4690f 55542000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
5555
5556 * puresize.h (BASE_PURESIZE): Increase to 610000.
5557
d240a249
GM
55582000-02-02 Gerd Moellmann <gerd@gnu.org>
5559
5560 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
5561 can GC.
5562
ca91fb26
KH
55632000-02-02 Kenichi Handa <handa@etl.go.jp>
5564
25660570
KH
5565 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
5566 instead of incrementing ic directly.
5567 <CCL_WriteExprConst> Likewise.
5568 <ccl_set_expr>: Set ic to jump_address.
5569
ca91fb26
KH
5570 * fileio.c (e_write): Fix the handling of
5571 CODING_FINISH_INSUFFICIENT_SRC.
5572
2ede9689
DL
55732000-02-01 Dave Love <fx@gnu.org>
5574
5575 * editfns.c (Fpropertize): Doc fix.
5576
5577 * process.c (Fstart_process): Doc fix.
5578
5579 * eval.c: Fix various doc strings not to duplicate information
5580 from help-manyarg-func-alist.
5581
5582 * window.c (Fset_window_margins): Don't make interactive. Doc
5583 fix.
5584
5585 * doc.c (Vhelp_manyarg_func_alist): New variable.
5586 (Fdocumentation): Use it.
5587 (syms_of_doc): Define it.
5588
b6680a0e
GM
55892000-01-31 Gerd Moellmann <gerd@gnu.org>
5590
2cb750ba
GM
5591 * xterm.c (xim_open_dpy): Remove unused local variable.
5592
74e9213b
GM
5593 * emacs.c (USAGE): Use term `display options' instead of `X
5594 options'.
5595
5596 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
5597 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
5598
b6680a0e
GM
5599 * fns.c (sweep_weak_table): New function.
5600 (sweep_weak_hash_tables): Use it. Keep on marking until there
5601 is no more change.
5602
994c5afe
GM
56032000-01-30 Gerd Moellmann <gerd@gnu.org>
5604
5605 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
5606 that XTread_socket does not crash by trying to call XNoOp on a
5607 closed display.
427ec082 5608
f00276e3
JR
56092000-01-30 Jason Rumney <jasonr@gnu.org>
5610
5611 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
5612 Change selected_frame to SELECTED_FRAME ().
5613 (w32_console_mouse_position): Remove #ifndef MULE from around
5614 `insist' parameter.
5615
5616 * makefile.nt: Remove dosfns.obj.
5617
5618 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
5619
5620 * w32fns.c (w32_defined_color): Check for valid frame before
5621 applying gamma correction. Eliminate dependency on frame elsewhere.
5622 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
5623 (w32_to_x_font): Use resx and resy not height_in and width_in.
5624 (x_to_w32_font): Doc fix.
5625 (xlfd_strip_height): New function to strip and return font height.
5626 (w32_font_match): Compare height separately from rest of xlfd
5627 spec, using xlfd_strip_height.
5628
5629 * w32term.c (w32_term_init): Swap resx and height_in, resy and
5630 width_in. Use w32_defined_color in place of defined_color.
5631
5632 * w32faces.c: Merge more of DOS and X specifics in preparation for
5633 merge with xfaces.c.
5634 (defined_color): Remove FIXME comment.
5635 (tty_color_name): Provide w32-specific function.
5636 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
5637
5638 * w32console.c (turn_on_face, turn_off_face): Removed.
5639 (w32_face_attributes): New function.
5640 (Global_variables): Reduce scope where possible.
5641 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
5642 fill attribute.
5643 (hl_mode): Don't modify text attributes.
5644 (write_glyphs): Don't do anything if len <= 0. Use
5645 w32_face_attributes to get attributes for drawing. Write
5646 terminating codes using char_attr_normal.
5647 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
5648 (update_begin, update_end): Likewise.
5649 (vga_stdcolor_name): New function.
5650 (initialize_w32_display): Remove char_attr_reverse and char_attr.
5651 (Fset_screen_color): Remove char_attr_reverse.
5652
b08e8bb2
GM
56532000-01-29 Gerd Moellmann <gerd@gnu.org>
5654
5655 * xfns.c (xic_set_preeditarea): Take window parameter and
5656 window-relative pixel-positions.
5657
5658 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
5659 is its frame's selected window.
5660 (xim_instantiate_callback): Likewise.
5661
5662 * xfns.c (x_create_im): Removed.
5663 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
5664 (supported_xim_styles): Renamed from supported_styles.
5665 (best_xim_style): Renamed from best_style.
5666 (create_frame_xic): Renamed from xic_create_frame.
5667 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 5668
b08e8bb2
GM
56692000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
5670
5671 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
5672 our frames, call XFilterEvent with 2nd parameter `None'.
5673 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
5674 returning XBufferOverflow.
5675 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
5676 area.
5677 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
5678 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
5679 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
5680 (xim_initialize, xim_close)
5681 [HAVE_X_I18N && HAVE_X11R6]: New functions.
5682 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
5683 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
5684 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
5685
5686 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
5687 and `xim_styles'.
5688 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
5689 `xic_style' and `xic_xfs'.
5690 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
5691 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
5692 (FRAME_XIM): Removed.
5693
5694 * xfns.c (supported_styles): New variable.
5695 (DEFAULT_STYLE, DEFAULT_FONT): New macros
5696 (xic_create_xfontset, best_style, xic_create_frame)
5697 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
5698 (xic_set_xfontset): New functions.
5699
142e109c
DL
57002000-01-28 Dave Love <fx@gnu.org>
5701
5702 * s/irix6-5.h: Revert last change after change to irix5-0.h.
5703
5704 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
5705
b02786f9
GM
57062000-01-28 Gerd Moellmann <gerd@gnu.org>
5707
d060bc9f
GM
5708 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
5709 for *scratch* if it already existed.
5710
b02786f9
GM
5711 * emacs.c (USAGE): New macro.
5712 (main): Use it to display usage information.
5713
2c52d7e4
EZ
57142000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
5715
5716 Support for the menu-help feature:
5717
5718 * msdos.h: Change prototypes of XMenuAddSelection and
5719 XMenuActivate.
5720
5721 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
5722 part of the line to the termscript file.
5723 (IT_clear_to_end): Clear the entire line, not just its beginning.
5724 (menu_help_message, prev_menu_help_message): New variables.
5725 (IT_menu_make_room): Make room for the help_text member.
5726 (IT_menu_display): New argument disp_help; all callers changed.
5727 If disp_help is non-zero, store the help text of the active menu
5728 item in menu_help_message.
5729 (XMenuAddPane): Initialize the help_text member to NULL.
5730 (XMenuAddSelection): New argument help_text. Store it in the
5731 XMenu structure.
5732 (XMenuActivate): New argument help_callback. If the value of
5733 menu_help_message has changed since the last time, display the
5734 menu help message text while waiting for the mouse to move. Clear
5735 the echo area before exiting.
5736 (XMenuDestroy): Free the help_text member.
5737
ffe0bcd1
GM
57382000-01-27 Gerd Moellmann <gerd@gnu.org>
5739
5740 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
5741 XMenuAddSelection. Pass help callback to XMenuActivate.
5742 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
5743
50dbd23f
EZ
57442000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
5745
5746 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
5747 and EMACS_SET_USECS.
5748
f5941bf8
GM
57492000-01-26 Dave Love <fx@gnu.org>
5750
6c67ddee
DL
5751 * editfns.c (Fchar_after, Fchar_before): Doc fix.
5752
f5941bf8
GM
5753 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
5754 an error may be signalled.
5755
9e49c990
GM
57562000-01-26 Gerd Moellmann <gerd@gnu.org>
5757
fc3cb460
GM
5758 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
5759 LD_SWITCH_SYSTEM inherited from irix5-0.h.
5760
9e49c990
GM
5761 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
5762
d0c037d8
GM
57632000-01-25 Gerd Moellmann <gerd@gnu.org>
5764
5765 * charset.c (Fstring): If there is a multibyte char among
5766 the args, always return a multibyte string.
5767
e12489f9
GM
57682000-01-25 Gerd Moellmann <gerd@gnu.org>
5769
5770 * sysdep.c (sys_select): Turn atimers off and on instead of
5771 recording and restoring old alarm handler
5772
5773 * process.c (toplevel): Include atimer.h.
5774 (create_process_1): Rewritten.
5775 (create_process): Use atimers instead of alarm.
5776 (wait_reading_process_input) [hpux]: Turn atimers off instead
5777 of turning off SIGALRM.
5778 (wait_reading_process_input): Turn off atimers instead off
5779 calling stop_polling.
5780
5781 * emacs.c (main): Call init_atimer.
5782
5783 * keyboard.c (toplevel): Include systime.h and atimer.h.
5784 (polling_for_input): Removed because unused.
5785 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
5786 (poll_timer): New variable.
5787 (poll_for_input, poll_for_input_1): New functions.
5788 (start_polling, stop_polling): Rewritten.
5789
5790 * keyboard.h (polling_for_input): Removed.
427ec082 5791
e12489f9
GM
5792 * atimer.h, atimer.c: New files.
5793
5794 * Makefile.in (obj): Add atimer.o.
5795 (atimer.o): New target.
5796
5797 * blockinput.h (pending_atimers): Add extern declaration.
5798 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
5799
5800 * lisp.h (popup_activated_flag): Add extern declaration.
5801
5802 * xmenu.c (popup_activated_flag): Make externally visible.
5803 (popup_activate_callback) [USE_MOTIF]: Increment
5804 popup_activated_flag.
5805 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
5806
5807 * xterm.c (toplevel): Include atimer.h.
5808 (toolkit_scroll_bar_interaction): New variable.
5809 (Fxt_process_timeouts): Removed.
5810 (x_process_timeouts): New function.
5811 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
5812 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
5813 (x_make_frame_visible): Call poll_for_input_1 instead of
5814 input_poll_signal. Don't call alarm.
5815 (x_initialize): Install timer calling x_process_timeouts.
427ec082 5816
1e5279b9
DL
58172000-01-24 Dave Love <fx@gnu.org>
5818
6c67ddee 5819 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
5820 Don't use -cckr -- apparently not now necessary.
5821
edf6aeb8
EZ
58222000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
5823
5824 * msdos.c (IT_menu_display): Truncate long menu lines at the right
5825 screen boundary.
5826
9badad41
JR
58272000-01-23 Jason Rumney <jasonr@gnu.org>
5828
5829 * w32fns.c (w32_defined_color): Apply gamma correction before
5830 trying to map to the palette.
5831 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
5832 to w32_clear_rect.
5833
5834 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
5835 here. Callers changed to always pass real device context.
5836 (w32_draw_bitmap): Likewise.
5837 (w32_get_glyph_overhangs): Likewise.
5838 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
5839 one.
5840 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
5841 pfnSetScrollInfo and SetScrollRange.
5842 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
5843 back into MULE characters after decoding them.
5844 (x_get_glyph_face_and_encoding): Likewise.
5845 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
5846 GetCharABCWidthsW fails, since this is defined on Windows 9x.
5847 (x_produce_glyphs): Calculate per char metrics for a character
5848 that we know exists in default font when font_not_found_p is true.
5849
63bd786b
JR
58502000-01-22 Jason Rumney <jasonr@gnu.org>
5851
5852 * makefile.nt (intervals.obj, composite.obj): New modules.
5853 (composite.h): Added as dependency where appropriate.
5854
5855 * w32gui.h (XGCValue): New struct for emulating X GCs.
5856
5857 * w32term.h (XCharStruct): New struct for emulating X.
5858
5859 * w32console.c (turn_on_face, turn_off_face): New functions.
5860 (change_line_highlight): New prototype for new redisplay.
5861 (write_glyphs): Support multibyte text. Support faces.
5862
5863 * w32faces.c: Complete rewrite for new redisplay based on new
5864 xfaces.c.
5865
5866 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
5867 throughout. struct frame * in place of FRAME_PTR.
5868 Skeleton support for images, toolbars, tooltips from xfns.c.
5869 (Fx_create_frame): Use system default for default scroll bar
5870 width.
5871 (w32_get_arg): Renamed from x_get_arg.
5872 (Fx_file_dialog): New function.
5873 (w32_list_fonts): Check cache before asking system.
5874 (Vw32_enable_synthesized_fonts): New variable.
5875 (Vw32_enable_italics): Obsolete, removed.
5876
5877 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
5878 Use SELECTED_FRAME macro.
5879
5880 * w32menu.c: Add skeleton support for help strings on menus.
5881 (add_menu_item): Native checkbox and radio support added, but not
5882 yet enabled due to bugs.
5883 (push_menu_item): Add parameters type, selection and help.
5884 Callers updated.
5885 Formatting changes to reduce unnecessary diffs with xmenu.c.
5886
5887 * w32select.c (Fw32_set_clipboard_data): Update call to
5888 find_charset_in_str.
5889
5890 * w32term.c: Complete rewrite for new redisplay based on new
5891 xterm.c with necessary sections merged back in from old w32term.c.
5892
6ffd3cf7 58932000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
5894
5895 * data.c (set_internal): Further fix in same criterion.
5896
6ffd3cf7 58972000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
5898
5899 * data.c (set_internal): Fix the criteria for whether
5900 to swap out the old cached binding.
5901
60af03f1
DL
59022000-01-19 Dave Love <fx@gnu.org>
5903
5904 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
5905
f9be074f
KH
59062000-01-18 Kenichi Handa <handa@etl.go.jp>
5907
5908 * regex.c (re_compile_fastmap): While checking a range table for
5909 `charset', skip flag bits for a character class correctly.
5910
52b8dbf9
GM
59112000-01-17 Gerd Moellmann <gerd@gnu.org>
5912
d36100c9
GM
5913 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
5914
52b8dbf9
GM
5915 * xfns.c (x_window): Call lw_create_widget with new parameter
5916 list.
5917
5918 * widget.c (EmacsFrameSetCharSize): Change size of children first
5919 because of problems with main window geometry management under
5920 Lesstif.
5921
5922 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
5923 MENU_ITEMS_ITEM_.*.
5924 (MENU_ITEMS_ITEM_HELP): New enumerator.
5925 (push_menu_item): Add parameter HELP. Record help in menu_items.
5926 (single_menu_item, single_submenu, list_of_items): Call
5927 push_menu_item with new parameter.
5928 (single_submenu): Set help string in widget value.
5929 (menu_highlight_callback): New function.
5930 (set_frame_menubar): Call lw_create_widget with new
5931 parameter list.
5932 (xmenu_show, xdialog_show): Ditto.
5933
3139018f
GM
59342000-01-13 Gerd Moellmann <gerd@gnu.org>
5935
5936 * sound.c (Fplay_sound): Improve doc string.
5937
83c8f461
RS
59382000-01-11 Richard M. Stallman <rms@gnu.org>
5939
5940 * lisp.h (set_internal): Enter the new arg.
5941
5942 * eval.c (specbind): Record buffer-local variables specially,
5943 indicating which buffer's binding was saved.
5944 (unbind_to): Restore buffer-local variables specially
5945 in the proper buffer.
5946
5947 * data.c (set_internal): New arg BUF.
427ec082 5948
83c8f461
RS
5949 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
5950 * data.c (Fset): Pass new arg to set_internal.
5951 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 5952
1fab1775
GM
59532000-01-11 Gerd Moellmann <gerd@gnu.org>
5954
5955 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
5956 xprintsym.
5957
83c8f461 59582000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
5959
5960 * minibuf.c (Ftry_completion): Doc fix.
5961
7a85e4df
GM
59622000-01-11 Gerd Moellmann <gerd@gnu.org>
5963
5964 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
5965 vector, too.
5966
a970dae4
AS
59672000-01-11 Andreas Schwab <schwab@suse.de>
5968
5969 * coding.c (code_convert_region): Initialize total_skip.
5970
c65d14ee
DL
59712000-01-08 Dave Love <fx@gnu.org>
5972
5973 * eval.c (Fuser_variable_p): Check customizability too.
5974
834938d2
GM
59752000-01-07 Gerd Moellmann <gerd@gnu.org>
5976
5977 * minibuf.c (Fcompleting_read): Doc fix.
5978
e0303cd6
GM
59792000-01-05 Gerd Moellmann <gerd@gnu.org>
5980
8a26744b
GM
5981 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
5982 -L /usr/local/lib.
5983
e0303cd6
GM
5984 * xfns.c (x_create_im): New function to set IM and IC of a frame.
5985 Check that input style is supported before trying to create an
5986 IC for it.
5987 (x_window): Call x_create_im.
427ec082 5988
2e471eb5
GM
59892000-01-04 Gerd Moellmann <gerd@gnu.org>
5990
560a7bd2
GM
5991 * xfns.c (current_gif_memory_src): New variable.
5992 (gif_load): Record the address of the current memory source
5993 in current_gif_memory_src.
5994 (gif_read_from_memory): Use current_gif_memory_src.
5995
f9ee84a3
GM
5996 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
5997 macros statement form.
5998
d1299cde
GM
5999 * sound.c (struct sound): Renamed from struct sound_file.
6000 (struct sound): Add members `data' and `header_size'.
6001 (enum sound_attr): Add SOUND_DATA.
6002 (current_sound, current_sound_device): Variables renamed from
6003 sound_file and sound_device.
6004 (parse_sound): Parse :data.
6005 (parse_sound): Handle sound data in strings.
6006 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 6007 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
6008 needed header size.
6009 (wav_play, au_play): Play sounds from string data.
6010
2e471eb5
GM
6011 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
6012
6013 * lisp.h: Add prototype for allocate_string_data.
6014
6015 * alloc.c (Fgarbage_collect): Return number of live and free
6016 strings.
6017
6018 * alloc.c (mark_buffer): Remove code in #if 0.
6019 (gc_sweep): Ditto.
6020 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
6021 (strings_consed): New variable.
6022 (allocate_string): Set it.
6023 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
6024 (Fmemory_use_counts): Return strings_consed. Use Flist.
6025
6026 * alloc.c: General cleanup in comments etc. Remove conditional
6027 compilation for `standalone'.
6028
6029 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
6030
6031 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
6032 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
6033 (DONT_COPY_FLAG): Removed.
6034 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
6035 (struct sdata, struct sblock): New
6036 (struct string_block): Rewritten.
6037 (STRINGS_IN_STRING_BLOCK): New macro.
6038 (oldest_sblock, current_sblock, total_strings, total_free_strings)
6039 (large_sblocks, string_blocks, string_free_list): New variables.
6040 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
6041 (init_strings): Rewritten.
6042 (allocate_string, allocate_string_data, compact_small_strings)
6043 (free_large_strings, sweep_strings): New functions.
6044 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
6045 (struct string_block_head, current_string_block)
6046 (first_string_block, large_string_blocks, STRING_FULLSIZE)
6047 (STRING_PAD): Removed.
6048 (make_uninit_multibyte_string, make_pure_string): Rewritten.
6049 (Fgarbage_collect): Don't set mark bit in large strings.
6050 (mark_object): Mark strings differently. Mark symbol names
6051 differently.
6052 (survives_gc_p): Test marked strings differently.
427ec082 6053 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
6054 symbol names.
6055 (compact_strings): Removed.
6056
42608ba8
EZ
60572000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
6058
6059 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
6060 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
6061
e0a09e1a
KH
60622000-01-04 Kenichi Handa <handa@etl.go.jp>
6063
dd9f0750 6064 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 6065 in a non-empty buffer.
dd9f0750 6066
3c0f3b15 6067 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 6068
44cd3ae5
GM
60692000-01-03 Gerd Moellmann <gerd@gnu.org>
6070
6071 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
6072 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
6073
6074 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
6075
c182a70f
EZ
60762000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
6077
6078 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
6079 need to test for MSDOS frames.
6080
24480d5b
EZ
60812000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
6082
6083 * dosfns.c (unspecified_colors): Remove.
6084 (msdos_stdcolor_idx): Use global variables unspecified_fg and
6085 unspecified_bg.
6086 (msdos_stdcolor_name): Return strings for unspecified fore- and
6087 back-ground colors.
6088
6089 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 6090 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
6091 (tty_color_name): Return Lisp strings for unspecified fore- and
6092 back-ground colors.
6093 (Finternal_set_lisp_face_attribute): Remove the special treatment
6094 for Qunspecified_{f,b}g.
6095 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
6096 string.
6097
047f434a
GM
60982000-01-03 Gerd Moellmann <gerd@gnu.org>
6099
6100 * xdisp.c (reseat_at_next_visible_line_start): Position before
6101 newline only if ending up on a newline.
6102 (next_element_from_ellipsis): Return success. Handle case of
6103 displaying no ellipsis. Fix case of ellipsis defined in display
6104 table.
6105 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
6106 returns 0.
6107
d684c676
EZ
61082000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
6109
6110 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
6111 (Fcolor_supported_p): Renamed from face-color-supported-p.
6112
5fe1d139
EZ
61132000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
6114
6115 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
6116 list of colors renamed to tty-defined-color-alist.
6117 (tty_color_name): Pass the frame to tty-color-by-index.
6118 (realize_tty_face): tty-color-alist is now a function which
6119 accepts the frame as argument.
6120
6121 * term.c (Ftty_display_color_p): Accept an optional argument
6122 FRAME.
6123
816be8b8
EZ
61242000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
6125
6126 * term.c (insert_glyphs): Pass glyph, not &glyph, to
6127 encode_terminal_code.
6128
b635321e
EZ
61292000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
6130
6131 * dispnew.c (mode_line_string): Support termcap frames as well.
6132
9b784e96
GM
61332000-01-01 Gerd Moellmann <gerd@gnu.org>
6134
27189709
GM
6135 * syntax.c (Fforward_word): Undo previous change.
6136
6137 * editfns.c (Fconstrain_to_field): Don't constrain if
6138 inhibit-field-text-motion is non-nil.
6139 (Fline_beginning_position): Undo previous change.
6140 (Fline_end_position): Ditto.
6141
6142 * syntax.c (Fforward_word): Notice field boundaries only if
6143 inhibit-field-text-motion is nil.
6144
6145 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
6146
6147 * editfns.c (Vinhibit_field_text_motion): New variable.
6148 (inhibit-field-text-motion): New DEFVAR_LISP.
6149 (Fline_beginning_position, Fline_end_position): Notice field
6150 boundaries only if inhibit-field-text-motion is nil.
6151
45158a91
GM
6152 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
6153 All calls adjusted.
6154 (x_build_heuristic_mask): Likewise.
6155 (xbm_load_image_from_file): Change error output.
6156 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
6157 (gif_load, gs_load, x_kill_gs_process): Ditto.
6158
9b784e96
GM
6159 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
6160 color indices when accessing raster pixels.
63cec32f
GM
6161 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
6162 one of :file or :data.
6163 (enum pbm_keyword_index): Add PBM_DATA.
6164 (pbm_format): Add :data.
6165 (pbm_image_p): Allow either :file or :data.
6166 (pbm_read_file): New function.
6167 (pbm_scan_number): Rewritten to read from string.
6168 (pbm_load): Support :data.
9b784e96 6169
2cb085db 6170See ChangeLog.8 for earlier changes.
6922b018
KH
6171
6172;; Local Variables:
49b3bd82 6173;; coding: iso-2022-7bit
6922b018 6174;; End: