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