(Info-extract-pointer):
[bpt/emacs.git] / src / ChangeLog
CommitLineData
8901d1ac
GM
12000-09-27 Gerd Moellmann <gerd@gnu.org>
2
6f22f1ad
GM
3 * xfaces.c (realize_default_face): Call set_lface_from_font_name
4 with non-zero FORCE_P argument.
5
8901d1ac
GM
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
36f1966f
DL
152000-09-27 Dave Love <fx@gnu.org>
16
17 * s/irix6-5.h (IRIX6): Now works 64-bit. Tidied.
18
31d929e5
GM
192000-09-26 Gerd Moellmann <gerd@gnu.org>
20
c98863bf
GM
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
77072ab1
GM
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
31d929e5
GM
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
3e60b029
DL
562000-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
8ff16b4e
GM
692000-09-25 Gerd Moellmann <gerd@gnu.org>
70
755a2ccd
GM
71 * alloc.c (mark_image): Use GC_NILP instead of NILP.
72
d8b4516f
GM
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
b11af2dd
GM
87 * s/freebsd.h (POSIX_SIGNALS): Define.
88
8ff16b4e
GM
89 * xterm.c (x_clear_mouse_face): Block/unblock input.
90
844eb643
DL
912000-09-24 Dave Love <fx@gnu.org>
92
93 * fns.c (base64_encode_1): Fix last change.
94
b30ab1b3
GM
952000-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
c6cbe5f0
DL
1022000-09-22 Dave Love <fx@gnu.org>
103
4c7c1f3f
DL
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
c6cbe5f0
DL
109 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
110
550a625e
GM
1112000-09-21 Gerd Moellmann <gerd@gnu.org>
112
4c7c1f3f 113 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
fca99116
GM
114 for GCC >= 2.5.
115
116 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error): Declare
117 NO_RETURN.
118
80d26f99
GM
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
623a0aae
GM
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
42ac0ae5
GM
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
550a625e
GM
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
8320414c
GM
1462000-09-20 Gerd Moellmann <gerd@gnu.org>
147
f46c275e
GM
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
b7e11c5b
GM
154 * xfns.c (xbm_scan): Allow C-style comments.
155
8320414c
GM
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
da1608d9
GM
1652000-09-19 Gerd Moellmann <gerd@gnu.org>
166
167 * dispnew.c (update_window_line): Make sure to always draw
168 mode-lines.
169
6badfa25
AI
1702000-09-19 Andrew Innes <andrewi@gnu.org>
171
172 * makefile.nt (bootstrap-emacs): Don't change directory.
173
3a5f42bb
KH
1742000-09-19 Kenichi Handa <handa@etl.go.jp>
175
1b7649bd
KH
176 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
177
3a5f42bb
KH
178 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
179 If output buffer is too small, signal an appropriated error.
180
9f83cf0b
DL
1812000-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
28c7826c
GM
1862000-09-18 Gerd Moellmann <gerd@gnu.org>
187
5cefa566
GM
188 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
189 cursor for buffers whose cursor_type is nil.
190
6fed3546
GM
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
05b1f851
GM
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
f4779de9
GM
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
28c7826c
GM
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
b7412313
GM
2192000-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
47e351a3
GM
2252000-09-15 Gerd Moellmann <gerd@gnu.org>
226
7f8f1edc
GM
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
28c7826c 238 `:algorithm disabled' for creating a disabled item's image if the
7f8f1edc
GM
239 user hasn't specified an image.
240
ebb8f116
GM
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
47e351a3
GM
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
fe83b953
AI
2702000-09-14 Andrew Innes <andrewi@gnu.org>
271
272 * makefile.w32-in: Revert to Unix line endings.
273
3021e816
AI
2742000-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
2a32b5ea
GM
2822000-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
b4331e96
DL
2882000-09-14 Dave Love <fx@gnu.org>
289
290 * buffer.c (alloc_buffer_text): Fix xmalloc call.
291
ef9e4345
GM
2922000-09-14 Gerd Moellmann <gerd@gnu.org>
293
085536c2
GM
294 * xdisp.c (handle_fontified_prop): While running fontification
295 functions, bind `fontification-functions' and
296 `after-change-functions' to nil.
297
ef9e4345
GM
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
f8608968
GM
3252000-09-13 Gerd Moellmann <gerd@gnu.org>
326
2a494b2d
GM
327 * sound.c (Fplay_sound): Doc fix.
328
8c907a56
GM
329 * keyboard.c: Avoid some more compiler warnings.
330 (parse_tool_bar_item): Ignore cached key bindings.
331
f8608968
GM
332 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
333 and allocation of Lisp data.
334
6ab70e9a
GM
3352000-09-12 Gerd Moellmann <gerd@gnu.org>
336
d12d0a9b
GM
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
6ab70e9a
GM
341 * lread.c (Fload): Put code checking for recursive loads in #if 0.
342
63c36c3c
KH
3432000-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
7ee3bd7b
GM
3592000-09-11 Gerd Moellmann <gerd@gnu.org>
360
8ec8a5ec
GM
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
f74b0705
GM
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
7ee3bd7b
GM
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
974e1e5b
MB
3812000-09-11 Miles Bader <miles@gnu.org>
382
383 * editfns.c (Fbuffer_string): Doc fix.
384
9824c4e3
GM
3852000-09-10 Gerd Moellmann <gerd@gnu.org>
386
387 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
388
6a72fdd1
KR
3892000-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
28e6fb66
GM
3942000-09-09 Gerd Moellmann <gerd@gnu.org>
395
396 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
9824c4e3 397 by Fmemq as a boolean.
28e6fb66 398
7f8b6551
SM
3992000-09-08 Stefan Monnier <monnier@cs.yale.edu>
400
401 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
402
a8710abf
GM
4032000-09-08 Gerd Moellmann <gerd@gnu.org>
404
d1a02881
GM
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
c454aac1
GM
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
fc653ef2
GM
422 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
423
3015eec0
GM
424 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
425 inheritance.
426
bfe0ee88
GM
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
a8710abf
GM
430 * xterm.c (x_draw_glyphs): Handle case START and END are out
431 of bounds more carefully.
432
6b7d4ae4
DL
4332000-09-08 Dave Love <fx@gnu.org>
434
423193c5
DL
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
6b7d4ae4
DL
452 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
453 change to __NetBSD__.
454
44d31981
KH
4552000-09-08 Kenichi Handa <handa@etl.go.jp>
456
457 * search.c (compile_pattern): Check the multibyteness of cached
458 string and PATTERN.
459
aad40737
MB
4602000-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
91a211b5
GM
4672000-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
03419440
EZ
4742000-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
f46f845b
GM
4802000-09-07 Gerd Moellmann <gerd@gnu.org>
481
24f76fbf
GM
482 * ralloc.c (mmap_find): Fix overlap computation.
483 (mmap_enlarge): Compute nbytes before trying to find an
484 overlapping region.
485
f46f845b
GM
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
3c014385
KH
4962000-09-07 Kenichi Handa <handa@etl.go.jp>
497
fd6f711b
KH
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
3c014385 502 * coding.c (encode_coding_sjis_big5): Use translation table for
ed254191
KH
503 encoding, not decoding. Fix the handling of latin-jisx0201.
504 Check for the charset katakana-jisx0201 too.
3c014385 505 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
f46f845b 506 (detect_coding_sjis): Check the byte sequence more rigidly.
3c014385 507
0da3ecef
GM
5082000-09-07 Gerd Moellmann <gerd@gnu.org>
509
ab0ee409
GM
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.
1091dd67 521
0da3ecef
GM
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
b14654b9
DL
5252000-09-07 Dave Love <fx@gnu.org>
526
527 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
528
d24fd56f
KH
5292000-09-07 Kenichi Handa <handa@etl.go.jp>
530
794f3670
KH
531 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
532
0fddd0dc
KH
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
d24fd56f
KH
539 * process.c (read_process_output): Before inserting the decoded
540 text in the buffer, adjust the multibyteness.
541
fa0b693c
GM
5422000-09-06 Gerd Moellmann <gerd@gnu.org>
543
73b77ee5
GM
544 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
545 buffer's text buffer is null, map new memory.
546
0a58f946
GM
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
fa0b693c
GM
567 * config.in (HAVE_MMAP): Add #undef.
568
877055f6
GM
5692000-09-05 Gerd Moellmann <gerd@gnu.org>
570
08ba3862
GM
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
66ffe51c
GM
576 * buffer.c (Fother_buffer): Consider buffers as invisible when
577 they are displayed in a window on an invisible frame.
578
877055f6
GM
579 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
580 get-largest-window always return nil.
581
bb970e67
GM
5822000-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
7a3d0e0e
MB
5872000-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
14473664
SM
5942000-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
c1174479
AI
6072000-09-03 Andrew Innes <andrewi@gnu.org>
608
f8803e97
AI
609 * makefile.w32-in: Change to DOS line endings.
610
c1174479
AI
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
44ef7cf6
AI
619 * w32proc.c (compare_env): Convert to uppercase for comparison,
620 not lowercase, to match how the native Windows shell works.
621
49b3bd82
JR
6222000-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
a3d35a39
MB
6302000-09-03 Miles Bader <miles@gnu.org>
631
632 * xterm.c (x_alloc_lighter_color_for_widget): New function.
633
d276b0cf
GM
6342000-09-02 Gerd Moellmann <gerd@gnu.org>
635
715e84c9
GM
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
8892f40b
GM
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
d276b0cf
GM
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
38404229
GM
6512000-09-01 Gerd Moellmann <gerd@gnu.org>
652
653 * lread.c (read1): Accept `?' as symbol constituent, for
654 compatiblity with XEmacs.
655
c0f9ea08
SM
6562000-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
8c0f83fe
GM
6702000-08-31 Gerd Moellmann <gerd@gnu.org>
671
672 * lread.c (openp): GCPRO local variable `filename'.
673
4bb91c68
SM
6742000-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
5226a931
GM
6962000-08-30 Gerd Moellmann <gerd@gnu.org>
697
868dd24b
GM
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
5226a931
GM
706 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
707 instead of store_frame_param.
708
2a8bd25f
GM
7092000-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
ba3478d9
MB
7162000-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
87d0f685
GM
7212000-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
6fa86045
DL
7262000-08-28 Dave Love <fx@gnu.org>
727
728 * keymap.c (store_in_keymap): Add `static' to declaration.
729
bb17930d
GM
7302000-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
87188200
MB
7452000-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
41a68aef
KH
7512000-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
f7c436c1
SM
7562000-08-27 Stefan Monnier <monnier@cs.yale.edu>
757
0b32bf0e
SM
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
f7c436c1
SM
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
6288c62f
GM
7832000-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
e931344e
EZ
7882000-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
d10dfeef
KH
7942000-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
2d73e8d3
MB
7992000-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
6ce974d4
KH
8242000-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
dc1e502d
SM
8302000-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
bd9d0f3f
GM
8392000-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
aa5b8e15
GM
8472000-08-24 Gerd Moellmann <gerd@gnu.org>
848
17494071
GM
849 * bytecode.c (mark_byte_stack): Add a comment.
850
aa5b8e15
GM
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
c543db81
KH
8552000-08-24 Kenichi Handa <handa@etl.go.jp>
856
d246d5f5
KH
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
c543db81
KH
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
9b47cfe0
EZ
8722000-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
f5a36960
KH
8772000-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
69a7ffa7
AI
8822000-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
25060080
SM
10622000-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
6917e6bb
GM
10692000-08-21 Gerd Moellmann <gerd@gnu.org>
1070
acb7cc89
GM
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
0bbfdc25
GM
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
6917e6bb
GM
1095 * eval.c (Fmacroexpand): Doc fix.
1096
e5cd3d11
JR
10972000-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
6e69ab8c
MB
11212000-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
511bd4eb
GM
11272000-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
1433385f
GM
11412000-08-19 Gerd Moellmann <gerd@gnu.org>
1142
511bd4eb
GM
1143 * undo.c (record_first_change, record_marker_adjustment): Don't
1144 use XBUFFER on last_undo_buffer which might not be a buffer.
1433385f 1145
419ac0a2
KH
11462000-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
7eb9e30d
GM
11532000-08-18 Gerd Moellmann <gerd@gnu.org>
1154
511bd4eb
GM
1155 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
1156 conditional have void type, for Standard C compilers.
7eb9e30d
GM
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
dd34a735
KH
11622000-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
385ff9e3
GM
11672000-08-18 Gerd Moellmann <gerd@gnu.org>
1168
511bd4eb 1169 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
01cce3e7
GM
1170 Lisp_Objects.
1171
385ff9e3
GM
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
d6abb4c7
MB
11752000-08-18 Miles Bader <miles@gnu.org>
1176
4618074a
MB
1177 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
1178
d6abb4c7
MB
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
a7b28523
GM
11842000-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
03c9ed77
DL
11922000-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
aae41d97
EZ
12232000-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
65aa5e85
GM
12322000-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
ece23901
KH
12432000-08-16 Kenichi Handa <handa@etl.go.jp>
1244
9d7bcb2e
KH
1245 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
1246 sequence at the end of the source block.
1247
ece23901
KH
1248 * ccl.c (Fccl_program_p): Docstring modified.
1249 (Fccl_execute): Likewise.
1250 (Fccl_execute_on_string): Likewise.
1251
5e30eaa2
EZ
12522000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
1253
1254 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
1255
290602fd
KH
12562000-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
b9f80d41
EZ
13022000-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
32dc52f7
GM
13072000-08-15 Gerd Moellmann <gerd@gnu.org>
1308
58ed0d3b
GM
1309 * alloc.c (compact_small_strings): Use safe_bcopy, add an
1310 assertion.
1311
32dc52f7 1312 * term.c (turn_off_face): Reset standout_mode when resetting
58ed0d3b 1313 appearances with capability `me'.
32dc52f7
GM
1314 (write_glyphs): Switch on inverse video before each face change.
1315
4eb22d33
DL
13162000-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
90cbf47e
GM
13252000-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
440fc135
GM
13302000-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
6e264fad
KH
13412000-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
c371f69a
KH
13512000-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
13582000-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
b8ddbe71
KH
13712000-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
47589c8c
GM
13762000-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
c51bacd6
MB
13992000-08-10 Miles Bader <miles@gnu.org>
1400
1401 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
1402
bea56df7
GM
14032000-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
99cd7364
EZ
14092000-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
7d093d56
EZ
14162000-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
41e757a6
GM
14312000-08-09 Gerd Moellmann <gerd@gnu.org>
1432
8e7bd231
GM
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
43028b7e
GM
1446 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
1447
41e757a6
GM
1448 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
1449
2f2174fa
KH
14502000-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
0a6fd67e
MB
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
0c80756e
MB
1463 * minibuf.c (do_completion): Don't consider a simple change of
1464 case as `completion'.
1465
975f250a
KR
14662000-08-08 Ken Raeburn <raeburn@gnu.org>
1467
b347b3fd
KR
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
25ad1371 1480 * editfns.c (find_field): Use EQ, not ==, to compare Lisp
b347b3fd
KR
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.
25ad1371
GM
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.
b347b3fd 1493
975f250a 1494 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
25ad1371 1495 Lisp object.
975f250a 1496 (Ffind_coding_systems_region_internal): First argument to Fappend
25ad1371 1497 must be an integer, not a Lisp object.
975f250a 1498
46dc9912
KH
14992000-08-08 Kenichi Handa <handa@etl.go.jp>
1500
1501 * charset.c (Fchar_width): Doc fix.
1502
9f6d1a6c
GM
15032000-08-08 Gerd Moellmann <gerd@gnu.org>
1504
1505 * charset.c (Fstring_width): Doc fix.
1506
ff3d9573
GM
15072000-08-07 Gerd Moellmann <gerd@gnu.org>
1508
41e757a6 1509 * xdisp.c (start_display): When starting display on a continuation
49ad1d99
GM
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
70fc58b3
GM
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
ac0e96ee
GM
1529 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
1530 tables out of the list of all weak hash tables.
1531
ff3d9573
GM
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
e0d8827b
EZ
15362000-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
c6f35378
KH
15412000-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
1fd4c450
GM
15462000-08-05 Gerd Moellmann <gerd@gnu.org>
1547
e49aa397
GM
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
1fd4c450
GM
1564 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
1565
1566 * fns.c: Replace `illegal' with `invalid'.
e49aa397 1567 (Fmake_hash_table, make_hash_table): Allow table size of 0.
1fd4c450 1568
82d497fc
KH
15692000-08-05 Kenichi Handa <handa@etl.go.jp>
1570
1571 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
1572 conversion.
1573
59f953a2
NF
15742000-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
688351f2
GM
15792000-08-04 Gerd Moellmann <gerd@gnu.org>
1580
1581 * syntax.c (skip_chars): Fix typo in error message.
1582
2dad51cc
AS
15832000-08-04 Andreas Schwab <schwab@suse.de>
1584
1585 * m/ia64.h: Moved from s/ia64.h.
1586
99bb2c60
KH
15872000-08-04 Kenichi Handa <handa@etl.go.jp>
1588
082a1df2
KH
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
99bb2c60
KH
1596 * coding.c (decode_coding_iso2022): More strict check for handling
1597 single shifting.
082a1df2
KH
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.
99bb2c60 1604
f4988be7
GM
16052000-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
ead53494
GM
16202000-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
16342000-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
10b0f752
MB
16422000-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
16425c4a
EZ
16472000-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.
da288c14
EZ
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.
16425c4a
EZ
1656
1657 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
1658 using alloca; free it after run_msdos_command returns.
1659
27f73852
DL
16602000-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
c0261b5e
EZ
16692000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
1670
1671 * editfns.c (lisp_time_argument): Fix last change.
1672
b548072f
GM
16732000-07-27 Gerd Moellmann <gerd@gnu.org>
1674
3ab82477
GM
1675 * fns.c (Fdelete): Make it work on vectors and strings in addition
1676 to lists.
1677
b548072f
GM
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
91ae8751
KH
16852000-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
34a7a267
SS
17192000-07-26 Sam Steingold <sds@gnu.org>
1720
1721 * editfns.c (lisp_time_argument): Added third argument `usec'.
3ab82477 1722 (Ffloat_time): New built-in Lisp function.
34a7a267 1723
a95cb10a
GM
17242000-07-26 Gerd Moellmann <gerd@gnu.org>
1725
3353ef5a
GM
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
a95cb10a
GM
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
b4a12321
DL
17362000-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
13f5ad37
KH
17442000-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
070fe99c
GM
17492000-07-25 Gerd Moellmann <gerd@gnu.org>
1750
969065c3
GM
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
070fe99c
GM
1759 * syntax.c (Fforward_word): Add last arg nil in call of
1760 Fconstrain_to_field.
1761
bad77ef7
EZ
17622000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
1763
969065c3 1764 * fileio.c (Frename_file) [DOS_NT]: If the file names are
bad77ef7
EZ
1765 identical but for the letter-case, don't call
1766 barf_or_query_if_file_exists.
1767
c28da489
MB
17682000-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
e3c31fd5
GM
17792000-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.
c28da489 1783
c66c29a2
DL
17842000-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
fbe0a958
EZ
17942000-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
7d88e5c9
AS
17992000-07-24 Andreas Schwab <schwab@suse.de>
1800
1801 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
1802
e024b101
GM
18032000-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
25c1a9ce
KH
18162000-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
7f987ac0
EZ
18232000-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
e2db3069
MB
18292000-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
5e3203e4
EZ
18352000-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
62145073
GM
18402000-07-21 Gerd Moellmann <gerd@gnu.org>
1841
c20aeb83
GM
1842 * xterm.c (note_mouse_highlight): Process overlays in the right
1843 order of priority.
34a7a267 1844
743934db
GM
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
d1dc7e43 1851 * window.c (foreach_window_1): Fix typo reversing an if-condition.
34a7a267 1852
62145073
GM
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
18682000-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
11270583
KH
18732000-07-21 Kenichi Handa <handa@etl.go.jp>
1874
07b14857
KH
1875 * data.c (Faset): Allow storing any multibyte character in a
1876 string. Convert unibyte string to multibyte if necessary.
1877
11270583
KH
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
bc75b4fd
DL
18862000-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
48c14970
EZ
18912000-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
4279296d
GM
19222000-07-19 Gerd Moellmann <gerd@gnu.org>
1923
47db06aa
GM
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
4279296d
GM
1935 * alloc.c (allocate_string_data): Don't copy old string contents.
1936
670acd62
KH
19372000-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
7cea38bc
GM
19422000-07-18 Gerd Moellmann <gerd@gnu.org>
1943
dc1cac59
GM
1944 * dispnew.c (update_text_area): Write the whole row if it
1945 has mouse-face in it.
1946
85a8aca9
GM
1947 * xfaces.c (face-alternative-font-family-alist): Remove
1948 DEFVAR_LISP; staticpro instead.
1949
34a7a267 1950 * xmenu.c (menu_help_callback): Call show_help_echo with
7cea38bc
GM
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
f8276b77
DL
19662000-07-18 Dave Love <fx@gnu.org>
1967
1968 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
1969 systime.h.
1970
088831a6
GM
19712000-07-18 Gerd Moellmann <gerd@gnu.org>
1972
3d6cd763
GM
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
088831a6
GM
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
bc8a8d55
KH
19852000-07-18 Kenichi Handa <handa@etl.go.jp>
1986
1987 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
1988 undefined.
1989
069f5950
DL
19902000-07-18 Dave Love <fx@gnu.org>
1991
1992 * window.c (Fwindow_list): Declare arg `window'.
1993
aa96c820
KH
19942000-07-18 Kenichi Handa <handa@etl.go.jp>
1995
1996 * coding.c (setup_coding_system): Don't override the explicitly
1997 specified designations.
1998
06be8d32
MB
19992000-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
3fddcdc3
JR
20172000-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
178c5d9c
SS
20602000-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
6fe533f6
DL
20652000-07-14 Dave Love <fx@gnu.org>
2066
069f5950 2067 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 2068
dd7b81cf
KH
20692000-07-14 Kenichi Handa <handa@etl.go.jp>
2070
0693904a 2071 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 2072 default_face's fontset, not using the default fontset.
0693904a 2073
dd7b81cf
KH
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
d5aa31d8
GM
20792000-07-14 Gerd Moellmann <gerd@gnu.org>
2080
e5acf0ca
GM
2081 * alloca.c (malloc) [emacs]: Define as xmalloc.
2082
bd23a692
GM
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
9662da0b
GM
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
178c5d9c 2096 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
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
d5aa31d8
GM
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
0f1a9b23
GM
21432000-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.
178c5d9c 2199
0f1a9b23
GM
2200 * composite.c (AREF): Remove definition.
2201
712eaef2
GM
22022000-07-12 Gerd Moellmann <gerd@gnu.org>
2203
d8ee7803
GM
2204 * dispnew.c (redraw_overlapped_rows): Add missing local.
2205 (scrolling_window): Remove debug code.
2206
712eaef2
GM
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
02010917
SM
22302000-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
d76c03ea
GM
22402000-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
d55ead18
EZ
22592000-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
df75b1a3
GM
22722000-07-10 Gerd Moellmann <gerd@gnu.org>
2273
4b92c49a
GM
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
df75b1a3
GM
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
4314cf3e
EZ
22892000-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
ab49ce15
KH
22942000-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
090a072f
GM
22992000-07-07 Gerd Moellmann <gerd@gnu.org>
2300
2301 * eval.c (Fsignal): Handle case that backtrace_list is null.
2302
f92de4a6
KH
23032000-07-07 Kenichi Handa <handa@etl.go.jp>
2304
2305 * ccl.c (Fccl_execute): Typo fixed.
2306
dd8888a1
GM
23072000-07-06 Gerd Moellmann <gerd@gnu.org>
2308
e5c81191 2309 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 2310
dd8888a1
GM
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
485266d0
GM
23182000-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.
178c5d9c 2327
485266d0
GM
2328 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
2329
80fcd514
KR
23302000-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
d5c5cddd
GM
23442000-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
65171e3a
DL
23552000-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
178c5d9c 2360 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 2361
e2c46326
AI
23622000-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
a027a91b
SM
23882000-07-05 Stefan Monnier <monnier@cs.yale.edu>
2389
e4b31601
SM
2390 * w32menu.c (w32_menu_display_help):
2391 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
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.
4cf8d9d5 2398 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 2399
178c5d9c 2400 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 2401 (note_tool_bar_highlight, XTread_socket):
178c5d9c 2402 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
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
88d75730
GM
24082000-07-05 Gerd Moellmann <gerd@gnu.org>
2409
969f7e79
GM
2410 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
2411
71201b00
GM
2412 * window.c (delete_all_subwindows): Reset Vwindow_list.
2413
88d75730
GM
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.
178c5d9c 2426
88d75730
GM
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
53654733
GM
24352000-07-04 Gerd Moellmann <gerd@gnu.org>
2436
87efd256
GM
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
53654733
GM
2459 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
2460 a menu filter.
2461
4a8c194f
KH
24622000-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
831a6cb0
GM
24742000-07-03 Gerd Moellmann <gerd@gnu.org>
2475
2f516940
GM
2476 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
2477
178c5d9c 2478 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
2479 marked already.
2480
831a6cb0
GM
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
d9c4f922
SM
24852000-07-03 Stefan Monnier <monnier@cs.yale.edu>
2486
2487 * fns.c (Fputhash): Return `value' rather than nil.
2488
3780bc22
GM
24892000-06-30 Gerd Moellmann <gerd@gnu.org>
2490
97d176db
GM
2491 * frame.c (next_frame): Don't check focus redirection in case
2492 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
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
dca9961d
KH
24972000-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
d5483ab1
GM
25032000-06-28 Gerd Moellmann <gerd@gnu.org>
2504
af5c25e1 2505 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 2506 the display if windows_or_buffers_changed.
af5c25e1
GM
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
97d176db 2514 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
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
d5483ab1
GM
2523 * s/isc4-0.h (sigunblock): Define.
2524
2525 * s/sco5.h (sigunblock): Define.
2526
93e40f40
DL
25272000-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
3c4b7685
GM
25362000-06-27 Gerd Moellmann <gerd@gnu.org>
2537
97d176db 2538 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
2539 below the last line from the needed window height.
2540
32cad0aa
SM
25412000-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
2c69ced2
GM
25472000-06-26 Gerd Moellmann <gerd@gnu.org>
2548
178c5d9c 2549 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
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
3fc720e4
GM
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
2c69ced2
GM
2564 * xfns.c (Fimage_size): New function.
2565 (syms_of_xfns): Defsubr it.
2566
f978b2a2
AS
25672000-06-26 Andreas Schwab <schwab@suse.de>
2568
2569 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
2570 Fstring_as_unibyte.
2571
94cc7892
DL
25722000-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
b8c24556
KR
25882000-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
8cf8560b
DL
25932000-06-23 Dave Love <fx@gnu.org>
2594
511c7541
DL
2595 * ralloc.c: Maybe include unistd.h
2596
8cf8560b
DL
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
3fc720e4 2618 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
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
ea055732
GM
26332000-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
74b01b80
EZ
26382000-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
64f3a166
GM
26432000-06-22 Gerd Moellmann <gerd@gnu.org>
2644
16cf31f7
GM
2645 * xrdb.c (x_load_resources): Add default resource for scroll bar's
2646 trough color and main window's background color.
2647
178c5d9c 2648 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
2649 differently.
2650
2651 * xterm.h (Xt_app_con): External declaration.
2652
2653 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 2654
486a103d
GM
2655 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
2656
64f3a166
GM
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
bb746ea6
DL
26732000-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
a8f573f3
KH
26792000-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
9f2bbc92
DL
26842000-06-21 Dave Love <fx@gnu.org>
2685
178c5d9c 2686 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 2687
3ee5041c
SM
26882000-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
4c343001
DL
26962000-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
e6365855
SM
27032000-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 (*) ... (*)).
d355bd8a
SM
2710 Check the comstyle of single-char comment-starters.
2711 Clarify control-flow around the Scomment case.
e6365855 2712
5700d2cc
DL
27132000-06-20 Dave Love <fx@gnu.org>
2714
d355bd8a
SM
2715 * fns.c (make_hash_table, maybe_resize_hash_table):
2716 Cast arg of next_almost_prime.
5700d2cc 2717
178c5d9c 2718 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
2719
2720 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
2721 and unistd.h.
2722
4a27bdfb
GM
27232000-06-20 Gerd Moellmann <gerd@gnu.org>
2724
a61d762c
GM
2725 * keyboard.c (adjust_point_for_property): Check if display
2726 property should be treated as intangible by looking at its
2727 value.
2728
178c5d9c 2729 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
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.
178c5d9c 2735
4a27bdfb
GM
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
427ec082
SS
27502000-06-20 Sam Steingold <sds@gnu.org>
2751
2752 * xrdb.c: Don't declare xmalloc, xrealloc.
2753
8972fe79 27542000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
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
074b6efe
DL
27602000-06-20 Dave Love <fx@gnu.org>
2761
f85c008a
DL
2762 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
2763 HAVE_GETTIMEOFDAY.
2764
5700d2cc 2765 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 2766
d355bd8a 2767 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
2768
2769 * m/alpha.h: Don't declare xmalloc, xrealloc.
2770
0af4f205
DL
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
074b6efe
DL
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
68a5e97b
KH
27982000-06-20 Kenichi Handa <handa@etl.go.jp>
2799
95417e1e
KH
2800 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
2801
68a5e97b
KH
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
3b4fa1b2
DL
28142000-06-19 Dave Love <fx@gnu.org>
2815
943e731c
DL
2816 * syntax.c (Fparse_partial_sexp): Doc fix.
2817
2818 * regex.h: Test PROTOTYPES as well as __STDC__.
2819
3b4fa1b2
DL
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
cdf0357b
GM
28282000-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
998e9f8c
DL
28412000-06-19 Dave Love <fx@gnu.org>
2842
2843 * mktime.c: Unprotoized.
2844
18e21ce8 28452000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
2846
2847 * data.c (set_internal): If variable is frame-local,
2848 store the new value immediately into the frame parameter alist.
2849
140c4ac6
KR
28502000-06-19 Ken Raeburn <raeburn@gnu.org>
2851
14358466
KR
2852 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
2853 in the custom handler pointer.
2854
140c4ac6
KR
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
10d7bf84
KH
28602000-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
52e386c2
KR
28792000-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
b357b9d4
KR
29012000-06-16 Ken Raeburn <raeburn@gnu.org>
2902
2903 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
2904 termination of string. Fix sense of test whether
2905 Vline_number_display_limit is an integer.
b357b9d4 2906
a871441d
GM
29072000-06-16 Gerd Moellmann <gerd@gnu.org>
2908
a9021acd
GM
2909 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
2910 only if HAVE_X_WINDOWS.
2911
6344985d
GM
2912 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
2913 of titles.
2914
427ec082 2915 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
2916 out of bounds.
2917
228b083e
EZ
29182000-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
c25b53a2
KH
29232000-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
a6981b11
GM
29282000-06-15 Gerd Moellmann <gerd@gnu.org>
2929
e9924e52
GM
2930 * atimer.c (alarm_signal_handler): Add forward declaration.
2931
a6981b11
GM
2932 * data.c (set_internal): Remove debug code.
2933
25fa6deb
GM
29342000-06-14 Gerd Moellmann <gerd@gnu.org>
2935
dce6b995
GM
2936 * Makefile.in (bootstrap-temacs): Add `-I../src'.
2937
9f817ea4
GM
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
8a4e3c0c
GM
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
427ec082 2949 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
2950 function does something useful even when message_buf_print is
2951 already set.
2952
25fa6deb
GM
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.
8a4e3c0c 2959 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
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
163dcff3
GM
29702000-06-13 Gerd Moellmann <gerd@gnu.org>
2971
1681ead6
GM
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
163dcff3
GM
2980 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
2981
18e21ce8 29822000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
2983
2984 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 2985
163dcff3
GM
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
a704139d
EZ
29932000-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
9b6610db
EZ
29982000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
2999
3000 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
3001
c68833d2
JR
30022000-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
ed1056b3
GM
30122000-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
5050a2ef
KH
30262000-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
fb1b041d
DL
30382000-06-11 Dave Love <fx@gnu.org>
3039
3040 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
3041
ff96b5f4
EZ
30422000-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
db8eeecd
GM
30462000-06-11 Gerd Moellmann <gerd@gnu.org>
3047
ed1056b3 3048 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
3049 to `XEvent *'.
3050
49b71c5f
KH
30512000-06-10 Kenichi Handa <handa@etl.go.jp>
3052
c479bd55
KH
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
ff6a65c2
KH
3057 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
3058 and dst_multibyte members of coding.
3059
49b71c5f
KH
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
9e80b57d
KR
30692000-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
f83fe4b4
GM
30742000-06-08 Gerd Moellmann <gerd@gnu.org>
3075
3076 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 3077 will be translated to a switch-frame event when reading the
f83fe4b4
GM
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
0890801b
KH
30942000-06-08 Kenichi Handa <handa@etl.go.jp>
3095
3096 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
3097 charset.
3098
173cbca8
GM
30992000-06-07 Gerd Moellmann <gerd@gnu.org>
3100
3091c2a6
GM
3101 * window.c (displayed_window_lines): Take empty lines at
3102 the bottom of a window into account.
427ec082 3103
f38952fe
GM
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
427ec082 3112 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
3113 put the cursor.
3114
6ba6c818
KH
31152000-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
5f1aea9a
GM
31202000-06-06 Gerd Moellmann <gerd@gnu.org>
3121
666852af
GM
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
d13f3e2e
GM
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
5f1aea9a
GM
3144 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
3145 this isn't true for images with `:ascent 100'.
3146
10cda9b0
KH
31472000-06-06 Kenichi Handa <handa@etl.go.jp>
3148
ed00559d
KH
3149 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
3150 as modified if it is originally unmodified.
3151
10cda9b0
KH
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
1969fae2
GM
31592000-06-05 Gerd Moellmann <gerd@gnu.org>
3160
3161 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
3162
162ccef4
DL
31632000-06-05 Dave Love <fx@gnu.org>
3164
f19f32dd
DL
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
427ec082 3194 * s/irix4-0.h:
162ccef4
DL
3195 * s/irix5-0.h:
3196 * s/netbsd.h: Don't define autoconfiscated MATHERR.
3197
2082fe81
DL
31982000-06-02 Dave Love <fx@gnu.org>
3199
3200 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
3201
dcf671d2
GM
32022000-06-02 Gerd Moellmann <gerd@gnu.org>
3203
3204 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 3205 result face, set flags in that face indicating that colors may not
dcf671d2
GM
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
d42122a3
DL
32112000-06-02 Dave Love <fx@gnu.org>
3212
3213 * sysdep.c: Conditionally include stdlib.h, unistd.h.
3214 (VFORK_RETURN_TYPE): Remove.
427ec082 3215
d42122a3
DL
3216 * config.in: Add NO_MATHERR.
3217
dd432f16
DL
32182000-06-01 Dave Love <fx@gnu.org>
3219
90aa4ea8
DL
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
2330c9d4
DL
3228 * callint.c (Fcall_interactively): Doc fix.
3229
dd432f16
DL
3230 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
3231
bf9e8804
DL
32322000-05-31 Dave Love <fx@gnu.org>
3233
3234 * textprop.c: Revert last change -- duplicated.
3235
3694b4ab
GM
32362000-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
f14156cd
JR
32432000-05-31 Jason Rumney <jasonr@gnu.org>
3244
8119aab8
JR
3245 * search.c (Fre_search_forward, Fre_search_backward)
3246 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
3247
f14156cd
JR
3248 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
3249
4aab9be3
JR
32502000-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
10fc3187
GM
33302000-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
d0555360
KH
33352000-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
f1ad044f
SM
33402000-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
84ec3b4b
GM
33452000-05-29 Gerd Moellmann <gerd@gnu.org>
3346
66254a13
GM
3347 * syntax.c (find_defun_start): Move test for
3348 open_paren_in_column_0_is_defun_start outside of the loop.
3349
49e70dec
GM
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
84ec3b4b
GM
3354 * xfaces.c (free_realized_faces): Block/unblock input.
3355 (free_realized_multibyte_face): Ditto.
3356
869a3a14
DL
33572000-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
84ec3b4b 3379 * lisp.h (get_local_map): Don't declare here.
869a3a14 3380
89d0c844
KH
33812000-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
797a084a
EZ
33972000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
3398
3399 * charset.c (syms_of_charset): Revert last change.
3400
cf872af5
EZ
34012000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
3402
3403 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
3404 charsets as unibyte, with 1-column screen width. Sent by Kenichi
3405 Handa.
cf872af5 3406
5b1ae051
EZ
34072000-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
34ec9ebe
GM
34122000-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
dd854dc2
DL
34192000-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
ba9f8f95
KH
34272000-05-26 Kenichi Handa <handa@etl.go.jp>
3428
0f3e0672
KH
3429 * charset.c (init_charset_once): Set the table bytes_by_char_head
3430 correctly.
3431
cebefb44
KH
3432 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
3433 the default fontset to what Emacs uses by default.
0f3e0672
KH
3434 (check_registry_encoding): This function deleted.
3435 (Fset_fontset_font): Remove the adhoc condition for the default
3436 fontset. Allow cons in FONTNAME.
cebefb44 3437
0f3e0672
KH
3438 * fns.c (map_char_table): Ignore char-table entries for
3439 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 3440
7a18af49
KR
34412000-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
d2af47df
SM
34462000-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
fc6a6a4e
GM
34512000-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
005f0d35
DL
34562000-05-25 Dave Love <fx@gnu.org>
3457
02513cdd
DL
3458 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
3459
005f0d35
DL
3460 * coding.c (encode_eol): Add null statement after label.
3461
89f6ca4e
EZ
34622000-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
a4e1759e
KH
34672000-05-25 Kenichi Handa <handa@etl.go.jp>
3468
3469 * ccl.c (ccl_driver): Fix previous change.
3470
eacfd7fe
KH
34712000-05-25 Kenichi Handa <handa@etl.go.jp>
3472
46ab33a9
KH
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
eacfd7fe
KH
3479 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
3480 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
3481 eight-bit-graphic correctly.
3482
f8569325
DL
34832000-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
04545643
GM
34892000-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
747d90ea
KH
34942000-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
716e3b88
GM
35002000-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.
427ec082 3512
9aeb39fa
EZ
35132000-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
29ced61b
KH
35202000-05-23 Kenichi Handa <handa@etl.go.jp>
3521
0574a2ed
KH
3522 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
3523 unconditionally.
3524
3d80f24d
KH
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
29ced61b
KH
3530 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
3531
d7e00792
KH
35322000-05-22 Kenichi Handa <handa@etl.go.jp>
3533
c9d80d38
KH
3534 * keyboard.c (read_char): Allow character codes 128..255 to be
3535 handled by input-method-function.
3536
d7e00792
KH
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
087121cc 35412000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 3542
087121cc
GM
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
c9671f81
KH
35552000-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.
ce75fd23 3579
c9671f81
KH
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
bd4bde7f 3649 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
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.
bd4bde7f 3740 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
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.
427ec082 3783
c9671f81
KH
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
5f64c9e0
GM
38442000-05-19 Gerd Moellmann <gerd@gnu.org>
3845
2b63d473
GM
3846 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
3847 buffer.
3848
5f64c9e0
GM
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
813086ea
KH
38602000-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
bdaebbf0
DL
38782000-05-16 Dave Love <fx@gnu.org>
3879
3880 * m/iris5d.h: Deleted -- unused.
3881
cb613bb8
GM
38822000-05-16 Gerd Moellmann <gerd@gnu.org>
3883
b15f3b77
GM
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
835c1b36
GM
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
cb613bb8
GM
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
f685bea9
EZ
39012000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
3902
3903 * window.c (coordinates_in_window): Subtract 1 when computing
3904 right_x.
3905
a1b8d58b
GM
39062000-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
a265079f
GM
39122000-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
da4496b6
GM
39172000-05-11 Gerd Moellmann <gerd@gnu.org>
3918
0ace421a
GM
3919 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
3920 of the message to message_dolog.
3921
1172eb8d
GM
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
da4496b6
GM
3926 * xdisp.c (handle_single_display_prop): Don't try to set PT if
3927 we're interating over a string.
3928
0623e40f
DL
39292000-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
bae2503b
DL
39352000-05-04 Dave Love <fx@gnu.org>
3936
3937 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
3938
ec82fb2f
GM
39392000-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
cbf18892
GM
39452000-05-03 Gerd Moellmann <gerd@gnu.org>
3946
4ff40dd0
GM
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
cbf18892
GM
3952 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
3953 that x_per_char_metric returns null.
3954
1b0672c3
GM
39552000-05-02 Gerd Moellmann <gerd@gnu.org>
3956
576da55d
GM
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
1b0672c3
GM
3983 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
3984 to the limits, increase the limits.
3985
0d7811ed
KH
39862000-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
a943a5ca
GM
39922000-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
5dba1e29
KH
39972000-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
353964e3
GM
40022000-04-27 Gerd Moellmann <gerd@gnu.org>
4003
c76e04a8
GM
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
353964e3
GM
4025 * lread.c (end_of_file_error): New function.
4026 (read1): Call it instead of signaling `end-of-file' directly.
4027
427ec082 4028 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
4029 with Fprinc instead of Fprin1.
4030
24d744ac
KR
40312000-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
7464346d
GM
40402000-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
612839b6
GM
40462000-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
cc181e95
GM
40602000-04-24 Gerd Moellmann <gerd@gnu.org>
4061
abfcc168
GM
4062 * fileio.c (Fdo_auto_save): Create directories for auto-save
4063 list file if necessary.
4064
cc181e95
GM
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.
427ec082 4078
cc181e95
GM
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'.
abfcc168 4083 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
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
58827478
GM
40992000-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
25a87f42
GM
41052000-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
54edf5c2
KH
41112000-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
3a64eef5
GM
41162000-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
6142fdcb
DL
41282000-04-19 Dave Love <fx@gnu.org>
4129
4130 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
4131 (concat): Don't allow numeric args.
4132 (Fconcat): Doc change.
6142fdcb 4133
ac6b5352
SM
41342000-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
cb9215e4
GM
41402000-04-19 Gerd Moellmann <gerd@gnu.org>
4141
5e3dac3f
GM
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
cb9215e4
GM
4148 * m/alpha.h (_LP64) [!_LP64]: Define.
4149 (ORDINARY_LINK): Define for NetBSD.
4150
4151 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 4152
f532dca0
DL
41532000-04-19 Dave Love <fx@gnu.org>
4154
c750667e
DL
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
f532dca0
DL
4162 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
4163
1c7e22fd
GM
41642000-04-18 Gerd Moellmann <gerd@gnu.org>
4165
f6d3257b
GM
4166 * lread.c (read_filtered_event): Cancel and start busy cursor.
4167
427ec082 4168 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
4169 that the per-character metrics may be null.
4170
e10f64e7
GM
41712000-04-17 Gerd Moellmann <gerd@gnu.org>
4172
0daee095
GM
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
e10f64e7
GM
4177 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
4178
38687d43
DL
41792000-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
c21c7262
GM
41882000-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
314767c0
DL
41942000-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
a2522dca
GM
42082000-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
33744b5d
DL
42142000-04-14 Dave Love <fx@gnu.org>
4215
c21c7262 4216 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
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
9d3d5916
KH
42302000-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
198e3c7a
GM
42352000-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
055a28c9
EZ
42462000-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
f5c75033
DL
42522000-04-12 Dave Love <fx@gnu.org>
4253
4254 * fns.c (mapcar1): Test for null vals to support mapc.
4255 (Fmapc): New function.
4256
0c3cfc51
EZ
42572000-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
33465a31
DL
42632000-04-10 Dave Love <fx@gnu.org>
4264
4265 * editfns.c (preceding-char, following-char): Doc fix.
4266
6ed56568
KR
42672000-04-10 Ken Raeburn <raeburn@gnu.org>
4268
4269 * Makefile.in (temacs): Revert 2000-03-12 change.
4270
7cf80d4e
JR
42712000-04-10 Jason Rumney <jasonr@gnu.org>
4272
4273 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
4274
34f3f342
GM
42752000-04-10 Gerd Moellmann <gerd@gnu.org>
4276
1a1b1895
GM
4277 * xdisp.c (setup_echo_area_for_printing): Choose an echo
4278 area buffer, if it's not set up yet.
4279
34f3f342
GM
4280 * indent.c (compute_motion): Set immediate_quit.
4281
be0dbdab
GM
42822000-04-09 Gerd Moellmann <gerd@gnu.org>
4283
c45be9ac
GM
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
be0dbdab
GM
4292 * buffer.c (Frestore_buffer_modified_p): New function.
4293 (syms_of_buffer): Defsubr it.
4294
e8413c3b
KR
42952000-04-08 Ken Raeburn <raeburn@gnu.org>
4296
87f67317
KR
4297 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
4298 charset id (int) argument, not a charset (Lisp_Object).
4299
e8413c3b
KR
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
7c752c80
KR
43082000-04-05 Ken Raeburn <raeburn@gnu.org>
4309
c0333abc
KR
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
7c752c80
KR
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
74e49b38
KR
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
685e5ed2
GM
43392000-04-04 Gerd Moellmann <gerd@gnu.org>
4340
c407c570
GM
4341 * window.c (compare_window_configurations): Signal an error
4342 if parameters C1 or C2 aren't window configurations.
4343
685e5ed2
GM
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
587a49ab
GM
43482000-04-03 Gerd Moellmann <gerd@gnu.org>
4349
62f20204
GM
4350 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
4351 an error if decoding fails.
4352
587a49ab
GM
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
2d1675e4
SM
43742000-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
cc2d8c6b
KR
43972000-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
09654086
KR
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
2387b382
KR
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.
c01fbf95
KR
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
27660e89
GM
44182000-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
3578db3c
KR
44272000-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
6fc556fd
KR
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.
587a49ab
GM
4442 (back_to_previous_visible_line_start)
4443 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
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.
587a49ab
GM
4447 (mark_window_display_accurate, insert_left_trunc_glyphs)
4448 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
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
6e7b2457
GM
44632000-04-01 Gerd Moellmann <gerd@gnu.org>
4464
610d841e
GM
4465 * xfaces.c (realize_basic_faces): Block input while realizing
4466 the faces.
4467
6e7b2457
GM
4468 * keyboard.c (lispy_mouse_names): Add additional mouse names.
4469
4470 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
4471
aa110c0c
GM
44722000-03-31 Gerd Moellmann <gerd@gnu.org>
4473
4474 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 4475 or ASCII, handle case that per-char metric is null.
aa110c0c 4476
8801a864
KR
44772000-03-30 Ken Raeburn <raeburn@gnu.org>
4478
c6129d7e
KR
4479 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
4480
8801a864
KR
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
8e7af858
GM
45012000-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
e0b8c689
KR
45172000-03-29 Ken Raeburn <raeburn@gnu.org>
4518
b96f9fb7
KR
4519 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
4520
4521 * emacs.c (main): Fix sense of no-loadup test.
4522
e0b8c689
KR
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
f83c5440
GM
45492000-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
fdce64ff
KH
45582000-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
f6a3f532
SM
45642000-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
e9b309ac
DL
45752000-03-28 Dave Love <fx@gnu.org>
4576
bb15bd9a
DL
4577 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
4578 alpha.
4579
e9b309ac
DL
4580 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
4581
ed0767d8
SM
45822000-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
e11e7e46
JR
45962000-03-28 Jason Rumney <jasonr@gnu.org>
4597
4598 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
4599
88faab89
GM
46002000-03-27 Gerd Moellmann <gerd@gnu.org>
4601
182ff242
GM
4602 * s/freebsd.h (GC_SETJMP_WORKS): Define.
4603
4604 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 4605
182ff242
GM
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
c1005d06
GM
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
427ec082 4620 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
4621 MULTIBYTE_P.
4622
7439e5b9 4623 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
4624 buffers because it looks for multibyte character byte sequences
4625 which don't exist in unibyte text.
7439e5b9 4626
d9c545da
GM
4627 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
4628
11fd416e 4629 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
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
11fd416e
GM
4649 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
4650 names for handling per-buffer variables.
d9c545da
GM
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
88faab89
GM
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
d80f42b7
SM
46632000-03-26 Stefan Monnier <monnier@cs.yale.edu>
4664
4665 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 4666 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 4667 opcode.
d80f42b7
SM
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
89e80928
GM
46732000-03-26 Gerd Moellmann <gerd@gnu.org>
4674
3d4ff2dd
GM
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
bd96bd79
GM
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
19d1bc27
GM
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
89e80928
GM
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
9a0dd3dc
GM
47292000-03-24 Gerd Moellmann <gerd@gnu.org>
4730
b68c375f
GM
4731 * xterm.c (x_term_init): Unblock input around call1 of
4732 Qvendor_specific_keysyms.
4733
9a0dd3dc
GM
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
7973e637
SM
47392000-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
39210e90
GM
47442000-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
72db3ab5
GM
47492000-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
990b2375
SM
47542000-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
ff4df011
JR
47592000-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.
427ec082 4766
ff4df011
JR
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
47822000-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
439d5cb4
KR
48162000-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
ee1c5b21
GM
48482000-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
1fb352e0
SM
48552000-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
fdaa1f77
KH
48712000-03-22 Kenichi Handa <handa@etl.go.jp>
4872
ff1a0d8e
KH
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.
fdaa1f77 4876
d152fb46
DL
48772000-03-21 Dave Love <fx@gnu.org>
4878
4879 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
4880 doc string.
4881
d2cafc8c
GM
48822000-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
9111d4b5
KH
48892000-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
6c4bfdc0
KH
4895 * Makefile.in (fontset.o): Depend on dispextern.h.
4896
4897 * alloc.c (mark_face_cache): Don't mark face->registry.
4898
9111d4b5
KH
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
6c4bfdc0
KH
4953 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
4954
9111d4b5
KH
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
6c4bfdc0
KH
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.
9111d4b5
KH
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
b33dd3b0
GM
50442000-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
4e8a9132
SM
50542000-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
2136fdd4
GM
50772000-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
18e21ce8 50852000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
5086
5087 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
5088
d7b511c4
GM
50892000-03-18 Gerd Moellmann <gerd@gnu.org>
5090
5091 * lread.c (read_integer): Unread the last char not consumed.
5092
16b5d424
GM
50932000-03-17 Gerd Moellmann <gerd@gnu.org>
5094
5095 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 5096 which are in the process of being deleted.
16b5d424 5097
1fa28578
GM
50982000-03-16 Gerd Moellmann <gerd@gnu.org>
5099
83488cce
GM
5100 * Makefile.in (mostlyclean): Add `*.core'.
5101 (clean): Add `bootstrap-emacs'.
5102
1fa28578
GM
5103 * lread.c (read_integer): New function.
5104 (read1): Support read syntax #o, #x, #b, #r.
5105
99633e97
SM
51062000-03-15 Stefan Monnier <monnier@cs.yale.edu>
5107
1fa28578
GM
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.
99633e97
SM
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'.
1fa28578
GM
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'.
99633e97
SM
5117 (store_op1, store_op2, insert_op1, insert_op2)
5118 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
5119 (group_in_compile_stack): Move to after its arg's types are
5120 declared and add a prototype.
99633e97 5121 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
5122 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
5123 wrapper.
99633e97 5124 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
5125 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
5126 indentation of the greedy-op and shy-group code.
99633e97
SM
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.
1fa28578
GM
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.
99633e97 5134
699238d9
GM
51352000-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
34e23e5a
GM
51492000-03-14 Gerd Moellmann <gerd@gnu.org>
5150
9c763cca
GM
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
34e23e5a
GM
5169 * xterm.c (x_term_init): Add support for X resource `synchronous'.
5170 If set, call XSynchronize.
5171
66f0296e
SM
51722000-03-13 Stefan Monnier <monnier@cs.yale.edu>
5173
34e23e5a
GM
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'.
66f0296e 5179 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
5180 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
5181 code duplication.
66f0296e
SM
5182
5183 * charset.h (GET_CHAR_AFTER_2): Remove.
5184 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
5185
854a025c
KR
51862000-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
b9d2c7e2
DL
51922000-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
5e5dff44
GM
51982000-03-12 Gerd Moellmann <gerd@gnu.org>
5199
9b2f3c38
GM
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
427ec082 5203 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
5204 file name.
5205
e1cff360
GM
5206 * window.c (Fsave_window_excursion): Doc fix.
5207
5e5dff44
GM
5208 * xfns.c (x_defined_color): Rewritten to use
5209 x_allocate_nearest_color.
5210
e411ce4b
EZ
52112000-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
80460654
GM
52282000-03-09 Gerd Moellmann <gerd@gnu.org>
5229
5230 * fns.c (Fy_or_n_p): Cancel busy-cursor.
5231
95cd4c40
SM
52322000-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
80460654
GM
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.
95cd4c40
SM
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.
80460654
GM
5260 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
5261 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 5262 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
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.
95cd4c40
SM
5268 (NUM_FAILURE_ITEMS): Remove.
5269 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
5270 registers before the actual failure point). Don't hardcode any
5271 meaning for str==NULL anymore.
95cd4c40 5272 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
5273 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
5274 Remove.
95cd4c40
SM
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.
80460654
GM
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'.
95cd4c40 5294 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
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.
95cd4c40 5314
7397acc4
DL
53152000-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
5e91ff9e
GM
53282000-03-08 Gerd Moellmann <gerd@gnu.org>
5329
feab4fba
GM
5330 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
5331
25edb08f
GM
5332 * xdisp.c (display_echo_area): Temporarily inhibit garbage
5333 collection.
5334
5e91ff9e
GM
5335 * xfns.c: Remove obsolete code in #if 0.
5336 (Fx_focus_frame): New function.
5337
a735b7e1
KH
53382000-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
9994cc69
GM
53702000-03-07 Gerd Moellmann <gerd@gnu.org>
5371
e9b4e5ff
GM
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
f7daf1e1
GM
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
9994cc69
GM
5379 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
5380 complete but not unique.
5381
4336c705
GM
53822000-03-06 Gerd Moellmann <gerd@gnu.org>
5383
18bb0684
GM
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
4336c705
GM
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
515d0d0e
EZ
53942000-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
100b3cbb
GM
53992000-03-05 Gerd Moellmann <gerd@gnu.org>
5400
50df5e5a 5401 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 5402 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
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
100b3cbb 5415 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 5416 it is obviously invalid.
100b3cbb
GM
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
64d739c4
GM
54272000-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
c3cee013
JR
54532000-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.
64d739c4 5457 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
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.
64d739c4 5472 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
5473 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
5474
64d739c4 5475 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
5476 syms_of_w32faces.
5477
5478 * makefile.nt (w32faces.obj): Remove.
5479 (xfaces.obj): Add.
5480
807cc41c
JR
54812000-03-03 Jason Rumney <jasonr@gnu.org>
5482
5483 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
5484 correct parameters.
5485
0007072a
KR
54862000-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
71a6ba55
GM
54912000-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
64d739c4
GM
5498 char, replace occurrences of unprintable chars with a suitably
5499 chosen usable default char.
71a6ba55 5500
900fa1f1
GM
55012000-03-02 Gerd Moellmann <gerd@gnu.org>
5502
42f55fe0
GM
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
900fa1f1
GM
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
2f950292
EZ
55182000-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
54d04320
DL
55242000-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
0ba93ac4
KH
55312000-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
a2bc11d4
JR
55372000-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
72d19d75
GM
55562000-03-01 Gerd Moellmann <gerd@gnu.org>
5557
2df636f4
GM
5558 * sysdep.c (start_of_text): Don't define this function for NetBSD
5559 with ELF.
5560
427ec082 5561 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
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
72d19d75
GM
5570 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
5571
ed4d0512
GM
55722000-02-29 Gerd Moellmann <gerd@gnu.org>
5573
50b1039f
GM
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
ed4d0512
GM
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
387023ee
JR
55882000-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
4516715a
DL
56142000-02-27 Dave Love <fx@gnu.org>
5615
5616 * lisp.h: Add a bunch of prototypes.
5617
171ca836
KH
56182000-02-26 Kenichi Handa <handa@etl.go.jp>
5619
5620 * keyboard.c (read_char): Set `usec' correctly.
5621
4013921d
KH
56222000-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
9244a058
GM
56292000-02-25 Gerd Moellmann <gerd@gnu.org>
5630
2df636f4 5631 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 5632
18e21ce8 56332000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 5634
f43d79c1
GM
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
bed0c171
GM
56452000-02-25 Gerd Moellmann <gerd@gnu.org>
5646
449c3c52
GM
5647 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
5648
f5b58615
GM
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
4eb8436f
GM
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
3cb65b0e
GM
5686 * lread.c (Fload): Use `xfree' instead of `free'.
5687 (init_obarray): Use `xmalloc' instead of `malloc'.
5688
bed0c171
GM
5689 * window.c (Fset_window_buffer): Set WINDOW to the window
5690 after decoding.
2add4349
GM
5691 (coordinates_in_window): Take frame's internal border width
5692 into account.
bed0c171 5693
42088c12
GM
56942000-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
d1e103b2
GM
57032000-02-23 Gerd Moellmann <gerd@gnu.org>
5704
723e779c
GM
5705 * data.c (Fstring_to_number): If number is greater than what
5706 fits into an integer, return a float.
5707
d1e103b2
GM
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
214f877f
KH
57172000-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.
42088c12 5724 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
5725 characters.
5726
130adcb7
EZ
57272000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
5728
3cb65b0e 5729 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 5730 a deleted frame.
130adcb7 5731
17cbbf95
GM
57322000-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
beb0bc36
DL
57392000-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
1d92afcd
GM
57472000-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.
329eed9f
GM
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
18e21ce8 57592000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
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
1d4311c3
EZ
57662000-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
2dc95ddd
DL
57712000-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
f0930f35
GM
57812000-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
e3d4de90
DL
57862000-02-17 Dave Love <fx@gnu.org>
5787
5788 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
5789
0b378936
GM
57902000-02-17 Gerd Moellmann <gerd@gnu.org>
5791
d621caf7
GM
5792 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
5793
0b378936
GM
5794 * alloc.c (enum mem_type): Compile unconditionally.
5795
3b451f74
EZ
57962000-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
10689a01
GM
58012000-02-17 Gerd Moellmann <gerd@gnu.org>
5802
1216f5e4
GM
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.
427ec082 5809 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
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.
427ec082 5824 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
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
2503c8b1
GM
5844 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
5845 that unblocks alarms.
5846
8389e1e2
GM
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
10689a01 5851 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 5852
bfc17d18
KH
58532000-02-17 Kenichi Handa <handa@etl.go.jp>
5854
4a09dee0
KH
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.
bfc17d18 5858
2b927d02
SM
58592000-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
b49cb764
GM
58642000-02-16 Gerd Moellmann <gerd@gnu.org>
5865
5866 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
5867
99e95407
GM
58682000-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]:
b49cb764 5873 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
5874 write(2).
5875
6ffd3cf7
RS
58762000-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
cad53475
GM
58862000-02-15 Gerd Moellmann <gerd@gnu.org>
5887
5888 * window.c (Fsave_window_excursion): Doc fix.
5889
1aa963c8
SM
58902000-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
b9b84fd3
SM
58992000-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
3a28db80
DL
59042000-02-14 Dave Love <fx@gnu.org>
5905
5906 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
5907
fb4a568d
SM
59082000-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
1063ebb5
DL
59162000-02-12 Dave Love <fx@gnu.org>
5917
5918 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
5919 Alpha.
5920
fb07a302
GM
59212000-02-12 Gerd Moellmann <gerd@gnu.org>
5922
5923 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
5924
aaf2320c
DL
59252000-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:
fb07a302
GM
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.
aaf2320c
DL
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
eedf8bde
GM
59392000-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.
427ec082 5953
eedf8bde
GM
5954 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
5955
8476c2f8
KR
59562000-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
0e85e4a3
KH
59622000-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
97fa0cc8
DL
59672000-02-10 Dave Love <fx@gnu.org>
5968
5969 * xfns.c (create_frame_xic): Fix initialization of automatic
5970 aggregates for pcc.
5971
25566a3c
KH
59722000-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
69da54ba
DL
59792000-02-08 Dave Love <fx@gnu.org>
5980
5981 * lread.c (__EXTENSIONS__): Define.
5982
f7136ee8
GM
59832000-02-08 Gerd Moellmann <gerd@gnu.org>
5984
5985 * puresize.h (BASE_PURESIZE): Increase to 650000.
5986
7768790b
EZ
59872000-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
38fd211b
EZ
59922000-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
66e4690f
KR
59972000-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
a75dfea0
AI
60022000-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
59ddecde
GM
60322000-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
07590973
DL
60402000-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
649351f9
EZ
60512000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
6052
6053 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
6054
66e4690f 60552000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
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
66e4690f 60612000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
6062
6063 * puresize.h (BASE_PURESIZE): Increase to 610000.
6064
d240a249
GM
60652000-02-02 Gerd Moellmann <gerd@gnu.org>
6066
6067 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
6068 can GC.
6069
ca91fb26
KH
60702000-02-02 Kenichi Handa <handa@etl.go.jp>
6071
25660570
KH
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
ca91fb26
KH
6077 * fileio.c (e_write): Fix the handling of
6078 CODING_FINISH_INSUFFICIENT_SRC.
6079
2ede9689
DL
60802000-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
b6680a0e
GM
60962000-01-31 Gerd Moellmann <gerd@gnu.org>
6097
2cb750ba
GM
6098 * xterm.c (xim_open_dpy): Remove unused local variable.
6099
74e9213b
GM
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
b6680a0e
GM
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
994c5afe
GM
61102000-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.
427ec082 6115
f00276e3
JR
61162000-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
b08e8bb2
GM
61602000-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.
427ec082 6175
b08e8bb2
GM
61762000-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
142e109c
DL
62072000-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
b02786f9
GM
62132000-01-28 Gerd Moellmann <gerd@gnu.org>
6214
d060bc9f
GM
6215 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
6216 for *scratch* if it already existed.
6217
b02786f9
GM
6218 * emacs.c (USAGE): New macro.
6219 (main): Use it to display usage information.
6220
2c52d7e4
EZ
62212000-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
ffe0bcd1
GM
62452000-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
50dbd23f
EZ
62512000-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
f5941bf8
GM
62562000-01-26 Dave Love <fx@gnu.org>
6257
6c67ddee
DL
6258 * editfns.c (Fchar_after, Fchar_before): Doc fix.
6259
f5941bf8
GM
6260 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
6261 an error may be signalled.
6262
9e49c990
GM
62632000-01-26 Gerd Moellmann <gerd@gnu.org>
6264
fc3cb460
GM
6265 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
6266 LD_SWITCH_SYSTEM inherited from irix5-0.h.
6267
9e49c990
GM
6268 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
6269
d0c037d8
GM
62702000-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
e12489f9
GM
62752000-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.
427ec082 6298
e12489f9
GM
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.
427ec082 6323
1e5279b9
DL
63242000-01-24 Dave Love <fx@gnu.org>
6325
6c67ddee 6326 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
6327 Don't use -cckr -- apparently not now necessary.
6328
edf6aeb8
EZ
63292000-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
9badad41
JR
63342000-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
63bd786b
JR
63572000-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
6ffd3cf7 64002000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
6401
6402 * data.c (set_internal): Further fix in same criterion.
6403
6ffd3cf7 64042000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
6405
6406 * data.c (set_internal): Fix the criteria for whether
6407 to swap out the old cached binding.
6408
60af03f1
DL
64092000-01-19 Dave Love <fx@gnu.org>
6410
6411 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
6412
f9be074f
KH
64132000-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
52b8dbf9
GM
64182000-01-17 Gerd Moellmann <gerd@gnu.org>
6419
d36100c9
GM
6420 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
6421
52b8dbf9
GM
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
3139018f
GM
64412000-01-13 Gerd Moellmann <gerd@gnu.org>
6442
6443 * sound.c (Fplay_sound): Improve doc string.
6444
83c8f461
RS
64452000-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.
427ec082 6455
83c8f461
RS
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.
427ec082 6459
1fab1775
GM
64602000-01-11 Gerd Moellmann <gerd@gnu.org>
6461
6462 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
6463 xprintsym.
6464
83c8f461 64652000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
6466
6467 * minibuf.c (Ftry_completion): Doc fix.
6468
7a85e4df
GM
64692000-01-11 Gerd Moellmann <gerd@gnu.org>
6470
6471 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
6472 vector, too.
6473
a970dae4
AS
64742000-01-11 Andreas Schwab <schwab@suse.de>
6475
6476 * coding.c (code_convert_region): Initialize total_skip.
6477
c65d14ee
DL
64782000-01-08 Dave Love <fx@gnu.org>
6479
6480 * eval.c (Fuser_variable_p): Check customizability too.
6481
834938d2
GM
64822000-01-07 Gerd Moellmann <gerd@gnu.org>
6483
6484 * minibuf.c (Fcompleting_read): Doc fix.
6485
e0303cd6
GM
64862000-01-05 Gerd Moellmann <gerd@gnu.org>
6487
8a26744b
GM
6488 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
6489 -L /usr/local/lib.
6490
e0303cd6
GM
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.
427ec082 6495
2e471eb5
GM
64962000-01-04 Gerd Moellmann <gerd@gnu.org>
6497
560a7bd2
GM
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
f9ee84a3
GM
6503 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
6504 macros statement form.
6505
d1299cde
GM
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.
427ec082 6514 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
6515 needed header size.
6516 (wav_play, au_play): Play sounds from string data.
6517
2e471eb5
GM
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.
427ec082 6560 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
6561 symbol names.
6562 (compact_strings): Removed.
6563
42608ba8
EZ
65642000-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
e0a09e1a
KH
65692000-01-04 Kenichi Handa <handa@etl.go.jp>
6570
dd9f0750 6571 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 6572 in a non-empty buffer.
dd9f0750 6573
3c0f3b15 6574 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 6575
44cd3ae5
GM
65762000-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
c182a70f
EZ
65832000-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
24480d5b
EZ
65882000-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.
aaf2320c 6597 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
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
047f434a
GM
66052000-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
d684c676
EZ
66152000-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
5fe1d139
EZ
66202000-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
816be8b8
EZ
66312000-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
b635321e
EZ
66362000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
6637
6638 * dispnew.c (mode_line_string): Support termcap frames as well.
6639
9b784e96
GM
66402000-01-01 Gerd Moellmann <gerd@gnu.org>
6641
27189709
GM
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
45158a91
GM
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
9b784e96
GM
6666 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
6667 color indices when accessing raster pixels.
63cec32f
GM
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.
9b784e96 6676
2cb085db 6677See ChangeLog.8 for earlier changes.
6922b018
KH
6678
6679;; Local Variables:
49b3bd82 6680;; coding: iso-2022-7bit
6922b018 6681;; End: