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