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