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