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