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