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