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