shell-write-history-on-exit: make sure the error message goes to the right buffer
[bpt/emacs.git] / src / ChangeLog
CommitLineData
c09a6440
KH
12001-01-28 Kenichi Handa <handa@etl.go.jp>
2
3 * fontset.c (font_family_registry): Even if FONTNAME conform to
4 XLFD, if it specifies other fields than family and registry,
5 return FONTANME. New argument FORCE if nonzero cancel that
6 feature.
7 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
8 a signle byte character. Don't set FAMILY part to nil here. It
9 is handled by the caller choose_face_font.
10 (Fnew_fontset): Call font_family_registry with FORCE 0.
11 (Fset_fontset_font): Likewise.
12
4dcd74e6
GM
132001-01-27 Gerd Moellmann <gerd@gnu.org>
14
15 * xdisp.c (display_line): Don't treat a newline as fitting
16 on the line.
17
d2906bf8
GM
182001-01-26 Gerd Moellmann <gerd@gnu.org>
19
0130fe1a
GM
20 * window.c (size_window): Set the window's orig_top to nil when
21 changing heights, so that a future shrink_mini_window won't
22 restore a bogus height.
23
550f0e6a
GM
24 * frame.c (do_switch_frame): If selected frame has a mini-window,
25 resize that to exact size.
26
b7b20fbd
GM
27 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
28
a47b7816
GM
29 * xdisp.c (display_line): Simplify check for glyphs fitting
30 entirely in the line.
31
d2906bf8
GM
32 * xfns.c (xic_style): New variable.
33 (create_frame_xic): Move static variable to global scope for
550f0e6a 34 the case that `static' gets defined away.
d2906bf8 35
73df2b1e
KH
362001-01-26 Kenichi Handa <handa@etl.go.jp>
37
38 * coding.c (decode_coding): Set a flag for inhibiting
39 inconsistent eol.
40 (code_convert_region): Always set saved_coding_symbol.
41 (decode_coding_string): Likewise. Update coding->symbol when we
42 encounter a inconsistent eol by the same way as
43 code_convert_region.
44
6613cfc4
GM
452001-01-25 Gerd Moellmann <gerd@gnu.org>
46
c5e6e06b
GM
47 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
48 XClearArea.
49
50 * xterm.c (x_after_update_window_line): Don't clear if frame's
51 internal border width is zero.
52 (x_clear_area): New function.
53 (x_after_update_window_line, x_clear_end_of_line)
54 (x_scroll_bar_create, x_scroll_bar_set_handle)
55 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
56 instead of XClearArea.
57
58 * xterm.h (x_clear_area): Add prototype.
59
6613cfc4
GM
60 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
61 which doesn't seem necessary anymore with Lesstif 0.92.
62
650cc6cc
DL
632001-01-25 Dave Love <fx@gnu.org>
64
34ac3367
DL
65 * puresize.h (BASE_PURESIZE): Up to 720000.
66
650cc6cc
DL
67 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
68
5e37dc22
GM
692001-01-25 Gerd Moellmann <gerd@gnu.org>
70
e1e441f9
GM
71 * xdisp.c (echo_area_display): Don't call redisplay_internal
72 when Emacs is shutting down. We can't run hooks etc. that
73 would be necessary to do a redisplay.
74
5e37dc22
GM
75 * lread.c (read_integer): Use type EMACS_INT instead of int.
76
0fb94c7f
EZ
772001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
78
79 * ccl.c (ccl_driver): Fix last change.
80
e3778624
KH
812001-01-25 Kenichi Handa <handa@etl.go.jp>
82
83 * ccl.h (sturct ccl_program): New member suppress_error.
84
bb264518 85 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
e3778624
KH
86 insert error message to the output.
87 (setup_ccl_program): Initialize ccl->suppress_error to 0.
88
89 * coding.h (struct coding_system): New member suppress_error.
90
91 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
92 (Fset_terminal_coding_system_internal): Set the member
93 suppress_error to 1.
94 (Fset_safe_terminal_coding_system_internal): Likewise.
95
245ed2b1
SM
962001-01-24 Stefan Monnier <monnier@cs.yale.edu>
97
98 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
99 as if it was a `charset'.
100
f9aaedb6
GM
1012001-01-24 Gerd Moellmann <gerd@gnu.org>
102
103 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
104 value in where_is_cache; the next lookup in the cache returns
105 something bogus if we do.
106
c3902c3e
EZ
1072001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
108
109 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
110 if HAVE_WINDOW_SYSTEM isn't defined.
111
3497f73e
GM
1122001-01-24 Gerd Moellmann <gerd@gnu.org>
113
e7e41584
GM
114 * fns.c (sweep_weak_table): Fix code taking items out of
115 the hash collision chain. Some cleanup.
116
3497f73e
GM
117 * xterm.c (x_new_font): Don't change a tooltip's size.
118
119 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
120 background color by specifying a color for the default font
121 in .Xdefaults.
122
3d48e687
KH
1232001-01-24 Kenichi Handa <handa@etl.go.jp>
124
96531b20
KH
125 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
126 a workaround for SunOS 4's cc.
127 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
128 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
129 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
130 statement.
3d48e687 131
a30629d2
GM
1322001-01-23 Gerd Moellmann <gerd@gnu.org>
133
134 * xterm.c (x_set_window_size_1): New function extracted from
135 x_set_window_size.
136 (x_set_window_size): Use it.
137 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
138 doesn't have a widget, like tooltips.
139
5a43decf
EZ
1402001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
141
142 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc
143 fix.
144
b0e98867
KH
1452001-01-23 Kenichi Handa <handa@etl.go.jp>
146
147 * fns.c (Fset_char_table_default): Fix to make sub char-table
148 correctly.
149
50606b4c
GM
1502001-01-22 Gerd Moellmann <gerd@gnu.org>
151
cb2ddc53 152 * xdisp.c (build_desired_tool_bar_string): Make sure we have
a30629d2 153 a desired tool bar string, even if there are no tool bar
cb2ddc53
GM
154 items.
155
57c28064
GM
156 * xdisp.c (Ftool_bar_lines_needed): New function.
157 (syms_of_xdisp): Defsubr it.
158
50606b4c
GM
159 * editfns.c (Fformat): Don't extend text properties from arguments
160 to padding chars in the result.
161
2f169c38
EZ
1622001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
163
164 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
165
0f32f023
AI
1662001-01-20 Andrew Innes <andrewi@gnu.org>
167
168 * w32term.c (w32_ring_bell): Only support visible bell on w32
169 frames.
170 (w32_initialize): Don't set term hooks that aren't actually needed
171 in windowed mode.
172
173 * xfaces.c (realize_default_face):
174 (realize_face):
175 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
176
177 * xdisp.c (handle_single_display_prop): Remove references to
178 FRAME_W32_CONSOLE_P.
179
180 * dispnew.c (Fredraw_frame): Remove reference to
181 FRAME_W32_CONSOLE_P.
182
183 * frame.h (output_method): Remove output_w32_console method.
184 (FRAME_W32_CONSOLE_P): Remove macro.
185
186 * frame.c (Qw32_console): Remove variable.
187 (Fframep): Remove references to it.
188 (syms_of_frame): Ditto.
189 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
190
191 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
192 redefinition.
193
7173eada
KH
1942001-01-20 Kenichi Handa <handa@etl.go.jp>
195
196 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
197
755b45ce
AI
1982001-01-19 Andrew Innes <andrewi@gnu.org>
199
200 * w32.c (init_environment): Add a version-independent site-lisp
201 directory to EMACSLOADPATH, after the version dependent one.
202
0a949811
GM
2032001-01-19 Gerd Moellmann <gerd@gnu.org>
204
8501998a
GM
205 * editfns.c (Fbuffer_substring): Doc fix.
206
0a949811
GM
207 * xdisp.c (message_dolog, message2, message2_nolog): Rename
208 parameter LEN to NBYTES.
209
e6ebcbbe
KH
2102001-01-19 Kenichi Handa <handa@etl.go.jp>
211
200ecca2
KH
212 * charset.c (strwidth): Use c_string_width.
213 (c_string_width): New function.
214 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
215 Caller changed.
216
217 * charset.h (c_string_width, lisp_string_width): Extern them.
218
219 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
220
e6ebcbbe
KH
221 * indent.c (check_composition): Check validity of composition.
222
200ecca2
KH
223 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
224 characters by calling c_string_width.
225 (x_consider_frame_title): Get byte length of frame tile string
226 correctly.
227 (display_mode_element): Pay attention to width of non-ASCII
228 characters by calling strwidth.
229
8692ca92
GM
2302001-01-18 Gerd Moellmann <gerd@gnu.org>
231
8962e303
GM
232 * xfns.c (Qcancel_timer): New variable.
233 (syms_of_xfns): Initialize and staticpro it.
234 (Fx_hide_tip, Fx_show_tip): Use it.
235 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
236 the timer.
237 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
238
91523be9
GM
239 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
240
241 * window.h (WINDOW_LIVE_P): New macro.
242
b0b7ed0e
GM
243 * window.c (window_size_fixed): New variable.
244 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
245 the doc string.
246
06bccf8e
GM
247 * eval.c (specbind): If binding a per-buffer variable which
248 doesn't have a buffer-local value in the current buffer, change
249 the global value by changing the value of the symbol bound in all
250 buffers not having their own value, to make it consistent with
251 what happens with other buffer-local variables.
252
8692ca92
GM
253 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
254
255 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
256 when searching for a newline.
257
bb3a3b50
KH
2582001-01-18 Kenichi Handa <handa@etl.go.jp>
259
260 * xdisp.c (display_string): Fix previous change.
261
c2cc16fa
JR
2622001-01-18 Jason Rumney <jasonr@gnu.org>
263
264 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
265 GLYPH_DEBUG is defined.
266 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
267 true for images with `:ascent 100'.
268 (x_set_mouse_face_gc): If the last used mouse face has gone in the
269 meantime, use face MOUSE_FACE_ID.
270 If first glyph isn't a character glyph, use the ASCII NUL
271 character to determine the face.
272 (expose_area): Do not treat left margin specially.
273 (note_mode_line_highlight): If no local_map, check global keymap.
274 (note_mouse_highlight): Initialize overlay.
275 (clear_mouse_face): Don't return if tip_frame is
276 non-nil.
277 (show_scroll_bars): Remove unused function.
278 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
279 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
280 Clip to row.
281 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be
282 nil.
283 (x_free_frame_resources): Unload relief colors.
284
9c11f79e
GM
2852001-01-17 Gerd Moellmann <gerd@gnu.org>
286
3aec8722
GM
287 * xdisp.c (forward_to_next_line_start): Avoid calling
288 get_next_display_element when the newline is already found. This
289 may change the iterator's position, when its current position is
290 equal to the iterator's stop_charpos.
291
f3ffc2c3
GM
292 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
293 zero, use this method only at the end of a line.
294
a86110a8
GM
295 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
296 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
297 if SCALABLE_FONTS_P is set.
298
d26d6fd9
GM
299 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
300 so that scalable fonts are included.
301
9c11f79e
GM
302 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
303 In the cache, use a key containing the information if scalable
304 fonts are included.
305 (x_load_font): Adapt to change of keys in the font cache.
306
3072001-01-17 Kim F. Storm <storm@filanet.dk>
308
d26d6fd9
GM
309 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
310 XListFonts to take advantage of font caching.
311
9c11f79e
GM
312 * xterm.c (x_list_fonts): Ensure caching font information when
313 called for a null frame, which is the case frequently when Emacs
314 starts.
315
51446987
GM
3162001-01-17 Gerd Moellmann <gerd@gnu.org>
317
f864120f
GM
318 * xfns.c (QCconversion): Replaces QCalgorithm.
319
320 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
321
322 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
323 of :algorithm.
324
e37d1417
GM
325 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
326 not everything could be displayed.
327
51446987
GM
328 * line.h, x-list-font.c: Files removed because unused.
329
9ad4f3e5
AI
3302001-01-17 Andrew Innes <andrewi@gnu.org>
331
332 * dired.c (directory_files_internal): Convert result from readdir
333 to a unibyte string initially, to avoid possible misinterpretation
334 of some bytes as the internal form of Emacs characters.
335
2eda09b5
KH
3362001-01-17 Kenichi Handa <handa@etl.go.jp>
337
338 * fns.c (concat): Be sure to avoid putting the same `composition'
339 property on the adjacent regions.
340
826f3788
GM
3412001-01-16 Gerd Moellmann <gerd@gnu.org>
342
f251459d
GM
343 * window.c (Fset_window_hscroll): Don't set window's min_hscroll
344 here.
345 (Fscroll_right, Fscroll_left): Set it here instead, if called
346 interactively.
347
d57b83b3
GM
348 * buffer.c (Fset_buffer_modified_p): Set buffer's
349 prevent_redisplay_optimizations_p flag.
350
826f3788
GM
351 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
352 * sysdep.c, vmsproc.c, xselect.c: Call
353 redisplay_preserve_echo_area with additional arg.
354
355 * dispextern.h, lisp.h (redisplay_preserve_echo_area): Change
356 prototype.
357
358 * xdisp.c (redisplay_preserve_echo_area): Add parameter
359 FROM_WHERE, for debugging.
360
261d788b
KH
3612001-01-16 Kenichi Handa <handa@etl.go.jp>
362
363 * ccl.c (Fregister_ccl_program): Handle the return value of
364 resolve_symbol_ccl_program correctly.
bda6b481
KH
365 (CCL_Extension): Fix typo (originally CCL_Extention). Caller
366 changed.
261d788b 367
bccee4f2
GM
3682001-01-15 Gerd Moellmann <gerd@gnu.org>
369
e4ded23c
GM
370 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
371 has gone in the meantime, use face MOUSE_FACE_ID.
372
ae24cb3b
GM
373 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: If
374 x_display_info_for_display returns null, don't try to close
375 the display; we didn't open it.
376
bccee4f2
GM
377 * dispnew.c (save_or_restore_current_matrices): Function removed.
378 (save_current_matrix, restore_current_matrix): New functions.
379 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
380 restore the frame's current matrix. Due to the glyph pointer
381 setup done in adjust_glyph_matrix, there is no easy way to make
382 saving the current matrix in the desired matrix generally correct,
383 so don't try it.
384
ebeccffa
KH
3852001-01-15 Kenichi Handa <handa@etl.go.jp>
386
387 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
388 truncation glyphs.
389 (display_line): Optimize for wide characters.
e4ded23c 390 (display_string): Don't try to display a multi-column character
ebeccffa
KH
391 partially. On ttys, produce more than one truncation glyph for
392 multi-column characters that don't fit on the line.
393
64388126
KH
3942001-01-13 Kenichi Handa <handa@etl.go.jp>
395
396 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]: Define
397 it instead of WORDS_BIGENDIAN. Caller changed.
398
8edb0a6f
JR
3992001-01-13 Jason Rumney <jasonr@gnu.org>
400
401 * w32fns.c (Fimage_size, image_ascent, lookup_image)
402 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
403 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
404 (tiff_format, gif_format, gs_format): Adapt to change of image
405 margins.
406
407 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
408 (x_draw_image_relief, x_draw_image_foreground_1)
409 (x_draw_image_glyph_string): Adapt to change of image margins.
410
411 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
412 variables.
413
414 * w32bdf.c (search_file_line, get_cached_font_char)
415 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
416
417 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
418
419 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
420 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
421 (Fw32_send_sys_command): Remove unused variables.
422 (w32_msg_pump): Add parentheses.
423
424 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
425 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
426 Add parentheses.
427
4956d1ef
GM
4282001-01-12 Gerd Moellmann <gerd@gnu.org>
429
b30623be
GM
430 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
431 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
432 being a pair of margins.
433 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
434 to DEFVAR_LISP. Extend doc.
435
436 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
437 margins.
438 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
439 pair of integers `(X . Y)', use X for the horizontal and Y for the
440 vertical margin.
441 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
442 (parse_image_spec): Check it.
443 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
444 (tiff_format, gif_format, gs_format): Use
445 IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
446
447 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
448 (x_draw_image_relief, x_draw_image_foreground_1)
449 (x_draw_image_glyph_string): Adapt to the change of image margins.
450
451 * dispextern.h (struct image): Replace member `margin' with
452 `hmargin' and `vmargin'.
453
4554cc79
GM
454 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
455 and GLYPHS.
456
457 * dispnew.c (update_text_area): Put code which decrements the
458 stop position when the row's face extends to the end of the
3bffc665 459 line in #if 0.
4554cc79 460
3cccce8d
GM
461 * xfns.c (x_set_mouse_color): Fix color allocation.
462
4956d1ef
GM
463 * keyboard.c: Call get_local_map with new argument list.
464
465 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
466
467 * intervals.h (enum map_property): Removed.
468 (get_local_map): Change prototype.
469
470 * keymap.c: Call get_local_map with new argument list.
471 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
472
2c2ff7f2
GM
4732001-01-11 Gerd Moellmann <gerd@gnu.org>
474
a23887b9
GM
475 * xdisp.c (build_desired_tool_bar_string): Correct the computation
476 of the size needed for the tool bar string. For the last image,
477 use a `display' property that reaches to the end of the string.
478
a7ee2d2e
GM
479 * xselect.c (selection_request_dpyinfo): New variable.
480 (x_handle_selection_request): Set it.
481 (x_selection_request_lisp_error): Don't call
482 x_decline_selection_request if selection request's display has
483 been closed.
484
2c2ff7f2
GM
485 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]: Do
486 the unregister_colors before calling XFreeColors.
487
457b792c
GM
4882001-01-10 Dave Love <fx@gnu.org>
489
490 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
491 ${SOME_MACHINE_LISP}, not ${lisp}.
492
c1efd260
GM
4932001-01-10 Gerd Moellmann <gerd@gnu.org>
494
a98b5ed9 495 * xdisp.c (display_line): On ttys, produce more than one
4554cc79 496 truncation glyph for multi-column characters that don't fit on the
a98b5ed9
GM
497 line.
498
ac95a621
GM
499 * xselect.c (x_reply_selection_request): Add a comment.
500
c1efd260
GM
501 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
502 XkbGetNames instead of XkbGetKeyboard.
503
1bfb1345
DL
5042001-01-10 Dave Love <fx@gnu.org>
505
506 * sysdep.c (random): Revert the declaration.
507
38119822
GM
5082001-01-09 Gerd Moellmann <gerd@gnu.org>
509
35f464a7
GM
510 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]: Call
511 function string_bytes.
512 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
513
514 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
515 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
516 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
517 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
518 the current sblock.
519 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
520 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
521 after sweeping strings, and at the end.
522 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
523
38119822
GM
524 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
525 ensure that pop_message is called.
526
527 * keyboard.c (Fexecute_extended_command): Use a
528 record_unwind_protect to ensure that pop_message is called.
529
530 * lisp.h (push_message_unwind): Add prototype.
531
532 * xdisp.c (push_message_unwind): New function.
533
534 * fileio.c (do_auto_save_unwind): Do the pop_message here
535 instead of in Fdo_auto_save.
536 (Fdo_auto_save): Don't call pop_message.
537
f47a9ec4
KR
5382001-01-08 Ken Raeburn <raeburn@gnu.org>
539
540 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
541 in inner block.
542
a758f97d
GM
5432001-01-08 Gerd Moellmann <gerd@gnu.org>
544
6d0afc03
GM
545 * window.c (window_scroll_pixel_based): Adjust glyph matrices
546 when increasing window's vscroll.
547
a758f97d
GM
548 * macros.c (Qkbd_macro_termination_hook): New variable.
549 (syms_of_macros): Initialize and staticpro it.
550 (pop_kbd_macro): Run kbd-macro-termination-hook.
551
552 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
553
1bfb1345 5542001-01-07 Dave Love <fx@gnu.org>
64d4ec0f
DL
555
556 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
557 arglist, for documentation's sake.
558
0dac6924
AI
5592001-01-06 Andrew Innes <andrewi@gnu.org>
560
561 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
562 of *.pdb.
563
8182406a
AI
5642001-01-05 Andrew Innes <andrewi@gnu.org>
565
566 * term.c (update_end): Don't check updating_frame; for some reason
567 this can be 0 sometimes, such as after dismissing a popup menu,
568 and isn't necessary given the explicit frame argument.
569
3828218c
GM
5702001-01-05 Gerd Moellmann <gerd@gnu.org>
571
572 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
573 on some systems, and an unsigned long on others, like FreeBSD 4.1.
574
2f5ded21
GM
5752001-01-04 Gerd Moellmann <gerd@gnu.org>
576
577 * xterm.c (clear_mouse_face): Don't return if tip_frame is
578 non-nil.
579
580 * xfns.c (x_create_tip_frame): Preserve the value of
581 face_change_count around the creation of the tip frame.
582
583 * xfns.c (last_show_tip_args): New variable.
584 (compute_tip_xy): New function.
585 (Fx_show_tip): Reuse an existing tip frame, if possible.
586 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
587
dfad65fa
DL
5882001-01-04 Dave Love <fx@gnu.org>
589
64d4ec0f
DL
590 * editfns.c (Fformat): Doc fix.
591
dfad65fa
DL
592 * systime.h (set_file_times): Prototype.
593
594 * widget.h (EmacsFrameSetCharSize_): Prototype.
595
596 * sysdep.c (random, srandom): Declare explicitly.
597
598 * dispextern.h (move_it_vertically_backward): Declare.
599
85fe3b5e
GM
6002001-01-04 Gerd Moellmann <gerd@gnu.org>
601
0f2ac578
GM
602 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
603 like in Fx_create_frame.
604
482cca61
GM
605 * xfaces.c (set_font_frame_param): Don't do anything for
606 non-graphical frames.
607
85fe3b5e
GM
608 * window.c (Fdelete_other_windows): Set window's window_end_valid
609 to nil when changing the window's start. Don't change the
610 window's start when its top position hasn't changed. If we do,
611 this will set the window's optional_new_start, which act's like a
612 force_start during redisplay with C-x 1 M-> under particular
613 circumstances (see report from Per Starback to emacs-pretest-bug
614 from 2000-12-13.).
615
3e99d3b4
GM
6162001-01-03 Gerd Moellmann <gerd@gnu.org>
617
a77dc1ec
GM
618 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
619 short cut at the start of the function. Add an assertion.
620 (reseat_at_next_visible_line_start): Add an assertion.
621
2f3cad6c
GM
622 * window.c (Frecenter): When changing the window start, set the
623 window's window_end_valid to nil.
624 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
625
626 * dispextern.h (move_it_past_eol): Add prototype.
627
628 * xdisp.c (move_it_past_eol): New function.
629
3e99d3b4
GM
630 * window.c (Fwindow_end): Doc fix.
631
6322001-01-03 Dave Love <fx@gnu.org>
633
634 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3
635 kluge.
636
bafb434c
GM
6372001-01-03 Gerd Moellmann <gerd@gnu.org>
638
639 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
640 the enabled_p flag of the glyph row at window_end_vpos to 0.
641 (handle_single_display_prop): Fix last change.
642
5297fb00
RS
6432001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
644
645 * window.c (Frecenter): Doc fix.
646
13d6a61c
AI
6472001-01-02 Andrew Innes <andrewi@gnu.org>
648
649 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
650
651 * frame.h (output_method): Add output_w32_console method.
652 (FRAME_W32_CONSOLE_P): New macro.
653
654 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
655 use output_w32_console method.
656 (Qw32_console): New Lisp_Object.
657 (Fframep): Return it.
658 (syms_of_frame): Init it.
659 (Fframe_parameters): Report w32console as font for w32_console
660 frames.
661
662 * xfaces.c (realize_default_face): Set face foreground and
663 background to unspecified for w32_console frames.
664 (realize_face): Realize face cache for w32_console frames.
665 (realize_tty_face): Accept w32_console frames.
666
667 * xdisp.c (handle_single_display_prop): Return if frame is
668 w32_console.
669 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
670 necessary, even if running interactively.
671
672 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
673 w32_console frames.
674
675 * w32term.c (x_update_begin):
676 (x_update_end):
677 (x_clear_frame):
678 (x_ins_del_lines):
679 (x_change_line_highlight):
680 (x_delete_glyphs):
681 (w32_ring_bell):
682 (x_update_begin):
683 (x_update_end):
684 (w32_reassert_line_highlight):
685 (w32_frame_rehighlight):
686 (w32_frame_raise_lower): Do nothing if not w32 frame.
687
688 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
689
690 * w32fns.c (Fx_display_color_cells): Determine correct value, when
691 system doesn't tell us directly.
692 (Fx_display_visual_class): Implement properly.
693
d6bb0c0d
GM
6942001-01-02 Gerd Moellmann <gerd@gnu.org>
695
696 * window.c (Frecenter): Handle centering in graphical frames
697 specially. Centering on the basis of line counts doesn't work
698 reliably with variable-height lines.
699
315f5865
EZ
7002001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
701
702 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
703 and al[].
704
705 * composite.c (run_composition_function): Remove unused variable
706 `val'.
707 (update_compositions): Remove unused variable `hook'.
708
709 * intervals.c (get_local_map): Remove unused variable `tem'.
710
711 * doprnt.c (doprnt1): Remove unused variable `size'.
712
713 * fns.c (Flength): Remove unused variable `tail'.
714 (Fdelete): Remove unused variable `size'.
715
716 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
717 and `gcpro2'.
718
719 * doc.c (Fsnarf_documentation): Remove unused variables `fun' and
720 `tem'.
721
722 * data.c (find_symbol_value): Remove extra 3rd argument in the
723 call to swap_in_symval_forwarding.
724
725 * undo.c (Fprimitive_undo): Remove unused block-scope variable
726 `end'.
727
728 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
729 (trivial_regexp_p): Remove unused variable `c'.
730 (boyer_moore): Remove unused variable `k'.
731
732 * indent.c (current_column): Remove unused variable `stopchar'.
733 (Fcompute_motion): Remove unused variable `contin'.
734
735 * casefiddle.c (casify_object): Remove unused variable `tolen'.
736
737 * dired.c (directory_files_internal): Fix a typo in a comment.
738 Remove an unused variable `handler'.
739 (file_name_completion): Remove unused function-scope variable
740 `dp'.
741 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
742 on BSD4_2.
743
744 * fileio.c (e_write): Remove unused variable
745 `require_encoding_p'.
746
747 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
748 and `buf'.
749 (Fmarker_insertion_type): Remove unused variable `buf'.
750
751 * insdel.c (make_gap): Remove unused variable `result'.
752
753 * keyboard.c (record_char): Remove unused function-scope variable
754 `help'.
755 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
756 (menu_bar_items): Remove unused function-scope variable `tem'.
757
758 * fontset.c (fontset_ref): Remove unused variable `i'.
759 (fontset_set): Remove unused variables `j' and `tmp'.
760 (make_fontset): Remove unused variables `i', `j', `elt' and
761 `base_elt'.
762 (make_fontset_for_ascii_face): Remove unused variable `name'.
763 (fs_load_font): Remove unused variable `font_idx'.
764 (fs_query_fontset): Remove unused function-local variable
765 `fontset'.
766 (list_fontsets): Remove unused variable `tail'.
767 (Fnew_fontset): Remove unused variables `family' and `registry'.
768 (accumulate_font_info): Remove unused variable `tmp'.
769 (Ffontset_font): Remove unused variable `id'.
770 (syms_of_fontset): Remove unused variable `i'.
771
772 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
773 to x_term_init.
774 (lookup_image): Remove unused variable `file'.
775 (xbm_load): Remove unused variables `bitmap_data', `height', and
776 `width'. Remove function-local variable `i', leave the
777 block-local one.
778 (gif_load): Remove unused variable `inc'.
779
780 * xterm.c (XTread_socket): Remove unused variables `p' and
781 `pend'.
782 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
783 leave only the one in the inner block.
784
785 * xfaces.c (face_fontset, realize_default_face): Remove unused
786 variable `fontset'.
787 (face_at_buffer_position): Remove unused variable `multibyte_p'.
788
789 * term.c (encode_terminal_code): Remove unused variable `c'.
790
791 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
792 char *' instead of `char *'.
793
794 * category.c (Fcategory_docstring): Remove unused variable `doc'.
795 (Fget_unused_category): Remove unused variable
796 `docstring_vector'.
797 (Fchar_category_set): Remove unused variables `val', `charset',
798 `c1' and `c2'.
799
800 * coding.c (detect_coding_iso2022, setup_coding_system): Remove
801 unused variable `i'.
802 (detect_coding_mask): Remove unused variable `idx'.
803 (detect_coding): Remove unused variable `i'.
804 (ccl_coding_driver): Remove unused variable `result'.
805 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
806 (decode_coding_string): Remove unused variables `to' and
807 `gcpro1'.
808 (encode_coding_string): Remove unused variables `gcpro1' and
809 `saved_coding_symbol'.
810 (Ffind_coding_systems_region_internal): Remove function-local
811 variable args[], leave only the block-local one.
812 (code_convert_region1): Remove unused variable `len'.
813
814 * charset.c (char_printable_p): Remove unused variable `chars'.
815 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
816 (str_to_multibyte): Remove unused variable `c'.
817
818 * window.c (size_window): Remove block-local variable `min_size'.
819
820 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
821 `header_line_height'.
822 (append_space, extend_face_to_end_of_line): Declare `saved_what'
823 enum display_element_type.
824
1a8a9daf
GM
8252001-01-02 Gerd Moellmann <gerd@gnu.org>
826
6dde6abc
GM
827 * xterm.c (x_connection_closed): Catch X errors around all
828 statements that call X. Save away the error message in a local
829 copy.
830
1883b2c6
GM
831 * xterm.c (x_connection_closed): Set handling_signal to 0 at
832 the start.
833
a13be207
GM
834 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
835 in or at the start of invisible text.
836
1a8a9daf
GM
837 * dispnew.c (update_window): Don't check_current_matrix_flags.
838
3608c0f9
JR
8392001-01-01 Jason Rumney <jasonr@gnu.org>
840
841 * w32fns.c (x_figure_window_size): Do not allow new_height and
842 new_width of frame to override specified values.
843
abb1acc4
KH
8442000-12-30 Kenichi Handa <handa@etl.go.jp>
845
d279f620
KH
846 * composite.c (find_composition): Fix a code for searching
847 backward.
abb1acc4 848
762a68ec
GM
8492000-12-29 Gerd Moellmann <gerd@gnu.org>
850
9c8b8382
GM
851 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New
852 function.
853 (update_window) [GLYPH_DEBUG]: Call it.
854 (scrolling_window): Prevent including current rows which are below
855 what's displayed in the window.
856
857 * xdisp.c (try_window_reusing_current_matrix)
858 <new start <= old start>: Disable rows in the current matrix
859 which are below the window after scrolling.
860
762a68ec
GM
861 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
862 is zero. It's not worth the complexity.
863 (invisible_text_between_p): Put in #if 0 because unused.
864
2d5912c1
GM
8652000-12-28 Gerd Moellmann <gerd@gnu.org>
866
46f6a258
GM
867 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
868 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
869
89f93679
GM
870 * keyboard.c (echo_char): If C is an integer, always call
871 push_key_description. Former code could signal an invalid
872 character error.
873
874 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
875 If set, print multibyte text.
876 (Fsingle_key_description): Call push_key_description with
877 FORCE_MULTIBYTE set.
878 (describe_buffer_bindings): Likewise.
879
880 * lisp.h (push_key_description): Add prototype.
881
c06017fb
GM
882 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
883 around the call to redisplay_internal.
884
f1d2ce7f
GM
885 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
886
2d5912c1
GM
887 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
888
9371f831
KH
8892000-12-28 Kenichi Handa <handa@etl.go.jp>
890
891 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
892 (ccl_driver): New local variable `extra_bytes'.
893
894 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
895
896 * coding.c (setup_coding_system): Initialize
897 coding->spec.ccl.eight_bit_carryover.
898 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
899
0c80628a
KH
9002000-12-28 Kenichi Handa <handa@etl.go.jp>
901
902 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
903 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
904 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
905 (decode_composition_emacs_mule): New function.
906 (decode_coding_emacs_mule): Decode composition sequence by calling
907 decode_composition_emacs_mule.
908 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
909 (encode_coding_emacs_mule): Changed from macro to function. If
2d5912c1 910 a text contains compositions, encode them correctly.
0c80628a
KH
911 (setup_coding_system): Set coding->commong_flags for emacs-mule so
912 that decoding and encoding are required.
913
3e32cc27
GM
9142000-12-27 Gerd Moellmann <gerd@gnu.org>
915
5e25feee
GM
916 * xfaces.c (PT_PER_INCH): New macro.
917 (xlfd_point_size): Compute real point size from font's pixel size.
918 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
919 instead of 72.
920
892d8fcd
GM
921 * .gdbinit: Comment out the line pointing to the Lesstif source
922 directory.
923
12c8b416
GM
924 * window.c (Frecenter): Use displayed_window_lines instead
925 of window_internal_height.
926
6061fbf0
GM
927 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
928 instead of x-toolkit-scroll-bars-p.
929 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
930
931 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
932 instead of x-toolkit-scroll-bars-p.
933 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
934
3e32cc27
GM
935 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
936 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
937 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]: New
938 variables.
939 (add_window_display_history, add_frame_display_history)
940 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
941 (build_frame_matrix_from_leaf_window): Remove unused code.
942 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
943 redisplay history.
944 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
945 (update_window) [GLYPH_DEBUG]: Likewise.
946 (syms_of_display): Defsubr dump-redisplay-history.
947
31798cfe
GM
9482000-12-23 Gerd Moellmann <gerd@gnu.org>
949
f717c2ba
GM
950 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
951 the end of the prompt. Set echo_after_prompt to the offset
952 of echoptr in echobuf.
953
aeb2b8fc
GM
954 * xdisp.c (init_from_display_pos): Pop until the iterator's
955 stack is empty; there may be frames for stretch or images
956 on the stack.
957
31798cfe
GM
958 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
959 (save_or_restore_current_matrix): New function for the same
960 purpose, but more efficient.
961 (adjust_frame_glyphs_for_frame_redisplay): Use it.
962
f8156156
EZ
9632000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
964
965 * xdisp.c (syms_of_xdisp): Fix last change.
966
bdd6d4e8
GM
9672000-12-23 Gerd Moellmann <gerd@gnu.org>
968
969 * xdisp.c (syms_of_xdisp): Doc fix.
970
971 * xdisp.c (redisplay_window): Remove label restore_buffers;
972 use finish_scroll_bars instead to make sure that scroll bars
973 are redeemed. If we don't do this, flickering can result from
974 scroll bars being destroyed and recreated.
975
9436cdf9
JR
9762000-12-22 Jason Rumney <jasonr@gnu.org>
977
978 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
979 in the wrong colors when the foreground is not black.
980 (expose_window): Don't redraw the window that's currently being
981 updated.
982
951f9df5
GM
9832000-12-22 Gerd Moellmann <gerd@gnu.org>
984
856ff7a7
GM
985 * window.c (size_window): When setting the window's too_small_ok
986 flag, compare old size with minimum size depending on WIDTH_P,
987 don't compare with window_min_width.
988
951f9df5
GM
989 * window.c (delete_window): Simplify somewhat.
990 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
991 freeing window matrices. The flag windows_or_buffers_changed is
992 set, so the next redisplay will consider all windows; this should
993 suffice.
994
886bc933
KH
9952000-12-22 Kenichi Handa <handa@etl.go.jp>
996
997 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
998
999 * ccl.h (struct ccl_program): New member cr_consumed.
1000
1001 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
1002 (CCL_READ_CHAR): Handle EOL conversion here.
1003 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
1004
177f4e88
GM
10052000-12-21 Gerd Moellmann <gerd@gnu.org>
1006
6ba384dc
GM
1007 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg
1008 GLYPHS.
1009
1010 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
1011 otherwise tabs of different size compare equal.
1012
1013 * callint.c (Fcall_interactively): Prevent a compiler warning.
1014
1015 * print.c (print_unwind): Return nil.
1016 (PRINTDECLARE): Initialize all local variables.
1017 (print_preprocess): Add a default case.
1018
8e15274f
GM
1019 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
1020
1021 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
1022
177f4e88
GM
1023 * window.c (delete_window, Fsplit_window)
1024 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
1025
1026 * dispextern.h (ensure_frame_matrix): Function declaration removed.
1027
1028 * dispnew.c (ensure_frame_matrix): Removed.
1029 (save_frame_matrix, restore_frame_matrix): New functions.
1030 (adjust_frame_glyphs_for_frame_redisplay): Use them.
1031
1032 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
1033 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
1034
99012074
AI
10352000-12-21 Andrew Innes <andrewi@gnu.org>
1036
1037 * w32term.c (x_update_begin): Regenerate the palette here, rather
1038 than for each window.
1039
1040 * w32xfns.c (select_palette): Avoid calling SelectPalette if
1041 palette is NULL, since this corrupts memory! Also get
1042 display_info reference from frame.
1043
29ef7d2d
JR
10442000-12-21 Jason Rumney <jasonr@gnu.org>
1045
1046 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
1047
1048 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
1049 to avoid returning without releasing it.
3e27fa1f 1050
3f9d67a6
KH
10512000-12-21 Kenichi Handa <handa@etl.go.jp>
1052
587fc3f9
KH
1053 * keymap.c (push_key_description): Don't convert eight-bit-control
1054 and eight-bit-graphic to multibyte character.
1055
3f9d67a6
KH
1056 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
1057 generic character and CODE1 is nil, return the smallest character
1058 in CHARSET.
1059
774ba8c9
DL
10602000-12-20 Dave Love <fx@gnu.org>
1061
1062 * s/osf5-0.h (NSIG): Don't redefine.
1063
88416888
SM
10642000-12-20 Stefan Monnier <monnier@cs.yale.edu>
1065
1066 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
1067 excluding menu-bar and tool-bar.
1068 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
1069 (menu_item_p): Remove.
1070 (where_is_internal_1): Don't ignore menu-items.
1071
a6426c6f
GM
10722000-12-20 Gerd Moellmann <gerd@gnu.org>
1073
03ff8aab
GM
1074 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
1075 into account.
1076
1077 * window.c (make_window): Initialize window's min_hscroll.
1078 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
1079 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
1080 to zero.
1081 (struct saved_window): New member min_hscroll.
1082 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
1083 (Fset_window_configuration): Set window's min_hscroll.
1084 (save_window_save): Save window's min_hscroll.
1085 (compare_window_configurations): Compare min_hscroll values.
1086
1087 * window.h (struct window): New member min_hscroll.
1088
1089 * keyboard.c (echo_prompt): Prevent a compiler warning.
1090
8de4aaf8
GM
1091 * xdisp.c (try_cursor_movement): Fix last change. The real
1092 condition is that PT is at the end of the row, and should
1093 be displayed at the start of the next row.
1094
3f7e3031
GM
1095 * xdisp.c (try_cursor_movement): If we end on a partially
1096 visible line, end we already decided to scroll, return -1.
1097
a6426c6f
GM
1098 * dispextern.h (ensure_frame_matrix): Add prototype.
1099
1100 * window.c (delete_window, Fsplit_window)
1101 (Fset_window_configuration): Call ensure_frame_matrix.
1102
1103 * dispnew.c (fake_current_matrices, ensure_frame_matrix): New
1104 functions.
1105 (adjust_frame_glyphs_for_frame_redisplay): If display has been
1106 completed, call fake_current_matrices instead of marking frame
1107 garbaged.
1108
57fa2774
JR
11092000-12-20 Jason Rumney <jasonr@gnu.org>
1110
1111 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
1112
d925df90
EZ
11132000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
1114
1115 * fns.c (Frequire): Doc fix.
1116
7b93a85b
GM
11172000-12-19 Gerd Moellmann <gerd@gnu.org>
1118
71d4497a
GM
1119 * window.c (window_scroll_pixel_based): Don't use
1120 move_it_vertically.
1121
c74e645b
GM
1122 * dispnew.c (direct_output_for_insert): Fix check for mini-window
1123 currently displaying a message.
1124
7b93a85b
GM
1125 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
1126 xterm.h.
1127 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
1128
90d97e64
AI
11292000-12-18 Andrew Innes <andrewi@gnu.org>
1130
1131 * w32.c (w32_strerror): New function.
1132
1133 * w32.h (w32_strerror): New extern.
1134
1135 * w32fns.c (Fw32_shell_execute): Use it.
1136
91c9e6ce
GM
11372000-12-18 Gerd Moellmann <gerd@gnu.org>
1138
1139 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
1140
6f4745e2
EZ
11412000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
1142
1143 * msdos.c (IT_set_face): Obey inverse_video.
1144
c9e088ce
KH
11452000-12-18 Kenichi Handa <handa@etl.go.jp>
1146
1147 * dired.c (directory_files_internal): Always return decoded filenames.
1148
c3695f5f
GM
11492000-12-18 Gerd Moellmann <gerd@gnu.org>
1150
52d8e4ff
GM
1151 * xterm.c (x_connection_closed): Prevent being called recursively
1152 because of an error condition in XtCloseDisplay.
1153
62be9979
GM
1154 * xdisp.c (init_iterator): If noninteractive, and the frame's
1155 face cache is null, make one.
1156
5f7a1890
GM
1157 * xfns.c (show_busy_cursor): Check for live frames more
1158 thoroughly.
1159
c3695f5f
GM
1160 * process.c (wait_reading_process_input): Check for pending
1161 input when running timers.
1162
78555fbe
EZ
11632000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
1164
1165 * msdos.c (IT_write_glyphs): Compute the glyph face from
1166 str->face_id.
1167
b2b36264
KH
11682000-12-18 Kenichi Handa <handa@etl.go.jp>
1169
1170 * process.c (read_process_output): Don't run a filter if the code
1171 decoder produces nothing but carryover.
1172
9c543fbf
AI
11732000-12-17 Andrew Innes <andrewi@gnu.org>
1174
1175 * w32.c (sys_rename): Only check errno against EEXIST, and not
1176 EACCES, when determining whether rename failed because the target
1177 exists. This was resulting in indefinite looping on Windows 9x if
1178 the source file was locked by another process.
1179
1180 * w32fns.c (Ffile_system_info): New function.
1181 (syms_of_w32fns): Defsubr it.
1182
10c2b5a8
GM
11832000-12-17 Gerd Moellmann <gerd@gnu.org>
1184
b0228ace
GM
1185 * window.c (coordinates_in_window): Fix computation for
1186 position on vertical line between mode lines.
1187
10c2b5a8
GM
1188 * xfns.c (unwind_create_frame): Return t if frame was deleted.
1189 Don't alter tip_frame or tip_window.
1190 (unwind_create_tip_frame): Set tip_frame to nil only if frame
1191 was deleted.
1192
c844a81a
GM
1193 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
1194 Don't alter tip_frame or tip_window.
1195 (unwind_create_tip_frame): Set tip_frame to nil only if frame
1196 was deleted.
1197
6c825f8e
EZ
11982000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
1199
1200 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
1201 be consistent with the doc string. Reported by NAKAJIMA Mikio
1202 <minakaji@osaka.email.ne.jp>.
1203
af4bb4c8
KH
12042000-12-16 Kenichi Handa <handa@etl.go.jp>
1205
1206 * xfaces.c (Vface_ignored_fonts): New variable.
1207 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
1208 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
1209
8062e53a
GM
12102000-12-15 Gerd Moellmann <gerd@gnu.org>
1211
e87b8809
GM
1212 * dispnew.c (update_window): Detect pending input every nth line
1213 updated, i.e. do it depending on real work done, and not on the
1214 vpos of the line.
1215
1216 * xterm.c (expose_window): Don't redraw the window that's
1217 currently being updated.
1218
a6768cc5
GM
1219 * window.c (Fset_window_point): Remove test for
1220 cursor_in_non_selected_windows.
1221
4ea7fdca
GM
1222 * lread.c (read1): Recognize end of file after `\\'.
1223
8062e53a
GM
1224 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
1225 not unwind_create_frame.
1226
bb7959c1
GM
12272000-12-15 Dave Love <fx@gnu.org>
1228
1229 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
1230 bcopy & al.
1231
1232 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
1233
ced04c42
KH
12342000-12-15 Kenichi Handa <handa@etl.go.jp>
1235
c5443913
KH
1236 * coding.c (setup_coding_system): Clear all members of the struct
1237 coding_system at first.
bc137305
KH
1238 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
1239 argument.
1240 (code_convert_region): Don't override coding->src_multibyte and
1241 coding->dst_multibyte.
c5443913 1242
ced04c42
KH
1243 * fns.c (Fmd5): Docstring improved.
1244
c2d7f289
MB
12452000-12-15 Miles Bader <miles@gnu.org>
1246
1247 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
1248 are actually marked as mode-lines; otherwise use
1249 estimate_mode_line_height.
1250
9d7d9263
GM
12512000-12-14 Gerd Moellmann <gerd@gnu.org>
1252
1253 * editfns.c (Fformat): Prevent a buffer overrun when the format
1254 specifies a precision.
1255
7cf0153a
EZ
12562000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
1257
1258 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
1259 argument is outside the range [2..3].
1260
1de0f662
AI
12612000-12-14 Andrew Innes <andrewi@gnu.org>
1262
1263 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
1264 nothing to do. Bind inhibit-quit.
1265 (tip_frame): Make it a Lisp_Object.
1266 (x_create_tip_frame): Set tip_frame after it has been added to
1267 Vframe_list.
1268 (Fx_show_tip): Don't set tip_frame here.
1269 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New
1270 variables.
1271 (unwind_create_frame, unwind_create_tip_frame): New functions.
1272 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
1273 while a frame is only partially constructed.
1274
1275 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
1276 (x_free_frame_resources): New function.
1277 (x_destroy_window): Use it.
1278
02387dcc
GM
12792000-12-14 Gerd Moellmann <gerd@gnu.org>
1280
1281 * xfns.c (Fx_backspace_delete_keys_p): New function.
1282 (syms_of_xfns): Defsubr it.
1283
1284 * config.in (HAVE_XKBGETKEYBOARD): Add.
1285
0544ef49
KH
12862000-12-14 Kenichi Handa <handa@etl.go.jp>
1287
98d62747
KH
1288 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
1289 Always store string in multibyte representation in echobuf.
1290 (echo_char): Always store string in multibyte representation in
1291 echobuf.
1292 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
1293 (read_key_sequence): Adjusted for the change of echo_prompt.
1294
a20193cd
KH
1295 * fns.c (Fmd5): Docstring improved.
1296
191b83b6
KH
1297 * lisp.h (detect_coding_system): Prototype adjusted.
1298
0544ef49
KH
1299 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
1300 (detect_coding_emacs_mule, detect_coding_iso2022,)
1301 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
1302 (detect_coding_utf_16, detect_coding_ccl): Make them static. New
1303 argument MULTIBYTEP. Callers changed.
1304 (detect_coding_mask, detect_coding_system): New argument
1305 MULTIBYTEP. Callers changed.
1da1bb05
KH
1306 (decode_coding_string): Set coding->src_multibyte and
1307 coding->dst_multibyte before calling detect_coding and detect_eol.
1308 Update them after some coding system is detected.
1309
d5b3eb1b
SM
13102000-12-13 Stefan Monnier <monnier@cs.yale.edu>
1311
1312 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
1313
1314 * keyboard.c (menu_bar_items, tool_bar_items):
1315 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
1316
f7f8bb69
GM
13172000-12-13 Gerd Moellmann <gerd@gnu.org>
1318
19f71add
GM
1319 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
1320 New variables.
1321 (unwind_create_frame, unwind_create_tip_frame): New functions.
1322 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
1323 while a frame is only partially constructed.
1324
1325 * xterm.h (x_free_frame_resources): Declare.
1326
1327 * xterm.c (x_free_frame_resources): New function.
1328 (x_destroy_window): Use it.
1329
e10da507
GM
1330 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
1331 don't interrupt the update for pending input initially, i.e.
1332 update at least some lines.
1333
1334 * keyboard.c (do_mouse_tracking): Make externally visible.
1335
d5b3eb1b 1336 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
f7f8bb69
GM
1337
1338 * xfns.c (gray_bitmap_bits): Declare `char *'.
1339
90aa2856
GM
13402000-12-12 Gerd Moellmann <gerd@gnu.org>
1341
1342 * xdisp.c (display_tool_bar_line): Make sure that tool bar
1343 lines start with a relief line.
1344
a308c9cd
DL
13452000-12-12 Dave Love <fx@gnu.org>
1346
1347 * window.c (Fdisplay_buffer): Doc fix.
1348 (Fwindow_list): Remove unused var.
1349
1350 * buffer.h (mmap_set_vars): Declare.
1351
1352 * window.h (Fset_window_point): Declare.
1353
d575011f
EZ
13542000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
1355
bf6282d2 1356 * msdos.c (fast_find_position): Don't overstep the last window row.
d575011f
EZ
1357 (IT_note_mouse_highlight): Initialize portion to -1. Remove
1358 unused variable `area'. When looking for a row under (X,Y), give
1359 up if some of the previous rows is not enabled.
1360
ecf4d726
GM
13612000-12-12 Gerd Moellmann <gerd@gnu.org>
1362
2ebf6139
GM
1363 * window.c (Fset_window_point): If displaying cursors in windows
1364 other than the selected window, make sure redisplay updates
1365 other windows to show the new value of point in the window.
1366
1367 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
1368
bfdb75ee
GM
1369 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
1370 the buffer is the sole visible buffer when in the mini-buffer.
1371
4fdbd809
GM
1372 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
1373 Bind `inhibit-read-only' to t.
1374 (unwind_with_echo_area_buffer): Use AREF.
1375
c0006262
GM
1376 * xfns.c (Fx_hide_tip): Simplified.
1377
e9a59cad
GM
1378 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use
1379 GC_MAKE_GCPROS_NOOPS instead of `1'.
1380
ecf4d726
GM
1381 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
1382
e5959a9a
GM
13832000-12-11 Gerd Moellmann <gerd@gnu.org>
1384
a3642e49
GM
1385 * xfns.c (Fx_hide_tip): Fix last change.
1386
44b5a125
GM
1387 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
1388 nothing to do. Bind inhibit-quit.
1389 (tip_frame): Make it a Lisp_Object.
1390 (x_create_tip_frame): Set tip_frame after it has been added to
1391 Vframe_list.
1392 (Fx_show_tip): Don't set tip_frame here.
1393
1394 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
1395
1396 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
1397 Lisp_Object.
1398
1399 * dispextern.h: Change external declaration of tip_frame.
1400
d990421f
GM
1401 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
1402 return an empty string.
1403
4db87380
GM
1404 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
1405 of the window's update_mode_line flag, since the former is set by
1406 force-mode-line-update, not the latter. This makes
1407 column-number-mode slightly faster.
1408
e5959a9a
GM
1409 * xdisp.c (try_window_id) <all changes above window start>:
1410 Set the cursor.
1411
169fe44e
GM
14122000-12-11 Paul Eggert <eggert@twinsun.com>
1413
1414 * config.in (HAVE_FTELLO): Remove.
1415 (HAVE_FSEEKO): Add.
1416 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
1417 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
1418 HAVE_FTELLO.
1419 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
1420 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
1421
59ec59ae
MB
14222000-12-11 Miles Bader <miles@gnu.org>
1423
1424 * window.c (displayed_window_lines): Don't round up when
1425 converting empty space at bottom to lines.
ff904dd6
MB
1426 Handle non-newline-terminated final lines properly.
1427 (Fwindow_text_height): New function (used to be in lisp).
1428 (syms_of_window): Initialize it.
59ec59ae 1429
42ebfa31
SM
14302000-12-09 Stefan Monnier <monnier@cs.yale.edu>
1431
1432 * syntax.c (scan_lists): Check that the right quote char has the
1433 right Sstring syntax when jumping over strings.
1434 (init_syntax_once): Use Smax rather than 13.
1435
5cdb3cf3
MB
14362000-12-09 Miles Bader <miles@gnu.org>
1437
1438 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
1439 with PARTIALLY, inverting the sense.
1440 (window_scroll_pixel_based): Scroll partially visible lines into
1441 place if we hit the beginning or end of the buffer.
a12167c5
MB
1442 (displayed_window_lines): Don't include partially visible lines.
1443 (Fmove_to_window_line): Skip past any partially visible first line.
5cdb3cf3 1444
842b2a94
GM
14452000-12-08 Gerd Moellmann <gerd@gnu.org>
1446
1447 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
1448
1449 * tparam.c (tparam1): Change the way buffers are reallocated to be
1450 portable and less obfuscated.
1451
1452 * termcap.c (tgetent): Change the way buffers are reallocated to
1453 be portable and less obfuscated.
1454
1455 * macros.c (store_kbd_macro_char): Change the way buffers are
1456 reallocated to be portable and less obfuscated.
1457
1458 * lread.c (read1): Change the way buffers are reallocated to be
1459 portable and less obfuscated.
1460
1461 * doc.c (Fsubstitute_command_keys): Change the way buffers
1462 are reallocated so that it is portable.
1463
137cad7c
EZ
14642000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
1465
1466 * dosfns.c (Ffile_system_info): New function.
1467 (syms_of_dosfns): Defsubr it.
1468
5c7f629c
SM
14692000-12-07 Stefan Monnier <monnier@cs.yale.edu>
1470
1471 * alloc.c (gc_sweep): Add comment.
1472
959e647d
GM
14732000-12-07 Gerd Moellmann <gerd@gnu.org>
1474
28fcb7dc
GM
1475 * sound.c (vox_configure): Change order of ioctls. Don't
1476 set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
1477 Ignore errors when changing volume.
1478 (vox_close): Don't reset the device.
1479
926b7e5e
GM
1480 * process.c (read_process_output): Make sure the process marker's
1481 position is valid when the process buffer is changed in
1482 after-change functions. W3 does that.
1483
959e647d
GM
1484 * xfns.c (x_free_gcs): New function.
1485
1486 * xterm.h (x_free_gcs): Add prototype.
1487
1488 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
1489 freeing GCs here.
1490
1491 * xterm.c (x_destroy_window): Call x_free_gcs so that
1492 resources of non-toolkit X windows will be freed.
1493
478ea067
AI
14942000-12-07 Andrew Innes <andrewi@gnu.org>
1495
1496 * w32fns.c (xlfd_charset_of_font): Fix last change.
1497
fbee3231
DL
14982000-12-06 Dave Love <fx@gnu.org>
1499
67292061
DL
1500 * md5.h (__P): Don't define -- it comes from config.h.
1501
fbee3231
DL
1502 * strftime.c: Change some #if foo to #ifdef foo.
1503
4ee87dbb
AI
15042000-12-06 Andrew Innes <andrewi@gnu.org>
1505
1506 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
1507
1508 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname
1509 argument.
1510 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
1511 (w32_list_fonts): Don't choke if pattern doesn't specify a
1512 codepage.
1513
9765b4a4
GM
15142000-12-06 Gerd Moellmann <gerd@gnu.org>
1515
d285b373
GM
1516 * alloc.c (gc_sweep): Prevent symbols read during loadup
1517 from being freed.
1518
384333ee
GM
1519 * xdisp.c (underlying_face_id): New function.
1520 (handle_face_prop, face_before_or_after_it_pos): Use it
1521 to determine the face ``under'' a string. Let strings inherit
1522 the face of the buffer under them.
1523
1524 * xfaces.c (face_at_string_position): Update function comment.
1525
d4b72d58
GM
1526 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
1527 matrix if the window's left position has changed; we need to
1528 redraw it in this case.
1529
1530 * dispextern.h (struct glyph_matrix): Add member window_left_x.
1531
e1d05387
GM
1532 * window.c (coordinates_in_window): Check mouse on mode-line or
1533 header-line first.
1534
eb1b0c74
GM
1535 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
1536 advertized by the function documentation.
1537
d94d636f
GM
1538 * window.c (syms_of_window): Doc fix.
1539
3887b449
GM
1540 * sound.c (vox_configure): Set volume for left and right channel.
1541 (sound_cleanup): Return nil.
1542
efc8f57a
GM
1543 * xdisp.c (move_it_by_lines): Fix paren typo.
1544
9765b4a4
GM
1545 * xterm.c (x_load_font): Don't use the font's max_bounds for
1546 computing the height of the font. If max_bounds' ascent or
1547 descent are greater than the font's ascent or descent, this means
1548 glyphs overlap, which should be handled now by redisplay.
1549
6529ed87
GM
1550 * window.c (Veven_window_heights): New variable.
1551 (syms_of_window): DEFVAR_LISP it.
1552 (Fdisplay_buffer): Check Veven_window_heights before evening the
1553 window heights.
1554
0eb2ecde
MB
15552000-12-06 Miles Bader <miles@gnu.org>
1556
1557 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
1558 update `default-frame-alist' instead of setting no frame parameters.
1559
03d7a167
KH
15602000-12-06 Kenichi Handa <handa@etl.go.jp>
1561
1562 * composite.c (update_compositions): Fix typo (use the correct
1563 variable).
1564
5f8803c2
JR
15652000-12-05 Jason Rumney <jasonr@gnu.org>
1566
1567 * md5.h: Remove underscores from function declarations.
1568 (__attribute__, __alignof__) [!__GNUC__]: Define.
1569
1570 * md5.c: Delay include of md5.h until after namespace cleaning.
1571
c28a075b
JR
1572 * makefile.w32-in (fns.o): Depend on md5.h
1573 (md5.o): New target.
1574 (sunfns.o): Remove.
1575
1576 * makefile.nt: Likewise.
1577
ff3c7056
JR
15782000-12-05 Jason Rumney <jasonr@altavista.net>
1579
1580 * w32term.c (expose_area): Complete last change.
1581
0c21eeeb
KR
15822000-12-05 Ken Raeburn <raeburn@gnu.org>
1583
1584 * minibuf.c: Include intervals.h.
1585
f201d732
JR
15862000-12-05 Jason Rumney <jasonr@gnu.org>
1587
1588 * w32term.c (x_produce_glyphs): If a font for a component of
1589 a composition is not found, use 1 pixel dot ascent and 0 dot
1590 descent value to avoid displaying terribly tall empty boxes.
1591 (expose_area): Pass x-coordinate relative to the exposed
1592 area to x_draw_glyphs instead of a window-relative coordinate.
1593
21999ab9
GM
15942000-12-05 Gerd Moellmann <gerd@gnu.org>
1595
4d2036e4
GM
1596 * xdisp.c (next_element_from_ellipsis): Save face before selective
1597 display in saved_face_id, and set face_before_selective_p.
1598 (reseat_1): Reset face_before_selective_p.
1599 (append_space, extend_face_to_end_of_line): If iterator's
1600 face_before_selective_p is set, use the face from saved_face_id.
1601 (extend_face_to_end_of_line): For tty frames, make sure to
1602 use the right face id when producing spaces at the end of
1603 the line.
1604
1605 * dispextern.h (struct it): Add face_before_selective_p.
1606
52be17cc
GM
1607 * keyboard.c (record_char): Don't record identical help-echo
1608 events in recent_keys.
1609
8a4f36cc
GM
1610 * xterm.c [USE_X_TOOLKIT]: Close the display.
1611 (xim_close_dpy): Handle case that the display has been closed.
1612
57d6e381
GM
1613 * xterm.c (x_destroy_window): Reset the frame's X window after
1614 destroying it.
1615
21999ab9
GM
1616 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
1617 variable window_width.
1618 (line_draw_cost): Fix code skipping over spaces at the end of the
1619 line when must_write_spaces is not set.
1620 (scrolling_window): Fix code inserting runs in list of all runs.
1621
91372bb7
KH
16222000-12-05 Kenichi Handa <handa@etl.go.jp>
1623
1624 * coding.c (setup_coding_system): Be sure to initialize
1625 coding->category_idx.
1626
6c083b4c
GM
16272000-12-04 Gerd Moellmann <gerd@gnu.org>
1628
0c68ce6f
GM
1629 * xterm.c (PER_CHAR_METRIC): Removed because not used.
1630
6452929e
GM
1631 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
1632 area to x_draw_glyphs instead of a window-relative coordinate.
1633
d7f31e22
GM
1634 * fileio.c (auto_save_error): Add parameter ERROR. Show the
1635 error in the message.
1636
ae18aa3b
GM
1637 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
1638 timer after having read a key. It's not good for code reading
1639 several keys in a loop, like an input method.
1640
caa15ef7
GM
1641 * fileio.c (Finsert_file_contents): When VISIT is t, don't
1642 record undo information for format-decode.
1643
1644 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
1645 current buffer is read-only, not if it isn't.
1646
6c083b4c
GM
1647 * keyboard.c (record_char): Record `help-echo' input events
1648 in recent_keys only if they display some help. Don't record
1649 `help-echo' events as macro char.
1650
caa15ef7
GM
16512000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
1652
1653 * editfns.c (save_excursion_restore): Don't move point
1654 in another window if it is showing the wrong buffer.
1655 Avoid the call to Fwindow_live_p, for speed.
1656
5a13529b
KH
16572000-12-04 Kenichi Handa <handa@etl.go.jp>
1658
e225faa7
KH
1659 * xfaces.c (struct font_name): New member registry_priority.
1660 (split_font_name): Initialize the above member to zero.
1661 (concat_font_list): New function.
1662 (font_list): Include fonts of all alternative registries.
1663 (FONT_POINT_SIZE_QUANTUM): New macro.
1664 (better_font_p): Ignore point size difference less than
1665 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
1666
e89648b4
KH
1667 * xterm.c (x_produce_glyphs): If a font for a component of
1668 a composition is not found, use 1 pixel dot ascent and 0 dot
1669 descent value to avoid displaying terribly tall empty boxes.
1670
5a13529b
KH
1671 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
1672
d7935eb6
KR
16732000-12-03 Ken Raeburn <raeburn@gnu.org>
1674
1675 * coding.h (code_convert_string1): Declare.
1676
1677 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
1678
1679 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name):
1680 Declare.
1681
0dd5e255
JR
16822000-12-02 Jason Rumney <jasonr@gnu.org>
1683
1684 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
1685 correctly for single byte character case.
1686 (w32_per_char_metric): Do not try to make any assumptions about
1687 the metrics of BDF fonts.
250cfece
JR
1688 (x_estimate_mode_line_height): If `mode-line' face
1689 hasn't a font, use that of the frame, as drawing glyphs
1690 does.
1691 (note_mouse_highlight): Change the cursor shape on the vertical
1692 border between windows [not enabled].
1693
1694 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
1695
1696 * w32fns.c (Fx_create_frame): Reintroduce the call to
1697 face-set-after-frame-defaults.
1698 (Vx_window_horizontal_drag_shape): New variable.
1699 (syms_of_xfns): DEFVAR_LISP it.
1700 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
1701 enabled].
0dd5e255 1702
b5d8d2ca
GM
17032000-12-02 Simon Josefsson <simon@josefsson.org>
1704
1705 * fns.c (Fmd5): Use a different logic to decide the coding system
1706 to use.
1707
1708 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
1709
fbb87147
EZ
17102000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
1711
1712 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is
1713 NULL.
1714
447e9da0
GM
17152000-12-01 Gerd Moellmann <gerd@gnu.org>
1716
7708ced0
GM
1717 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
1718 height for YNegative.
1719 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
1720 height; also see comment there.
1721
447e9da0
GM
1722 * window.c (coordinates_in_window): Handle computations for
1723 positions on the vertical bar and fringes differently for
1724 window-system frames. Consider some pixels near the vertical bar
1725 as on the bar if the frame doesn't have vertical scroll bars.
1726 Associate positions between mode or header lines with the
1727 right window, the left one.
1728
86d1db20
JR
17292000-12-01 Jason Rumney <jasonr@gnu.org>
1730
1731 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
1732
1733 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
1734 invalid frame.
1735
a1d58e5b
GM
17362000-12-01 Gerd Moellmann <gerd@gnu.org>
1737
1738 * window.c (struct saved_window): Add members orig_top and
1739 orig_height.
1740 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
1741 (save_window_save, Fset_window_configuration): Save/restore
1742 window's orig_top and orig_height.
1743
89c609af
JR
17442000-12-01 Jason Rumney <jasonr@gnu.org>
1745
4d177746 1746 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
86d1db20 1747
89c609af
JR
1748 * w32fns.c (x_set_cursor_color): Fix last change.
1749
eccc05db
GM
17502000-11-30 Gerd Moellmann <gerd@gnu.org>
1751
31b6671b
GM
1752 * xdisp.c (echo_area_display): If cursor is in the echo area, make
1753 sure that the next redisplay displays the minibuffer, so that
1754 the cursor will be replaced with what the minibuffer wants.
1755
eccc05db
GM
1756 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
1757 #ifndef instead of using #if.
1758 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
1759 USE_TOOLKIT_SCROLL_BARS is defined.
1760
162de750
JR
17612000-11-30 Jason Rumney <jasonr@gnu.org>
1762
1763 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
1764 x_display_cursor.
1765
693c4692
GM
17662000-11-30 Gerd Moellmann <gerd@gnu.org>
1767
1768 * fns.c (Fmd5): Doc fix.
1769
b5d8d2ca 17702000-11-30 Simon Josefsson <simon@josefsson.org>
edfb795e
GM
1771
1772 * fns.c (Fmd5): New function.
1773 (syms_of_fns): Defsubr md5.
1774
1775 * Makefile.in (obj): Add md5.o
1776
b02cd40b
GM
17772000-11-30 Gerd Moellmann <gerd@gnu.org>
1778
edfb795e
GM
1779 * md5.h, md5.c: New files, taken from glibc.
1780
df3aedcf
GM
1781 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
1782
b02cd40b
GM
1783 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
1784 hasn't a font, use that of the frame, as drawing glyphs
1785 does.
1786
8b5176cd
SM
17872000-11-29 Stefan Monnier <monnier@cs.yale.edu>
1788
1789 * eval.c (Frun_hooks): Allow 0 arguments.
1790
346598f1
GM
17912000-11-29 Gerd Moellmann <gerd@gnu.org>
1792
f9396e03
GM
1793 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
1794 is over the menu bar widget, say it's not on the frame.
1795
4a967a9b
GM
1796 * xfns.c (Fx_create_frame): Reintroduce the call to
1797 face-set-after-frame-defaults.
1798
346598f1
GM
1799 * eval.c (Fsignal): Reset handling_signal.
1800
222456a1
JR
18012000-11-28 Jason Rumney <jasonr@gnu.org>
1802
1803 * w32menu.c (add_menu_item): Reset menu item text when changing
1804 type to radio button.
1805
8049ddc0
GM
18062000-11-28 Gerd Moellmann <gerd@gnu.org>
1807
346598f1 1808 * xselect.c: Update copyright.
f4f4ee4d 1809
bebe4a2c
GM
1810 * window.c (coordinates_in_window): If on a mode or header line,
1811 but sufficiently close to its start, return ``on vertical
1812 border''. This gives us a way to drag windows horizontally when
1813 using toolkit scroll bars.
1814
1815 * xterm.c (note_mouse_highlight): Change the cursor shape
1816 on the vertical border between windows.
1817
1818 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
1819
1820 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
1821 (syms_of_xfns): DEFVAR_LISP it.
1822 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
1823
8d2c2642
GM
1824 * textprop.c (text_read_only): New function.
1825 (verify_interval_modification): Use it instead of signaling
1826 `text-read-only'. This makes it easier to catch this error
1827 with a breakpoint.:
1828
8049ddc0
GM
1829 * xdisp.c (forward_to_next_line_start): Check for newlines,
1830 not end of line, which includes CR.
1831
5a2bae6c
KH
18322000-11-28 Kenichi Handa <handa@etl.go.jp>
1833
1834 * coding.c (Ffind_coding_systems_region_internal): Be sure to
1835 include no-conversion.
1836
ae31f84d
JR
18372000-11-27 Jason Rumney <jasonr@gnu.org>
1838
1839 * w32fns.c (w32_load_system_font): Always mark font as double byte
1840 if codepage is unicode.
1841
67f1cf4c
GM
18422000-11-27 Gerd Moellmann <gerd@gnu.org>
1843
4a74d071
GM
1844 * xdisp.c (forward_to_next_line_start): If already on a newline,
1845 just consume it to avoid unintended skipping over invisible text
1846 below.
1847
902ae620
GM
1848 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
1849 `vertical-line', `mode-line' and `header-line' events.
1850
1851 * xdisp.c (try_window_id): Avoid starting to display in the middle
67f1cf4c
GM
1852 of a character, a TAB for instance. This is easier than to set
1853 up the iterator exactly, and it's not a frequent case, so the
1854 additional effort wouldn't really pay off.
1855
c1e279c2
AC
18562000-11-26 Andrew Choi <akochoi@i-cable.com>
1857
67f1cf4c 1858 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
c1e279c2
AC
1859 init_window_once.
1860
a609568a
JR
18612000-11-25 Jason Rumney <jasonr@gnu.org>
1862
48b21762
JR
1863 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]: Args
1864 to window_from_coordinates should be pixel coordinates.
1865
a609568a
JR
1866 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
1867 redisplay handles them properly.
1868
a658d039
MB
18692000-11-25 Miles Bader <miles@gnu.org>
1870
1871 * indent.c (compute_motion): Keep pos_byte in sync with pos.
1872
d3416cca
JR
18732000-11-24 Jason Rumney <jasonr@gnu.org>
1874
1875 * w32.c (init_environment): Set LANG environment variable based on
1876 locale settings, if not set.
1877
1878 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
1879 making tool bar smaller. When clearing the frame, also
1880 clear current matrices. Clear frame when tool bar disappears.
1881 Don't use more lines for the tool-bar than is available.
1882 (x_change_window_heights): New function.
1883
ba193890
GM
18842000-11-24 Gerd Moellmann <gerd@gnu.org>
1885
2be8f184
GM
1886 * xdisp.c (init_from_display_pos): If POS says we're already after
1887 an overlay string ending at POS, make sure to pop the iterator
1888 because it will be in front of that overlay string. When POS is
1889 ZV, we've thereby also ``processed'' overlay strings at ZV.
1890
ba193890
GM
1891 * xfaces.c (lface_from_face_name): Function comment fix.
1892
1862a24e
MB
18932000-11-24 Miles Bader <miles@gnu.org>
1894
1895 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
1896 apply `mode-line-inverse-video' -- zero means force display using
1897 the default face, non-zero means display using the specialized face.
1898 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
1899
f07fa1b8
KH
19002000-11-23 Kenichi Handa <handa@etl.go.jp>
1901
1902 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
1903 hard coded `4'.
1904
2bcdf662
EZ
19052000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
1906
1907 * coding.c (decode_coding_emacs_mule): Fix the case of
1908 CODING_EOL_LF, which used uninitialized value of c.
1909
ba8299ff
SM
19102000-11-23 Stefan Monnier <monnier@cs.yale.edu>
1911
1912 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
1913
f4117c4d
GM
19142000-11-22 Gerd Moellmann <gerd@gnu.org>
1915
03e757c1
GM
1916 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
1917 buffer object.
1918
f4117c4d
GM
1919 * frame.h (struct frame): Replace desired_tool_bar_items,
1920 current_tool_bar_items, n_desired_tool_bar_items,
cc362d76 1921 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
f4117c4d
GM
1922
1923 * frame.c (make_frame): Change initialization of tool bar
1924 items accordingly.
1925
1926 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
cc362d76 1927 Change references to members deleted from struct frame to use the
f4117c4d
GM
1928 new ones.
1929
1930 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
cc362d76 1931 references to members deleted from struct frame to use the new
f4117c4d
GM
1932 ones.
1933
1934 * dispnew.c (update_frame): Do nothing with frame's tool bar
1935 items.
1936
1937 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
1938
1939 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
cc362d76 1940 (note_tool_bar_highlight): Change references to members deleted
f4117c4d
GM
1941 from struct frame to use the new ones.
1942
f8e2f3f2
MB
19432000-11-23 Miles Bader <miles@gnu.org>
1944
1945 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
1946 the face's inverse-video attribute, rather than overriding it.
1947
60e8e0a5
GM
19482000-11-22 Gerd Moellmann <gerd@gnu.org>
1949
1950 * xfns.c (x_set_tool_bar_lines): Clear internal border when
1951 making tool bar smaller.
1952
92dd1b29
DL
19532000-11-22 Dave Love <fx@gnu.org>
1954
1955 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
1956
e672fdce
MB
19572000-11-22 Miles Bader <miles@gnu.org>
1958
3a17d6cc
MB
1959 * keyboard.c (Vminibuffer_message_timeout): New variable.
1960 (command_loop_1): Use it to determine message timeout.
1961 (syms_of_keyboard): Initialize it.
1962
60e8e0a5 1963 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
e672fdce 1964
e9655d81
KH
19652000-11-22 Kenichi Handa <handa@etl.go.jp>
1966
1967 * sysdep.c: Move the code for declaring h_errno after #include
1968 <netdb.h>.
1969
77270fac
GM
19702000-11-21 Gerd Moellmann <gerd@gnu.org>
1971
cd913aae
GM
1972 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
1973 the menu bar when the tooltip is unmapped.
1974
77270fac
GM
1975 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
1976 sole visible buffer when we're currently in the mini-buffer, and
1977 give up if so.
1978
556635d6
JR
19792000-11-21 Jason Rumney <jasonr@gnu.org>
1980
1981 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
1982 put on the clipboard.
1983 (Fw32_get_clipboard_data): Compare data on clipboard with saved
1984 copy of what Emacs last put there. If they are the same, do not
1985 use the clipboard copy to avoid losing data due to coding
1986 conversions.
1987
5b7bde64
MB
19882000-11-22 Miles Bader <miles@gnu.org>
1989
1990 * minibuf.c (Vminibuffer_prompt_properties): New variable.
1991 (syms_of_minibuf): Initialize it.
1992 (read_minibuf): Add properties from Vminibuffer_prompt_properties
1993 to prompt, don't make read-only.
1994
ff23e1dd
GM
19952000-11-21 Gerd Moellmann <gerd@gnu.org>
1996
3c64f287
GM
1997 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>: Add
1998 BEFORE/AFTER_POTENTIAL_GC.
1999
7aaf4388
GM
2000 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
2001
f5f47add 2002 * buffer.c (mmap_free_1): Avoid a compiler warning.
1a15cca0 2003
ff23e1dd
GM
2004 * term.c, cm.c: Don't try to include termcap.h; see comment there.
2005
37c35586
KH
20062000-11-21 Kenichi Handa <handa@etl.go.jp>
2007
2008 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
2009 ... #endif scope.
2010
ff9ab414
GM
20112000-11-20 Gerd Moellmann <gerd@gnu.org>
2012
c51d2b5e
GM
2013 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
2014 screen supports it.
2015
29a01b72
GM
2016 * s/gnu-linux.h: Don't use `#cpu'.
2017
09dfdf85
GM
2018 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
2019 not defined in mman.h.
2020
ff9ab414
GM
2021 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New
2022 variables.
2023 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
2024 and store an index in the XClientMessageEvent. Storing a
2025 Lisp_Object or pointer can fail on a 64 bit system, since X only
2026 transfers 32 bits.
2027 (x_scroll_bar_to_input_event): Get the window from
2028 scroll_bar_windows.
2029
81459ac9
DL
20302000-11-20 Dave Love <fx@gnu.org>
2031
2032 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
2033
56c13ae6
GM
20342000-11-20 Gerd Moellmann <gerd@gnu.org>
2035
2036 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
2037
495a6df3
KH
20382000-11-20 Kenichi Handa <handa@etl.go.jp>
2039
2bcf3714
KH
2040 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
2041 by WIDTH.
2042
495a6df3
KH
2043 * alloc.c (make_string): Fix previous change. Be sure to make
2044 unibyte string correctly.
2045
6d950f4c
GM
20462000-11-19 Gerd Moellmann <gerd@gnu.org>
2047
39b39373
GM
2048 * window.c (Fwindow_list): Change parameter list to be XEmacs
2049 compatible.
2050 (window_list_1): New function.
2051 (window_loop): Use it instead of Fwindow_list.
2052
b95b34e5
GM
2053 * sysdep.c (emacs_ospeed): New variable.
2054 (toplevel): Don't declare ospeed extern.
2055 (init_baud_rate): Use emacs_ospeed instead of ospeed.
2056
2057 * termcap.c (ospeed): Remove.
2058 (tputs) [!emacs]: Remove unused code.
2059 (tgetent): Avoid a compiler warning.
2060
e83dc917
GM
2061 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
2062 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
b95b34e5 2063 SCROLL_BAR_X_WIDGET with additional argument DPY.
e83dc917
GM
2064
2065 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
2066 removed.
2067 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
2068 Take the X display as additional argument.
2069 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
2070 `Widget' is a pointer type that's not easily stored in Lisp_Object
2071 form in a portable way.
2072
6d950f4c
GM
2073 * dispnew.c (update_text_area): Fix last change.
2074
e47306e6
GM
20752000-11-18 Gerd Moellmann <gerd@gnu.org>
2076
fb3cd89b
GM
2077 * xdisp.c: Use BINDING_STACK_SIZE throughout.
2078
2079 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
2080 clear current matrices.
2081
edaa9aed
GM
2082 * buffer.c (mmap_enlarge): Don't print a message on stderr
2083 if mapping new memory at the end of the existing region fails.
2084
e47306e6
GM
2085 * dispnew.c (update_text_area): Don't skip over equal glyphs
2086 when the last current glyph overlaps the glyph to its right.
2087
509633e3
MB
20882000-11-18 Miles Bader <miles@gnu.org>
2089
2090 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
2091 lines that *end* with "..." too (that's the most common case!).
2092
d392e9c5
GM
20932000-11-18 Gerd Moellmann <gerd@gnu.org>
2094
67988445
GM
2095 * xdisp.c (resize_mini_window): Temporarily change to the
2096 mini-window's buffer if necessary.
1bfdbe43 2097
d392e9c5
GM
2098 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
2099 the tooltip obscures less text under it.
2100
21012000-11-17 Gerd Moellmann <gerd@gnu.org>
2102
2103 * puresize.h (BASE_PURESIZE): Increase to 700000.
2104
92bb977f
JR
21052000-11-18 Jason Rumney <jasonr@gnu.org>
2106
2107 * w32term.c (w32_draw_bitmap): Use face to set colors.
2108
26fbf20b
DL
21092000-11-17 Dave Love <fx@gnu.org>
2110
2111 * lread.c (Fload): Fix #ifdef for pcc.
2112
100b593b
GM
21132000-11-17 Gerd Moellmann <gerd@gnu.org>
2114
2115 * xdisp.c (pos_visible_p): Compute the default character height
2116 differently.
2117
a288d0d1
GM
21182000-11-16 Gerd Moellmann <gerd@gnu.org>
2119
cac94de6
GM
2120 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
2121 knowing the line's height; use the default font's height in that
2122 case.
2123
a288d0d1
GM
2124 * xfaces.c (weight_table): Add `demi' with the same meaning as
2125 `demibold'.
2126
981fb6f6
KH
21272000-11-16 Kenichi Handa <handa@etl.go.jp>
2128
2cca872d 2129 * dispnew.c (null_row): New global static variable.
981fb6f6
KH
2130 (clear_glyph_row): Delete local static variable null_row.
2131
e5fa381b
JR
21322000-11-15 Jason Rumney <jasonr@gnu.org>
2133
2134 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
2135 (w32_alloc_lighter_color): Use new brightness calculations from
2136 xterm.c. Scale delta to be in the range expected by W32.
2137 (w32_draw_relief_rect): Use frame relief colors.
2138
8e42f043
GM
21392000-11-15 Gerd Moellmann <gerd@gnu.org>
2140
6d133d1f
GM
2141 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
2142 (Qinhibit_default_face_x_resources): New variable.
2143 (syms_of_frame): Initialize it.
2144 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
2145
2146 * xdisp.c (pos_visible_p): Improve function comment.
2147
2148 * lisp.h (BINDING_STACK_SIZE): New macro.
2149
8e42f043
GM
2150 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
2151 reading the directory if readdir returns null and errno is EAGAIN
2152 or EINTR.
2153
e8c87124
SM
21542000-11-14 Stefan Monnier <monnier@cs.yale.edu>
2155
2156 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
2157 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
2158 Set amount_to_scroll to max of dx and scroll_step so that
2159 scroll-conservatively doesn't defeat scroll-step>1.
2160 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
2161 scroll-conservatively for line-at-a-time scrolling.
2162
5f0c971d
GM
21632000-11-14 Gerd Moellmann <gerd@gnu.org>
2164
2165 * window.c (Fpos_visible_in_window_p): Call pos_visible with
2166 extra argument.
2167
2168 * xdisp.c (current_mode_line_height, current_header_line_height):
2169 New variables.
2170 (init_xdisp): Initialize them.
2171 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
2172 and use exact mode line heights if it is set.
2173
2174 * lisp.h (pos_visible_p): Change prototype.
2175
2176 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
2177 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
2178 and current_header_line_height first.
2179 (current_mode_line_height, current_header_line_height): Declare
2180 extern.
2181
d7361edf
MB
21822000-11-14 Miles Bader <miles@lsi.nec.co.jp>
2183
2184 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
2185 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
2186 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
2187
ee5e440a
MB
21882000-11-14 Miles Bader <miles@gnu.org>
2189
2190 * xterm.c (x_alloc_lighter_color): Include an additive component
2191 too for dark colors, because FACTOR isn't enough.
2192 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
2193 New macros.
2194
5ca020fc
GM
21952000-11-13 Gerd Moellmann <gerd@gnu.org>
2196
2197 * keyboard.c (show_help_echo): Call message3_nolog with number of
2198 bytes in the help string as 2nd parameter, instead of the number
2199 of characters.
2200
9d348294
MB
22012000-11-13 Miles Bader <miles@gnu.org>
2202
2203 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
2204 (Fload): Use new openp return protocol.
2205 Don't try to use Vload_source_file_function to load .elc files.
2206 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
2207 openp return protocol.
2208 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
2209
1729bb9a
KH
22102000-11-11 Kenichi Handa <handa@etl.go.jp>
2211
4e677396
KH
2212 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
2213
2214 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
2215 Defined these macros.
2216 (NLIST_STRUCT): Avoid re-defining it.
2217
1729bb9a
KH
2218 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
2219 -I/usr/contrib/X11R6/include.
2220 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
2221
a82fe213
JR
22222000-11-10 Jason Rumney <jasonr@gnu.org>
2223
2224 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
2225
2226 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
2227 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
2228
2229 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
2230 (Qw32_charset_vietnamese): New symbol.
2231 (xlfd_charset_of_font): New function.
2232 (w32_load_system_font): Use it.
2233 (x_to_w32_charset): Use Fassoc to find charset info. Special case
2234 when Vw32_charset_info_alist is nil to ensure default face always
2235 has font. Use Fcar and Fcdr for safety.
2236 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
2237 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
2238 pseudo-codepages for special cases.
2239 (w32_to_x_font): New parameter to allow charset portion to be
2240 specified where there is many to one mapping. Callers changed.
2241 (w32_list_fonts): Avoid listing fonts that won't display.
2242
52d89894
GM
22432000-11-10 Gerd Moellmann <gerd@gnu.org>
2244
2245 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
2246 (font_list_1): Renamed from font_list.
2247 (font_list): New function, trying alternative registries from
2248 Vface_alternative_font_registry_alist.
2249 (Finternal_set_alternative_font_registry_alist): New function.
2250 (syms_of_xfaces): Initialize and Staticpro
2251 Vface_alternative_font_registry_alist. Defsubr
2252 Finternal_set_alternative_font_registry_alist.
2253
651cd3da
KR
22542000-11-09 Ken Raeburn <raeburn@gnu.org>
2255
2256 * lisp.h (Flooking_at): Declare.
2257
388ac098
GM
22582000-11-09 Gerd Moellmann <gerd@gnu.org>
2259
778fbc46
GM
2260 * dired.c (directory_files_internal): Fix a braino.
2261
388ac098
GM
2262 * dired.c (directory_files_internal): Add missing GCPRO's.
2263 Some cleanup.
2264
ecaedde1
GM
22652000-11-08 Gerd Moellmann <gerd@gnu.org>
2266
f7eb32aa
GM
2267 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
2268 (resize_mini_window): Return quickly if Vresize_mini_window is
2269 nil. Don't return if Vmax_mini_window_height is nil.
2270
2271 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
2272 (syms_of_xdisp): Initialize them.
2273 (resize_mini_window): Act according to the setting of
2274 Vresize_mini_window.
2275 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
2276
ecaedde1
GM
2277 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
2278 scroll bar widget after configuring it, so that it will appear at
2279 the right position from the start.
2280 (XTredeem_scroll_bar): Cleaned up.
2281
3747ef2c
KH
22822000-11-08 Kenichi Handa <handa@etl.go.jp>
2283
2284 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
5d16e624 2285 font is taller than the frame line, we don't have to bias the
3747ef2c
KH
2286 division by two.
2287
2288 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
2289
03391420
DL
22902000-11-07 Dave Love <fx@gnu.org>
2291
7758f1c1 2292 * config.in (HAVE_MKSTEMP): Add.
03391420
DL
2293
2294 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
2295
b5de343d
GM
22962000-11-07 Gerd Moellmann <gerd@gnu.org>
2297
acad3c0b
GM
2298 * window.c (Fset_window_configuration): Don't try to preserve
2299 point in the current buffer, if that buffer is displayed in more
2300 than one window.
2301
b5de343d
GM
2302 * xfaces.c (lookup_named_face): If default face isn't realized,
2303 try to realize it. Return -1 if not successful.
2304 (Fx_list_fonts): Handle case that face cannot be determined.
2305 (Fface_font): Likewise.
2306
cdb1fe49
GM
23072000-11-06 Gerd Moellmann <gerd@gnu.org>
2308
2309 * window.c (displayed_window_lines): Detect partially
2310 visible lines at the bottom correctly.
2311
d3a67486
SM
23122000-11-06 Stefan Monnier <monnier@cs.yale.edu>
2313
2314 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
2315 when ensuring we don't do visit in indirect buffer.
2316
ff8dd5d5
KH
23172000-11-06 Kenichi Handa <handa@etl.go.jp>
2318
2319 * composite.h (compose_chars_in_text): Add prototype.
2320
2321 * composite.c (Vcomposition_function_table): New variable.
2322 (Qcomposition_function_table): New variable.
2323 (run_composition_function): Call
2324 Vcompose_chars_after_function with three arguments.
2325 (compose_chars_in_text): New function.
2326 (syms_of_composite): Modified the doc-string of
2327 Vcompose_chars_after_function. Declare composition-function-table
2328 as a lisp variable, and initialize it.
2329
2330 * xfns.c (x_encode_text): Suppress producing escape sequences for
2331 composition.
2332
2333 * xselect.c: Include composite.h.
2334 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
2335
d1145f85
AI
23362000-11-05 Andrew Innes <andrewi@gnu.org>
2337
2338 * w32term.c (x_produce_glyphs): Fix typo in enum name.
2339
2340 * sysdep.c (read_input_waiting): Remove extraneous argument to
2341 read_socket_hook.
2342
2343 * w32fns.c (Fx_server_version): Include w32_build_number in the
2344 return list.
2345
2346 * w32heap.c (w32_build_number): New variable.
2347 (cache_system_info): Set it.
2348
2349 * w32heap.h (w32_build_number): Add extern.
2350
2351 * emacs.c (syms_of_emacs): Update docstring for
2352 system-configuration, to reflect the actual usage on MS-Windows.
2353
e85ee976
GM
23542000-10-31 Gerd Moellmann <gerd@gnu.org>
2355
26dcb81b
GM
2356 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
2357 process idle timers while waiting for another event.
2358
0a894bad
GM
2359 * dispnew.c (update_frame_line): Handle case where spaces in
2360 the default face are colored.
2361
e85ee976
GM
2362 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
2363 window height hasn't changed.
2364
01b220b6
JR
23652000-10-31 Jason Rumney <jasonr@gnu.org>
2366
2367 * w32term.c (x_produce_glyphs): Handle composite characters.
2368 (x_draw_glyph_string_foreground)
2369 (x_draw_composite_glyph_string_foreground): Restore old font.
2370
4e6b7204
MB
23712000-10-31 Miles Bader <miles@lsi.nec.co.jp>
2372
2373 * minibuf.c (read_minibuf): Reset the undo history just before
2374 starting the recursive-edit.
2375
d4358b37
GM
23762000-10-30 Gerd Moellmann <gerd@gnu.org>
2377
563f68f1
GM
2378 * xfaces.c (menu_face_change_count): New variable.
2379 (Finternal_set_lisp_face_attribute): Increment it for changes
2380 of the `menu' face.
2381 (realize_basic_faces): Reflect changes in the `menu' faces
2382 in menu bars.
2383
82e274d1
GM
2384 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
2385 dy obtained from the iterator's y-position after moving from
2386 scroll_margin_pos to PT; see comment there.
2387
0dbf9fd2
GM
2388 * xdisp.c (safe_eval_handler): Call add_to_log.
2389
906b3b14
GM
2390 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
2391 is not a symbol or string.
2392
d4358b37
GM
2393 * xdisp.c (echo_area_display): Don't perform a display update from
2394 inside redisplay. The update will happen anyway at the end of
2395 redisplay, and it can confuse redisplay (GC messages while
2396 redisplaying, for instance.)
2397
70c825df
SM
23982000-10-30 Stefan Monnier <monnier@cs.yale.edu>
2399
cf9b4b0b
SM
2400 * xrdb.c (x_load_resources): Use the class name in the defaults.
2401
70c825df
SM
2402 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
2403 (regex_compile): Catch bogus \(\1\).
2404
a1d34b1e
GM
24052000-10-30 Gerd Moellmann <gerd@gnu.org>
2406
cae71efe
GM
2407 * xterm.c (x_alloc_nearest_color): Fix last change to compare
2408 RGB values.
2409
35efe0a1
GM
2410 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
2411 we have a color cache, check that the cached color equals the
2412 allocated color. If not, clear the color cache.
2413
1d3baf74
GM
2414 * window.c (displayed_window_lines): Change buffers if necessary.
2415 Fix computation of displayed lines.
2416
a1d34b1e
GM
2417 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
2418 update_menu_bindings to DEFVAR_BOOL.
2419
70737ea9
KH
24202000-10-30 Kenichi Handa <handa@etl.go.jp>
2421
70c825df 2422 * search.c (Fset_match_data): Be sure to make search_regs always sane.
80406070 2423
fa0cb51d
KH
2424 * puresize.h (BASE_PURESIZE): Increase to 680000.
2425
70737ea9
KH
2426 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
2427
0e4c08e8
JR
24282000-10-29 Jason Rumney <jasonr@gnu.org>
2429
2430 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
2431
2432 * w32term.c (w32_bdf_per_char_metric): Negate descent.
2433 (w32_cache_char_metrics): Handle possibility that 'x' does not
2434 exist in a BDF font.
2435 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
2436
2437 * w32bdf.h (bdffont): Add nchars.
2438
2439 * w32bdf.c (set_bdf_font_info): Set it.
2440 (w32_BDF_TextOut): Swap byte order of double byte characters.
2441 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
2442
45b84006
EZ
24432000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
2444
2445 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
2446 don't override the colors in frame's param_alist, unless they are
2447 unspecified.
2448
2449 * term.c (reassert_line_highlight): If inverse_video is non-zero,
2450 reverse the effect of the highlight flag.
2451
caf9deee
KR
24522000-10-27 Ken Raeburn <raeburn@gnu.org>
2453
2454 * window.h (Fwindow_live_p): Declare.
2455
ae0b9b46
KR
2456 * undo.c (record_delete): Check that last_undo_buffer is really a
2457 buffer before applying XBUFFER to it.
2458
2459 * keymap.c (where_is_internal): Pass lisp object, not integer, to
2460 Faref.
2461
02067692
SM
24622000-10-27 Stefan Monnier <monnier@cs.yale.edu>
2463
2464 * lisp.h (KEYMAPP): New macro.
2465 (get_keymap): Remove.
2466 (get_keymap_1): Rename get_keymap.
2467
2468 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
2469
2470 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
2471
2472 * xmenu.c (single_submenu): Use KEYMAPP.
2473 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
2474 Use KEYMAPP rather than Fkeymapp.
2475
2476 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
2477
2478 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
2479 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
2480 Use KEYMAPP rather than Fkeymapp.
2481 (single_submenu): Use KEYMAPP.
2482 (w32_menu_show, w32_dialog_show): Use TRUE.
2483
2484 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
2485
2486 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
2487 (Fkeymapp): Use KEYMAPP.
2488 (get_keymap): Rename from get_keymap_1. Remove old def.
2489 Return t when autoload=0 and error=0 and the keymap needs autoloading.
2490 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
2491 (Fminor_mode_key_binding): Don't raise an error if the binding
2492 is not a keymap.
2493 (Fuse_global_map, Fuse_local_map): Allow autoloading.
2494 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
2495
2496 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
2497 Allow Vspecial_event_map to be autoloaded.
2498 (menu_bar_items): Fetch the keymap rather than using keymapp.
2499 (menu_bar_one_keymap): No need to follow func-indirect any more.
2500 (parse_menu_item): get_keymap_1 -> get_keymap.
2501 (tool_bar_items): Fetch the keymap rather than using keymapp.
2502 (read_key_sequence): Use KEYMAPP.
2503
2504 * intervals.c (get_local_map): Use get_keymap rather than following
2505 function-indirections explicitly.
2506
2507 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
2508
f9d80af3
JR
25092000-10-27 Jason Rumney <jasonr@gnu.org>
2510
2511 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
2512 point, as Windows has oversized fonts.
2513
2514 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
2515
a3ba27da
GM
25162000-10-27 Gerd Moellmann <gerd@gnu.org>
2517
2518 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
2519 (freehook, reallochook): Handle null pointer arguments.
2520 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
2521
aa3b80cc
SM
25222000-10-27 Stefan Monnier <monnier@cs.yale.edu>
2523
2524 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
2525 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
2526 Giving in to popular pressure to shut up the compiler with casts.
2527
e24e84cc
GM
25282000-10-27 Gerd Moellmann <gerd@gnu.org>
2529
2530 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
2531 signed value, and use a default value computed from the font's
2532 maximum descent.
2533
05ea7ef2
MB
25342000-10-27 Miles Bader <miles@lsi.nec.co.jp>
2535
2536 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
2537 that specify a negative underline position can still use underlines.
2538
2539 * window.c (Fpos_visible_in_window_p): Make POS default to
2540 WINDOW's point, not the current buffer's point.
2541
0b95284b
DL
25422000-10-26 Dave Love <fx@gnu.org>
2543
2544 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
2545 when it's necessary.
2546
6c5b90af
GM
25472000-10-26 Gerd Moellmann <gerd@gnu.org>
2548
8b6d9dc9
GM
2549 * window.c (size_window): Compute size difference from sum of old
2550 child window sizes instead of from parent's size.
2551
6bc92b2e
GM
2552 * xdisp.c (pos_visible_p): Change current buffer if necessary.
2553 Handle obscured lines at the top of the window.
2554
2555 * frame.c (Fdelete_frame): Doc fix. Move running the hook
2556 down after the last error condition check.
2557
6c5b90af
GM
2558 * frame.c (Fdelete_frame): Run delete-frame-hook.
2559
42f92d4d
KH
25602000-10-26 Kenichi Handa <handa@etl.go.jp>
2561
2562 * coding.c (decode_coding): Fix previous change (check also
2563 CODING_MODE_LAST_BLOCK).
2564
d97151cb
SM
25652000-10-25 Stefan Monnier <monnier@cs.yale.edu>
2566
e7efc503
SM
2567 * regex.c: More `unsigned char' -> `re_char' changes.
2568 Also change several `int' into `re_wchar_t'.
2569 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
2570 (PUSH_FAILURE_POINTER): Don't cast any more.
2571 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
2572 We want GCC to complain, since this piece of code makes
2573 re_match non-reentrant, which *should* be fixed.
2574 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
2575 (EXTEND_BUFFER): Use RETALLOC.
2576 (SET_LIST_BIT): Don't cast.
2577 (re_wchar_t): New type.
2578 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
2579 that those two functions will always properly return.
2580 (IMMEDIATE_QUIT_CHECK): Cast to void.
2581 (analyse_first): Use recursion rather than an explicit stack.
2582 (re_compile_fastmap): Can't fail anymore.
2583 (re_search_2): Don't check re_compile_fastmap for failure.
2584 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
2585 Now also sets the new value (passed in a new argument).
2586 (re_match_2_internal): Use it.
2587 Also, use a new var `reg' of type size_t when looping through regs
2588 rather than reuse the inappropriate `mcnt'.
2589
d97151cb
SM
2590 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
2591 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
2592 (where_is_internal): Renamed from Fwhere_is_internal.
2593 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
2594 (Fwhere_is_internal): New function wrapping where_is_internal.
2595 (where_is_internal_1): Handle the case where we're filling the cache.
2596 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
2597
d5789b65
MB
25982000-10-25 Miles Bader <miles@gnu.org>
2599
2600 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
2601
4ecda532
GM
26022000-10-25 Gerd Moellmann <gerd@gnu.org>
2603
2604 * window.c (pos_fully_visible_p): Removed.
2605 (Fpos_visible_in_window_p): Use pos_visible_p to determine
2606 if position is visible and/or fully visible.
2607
2608 * lisp.h (pos_visible_p): Add prototype.
2609
2610 * xdisp.c (pos_visible_p): New function.
2611
68c3a137
KH
26122000-10-25 Kenichi Handa <handa@etl.go.jp>
2613
2614 * process.c (send_process): If OBJECT is t, it means that the data
2615 is from C string, but we should encode it. Before calling
2616 setup_raw_text_coding_system, be sure to flush out data by the
2617 previous coding system.
2618
7ae1c032
MB
26192000-10-25 Miles Bader <miles@lsi.nec.co.jp>
2620
ff4dcd4b
MB
2621 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
2622 assignment of startpos to prev when startpos == pos.
2623
7ae1c032
MB
2624 * editfns.c (find_field): Set the field stickiness correctly from
2625 overlay fields. Use renamed `text_property_stickiness'.
2626 (text_property_stickiness): Renamed from `char_property_stickiness'.
ebe2a441 2627 Only check text properties, not overlays.
7ae1c032
MB
2628 * textprop.c (get_char_property_and_overlay): New function.
2629 (Fget_char_property): Use it.
2630 * intervals.h (get_char_property_and_overlay): Add declaration.
2631
49801145
SM
26322000-10-25 Stefan Monnier <monnier@cs.yale.edu>
2633
2634 * keymap.c: Use AREF, ASET and ASIZE macros.
2635 (Fmake_sparse_keymap): Docstring fix.
2636 (synkey): Remove.
2637 (shadow_lookup): Move up.
2638 Handle the case where lookup-key returns an integer.
2639 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
2640 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
2641 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
2642 Simplify/rewrite the keymap-finding code.
2643 Add check for command shadowing, using shadow_lookup.
2644
39e776cd
SM
26452000-10-24 Stefan Monnier <monnier@cs.yale.edu>
2646
2647 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
2648 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
2649 a symbol.
2650
2488aba5
AI
26512000-10-24 Andrew Innes <andrewi@gnu.org>
2652
2653 * dired.c (directory_files_internal_unwind): New function.
2654 (directory_files_internal): Use it to ensure closedir is called
2655 even if expand-file-name or file-attributes throw, eg. because of
2656 a user interrupt. Also enable immediate_quit while calling
2657 re_search, so that matching can be interrupted as well.
2658
b94fdf61
AI
26592000-10-24 Andrew Innes <andrewi@gnu.org>
2660
2661 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
2662 NT-Emacs only.
2663 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
2664 so that re_search functions only quit when callers expect them to.
2665
26662000-10-24 Kenichi Handa <handa@etl.go.jp>
2667
2668 * regex.c (regex_compile): Change the way of handling a range from
2669 a char less than 256 to a char not less than 256.
2670
1946f901
GM
26712000-10-24 Gerd Moellmann <gerd@gnu.org>
2672
7ae2f10f
GM
2673 * window.c (size_window): Prevent setting window's width or
2674 height to a negative value (esp. with XSETFASTINT).
2675
5dcab13e
GM
2676 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
2677 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
2678 (protect_malloc_state) [GC_MALLOC_CHECK &&
2679 GC_PROTECT_MALLOC_STATE]: New function.
2680 (PROTECT_MALLOC_STATE): New macro.
2681 (__malloc_initialize, morecore, _malloc_internal)
2682 (_free_internal) _realloc_internal): Use it to make _heapinfo
2683 read-only outside of gmalloc.
2684
63e1b552
GM
2685 * keymap.c: Update copyright.
2686
1946f901
GM
2687 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
2688 a symbol.
2689
4fa09beb
GM
26902000-10-24 Colin Walters <walters@cis.ohio-state.edu>
2691
2692 * filelock.c (unlock_all_files): Use unlock_file to expand each
2693 buffer's file_truename before trying remove its lock file.
2694
23afac01
EZ
26952000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
2696
2697 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
2698 or CRLF, decode EOLs.
2699
04448b95
KH
27002000-10-24 Kenichi Handa <handa@etl.go.jp>
2701
2702 * window.c (Fdisplay_buffer): Fix doc.
2703
3090a5a5
JR
27042000-10-23 Jason Rumney <jasonr@gnu.org>
2705
2706 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
2707 ASCII font of default fontset on Windows.
2708
2709 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
2710 xterm.c comment below).
2711
2712 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
2713
a83fee2c
GM
27142000-10-23 Gerd Moellmann <gerd@gnu.org>
2715
2716 * xterm.c (x_connection_closed): Reset handling_signal.
2717
2718 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing
2719 null.
2720
6ffdb539
MB
27212000-10-23 Miles Bader <miles@gnu.org>
2722
2723 * window.c (window_scroll_pixel_based, window_scroll_line_based):
2724 Pass nil for FULLY argument to Fpos_visible_in_window_p to
2725 maintain old behavior.
2726 * minibuf.c (Fminibuffer_complete): Likewise.
2727
7f1c969b
MB
27282000-10-23 Miles Bader <miles@lsi.nec.co.jp>
2729
2730 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
2731 that when a font can't be exactly centered, it errs up rather than
2732 down.
2733
23afac01 27342000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
8ec118cd
SZ
2735
2736 * fns.c (Fbase64_decode_string): The decoded result should be
2737 unibyte.
2738
1a578e9b
AC
27392000-10-23 Andrew Choi <akochoi@i-cable.com>
2740
2741 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
2742
2743 * dispnew.c [macintosh]: Include macterm.h.
a83fee2c 2744 (init_display) [macintosh]: Initialization for window system.
1a578e9b
AC
2745
2746 * emacs.c (main) [macintosh]: Call syms_of_textprop,
2747 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
2748 syms_of_search, x_term_init, and init_keyboard before calling
2749 init_window_once. Also, call syms_of_xmenu.
2750
2751 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
2752 default fontset to Monaco.
2753
2754 * frame.c [macintosh]: Include macterm.h. Remove declarations of
2755 NewMacWindow and DisposeMacWindow.
2756 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
2757 instead of calling NewMacWindow and setting fields of
2758 f->output_data.mac directly. Call init_frame_faces.
2759 (Fdelete_frame) [macintosh]: Remove unused code.
2760 (Fmodify_frame_parameters) [macintosh]: Call
2761 x_set_frame_parameters instead of mac_set_frame_parameters.
2762
2763 * frame.h [macintosh]: Define menu_bar_lines field in struct
2764 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
2765
2766 * keyboard.c [macintosh]: Include macterm.h.
2767 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
2768 and menu_bar_activate_event type events as for X and NT.
2769 (make_lispy_event) [macintosh]: Construct lisp events of type
2770 MENU_BAR_EVENT as for X and NT.
2771
2772 * sysdep.c [macintosh]: Remove declaration for sys_signal.
2773 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
2774 (sys_subshell) [macintosh]: Remove definition entirely.
2775 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
2776 Vwindow_system_version here. Remove initialization of
2777 Vx_bitmap_file_path.
2778 (read_input_waiting): Correct the number of parameters passed to
2779 read_socket_hook.
2780 Move all Macintosh functions to mac/mac.c.
2781
2782 * term.c [macintosh]: Include macterm.h.
2783
2784 * window.c [macintosh]: Include macterm.h.
2785
2786 * xdisp.c [macintosh]: Include macterm.h. Declare
2787 set_frame_menubar and pending_menu_activation.
2788 (echo_area_display) [macintosh]: Do not return if terminal frame
2789 is the selected frame.
2790 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
2791 Allow only the selected frame to set menu bar.
2792 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
2793 calling FRAME_EXTERNAL_MENU_BAR (f).
2794 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
2795
2796 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
2797 and check_x. Declare XCreateGC. Define x_create_gc and
2798 x_free_gc. Initialize font_sort_order.
2799 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
2800 but call x_list_fonts instead of w32_list_fonts.
2801 (Finternal_face_x_get_resource) [macintosh]: Do not call
2802 display_x_get_resource.
2803 (prepare_face_for_display) [macintosh]: Set xgcv.font.
2804 (realize_x_face) [macintosh]: Load the font if it is specified in
2805 ATTRS.
2806 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed
2807 to Qt.
2808
1ffbabe3
SM
28092000-10-22 Stefan Monnier <monnier@cs.yale.edu>
2810
2811 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
2812 is nil: since we go to the end of submap anyway, we'd end up
2813 setting nil to nil.
2814 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
2815 doesn't obey autoload.
2816
bed43f1d
EZ
28172000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
2818
1ffbabe3 2819 * msdos.c (dos_set_window_size): Update screen dimension variables.
bed43f1d 2820
ea4233a7
JR
28212000-10-21 Jason Rumney <jasonr@gnu.org>
2822
2823 * w32term.c (w32_cache_char_metrics): Double check that font is
2824 really fixed pitch before trusting tmPitchAndFamily.
2825
f3d3c491
AI
28262000-10-21 Andrew Innes <andrewi@gnu.org>
2827
2828 * w32gui.h (w32_char_font_type): Move enum from w32term.c
2829
2830 * w32term.h: Extern decl for w32_cache_char_metrics.
2831
2832 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
2833
2834 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
2835 (w32_unload_font): Free per_char array if present.
2836
2837 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
2838 cached information in emulated XFontStruct to handle common cases
2839 quickly. Do not allocate XCharStruct for return.
2840 (w32_native_per_char_metric): New function.
2841 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
2842 allocating one.
2843 (x_produce_glyphs): Don't get an HDC. Change calls to
2844 w32_per_char_metric to match arg change above. Remove calls to
2845 free results.
2846 (w32_get_glyph_overhangs): Ditto.
2847 (w32_cache_char_metrics): New function.
2848
2849 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
2850 ($(BLD)/casefiddle.$(O)): Remove compile command.
2851 ($(BLD)/gmalloc.$(O)): Remove compile command.
2852 ($(BLD)/dispnew.obj):
2853 ($(BLD)/keyboard.obj):
2854 ($(BLD)/w32inevt.obj):
2855 ($(BLD)/w32bdf.obj):
2856 ($(BLD)/alloc.obj):
2857 ($(BLD)/buffer.obj):
2858 ($(BLD)/editfns.obj):
2859 ($(BLD)/emacs.obj):
2860 ($(BLD)/fileio.obj):
2861 ($(BLD)/fns.obj):
2862 ($(BLD)/indent.obj):
2863 ($(BLD)/insdel.obj):
2864 ($(BLD)/intervals.obj):
2865 ($(BLD)/minibuf.obj):
2866 ($(BLD)/print.obj):
2867 ($(BLD)/scroll.obj):
2868 ($(BLD)/sysdep.obj):
2869 ($(BLD)/textprop.obj):
2870 ($(BLD)/widget.obj):
2871 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
2872 ($(BLD)/term.obj): Add dependency on dispextern.h.
2873
2874 * makefile.nt ($(BLD)\dispnew.obj):
2875 ($(BLD)\keyboard.obj):
2876 ($(BLD)\w32inevt.obj):
2877 ($(BLD)\w32bdf.obj):
2878 ($(BLD)\alloc.obj):
2879 ($(BLD)\buffer.obj):
2880 ($(BLD)\editfns.obj):
2881 ($(BLD)\emacs.obj):
2882 ($(BLD)\fileio.obj):
2883 ($(BLD)\fns.obj):
2884 ($(BLD)\indent.obj):
2885 ($(BLD)\insdel.obj):
2886 ($(BLD)\intervals.obj):
2887 ($(BLD)\minibuf.obj):
2888 ($(BLD)\print.obj):
2889 ($(BLD)\scroll.obj):
2890 ($(BLD)\sysdep.obj):
2891 ($(BLD)\textprop.obj):
2892 ($(BLD)\widget.obj):
2893 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
2894 ($(BLD)\term.obj): Add dependency on dispextern.h
2895
18ad4821
EZ
28962000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
2897
2898 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
2899 with an additional argument of Qt.
2900
de54681a
MB
29012000-10-21 Miles Bader <miles@gnu.org>
2902
2903 * window.c (pos_fully_visible_in_window_p): New function.
2904 (Fpos_visible_in_window_p): Add FULLY argument.
2905 Use pos_fully_visible_in_window_p.
2906 (window_scroll_pixel_based, window_scroll_line_based): Update
2907 calls to Fpos_visible_in_window_p.
2908 * lisp.h (Fpos_visible_in_window_p): Update prototype
2909
13c844fb
GM
29102000-10-20 Gerd Moellmann <gerd@gnu.org>
2911
2912 * alloc.c (toplevel): Conditionalize compilation of mem_*
2913 functions differently.
2914
d9506268
JR
29152000-10-20 Jason Rumney <jasonr@gnu.org>
2916
2917 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
2918 mem_init where it used to be. mem_z etc not defined otherwise.
2919
8094989b
GM
29202000-10-20 Gerd Moellmann <gerd@gnu.org>
2921
2922 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
2923 GC_MALLOC_CHECK.
2924 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
2925 structure definition and related variabled to the top of the file.
2926 Include this code when GC_MALLOC_CHECK is defined.
2927 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
2928 register/unregister allocated region.
2929 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
2930 which isn't allocated.
2931 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
2932 something which is already in use.
2933 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
2934 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
2935 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
2936 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
2937
2938 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
2939 _malloc_internal instead of malloc.
2940 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
2941 of free.
2942
ea456eb4
AI
29432000-10-20 Andrew Innes <andrewi@gnu.org>
2944
2945 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
2946 Windows.
2947 (my_strftime) <macro>: Don't use macro arg list when redefining as
2948 _strftime_copytm.
2949 (my_strftime) <function>: Supply 0 as ut argument.
2950
e64c3a75
JR
29512000-10-19 Jason Rumney <jasonr@altavista.net>
2952
2953 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
2954 including dispextern.h, as it stops faces from working.
2955
2956 * w32fns.c (Fx_create_frame): Don't bother calling
2957 face-set-after-frame-default since the caller does it for us
2958 anyway. Clean up calls to x_get_arg to be consistent with X.
2959
2960 * w32term.c (x_produce_glyphs): Handle
2961 unibyte_display_via_language_environment correctly.
2962 (w32_draw_box_rect): Fix the calculation of width and height.
2963
2964 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
2965 as it has stopped working.
2966 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
2967 menu-bar.
2968
17401c97
GM
29692000-10-19 Gerd Moellmann <gerd@gnu.org>
2970
2971 * eval.c (skip_debugger): Prevent a compiler warning.
2972 (Fcondition_case): Likewise.
2973 (Fbacktrace_frame): Use a null interactive spec.
2974
773272d8
KH
29752000-10-19 Kenichi Handa <handa@etl.go.jp>
2976
2977 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
2978
a42943e9
GM
29792000-10-18 Gerd Moellmann <gerd@gnu.org>
2980
e50517d9
GM
2981 * strftime.c: Sync with glibc, file version 1.78.
2982 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
2983 should no longer be used according to ISO 8601.
2984
9035a35a
GM
2985 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
2986 no map for meta_prefix_char, don't try to use it as a keymap.
2987 Instead, if T_OK is non-zero, look up a default binding, if any,
2988 otherwise, if T_OK is zero, return nil.
2989
a42943e9
GM
2990 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
2991 (x_to_xcolors, png_load): Use x_query_color.
2992
2993 * xterm.c (x_color_cells, x_query_colors, x_query_color): New
2994 functions.
2995 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
2996 which can be slow.
2997 (x_copy_color, x_alloc_lighter_color): Likewise.
2998
2999 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
3000 (x_query_color, x_query_colors): Add prototype.
3001
3002 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
3003 check_string_bytes only if not noninteractive, increase count to 50.
3004
00de2987
MB
30052000-10-18 Miles Bader <miles@lsi.nec.co.jp>
3006
3007 * insdel.c (adjust_markers_for_delete): Handle before-insertion
3008 markers correctly.
3009
54918e2b
GM
30102000-10-17 Gerd Moellmann <gerd@gnu.org>
3011
1f0b3fd2
GM
3012 * alloc.c (pure_bytes_used): Renamed from pureptr.
3013 (ALIGN): New macro.
3014 (pure_alloc): New function.
3015 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
3016 Use it.
3017 (Fpurecopy): Use PURE_POINTER_P.
3018
68c5d1db
GM
3019 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
3020 PT has moved backward.
3021
9a038881
GM
3022 * xdisp.c (cursor_row_p): Take continued lines into account.
3023
361b097f
GM
3024 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
3025 string's size_byte.
3026 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
3027 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
3028 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
3029 string allocated.
3030
54918e2b
GM
3031 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
3032 of selective display off while searching for the next line start.
3033
03ed0806
KH
30342000-10-17 Kenichi Handa <handa@etl.go.jp>
3035
3036 * Makefile.in (term.o): Depend on dispextern.h.
3037
7e05cdaf
SM
30382000-10-16 Stefan Monnier <monnier@cs.yale.edu>
3039
3040 * keymap.c (keymap_memberp): Ensure that nil is not a member.
3041
a6801fd1
GM
30422000-10-16 Gerd Moellmann <gerd@gnu.org>
3043
483de32b
GM
3044 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
3045 the iterator at the beginning, so that they can be set later on,
3046 for instance in reseat_at_next_visible_line_start, without being
3047 overwritten.
3048
a6801fd1
GM
3049 * xfns.c (pbm_format): Add :foreground and :background keywords.
3050 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
483de32b 3051 (xbm_load): Recognize foreground and background color
a6801fd1
GM
3052 specifications.
3053
dbf1fcc1
EZ
30542000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
3055
3056 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
3057
3058 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern
3059 declaration.
3060
3061 * msdos.c (IT_set_face): Compare highlighted face with the default
3062 face, and invert colors if these faces' colors are identical.
3063 (Fmsdos_remember_default_colors): Don't swap foreground and
3064 background colors in initial_colors[].
3065 (IT_set_frame_parameters): Don't swap frame's foreground and
3066 background pixels. If ALIST includes "(reverse . t)", swap
3067 foreground-color and background-color properties in frame's
3068 param_alist. If the original frame's param_alist doesn't specify
3069 the colors, store unspecified-fg and unspecified-bg, reversed if
3070 required.
3071
3072 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
3073 the colors are unspecified and reversed, reverse fore- and back-
3074 ground in the returned value.
3075 (Fframe_parameter): Ditto.
3076
b41fe2c3
GM
30772000-10-16 Gerd Moellmann <gerd@gnu.org>
3078
3a6b59d9
GM
3079 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
3080 get_last_unchanged_at_beg_row.
3081 (find_first_unchanged_at_end_row): Renamed from
3082 get_first_unchanged_at_end_row.
3083 (find_first_unchanged_at_end_row): Convert assertions to
3084 unconditional tests which abort. When looking for a row in
3085 unchanged text, don't go further back than first_text_row.
3086
b41fe2c3
GM
3087 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
3088 Don't add in the last line's height when deciding if the new
3089 position is below the scroll margin.
9d1af64f 3090
b41fe2c3 30912000-10-16 Miles Bader <miles@gnu.org>
f657bbf6
MB
3092
3093 * editfns.c (Fconstrain_to_field): Check carefully for field
3094 boundaries if either OLD_POS or NEW_POS has a non-nil field
3095 property, even if they're the same.
3096
c412cb7b
KH
30972000-10-16 Kenichi Handa <handa@etl.go.jp>
3098
3099 * xterm.c (x_draw_box_rect): Fix the calculation of width and
3100 height for XFillRectangle.
3101
5586f3eb
SM
31022000-10-15 Stefan Monnier <monnier@cs.yale.edu>
3103
3104 * syntax.c (Fstring_to_syntax): New function extracted from
3105 Fmodify_syntax_entry.
3106 (Fmodify_syntax_entry): Use it and document the ! and | fences.
3107 (skip_chars, Fforward_comment): Remove unused variables.
3108 (syms_of_syntax): Add defsubr for string-to-syntax.
3109 (describe_syntax): Add code for comment and string fences.
3110
db785038
SM
31112000-10-14 Stefan Monnier <monnier@cs.yale.edu>
3112
3113 * keymap.c (access_keymap): Add AUTOLOAD parameter.
3114 Do the meta->esc mapping. Call get_keyelt before returning.
3115 Start scanning from the second element (the first is always `keymap')
3116 to make it easier to detect when we reach a parent map.
3117 Handle the case of inheriting from a symbol whose function is a map.
3118 (Fkeymap_parent): Also handle the `inherit from symbol' case.
3119 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
3120 (get_keyelt, Flookup_key): Update call to access_keymap.
3121 Remove the meta->esc mappings.
3122 (define_as_prefix): Delete old disabled code.
3123 (menu_item_p): New function.
3124 (where_is_internal_1): Skip over the few remaining menu items.
3125 * lisp.h (access_keymap): Update prototype.
3126 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
3127 Update call to access_keymap.
3128 (follow_key, read_key_sequence): Update calls to access_keymap.
3129 Remove the meta->esc mappings.
3130
cafafe0b
GM
31312000-10-13 Gerd Moellmann <gerd@gnu.org>
3132
a2e2a7f6
GM
3133 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
3134 with additional argument.
3135
cafafe0b
GM
3136 * xdisp.c (cursor_row_p): New function.
3137 (try_cursor_movement, display_line): Use it.
3138
3139 * xdisp.c (append_space): Also save/restore iterator's current
3140 character and its length.
3141
3142 * xdisp.c (init_from_display_pos): Add an assertion.
3143 (handle_stop): Don't set iterator's add_overlay_start.
3144 (handle_invisible_prop): Likewise.
3145 (load_overlay_strings): If text under an overlay is invisible,
3146 take both before- and after-strings into account when the iterator
3147 is positioned either at the start or at the end of the overlay.
3148 (forward_to_next_line_start): Rewritten.
3149 (reseat_at_next_visible_line_start): Rewritten.
3150 (set_iterator_to_next): Add parameter RESEAT_P.
3151
3152 * dispextern.h (struct it): Remove member add_overlay_start.
3153 (set_iterator_to_next): Change prototype.
3154
c744452b
KH
31552000-10-13 Kenichi Handa <handa@etl.go.jp>
3156
3157 * coding.c (code_convert_region): Be sure to initialize
3158 coding->category_idx.
e4a3f4e1
KH
3159 (decode_coding_string): Set coding->src_multibyte and
3160 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
3161 (encode_coding_string): Set coding->src_multibyte and
3162 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
c744452b 3163
321fd26f
SM
31642000-10-12 Stefan Monnier <monnier@cs.yale.edu>
3165
3166 * xfns.c (Fx_create_frame): Don't bother calling
3167 face-set-after-frame-default since the caller does it for us anyway.
3168
76832439
EZ
31692000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
3170
3171 * window.c (coordinates_in_window): Fix detection of vertical line
3172 on character terminals.
3173
2483cf58
GM
31742000-10-12 Gerd Moellmann <gerd@gnu.org>
3175
3176 * editfns.c (save_excursion_save): Additionally record the
3177 selected window.
3178 (save_excursion_restore): If buffer was visible in a window, and a
3179 different window was selected, and the old selected window is
3180 still live, restore point in that window.
3181
eb991b25
KH
31822000-10-12 Kenichi Handa <handa@etl.go.jp>
3183
8a0eba09
KH
3184 * xterm.c (x_produce_glyphs): Handle
3185 unibyte_display_via_language_environment correctly.
3186
20401fcc
KH
3187 * regex.c (regex_compile): Change the way of handling a range from
3188 unibyte char to multibyte char.
3189
3190 * syntax.c (skip_chars): Change the way of handling a range from
3191 unibyte char to multibyte char.
3192
eb991b25
KH
3193 * process.c (read_process_output): Cancel previous change.
3194
365dd325
EZ
31952000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
3196
c1b096cb
EZ
3197 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
3198
365dd325
EZ
3199 * charset.c (Ffind_charset_string): Doc fix.
3200 (Ffind_charset_region): Doc fix.
3201
eb483c2b
KH
32022000-10-11 Kenichi Handa <handa@mule.m17n.org>
3203
3204 * process.c (read_process_output): Fix previous change. Adjust
3205 multibyteness of text to insert in a buffer by
df3c11b9 3206 string_make_unibyte/multibyte instead of
eb483c2b
KH
3207 Fstring_as_unibyte/multibyte.
3208
b40bfb99
AS
32092000-10-10 Andreas Schwab <schwab@suse.de>
3210
3211 * alloc.c (mark_object): Remove all workarounds installed on
3212 1993-08-08.
3213
caff31d4
KH
32142000-10-10 Kenichi Handa <handa@etl.go.jp>
3215
3216 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before
3217 returning.
3218 (base64_encode_1): Make it work for a text of multibyte form.
3219 (Fbase64_decode_region): Allocate sufficient memory for multibyte
3220 case. Don't call str_to_multibyte because base64_decode_1
3221 produces correct multibyte form for eight-bit codes.
3222 (Fbase64_decode_string): Adjusted for the change of
3223 base64_decode_1.
3224 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
3225 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
3226 codes.
3227
3228 * charset.h (CHAR_STRING): Optimized for single byte characters.
3229
cba026ef
AS
32302000-10-09 Andreas Schwab <schwab@suse.de>
3231
3232 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
3233 -1 after socket is closed, to fall through to error processing.
3234
1e21fe48
EZ
32352000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
3236
3237 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
365dd325 3238 variables. If ALIST includes foreground-color or
1e21fe48
EZ
3239 background-color, change also the colors of the default face for
3240 this frame.
3241
a640322e
EZ
32422000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
3243
3244 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
3245 them extern (they are defined on xfaces.c).
3246 (syms_of_msdos): Don't intern and don't staticpro
3247 Qbackground_color and Qforeground_color.
3248
a115794c
EZ
32492000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
3250
3251 * frame.c (Fframe_parameter): For non-windowed frames, if
3252 f->param_alist says foreground or background color is unspecified,
3253 call tty_color_name to return the color name computed from the
3254 frame's current colors.
3255
f5533b63
DL
32562000-10-06 Dave Love <fx@gnu.org>
3257
3258 * terminfo.c (ospeed): Don't declare.
3259
3260 * sysdep.c: Don't include string.h.
3261 (h_errno): Declare conditional also on TRY_AGAIN.
3262
3263 * charset.c (Ffind_charset_string): Doc fix.
3264
3265 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
3266 (Fbase64_decode_region, Fbase64_decode_string): More explicit
3267 error messages.
3268
2b06561a
DL
32692000-10-05 Dave Love <fx@gnu.org>
3270
3271 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
3272 position like menu-bar.
3273
ca839c85
GM
32742000-10-05 Gerd Moellmann <gerd@gnu.org>
3275
3276 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
3277
3278 * xdisp.c (handle_single_display_prop): Use safe_call1.
3279 (safe_call): Renamed from call_function.
3280 (safe_call1): New function.
3281 (handle_fontified_prop): Use safe_call1 instead of call1.
3282 (safe_eval): Renamed from eval_form.
3283 (safe_eval_handler): Renamed from eval_handler.
3284 (handle_single_display_prop, display_mode_element): Use safe_eval
3285 instead of eval_form.
3286
3287 * xfaces.c (merge_face_heights): Use safe_call instead of
3288 call_function.
3289
3290 * keyboard.c (show_help_echo): Use safe_call instead of
3291 call_function; use safe_eval instead of eval_form.
3292
3293 * lisp.h (safe_call): Renamed from call_function.
3294 (safe_eval): Renamed from eval_form.
3295 (safe_call1): Add prototype.
3296
a3489ece
MB
32972000-10-05 Miles Bader <miles@lsi.nec.co.jp>
3298
3299 * xfns.c (image_ascent): Rearrange ascent calculation for the
3300 has-a-font case.
3301
35810b6f
SM
33022000-10-04 Stefan Monnier <monnier@cs.yale.edu>
3303
3304 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
3305 (where_is_internal_1): Don't bother ignoring menu-items any more.
3306
3dc78168
GM
33072000-10-04 Gerd Moellmann <gerd@gnu.org>
3308
3309 * keyboard.c (update_menu_bindings): New variable.
3310 (parse_menu_item): Use AREF. If update_menu_bindings
3311 is 0, don't update menu bindings.
3312 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
3313
1efc2bb9
EZ
33142000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
3315
3316 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
3317 to `mark_object'.
3318
3f679f55
SM
33192000-10-02 Stefan Monnier <monnier@cs.yale.edu>
3320
3321 * syntax.c (forw_comment): Match nestedness of ender/starter.
3322 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
3323 (prev_char_comstart_first): Remove.
3324 (back_comment): Check two-char comment markers more carefully
3325 to better handle overlapping cases like *//* or /* */* */ ...
3326 Match nestedness of ender/starter.
3327
2021ab61
DL
33282000-10-02 Dave Love <fx@gnu.org>
3329
3330 * config.in (HAVE_GAI_STRERROR): Add undef.
3331
3332 * process.c (Fopen_network_stream): Use it.
3333
3334 * m/alpha.h (NO_REMAP): Don't define.
3335
64e6cc18
GM
33362000-10-02 Gerd Moellmann <gerd@gnu.org>
3337
3338 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
3339 return with a string converted to an integer or vice versa when
3340 Vmocklisp_arguments is t.
3341 (Fsignal): Likewise. The function can return for `quit'.
3342 (struct gcpro): Declare member `var' to point to a volatile
3343 Lisp_Object.
3344
3345 * eval.c (error): Prevent compiler warning.
3346
b1904cd9
SM
33472000-09-30 Stefan Monnier <monnier@cs.yale.edu>
3348
3349 * keymap.c (keymap_memberp): New function.
3350 (Fset_keymap_parent): Use it.
3351 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
3352 Use keymap_memberp to avoid creating cycles.
3353 (access_keymap): Use KEYMAPP.
3354
71c9ec51
GM
33552000-09-30 Gerd Moellmann <gerd@gnu.org>
3356
3357 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
64e6cc18
GM
3358 gai_strerror. Make sure xerrno is set if connect fails. Improve
3359 error recovery.
71c9ec51 3360
c70c6b58
JR
33612000-09-29 Jason Rumney <jasonr@gnu.org>
3362
3363 * w32term.c (w32_char_font_type, w32_encode_char)
3364 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
3365 (w32_bdf_per_char_metric): New function.
3366 (w32_per_char_metric): Use it.
3367 (x_draw_glyph_string_background): Always draw background for BDF
3368 glyphs.
3369
3370 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
3371 GDI object which is a scarce resource.
3372
3373 * w32bdf.c (search_file_line): Fix skipping of whitespace.
3374 (get_quoted_string): Fix limit on memchr search.
3375 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
3376 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
3377 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
3378 (get_cached_font_char, cache_char_offset): Use macro
3379 BDF_CODEPOINT_RANGE_COVER_P.
3380 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
3381 (clear_cached_bitmap_slots): New function.
3382 (GET_HEX_VALUE): G-Z, g-z are not hex.
3383 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
3384 (get_bitmap_with_cache): Use new cache implementation.
3385 (create_offscreen_bitmap): New function.
3386 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
3387
3388 * w32term.c (x_produce_glyphs): If the distance from the current
3389 position to the next tab stop is less than a canonical character
3390 width, use the tab stop after that.
3391 (x_draw_glyphs): Handle case START and END are out of bounds more
3392 carefully.
3393 (x_clear_mouse_face): Block/unblock input.
3394 (x_display_and_set_cursor): Don't show a hollow box cursor for
3395 buffers whose cursor_type is nil.
3396
fe01239f
GM
33972000-09-29 Gerd Moellmann <gerd@gnu.org>
3398
3399 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar
3400 disappears.
3401
3402 * dispextern.h (updating_frame): Declare extern.
3403
e7c52f1f
AS
34042000-09-29 Andreas Schwab <schwab@suse.de>
3405
3406 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
3407
de6e1f7c
GM
34082000-09-29 Gerd Moellmann <gerd@gnu.org>
3409
25126faa
GM
3410 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
3411 use its function definition.
3412 (tool_bar_items): Likewise.
3413
de6e1f7c
GM
3414 * lisp.h (fatal): Declare NO_RETURN.
3415
454ee39b
KH
34162000-09-29 Kenichi Handa <handa@etl.go.jp>
3417
3418 * keymap.c: Remove the line "#undef NULL".
3419
96301c5f
GM
34202000-09-28 Gerd Moellmann <gerd@gnu.org>
3421
3422 * xterm.c (x_make_frame_visible): Try harder to make the frame
3423 visible.
3424
efffeeb4
DL
34252000-09-28 Dave Love <fx@gnu.org>
3426
ecb8b666
DL
3427 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
3428
dc3cd20f
DL
3429 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
3430
3431 * .gdbinit (xreload): Note its need on GNU/Linux.
3432
efffeeb4
DL
3433 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
3434 r_alloc, r_alloc_free.
3435
8610d903
KH
34362000-09-28 Kenichi Handa <handa@etl.go.jp>
3437
3438 * syntax.c (skip_chars): Handle negation correctly.
3439
8901d1ac
GM
34402000-09-27 Gerd Moellmann <gerd@gnu.org>
3441
6f22f1ad
GM
3442 * xfaces.c (realize_default_face): Call set_lface_from_font_name
3443 with non-zero FORCE_P argument.
3444
8901d1ac
GM
3445 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
3446 Add assertions.
3447
3448 * xdisp.c (window_box_height): Add an assertion.
3449
3450 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
3451 tool-bar than is available.
3452 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
3453
36f1966f
DL
34542000-09-27 Dave Love <fx@gnu.org>
3455
efffeeb4 3456 * s/irix6-5.h: Now works 64-bit. Tidied.
36f1966f 3457
31d929e5
GM
34582000-09-26 Gerd Moellmann <gerd@gnu.org>
3459
c98863bf
GM
3460 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
3461 instead of BITS_PER_INT.
3462 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
3463 EMACS_UINT, respectively.
3464 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
3465
3466 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
3467
3468 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
3469
77072ab1
GM
3470 * window.c (freeze_window_starts): Construct last argument for
3471 foreach_window differently.
3472
3473 * xfns.c (x_decode_color): Don't return a Lisp_Object.
3474
3475 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
3476 EMACS_UINT instead of `int' and `unsigned int'.
3477 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
3478
3479 * frame.h (struct frame): Make the `nothing' member of union
3480 output_data an EMACS_INT.
3481
31d929e5
GM
3482 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug
3483 hunting.
3484 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
3485 size in the sdata structure.
3486 (SDATA_NBYTES, SDATA_DATA): New macros.
3487 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
3488 differently for the different layout of the sdata structure.
3489 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
3490 in sdata.
3491 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
3492 Check that size recorded in the string size and size recorded in
3493 the sdata structure agree.
3494
3e60b029
DL
34952000-09-25 Dave Love <fx@gnu.org>
3496
3497 * buffer.c: Include stdio.h.
3498
3499 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
3500
3501 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
3502
3503 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
3504 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as
3505 size_t.
3506 (__malloc_extra_blocks): Declare as __malloc_size_t.
3507
8ff16b4e
GM
35082000-09-25 Gerd Moellmann <gerd@gnu.org>
3509
755a2ccd
GM
3510 * alloc.c (mark_image): Use GC_NILP instead of NILP.
3511
d8b4516f
GM
3512 * keyboard.c (show_help_echo): Set help_echo_showing_p.
3513 (read_char): If help-echo is showing, preserve the echo area
3514 when redisplaying.
3515
3516 * xdisp.c (help_echo_showing_p): New variable.
3517 (set_message): Reset it to 0.
3518 (init_xdisp): Initialize help_echo_showing_p.
3519
3520 * dispextern.h (help_echo_showing_p): Declare extern.
3521
3522 * config.in: Fix typo in __GNUC_MINOR__.
3523
3524 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
3525
b11af2dd
GM
3526 * s/freebsd.h (POSIX_SIGNALS): Define.
3527
8ff16b4e
GM
3528 * xterm.c (x_clear_mouse_face): Block/unblock input.
3529
844eb643
DL
35302000-09-24 Dave Love <fx@gnu.org>
3531
3532 * fns.c (base64_encode_1): Fix last change.
3533
b30ab1b3
GM
35342000-09-22 Gerd Moellmann <gerd@gnu.org>
3535
3536 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
3537
3538 * xdisp.c (try_window_reusing_current_matrix): More fixes
3539 for the case window has a header-line.
3540
c6cbe5f0
DL
35412000-09-22 Dave Love <fx@gnu.org>
3542
4c7c1f3f
DL
3543 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
3544 a doc string.
3545
3546 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
3547
c6cbe5f0
DL
3548 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
3549
550a625e
GM
35502000-09-21 Gerd Moellmann <gerd@gnu.org>
3551
4c7c1f3f 3552 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
fca99116
GM
3553 for GCC >= 2.5.
3554
3555 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error): Declare
3556 NO_RETURN.
3557
80d26f99
GM
3558 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
3559 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
3560 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
3561 warnings.
3562
3563 * marker.c (byte_char_debug_check): Return void.
3564
623a0aae
GM
3565 * xfns.c (Fx_create_frame): Set default frame parameter value
3566 for tool-bar-lines to 1.
3567
3568 * dispnew.c (scrolling_window): Compare y-positions of rows
3569 equal at the start. Some simplification.
3570
3571 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
3572 reused rows' y-position in the case window has a header-line, and
3573 new window start is greater than old window start.
3574
42ac0ae5
GM
3575 * process.c (process_sent_to): New variable.
3576 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
3577 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
3578 Declare more parameters volatile.
3579
550a625e
GM
3580 * lread.c (Vrecursive_load_depth_limit): New variable.
3581 (Fload): Check recursive loads whose recursion depth exceeds
3582 Vrecursive_load_depth_limit.
3583 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
3584
8320414c
GM
35852000-09-20 Gerd Moellmann <gerd@gnu.org>
3586
f46c275e
GM
3587 * fileio.c (Fread_file_name): Doc fix.
3588
3589 * editfns.c (Fmessage_or_box): Doc fix.
3590
3591 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
3592
b7e11c5b
GM
3593 * xfns.c (xbm_scan): Allow C-style comments.
3594
8320414c
GM
3595 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
3596 symbols are specified, add color translations to the cache.
3597 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New
3598 functions.
3599 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
3600 xpm_cache_color.
3601 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
3602 structures to xpm_init_color_cache.
3603
da1608d9
GM
36042000-09-19 Gerd Moellmann <gerd@gnu.org>
3605
3606 * dispnew.c (update_window_line): Make sure to always draw
3607 mode-lines.
3608
6badfa25
AI
36092000-09-19 Andrew Innes <andrewi@gnu.org>
3610
3611 * makefile.nt (bootstrap-emacs): Don't change directory.
3612
3a5f42bb
KH
36132000-09-19 Kenichi Handa <handa@etl.go.jp>
3614
1b7649bd
KH
3615 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
3616
3a5f42bb
KH
3617 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
3618 If output buffer is too small, signal an appropriated error.
3619
9f83cf0b
DL
36202000-09-18 Dave Love <fx@gnu.org>
3621
3622 * keyboard.c (menu_bar_items, tool_bar_items)
3623 (current_active_maps): Remove redundant get_local_map call.
3624
28c7826c
GM
36252000-09-18 Gerd Moellmann <gerd@gnu.org>
3626
5cefa566
GM
3627 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
3628 cursor for buffers whose cursor_type is nil.
3629
6fed3546
GM
3630 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
3631 a feature to implement that is already implemented.
3632 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
3633 warnings.
3634
3635 * xfns.c (x_clear_image_1): New function.
3636 (x_clear_image): Use it.
3637 (x_from_xcolors): Use x_clear_image_1; don't free the image's
3638 mask.
3639
05b1f851
GM
3640 * dispnew.c (update_window): Move test for invisible lines
3641 at the top to update_window_line.
3642 (update_window_line): Handle invisible lines here.
3643
f4779de9
GM
3644 * xfns.c (clear_image_cache): Clear current matrices of all
3645 frames sharing an image cache. Block input while freeing
3646 images. Fix timestamp comparison.
3647 (x_clear_image): Also free the mask.
3648
28c7826c
GM
3649 * xfns.c (lookup_image): Block input while loading the image so
3650 that we won't get interrupted in a state where the image isn't yet
3651 set up completely.
3652 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
3653 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
3654 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
3655 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock
3656 input.
3657
b7412313
GM
36582000-09-16 Gerd Moellmann <gerd@gnu.org>
3659
3660 * dispnew.c (update_window): Make sure to make desired rows
3661 current even if they are completely invisible at the top
3662 of a window.
3663
47e351a3
GM
36642000-09-15 Gerd Moellmann <gerd@gnu.org>
3665
7f8f1edc
GM
3666 * xfns.c (lookup_image): Build mask before applying an algorithm.
3667 Recognize algorithm `disabled'.
3668 (cross_disabled_images): New variable.
3669 (COLOR_INTENSITY): New macro.
3670 (x_detect_edges): Use COLOR_INTENSITY.
3671 (x_disable_image): New function.
3672 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
3673
3674 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
3675 disabled state, don't apply an image transformation algorithm if
3676 the user specified an image for the disabled state. Use
28c7826c 3677 `:algorithm disabled' for creating a disabled item's image if the
7f8f1edc
GM
3678 user hasn't specified an image.
3679
ebb8f116
GM
3680 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
3681 allocation functions with the XPM lib.
3682 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
3683 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
3684 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
3685 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
3686 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New
3687 functions.
3688 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
3689 functions, if possible, because these handle color allocation
3690 failure more gracefully.
3691 (Fimage_mask_p): New function.
3692
47e351a3
GM
3693 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
3694 (Qedge_detection, Qheuristic): New symbols.
3695 (syms_of_xfns): Initialize new symbols.
3696 (lookup_image): Handle `:mask X', `:algorithm emboss', and
3697 `algorithm (edge-detection ...)'.
3698 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
3699 (tiff_format, gif_format, gs_format): Add `:mask'.
3700 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
3701 (GIF_MASK, GS_MASK): New enumerators.
3702 (x_laplace_read_row, x_laplace_write_row): Functions removed.
3703 (emboss_matrix, laplace_matrix): New variables.
3704 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
3705 (x_edge_detection): New functions.
3706 (x_laplace): Rewritten in terms of x_detect_edges.
3707 (x_build_heuristic_mask): If image has a mask, free it.
3708
fe83b953
AI
37092000-09-14 Andrew Innes <andrewi@gnu.org>
3710
3711 * makefile.w32-in: Revert to Unix line endings.
3712
3021e816
AI
37132000-09-14 Andrew Innes <andrewi@gnu.org>
3714
3715 * makefile.w32-in: Standardize indentation somewhat.
3716 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
3717 cater for differences between shells.
3718
3719 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
3720
2a32b5ea
GM
37212000-09-14 Gerd Moellmann <gerd@gnu.org>
3722
3723 * xterm.c (x_produce_glyphs): If the distance from the current
3724 position to the next tab stop is less than a canonical character
3725 width, use the tab stop after that.
3726
b4331e96
DL
37272000-09-14 Dave Love <fx@gnu.org>
3728
3729 * buffer.c (alloc_buffer_text): Fix xmalloc call.
3730
ef9e4345
GM
37312000-09-14 Gerd Moellmann <gerd@gnu.org>
3732
085536c2
GM
3733 * xdisp.c (handle_fontified_prop): While running fontification
3734 functions, bind `fontification-functions' and
3735 `after-change-functions' to nil.
3736
ef9e4345
GM
3737 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
3738 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
3739
3740 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
3741
3742 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
3743 USE_MMAP_FOR_BUFFERS.
3744
3745 * insdel.c (make_gap): Use enlarge_buffer_text.
3746
3747 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
3748 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
3749 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
3750 from former r_alloc_* functions in ralloc.c.
3751 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New
3752 variables.
3753 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
3754 (mmap_init) [REL_ALLOC_MMAP]: New function.
3755 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
3756 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
3757 BUFFER_FREE.
3758
3759 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
3760 (enlarge_buffer_text): Add prototype.
3761
3762 * ralloc.c: Remove everything having to do with the use of mmap.
3763
f8608968
GM
37642000-09-13 Gerd Moellmann <gerd@gnu.org>
3765
2a494b2d
GM
3766 * sound.c (Fplay_sound): Doc fix.
3767
8c907a56
GM
3768 * keyboard.c: Avoid some more compiler warnings.
3769 (parse_tool_bar_item): Ignore cached key bindings.
3770
f8608968
GM
3771 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
3772 and allocation of Lisp data.
3773
6ab70e9a
GM
37742000-09-12 Gerd Moellmann <gerd@gnu.org>
3775
d12d0a9b
GM
3776 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
3777 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
3778 defaults first.
3779
6ab70e9a
GM
3780 * lread.c (Fload): Put code checking for recursive loads in #if 0.
3781
63c36c3c
KH
37822000-09-12 Miyashita Hisashi <himi@meadowy.org>
3783
3784 * ccl.c: Comment fixed.
3785 (MAX_MAP_SET_LEVEL): Increased to 30.
3786 (PUSH_MAPPING_STACK): Enclose with do-while block.
3787 (POP_MAPPING_STACK): Likewise.
3788 (stack_idx_of_map_multiple): New variable.
3789 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
3790 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
3791 call the corresponding CCL program by
3792 CCL_CALL_FOR_MAP_INSTRUCTION.
3793 (ccl_driver) <CCL_MapSingle>: Likewise.
3794 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
3795 with the case where looking up process reaches to the end of
3796 map-set, and call CCL programs as the above change.
3797
7ee3bd7b
GM
37982000-09-11 Gerd Moellmann <gerd@gnu.org>
3799
8ec8a5ec
GM
3800 * xfns.c (png_load, jpeg_load): Declare some variables volatile
3801 that might be clobbered by longjmp.
3802 (check_x_display_info, x_decode_color, create_frame_xic)
3803 (Fx_display_backing_store, Fx_display_visual_class)
3804 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler
3805 warnings.
3806
f74b0705
GM
3807 * lread.c (init_lread): Set Vloads_in_progress to nil.
3808 (Fload): Show list of recursively loaded files, when signaling an
3809 error.
3810
7ee3bd7b
GM
3811 * lread.c (Vloads_in_progress): New variable.
3812 (record_load_unwind): New function.
3813 (Fload): Check for recursive loads.
3814 (syms_of_lread): Initialize Vloads_in_progress.
3815 (read_integer, read1): Avoid some compiler warnings.
3816
3817 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
3818 compiler warnings.
3819
974e1e5b
MB
38202000-09-11 Miles Bader <miles@gnu.org>
3821
3822 * editfns.c (Fbuffer_string): Doc fix.
3823
9824c4e3
GM
38242000-09-10 Gerd Moellmann <gerd@gnu.org>
3825
3826 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
3827
6a72fdd1
KR
38282000-09-09 Ken Raeburn <raeburn@gnu.org>
3829
3830 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
3831 whether to include other header files.
3832
28e6fb66
GM
38332000-09-09 Gerd Moellmann <gerd@gnu.org>
3834
3835 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
9824c4e3 3836 by Fmemq as a boolean.
28e6fb66 3837
7f8b6551
SM
38382000-09-08 Stefan Monnier <monnier@cs.yale.edu>
3839
3840 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
3841
a8710abf
GM
38422000-09-08 Gerd Moellmann <gerd@gnu.org>
3843
d1a02881
GM
3844 * ralloc.c (mmap_fd): Remove initializer which can make it
3845 read-only in a dumped Emacs.
3846 (mmap_fd_1): New variable.
3847 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
3848 restore it from there.
3849 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
3850 unconditionally so that mmap_fd can be initialized there.
3851 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
3852 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
3853 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
3854
c454aac1
GM
3855 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
3856
3857 * xdisp.c (dump_glyph_row): Fix printf format string.
3858 (display_line, move_it_in_display_line_to): Avoid compiler
3859 warnings.
3860
fc653ef2
GM
3861 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
3862
3015eec0
GM
3863 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
3864 inheritance.
3865
bfe0ee88
GM
3866 * xdisp.c (try_window_id): When trying to locate cursor in
3867 unchanged rows at the top, handle the case that we can't find it.
3868
a8710abf
GM
3869 * xterm.c (x_draw_glyphs): Handle case START and END are out
3870 of bounds more carefully.
3871
6b7d4ae4
DL
38722000-09-08 Dave Love <fx@gnu.org>
3873
423193c5
DL
3874 * s/sol2.h (REL_ALLOC_MMAP): Define.
3875 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
3876
3877 * ralloc.c: Don't include string.h (redundant).
3878 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
3879 [!MAP_ANON]: Include fcntl.h.
3880 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
3881 (r_alloc, r_re_alloc, r_alloc_free)
3882 (mmap_enlarge, mmap_set_vars): Use it.
3883 (r_alloc_init_fd): New function.
3884 (__morecore) [SYSTEM_MALLOC]: Don't declare.
3885 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
3886 malloc type.
3887
3888 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
3889 Remove vm-limit.o.
3890
6b7d4ae4
DL
3891 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
3892 change to __NetBSD__.
3893
44d31981
KH
38942000-09-08 Kenichi Handa <handa@etl.go.jp>
3895
3896 * search.c (compile_pattern): Check the multibyteness of cached
3897 string and PATTERN.
3898
aad40737
MB
38992000-09-08 Miles Bader <miles@gnu.org>
3900
3901 * xfaces.c (default_face_vector): Function removed.
3902 (Finternal_merge_in_global_face): Restore old global/local
3903 attribute override order. Use inline loop instead of calling
3904 default_face_vector.
3905
91a211b5
GM
39062000-09-07 Gerd Moellmann <gerd@gnu.org>
3907
3908 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
3909 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
3910 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
3911 where necessary, in case POINTER_TYPE is `void'.
3912
03419440
EZ
39132000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
3914
3915 * frame.c (make_terminal_frame): Initialize frame foreground and
3916 background colors to unspecified, for the initial instance of an
3917 MSDOS frame.
3918
f46f845b
GM
39192000-09-07 Gerd Moellmann <gerd@gnu.org>
3920
24f76fbf
GM
3921 * ralloc.c (mmap_find): Fix overlap computation.
3922 (mmap_enlarge): Compute nbytes before trying to find an
3923 overlapping region.
3924
f46f845b
GM
3925 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
3926 instead of `!='.
3927
3928 * lread.c (syms_of_lread): Change value of regexp
3929 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
3930
3931 * xmenu.c (xdialog_show): When looking up the selection in
3932 menu_items, take `quote' boundaries into account; this corresponds
3933 to a nil ITEM in x-popup-dialog.
3934
3c014385
KH
39352000-09-07 Kenichi Handa <handa@etl.go.jp>
3936
fd6f711b
KH
3937 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
3938 not 0x81.
3939 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
3940
3c014385 3941 * coding.c (encode_coding_sjis_big5): Use translation table for
ed254191
KH
3942 encoding, not decoding. Fix the handling of latin-jisx0201.
3943 Check for the charset katakana-jisx0201 too.
3c014385 3944 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
f46f845b 3945 (detect_coding_sjis): Check the byte sequence more rigidly.
3c014385 3946
0da3ecef
GM
39472000-09-07 Gerd Moellmann <gerd@gnu.org>
3948
ab0ee409
GM
3949 * xfaces.c (Vparam_value_alist): New variable.
3950 (syms_of_xfaces): Initialize it.
3951 (Finternal_set_lisp_face_attribute): Avoid more consing.
3952
3953 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
3954 specially.
3955 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
3956 (Qbackground_mode): New variable.
3957 (syms_of_frame_1): Initialize Qbackground_mode.
3958
3959 * lisp.h (Qdisplay): Declare extern.
1091dd67 3960
0da3ecef
GM
3961 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
3962 change face on all frames, and change the default for new frames.
3963
b14654b9
DL
39642000-09-07 Dave Love <fx@gnu.org>
3965
3966 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
3967
d24fd56f
KH
39682000-09-07 Kenichi Handa <handa@etl.go.jp>
3969
794f3670
KH
3970 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
3971
0fddd0dc
KH
3972 * charset.c: Include composite.h
3973 (lisp_string_width): New function.
3974 (Fstring_width): Call lisp_string_width instead of strwidth.
3975
3976 * Makefile.in (charset.o): Depends on composite.h.
3977
d24fd56f
KH
3978 * process.c (read_process_output): Before inserting the decoded
3979 text in the buffer, adjust the multibyteness.
3980
fa0b693c
GM
39812000-09-06 Gerd Moellmann <gerd@gnu.org>
3982
73b77ee5
GM
3983 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
3984 buffer's text buffer is null, map new memory.
3985
0a58f946
GM
3986 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
3987 POINTER_TYPE and size_t.
3988 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
3989 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
3990 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
3991 [REL_ALLOC_MMAP]: New macros.
3992 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
3993 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
3994 [REL_ALLOC_MMAP]: New functions.
3995
3996 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
3997 before and after unexec.
3998
3999 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
4000 text buffers if necessary.
4001
4002 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
4003 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
4004 in prototypes.
4005
fa0b693c
GM
4006 * config.in (HAVE_MMAP): Add #undef.
4007
877055f6
GM
40082000-09-05 Gerd Moellmann <gerd@gnu.org>
4009
08ba3862
GM
4010 * frame.c (Qdisplay_type): New variable.
4011 (syms_of_frame_1): Initialize it.
4012 (Fframe_parameter): New function that avoids consing.
4013 (syms_of_frame): Defsubr it.
4014
66ffe51c
GM
4015 * buffer.c (Fother_buffer): Consider buffers as invisible when
4016 they are displayed in a window on an invisible frame.
4017
877055f6
GM
4018 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
4019 get-largest-window always return nil.
4020
bb970e67
GM
40212000-09-04 Gerd Moellmann <gerd@gnu.org>
4022
4023 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
4024 variable; recognize Emacs 19 elc files.
4025
7a3d0e0e
MB
40262000-09-04 Miles Bader <miles@gnu.org>
4027
4028 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
4029 before initially popping up the menu, so the menu doesn't flash
4030 when the face settings are significantly different from the
4031 defaults.
4032
14473664
SM
40332000-09-04 Stefan Monnier <monnier@cs.yale.edu>
4034
4035 * regex.c (WIDE_CHAR_SUPPORT): New macro.
4036 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
4037 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
4038 (BIT_UNIBYTE): Remove.
4039 (re_match_2_internal): Delete corresponding code and streamline the
4040 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
4041 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
4042 (re_wctype_t): New type.
4043 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
4044 (regex_compile): Use them and fix handling of overly long char classes.
4045
c1174479
AI
40462000-09-03 Andrew Innes <andrewi@gnu.org>
4047
f8803e97
AI
4048 * makefile.w32-in: Change to DOS line endings.
4049
c1174479
AI
4050 * s/ms-w32.h (ORDINARY_LINK): New define.
4051
4052 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
4053 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
4054
4055 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
4056 (distclean): Delete them here instead.
4057
44ef7cf6
AI
4058 * w32proc.c (compare_env): Convert to uppercase for comparison,
4059 not lowercase, to match how the native Windows shell works.
4060
49b3bd82
JR
40612000-09-03 Jason Rumney <jasonr@gnu.org>
4062
4063 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
4064 CVS changes the line-ends when checking in/out on DOS/Windows.
4065
4066 * makefile.nt (emacs): Do not change directory to run temacs, as
4067 the load-path is set relative to current directory.
4068
a3d35a39
MB
40692000-09-03 Miles Bader <miles@gnu.org>
4070
4071 * xterm.c (x_alloc_lighter_color_for_widget): New function.
4072
d276b0cf
GM
40732000-09-02 Gerd Moellmann <gerd@gnu.org>
4074
715e84c9
GM
4075 * xdisp.c (redisplay_mode_lines): New function.
4076 (display_mode_lines): Return number of mode lines displayed.
4077 (echo_area_display): Use redisplay_mode_lines to draw garbaged
4078 mode lines. Don't temporarily bind redisplay-dont-pause to t.
4079
8892f40b
GM
4080 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
4081 string.h and strings.h.
4082 (index) [HAVE_INDEX]: Add prototype.
4083
d276b0cf
GM
4084 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
4085 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
4086
4087 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
4088 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
4089
38404229
GM
40902000-09-01 Gerd Moellmann <gerd@gnu.org>
4091
4092 * lread.c (read1): Accept `?' as symbol constituent, for
4093 compatiblity with XEmacs.
4094
c0f9ea08
SM
40952000-08-31 Stefan Monnier <monnier@cs.yale.edu>
4096
4097 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
4098 (struct re_pattern_buffer): Remove newline_anchor.
4099 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
4100 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
4101 (re_max_failures, fail_stack): Use size_t rather than unsigned.
4102 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
4103 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
4104 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
4105 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
4106 Get rid of references to newline_anchor.
4107 (regcomp): Allocate and precompute a fastmap.
4108
8c0f83fe
GM
41092000-08-31 Gerd Moellmann <gerd@gnu.org>
4110
4111 * lread.c (openp): GCPRO local variable `filename'.
4112
4bb91c68
SM
41132000-08-30 Stefan Monnier <monnier@cs.yale.edu>
4114
4115 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
4116
4117 * regex.c: Merge some changes from GNU libc. Add prototypes.
4118 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
4119 Use memcmp and memcpy instead of bcopy and bcmp.
4120 (init_syntax_once): Use ISALNUM.
4121 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
4122 (REG_UNSET_VALUE): Remove. Use NULL instead.
4123 (REG_UNSET, re_match_2_internal): Use NULL.
4124 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
4125 New macros.
4126 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
4127 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
4128 (regex_compile): In handle_interval, return an error rather than try to
4129 unfetch the interval if we can't find the closing brace.
4130 Obey the RE_NO_GNU_OPS syntax bit.
4131 (TOLOWER): New macro.
4132 (regcomp): Use it.
4133 (regexec): Allocate regs.start and regs.end as one block.
4134
5226a931
GM
41352000-08-30 Gerd Moellmann <gerd@gnu.org>
4136
868dd24b
GM
4137 * xdisp.c (echo_area_display): Check display_completed instead
4138 of calling detect_input_pending.
4139
4140 * dispnew.c (update_frame): Only set display_completed here; move
4141 the update_begin and update_end calls here from update_frame_1.
4142 (update_frame_1): Don't set display_completed here, don't call
4143 update_begin/update_end.
4144
5226a931
GM
4145 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
4146 instead of store_frame_param.
4147
2a8bd25f
GM
41482000-08-29 Gerd Moellmann <gerd@gnu.org>
4149
4150 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
4151 desired window matrix hasn't been displayed, use the current row
4152 instead. Make sure that only those frame rows are updated for
4153 which there exists a corresponding enabled desired row.
4154
ba3478d9
MB
41552000-08-29 Miles Bader <miles@gnu.org>
4156
4157 * xfaces.c (default_face_vector): New function.
4158 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
4159
87d0f685
GM
41602000-08-29 Gerd Moellmann <gerd@gnu.org>
4161
4162 * lread.c (openp): Prevent temporary string passed to
4163 Ffile_readable_p from being garbage collected.
4164
6fa86045
DL
41652000-08-28 Dave Love <fx@gnu.org>
4166
4167 * keymap.c (store_in_keymap): Add `static' to declaration.
4168
bb17930d
GM
41692000-08-28 Gerd Moellmann <gerd@gnu.org>
4170
4171 * emacs.c, callint.c, doc.c, editfns.c
4172 (toplevel) [HAVE_STRING_H]: Include string.h.
4173 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
4174 (index): Remove prototypes which might conflict with non-standard
4175 definitions of index/strchr.
4176
4177 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
4178 (rindex): Define only if !HAVE_RINDEX.
4179
4180 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
4181
4182 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
4183
87188200
MB
41842000-08-28 Miles Bader <miles@gnu.org>
4185
4186 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
4187 made inconsistent by a font-related attribute in FROM.
4188 (merge_face_inheritance): Add function comment.
4189
41a68aef
KH
41902000-08-28 Kenichi Handa <handa@etl.go.jp>
4191
4192 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
4193 the 4th arg (PREV_EVENT) Qt to suppress input method.
4194
f7c436c1
SM
41952000-08-27 Stefan Monnier <monnier@cs.yale.edu>
4196
0b32bf0e
SM
4197 * regex.c: Indent cpp directives and remove parens after `defined'.
4198 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
4199 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
4200 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
4201 (re_compile_pattern): Use size_t for length.
4202 (init_syntax_once): Move to a better place.
4203 * regex.h: Merge changes from GNU libc. Indent cpp directives.
4204 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
4205
f7c436c1
SM
4206 * syntax.c (back_comment): Detect cases where a comment-starter is
4207 actually inside another comment as in: /* a // b */ c // d \n.
4208 Make it clear that `comstart_pos' is unused for nested comments.
4209
4210 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
4211 (KEYMAPP): New macro.
4212 (Fkeymap_parent, Fset_keymap_parent): Use it.
4213 (fix_submap_inheritance): Mark it static.
4214 (define_as_prefix, describe_buffer_bindings, describe_command)
4215 (describe_translation, describe_map): Complete prototypes.
4216
4217 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
4218
4219 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
4220 to better match the key-lookup behavior.
4221
6288c62f
GM
42222000-08-27 Gerd Moellmann <gerd@gnu.org>
4223
4224 * xfaces.c (lface_fully_specified_p): Handle :inherit.
4225 (Finternal_set_lisp_face_attribute): Fix typo in error message.
4226
e931344e
EZ
42272000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
4228
4229 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
4230 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
4231 (xterm.o): Depend on coding.h
4232
d10dfeef
KH
42332000-08-26 Kenichi Handa <handa@etl.go.jp>
4234
4235 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
4236 the corresponding '#endif'.
4237
2d73e8d3
MB
42382000-08-26 Miles Bader <miles@gnu.org>
4239
4240 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
4241 * xfaces.c (QCinherit): New variable.
4242 (syms_of_xfaces): Initialize it.
4243 (LFACE_INHERIT): New macro.
4244 (Finternal_get_lisp_face_attribute)
4245 (merge_face_vector_with_property)
4246 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
4247 (check_lface_attrs): Allow new types of face height. Check
4248 inherit attribute.
4249 (CYCLE_CHECK): New macro.
4250 (merge_face_inheritance): New function.
4251 (merge_face_vectors): Merge inherited faces too. Add F and
4252 CYCLE_CHECK arguments.
4253 (merge_face_vector_with_property, Finternal_merge_in_global_face)
4254 (lookup_named_face, lookup_derived_face, realize_named_face)
4255 (face_at_string_position, face_at_buffer_position): Supply
4256 new F and CYCLE_CHECK arguments to merge_face_vectors.
4257 (merge_face_heights): New function.
4258 (merge_face_vectors, merge_face_vector_with_property)
4259 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
4260 handle relative face heights.
4261 (lface_same_font_attributes_p): Compare heights using EQ.
4262
6ce974d4
KH
42632000-08-26 Kenichi Handa <handa@etl.go.jp>
4264
4265 * charset.c (char_to_string): Check the character validity.
4266 (char_valid_p): If C is not less than MAX_CHAR, be sure to return
4267 0.
4268
dc1e502d
SM
42692000-08-25 Stefan Monnier <monnier@cs.yale.edu>
4270
4271 * regex.c (PUSH_FAILURE_COUNT): New macro.
4272 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
4273 Handle popping of a register's or a counter's data.
4274 (POP_FAILURE_POINT): Use the new name.
4275 (re_match_2_internal): Push counter data on the stack for succeed_n,
4276 jump_n and set_number_at and remove misleading dead code in succeed_n.
4277
bd9d0f3f
GM
42782000-08-25 Gerd Moellmann <gerd@gnu.org>
4279
4280 * xdisp.c (redisplay_internal): If considering all windows on all
4281 frames, update the display for each frame as soon as possible,
4282 instead of first building all desired matrices for all frames, and
4283 then updating them all.
4284 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
4285
aa5b8e15
GM
42862000-08-24 Gerd Moellmann <gerd@gnu.org>
4287
17494071
GM
4288 * bytecode.c (mark_byte_stack): Add a comment.
4289
aa5b8e15
GM
4290 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
4291 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
4292 a graphical frame.
4293
c543db81
KH
42942000-08-24 Kenichi Handa <handa@etl.go.jp>
4295
d246d5f5
KH
4296 * minibuf.c (do_completion): Always use compare-string, not
4297 string-equal because the latter doesn't pay attention to
4298 multibyteness of strings.
4299
c543db81
KH
4300 * process.c (create_process): Don't setup raw-text coding here.
4301 (Fopen_network_stream): Don't set coding->src_multibyte and
4302 coding->dst_multibyte here.
4303 (read_process_output): For process filter, return unibyte string
4304 if default-enable-multibyte-characters is nil.
4305 (send_process): If OBJECT is multibyte text, be sure to encoded it
4306 by the specified coding system for the process. Otherwise, setup
4307 raw-text coding.
4308 (init_process): Don't initialize default-process-coding-system
4309 here.
4310
9b47cfe0
EZ
43112000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
4312
4313 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
4314 <scroll-down-aggressively>: Likewise.
4315
f5a36960
KH
43162000-08-23 Kenichi Handa <handa@etl.go.jp>
4317
4318 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
4319 zero. Set coding->produced_char correctly.
4320
69a7ffa7
AI
43212000-08-22 Andrew Innes <andrewi@gnu.org>
4322
4323 * makefile.w32-in: New file.
4324
4325 * unexw32.c (unexec): Ignore old_name, and use the actual location
4326 of the current executable instead. Base new_name on this.
4327
4328 * w32proc.c (create_child): Remove reference to security
4329 descriptor, which isn't needed and doesn't compile with mingw32.
4330
4331 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
4332 up dllimport attributes.
4333 (x_update_window_end): Update prototype.
4334
4335 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
4336 extern, which screws up dllimport attributes.
4337
4338 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
4339 up dllimport attributes.
4340
4341 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
4342 screws up dllimport attributes.
4343
4344 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
4345 up dllimport attributes.
4346 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
4347 screws up dllimport attributes.
4348
4349 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
4350 up dllimport attributes.
4351
4352 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
4353 screws up dllimport attributes.
4354
4355 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
4356 screws up dllimport attributes.
4357
4358 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
4359 up dllimport attributes.
4360
4361 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
4362 unnecessary extern, which screws up dllimport attributes.
4363 (main): Ditto.
4364
4365 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
4366 up dllimport attributes.
4367
4368 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
4369 unnecessary extern, which screws up dllimport attributes.
4370
4371 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
4372 screws up dllimport attributes.
4373
4374 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
4375 up dllimport attributes.
4376
4377 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
4378
4379 * w32bdf.c (search_file_line):
4380 (set_bdf_font_info):
4381 (seek_char):
4382 (w32_get_bdf_glyph):
4383 (w32_BDF_to_x_font): Fix compile warnings.
4384
4385 * w32menu.c: Include keyboard.h before frame.h. Fix compile
4386 warnings.
4387
4388 * w32select.c: Include keyboard.h before frame.h.
4389
4390 * w32fns.c (max): Define macro.
4391 (JOHAB_CHARSET): Define if not known.
4392 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
4393 (Fx_show_tip): Synch with X version.
4394
4395 * w32xfns.c: Include keyboard.h before frame.h.
4396
4397 * w32fns.c: Include keyboard.h before frame.h.
4398
4399 * w32term.c: Include keyboard.h before frame.h.
4400
4401 * fontset.c: Include keyboard.h before frame.h.
4402
4403 * w32inevt.c: Include keyboard.h before frame.h.
4404 (MOUSE_MOVED): Define if not known.
4405
4406 * minibuf.c: Include keyboard.h before frame.h.
4407
4408 * keyboard.c: Include keyboard.h before frame.h.
4409
4410 * indent.c: Include keyboard.h before frame.h.
4411
4412 * dispnew.c: Include keyboard.h before frame.h.
4413
4414 * buffer.c: Include keyboard.h before frame.h.
4415
4416 * alloc.c: Include keyboard.h before frame.h.
4417
4418 * print.c: Include keyboard.h before frame.h.
4419
4420 * process.c: Include keyboard.h before frame.h.
4421
4422 * scroll.c: Include keyboard.h before frame.h.
4423
4424 * sysdep.c: Include keyboard.h before frame.h.
4425
4426 * term.c: Include keyboard.h before frame.h.
4427
4428 * window.c: Include keyboard.h before frame.h.
4429
4430 * xdisp.c: Include keyboard.h before frame.h.
4431 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
4432
4433 * frame.c: Include keyboard.h before frame.h.
4434
4435 * w32heap.h: Undefine min, max.
4436
4437 * w32gui.h: Undefine min, max.
4438
4439 * unexw32.c: Change PUCHAR to PCHAR.
4440 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
4441 (relocate_offset):
4442 (get_section_info):
4443 (copy_executable_and_dump_data): Remove unnecessary static defs.
4444 (copy_executable_and_dump_data): Fix compile warnings.
4445
4446 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
4447
4448 * w32console.c (min): Define macro.
4449 (clear_frame, write_glyphs): Fix compile warning.
4450
4451 * w32proc.c (compare_env):
4452 (find_child_console): Fix compile warning.
4453
4454 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
4455 sys_errlist instead of _sys_errlist.
4456 (get_emacs_configuration_options): New function.
4457
4458 * s/ms-w32.h (sys_nerr): Provide default definition.
4459 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
4460 name with _ prepended.
4461 (NSIG): Define if not known.
4462 (get_emacs_configuration): Provide extern declaration.
4463 (get_emacs_configuration_options): Provide extern declaration.
4464 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
4465
4466 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
4467 (map_w32_filename):
4468 (read_unc_volume): Fix compile warning.
4469
4470 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
4471 definitions from being used.
4472
4473 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
4474
4475 * w32.c (unc_volume_file_attributes):
4476 (open_unc_volume): Make arg const.
4477
4478 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
4479 (read_input_waiting): Remove excess parameter.
4480
4481 * w32.c (init_environment): Call _access.
4482 (check_windows_init_file): Call _close.
4483 (init_user_info): Call _putenv.
4484 (init_environment): Call _putenv and _strdup.
4485 (init_ntproc): Reset volume info cache on startup.
4486
4487 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
4488 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
4489 cannot override the CRT malloc.
4490
4491 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
4492 (LINK_FLAGS): Append to original value of LINK_FLAGS.
4493
4494 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
4495 unless we are linking with a static CRT.
4496 (RVA_TO_PTR): Cast result to unsigned char*.
4497
4498 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
4499 (add_volume_info): Use xstrdup.
4500
25060080
SM
45012000-08-22 Stefan Monnier <monnier@cs.yale.edu>
4502
4503 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
4504 (do_completion, Fminibuffer_complete_word): Use it.
4505 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
4506 var so it can take non-boolean values.
4507
6917e6bb
GM
45082000-08-21 Gerd Moellmann <gerd@gnu.org>
4509
acb7cc89
GM
4510 * editfns.c (find_field): Formatting changes.
4511 (toplevel): Some old-style function forward declarations
4512 changed to prototypes, some new protypes added, some functions
4513 made static.
4514
4515 * lisp.h (set_time_zone_rule): Add prototype.
4516 (use_dialog_box): External declaration.
4517
0bbfdc25
GM
4518 * keyboard.c (gen_help_event): Add parameter SIZE.
4519 (kbd_buffer_events_waiting): Slightly rewritten.
4520 (clear_event): New function.
4521 (kbd_buffer_get_event): Use it, and clear the input_events of
4522 HELP_EVENTs.
4523 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
4524 don't fill the newly created array with nils.
4525 (toplevel): Convert some old-style function forward declarations
4526 to prototypes.
4527
4528 * keyboard.h (gen_help_event): Change prototype.
4529
4530 * xterm.c (XTread_socket): Change calls to gen_help_event.
4531
4532 * w32term.c (w32_read_socket): Change calls to gen_help_event.
4533
6917e6bb
GM
4534 * eval.c (Fmacroexpand): Doc fix.
4535
e5cd3d11
JR
45362000-08-20 Jason Rumney <jasonr@gnu.org>
4537
4538 * w32term.h (x_display_info_for_display): Remove as this function
4539 does not exist on W32.
4540
4541 * w32term.c (help_echo_window): New variable.
4542 (syms_of_w32term): staticpro it.
4543 (note_mode_line_highlight): Set it.
4544 (XTextExtents16): Removed as there is no equivalent on W32.
4545 (x_compute_glyph_string_overhangs): Incomplete body removed, as
4546 the X way of doing this will not work for W32.
4547 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
4548 (x_draw_image_foreground): Avoid drawing outside of the clip area
4549 when image doesn't have a mask.
4550 (note_mouse_highlight): Process overlays in the right order of
4551 priority. Set help_echo_window.
4552 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
4553 because that's more visible for large images.
4554
4555 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
4556 name to single_keymap_panes.
4557 (w32_menu_show): Set wv->title when dealing with titles.
4558 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
4559
6e69ab8c
MB
45602000-08-21 Miles Bader <miles@gnu.org>
4561
4562 * minibuf.c (do_completion): Try again if we rewrite the input
4563 string, but no completion was done, so that any completion message
4564 will be correct.
4565
511bd4eb
GM
45662000-08-20 Gerd Moellmann <gerd@gnu.org>
4567
4568 * xfaces.c (lface_equal_p): Compare strings differently.
4569 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
4570 (realize_tty_face): Use them.
4571 (syms_of_xfaces): Initialize new variables.
4572 (map_tty_color): New function, extracted from realize_tty_face.
4573 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
4574 foreground or background color, store the new color name in the
4575 realized face; previous code trying to do this had no effect.
4576 (realize_tty_face): Use map_tty_color.
4577 (Fclear_face_cache): Set face_change_count and ensure thorough
4578 redisplay.
4579
1433385f
GM
45802000-08-19 Gerd Moellmann <gerd@gnu.org>
4581
511bd4eb
GM
4582 * undo.c (record_first_change, record_marker_adjustment): Don't
4583 use XBUFFER on last_undo_buffer which might not be a buffer.
1433385f 4584
419ac0a2
KH
45852000-08-18 Kenichi Handa <handa@etl.go.jp>
4586
4587 * coding.c (decode_coding_string): Set members consumed,
4588 consumed_char, produced, produced_char of *coding correctly. If
4589 decode_coding doesn't consume any byte, don't try anymore.
4590 (encode_coding_string): Likewise.
4591
7eb9e30d
GM
45922000-08-18 Gerd Moellmann <gerd@gnu.org>
4593
511bd4eb
GM
4594 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
4595 conditional have void type, for Standard C compilers.
7eb9e30d
GM
4596
4597 * xdisp.c (redisplay_internal): Compare windows for equality with
4598 EQ, instead of applying XWINDOW to something that might not
4599 be a window.
4600
dd34a735
KH
46012000-08-18 Kenichi Handa <handa@etl.go.jp>
4602
4603 * fontset.c (Finternal_char_font): Search only the selected frame
4604 for a window of the current buffer.
4605
385ff9e3
GM
46062000-08-18 Gerd Moellmann <gerd@gnu.org>
4607
511bd4eb 4608 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
01cce3e7
GM
4609 Lisp_Objects.
4610
385ff9e3
GM
4611 * keyboard.c (kbd_buffer_get_event): Handle the case that the
4612 second half of a HELP_EVENT is found at the start of kbd_buffer.
4613
d6abb4c7
MB
46142000-08-18 Miles Bader <miles@gnu.org>
4615
4618074a
MB
4616 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
4617
d6abb4c7
MB
4618 * editfns.c (save_restriction_save): Rewrite to use markers.
4619 (save_restriction_restore): Rewrite to understand new form of data
4620 saved by save_restriction_save.
4621 (Fsave_restriction): Remove cautionary note in doc-string.
4622
a7b28523
GM
46232000-08-17 Gerd Moellmann <gerd@gnu.org>
4624
4625 * fileio.c (build_annotations): Add a comment explaining the
4626 return value of format-annotate-function. Replace a spurious call
4627 to Flength with a CONSP test. Call format-annotate-function with
4628 a fifth arg specifying how many times the function is been called
4629 in a row, to let it choose temporary buffers appropriately.
4630
03c9ed77
DL
46312000-08-17 Dave Love <fx@gnu.org>
4632
4633 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
4634 declare make_temp_name twice.
4635
4636 * lread.c: Prototype readevalloop, load_unwind,
4637 load_descriptor_unwind.
4638 (unreadpure): Give it an arg.
4639
4640 * unexalpha.c: Prototype fatal_unexec, mark_x,
4641 update_dynamic_symbols. Declare unexec as void.
4642
4643 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
4644 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
4645
4646 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
4647 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on
4648 DOUG_LEA_MALLOC.
4649
4650 * alloca.c: Use #error.
4651 [POINTER_TYPE]: Use it.
4652
4653 * eval.c (Fdefvar): Doc fix.
4654
4655 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
4656 INITIALIZE_INTERVAL.
4657
4658 * buffer.h: Avoid DECLARE_INTERVALS.
4659
4660 * config.in: Add size_t.
4661
aae41d97
EZ
46622000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
4663
4664 * w16select.c (set_clipboard_data): If there's not enough memory
4665 to put text into clipboard, return 1, as Fw16_set_clipboard_data
4666 expects. In case of other failures, return 3.
4667 (system_error_msg): New error message.
4668 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
4669 system_error_msg.
4670
65aa5e85
GM
46712000-08-16 Gerd Moellmann <gerd@gnu.org>
4672
4673 * term.c (write_glyphs): Also turn off inverse video after turning
4674 off other appearances in case TS_exit_attribute_mode is not equal
4675 to TS_end_standout_mode.
4676 (insert_glyphs): Turn inverse video on/off for each run of glyphs
4677 with the same face.
4678 (turn_off_face): Reset standout_mode only if
4679 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
4680 is equal to TS_end_standout_mode.
4681
ece23901
KH
46822000-08-16 Kenichi Handa <handa@etl.go.jp>
4683
9d7bcb2e
KH
4684 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
4685 sequence at the end of the source block.
4686
ece23901
KH
4687 * ccl.c (Fccl_program_p): Docstring modified.
4688 (Fccl_execute): Likewise.
4689 (Fccl_execute_on_string): Likewise.
4690
5e30eaa2
EZ
46912000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
4692
4693 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
4694
290602fd
KH
46952000-08-16 Kenichi Handa <handa@etl.go.jp>
4696
4697 The following changes are mainly to fix bugs of
4698 encode/decode-coding-string failing if encoding/decoding return
4699 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
4700 variable conversion_buffer.
4701
4702 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
4703 decrement dst_end to avoid buffer overflow in the later call of
4704 string_as_multibyte
4705
4706 * coding.h (conversion_buffer_size, conversion_buffer)
4707 (get_conversion_buffer): Extern deleted.
4708
4709 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
4710 (conversion_buffer, conversion_buffer_size): Variables deleted.
4711 (get_conversion_buffer): Function deleted.
4712 (struct conversion_buffer): New structure.
4713 (MAX_ALLOCA): New macro.
4714 (allocate_conversion_buffer): New macro.
4715 (extend_conversion_buffer, free_conversion_buffer): New functions.
4716 (ccl_coding_driver): Set coding->result.
4717 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
4718 this is the last block of source.
4719 (encode_coding): Likewise. Handle the source block as the last
4720 one only when the whole source text is consumed.
4721 (decode_coding_string): Handle the case that the output buffer is
4722 too small to decode the whole source text. Use
4723 allocate_conversion_buffer, extend_conversion_buffer and
4724 free_conversion_buffer, not get_conversion_buffer.
4725 (encode_coding_string): Likewise.
4726 (init_coding): Function deleted.
4727 (init_coding_once): Delete code to initialize
4728 conversion_buffer_size.
4729
4730 * emacs.c (main): Don't call init_coding.
4731
4732 * msdos.c (IT_write_glyphs): Use a locally declared
4733 conversion_buffer.
4734
4735 * term.c (write_glyphs): Use a locally declared conversion_buffer.
4736 (insert_glyphs): Likewise.
4737
4738 * w32console.c (write_glyphs): Use a locally declared
4739 conversion_buffer.
4740
b9f80d41
EZ
47412000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
4742
4743 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
4744 member of display_info is NULL.
4745
32dc52f7
GM
47462000-08-15 Gerd Moellmann <gerd@gnu.org>
4747
58ed0d3b
GM
4748 * alloc.c (compact_small_strings): Use safe_bcopy, add an
4749 assertion.
4750
32dc52f7 4751 * term.c (turn_off_face): Reset standout_mode when resetting
58ed0d3b 4752 appearances with capability `me'.
32dc52f7
GM
4753 (write_glyphs): Switch on inverse video before each face change.
4754
4eb22d33
DL
47552000-08-14 Dave Love <fx@gnu.org>
4756
4757 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
4758 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
4759 (lisp_free): Declare and make static.
4760
4761 * window.c: Fix embedded comment.
4762 (syms_of_window): Fix doc string.
4763
90cbf47e
GM
47642000-08-14 Gerd Moellmann <gerd@gnu.org>
4765
4766 * keymap.c (push_key_description): If C without modifiers is < 32,
4767 make sure to print `C-' before `M-', like in the manual.
4768
440fc135
GM
47692000-08-11 Gerd Moellmann <gerd@gnu.org>
4770
4771 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
4772 since they aren't relocated anymore.
4773 (sxhash_string): Make sure returned hash code fits in a Lisp
4774 integer.
4775
4776 * xdisp.c (try_cursor_movement): Fix handling of cursor in
4777 partially visible line which is smaller than the window's
4778 height.
4779
6e264fad
KH
47802000-08-11 Kenichi Handa <handa@etl.go.jp>
4781
4782 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
4783 the multibyte form of eight-bit-control characters.
4784 (Fccl_execute_on_string): Initialize ccl->multibyte.
4785
4786 * ccl.h (struct ccl_program): New member multibyte.
4787
4788 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
4789
c371f69a
KH
47902000-08-11 Kenichi Handa <handa@etl.go.jp>
4791
4792 * regex.c (regex_compile) <normal_char>: Pay attention to
4793 multibyteness.
4794 (analyse_first) <exactn>: Setup fastmap correctly for
4795 eight-bit-control characters.
4796
47972000-08-11 Kenichi Handa <handa@etl.go.jp>
4798
4799 * termhooks.h (enum event_kind): New member
4800 multibyte_char_keystroke.
4801
4802 * keyboard.c (make_lispy_event): Handle the new event type
4803 multibyte_char_keystroke.
4804
4805 * xterm.c: Include coding.h.
4806 (XTread_socket): Work around a bug of XmbLookupString. If the
4807 input is from XIM, decode it according to the current locale. In
4808 that case, generate multibyte_char_keystroke events.
4809
b8ddbe71
KH
48102000-08-11 Kenichi Handa <handa@etl.go.jp>
4811
4812 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
4813 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
4814
47589c8c
GM
48152000-08-10 Gerd Moellmann <gerd@gnu.org>
4816
4817 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
4818 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
4819 (move_it_in_display_line_to): Record iterator's ascent and descent
4820 before producing glyphs, and restore them when we know the glyph
4821 doesn't fit on the line.
4822 (move_it_to): Restructured so that it's easier to debug. If
4823 moving to a vpos, and not moving to an x or character position,
4824 stop as soon as the specified vpos is reached; don't move further
4825 into that line because that might change the computed line height.
4826 (try_cursor_movement): New function, extracted from the cursor
4827 movement branch of redisplay_window. If ending on a partially
4828 visible line, don't try to scroll if the cursor line is taller
4829 than the window.
4830 (redisplay_window): Use try_cursor_movement.
4831
4832 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
4833 because that function doesn't cope with variable-height lines.
4834
4835 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
4836 box cursor because that's better visible for large images.
4837
c51bacd6
MB
48382000-08-10 Miles Bader <miles@gnu.org>
4839
4840 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
4841
bea56df7
GM
48422000-08-10 Gerd Moellmann <gerd@gnu.org>
4843
4844 * xdisp.c (Vmessages_buffer_name): New variable.
4845 (message_dolog): Use it.
4846 (syms_of_xdisp): Initialize it.
4847
99cd7364
EZ
48482000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
4849
4850 * msdos.c (IT_note_mouse_highlight): Update the calls to
4851 overlays_at.
4852 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
4853 redundant now that keyboard.h is included.
4854
7d093d56
EZ
48552000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
4856
4857 * keyboard.c (kbd_buffer_events_waiting): New function.
4858
4859 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
4860
4861 * msdos.c: Include keyboard.h.
4862 (XMenuActivate): Empty no_event events from the event buffer. If
4863 no events are left after that, call clear_input_pending.
4864 (mouse_clear_clicks): New function, code moved from mouse_init.
4865 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
4866 mouse driver to ``forget'' any past clicks.
4867
4868 * Makefile.in (msdos.o): Depend on keyboard.h.
4869
41e757a6
GM
48702000-08-09 Gerd Moellmann <gerd@gnu.org>
4871
8e7bd231
GM
4872 * lisp.h (input_pending): External declaration.
4873
4874 * dispextern.h (Qredisplay_dont_pause): Declare extern.
4875
4876 * xdisp.c (echo_area_display): Display thoroughly if input is
4877 pending. Bind redisplay-dont-pause to t during the redisplay.
4878 in case input is pending.
4879
4880 * dispnew.c (Qredisplay_dont_pause): New variable.
4881 (syms_of_display): Initialize and staticpro it.
4882 (update_frame_1): Don't interrupt the display for pending input if
4883 redisplay_dont_pause is set.
4884
43028b7e
GM
4885 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
4886
41e757a6
GM
4887 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
4888
2f2174fa
KH
48892000-08-09 Miles Bader <miles@lsi.nec.co.jp>
4890
4891 * callproc.c (Fcall_process): Terminate the unwind-protect around
4892 the post-read-conversion of coding system.
4893
0a6fd67e
MB
4894 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
4895 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
4896 * buffer.h (overlays_at): Update prototype.
4897 * xdisp.c (next_overlay_change): Update call to overlays_at.
4898 * xfaces.c (face_at_buffer_position): Likewise.
4899 * textprop.c (Fget_char_property): Likewise.
4900 * xterm.c (note_mouse_highlight): Likewise.
4901
0c80756e
MB
4902 * minibuf.c (do_completion): Don't consider a simple change of
4903 case as `completion'.
4904
975f250a
KR
49052000-08-08 Ken Raeburn <raeburn@gnu.org>
4906
b347b3fd
KR
4907 * keyboard.c (syms_of_keyboard): Initialize
4908 last_point_position_buffer.
4909 * undo.c (record_delete): Make sure last_point_position_buffer is
4910 a buffer before comparing pointers.
4911
4912 * coding.h (decode_coding_string): Declare.
4913
4914 * intervals.h (Fprevious_single_char_property_change): Declare.
4915
4916 * textprop.c (Fprevious_single_char_property_change): Don't do
4917 arithmetic directly on lisp objects.
4918
25ad1371 4919 * editfns.c (find_field): Use EQ, not ==, to compare Lisp
b347b3fd
KR
4920 objects.
4921
4922 * keyboard.h (menu_item_eval_property): Declare.
4923
4924 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
4925 reuse as buffer name, instead of recreating (and discarding) every
4926 time a message is logged.
4927 (with_echo_area_buffer): Make callback arg A2 a lisp object.
25ad1371
GM
4928 (current_message_1, truncate_message_1, set_message_1)
4929 (display_echo_area_1, resize_mini_window_1): Signatures changed.
4930 (current_message, truncate_echo_area, display_echo_area)
4931 (resize_echo_area_axactly): Changed calls.
b347b3fd 4932
975f250a 4933 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
25ad1371 4934 Lisp object.
975f250a 4935 (Ffind_coding_systems_region_internal): First argument to Fappend
25ad1371 4936 must be an integer, not a Lisp object.
975f250a 4937
46dc9912
KH
49382000-08-08 Kenichi Handa <handa@etl.go.jp>
4939
4940 * charset.c (Fchar_width): Doc fix.
4941
9f6d1a6c
GM
49422000-08-08 Gerd Moellmann <gerd@gnu.org>
4943
4944 * charset.c (Fstring_width): Doc fix.
4945
ff3d9573
GM
49462000-08-07 Gerd Moellmann <gerd@gnu.org>
4947
41e757a6 4948 * xdisp.c (start_display): When starting display on a continuation
49ad1d99
GM
4949 line, clear ascent and descent members of the iterator structure;
4950 the height of the continued line does not affect the height of the
4951 continuation line.
4952 (make_cursor_line_fully_visible): Do nothing if cursor is on a
4953 line taller than the window.
4954 (redisplay_window) <forced window start>: Handle case that the
4955 middle of the window is not found in any row.
4956 (dump_glyph_row): Show more information.
4957 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
4958 first text line in a glyph matrix.
4959
4960 * xterm.c (x_draw_image_foreground): Avoid drawing outside
4961 of the clip area when image doesn't have a mask.
4962
70fc58b3
GM
4963 * fns.c (sweep_weak_table): Fix survival conditions for
4964 key-or-value and key-and-value weakness.
4965
4966 * .gdbinit (xhashtable): New command.
4967
ac0e96ee
GM
4968 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
4969 tables out of the list of all weak hash tables.
4970
ff3d9573
GM
4971 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
4972 a new buffer is created, make sure echo_area_buffer[] references
4973 the new buffer.
4974
e0d8827b
EZ
49752000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
4976
4977 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
4978 the doc string.
4979
c6f35378
KH
49802000-08-07 Kenichi Handa <handa@etl.go.jp>
4981
4982 * syntax.c (skip_chars): Fix previous change. Make the handling
4983 of unibyte string consistent with that of regex search.
4984
1fd4c450
GM
49852000-08-05 Gerd Moellmann <gerd@gnu.org>
4986
e49aa397
GM
4987 * xmenu.c (popup_get_selection): Use xfree instead of free.
4988
4989 * fileio.c (Finsert_file_contents): Use xfree instead of free.
4990
4991 * editfns.c (Ftranspose_regions): Use xfree instead of free.
4992
4993 * callproc.c (child_setup): Use xfree instead of free.
4994
4995 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
4996 instead of malloc.
4997 (run_mac_command, closedir): Use `xfree' instead of `free'.
4998
4999 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
5000
5001 * eval.c (error): Use xfree instead of free.
5002
1fd4c450
GM
5003 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
5004
5005 * fns.c: Replace `illegal' with `invalid'.
e49aa397 5006 (Fmake_hash_table, make_hash_table): Allow table size of 0.
1fd4c450 5007
82d497fc
KH
50082000-08-05 Kenichi Handa <handa@etl.go.jp>
5009
5010 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
5011 conversion.
5012
59f953a2
NF
50132000-08-04 Noah Friedman <friedman@splode.com>
5014
5015 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
5016 docstring.
5017
688351f2
GM
50182000-08-04 Gerd Moellmann <gerd@gnu.org>
5019
5020 * syntax.c (skip_chars): Fix typo in error message.
5021
2dad51cc
AS
50222000-08-04 Andreas Schwab <schwab@suse.de>
5023
5024 * m/ia64.h: Moved from s/ia64.h.
5025
99bb2c60
KH
50262000-08-04 Kenichi Handa <handa@etl.go.jp>
5027
082a1df2
KH
5028 * process.c (read_process_output): Big simplification. Handle
5029 composition and post-read-conversion of coding system correctly.
5030 (send_process): Handle composition correctly.
5031
5032 * callproc.c (Fcall_process): Handle post-read-conversion of
5033 coding system if any.
5034
99bb2c60
KH
5035 * coding.c (decode_coding_iso2022): More strict check for handling
5036 single shifting.
082a1df2
KH
5037 (coding_restore_composition): Pay attention to the case that
5038 cmp_data is not set properly (because of invalid code in the
5039 source text).
5040 (run_pre_post_conversion_on_str): Include text properties in the
5041 resulting string.
5042 (decode_coding_string): Set members of coding correctly.
99bb2c60 5043
f4988be7
GM
50442000-08-03 Gerd Moellmann <gerd@gnu.org>
5045
5046 * s/ia64.h: New file.
5047
5048 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
5049 Use NULL instead of 0 at the end of variable argument list of
5050 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
5051 sizeof (int) < sizeof (void *).
5052
5053 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
5054 of variable argument lists of XtVaGetValues and XtVaSetValues.
5055
5056 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
5057 variable argument lists of XtVaGetValues and XtVaSetValues.
5058
ead53494
GM
50592000-08-02 Gerd Moellmann <gerd@gnu.org>
5060
5061 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
5062 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
5063
5064 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
5065 prototype.
5066
5067 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
5068 in call to Fsingle_key_description.
5069
5070 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
5071 Callers changed.
5072
50732000-08-02 Colin Walters <walters@cis.ohio-state.edu>
5074
5075 * window.c (display_buffer_reuse_frames): New variable.
5076 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
5077 frames displaying BUFFER.
5078 (syms_of_window): Define Lisp variable
5079 display-buffer-reuse-frames.
5080
10b0f752
MB
50812000-08-01 Miles Bader <miles@gnu.org>
5082
5083 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
5084 when to constrain NEW_POS (they were pretty screwed up before).
5085
16425c4a
EZ
50862000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
5087
5088 * msdos.c (run_msdos_command): Save and restore the master
5089 environment, for the case that child_setup signals an error.
5090 When mirroring slashes in DOS shell commands, don't fail when
5091 argv[2] has embedded blanks.
da288c14
EZ
5092 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
5093 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
5094 (dos_ttraw): Call mouse_setup_buttons.
16425c4a
EZ
5095
5096 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
5097 using alloca; free it after run_msdos_command returns.
5098
27f73852
DL
50992000-07-27 Dave Love <fx@gnu.org>
5100
5101 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't
5102 define.
5103 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently
5104 working.
5105
5106 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
5107
c0261b5e
EZ
51082000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
5109
5110 * editfns.c (lisp_time_argument): Fix last change.
5111
b548072f
GM
51122000-07-27 Gerd Moellmann <gerd@gnu.org>
5113
3ab82477
GM
5114 * fns.c (Fdelete): Make it work on vectors and strings in addition
5115 to lists.
5116
b548072f
GM
5117 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
5118 (syms_of_fns): Initialize new variables.
5119 (sweep_weak_table): Handle weakness `key-or-value' and
5120 `key-and-value'.
5121 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
5122 weakness, with t meaning the same as `key-and-value'.
5123
91ae8751
KH
51242000-07-27 Kenichi Handa <handa@etl.go.jp>
5125
5126 * coding.h (struct coding_system): Member safe_charset deleted.
5127
5128 * coding.c (Qsafe_charsets): This variable deleted.
5129 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system): New
5130 variables.
5131 (coding_safe_chars): New function.
5132 (CODING_SAFE_CHAR_P): New macro.
5133 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
5134 checking safe_charsets member of the coding system. Caller
5135 changed.
5136 (detect_coding_iso2022): New local variable safe_chars.
5137 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
5138 safe_charsets member of the coding system.
5139 (decode_coding_iso2022): New local variable safe_chars.
5140 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
5141 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
5142 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
5143 (ENCODE_UNSAFE_CHARACTER): New macro.
5144 (encode_coding_iso2022): New local variable safe_chars. Check
5145 unsafe chars.
5146 (setup_coding_system): Delete the code to initialize
5147 coding->safe_charses
5148 (intersection, find_safe_codings): New functions.
5149 (Ffind_coding_systems_region_internal): New function.
5150 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
5151 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
5152 variable and initialize it.
5153
5154 * fns.c (char_table_ref_and_index): New function.
5155
5156 * lisp.h (char_table_ref_and_index): Add prototype.
5157
34a7a267
SS
51582000-07-26 Sam Steingold <sds@gnu.org>
5159
5160 * editfns.c (lisp_time_argument): Added third argument `usec'.
3ab82477 5161 (Ffloat_time): New built-in Lisp function.
34a7a267 5162
a95cb10a
GM
51632000-07-26 Gerd Moellmann <gerd@gnu.org>
5164
3353ef5a
GM
5165 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
5166 for the character code.
5167
5168 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
5169 GNU/Linux.
5170
a95cb10a
GM
5171 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
5172 if called for a popup menu.
5173 (xmenu_show): Store help string in widget values.
5174
b4a12321
DL
51752000-07-26 Dave Love <fx@gnu.org>
5176
5177 * syswait.h: Move some definitions.
5178 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
5179 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
5180 perspicuous definitions.
5181 (WTERMSIG): Fix bit pattern used.
5182
13f5ad37
KH
51832000-07-26 Kenichi Handa <handa@etl.go.jp>
5184
5185 * print.c (print_object): If vector printing is truncated, print
5186 "..." to indicate it as well as the case of list printing.
5187
070fe99c
GM
51882000-07-25 Gerd Moellmann <gerd@gnu.org>
5189
969065c3
GM
5190 * xdisp.c (next_element_from_display_vector): Improve comments.
5191
5192 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
5193 for the character code, and the rest for the face id as in 20.x.
5194 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
5195
5196 * window.c (window_display_table): Cleaned up.
5197
070fe99c
GM
5198 * syntax.c (Fforward_word): Add last arg nil in call of
5199 Fconstrain_to_field.
5200
bad77ef7
EZ
52012000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
5202
969065c3 5203 * fileio.c (Frename_file) [DOS_NT]: If the file names are
bad77ef7
EZ
5204 identical but for the letter-case, don't call
5205 barf_or_query_if_file_exists.
5206
c28da489
MB
52072000-07-25 Miles Bader <miles@gnu.org>
5208
5209 * editfns.c (find_field): Honor special `boundary' fields.
5210 (Qboundary): New variables.
5211 (syms_of_editfns): Initialize Qboundary.
5212 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
5213 Use scan_buffer instead of find_before_next_newline, because it
5214 allows us to detect the boundary case where there's a newline at
5215 the search limit.
5216 * lisp.h (Fconstrain_to_field): Update external declaration.
5217
e3c31fd5
GM
52182000-07-24 Gerd Moellmann <gerd@gnu.org>
5219
5220 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
5221 if that is nil.
c28da489 5222
c66c29a2
DL
52232000-07-24 Dave Love <fx@gnu.org>
5224
5225 * s/sunos4-0.h, s/sol2.h:
5226 (LIBS_TERMCAP): Move from m/sparc.h.
5227
5228 * m/sparc.h (TERMINFO): Moved to system files (probably only
5229 relevant for sunos4 judging by its vintage).
5230 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
5231 __arch64__.
5232
fbe0a958
EZ
52332000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
5234
5235 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
5236 name to single_keymap_panes.
5237
7d88e5c9
AS
52382000-07-24 Andreas Schwab <schwab@suse.de>
5239
5240 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
5241
e024b101
GM
52422000-07-24 Gerd Moellmann <gerd@gnu.org>
5243
5244 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
5245 parameters instead of using int parameters. Expect FN to accept
5246 EMACS_INT parameters.
5247 (display_echo_area, resize_echo_area_axactly, current_message)
5248 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
5249 with new argument list.
5250 (resize_mini_window_1): New callback function.
5251 (current_message_1, truncate_message_1, set_message_1): Change
5252 parameter lists to the new format expected by
5253 with_echo_area_buffer.
5254
25c1a9ce
KH
52552000-07-24 Kenichi Handa <handa@etl.go.jp>
5256
5257 * fontset.c (fontset_ref): Remove INLINE declaration.
5258 (fontset_ref_via_base): Likewise.
5259 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
5260 to downcase.
5261
7f987ac0
EZ
52622000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
5263
5264 * msdos.c (IT_note_mouse_highlight): Process overlays in the
5265 correct order of priority. If help echo was found in an overlay,
5266 use that overlay as the object in which the help echo was found.
5267
e2db3069
MB
52682000-07-22 Miles Bader <miles@gnu.org>
5269
5270 * textprop.c (Fprevious_single_char_property_change): The initial
5271 property value should be from the position preceding POSITION, not
5272 following it.
5273
5e3203e4
EZ
52742000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
5275
5276 * coding.c (syms_of_coding): Doc fix for
5277 inhibit-iso-escape-detection.
5278
62145073
GM
52792000-07-21 Gerd Moellmann <gerd@gnu.org>
5280
c20aeb83
GM
5281 * xterm.c (note_mouse_highlight): Process overlays in the right
5282 order of priority.
34a7a267 5283
743934db
GM
5284 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
5285
5286 * xterm.c (note_mouse_highlight): If help-echo was found in an
5287 overlay, use that overlay as the object in which the help was
5288 found.
5289
d1dc7e43 5290 * window.c (foreach_window_1): Fix typo reversing an if-condition.
34a7a267 5291
62145073
GM
5292 * window.c (foreach_window): Instead of a fake variable argument
5293 list, take one USER_DATA argument.
5294 (foreach_window_1): Likewise, and call callback functions with two
5295 args, the window and USER_DATA.
5296 (struct check_window_data): New struct.
5297 (check_window_containing): Use it.
5298 (window_from_coordinates): Set up a struct check_window_data for
5299 foreach_window.
5300 (add_window_to_list, freeze_window_start): Change parameters
5301 according to new calling convention.
5302
5303 * window.h (foreach_window): Change prototype.
5304
5305 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
5306
53072000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
5308
5309 * xmenu.c (menu_help_callback): Call show_help_echo with
5310 additional arguments OBJECT and POS.
5311
11270583
KH
53122000-07-21 Kenichi Handa <handa@etl.go.jp>
5313
07b14857
KH
5314 * data.c (Faset): Allow storing any multibyte character in a
5315 string. Convert unibyte string to multibyte if necessary.
5316
11270583
KH
5317 * xfns.c (x_encode_text): New function.
5318 (x_set_name): Use x_encode_text.
5319 (x_set_title): Likewise.
5320
5321 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
5322
5323 * xterm.h (x_encode_text): Add prototype.
5324
bc75b4fd
DL
53252000-07-20 Dave Love <fx@gnu.org>
5326
5327 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
5328 xfree, not free.
5329
48c14970
EZ
53302000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
5331
5332 * msdos.c (help_echo_window): New variable.
5333 (syms_of_msdos): Initialize and staticpro it.
5334 (IT_note_mode_line_highlight): Set help_echo_window.
5335 (IT_note_mouse_highlight): Ditto.
5336 (dos_rawgetc): Store help_echo_window in the second event produced
5337 for HELP_EVENTs.
5338
5339 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
5340 Record the object that generated the help echo and the position of
5341 that object in help_echo_object and help_echo_pos. Record that
5342 some glyphs in a row are displayed in mouse-face.
5343 (IT_update_begin): Don't clear mouse highlight unless one of the
5344 enabled glyph rows is marked as being displayed in mouse-face.
5345 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
5346 and position recorded in help_echo_object and help_echo_pos to the
5347 event queue.
5348 (IT_menu_display): Accept a new argument PN: the pane number of
5349 the current menu pane. Record the pane number and the item
5350 number of the item which has associated help string.
5351 (XMenuActivate): Update the prototype for help_callback in
5352 function declaration. Call IT_menu_display with the current menu
5353 pane number as an additional argument. Call help_callback with
5354 two additional arguments: the pane number and the item number of
5355 the menu item associated with the help text.
5356 (help_echo_object, help_echo_pos): New variables.
5357 (syms_of_msdos): Initialize them and staticpro help_echo_object.
5358
5359 * msdos.h (XMenuActivate): Update prototype.
5360
4279296d
GM
53612000-07-19 Gerd Moellmann <gerd@gnu.org>
5362
47db06aa
GM
5363 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
5364 Add some more prototypes.
5365
5366 * xterm.c, xterm.h: Add some more prototypes.
5367
5368 * lisp.h (Fnext_single_char_property_change): Add prototype.
5369
5370 * dispnew.c (direct_output_for_insert): Remove confusing
5371 outer local variable mouse_face_overwritten_p.
5372 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
5373
4279296d
GM
5374 * alloc.c (allocate_string_data): Don't copy old string contents.
5375
670acd62
KH
53762000-07-19 Kenichi Handa <handa@etl.go.jp>
5377
5378 * coding.c (code_convert_region): Delete text properties before
5379 shrinking the conversion region.
5380
7cea38bc
GM
53812000-07-18 Gerd Moellmann <gerd@gnu.org>
5382
dc1cac59
GM
5383 * dispnew.c (update_text_area): Write the whole row if it
5384 has mouse-face in it.
5385
85a8aca9
GM
5386 * xfaces.c (face-alternative-font-family-alist): Remove
5387 DEFVAR_LISP; staticpro instead.
5388
34a7a267 5389 * xmenu.c (menu_help_callback): Call show_help_echo with
7cea38bc
GM
5390 new arguments.
5391
5392 * keyboard.c (show_help_echo): Add parameter WINDOW.
5393 (read_char): Call show_help_echo with window extracted from Lisp
5394 help event.
5395 (gen_help_event): Add parameter WINDOW.
5396
5397 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
5398
5399 * xterm.c (help_echo_window): New variable.
5400 (note_mouse_highlight, note_tool_bar_highlight): Set
5401 help_echo_window.
5402 (XTread_socket): Pass help_echo_window to gen_help_event.
5403 (syms_of_xterm): Initialize and staticpro help_echo_window.
5404
f8276b77
DL
54052000-07-18 Dave Love <fx@gnu.org>
5406
5407 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
5408 systime.h.
5409
088831a6
GM
54102000-07-18 Gerd Moellmann <gerd@gnu.org>
5411
3d6cd763
GM
5412 * alloc.c (allocate_string_data): If string had already data
5413 assigned, copy old contents to new string data.
5414
5415 * coding.c (syms_of_coding): Fix typo in spelling of variable
5416 `inhibit-iso-escape-detection'.
5417
088831a6
GM
5418 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
5419
5420 * Makefile.in: Add dependencies on dispextern.h.
5421 (alloca.o): Don't define malloc and define EMACS_FREE instead of
5422 `free'; both can conflict with system header files.
5423
bc8a8d55
KH
54242000-07-18 Kenichi Handa <handa@etl.go.jp>
5425
5426 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
5427 undefined.
5428
069f5950
DL
54292000-07-18 Dave Love <fx@gnu.org>
5430
5431 * window.c (Fwindow_list): Declare arg `window'.
5432
aa96c820
KH
54332000-07-18 Kenichi Handa <handa@etl.go.jp>
5434
5435 * coding.c (setup_coding_system): Don't override the explicitly
5436 specified designations.
5437
06be8d32
MB
54382000-07-15 Miles Bader <miles@gnu.org>
5439
5440 * editfns.c (char_property_eq, char_property_stickiness): Renamed
5441 from `text_property_eq' and `text_property_stickiness', respectively.
5442 (find_field, Fconstrain_to_field, char_property_eq)
5443 (char_property_stickiness): Changed to call char-property functions
5444 instead of text-property-only ones.
5445
5446 * textprop.c (Fnext_single_char_property_change): Made a subr (was
5447 `next_single_char_property_change'). Do more error checking, and
5448 cleanup limit behavior.
5449 (Fprevious_single_char_property_change): New function.
5450 (syms_of_textprop): Initialize new subrs.
5451
5452 * xdisp.c (display_prop_end, invisible_text_between_p):
5453 Call Fnext_single_char_property_change instead of
5454 next_single_char_property_change.
5455
3fddcdc3
JR
54562000-07-15 Jason Rumney <jasonr@gnu.org>
5457
5458 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
5459 after menu is finished with.
5460 (add_menu_item): Only consider wv->title as a menu title.
5461 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
5462
5463 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
5464 null title.
5465 (FONT_REGEXP): Remove unused macro, and its sub-components.
5466 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
5467
5468 * w32term.c (help_echo_object, help_echo_pos): New variables.
5469 (note_mode_line_highlight): Store additional information about the
5470 help-echo in help_echo_object and help_echo_pos. Check both
5471 `local-map' and `keymap' properties for changing the cursor
5472 (note_mouse_highlight): Store additional information about the
5473 help-echo in help_echo_object and help_echo_pos.
5474 (note_tool_bar_highlight): Set help_echo_object to nil and
5475 help_echo_pos to -1.
5476 (w32_read_socket): Use gen_help_event instead of filling
5477 input_events manually.
5478 (syms_of_w32term): Staticpro help_echo_object.
5479 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
5480 set, arrange for a mouse-highlight redisplay in
5481 XTframe_up_to_date.
5482 (x_clear_mouse_face): New function.
5483 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
5484 (x_update_window_begin): No need to turn off the mouse
5485 highlight here.
5486 (show_mouse_face): Set the mouse_face_p flag of glyph rows
5487 depending on whether they contain glyphs highlighted in
5488 mouse-face.
5489 (x_fill_stretch_glyph_string): Consume runs of stretch
5490 glyphs instead of a single one.
5491 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
5492 with new argument list.
5493 (x_set_glyph_string_gc): Make sure the face's GC is valid.
5494 (x_append_glyph, x_append_composite_glyph)
5495 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
5496 changes in struct glyph starting 1999-12-27. See comments for
5497 xterm.c on 2000-07-05.
5498
178c5d9c
SS
54992000-07-14 Sam Steingold <sds@gnu.org>
5500
5501 * xfaces.c (realize_x_face): Fix the last patch:
5502 check `default_face' before dereferencing.
5503
6fe533f6
DL
55042000-07-14 Dave Love <fx@gnu.org>
5505
069f5950 5506 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 5507
dd7b81cf
KH
55082000-07-14 Kenichi Handa <handa@etl.go.jp>
5509
0693904a 5510 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 5511 default_face's fontset, not using the default fontset.
0693904a 5512
dd7b81cf
KH
5513 * coding.c (inhibit_iso_escape_detection): New variable.
5514 (syms_of_coding): Make it a Lisp variable.
5515 (detect_coding_iso2022): If inhibit_iso_escape_detection is
5516 nonzero, ignore ISO2022's escape sequence.
5517
d5aa31d8
GM
55182000-07-14 Gerd Moellmann <gerd@gnu.org>
5519
e5acf0ca
GM
5520 * alloca.c (malloc) [emacs]: Define as xmalloc.
5521
bd23a692
GM
5522 * xfns.c (Fx_show_tip): If frame parameters contain a position,
5523 use that instead of the mouse position. Add parameters DX and DY.
5524
5525 * dispextern.h (Fx_show_tip): Adjust number of parameters
5526 in prototype.
5527
9662da0b
GM
5528 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
5529 if HELP is a function, call it with OBJECT and POS as parameters
5530 to get the help to display.
5531 (gen_help_event, kbd_buffer_store_help_event): New functions.
5532 (kbd_buffer_get_event): Construct the Lisp help-event differently.
5533 (read_char): Call show_help_echo with new parameters.
5534
178c5d9c 5535 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
5536 Add prototypes.
5537
5538 * xterm.c (help_echo_object, help_echo_pos): New variables.
5539 (note_mode_line_highlight): Store additional information about the
5540 help-echo in help_echo_object and help_echo_pos. Check both
5541 `local-map' and `keymap' properties for changing the cursor
5542 (note_mouse_highlight): Store additional information about the
5543 help-echo in help_echo_object and help_echo_pos.
5544 (note_tool_bar_highlight): Set help_echo_object to nil and
5545 help_echo_pos to -1.
5546 (XTread_socket): Use gen_help_event instead of filling
5547 input_events manually.
5548 (syms_of_xterm): Staticpro help_echo_object.
5549
5550 * xmenu.c (menu_highlight_callback): Use
5551 kbd_buffer_store_help_event instead of setting up and input_event
5552 structure manually.
5553
5554 * xdisp.c (eval_form): GCPRO argument sexpr.
5555 (call_function): New function.
5556 (handle_single_display_prop): Use call_function and FUNCTIONP
5557 instead of checking whether if font_height is a symbol and
5558 using eval_form.
5559
5560 * eval.c (internal_condition_case_2): New function.
5561
5562 * lisp.h (FUNCTIONP): New macro.
5563 (internal_condition_case_2, call_function): Add prototypes.
5564
d5aa31d8
GM
5565 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
5566 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
5567 Always set `arg' member of input_events.
5568 (construct_menu_click): Unused function removed.
5569
5570 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
5571
5572 * w32term.c (construct_mouse_click, construct_mouse_wheel)
5573 (construct_drag_n_drop, x_scroll_bar_handle_click)
5574 (w32_read_socket): Always set `arg' member of input_events.
5575
5576 * keyboard.c (show_help_echo): Use eval_form. Add comment.
5577
5578 * lisp.h (eval_form): Add prototype.
5579
5580 * xdisp.c (eval_form): Make it externally visible.
5581
0f1a9b23
GM
55822000-07-13 Gerd Moellmann <gerd@gnu.org>
5583
5584 * xterm.c (x_handle_tool_bar_click): Store the frame in the
5585 frame_or_window slot of TOOL_BAR_EVENT input events instead of
5586 consing. For prefix events, store the frame in the `arg' slot of
5587 the event, otherwise store the key there.
5588 (XTread_socket): Instead of consing, use the frame_or_window slot
5589 of HELP_EVENTs for the frame, and the `arg' slot for the help
5590 string.
5591
5592 * xmenu.c (menu_highlight_callback): Store help string in the
5593 `arg' member of the input event; don't cons.
5594 (menubar_selection_callback): Use the `arg' slot of input events
5595 to queue additional information, instead of consing.
5596
5597 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
5598
5599 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
5600 TOOL_BAR_EVENTs.
5601 (w32_read_socket): Adapt to changes in HELP_EVENTs.
5602
5603 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
5604 input events to queue additional information, instead of consing.
5605
5606 * keyboard.c (kbd_buffer_gcpro): Renamed from
5607 kbd_buffer_frame_or_window. Now used for all Lisp objects
5608 referenced from the input queue.
5609 (kbd_buffer_store_event): Always use structure assignment for
5610 copying input events. Record all Lisp objects referenced from
5611 events in kbd_buffer_gcpro.
5612 (kbd_buffer_get_event): Construct Lisp `help-echo' events
5613 differently from input events. Test for prefix menu_bar_events
5614 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
5615 event in kbd_buffer_gcpro to nil.
5616 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
5617 frame_or_window is equal to its arg member as prefix events.
5618 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
5619 used by an input event to nil.
5620 (init_keyboard): Use two times the size of the input queue
5621 for kbd_buffer_gcpro.
5622 (syms_of_keyboard): Likewise.
5623
5624 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
5625 USER_SIGNAL_EVENT.
5626
5627 * termhooks.h (struct input_event): Add member `arg'.
5628 (MENU_BAR_EVENT): Renamed from menu_bar_event.
5629 (USER_SIGNAL_EVENT): Renamed from user_signal.
5630
5631 * xfaces.c (ASET): Remove definition.
5632
5633 * lisp.h (AREF, ASET, ASIZE): New macros.
5634
5635 * fontset.c (AREF, ASIZE): Remove definitions.
5636
5637 * fns.c (AREF): Remove definition.
178c5d9c 5638
0f1a9b23
GM
5639 * composite.c (AREF): Remove definition.
5640
712eaef2
GM
56412000-07-12 Gerd Moellmann <gerd@gnu.org>
5642
d8ee7803
GM
5643 * dispnew.c (redraw_overlapped_rows): Add missing local.
5644 (scrolling_window): Remove debug code.
5645
712eaef2
GM
5646 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
5647 Before scrolling, turn off a mouse-highlight in the window
5648 being scrolled.
5649
5650 * xterm.c (x_update_window_end): Add parameter
5651 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
5652 redisplay in XTframe_up_to_date.
5653 (x_clear_mouse_face): New function.
5654 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
5655
5656 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
5657 current glyph row.
5658 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
5659 it when any row is written to that contains glyphs highlighted in
5660 mouse-face.
5661 (update_window): Call the window update end hook with new
5662 parameter MOUSE_FACE_OVERWRITTEN_P.
5663 (direct_output_for_insert): Give up if row contains mouse-face.
5664
5665 * dispextern.h (struct redisplay_interface): Add parameter
5666 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
5667 (clear_mouse_face): New function pointer member.
5668
02010917
SM
56692000-07-11 Stefan Monnier <monnier@cs.yale.edu>
5670
5671 * syntax.c (back_comment): Use one switch rather than a few `if's.
5672 Obey open_paren_in_column_0_is_defun_start.
5673 When reverting to the `slow' method, try to nicely handle the case
5674 of nested comments by checking that the comment-starter we found
5675 does indeed match the comment-ender.
5676 (scan_sexps_forward, scan_sexps_forward):
5677 Ignore excessive opening parenthesis rather than throwing an error.
5678
d76c03ea
GM
56792000-07-11 Gerd Moellmann <gerd@gnu.org>
5680
5681 * doc.c (Fsubstitute_command_keys): Handle case that a GC
5682 in Fwhere_is_internal or get_keymap_1 relocates string contents.
5683
5684 * dispnew.c (direct_output_forward_char): Give up if currently
5685 displaying a message instead of the minibuffer contents.
5686
5687 * xterm.c (x_update_window_begin): No need to turn off the mouse
5688 highlight here.
5689 (show_mouse_face): Set the mouse_face_p flag of glyph rows
5690 depending on whether they contain glyphs highlighted in
5691 mouse-face.
5692
5693 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
5694 compare the mouse_face_p flags of both rows.
5695
5696 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
5697
d55ead18
EZ
56982000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
5699
5700 * keyboard.c (show_help_echo): Accept additional parameter
5701 ok_to_overwrite_keystroke_echo.
5702 (read_char): Call show_help_echo with a zero
5703 ok_to_overwrite_keystroke_echo argument.
5704 * keyboard.h (show_help_echo): Update prototype of
5705 show_help_echo.
5706 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
5707 ok_to_overwrite_keystroke_echo argument.
5708 * w32menu.c (w32_menu_display_help): Call show_help_echo with
5709 non-zero ok_to_overwrite_keystroke_echo argument.
5710
df75b1a3
GM
57112000-07-10 Gerd Moellmann <gerd@gnu.org>
5712
4b92c49a
GM
5713 * xdisp.c (try_window_id): If changes are all below what is
5714 displayed in the window, and point is in the window, we still
5715 might have to find point on the display.
5716
5717 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
5718 glyphs instead of a single one.
5719 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
5720 with new argument list.
5721 (x_set_glyph_string_gc): Make sure the face's GC is valid.
5722
df75b1a3
GM
5723 * keymap.c (get_keymap_1): Add comment that this function can GC.
5724 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
5725 comment that functions can GC.
5726 (Fset_keymap_parent): GCPRO arg KEYMAP.
5727
4314cf3e
EZ
57282000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
5729
5730 * msdos.c (XMenuActivate): After exiting the menu, restore the
5731 echo area message and erase it.
5732
ab49ce15
KH
57332000-07-10 Kenichi Handa <handa@etl.go.jp>
5734
5735 * fontset.c (Ffontset_info): Make the return value more compatible
5736 with that of Emacs 20.
5737
090a072f
GM
57382000-07-07 Gerd Moellmann <gerd@gnu.org>
5739
5740 * eval.c (Fsignal): Handle case that backtrace_list is null.
5741
f92de4a6
KH
57422000-07-07 Kenichi Handa <handa@etl.go.jp>
5743
5744 * ccl.c (Fccl_execute): Typo fixed.
5745
dd8888a1
GM
57462000-07-06 Gerd Moellmann <gerd@gnu.org>
5747
e5c81191 5748 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 5749
dd8888a1
GM
5750 * window.c (Fwindow_list): Reverse list at the end.
5751 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
5752 means allow windows on OWINDOW's frame, only.
5753 (window_loop): Simplified; use Fwindow_list.
5754
5755 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
5756
485266d0
GM
57572000-07-05 Gerd Moellmann <gerd@gnu.org>
5758
5759 * xterm.c (XTread_socket): Increment handling_signal at the start,
5760 decrement it at the end.
5761
5762 * eval.c (handling_signal): New variable.
5763 (Fsignal): Abort if handling_signal is non-zero.
5764
5765 * lisp.h (handling_signal): External declaration.
178c5d9c 5766
485266d0
GM
5767 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
5768
80fcd514
KR
57692000-07-05 Ken Raeburn <raeburn@gnu.org>
5770
5771 Sound support for NetBSD through "Linux emulation" support:
5772 * config.in (HAVE_SOUNDCARD_H): Undef.
5773 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
5774 * Makefile.in (LIBSOUND): New variable.
5775 (LIBES): Include it.
5776 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
5777 <soundcard.h>.
5778 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
5779 elsewhere.
5780 (vox_open): Use DEFAULT_SOUND_DEVICE.
5781 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
5782
d5c5cddd
GM
57832000-07-05 Gerd Moellmann <gerd@gnu.org>
5784
5785 * print.c (print_error_message): If Vsignaling_function is set,
5786 show it in *Messages*.
5787
5788 * lisp.h (Vsignaling_function): External declaration.
5789
5790 * eval.c (Vsignaling_function): New variable.
5791 (Fsignal): Compute it.
5792 (syms_of_eval): Staticpro it.
5793
65171e3a
DL
57942000-07-05 Dave Love <fx@gnu.org>
5795
5796 * syswait.h: Use the autoconf recommended approach. Old code
5797 #if'd out in case we need to revert.
5798
178c5d9c 5799 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 5800
e2c46326
AI
58012000-07-05 Andrew Innes <andrewi@gnu.org>
5802
5803 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
5804 when non-NULL instead of __morecore, to take account of buffer
5805 memory. This also solves a problem with spurious memory warnings
5806 on Windows.
5807
5808 * ralloc.c: Make real_morecore non-static.
5809
5810 * eval.c (internal_condition_case): Comment out abort if
5811 interrupt_input_blocked is not zero.
5812
5813 * makefile.nt: Add support for `bootstrap' and related targets.
5814 Include minimal debug info in emacs.exe in release build.
5815 Remove all dependencies on lisp.h, and fixup some others.
5816
5817 * w32.c (init_environment): Install code from 20.7 for providing
5818 default values for environment variables, based on the
5819 executable's own location.
5820 (map_w32_filename): Handle filenames that are longer than
5821 MAX_PATH.
5822 (sys_socket): Install socket inheritance bug fix from 20.7.
5823
5824 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
5825 here via blockinput.h).
5826
a027a91b
SM
58272000-07-05 Stefan Monnier <monnier@cs.yale.edu>
5828
e4b31601
SM
5829 * w32menu.c (w32_menu_display_help):
5830 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
5831
5832 * keyboard.h (show_help_echo): Declare.
5833
5834 * keyboard.c (show_help_echo): New function, extracted from read_char.
5835 Feval its `msg' argument if it's a cons cell.
5836 (read_char): Use it.
4cf8d9d5 5837 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 5838
178c5d9c 5839 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 5840 (note_tool_bar_highlight, XTread_socket):
178c5d9c 5841 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
5842 (dos_rawgetc):
5843 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
5844 (note_tool_bar_highlight, w32_read_socket):
5845 Do not gratuitously ignore non-string `help-echo' properties.
5846
88d75730
GM
58472000-07-05 Gerd Moellmann <gerd@gnu.org>
5848
969f7e79
GM
5849 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
5850
71201b00
GM
5851 * window.c (delete_all_subwindows): Reset Vwindow_list.
5852
88d75730
GM
5853 * xterm.c (x_append_glyph, x_append_composite_glyph)
5854 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
5855 changes in struct glyph starting 1999-12-27. Some bit-fields of
5856 struct glyph were not set, which made glyphs unequal when compared
5857 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
5858 effects were the result. This also depended on the contents of
5859 memory returned by xmalloc. If flickering happens again, activate
5860 the code in clear_glyph_row that's in #if 0. If the flickering is
5861 gone with that, chances are that it is caused by something
5862 similar.
5863
5864 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 5865
88d75730
GM
5866 * dispextern.h: Add some comments.
5867
5868 * window.c (add_window_to_list): Add parameter LIST.
5869 (window_list): Order list so that, for each frame, windows are
5870 in canonical order, and so that frames appear in the list in
5871 the order given by Vframe_list.
5872 (next_window): Reverse the handling of NEXT_P.
5873
53654733
GM
58742000-07-04 Gerd Moellmann <gerd@gnu.org>
5875
87efd256
GM
5876 * window.c (Vwindow_list): New variable.
5877 (make_window, delete_window): Set Vwindow_list to nil.
5878 (check_window_containing): New function.
5879 (window_from_coordinates): Rewritten.
5880 (add_window_to_list, window_list, candidate_window_p)
5881 (decode_next_window_args, next_window): New functions.
5882 (Fnext_window, Fprevious_window): Rewritten in terms of
5883 next_window.
5884 (Fwindow_list): New function.
5885 (Fother_window): Cleaned up.
5886 (foreach_window): Add a longer "variable argument list". Let
5887 callback function return 0 to indicate that cycling over windows
5888 should stop.
5889 (foreach_window_1): Likewise.
5890 (freeze_window_start): Return int.
5891 (init_window): New function.
5892 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
5893
5894 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
5895 input_event with bzero.
5896 (main): Call init_window.
5897
53654733
GM
5898 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
5899 a menu filter.
5900
4a8c194f
KH
59012000-07-04 Kenichi Handa <handa@etl.go.jp>
5902
5903 * composite.h (make_composition_value_copy): Extern it.
5904
5905 * composite.c (make_composition_value_copy): New function.
5906
5907 * editfns.c (Fformat): While copying text properties, make each
5908 composition property value a copy.
5909
5910 * fns.c (concat): While copying text properties, make each
5911 composition property value a copy.
5912
831a6cb0
GM
59132000-07-03 Gerd Moellmann <gerd@gnu.org>
5914
2f516940
GM
5915 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
5916
178c5d9c 5917 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
5918 marked already.
5919
831a6cb0
GM
5920 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
5921 include those frames as candidates which have their focus
5922 redirected to the minibuffer frame.
5923
d9c4f922
SM
59242000-07-03 Stefan Monnier <monnier@cs.yale.edu>
5925
5926 * fns.c (Fputhash): Return `value' rather than nil.
5927
3780bc22
GM
59282000-06-30 Gerd Moellmann <gerd@gnu.org>
5929
97d176db
GM
5930 * frame.c (next_frame): Don't check focus redirection in case
5931 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
5932 unless their focus is redirected, which contradicts the
5933 specification of next-frame, and leads to infinite loops in
5934 certain situations when cycling through windows with next-window.
5935
dca9961d
KH
59362000-06-30 Kenichi Handa <handa@etl.go.jp>
5937
5938 * coding.c (code_convert_region): Even if the length of text is
5939 zero, try to convert it if coding->type is coding_type_ccl.
5940 (decode_coding_string, encode_coding_string): Likewise.
5941
d5483ab1
GM
59422000-06-28 Gerd Moellmann <gerd@gnu.org>
5943
af5c25e1 5944 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 5945 the display if windows_or_buffers_changed.
af5c25e1
GM
5946
5947 * dispnew.c (struct row_entry): New structure.
5948 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
5949 (row_table_size, old_lines, new_lines, old_lines_size)
5950 (new_lines_size, run_pool, runs_size, runs): New variables.
5951 (add_row_entry): New function.
5952 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 5953 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
5954 holding them in local variables. Use a larger hash table whose
5955 size depends on glyph matrix sizes. Don't use bzero to clear the
5956 hash table; instead, clear used slots only.
5957
5958 * fns.c (next_almost_prime): Make it externally visible.
5959
5960 * lisp.h (next_almost_prime): Add prototype.
5961
d5483ab1
GM
5962 * s/isc4-0.h (sigunblock): Define.
5963
5964 * s/sco5.h (sigunblock): Define.
5965
93e40f40
DL
59662000-06-27 Dave Love <fx@gnu.org>
5967
5968 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
5969 (moved to osf5-0.h).
5970 [!NOT_C_CODE]: Protect string.h stuff.
5971
5972 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
5973 (sys_siglist, NSIG): Definitions moved here from osf1.h.
5974
3c4b7685
GM
59752000-06-27 Gerd Moellmann <gerd@gnu.org>
5976
97d176db 5977 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
5978 below the last line from the needed window height.
5979
32cad0aa
SM
59802000-06-26 Stefan Monnier <monnier@cs.yale.edu>
5981
5982 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
5983 (Fwidget_get): Use it.
5984 (syms_of_fns): Defsubr it.
5985
2c69ced2
GM
59862000-06-26 Gerd Moellmann <gerd@gnu.org>
5987
178c5d9c 5988 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
5989 display info for XIM.
5990 (xim_open_dpy): Likewise.
5991 (xim_close_dpy): Don't free the display info's XIM.
5992
5993 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
5994
5995 * config.in (USE_XIM): New define.
5996
3fc720e4
GM
5997 * keymap.c (get_keyelt): For menu-items containing a `:filter
5998 FILTER', apply FILTER to the menu-item's definition to get the
5999 real definition to use.
6000
6001 * lisp.h (QCfilter): External declaration.
6002
2c69ced2
GM
6003 * xfns.c (Fimage_size): New function.
6004 (syms_of_xfns): Defsubr it.
6005
f978b2a2
AS
60062000-06-26 Andreas Schwab <schwab@suse.de>
6007
6008 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
6009 Fstring_as_unibyte.
6010
94cc7892
DL
60112000-06-25 Dave Love <fx@gnu.org>
6012
6013 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
6014 tgetnum.
6015
6016 * Makefile.in (blockinput.h): Depend on atimer.h.
6017 (atimer.h): Depend on systime.h.
6018
6019 * blockinput.h: Protect against multiple inclusion. Include
6020 atimer.h.
6021
6022 * atimer.h: Protect against multiple inclusion. Include
6023 systime.h.
6024
6025 * lisp.h (swap_in_global_binding): Declare.
6026
b8c24556
KR
60272000-06-24 Ken Raeburn <raeburn@gnu.org>
6028
6029 * process.c (Fopen_network_stream): Turn off atimers for duration
6030 of call to connect. (Patch from Gerd.)
6031
8cf8560b
DL
60322000-06-23 Dave Love <fx@gnu.org>
6033
511c7541
DL
6034 * ralloc.c: Maybe include unistd.h
6035
8cf8560b
DL
6036 * emacs.c (setgrp): Undefine before defining.
6037 (malloc_warning, set_time_zone_rule, index): Prototype.
6038
6039 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
6040 HAVE_STRUCT_TIMEZONE.
6041
6042 * s/osf1.h: Move string.h hack here from alpha.h and make it
6043 conditional.
6044 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
6045 _XOPEN_SOURCE.
6046 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
6047 (SOCKLEN_TYPE): Don't define.
6048
6049 * m/alpha.h: Remove string.h hack.
6050
6051 * s/osf5-0.h: New file.
6052
6053 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
6054 include time.h, done by systime.h.
6055 [__FreeBSD__]: Remove redundant includes.
6056
3fc720e4 6057 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
6058 (delete_temp_file): Return Qnil to avoid warning.
6059
6060 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
6061
6062 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
6063 HAVE_X_WINDOWS.
6064
6065 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
6066
6067 * composite.h (compose_text): Declare.
6068
6069 * xterm.c: Don't include sys/types.h unconditionally. Don't
6070 protect its inclusion with !USG (following xmenu.c).
6071
ea055732
GM
60722000-06-23 Gerd Moellmann <gerd@gnu.org>
6073
6074 * xfns.c (x_create_tip_frame): Initialize frame's colors like
6075 in x_create_frame.
6076
74b01b80
EZ
60772000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
6078
6079 * coding.c (decode_eol_post_ccl): Special handling for undecided
6080 and inconsistent EOL types.
6081
64f3a166
GM
60822000-06-22 Gerd Moellmann <gerd@gnu.org>
6083
16cf31f7
GM
6084 * xrdb.c (x_load_resources): Add default resource for scroll bar's
6085 trough color and main window's background color.
6086
178c5d9c 6087 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
6088 differently.
6089
6090 * xterm.h (Xt_app_con): External declaration.
6091
6092 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 6093
486a103d
GM
6094 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
6095
64f3a166
GM
6096 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
6097 (handle_invisible_prop): Record the start of invisible text in
6098 it->add_overlay_start.
6099 (struct overlay_entry): Add member `overlay'.
6100 (handle_overlay_change): Simplify.
6101 (next_overlay_string): After having processed overlay strings at the
6102 end of the buffer, record that fact in
6103 it->overlay_strings_at_end_processed_p.
6104 (compare_overlay_entries): If before- and after-strings come
6105 from the same overlay, let before-strings come first.
6106 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
6107 (load_overlay_strings): Take it->add_overlay_start into account
6108 when adding overlay strings.
6109
6110 * dispextern.h (struct it): Add member add_overlay_start.
6111
bb746ea6
DL
61122000-06-22 Dave Love <fx@gnu.org>
6113
6114 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
6115
6116 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
6117
a8f573f3
KH
61182000-06-22 Kenichi Handa <handa@etl.go.jp>
6119
6120 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
6121 is greater than 0.
6122
9f2bbc92
DL
61232000-06-21 Dave Love <fx@gnu.org>
6124
178c5d9c 6125 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 6126
3ee5041c
SM
61272000-06-21 Stefan Monnier <monnier@cs.yale.edu>
6128
6129 * syntax.c (back_comment): Simplify string-parity counting (with
6130 the added benefit of handling multiple string-styles as long as
6131 they are not intertwined).
6132 Jump to the slow code as soon as a comment starter is found in
6133 a "string_lossage" position. Fixes the case: " /* " /* " */.
6134
4c343001
DL
61352000-06-21 Dave Love <fx@gnu.org>
6136
6137 * Makefile.in: Use GETLOADAVG_LIBS.
6138
6139 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
6140 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
6141
e6365855
SM
61422000-06-20 Stefan Monnier <monnier@cs.yale.edu>
6143
6144 * syntax.c (describe_syntax): Recognize the `n'estable bit.
6145 (Fforward_comment, scan_lists):
6146 Check the comstyle of single-char comment-starters.
6147 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
6148 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
6149 Check the comstyle of single-char comment-starters.
6150 Clarify control-flow around the Scomment case.
e6365855 6151
5700d2cc
DL
61522000-06-20 Dave Love <fx@gnu.org>
6153
d355bd8a
SM
6154 * fns.c (make_hash_table, maybe_resize_hash_table):
6155 Cast arg of next_almost_prime.
5700d2cc 6156
178c5d9c 6157 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
6158
6159 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
6160 and unistd.h.
6161
4a27bdfb
GM
61622000-06-20 Gerd Moellmann <gerd@gnu.org>
6163
a61d762c
GM
6164 * keyboard.c (adjust_point_for_property): Check if display
6165 property should be treated as intangible by looking at its
6166 value.
6167
178c5d9c 6168 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
6169 (display_prop_intangible_p): New functions.
6170
6171 * dispextern.h (display_prop_intangible_p): Add prototype.
6172
6173 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 6174
4a27bdfb
GM
6175 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
6176 argument to sigprocmask.
6177
6178 * s/sco5.h (sigblock): Redefined to pass a pointer as second
6179 argument to sigprocmask.
6180
6181 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
6182 sigprocmask_set, and pass a pointer to it to sigprocmask.
6183
6184 * sysdep.c (sigprocmask_set): New variable.
6185
6186 * fileio.c (make_temp_name): Don't use `%s' in string passed to
6187 report_file_error.
6188
427ec082
SS
61892000-06-20 Sam Steingold <sds@gnu.org>
6190
6191 * xrdb.c: Don't declare xmalloc, xrealloc.
6192
8972fe79 61932000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
6194
6195 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
6196 (re_comp): Cast gettext return value to avoid complaints when
6197 !HAVE_LIBINTL.
6198
074b6efe
DL
61992000-06-20 Dave Love <fx@gnu.org>
6200
f85c008a
DL
6201 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
6202 HAVE_GETTIMEOFDAY.
6203
5700d2cc 6204 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 6205
d355bd8a 6206 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
6207
6208 * m/alpha.h: Don't declare xmalloc, xrealloc.
6209
0af4f205
DL
6210 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
6211
6212 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
6213
6214 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
6215
6216 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
6217 HAVE_GETWD.
6218
074b6efe
DL
6219 * keyboard.h (poll_for_input_1): Declare.
6220
6221 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
6222
6223 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
6224
6225 * doprnt.c: Don't declare xmalloc, xrealloc.
6226
6227 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
6228 (getenv, ctime, getwd): Removed.
6229 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
6230
6231 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
6232 x_set_tool_bar_lines.
6233
6234 * config.in: Add HAVE_GETWD. Move some definitions above
6235 machine/system includes.
6236
68a5e97b
KH
62372000-06-20 Kenichi Handa <handa@etl.go.jp>
6238
95417e1e
KH
6239 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
6240
68a5e97b
KH
6241 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
6242 contain information about ENCODING.
6243
6244 * fontset.c (FONTSET_ASCII): Use the first element of char table
6245 for an ASCII font, not defalt slot.
6246 (fontset_ref_via_base): If FONTSET doesn't contain information for
6247 C, try the default fontset.
6248 (make_fontset): Don't copy the default fontset.
6249 (fontset_font_pattern): Likewise.
6250 (accumulate_font_info): If ELT is nil, use the corresponding
6251 element in the default fontset.
6252
3b4fa1b2
DL
62532000-06-19 Dave Love <fx@gnu.org>
6254
943e731c
DL
6255 * syntax.c (Fparse_partial_sexp): Doc fix.
6256
6257 * regex.h: Test PROTOTYPES as well as __STDC__.
6258
3b4fa1b2
DL
6259 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
6260 errno, strerror. Put text after #endif in comment.
6261
6262 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
6263 pcc).
6264
6265 * xterm.c (x_frame_of_widget): Likewise.
6266
cdf0357b
GM
62672000-06-19 Gerd Moellmann <gerd@gnu.org>
6268
6269 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
6270 to Vfundamental_mode_abbrev_table.
6271
6272 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
6273 bogus objects are marked. This slows down GC by ~80 percent, but
6274 it might be worth trying when debugging GC-related problems.
6275 This feature requires conservative stack marking to be enabled.
6276
6277 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
6278 returns XLookupChars, reset `modifiers' to zero.
6279
998e9f8c
DL
62802000-06-19 Dave Love <fx@gnu.org>
6281
6282 * mktime.c: Unprotoized.
6283
18e21ce8 62842000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
6285
6286 * data.c (set_internal): If variable is frame-local,
6287 store the new value immediately into the frame parameter alist.
6288
140c4ac6
KR
62892000-06-19 Ken Raeburn <raeburn@gnu.org>
6290
14358466
KR
6291 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
6292 in the custom handler pointer.
6293
140c4ac6
KR
6294 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
6295 value, or checks for CHAR_META can fail when Lisp_Object is a
6296 union type.
6297 * keymap.c (get_keyelt): Likewise.
6298
10d7bf84
KH
62992000-06-19 Kenichi Handa <handa@etl.go.jp>
6300
6301 * ccl.h (struct ccl_program): New member eol_type.
6302 (struct ccl_spec): New member cr_carryover.
6303
6304 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
6305 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
6306
6307 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
6308 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
6309 (decode_eol_post_ccl): New function.
6310 (decode_coding): Don't detect EOL format here for CCL based coding
6311 systems.
6312 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
6313 decode_eol_post_ccl after running the CCL program.
6314 (code_convert_region): Don't detect EOL format here for CCL based
6315 coding systems.
6316 (decode_coding_string): Likewise.
6317
52e386c2
KR
63182000-06-18 Ken Raeburn <raeburn@gnu.org>
6319
6320 * charset.c (update_charset_table): Use XINT on "iso_final_char"
6321 when treating it as an integer.
6322
6323 * coding.h (encode_coding_string): Declare.
6324
6325 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
6326 it as an integer.
6327
6328 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
6329 "xkeymap" to avoid shadowing the "enum map_type" value that needs
6330 to be passed to get_local_map.
6331
6332 * sound.c (Fplay_sound): Don't call make_number on
6333 Frun_hook_with_args count argument.
6334
6335 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
6336 for lisp objects in X event structure data field, when lisp
6337 objects are represented with unions.
6338 (x_scroll_bar_to_input_event): Ditto.
6339
b357b9d4
KR
63402000-06-16 Ken Raeburn <raeburn@gnu.org>
6341
6342 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
6343 termination of string. Fix sense of test whether
6344 Vline_number_display_limit is an integer.
b357b9d4 6345
a871441d
GM
63462000-06-16 Gerd Moellmann <gerd@gnu.org>
6347
a9021acd
GM
6348 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
6349 only if HAVE_X_WINDOWS.
6350
6344985d
GM
6351 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
6352 of titles.
6353
427ec082 6354 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
6355 out of bounds.
6356
228b083e
EZ
63572000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
6358
6359 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
6360 of its headers.
6361
c25b53a2
KH
63622000-06-15 Kenichi Handa <handa@etl.go.jp>
6363
6364 * coding.c (decode_coding_emacs_mule): Always set src_base at the
6365 start of the while loop.
6366
a6981b11
GM
63672000-06-15 Gerd Moellmann <gerd@gnu.org>
6368
e9924e52
GM
6369 * atimer.c (alarm_signal_handler): Add forward declaration.
6370
a6981b11
GM
6371 * data.c (set_internal): Remove debug code.
6372
25fa6deb
GM
63732000-06-14 Gerd Moellmann <gerd@gnu.org>
6374
dce6b995
GM
6375 * Makefile.in (bootstrap-temacs): Add `-I../src'.
6376
9f817ea4
GM
6377 * unexec.c (toplevel) [COFF]: Include coff.h.
6378
6379 * s/lynxos.h: New file.
6380
6381 * keymap.c (Fsingle_key_description): Enclose function key and
6382 event symbol names in angle brackets.
6383
8a4e3c0c
GM
6384 * xdisp.c (setup_echo_area_for_printing): Call
6385 message_log_maybe_newline if message_buf_print is not set.
6386
6387 * print.c (printchar, strout): Don't check message_buf_print
427ec082 6388 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
6389 function does something useful even when message_buf_print is
6390 already set.
6391
25fa6deb
GM
6392 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
6393 variables.
6394 (ensure_echo_area_buffers): Initialize echo buffer's
6395 truncate lines setting to nil.
6396 (with_echo_area_buffer): Don't set the echo buffer's truncate
6397 lines setting here.
8a4e3c0c 6398 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
6399 of message_truncate_lines.
6400 (resize_mini_window): Handle case that lines are truncated.
6401 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
6402 message-truncate-lines.
6403
6404 * keyboard.c (read_char): Bind message-truncate-lines to t
6405 while displaying a help-echo.
6406
6407 * lisp.h (Qmessage_truncate_lines): External declaration.
6408
163dcff3
GM
64092000-06-13 Gerd Moellmann <gerd@gnu.org>
6410
1681ead6
GM
6411 * xdisp.c (Vline_number_display_limit): Renamed from
6412 line_number_display_limit.
6413 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
6414 Extend documentation string. Initialize
6415 Vline_number_display_limit to nil meaning no limit.
6416 (decode_mode_spec): Use Vline_number_display_limit with its new
6417 meaning.
6418
163dcff3
GM
6419 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
6420
18e21ce8 64212000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
6422
6423 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 6424
163dcff3
GM
6425 * xfns.c (x_set_frame_parameters): Comment fix.
6426
6427 * frame.c (store_frame_param): Call swap_in_global_binding if the
6428 variable's current binding was chosen based on this frame.
6429
6430 * data.c (swap_in_global_binding): New function.
6431
a704139d
EZ
64322000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
6433
6434 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
6435 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
6436
9b6610db
EZ
64372000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
6438
6439 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
6440
c68833d2
JR
64412000-06-12 Jason Rumney <jasonr@gnu.org>
6442
6443 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
6444
6445 * w32.h (EMACS_W32_H): Renamed from _NT_H_
6446
6447 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
6448
6449 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
6450
ed1056b3
GM
64512000-06-12 Gerd Moellmann <gerd@gnu.org>
6452
6453 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
6454 (syms_of_xfaces): Defsubr Sdump_colors.
6455 (x_free_colors): Don't treat b&w specially on default visual.
6456 (x_free_dpy_colors): New function.
6457 (free_face_colors): Don't check visual class; it's done
6458 in x_free_colors.
6459
6460 * xterm.c (x_frame_of_widget): New function.
6461 (x_alloc_nearest_color_for_widget): Use it.
6462 (x_copy_dpy_color): New function.
6463 (x_destroy_window): Free various colors.
6464
5050a2ef
KH
64652000-06-12 Kenichi Handa <handa@etl.go.jp>
6466
6467 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
6468
6469 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
6470
6471 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
6472
6473 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
6474
6475 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
6476
fb1b041d
DL
64772000-06-11 Dave Love <fx@gnu.org>
6478
6479 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
6480
ff96b5f4
EZ
64812000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
6482
6483 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
6484
db8eeecd
GM
64852000-06-11 Gerd Moellmann <gerd@gnu.org>
6486
ed1056b3 6487 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
6488 to `XEvent *'.
6489
49b71c5f
KH
64902000-06-10 Kenichi Handa <handa@etl.go.jp>
6491
c479bd55
KH
6492 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
6493 (regex_compile): Fix the code for handling the case of single byte
6494 char and multibyte char being mixed in a range within [...].
6495
ff6a65c2
KH
6496 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
6497 and dst_multibyte members of coding.
6498
49b71c5f
KH
6499 * charset.c (update_charset_table): Update the table
6500 bytes_by_char_head.
6501 (init_charset_once): Initialize elements of bytes_by_char_head to
6502 1 except for leading codes for private charases.
6503
6504 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
6505 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
6506 sequence.
6507
9e80b57d
KR
65082000-06-09 Ken Raeburn <raeburn@gnu.org>
6509
6510 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
6511 access the data it doesn't point to.
6512
f83fe4b4
GM
65132000-06-08 Gerd Moellmann <gerd@gnu.org>
6514
6515 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 6516 will be translated to a switch-frame event when reading the
f83fe4b4
GM
6517 event queue. This is necessary because Emacs otherwise won't
6518 perform a switch-frame to a new frame until some other event, for
6519 example a keystroke event, forces it to do so. This has various
6520 effects, one visible being that the cursor of a frame created with
6521 C-x 5 2 or switched to with a window manager key binding like
6522 A-TAB stays hollow because selected_window isn't on the newly
6523 focused frame until the switch-frame is performed.
6524
6525 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
6526 generating a switch-frame event if necessary.
6527
6528 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
6529
6530 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
6531 it's an integer.
6532
0890801b
KH
65332000-06-08 Kenichi Handa <handa@etl.go.jp>
6534
6535 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
6536 charset.
6537
173cbca8
GM
65382000-06-07 Gerd Moellmann <gerd@gnu.org>
6539
3091c2a6
GM
6540 * window.c (displayed_window_lines): Take empty lines at
6541 the bottom of a window into account.
427ec082 6542
f38952fe
GM
6543 * window.c (displayed_window_lines): New function.
6544 (Fmove_to_window_line): Use displayed_window_lines to determine
6545 the number of lines to move, instead of using the window's height.
6546
6547 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
6548 to stop reading, even if the form read sets point to a different
6549 value when evaluated.
6550
427ec082 6551 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
6552 put the cursor.
6553
6ba6c818
KH
65542000-06-07 Kenichi Handa <handa@etl.go.jp>
6555
6556 * fileio.c (e_write): Free composition data if stored in
6557 coding->cmp_data.
6558
5f1aea9a
GM
65592000-06-06 Gerd Moellmann <gerd@gnu.org>
6560
666852af
GM
6561 * xdisp.c (display_line): Set row's and iterator's
6562 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
6563 Set cursor even if row ends in the middle of a character.
6564 (dump_glyph_row): Print values of new flags.
6565 (redisplay_window) <cursor movement in unchanged window>: When
6566 point has been moved forward, and PT is at the end of the cursor
6567 row, don't place the cursor in the next row if the cursor row ends
6568 in the middle of a character or at ZV.
6569
6570 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
6571 (struct glyph_row): Add starts_in_middle_of_char_p and
6572 ends_in_middle_of_char_p.
6573 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
6574 ends_in_middle_of_char_p flag.
6575 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
6576
d13f3e2e
GM
6577 * term.c (append_glyph): Revert change of 2000-06-06.
6578
6579 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
6580 padding glyph not fitting on line as whole character not
6581 fitting on line.
6582
5f1aea9a
GM
6583 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
6584 this isn't true for images with `:ascent 100'.
6585
10cda9b0
KH
65862000-06-06 Kenichi Handa <handa@etl.go.jp>
6587
ed00559d
KH
6588 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
6589 as modified if it is originally unmodified.
6590
10cda9b0
KH
6591 * term.c (encode_terminal_code): Change the way to check if
6592 terminal coding does any conversion.
6593 (append_glyph): Set glyph->pixel_width correctly.
6594
6595 * xdisp.c (display_line): While checking line continuation, pay
6596 attention to a padding glyph.
6597
1969fae2
GM
65982000-06-05 Gerd Moellmann <gerd@gnu.org>
6599
6600 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
6601
162ccef4
DL
66022000-06-05 Dave Love <fx@gnu.org>
6603
f19f32dd
DL
6604 * xdisp.c: Include fontset.h.
6605
6606 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
6607
6608 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
6609
6610 * dispnew.c: Conditionally include term.h.
6611
6612 * coding.h: Declare code_convert_string_norecord.
6613
6614 * frame.h (struct frame): Use volatile unconditionally.
6615
6616 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
6617
6618 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
6619
6620 * systime.h: Protect against multiple inclusion.
6621 (timezone) [USG5_4]: Define as time_t.
6622
6623 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
6624 (Foptimize_char_table, make_temp_name): Declare.
6625
6626 * Makefile.in (xdisp.o): Depend on fontset.h.
6627
6628 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
6629
6630 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
6631 (Foptimize_char_table, make_temp_name): Declare.
6632
427ec082 6633 * s/irix4-0.h:
162ccef4
DL
6634 * s/irix5-0.h:
6635 * s/netbsd.h: Don't define autoconfiscated MATHERR.
6636
2082fe81
DL
66372000-06-02 Dave Love <fx@gnu.org>
6638
6639 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
6640
dcf671d2
GM
66412000-06-02 Gerd Moellmann <gerd@gnu.org>
6642
6643 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 6644 result face, set flags in that face indicating that colors may not
dcf671d2
GM
6645 be freed.
6646
6647 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
6648 glyph, use the ASCII NUL character to determine the face.
6649
d42122a3
DL
66502000-06-02 Dave Love <fx@gnu.org>
6651
6652 * sysdep.c: Conditionally include stdlib.h, unistd.h.
6653 (VFORK_RETURN_TYPE): Remove.
427ec082 6654
d42122a3
DL
6655 * config.in: Add NO_MATHERR.
6656
dd432f16
DL
66572000-06-01 Dave Love <fx@gnu.org>
6658
90aa4ea8
DL
6659 * cmds.c (internal_self_insert): Don't check
6660 Vbefore_change_function, Vafter_change_function.
6661
6662 * insdel.c (signal_before_change, signal_after_change): Likewise.
6663
6664 * buffer.c (Vbefore_change_function, Vafter_change_function):
6665 Variables and their initializations deleted.
6666
2330c9d4
DL
6667 * callint.c (Fcall_interactively): Doc fix.
6668
dd432f16
DL
6669 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
6670
bf9e8804
DL
66712000-05-31 Dave Love <fx@gnu.org>
6672
6673 * textprop.c: Revert last change -- duplicated.
6674
3694b4ab
GM
66752000-05-31 Gerd Moellmann <gerd@gnu.org>
6676
6677 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
6678 in #if 0.
6679
6680 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
6681
f14156cd
JR
66822000-05-31 Jason Rumney <jasonr@gnu.org>
6683
8119aab8
JR
6684 * search.c (Fre_search_forward, Fre_search_backward)
6685 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
6686
f14156cd
JR
6687 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
6688
4aab9be3
JR
66892000-05-30 Jason Rumney <jasonr@gnu.org>
6690
6691 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
6692 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
6693
6694 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
6695 member.
6696
6697 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
6698 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
6699 expand a nil default_filename.
6700
6701 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
6702 pointer to glyph_to_pixel_coords, not a frame.
6703
6704 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
6705 coding.h to dependencies.
6706
6707 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
6708
6709 * w32console.c (glyph_to_pixel_coords): Change first parameter to
6710 window pointer to be consistent with w32term.c and xterm.c.
6711
6712 * w32fns.c: Format and doc changes to bring closer to xfns.c.
6713 (VIETNAMESE_CHARSET): Define if not defined in system headers.
6714 (Qline_spacing, Qcenter): New variables.
6715 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
6716 (x_set_line_spacing): New function.
6717 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
6718 macros.
6719 (x_specified_cursor_type): New function.
6720 (x_set_cursor_type): Use it.
6721 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
6722 and icon strings.
6723 (validate_x_resource_name, x_get_resource_string): Measure lengths
6724 of external strings in bytes.
6725 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
6726 GetTextExtentPoint32 with NULL title.
6727 (Fx_create_frame): Initialize Qline_spacing.
6728 (w32_load_system_font): Initialize font->double_byte_p.
6729 (x_to_w32_charset): Use Vw32_charset_info_alist.
6730 (Image, busy cursor, tooltip functions): Merged changes from
6731 xfns.c. Not yet functional on Windows.
6732
6733 * w32gui.h (W32FontStruct): Add double_byte_p member.
6734
6735 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
6736 (emacs_button_translation): Use it.
6737 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
6738 in `mask' to be set.
6739
6740 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
6741 menu strings.
6742
6743 * w32term.c: Format and doc changes to bring closer to xterm.c.
6744 (w32_char_font_type): New enum.
6745 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
6746 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
6747 (w32_encode_char): New function.
6748 (x_encode_char): Removed.
6749 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
6750 x_encode_char and w32_font_is_double_byte.
6751 (x_produce_image_glyph): Use image_ascent.
6752 (x_produce_glyphs): Use new version of w32_per_char_metric and
6753 handle NULL return value. Allow extra line spacing.
6754 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
6755 (w32_get_glyph_overhangs): Remove unicode_p param. Use
6756 w32_font_type member of glyph instead.
6757 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
6758 (fast_find_position): Make sure not to consider rows not visible
6759 in the window.
6760 (w32_read_socket) [WM_MENUSELECT]: Cannot call
6761 w32_menu_display_help with input blocked, as it can abort.
6762 (x_display_and_set_cursor): Choose cursor depending
6763 on buffer-local value of cursor_type.
6764 (x_draw_bar_cursor): Add parameter WIDTH.
6765
6766 * w32term.h (CP_DEFAULT): Define.
6767 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
6768
10fc3187
GM
67692000-05-30 Gerd Moellmann <gerd@gnu.org>
6770
6771 * search.c (Fre_search_forward, Fre_search_backward)
6772 (Fposix_search_backward, Fposix_search_forward): Doc fix.
6773
d0555360
KH
67742000-05-30 Kenichi Handa <handa@etl.go.jp>
6775
6776 * coding.c (detect_coding_iso2022): Fix code for checking
6777 CODING_CATEGORY_MASK_ISO_8_2.
6778
f1ad044f
SM
67792000-05-29 Stefan Monnier <monnier@cs.yale.edu>
6780
6781 * regex.c (PREFETCH_NOLIMIT): New function.
6782 (re_match_2_internal): Use it and adjust the end_match_2 logic.
6783
84ec3b4b
GM
67842000-05-29 Gerd Moellmann <gerd@gnu.org>
6785
66254a13
GM
6786 * syntax.c (find_defun_start): Move test for
6787 open_paren_in_column_0_is_defun_start outside of the loop.
6788
49e70dec
GM
6789 * xdisp.c (redisplay_window): Really switch buffers when
6790 displaying mode lines, and temporarily set selected_frame to the
6791 frame of the window that's redisplayed.
6792
84ec3b4b
GM
6793 * xfaces.c (free_realized_faces): Block/unblock input.
6794 (free_realized_multibyte_face): Ditto.
6795
869a3a14
DL
67962000-05-29 Dave Love <fx@gnu.org>
6797
6798 * textprop.c (Qkeymap): New variable.
6799 (syms_of_textprop): Intern it.
6800
6801 * keymap.c: Include intervals.h.
6802 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
6803
6804 * Makefile.in (keymap.o): Depend on intervals.h.
6805
6806 * keyboard.c (menu_bar_items, tool_bar_items)
6807 (Fexecute_extended_command): Deal with `keymap' property.
6808 (read_key_sequence): Track map from `keymap' property as well as
6809 `local_map'.
6810
6811 * intervals.c (get_local_map): Extra arg to allow looking for
6812 `keymap' too.
6813
6814 * intervals.h (map_property): New enum.
6815 (get_local_map): Extra arg using it.
6816 (Qkeymap): Declare.
6817
84ec3b4b 6818 * lisp.h (get_local_map): Don't declare here.
869a3a14 6819
89d0c844
KH
68202000-05-29 Kenichi Handa <handa@etl.go.jp>
6821
6822 * Makefile.in (callproc.o): Depend on composite.h.
6823
6824 * callproc.c: Include composite.h.
6825 (Fcall_process): Handle composition correctly.
6826
6827 * coding.h (coding_allocate_composition_data): Extern it.
6828 (coding_restore_composition): Likewise.
6829
6830 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
6831 yet allocated, finish decoding with result
6832 CODING_FINISH_INSUFFICIENT_CMP.
6833 (coding_allocate_composition_data): Make it non-static.
6834 (coding_restore_composition): Likewise.
6835
797a084a
EZ
68362000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
6837
6838 * charset.c (syms_of_charset): Revert last change.
6839
cf872af5
EZ
68402000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
6841
6842 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
6843 charsets as unibyte, with 1-column screen width. Sent by Kenichi
6844 Handa.
cf872af5 6845
5b1ae051
EZ
68462000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
6847
6848 * charset.c (syms_of_charset): Set width of character sets
6849 eight-bit-control and eight-bit-graphic to 1 column.
6850
34ec9ebe
GM
68512000-05-26 Gerd Moellmann <gerd@gnu.org>
6852
6853 * config.in (HAVE_SPEED_T): New define.
6854
6855 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
6856 `extern speed_t'.
6857
dd854dc2
DL
68582000-05-26 Dave Love <fx@gnu.org>
6859
6860 * coding.c (shrink_decoding_region): Initialize eol_conversion.
6861
6862 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
6863 (Fsubr_arity): New function.
6864 (syms_of_data): Install them.
6865
ba9f8f95
KH
68662000-05-26 Kenichi Handa <handa@etl.go.jp>
6867
0f3e0672
KH
6868 * charset.c (init_charset_once): Set the table bytes_by_char_head
6869 correctly.
6870
cebefb44
KH
6871 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
6872 the default fontset to what Emacs uses by default.
0f3e0672
KH
6873 (check_registry_encoding): This function deleted.
6874 (Fset_fontset_font): Remove the adhoc condition for the default
6875 fontset. Allow cons in FONTNAME.
cebefb44 6876
0f3e0672
KH
6877 * fns.c (map_char_table): Ignore char-table entries for
6878 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 6879
7a18af49
KR
68802000-05-25 Ken Raeburn <raeburn@gnu.org>
6881
6882 * emacs.c (main): Initialize keyboard syms before initializing
6883 window code, so face names are available.
6884
d2af47df
SM
68852000-05-25 Stefan Monnier <monnier@cs.yale.edu>
6886
6887 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
6888 of an anchor at the beginning of a shy-group.
6889
fc6a6a4e
GM
68902000-05-25 Gerd Moellmann <gerd@gnu.org>
6891
6892 * xdisp.c (handle_invisible_prop): Don't try to skip over
6893 invisible text if end of text is already reached.
6894
005f0d35
DL
68952000-05-25 Dave Love <fx@gnu.org>
6896
02513cdd
DL
6897 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
6898
005f0d35
DL
6899 * coding.c (encode_eol): Add null statement after label.
6900
89f6ca4e
EZ
69012000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
6902
6903 * w16select.c (Fw16_set_clipboard_data): Fix the change from
6904 2000-05-20.
6905
a4e1759e
KH
69062000-05-25 Kenichi Handa <handa@etl.go.jp>
6907
6908 * ccl.c (ccl_driver): Fix previous change.
6909
eacfd7fe
KH
69102000-05-25 Kenichi Handa <handa@etl.go.jp>
6911
46ab33a9
KH
6912 * coding.c (run_pre_post_conversion_on_str): Set point to the
6913 beginning of buffer before calling coding->post_read_conversion.
6914 (decode_coding_string): Give correct args to
6915 run_pre_post_conversion_on_str.
6916 (encode_coding_string): Likewise.
6917
eacfd7fe
KH
6918 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
6919 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
6920 eight-bit-graphic correctly.
6921
f8569325
DL
69222000-05-24 Kenichi HANDA <handa@etl.go.jp>
6923
6924 * fileio.c (Finsert_file_contents): Even if a file is not found,
6925 execute codes for setting up coding system. Call
6926 after-insert-file-functions unconditionally.
6927
04545643
GM
69282000-05-24 Gerd Moellmann <gerd@gnu.org>
6929
6930 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
6931 BSD_PGRPS are not defined.
6932
747d90ea
KH
69332000-05-24 Kenichi Handa <handa@etl.go.jp>
6934
6935 * charset.c (update_charset_table): Accept nil in LONG_NAME and
6936 DESCRIPTION.
6937 (syms_of_charset): Avoid building same strings.
6938
716e3b88
GM
69392000-05-23 Gerd Moellmann <gerd@gnu.org>
6940
6941 * lread.c (Fload): Add a comment about the meaning of
6942 Vuser_init_file being t.
6943
6944 * puresize.h (BASE_PURESIZE): Increase to 675000.
6945
6946 * s/gnu-linux.h (setpgrp): Don't define it here because this
6947 prevents compilation on GNU/Linux systems with glib 2.2.
6948
6949 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
6950 as setpgid.
427ec082 6951
9aeb39fa
EZ
69522000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
6953
6954 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
6955 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
6956 version.
6957 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
6958
29ced61b
KH
69592000-05-23 Kenichi Handa <handa@etl.go.jp>
6960
0574a2ed
KH
6961 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
6962 unconditionally.
6963
3d80f24d
KH
6964 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
6965
6966 * term.c (encode_terminal_code): Set coding->src_multibyte
6967 properly.
6968
29ced61b
KH
6969 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
6970
d7e00792
KH
69712000-05-22 Kenichi Handa <handa@etl.go.jp>
6972
c9d80d38
KH
6973 * keyboard.c (read_char): Allow character codes 128..255 to be
6974 handled by input-method-function.
6975
d7e00792
KH
6976 * insdel.c (adjust_markers_for_replace): Fix previous change.
6977 (adjust_after_replace): If PREV_TEXT is nil, call
6978 adjust_markers_for_insert, not adjust_markers_for_replace.
6979
087121cc 69802000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 6981
087121cc
GM
6982 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
6983 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
6984 [HAVE_GRANDPT]: Define.
6985 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
6986
6987 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
6988 like SYSV_PTYS.
6989
6990 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
6991
6992 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
6993
c9671f81
KH
69942000-05-20 Kenichi Handa <handa@etl.go.jp>
6995
6996 The following changes are to handle 8-bit characters in a
6997 multibyte buffer/string without facing with byte combining
6998 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
6999 eight-bit-graphic (for 0xA0..0xFF) are introduced.
7000
7001 * Makefile.in (fns.o): Depend on charset.h.
7002
7003 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
7004 convert it to unibyte.
7005 (make_string): Use parse_str_as_multibyte, not chars_in_text.
7006
7007 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
7008 apparent char boundary.
7009 (Fset_buffer_multibyte): Convert 8-bit characters in the range
7010 0x80..0x9F to/from multibyte form.
7011
7012 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
7013 to unibyte.
7014
7015 * callproc.c (Fcall_process): Always encode an argument string if
7016 it is multibyte. Setup src_multibyte and dst_multibyte members of
7017 process_coding properly.
ce75fd23 7018
c9671f81
KH
7019 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
7020 SPLIT_NON_ASCII_CHAR.
7021
7022 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
7023 as is.
7024 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
7025
7026 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
7027 variables.
7028 (SPLIT_CHARACTER_SEQ): This macro deleted.
7029 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
7030 valid.
7031 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
7032 and eight-bit-graphic.
7033 (char_to_string): Likewise. Signal an error for too large
7034 character code.
7035 (char_printable_p): Return 0 for 8-bit characters.
7036 (update_charset_table): Update iso_charset_table only when a final
7037 character is non-negative.
7038 (find_charset_in_text): Renamed from find_charset_in_str.
7039 Arguments and return value changed. Callers changed.
7040 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
7041 be -1 if CHARSET is used only internally.
7042 (Fmake_char_internal): Handle new charsets; eight-bit-control and
7043 eight-bit-graphic.
7044 (Fcharset_after): Simplified.
7045 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
7046 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
7047 (multibyte_chars_in_text): Simplified by assuming there's no
7048 invalid multibyte sequence.
7049 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
7050 str_as_unibyte): New functions.
7051 (Fstring): Simpified by assuming that byte combining never
7052 happens.
7053 (init_charset_once): Initialization for
7054 LEADING_CODE_8_BIT_CONTROL.
7055 (syms_of_charset): Intern and staticpro Qeight_bit_control and
7056 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
7057 eight-bit-control and eight-bit-graphic.
7058
7059 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
7060 CHARSET_8_BIT_GRAPHIC): New macros.
7061 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
7062 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
7063 (CHARSET_REVERSE_CHARSET): Likewise.
7064 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
7065 eight-bit-graphic.
7066 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
7067 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
7068 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
7069 encounter an invalid multibyte sequence.
7070 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
7071 sequence is always valid.
7072 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
7073 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
7074 macros.
7075 (CHAR_STRING): For 8-bit characters, call char_to_string.
7076 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
7077 multibyte sequence is always valid.
7078 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
7079 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
7080 str_as_unibyte): Extern them.
7081 (BCOPY_SHORT): Fix a bug.
7082 (CHAR_LEN): This macro deleted. Callers changed to use
7083 CHAR_BYTES.
7084 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
7085 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
7086 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
7087
bd4bde7f 7088 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
7089 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
7090 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
7091 EMIT_BYTES): New macros.
7092 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
7093 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
7094 macros deleted.
7095 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
7096 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
7097 check the validity of multibyte sequence.
7098 (decode_coding_emacs_mule): New function.
7099 (encode_coding_emacs_mule): New macro.
7100 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
7101 the source.
7102 (DECODE_ISO_CHARACTER): Just return a character code.
7103 (DECODE_COMPOSITION_START): Set coding->result instead of result.
7104 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
7105 EMIT_CHAR to produced decoded characters. Exit the loop only by
7106 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
7107 block here.
7108 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
7109 only position codes for an invalid character.
7110 (encode_designation_at_bol): Return new destination pointer. 5th
7111 arg DSTP is changed to DST.
7112 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
7113 from the source by ONE_MORE_CHAR. Don't handle the case of last
7114 block here.
7115 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
7116 macros deleted.
7117 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
7118 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
7119 TWO_MORE_BYTES to fetch a byte from the source.
7120 (encode_eol): Pay attention to coding->src_multibyte.
7121 (detect_coding, detect_eol): Preserve members src_multibyte and
7122 dst_multibyte.
7123 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
7124 (encoding_buffer_size): Set magnification to 3 for all coding
7125 systems that require encoding.
7126 (ccl_coding_driver): For decoding, be sure that the result is
7127 valid multibyte sequence.
7128 (decode_coding): Initialize coding->errors and coding->result.
7129 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
7130 and raw-text, always call decode_eol. Handle the case of last
7131 block here. If not coding->dst_multibyte, convert the resulting
7132 sequence to unibyte.
7133 (encode_coding): Initialize coding->errors and coding->result.
7134 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
7135 and raw-text, always call encode_eol. Handle the case of last
7136 block here.
7137 (shrink_decoding_region, shrink_encoding_region): Detect cases
7138 that we can't skip data more rigidly.
7139 (code_convert_region): Setup src_multibyte and dst_multibyte
7140 members of coding. For decoding, if the buffer is multibyte,
7141 convert the source sequence to unibyte in advance. For encoding,
7142 if the buffer is multibyte, convert the resulting sequence to
7143 multibyte afterward.
7144 (run_pre_post_conversion_on_str): New function.
7145 (code_convert_string): Deleted and divided into the following two.
7146 (decode_coding_string, encode_coding_string): New functions.
7147 (code_convert_string1, code_convert_string_norecord): Call one of
7148 above.
7149 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
7150 MAKE_NON_ASCII_CHAR.
7151 (Fset_terminal_coding_system_internal,
7152 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
7153 and dst_multibyte members.
7154 (init_coding_once): Initialize iso_code_class with new enum
7155 ISO_control_0 and ISO_control_1.
7156
7157 * coding.h (enum iso_code_class_type): Member ISO_control_code is
7158 devided into ISO_control_0 and ISO_control_1.
7159 (struct coding_system): New members src_multibyte, dst_multibyte,
7160 errors, and result. Delete member fake_multibyte.
7161 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
7162 nonzero.
7163 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
7164 nonzero.
7165
7166 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
7167 (Faset): Likewise.
7168
7169 * editfns.c (Fformat): Be sure to convert 8-bit characters to
7170 multibyte form.
7171 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
7172 combining occurs.
7173 (Ftranspose_region): Delete codes for handling byte combining.
7174
7175 * fileio.c (Finsert_file_contents): Setup src_multibyte and
7176 dst_multibyte members of coding. On handling REPLACE on unibyte
7177 buffer, convert the result of decode_coding to unibyte. On
7178 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 7179 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
7180 multibyteness of the source (buffer or string).
7181
7182 * fns.c (concat): Handle 8-bit characters correctly.
7183 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
7184 unibyte in the result.
7185 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
7186 valid multibyte form in the result.
7187 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
7188 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
7189 return -1, signal an error.
7190 (base64_encode_1): New arg MULTIBYTE. Get each character by
7191 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
7192 character is found, return -1.
7193 (Fbase64_decode_region): Delete codes for handling byte-combining.
7194 Treat each decoded byte as a unibyte character.
7195 (Fbase64_decode_string): Return unibyte string.
7196 (Fcompare_strings, concat, string_byte_to_char): Use
7197 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
7198 FETCH_STRING_CHAR_ADVANCE.
7199 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
7200 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
7201
7202 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
7203 SPLIT_NON_ASCII_CHAR.
7204 (fontset_ref_via_base, fontset_set): Likewise
7205
7206 * insdel.c (adjust_markers_for_record_delete): Deleted.
7207 (adjust_markers_for_insert): Argument changed. Caller changed.
7208 (adjust_markers_for_replace): Likewise.
7209 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
7210 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
7211 (copy_text): Delete unused local varialbe c_save. For converting
7212 to multibyte, be sure to make all 8-bit characters in valid
7213 multibyte form.
7214 (count_size_as_multibyte): Handle 8-bit characters correctly.
7215 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
7216 adjust_after_replace, replace_range, del_range_2)
7217 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
7218 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
7219 adjust_after_replace, replace_range, del_range_2) Delete codes for
7220 handling byte combining.
7221 (adjust_before_replace): Deleted.
427ec082 7222
c9671f81
KH
7223 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
7224 SPLIT_NON_ASCII_CHAR.
7225 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
7226 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
7227 unconditionally.
7228 (Fkey_description): Likewise.
7229
7230 * lread.c (read1): On reading multibyte string, be sure to make
7231 all 8-bit chararacters in valid multibyte form.
7232 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
7233
7234 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
7235 unconditionally.
7236
7237 * process.c (Fstart_process): GCPRO current_dir before calling
7238 Ffind_operation_coding_system. Encode arguments here.
7239 (create_process): Don't encode arguments here. Setup
7240 src_multibyte and dst_multibyte members of struct coding.
7241 (read_process_output): Setup src_multibyte and dst_multibyte
7242 members of struct coding. If the output is to multibyte buffer,
7243 always decode the output of the process. Adjust the
7244 representation of 8-bit characters to the multibyteness of the
7245 output.
7246 (send_process): Setup coding->src_multibyte according to the
7247 multibyteness of the source.
7248
7249 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
7250 unconditionally.
7251 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
7252 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
7253
7254 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
7255 CHAR_LEN.
7256
7257 * w16select.c (Fw16_set_clipboard_data): Setup members
7258 src_multibyte and dst_multibyte of coding. Adjusted for the
7259 change for find_charset_in_str.
7260 (Fw16_get_clipboard_data): Likewise.
7261
7262 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
7263 dst_multibyte of coding.
7264 (x_to_w32_font): Likewise.
7265
7266 * w32select.c (Fw32_set_clipboard_data): Setup members
7267 src_multibyte and dst_multibyte of coding. Adjusted for the
7268 change for find_charset_in_str.
7269 (Fw32_get_clipboard_data): Likewise.
7270
7271 * xdisp.c (get_next_display_element): Handle 8-bit characters
7272 correctly.
7273 (next_element_from_display_vector): Use CHAR_BYTES instead of
7274 CHAR_LEN.
7275 (disp_char_vector): Use SPLIT_CHAR instead of
7276 SPLIT_NON_ASCII_CHAR.
7277
7278 * xselect.c (selection_data_to_lisp_data): Setup members
7279 src_multibyte and dst_multibyte of coding. Adjusted for the
7280 change for find_charset_in_str.
7281 (lisp_data_to_selection_data): Likewise.
7282
5f64c9e0
GM
72832000-05-19 Gerd Moellmann <gerd@gnu.org>
7284
2b63d473
GM
7285 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
7286 buffer.
7287
5f64c9e0
GM
7288 * dispextern.h (Vimage_types): Add extern declaration.
7289
7290 * xdisp.c (Vimage_types): Moved here from xfns.c.
7291 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
7292
7293 * xfns.c (Vimages_types): Moved to xdisp.c.
7294 (syms_of_xfns): Move `image-types' to xdisp.c.
7295
7296 * w32fns.c (Vimage_types): Removed.
7297 (syms_of_w32fns): Remove `image-types'.
7298
813086ea
KH
72992000-05-18 Kenichi Handa <handa@etl.go.jp>
7300
7301 * fns.c (map_char_table): Pay attention to character number of
7302 charset. Check the validity of charset at the first level. For
7303 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
7304 the default value.
7305
7306 * fontset.c: Include "buffer.h".
7307 (fs_load_font): If the face has fontset, record the face ID in
7308 that fontset.
7309 (Finternal_char_font): New function.
7310 (accumulate_font_info): New function.
7311 (Ffontset_info): Rewritten for the new fontset implementation.
7312 (syms_of_fontset): Register Vdefault_fontset in the first element
7313 of Vfontset_table. Include Vdefault_fontset in
7314 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
7315 function.
7316
bdaebbf0
DL
73172000-05-16 Dave Love <fx@gnu.org>
7318
7319 * m/iris5d.h: Deleted -- unused.
7320
cb613bb8
GM
73212000-05-16 Gerd Moellmann <gerd@gnu.org>
7322
b15f3b77
GM
7323 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
7324 `invalid' instead of `illegal'.
7325
7326 * indent.c (Fmove_to_column): When ending within a tab, insert
7327 spaces first so that markers at the end of the tab get adjusted.
7328
835c1b36
GM
7329 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
7330 buffer list that wasn't selected in that frame.
7331
cb613bb8
GM
7332 * filelock.c (get_boot_time): To obtain an 8 char file name, which
7333 is needed on mescaline, use a 2 char prefix, and call
7334 make_temp_name with second arg non-zero.
7335
7336 * fileio.c (make_temp_name): New function, extracted from
7337 Fmake_temp_name.
7338 (Fmake_temp_name): Use it.
7339
f685bea9
EZ
73402000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
7341
7342 * window.c (coordinates_in_window): Subtract 1 when computing
7343 right_x.
7344
a1b8d58b
GM
73452000-05-15 Gerd Moellmann <gerd@gnu.org>
7346
7347 * Makefile.in (lisp): Add env.elc.
7348
7349 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
7350
a265079f
GM
73512000-05-12 Gerd Moellmann <gerd@gnu.org>
7352
7353 * search.c (Freplace_match): Handle case of `\N' in the
7354 replacement when there's no group N.
7355
da4496b6
GM
73562000-05-11 Gerd Moellmann <gerd@gnu.org>
7357
0ace421a
GM
7358 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
7359 of the message to message_dolog.
7360
1172eb8d
GM
7361 * keyboard.c (read_char): Don't clear current message for help
7362 events; let the code handling help events handle this. Change
7363 code detecting help events that should be ignored.
7364
da4496b6
GM
7365 * xdisp.c (handle_single_display_prop): Don't try to set PT if
7366 we're interating over a string.
7367
0623e40f
DL
73682000-05-09 Dave Love <fx@gnu.org>
7369
7370 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
7371 that offset before writing. Move gcpro region past call of
7372 Ffile_regular_p.
7373
bae2503b
DL
73742000-05-04 Dave Love <fx@gnu.org>
7375
7376 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
7377
ec82fb2f
GM
73782000-05-04 Gerd Moellmann <gerd@gnu.org>
7379
7380 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
7381 of inserted characters when BUF equals the current buffer, and PT
7382 is in front of or equal to FROM.
7383
cbf18892
GM
73842000-05-03 Gerd Moellmann <gerd@gnu.org>
7385
4ff40dd0
GM
7386 * xdisp.c (handle_single_display_prop): If display property value
7387 is invalid, or something not supported on the frame, restore
7388 iterator's position to what it was initially. Make sure to return
7389 0 for invalid and unsupported property values.
7390
cbf18892
GM
7391 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
7392 that x_per_char_metric returns null.
7393
1b0672c3
GM
73942000-05-02 Gerd Moellmann <gerd@gnu.org>
7395
576da55d
GM
7396 * xterm.h (struct face): Add forward declaration.
7397 (struct image): Ditto.
7398 (image_ascent): Add prototype.
7399
7400 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
7401 (x_draw_image_relief, x_draw_image_foreground_1): Call function
7402 image_ascent instead of using IMAGE_ASCENT.
7403
7404 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
7405 (IMAGE_ASCENT): Removed.
7406
7407 * xfns.c (Qcenter): New variable.
7408 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
7409 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
7410 (image_ascent): New function.
7411 (lookup_image): Recognize `:ascent center'.
7412 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
7413 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
7414 (xbm_load): Don't set image's ascent here.
7415 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
7416 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
7417 check ascent values here.
7418 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
7419 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
7420 (syms_of_xfns): Initialize Qcenter.
7421
1b0672c3
GM
7422 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
7423 to the limits, increase the limits.
7424
0d7811ed
KH
74252000-05-01 Kenichi Handa <handa@etl.go.jp>
7426
7427 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
7428 Check Vfont_encoding_alist against the full name of the opened
7429 font.
7430
a943a5ca
GM
74312000-04-28 Gerd Moellmann <gerd@gnu.org>
7432
7433 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
7434 taller than the window.
7435
5dba1e29
KH
74362000-04-28 Kenichi Handa <handa@etl.go.jp>
7437
7438 * xfaces.c (realize_x_face): Fix the argument of the second
7439 xassert. BASE_FACE may not be a face for ASCII.
7440
353964e3
GM
74412000-04-27 Gerd Moellmann <gerd@gnu.org>
7442
c76e04a8
GM
7443 * print.c (print_object): Treat print-length < 0 as nil.
7444
7445 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
7446
7447 * s/freebsd.h (TERMCAP_OBJ): Removed.
7448 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
7449
7450 * lread.c (read1): Don't treat period followed by certain
7451 characters as symbol start.
7452
7453 * xfns.c (slurp_file): New function.
7454 (xbm_image_p): Handle case of in-memory XBM files.
7455 (xbm_scan): Rewritten to work on memory buffers instead of files.
7456 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
7457 Work on memory buffers instead of files. If DATA is null test
7458 if buffer looks like an in-memory XBM file.
7459 (xbm_load_image): Renamed from xbm_load_image_file. Work on
7460 memory buffers instead of files.
7461 (xbm_file_p): New function.
7462 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
7463
353964e3
GM
7464 * lread.c (end_of_file_error): New function.
7465 (read1): Call it instead of signaling `end-of-file' directly.
7466
427ec082 7467 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
7468 with Fprinc instead of Fprin1.
7469
24d744ac
KR
74702000-04-26 Ken Raeburn <raeburn@gnu.org>
7471
7472 * window.c (freeze_window_start): Check that minibuffer scroll
7473 window isn't nil before extracting the window structure pointer
7474 from it.
7475
7476 * undo.c (record_delete): If we hit the end of the undo list, stop
7477 picking elements apart.
7478
7464346d
GM
74792000-04-26 Gerd Moellmann <gerd@gnu.org>
7480
7481 * xdisp.c (display_line): If lines are continued, restore
7482 iterator's ascent/descent information to the values before the
7483 first glyph not fitting on the line.
7484
612839b6
GM
74852000-04-25 Gerd Moellmann <gerd@gnu.org>
7486
7487 * xdisp.c (try_window_id) <all changes above window start>: Adjust
7488 positions in glyph matrix. Don't compute new window end
7489 positions.
7490
7491 * dispnew.c (increment_matrix_positions): Renamed from
7492 increment_glyph_matrix_buffer_positions.
7493 (increment_row_positions): Renamed from
7494 increment_glyph_row_buffer_positions.
7495
7496 * dispextern.h: Change names of renamed functions from dispnew.c
7497 in prototypes.
7498
cc181e95
GM
74992000-04-24 Gerd Moellmann <gerd@gnu.org>
7500
abfcc168
GM
7501 * fileio.c (Fdo_auto_save): Create directories for auto-save
7502 list file if necessary.
7503
cc181e95
GM
7504 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
7505 from buffer or frame.
7506 (automatic_hscrolling_p): New variable.
7507 (hscroll_windows): Scroll windows horizontally only if automatic
7508 hscrolling is allowed.
7509 (syms_of_xdisp): New variable `automatic-hscrolling'.
7510
7511 * frame.h (struct frame): Add member extra_line_spacing.
7512
7513 * xfns.c (x_set_line_spacing): New function.
7514 (Fx_create_frame): Set line spacing from resources.
7515 (Qline_spacing): New variable.
7516 (syms_of_xfns): Initialize Qline_spacing.
427ec082 7517
cc181e95
GM
7518 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
7519
7520 * buffer.c (init_buffer_once): Handle extra_line_spacing.
7521 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 7522 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
7523 extra_line_spacing from default value.
7524 (init_buffer_once): Initialize default value of extra_line_spacing.
7525
7526 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
7527 and extra3.
7528
7529 * xterm.c (x_produce_glyphs): Remove reference to struct it's
7530 prompt_width. Add extra line spacing.
7531
7532 * term.c (produce_glyphs): Remove reference to struct it's
7533 prompt_width.
7534
7535 * dispextern.h (struct it): Remove member prompt_width, add
7536 extra_line_spacing.
7537
58827478
GM
75382000-04-22 Gerd Moellmann <gerd@gnu.org>
7539
7540 * dispnew.c (update_frame_line): When writing a whole line, make
7541 sure cursor is in the right row afterwards, otherwise a use of
7542 capability `ch' in cmgoto might leave the cursor in the row below.
7543
25a87f42
GM
75442000-04-21 Gerd Moellmann <gerd@gnu.org>
7545
7546 * lisp.h (struct Lisp_Buffer_Cons): Remove.
7547
7548 * keyboard.c (timer_check): Fix typo in comment.
7549
54edf5c2
KH
75502000-04-21 Kenichi Handa <handa@etl.go.jp>
7551
7552 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
7553 name change: ch -> character.
7554
3a64eef5
GM
75552000-04-20 Gerd Moellmann <gerd@gnu.org>
7556
7557 * keyboard.c (echo_message_buffer): New variable.
7558 (echo_now): Set echo_message_buffer to the echo area buffer used
7559 to display the echo.
7560 (cancel_echoing): Reset echo_message_buffer to nil.
7561 (read_char): Code rewritten that handles canceling an echo or
7562 echoing a dash, respectively.
7563
7564 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
7565 directory doesn't exist.
7566
6142fdcb
DL
75672000-04-19 Dave Love <fx@gnu.org>
7568
7569 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
7570 (concat): Don't allow numeric args.
7571 (Fconcat): Doc change.
6142fdcb 7572
ac6b5352
SM
75732000-04-19 Stefan Monnier <monnier@cs.yale.edu>
7574
7575 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
7576 instead define end_match(1|2) more carefully.
7577 Use GET_CHAR_BEFORE_2 for `begline'.
7578
cb9215e4
GM
75792000-04-19 Gerd Moellmann <gerd@gnu.org>
7580
5e3dac3f
GM
7581 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
7582 on 64-bit systems where NULL is defined as `0'.
7583
7584 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
7585 the `variable argument list' to make it work on Alpha.
7586
cb9215e4
GM
7587 * m/alpha.h (_LP64) [!_LP64]: Define.
7588 (ORDINARY_LINK): Define for NetBSD.
7589
7590 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 7591
f532dca0
DL
75922000-04-19 Dave Love <fx@gnu.org>
7593
c750667e
DL
7594 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
7595 change.
7596
7597 * Makefile.in (LIBS): Don't use.
7598 (GETLOADAVG_OBJ): Define again.
7599 (otherobj): Add GETLOADAVG_OBJ.
7600
f532dca0
DL
7601 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
7602
1c7e22fd
GM
76032000-04-18 Gerd Moellmann <gerd@gnu.org>
7604
f6d3257b
GM
7605 * lread.c (read_filtered_event): Cancel and start busy cursor.
7606
427ec082 7607 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
7608 that the per-character metrics may be null.
7609
e10f64e7
GM
76102000-04-17 Gerd Moellmann <gerd@gnu.org>
7611
0daee095
GM
7612 * buffer.c (clone_per_buffer_values): New function.
7613 (Fmake_indirect_buffer): Add optional argument CLONE. Call
7614 clone_per_buffer_values if CLONE is not nil.
7615
e10f64e7
GM
7616 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
7617
38687d43
DL
76182000-04-16 Dave Love <fx@gnu.org>
7619
7620 * Makefile.in: Remove obsolete localcpp stuff.
7621 (GETLOADAVG_OBJ): Don't define.
7622 (obj): Move LIBOBJS...
7623 (otherobj): ... to here.
7624 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
7625 whitespace-only lines after the continuation (Irix).
7626
c21c7262
GM
76272000-04-14 Gerd Moellmann <gerd@gnu.org>
7628
7629 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
7630
7631 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
7632
314767c0
DL
76332000-04-14 Dave Love <fx@gnu.org>
7634
7635 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
7636 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
7637 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
7638 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
7639 NLIST_STRUCT.
7640
7641 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
7642 autoconfiscated HAVE_GETLOADAVG.
7643
7644 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
7645 BROKEN_MKTIME.
7646
a2522dca
GM
76472000-04-14 Gerd Moellmann <gerd@gnu.org>
7648
7649 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
7650 (fill_in_lock_file_name): Avoid existing files that aren't
7651 links.
7652
33744b5d
DL
76532000-04-14 Dave Love <fx@gnu.org>
7654
c21c7262 7655 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
7656 (INTERVAL_SRC): Convert to make variable.
7657 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
7658 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
7659 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
7660 add LIBOBJS.
7661 (SOME_MACHINE_OBJECTS): Remove interval stuff.
7662 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
7663 (shortlisp): Add facemenu, float-sup, frame.
7664 (SOME_MACHINE_LISP): Remove them from here.
7665 (LIBES): Change unused LDLIBS to autoconf LIBS.
7666
7667 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
7668
9d3d5916
KH
76692000-04-14 Kenichi Handa <handa@etl.go.jp>
7670
7671 * composite.c (update_compositions): If FROM and TO are not in a
7672 valid range, do nothing.
7673
198e3c7a
GM
76742000-04-13 Gerd Moellmann <gerd@gnu.org>
7675
7676 * tparam.c (tparam1): Abort when encountering an unknown
7677 `%'-specifier.
7678
7679 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
7680 terminfo.o.
7681
7682 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
7683 as TERMCAP_OBJ.
7684
055a28c9
EZ
76852000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
7686
7687 * fileio.c (a_write): Remove redundant semi-colons.
7688 (e_write): Return -1 if failed to write all the data.
7689 This fixes the changes made at 1999-12-15.
7690
f5c75033
DL
76912000-04-12 Dave Love <fx@gnu.org>
7692
7693 * fns.c (mapcar1): Test for null vals to support mapc.
7694 (Fmapc): New function.
7695
0c3cfc51
EZ
76962000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
7697
7698 * msdos.c (NUM_MOUSE_BUTTONS): Define.
7699 (IT_frame_up_to_date): Support the buffer local value of
7700 cursor-type, if defined.
7701
33465a31
DL
77022000-04-10 Dave Love <fx@gnu.org>
7703
7704 * editfns.c (preceding-char, following-char): Doc fix.
7705
6ed56568
KR
77062000-04-10 Ken Raeburn <raeburn@gnu.org>
7707
7708 * Makefile.in (temacs): Revert 2000-03-12 change.
7709
7cf80d4e
JR
77102000-04-10 Jason Rumney <jasonr@gnu.org>
7711
7712 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
7713
34f3f342
GM
77142000-04-10 Gerd Moellmann <gerd@gnu.org>
7715
1a1b1895
GM
7716 * xdisp.c (setup_echo_area_for_printing): Choose an echo
7717 area buffer, if it's not set up yet.
7718
34f3f342
GM
7719 * indent.c (compute_motion): Set immediate_quit.
7720
be0dbdab
GM
77212000-04-09 Gerd Moellmann <gerd@gnu.org>
7722
c45be9ac
GM
7723 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
7724 variable.
7725 (realize_tty_face): Suppress boldness if colors are the inverse of
7726 the default colors, and tty_suppress_bold_inverse_default_colors_p
7727 is set.
7728 (Ftty_suppress_bold_inverse_default_colors): New function.
7729 (syms_of_xfaces): Defsubr it.
7730
be0dbdab
GM
7731 * buffer.c (Frestore_buffer_modified_p): New function.
7732 (syms_of_buffer): Defsubr it.
7733
e8413c3b
KR
77342000-04-08 Ken Raeburn <raeburn@gnu.org>
7735
87f67317
KR
7736 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
7737 charset id (int) argument, not a charset (Lisp_Object).
7738
e8413c3b
KR
7739 * coding.h (code_convert_string): Declare.
7740 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
7741 object, as the fourth argument to code_convert_string.
7742
7743 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
7744 value.
7745 (Fset_fontset_font): Use EQ to compare lisp objects.
7746
7c752c80
KR
77472000-04-05 Ken Raeburn <raeburn@gnu.org>
7748
c0333abc
KR
7749 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
7750 a pointer that looks like a lisp object.
7751 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
7752 zero, instead see whether it's an integer object, since they can't
7753 have intervals.
7754 (GET_INTERVAL_OBJECT): Simply assign to the destination.
7755
7c752c80
KR
7756 * dispnew.c (allocate_matrices_for_frame_redisplay,
7757 direct_output_forward_char): Use X(U)INT and make_number as needed
7758 to convert between (unsigned) int values and lisp integers.
7759 * keyboard.c (read_key_sequence): Likewise.
7760 * lread.c (substitute_object_recurse): Likewise.
7761 * fns.c (concat, hash_lookup, hash_remove): Likewise.
7762 * minibuf.c (do_completion, Fminibuffer_complete_word,
7763 Fminibuffer_completion_help): Likewise.
7764 * term.c (produce_special_glyphs): Likewise.
7765
7766 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
7767 * print.c (print_preprocess, print_object): Likewise.
7768
7769 * search.c (compile_pattern): Use NILP when checking for nil.
7770
74e49b38
KR
7771 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
7772 __OPTIMIZE__]: Provide a GNU C macro version that handles
7773 lisp-object unions.
7774 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
7775 field, to better cope with ENABLE_CHECKING and calls that modify a
7776 Lisp_Object using its old value.
7777
685e5ed2
GM
77782000-04-04 Gerd Moellmann <gerd@gnu.org>
7779
c407c570
GM
7780 * window.c (compare_window_configurations): Signal an error
7781 if parameters C1 or C2 aren't window configurations.
7782
685e5ed2
GM
7783 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
7784 AFTER_POTENTIAL_GC calls around calls to functions that can
7785 signal an error and thus invoke the debugger.
7786
587a49ab
GM
77872000-04-03 Gerd Moellmann <gerd@gnu.org>
7788
62f20204
GM
7789 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
7790 an error if decoding fails.
7791
587a49ab
GM
7792 * keyboard.c (lispy_mouse_names): Variable removed.
7793 (Vlispy_mouse_stem): New variable.
7794 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
7795 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
7796 for any mouse button number. Increase size of mouse_syms and
7797 button_down_location as needed. Call modify_event_symbol with
7798 different arguments.
7799 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
7800 Call modify_event_symbol with different arguments.
7801 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
7802 for any button number. Call modify_event_symbol with different
7803 arguments.
7804 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
7805 Accept a string for NAME_ALIST_OR_STEM.
7806
7807 * lisp.h (larger_vector): Add prototype.
7808
7809 * fns.c (larger_vector): Make externally visible.
7810
7811 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
7812
2d1675e4
SM
78132000-04-02 Stefan Monnier <monnier@cs.yale.edu>
7814
7815 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
7816 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
7817 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
7818 we are between str1 and str2.
7819 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
7820 (PATFETCH): Use `TRANSLATE'.
7821 (PATFETCH_RAW): Fetch multibyte char if applicable.
7822 (PATUNFETCH): Remove.
7823 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
7824 When writing a char, write it directly into the pattern buffer rather
7825 than going needlessly through a temp char-array.
7826 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
7827 multibyte magic and remove the useless `#ifdef emacs'.
7828 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
7829 buffer.
7830
7831 * regex.h (struct re_pattern_buffer): Make field `multibyte'
7832 conditional on `emacs'.
7833
7834 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
7835
cc2d8c6b
KR
78362000-04-01 Ken Raeburn <raeburn@gnu.org>
7837
7838 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
7839 non-union-type versions of XMARK and friends here, because XMARK
7840 and friends won't work on an integer field if NO_UNION_TYPE is not
7841 defined.
7842 (make_number): Define as a function if it's not defined as a
7843 macro.
7844
09654086
KR
7845 * composite.c (run_composite_function): Use NILP when checking for
7846 nil.
7847 (syms_of_composite): Delete local var NARGS, pass an int as first
7848 argument to Fmake_hash_table.
7849
2387b382
KR
7850 * editfns.c (text_property_stickiness): Use NILP to test
7851 Lisp_Object boolean value.
7852 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
7853 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
7854 problems reading from and changing the same lisp value in an
7855 XSETSTRING call.
7856
27660e89
GM
78572000-04-01 Gerd Moellmann <gerd@gnu.org>
7858
7859 * term.c (TN_no_color_video): New variable.
7860 (term_init): Intitialize TN_no_color_video.
7861 (enum no_color_bit): New enumeration.
7862 (MAY_USE_WITH_COLORS_P): New macro.
7863 (turn_on_face): Use it to determine if attributes may be used
7864 combined with colors.
7865
3578db3c
KR
78662000-04-01 Ken Raeburn <raeburn@gnu.org>
7867
7868 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
7869 with int lvalues via casts; instead, just yield lisp object
7870 lvalues.
7871 (enlarge_window): Variable sizep now points to Lisp_Object. Use
7872 proper accessor macros.
7873 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
7874 (grow_mini_window): Fix typo getting int value of root->height.
7875
6fc556fd
KR
7876 * xdisp.c (compute_string_pos): Fix order of arguments to
7877 string_pos_nchars_ahead.
7878 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
7879 count arg to variable-arg routines like Frun_hook_with_args and
7880 Fformat.
587a49ab
GM
7881 (back_to_previous_visible_line_start)
7882 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
7883 fixed-arg routines like Fget_char_property and Fmake_string.
7884 (reconsider_clip_changes): Use XINT when comparing integer lisp
7885 objects, or passing them as int arguments.
587a49ab
GM
7886 (mark_window_display_accurate, insert_left_trunc_glyphs)
7887 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
7888 storing or passing integer values as lisp objects.
7889 (set_cursor_from_row, highlight_trailing_whitespace): Use
7890 INTEGERP, not implicit test against zero, for glyph object.
7891 (try_window_id): Don't use make_number when we want an int value.
7892
7893 * xfaces.c (xlfd_symbolic_value): Make last argument a
7894 Lisp_Object, to be consistent with callers.
7895 (Fbitmap_spec_p): Use XINT to get numeric value of height.
7896 (lface_hash): Apply XFASTINT to lisp values before folding in.
7897
7898 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
7899 fill in window width and height. Pass an int, not a lisp object,
7900 as first arg to Finsert.
7901
6e7b2457
GM
79022000-04-01 Gerd Moellmann <gerd@gnu.org>
7903
610d841e
GM
7904 * xfaces.c (realize_basic_faces): Block input while realizing
7905 the faces.
7906
6e7b2457
GM
7907 * keyboard.c (lispy_mouse_names): Add additional mouse names.
7908
7909 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
7910
aa110c0c
GM
79112000-03-31 Gerd Moellmann <gerd@gnu.org>
7912
7913 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 7914 or ASCII, handle case that per-char metric is null.
aa110c0c 7915
8801a864
KR
79162000-03-30 Ken Raeburn <raeburn@gnu.org>
7917
c6129d7e
KR
7918 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
7919
8801a864
KR
7920 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
7921 XSUBR, XBUFFER): Verify correct object type before returning
7922 pointer, using eassert.
7923 * frame.h (XFRAME): Likewise.
7924
7925 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
7926 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
7927 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
7928 type.
7929 * data.c (set_internal): Likewise.
7930 * dispextern.h (WINDOW_WANTS_MODELINE_P,
7931 WINDOW_WANTS_HEADER_LINE_P): Likewise.
7932 * fileio.c (auto_save_1): Likewise.
7933 * insdel.c (check_markers): Likewise.
7934 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
7935 * undo.c (record_insert): Likewise.
7936 * vmsproc.c (child_sig): Likewise.
7937 * window.c (unshow_buffer, window_loop): Likewise.
7938 * xterm.c (x_erase_phys_cursor): Likewise.
7939
8e7af858
GM
79402000-03-30 Gerd Moellmann <gerd@gnu.org>
7941
7942 * xfns.c (free_image_cache): Free the cache structure itself
7943 last, after all its members have been freed.
7944
7945 * lisp.h (xstrdup): Add prototype.
7946
7947 * alloc.c (xstrdup): Moved here from xfaces.c.
7948 (allocating_for_lisp): Variable removed.
7949 (lisp_malloc): Block input around the calls to malloc and
7950 mem_insert.
7951
7952 * xfaces.c (realize_tty_face): Use find_symbol_value instead
7953 of Fsymbol_value.
7954 (xstrdup): Moved to alloc.c.
7955
e0b8c689
KR
79562000-03-29 Ken Raeburn <raeburn@gnu.org>
7957
b96f9fb7
KR
7958 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
7959
7960 * emacs.c (main): Fix sense of no-loadup test.
7961
e0b8c689
KR
7962 * config.in (ENABLE_CHECKING): Undef.
7963
7964 * lisp.h (struct interval): Replace "parent" field with a union of
7965 interval pointer and Lisp_Object; add new bitfield to use as
7966 discriminant. Change other flag fields to bitfields.
7967 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
7968 is defined and the supplied test fails, print a message and
7969 abort.
7970 (eassert): New macro. Use CHECK to provide an assert-like
7971 facility.
7972
7973 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
7974 pointers; abort if the value looks like a lisp object.
7975 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
7976 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
7977 Modify for new interval parent definition.
7978
7979 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
7980 UNMARK_BALANCE_INTERVALS): Update references that need an
7981 addressable lisp object in the interval structure.
7982 (die): New function.
7983 (suppress_checking): New variable.
7984
7985 * intervals.c (interval_start_pos): Just return 0 if there's no
7986 parent object.
7987
f83c5440
GM
79882000-03-29 Gerd Moellmann <gerd@gnu.org>
7989
7990 * lread.c (read1): Accept `.' (period) as symbol start like in CL
7991 and earlier Emacs versions.
7992
7993 * keyboard.c (Ftop_level): Cancel busy-cursor.
7994
7995 * eval.c (call_debugger): Cancel busy-cursor.
7996
fdce64ff
KH
79972000-03-29 Kenichi Handa <handa@etl.go.jp>
7998
7999 * search.c (Freplace_match): Adjust multibyteness of the current
8000 buffer and NEWTEXT. Free allocated memory before signaling an
8001 error.
8002
f6a3f532
SM
80032000-03-28 Stefan Monnier <monnier@cs.yale.edu>
8004
8005 * regex.c (analyse_first): New function obtained by ripping out most
8006 of re_compile_fastmap and generalizing it a little bit so that it
8007 can also just return whether a given (sub)pattern can match the empty
8008 string or not.
8009 (regex_compile): Use `analyse_first' to decide whether the loop-check
8010 needs to be done or not for *, +, *? and +? (the loop check is costly
8011 for non-greedy repetition).
8012 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
8013
e9b309ac
DL
80142000-03-28 Dave Love <fx@gnu.org>
8015
bb15bd9a
DL
8016 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
8017 alpha.
8018
e9b309ac
DL
8019 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
8020
ed0767d8
SM
80212000-03-27 Stefan Monnier <monnier@cs.yale.edu>
8022
8023 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
8024 an expression.
8025 (enum re_opcode_t): Update description of succeed_n.
8026 (PATFETCH): Always define.
8027 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
8028 operators, char classes, shy-groups and intervals).
8029 Optimize special cases of intervals so as to only use succeed_n and
8030 jump_n when really needed.
8031 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
8032 that we don't have to handle the special cases any more.
8033 Simplify on_failure_jump handling as well.
8034
e11e7e46
JR
80352000-03-28 Jason Rumney <jasonr@gnu.org>
8036
8037 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
8038
88faab89
GM
80392000-03-27 Gerd Moellmann <gerd@gnu.org>
8040
182ff242
GM
8041 * s/freebsd.h (GC_SETJMP_WORKS): Define.
8042
8043 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 8044
182ff242
GM
8045 * alloc.c (mark_maybe_object): New function.
8046 (mark_memory): Use it.
8047 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
8048 (setjmp_tested_p, longjmp_done): New variables.
8049 (test_setjmp): New function.
8050 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
8051 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
8052
c1005d06
GM
8053 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
8054 to DEC_TEXT_POS and INC_TEXT_POS.
8055
8056 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
8057 with parameter MULTIBYTE_P.
8058
427ec082 8059 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
8060 MULTIBYTE_P.
8061
7439e5b9 8062 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
8063 buffers because it looks for multibyte character byte sequences
8064 which don't exist in unibyte text.
7439e5b9 8065
d9c545da
GM
8066 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
8067
11fd416e 8068 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
8069 [DEBUG_X_COLORS]: New functions.
8070 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
8071
8072 * xfns.c (x_set_cursor_color): Get color reference counts right.
8073
8074 * xterm.c (x_copy_color): New function.
8075 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
8076
8077 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
8078 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
8079 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
8080 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
8081 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
8082 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
8083 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
8084 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
8085 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
8086 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
8087
11fd416e
GM
8088 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
8089 names for handling per-buffer variables.
d9c545da
GM
8090
8091 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
8092 instead of MAX_BUFFER_LOCAL_VARS.
8093 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
8094
8095 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
8096
88faab89
GM
8097 * xfns.c (x_specified_cursor_type): New function.
8098 (x_set_cursor_type): Use it.
8099
8100 * buffer.h (struct buffer): Add cursor_type.
8101
d80f42b7
SM
81022000-03-26 Stefan Monnier <monnier@cs.yale.edu>
8103
8104 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 8105 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 8106 opcode.
d80f42b7
SM
8107 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
8108 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
8109 executing it as well as when popping it off the stack to find infinite
8110 loops in non-greedy repetition operators.
8111
89e80928
GM
81122000-03-26 Gerd Moellmann <gerd@gnu.org>
8113
3d4ff2dd
GM
8114 * doc.c (Qfunction_documentation): New variable.
8115 (syms_of_doc): Initialize Qfunction_documentation.
8116 (Fdocumentation): If FUNCTION is a symbol with non-nil
8117 `function-documentation' property, return a documentation derived
8118 from that.
8119
bd96bd79
GM
8120 * buffer.c (syms_of_buffer): Add default-cursor-type.
8121 (init_buffer_once): Don't let cursor_type have a local value
8122 in every buffer.
8123
19d1bc27
GM
8124 * xterm.c (x_display_and_set_cursor): Choose cursor depending
8125 on buffer-local value of cursor_type.
8126 (x_draw_bar_cursor): Add parameter WIDTH.
8127
8128 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
8129 (init_buffer_once): Set default cursor_type value to t.
8130 Mark cursor_type as local everywhere.
8131 (syms_of_buffer): New per-buffer variable cursor-type.
8132
89e80928
GM
8133 * buffer.h (struct buffer): Remove member local_var_flags,
8134 add local_flags.
8135 (MAX_BUFFER_LOCAL_VARS): New macro.
8136 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
8137 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
8138 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
8139 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
8140
8141 * print.c (print_object): Use new macros for per-buffer
8142 variables.
8143
8144 * category.c (Fset_category_table): Use new macros for per-buffer
8145 variables.
8146
8147 * buffer.c (buffer_permanent_local_flags): Make a char array.
8148 (max_buffer_local_idx): New variable.
8149 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
8150 for new handling of per-buffer variables.
8151 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
8152 (init_buffer_once): Initialize per-buffer vars differently.
8153 Set max_buffer_local_idx.
8154
8155 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
8156 variables.
8157
8158 * lread.c (defvar_per_buffer): Use new macros for per-buffer
8159 variables.
8160
8161 * data.c (do_symval_forwarding, store_symval_forwarding)
8162 (find_symbol_value, set_internal, default_value, Fset_default)
8163 (Fkill_local_variable, Flocal_variable_p): Use new macros for
8164 per-buffer variables.
8165
8166 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
8167
9a0dd3dc
GM
81682000-03-24 Gerd Moellmann <gerd@gnu.org>
8169
b68c375f
GM
8170 * xterm.c (x_term_init): Unblock input around call1 of
8171 Qvendor_specific_keysyms.
8172
9a0dd3dc
GM
8173 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
8174 (find_defun_start): Consider an open parenthesis in column 0
8175 a defun start only if open_paren_in_column_0_is_defun_start is set.
8176 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
8177
7973e637
SM
81782000-03-24 Stefan Monnier <monnier@cs.yale.edu>
8179
8180 * eval.c (Fautoload): Add entry in load-history (if after dump).
8181 * lread.c (load-history): Update docstring.
8182
39210e90
GM
81832000-03-24 Gerd Moellmann <gerd@gnu.org>
8184
8185 * indent.c (Fvertical_motion): Always use the current buffer.
8186 Temporarily change the window's buffer, if necessary.
8187
72db3ab5
GM
81882000-03-23 Gerd Moellmann <gerd@gnu.org>
8189
8190 * xterm.c (fast_find_position): Make sure not to consider rows
8191 not visible in the window.
8192
990b2375
SM
81932000-03-22 Stefan Monnier <monnier@cs.yale.edu>
8194
8195 * regex.c (enum syntaxcode): Provide default for non-Emacs.
8196 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
8197
ff4df011
JR
81982000-03-22 Jason Rumney <jasonr@gnu.org>
8199
8200 * w32menu.c (single_submenu): Set help string to NULL if none.
8201 (w32_menu_show): Set help string correctly.
8202 (add-menu-item): Set help string in MIIM_DATA for menu item.
8203 Load SetMenuItemInfoA explicitly.
8204 (w32_menu_display_help): New function.
427ec082 8205
ff4df011
JR
8206 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
8207 (QCdata): Moved to xdisp.c.
8208
8209 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
8210 (Vw32_charset_to_codepage_alist): Removed.
8211 (Vw32_charset_info_alist): New variable.
8212 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
8213 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
8214 greek, hebrew, thai, johab, mac, unicode]): New symbols.
8215 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
8216 with TODO comment.
8217 (w32_codepage_for_font): Use Vw32_charset_info_alist.
8218 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
8219 Define Vw32_charset_info_alist and w32_charset symbols.
8220
82212000-03-22 Jason Rumney <jasonr@gnu.org>
8222
8223 * makefile.nt (w32bdf.obj): Update dependencies.
8224
8225 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
8226
8227 * w32fns.c: Include fontset.h after dispextern.h.
8228 (Fx_create_frame): Do not create fontset.
8229 (w32_load_system_font): Doc fix.
8230 (Fx_close_connection): Free full_name if it is not shared.
8231
8232 * w32term.c: Include fontset.h after dispextern.h.
8233 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
8234 updated.
8235 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
8236 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
8237 (w32_font_is_double_byte): New function, needs body.
8238 (x_append_glyph): Set glyph->glyph_not_available_p.
8239 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
8240 it->charset. If it->multibyte_p is zero and it->c is a multibyte
8241 character, convert it to a unibyte character.
8242 (struct glyph_string): Delete member `charset'.
8243 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
8244 calculating it is found.
8245 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
8246 the case that per char metric is not available correctly.
8247 (x_fill_glyph_string): Handle the case that the specific glyph is
8248 not available correctly.
8249 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
8250 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
8251 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
8252 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
8253 fontset. Don't call FS_LOAD_FONT.
8254
439d5cb4
KR
82552000-03-22 Ken Raeburn <raeburn@gnu.org>
8256
8257 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
8258 (INT_LISPLIKE): New macro.
8259 (NULL_INTERVAL_P): Use it.
8260 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
8261 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
8262 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
8263
8264 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
8265 explicit references to "parent" field of struct interval and
8266 associated unclean type conversions.
8267 * intervals.c (create_root_interval, root_interval, rotate_right,
8268 rotate_left, balance_possible_root_interval, split_interval_right,
8269 split_interval_left, interval_start_pos, find_interval,
8270 next_interval, previous_interval, update_interval,
8271 adjust_intervals_for_insertion, delete_node, delete_interval,
8272 adjust_intervals_for_deletion, merge_interval_right,
8273 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
8274 copy_intervals_to_string): Likewise.
8275 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
8276 Likewise.
8277 * syntax.c (update_syntax_table): Likewise.
8278
8279 * intervals.c (reproduce_tree_obj): New function, like
8280 reproduce_tree but takes a Lisp_Object for the parent. Declare
8281 with prototype.
8282 (graft_intervals_into_buffer): Use it when appropriate.
8283 (reproduce_tree): Declare with prototype.
8284 (balance_possible_root_interval): Check that the parent is a lisp
8285 object before trying to examine its type.
8286
ee1c5b21
GM
82872000-03-22 Gerd Moellmann <gerd@gnu.org>
8288
8289 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
8290 as strings only if both are known to be strings.
8291
8292 * s/openbsd.h (LIBS_TERMCAP): Undef.
8293
1fb352e0
SM
82942000-03-21 Stefan Monnier <monnier@cs.yale.edu>
8295
8296 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
8297 definitions for non-Emacs compilation.
8298 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
8299 outside of `#ifdef emacs'.
8300 (print_partial_compiled_pattern): Update.
8301 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
8302 (re_compile_fastmap): Merge handling of charset and charset_not (for
8303 emacs and non-emacs compilation as well).
8304 Similarly for (not)categoryspec and (not)syntaxspec.
8305 Don't use the fastmap when reaching `anychar' since the added
8306 complexity is not justified.
8307 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
8308 and (not)syntaxspec. Merge (not)categoryspec.
8309
fdaa1f77
KH
83102000-03-22 Kenichi Handa <handa@etl.go.jp>
8311
ff1a0d8e
KH
8312 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
8313 FACE_FOR_CHAR): Define them differently for the configuration of
8314 --without-x.
fdaa1f77 8315
d152fb46
DL
83162000-03-21 Dave Love <fx@gnu.org>
8317
8318 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
8319 doc string.
8320
d2cafc8c
GM
83212000-03-21 Gerd Moellmann <gerd@gnu.org>
8322
8323 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
8324 (lface_fully_specified_p): Don't check contents of
8325 LFACE_FONT_INDEX because that attribute is optional.
8326 (realize_x_face): Remove now unwarranted xassert.
8327
9111d4b5
KH
83282000-03-21 Kenichi HANDA <handa@etl.go.jp>
8329
8330 The following changes are to make font selection based on
8331 characters, not charset. In addition, they recover fontset
8332 facilities while utilizing the new font selection mechanism.
8333
6c4bfdc0
KH
8334 * Makefile.in (fontset.o): Depend on dispextern.h.
8335
8336 * alloc.c (mark_face_cache): Don't mark face->registry.
8337
9111d4b5
KH
8338 * dispextern.h (struct glyph): New member glyph_not_available_p.
8339 Use 22 bits for face_id.
8340 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
8341 (struct face): Delete member registry, new member ascii_face.
8342 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
8343 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
8344 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
8345 (struct it): Delete member charset, new member
8346 glyph_not_available_p.
8347
8348 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
8349 (struct fontset_info, struct fontset_data): Structs removed.
8350 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
8351 Vglobale_fontset_alist, font_idx_temp): Externs removed.
8352 (fs_load_font, fs_query_fontset): Adjusted for new argument.
8353 (fs_free_face_fontset, fontset_font_pattern,
8354 face_suitable_for_char_p, face_for_char,
8355 make_fontset_for_ascii_face): Extern them.
8356 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
8357 (FS_LOAD_FACE_FONT): New macro.
8358
8359 * fontset.c: All codes rewritten or adjusted for the change of
8360 fontset implementation. Now fontset is represented by char table.
8361 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
8362 removed.
8363 (my_strcasecmp): Function removed.
8364 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
8365 variables.
8366 (AREF, ASIZE): New macros.
8367 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
8368 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
8369 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
8370 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
8371 fontset_id_valid_p, font_family_registry, fontset_name,
8372 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
8373 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
8374 New functions.
8375 (fs_load_font): New arg FACE. Caller changed.
8376 (fs_query_fontset): Argument changed. Caller changed.
8377 (Fquery_fontset): call fs_query_fontset.
8378 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
8379 Functions removed.
8380 (clear_fontset_elements, check_registry_encoding,
8381 check_fontset_name): New functions.
8382 (syms_of_fontset): Set char-table-extra-slots property of fontset
8383 to 3. Staticpro and initialize Vfontset_table and
8384 Vdefault_fontset. Defsubr fontset_font and fontset_list.
8385
8386 * frame.h (struct frame): Member `fontset_data' removed.
8387 (FRAME_FONTSET_DATA): Macro removed.
8388
8389 * frame.c (make_frame): Don't allocate f->fontset_data.
8390 (Fdelete_frame): Don't free f->fontset_data.
8391
6c4bfdc0
KH
8392 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
8393
9111d4b5
KH
8394 * xdisp.c (charset_at_position): Function removed.
8395 (init_iterator): Don't set member charset of struct `it'.
8396 (handle_face_prop, reseat_to_string, set_iterator_to_next,
8397 next_element_from_display_vector, insert_left_trunc_glyphs):
8398 Likewise.
8399 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
8400 FACE_FOR_CHARSET.
8401 (get_next_display_element, append_space,
8402 extend_face_to_end_of_line): Likewise.
8403
8404 * xfaces.c (Qx_charset_registry, Vface_default_registry):
8405 Variables removed.
8406 (clear_font_table, frame_update_line_height, load_face_font):
8407 Adjusted for the change of fontset implementation.
8408 (load_face_fontset_font): Function removed.
8409 (pixel_point_size): New function.
8410 (font_list): Argument type changed. Caller changed.
8411 (LFACE_FONT): New macro.
8412 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
8413 (set_lface_from_font_name): Type of arg FONTNAME is changed to
8414 Lisp_Object. Determine the font name by actually loading a font
8415 by the specified pattern. Set LFACE_FONT (lface) to the specified
8416 pattern. Even if a font is not found, don't try alternatives.
8417 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
8418 (set_font_frame_param): If `font' is specified in lface, use it.
8419 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
8420 (lface_same_font_attributes_p): Likewise.
8421 (make_realized_face): Arguent changed. Caller changed. Set
8422 face->ascii_face to face itself.
8423 (free_realized_face): Free face->fontset if face is for ASCII.
8424 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
8425 deduce_unibyte_registry, x_charset_registry): Functions removed.
8426 (free_realized_multibyte_face): New function.
8427 (lookup_face, lookup_named_face, lookup_derived_face): Argument
8428 changed. Caller changed.
8429 (try_font_list): Argument type changed.
8430 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
8431 (choose_face_font): Argument changed. Handle fontset properly.
8432 (choose_face_fontset_font): Function removed.
8433 (realize_default_face, realize_named_face): Don't remove the
8434 former face here.
8435 (realize_face): Argument changed. Caller changed. Remove face
8436 with the arg former_face_id in advance. Load font for the new
8437 face.
8438 (realize_x_face): Argument changed. Caller changed. For a
8439 multibyte character, share fontset with base_face. For a single
8440 byte character, make a new realized fontset. Don't load a font
8441 here.
8442 (realize_tty_face): Argument changed. Caller changed.
8443 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
8444 (face_at_buffer_position): Don't check multibyte_p for returning
8445 DEFAULT_FACE_ID.
8446 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
8447 FACE_SUITABLE_FOR_CHARSET_P.
8448 (syms_of_xfaces): Remove code for Qx_charset_registry and
8449 Vface_default_registry.
8450
6c4bfdc0
KH
8451 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
8452 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
8453 (x_per_char_metric): Don't try FONT->default_char. Even if
8454 pcm->width is zero, glyph bits may exist.
8455 (x_encode_char): Always initialize char2b->byte1.
8456 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
8457 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
8458 changed.
8459 (x_append_glyph): Set glyph->glyph_not_available_p.
8460 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
8461 it->charset. Handle the case that per char metric is not
8462 available. If it->multibyte_p is zero and it->c is a multibyte
8463 character, convert it to a unibyte character.
8464 (struct glyph_string): Delete member `charset'.
8465 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
8466 the case that per char metric is not available correctly.
8467 (x_fill_glyph_string): Handle the case that the specific glyph is
8468 not available correctly.
8469 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
8470 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
8471 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
8472 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
8473 fontset. Don't call FS_LOAD_FONT.
8474
8475 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
8476 (x_create_tip_frame): Likewise.
8477 (Fx_close_connection): Free full_name of font_info.
8478
8479 * fns.c (optimize_sub_char_table): New function.
8480 (Foptimize_char_table): New function.
8481 (syms_of_fns): Defsubr Soptimize_char_table.
8482
b33dd3b0
GM
84832000-03-20 Gerd Moellmann <gerd@gnu.org>
8484
8485 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
8486 only if buffer is displayed in some window.
8487
8488 * xdisp.c (handle_single_display_prop): Initialize local `value'.
8489 (try_window_reusing_current_matrix): Don't call scroll run
8490 function if run's current and desired position are the same;
8491 this prevents cursor flickering.
8492
4e8a9132
SM
84932000-03-19 Stefan Monnier <monnier@cs.yale.edu>
8494
8495 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
8496
8497 * regex.c (RE_STRING_CHAR): New macro.
8498 (GET_CHAR_AFER_2): Remove.
8499 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
8500 (enum re_opcode_t): Remove on_failure_jump_exclusive.
8501 (print_partial_compiled_pattern, re_compile_fastmap)
8502 (re_match_2_internal): Remove on_failure_jump_exclusive.
8503 (regex_compile): Turn optimizable P+ loops into PP*, so that the
8504 optimization only need to work for * (ie. can use of_keep_string_jump).
8505 Remove the special case for .*\n since it is now covered by the general
8506 optimization.
8507 (re_search_2): Don't bother with `room'.
8508 (skip_one_char): New function.
8509 (skip_noops): Simplify since `memory' is not needed any more.
8510 (mutually_exclusive_p): Restructure slightly to use `switch' and
8511 add handling for "all" remaining cases.
8512 (re_match_2_internal): Change on_failure_jump_smart to use
8513 on_failure_keep_string_jump (and redirect the end-of-loop jump)
8514 rather than on_failure_jump_exclusive.
8515
2136fdd4
GM
85162000-03-19 Gerd Moellmann <gerd@gnu.org>
8517
8518 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
8519 number of bits per RGB because it's everywhere used as the depth
8520 of the visual.
8521
8522 * term.c (calculate_costs): Remove code dealing with X frames.
8523
18e21ce8 85242000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
8525
8526 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
8527
d7b511c4
GM
85282000-03-18 Gerd Moellmann <gerd@gnu.org>
8529
8530 * lread.c (read_integer): Unread the last char not consumed.
8531
16b5d424
GM
85322000-03-17 Gerd Moellmann <gerd@gnu.org>
8533
8534 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 8535 which are in the process of being deleted.
16b5d424 8536
1fa28578
GM
85372000-03-16 Gerd Moellmann <gerd@gnu.org>
8538
83488cce
GM
8539 * Makefile.in (mostlyclean): Add `*.core'.
8540 (clean): Add `bootstrap-emacs'.
8541
1fa28578
GM
8542 * lread.c (read_integer): New function.
8543 (read1): Support read syntax #o, #x, #b, #r.
8544
99633e97
SM
85452000-03-15 Stefan Monnier <monnier@cs.yale.edu>
8546
1fa28578
GM
8547 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
8548 make sure POINTER_TO_OFFSET gives the same value before and after
8549 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
8550 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
8551 (debug): Now only active if > 0 rather than if != 0.
8552 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
8553 (print_partial_compiled_pattern): Add missing `succeed' case. Use
8554 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
8555 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
8556 (store_op1, store_op2, insert_op1, insert_op2)
8557 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
8558 (group_in_compile_stack): Move to after its arg's types are
8559 declared and add a prototype.
99633e97 8560 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
8561 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
8562 wrapper.
99633e97 8563 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
8564 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
8565 indentation of the greedy-op and shy-group code.
99633e97
SM
8566 (at_(beg|end)line_loc_p): Fix argument's types.
8567 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
8568 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
8569 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
8570 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
8571 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
8572 QUIT unconditionally.
99633e97 8573
699238d9
GM
85742000-03-15 Gerd Moellmann <gerd@gnu.org>
8575
8576 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
8577 a sole completion.
8578
8579 * process.c (send_process): Add a hint that the function
8580 can call Lisp code to its comment.
8581
8582 * lread.c (load_dangerous_libraries): New variable.
8583 (Vbytecomp_version_regexp): New variable.
8584 (safe_to_load_p): New function.
8585 (Fload): Handle files not compiled with Emacs specially.
8586 (syms_of_lread): New Lisp variable load-dangerous-libraries.
8587
34e23e5a
GM
85882000-03-14 Gerd Moellmann <gerd@gnu.org>
8589
9c763cca
GM
8590 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
8591
8592 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
8593 support functions only if HAVE_X11R6_XIM is defined.
8594 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
8595
8596 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
8597
8598 * xfns.c (X_I18N_INHIBITED): Don't define.
8599 (create_frame_xic): Remove conditional compilation on
8600 X_I18N_INHIBITED.
8601 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
8602
8603 * config.in (HAVE_X_I18N): Moved here from xterm.h.
8604 (HAVE_X11R6_XIM): Define.
8605
8606 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
8607
34e23e5a
GM
8608 * xterm.c (x_term_init): Add support for X resource `synchronous'.
8609 If set, call XSynchronize.
8610
66f0296e
SM
86112000-03-13 Stefan Monnier <monnier@cs.yale.edu>
8612
34e23e5a
GM
8613 * regex.c: Declare a new type `re_char' used throughout the code
8614 for the string char type. It's `const unsigned char' to match the
8615 rest of Emacs. Consistently make sure all pointers to strings use
8616 it and make sure all pointers into the pattern use `unsigned
8617 char'.
66f0296e 8618 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
8619 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
8620 code duplication.
66f0296e
SM
8621
8622 * charset.h (GET_CHAR_AFTER_2): Remove.
8623 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
8624
854a025c
KR
86252000-03-12 Ken Raeburn <raeburn@gnu.org>
8626
8627 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
8628 variable before the invocation of YMF_PASS_LDFLAGS, in case both
8629 of them try to use backquotes.
8630
b9d2c7e2
DL
86312000-03-12 Dave Love <fx@gnu.org>
8632
8633 * unexelf.c: Restore changes of 1999-10-19.
8634 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
8635 fix its type and alignment; copy it from current process.
8636
5e5dff44
GM
86372000-03-12 Gerd Moellmann <gerd@gnu.org>
8638
9b2f3c38
GM
8639 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
8640 has been found. Fix bug not computing timer's predecessor.
8641
427ec082 8642 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
8643 file name.
8644
e1cff360
GM
8645 * window.c (Fsave_window_excursion): Doc fix.
8646
5e5dff44
GM
8647 * xfns.c (x_defined_color): Rewritten to use
8648 x_allocate_nearest_color.
8649
e411ce4b
EZ
86502000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
8651
8652 * msdos.c (vga_installed): New function, code moved from
8653 dos_set_window_size.
8654 (Qbar, Qcursor_type, outside_cursor): New variables.
8655 (syms_of_msdos): Intern and staticpro them.
8656 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
8657 shape used outside Emacs when called for the first time.
8658 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
8659 cursor shape used outside Emacs.
8660 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
8661 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
8662 type has changed.
8663 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
8664 parameters specify the cursor. Make qreverse a global
8665 variable (renamed to Qreverse).
8666
80460654
GM
86672000-03-09 Gerd Moellmann <gerd@gnu.org>
8668
8669 * fns.c (Fy_or_n_p): Cancel busy-cursor.
8670
95cd4c40
SM
86712000-03-08 Stefan Monnier <monnier@cs.yale.edu>
8672
8673 This is a big redesign of failure-stack and register handling, prompted
8674 by bugs revealed when trying to add shy-groups. Overall, what happened
8675 is that loops are now structured a little differently, groups can be
8676 shy and the code is a little simpler.
8677
8678 * regex.h: Update the copyright.
8679 (RE_SHY_GROUPS): New value.
8680 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
8681 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
8682
80460654
GM
8683 * regex.c (enum re_opcode_t): Remove jump_past_alt,
8684 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
8685 on_failure_jump_(exclusive, loop and smart). Also fix the comment
8686 for (start|stop)_memory since they now only take one argument (the
8687 second has becomes unnecessary).
8688 (print_partial_compiled_pattern): Adjust for changes in
8689 re_opcode_t.
8690 (print_compiled_pattern): Use %ld to printf long ints and flush to
8691 make debugging a little easier.
95cd4c40
SM
8692 (union fail_stack_elt): Make the integer unsigned.
8693 (struct fail_stack_type): Add a `frame' element.
8694 (INIT_FAIL_STACK): Init `frame' as well.
8695 (POP_PATTERN_OP): New macro for re_compile_fastmap.
8696 (DEBUG_PUSH, DEBUG_POP): Remove.
8697 (NUM_REG_ITEMS): Remove.
8698 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
8699 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
8700 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 8701 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
8702 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
8703 macros.
8704 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
8705 address pushed is not the destination of the jump but the source
8706 of it instead.
95cd4c40
SM
8707 (NUM_FAILURE_ITEMS): Remove.
8708 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
8709 registers before the actual failure point). Don't hardcode any
8710 meaning for str==NULL anymore.
95cd4c40 8711 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
8712 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
8713 Remove.
95cd4c40
SM
8714 (REG_UNSET_VALUE): Use NULL (why not?).
8715 (compile_range): Remove declaration since it doesn't exist.
8716 (struct compile_stack_elt_t): Remove inner_group_offset.
8717 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
8718 (regex_grow_registers): Remove dead code.
8719 (FIXUP_ALT_JUMP): New macro.
80460654
GM
8720 (regex_compile): Add shy-groups Change loops to use
8721 on_failure_jump_smart&jump instead of
8722 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
8723 initial (dummy_failure_)jump. Remove c1_base (looks like unused
8724 variable to me). Use `jump' instead of `jump_past_alt' and don't
8725 bother with push_dummy_failure in alternatives since it is now
8726 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
8727 emacs' for (re)allocating the stack.
8728 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
8729 from loop when bufp->can_be_null rather than jumping to `done'.
8730 Avoid jumping backwards so as to ensure termination. Use
8731 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
8732 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 8733 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
8734 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
8735 improve mutually_exclusive_p to handle ".+\n".
8736 (lowest_active_reg, highest_active_reg,
8737 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
8738 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
8739 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
8740 variables. Push register (in `start_memory') on the stack rather
8741 than storing it in old_reg(start|end). Remove the cycle detection
8742 from `stop_memory', replaced by the use of on_failure_jump_loop
8743 for greedy loops. Add code for the new on_failure_jump_<foo>.
8744 Remove ad-hoc code in `on_failure_jump' to push more registers in
8745 the case of a loop. Take out code from `maybe_pop_jump' into
8746 separate functions and adapt it to the semantics of
8747 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
8748 and push_dummy_failure. Remove dummy_failure handling and
8749 handling of `failures to jump to on_failure_jump' (this last one
8750 was already dead code, it seems).
8751 (group_match_null_string_p, alt_match_null_string_p)
8752 (common_op_match_null_string_p): Remove.
95cd4c40 8753
7397acc4
DL
87542000-03-08 Dave Love <fx@gnu.org>
8755
8756 * config.in: Don't depend on __STDC__ for volatile.
8757 Add POINTER_TYPE, PTR, PROTOTYPES.
8758
8759 * hftctl.c, strftime.c: Use PROTOTYPES.
8760 * eval.c (find_handler_clause): Likewise.
8761
8762 * mem-limits.h: Use POINTER_TYPE.
8763
8764 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
8765 (memory_warnings): Declare using POINTER_TYPE.
8766
5e91ff9e
GM
87672000-03-08 Gerd Moellmann <gerd@gnu.org>
8768
feab4fba
GM
8769 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
8770
25edb08f
GM
8771 * xdisp.c (display_echo_area): Temporarily inhibit garbage
8772 collection.
8773
5e91ff9e
GM
8774 * xfns.c: Remove obsolete code in #if 0.
8775 (Fx_focus_frame): New function.
8776
a735b7e1
KH
87772000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
8778
8779 * coding.c (coding_category_name): Add coding-category-utf-8,
8780 coding-category-utf-16-be, coding-category-utf-16-le.
8781 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
8782 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
8783 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
8784 (detect_coding_utf_8): New function.
8785 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
8786 UTF_16_LOW_SURROGATE_P): New macros.
8787 (detect_coding_utf_16): New function
8788 (detect_coding_mask): When priorities are specified, skip any
8789 categories that have `nil' coding-system. Fix bug of returning
8790 wrong mask when PRIORITIES is specified and detect_coding_XXX()
8791 returns a mask not set in PRIORITIES.
8792 (detect_eol_type_in_2_octet_form): New function.
8793 (detect_eol): selects detect_eol_type_XXX to call according to
8794 cooding->category_idx.
8795 (detect_coding_system): Remove `nil' coding-system in the result.
8796 (Fupdate_coding_systems_internal): Update all coding-categories.
8797
8798 * coding.h (CODING_CATEGORY_IDX_UTF_8,
8799 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
8800 macros.
8801 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
8802 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
8803 CODING_CATEGORY_IDX_UTF_16_LE.
8804 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
8805 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
8806 (CODING_CATEGORY_MASK_ANY): Include the above macros.
8807 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
8808
9994cc69
GM
88092000-03-07 Gerd Moellmann <gerd@gnu.org>
8810
e9b4e5ff
GM
8811 * doc.c (Fdocumentation_property): If value is not a string,
8812 and doesn't refer to etc/DOC, evaluate it to obtain a string.
8813
f7daf1e1
GM
8814 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
8815 close the display with XtCloseDisplay. This caused a bus error
8816 on OpenWindows.
8817
9994cc69
GM
8818 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
8819 complete but not unique.
8820
4336c705
GM
88212000-03-06 Gerd Moellmann <gerd@gnu.org>
8822
18bb0684
GM
8823 * process.c (send_process): Remove local variable `procname' that
8824 might become invalid when a GC happens. Instead, access the
8825 process name slot directly.
8826
4336c705
GM
8827 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
8828 orig_height if set.
8829
8830 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
8831 orig_height if set.
8832
515d0d0e
EZ
88332000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
8834
8835 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
8836 glyph matrices have been freed.
8837
100b3cbb
GM
88382000-03-05 Gerd Moellmann <gerd@gnu.org>
8839
50df5e5a 8840 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 8841 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
8842
8843 * xfns.c (QCdata): Moved to xdisp.c.
8844
8845 * xdisp.c (QCdata): Moved here from xfns.c.
8846 (syms_of_xdisp): Initialize QCdata.
8847
8848 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
8849
8850 * window.c (coordinates_in_window): Use
8851 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
8852 FRAME_INTERNAL_BORDER_WIDTH.
8853
100b3cbb 8854 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 8855 it is obviously invalid.
100b3cbb
GM
8856
8857 * xterm.c (x_term_init): Create a colormap if not using the
8858 default visual.
8859
8860 * xterm.h (select_visual): Change prototype.
8861
8862 * xfns.c (select_visual): Rewritten. Recognize user-specified
8863 visual classes.
8864 (visual_classes): New variable.
8865
64d739c4
GM
88662000-03-04 Gerd Moellmann <gerd@gnu.org>
8867
8868 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
8869 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
8870 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
8871 (x_decode_color): Don't handle allocation of white and black
8872 specially.
8873 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
8874 XtNcolormap resources.
8875 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
8876 (Fx_create_frame): Initialize color members of x_output structure.
8877 (xpm_load): Pass colormap to XPM lib.
8878
8879 * xfaces.c (x_free_colors): Access colormap of frame using
8880 FRAME_X_COLORMAP. Be paranoid about freeing black and white
8881 when default colormap is used.
8882
8883 * xterm.c (x_term_init): Set Colormap member of x_display_info
8884 structure. Copy colormap if resource `privateColormap' is
8885 specified (PseudoColor only).
8886 (x_setup_relief_color): Access colormap of frame using
8887 FRAME_X_COLORMAP.
8888
8889 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
8890 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
8891
c3cee013
JR
88922000-03-04 Jason Rumney <jasonr@gnu.org>
8893
8894 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
8895 other non-platform-specific equivalents.
64d739c4 8896 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
8897 specific functions and macros as their w32 equivalents where
8898 non-platform-specifics are not available.
8899 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
8900 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
8901 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
8902 (frame_update_line_height): Use macros to access f->output_data.
8903 (defined_color): Remove FIXME comments; fixed.
8904 (x_face_list_fonts, prepare_face_for_display): Put X specifics
8905 into #ifdef blocks. Add WINDOWSNT blocks.
8906 (Fx_list_fonts): Use macros for accessing font data.
8907 (set_lface_from_font_name): Different default fonts for X and
8908 WINDOWSNT.
8909 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
8910 scalable for backward compatibility.
64d739c4 8911 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
8912 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
8913
64d739c4 8914 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
8915 syms_of_w32faces.
8916
8917 * makefile.nt (w32faces.obj): Remove.
8918 (xfaces.obj): Add.
8919
807cc41c
JR
89202000-03-03 Jason Rumney <jasonr@gnu.org>
8921
8922 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
8923 correct parameters.
8924
0007072a
KR
89252000-03-03 Ken Raeburn <raeburn@gnu.org>
8926
8927 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
8928 standard ELF definitions here if the system header does not.
8929
71a6ba55
GM
89302000-03-03 Gerd Moellmann <gerd@gnu.org>
8931
8932 * xterm.c (PER_CHAR_METRIC): Removed.
8933 (x_per_char_metric_1, x_default_char): New functions.
8934 (x_per_char_metric): If font's default char is invalid, return
8935 metrics of a suitably chosen usable default char.
8936 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
8937 char, replace occurrences of unprintable chars with a suitably
8938 chosen usable default char.
71a6ba55 8939
900fa1f1
GM
89402000-03-02 Gerd Moellmann <gerd@gnu.org>
8941
42f55fe0
GM
8942 * xterm.c (note_mouse_highlight): Return quickly if frame's
8943 glyph matrices have been freed.
8944
8945 * dispnew.c (free_glyphs): Block input while freeing matrices.
8946
900fa1f1
GM
8947 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
8948
8949 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
8950 x_free_colors.
8951
8952 * dispextern.h (x_free_colors): Add prototype.
8953
8954 * xfaces.c (x_free_colors): New function.
8955 (unload_color, free_face_colors): Use it.
8956
2f950292
EZ
89572000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
8958
8959 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
8960
8961 * window.c [MSDOS]: Include msdos.h.
8962
54d04320
DL
89632000-03-02 Dave Love <fx@gnu.org>
8964
8965 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
8966
8967 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
8968 set C_OPTIMIZE_SWITCH for gcc.
8969
0ba93ac4
KH
89702000-03-02 Kenichi Handa <handa@etl.go.jp>
8971
8972 * coding.c (coding_save_composition): Be sure to allocate
8973 composition data area in coding even if there's no composition in
8974 the current run.
8975
a2bc11d4
JR
89762000-03-01 Jason Rumney <jasonr@gnu.org>
8977
8978 * w32term.c: Equivalent changes to those made to xterm.c on
8979 2000-02-25 and 2000-02-24.
8980
8981 * w32fns.c: Equivalent changes to those made to xfns.c on
8982 2000-02-25 and 2000-02-21.
8983
8984 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
8985 correct line-end convention is followed.
8986
8987 * w32menu.c [HAVE_BOXES]: Remove #undef.
8988 (single_keymap_panes): Remove code for simulating checkmarks.
8989 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
8990 Remove code for drawing simulated checkmarks.
8991 (w32_menu_show): make unibyte help string correctly.
8992 (add_menu_item): draw standard Windows checkmarks. Draw radio
8993 buttons as radio buttons if possible.
8994
72d19d75
GM
89952000-03-01 Gerd Moellmann <gerd@gnu.org>
8996
2df636f4
GM
8997 * sysdep.c (start_of_text): Don't define this function for NetBSD
8998 with ELF.
8999
427ec082 9000 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
9001 Don't define.
9002 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
9003 (LINKER): Don't undef if __NetBSD__ is defined.
9004
9005 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
9006
9007 * fileio.c [__NetBSD__]: Define `unix'.
9008
72d19d75
GM
9009 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
9010
ed4d0512
GM
90112000-02-29 Gerd Moellmann <gerd@gnu.org>
9012
50b1039f
GM
9013 * atimer.c (start_atimer): Don't abort when timers are stopped.
9014 (append_atimer_lists): New function.
9015 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
9016 arbitrary lists of stopped and running atimers.
9017
ed4d0512
GM
9018 * atimer.c (cancel_atimer): Handle canceling an atimer when
9019 some timers are stopped.
9020
9021 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
9022 after canceling it.
9023
9024 * fns.c (maybe_resize_hash_table): Handle case of new size
9025 coming out as being the same as old size.
9026
387023ee
JR
90272000-02-27 Jason Rumney <jasonr@gnu.org>
9028
9029 * makefile.nt: Add atimer.h to dependencies.
9030 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
9031 * w32console.c: Only disable window system features for dispextern.h
9032 (initialize_w32_display): Build a display info for the console.
9033 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
9034 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
9035 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
9036 as 2 button mice.
9037 * w32gui.h (struct W32FontStruct): Revert last change after change
9038 to xdisp.c.
9039 * w32menu.c (single_submenu): Set up help string.
9040 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
9041 (w32_dialog_show): Set up help string.
9042 * w32term.c (w32_display_info_for_display): Remove unused function.
9043 (w32_draw_bitmap): Use pre-built bitmaps.
9044 (w32_initialize_display_info): New function to initialize parts of
9045 display info that are common to both GUI and console frames.
9046 (w32_term_init): Use w32_initialize_display_info. Do not set
9047 Vw32_num_mouse_buttons here, as it is not called for console
9048 frames. Build bitmaps for indicating truncated lines etc.
9049 (x_delete_display): Destroy pre-built bitmaps.
9050 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
9051 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
9052
4516715a
DL
90532000-02-27 Dave Love <fx@gnu.org>
9054
9055 * lisp.h: Add a bunch of prototypes.
9056
171ca836
KH
90572000-02-26 Kenichi Handa <handa@etl.go.jp>
9058
9059 * keyboard.c (read_char): Set `usec' correctly.
9060
4013921d
KH
90612000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
9062
9063 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
9064 `lambda', set reg[RRR] to the map index.
9065 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
9066 reg[RRR] to 0. Otherwise, set it to -1.
9067
9244a058
GM
90682000-02-25 Gerd Moellmann <gerd@gnu.org>
9069
2df636f4 9070 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 9071
18e21ce8 90722000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 9073
f43d79c1
GM
9074 * fileio.c (Ffile_symlink_p): If result starts with a `/'
9075 and contains a `:', prepend `/:'.
9076
9077 * window.c (select_window_1): If selected_window is nil,
9078 don't "swap out" the buffer's point.
9079 (Fset_window_configuration): Set selected_window to nil
9080 before calling Fselect_window.
9081 (unshow_buffer): Don't set point in buffer from window's point
9082 if another more recently selected window also shows the buffer.
9083
bed0c171
GM
90842000-02-25 Gerd Moellmann <gerd@gnu.org>
9085
449c3c52
GM
9086 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
9087
f5b58615
GM
9088 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
9089 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
9090 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
9091 variables.
9092 (DEFAULT_BUSY_CURSOR_DELAY): New define.
9093 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
9094 (hide_busy_cursor): New functions.
9095 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
9096
9097 * minibuf.c (read_minibuf): Cancel busy-cursor.
9098
9099 * keyboard.c (command_loop_1): Call start_busy_cursor before
9100 Fcommand_execute and cancel_busy_cursor after it.
9101 (timer_check): Remove busy-cursor code.
9102 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
9103 cursor timer.
9104
9105 * process.c (wait_reading_process_input): Remove busy-cursor code.
9106
9107 * eval.c (Fsignal): Call cancel_busy_cursor instead of
9108 Fx_hide_busy_cursor.
9109
9110 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
9111 Remove prototyoes.
9112 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
9113
9114 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
9115
9116 * xterm.c (XTread_socket): Remove busy-cursor code.
9117
4eb8436f
GM
9118 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
9119 (build_frame_matrix_from_leaf_window): Put code handling
9120 glyph row's not being a slice of a frame row in #if 0.
9121 (sync_window_with_frame_matrix_rows): New function.
9122 (frame_row_to_window): New function.
9123 (mirror_line_dance): Handle copies between windows.
9124
3cb65b0e
GM
9125 * lread.c (Fload): Use `xfree' instead of `free'.
9126 (init_obarray): Use `xmalloc' instead of `malloc'.
9127
bed0c171
GM
9128 * window.c (Fset_window_buffer): Set WINDOW to the window
9129 after decoding.
2add4349
GM
9130 (coordinates_in_window): Take frame's internal border width
9131 into account.
bed0c171 9132
42088c12
GM
91332000-02-24 Gerd Moellmann <gerd@gnu.org>
9134
9135 * xterm.c (x_display_and_set_cursor): Display cursor of
9136 non-selected windows depending on the setting of
9137 cursor_in_non_selected_windows.
9138
9139 * xdisp.c (cursor_in_non_selected_windows): New variable.
9140 (syms_of_xdisp): DEFVAR_BOOL it.
9141
d1e103b2
GM
91422000-02-23 Gerd Moellmann <gerd@gnu.org>
9143
723e779c
GM
9144 * data.c (Fstring_to_number): If number is greater than what
9145 fits into an integer, return a float.
9146
d1e103b2
GM
9147 * eval.c (specbind): Remove references to
9148 keyword_symbols_constant_flag.
9149
9150 * data.c (keyword_symbols_constant_flag): Removed.
9151 (Fmakunbound, set_internal, syms_of_data): Remove references to
9152 keyword_symbols_constant_flag.
9153
9154 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
9155
214f877f
KH
91562000-02-23 Kenichi Handa <handa@etl.go.jp>
9157
9158 * syntax.c (multibyte_syntax_as_symbol): New variable.
9159 (syms_of_syntax): Declare it as a Lisp variable.
9160 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
9161 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
9162 nonzero, treat all multibyte characters as symbol.
42088c12 9163 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
9164 characters.
9165
130adcb7
EZ
91662000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
9167
3cb65b0e 9168 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 9169 a deleted frame.
130adcb7 9170
17cbbf95
GM
91712000-02-21 Gerd Moellmann <gerd@gnu.org>
9172
9173 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
9174
9175 * xfns.c (x_window_to_frame, x_any_window_to_frame)
9176 (x_non_menubar_window_to_frame): Check the busy-cursor window.
9177
beb0bc36
DL
91782000-02-21 Dave Love <fx@gnu.org>
9179
9180 * frame.c (Vmouse_position_function): New variable.
9181 (Fmouse_position): Use it.
9182 (syms_of_frame): Install it.
9183
9184 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
9185
1d92afcd
GM
91862000-02-20 Gerd Moellmann <gerd@gnu.org>
9187
9188 * fileio.c (Finsert_file_contents): Unbind the binding of
9189 standard-output done by temp_output_buffer_setup.
329eed9f
GM
9190
9191 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
9192 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
9193 (specbind, unbind_to): Handle most common case of non-constant
9194 symbol with trivial value specially.
9195
9196 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
9197
18e21ce8 91982000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
9199
9200 * data.c (Fmake_variable_buffer_local): Doc fix.
9201 Init found_for_buffer to 0.
9202 (Fmake_variable_frame_local): If the variable has already
9203 been buffer-local, set the check_frame field.
9204
1d4311c3
EZ
92052000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
9206
9207 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
9208 produced for CODING_MODE_LAST_BLOCK requires.
9209
2dc95ddd
DL
92102000-02-18 Dave Love <fx@gnu.org>
9211
9212 * keyboard.c (echo_keystrokes): Remove declaration.
9213 (Vecho_keystrokes) New variable.
9214 (read_char, record_menu_key, read_key_sequence): Use it to allow
9215 use of float value.
9216 (syms_of_keyboard): Change Vecho_keystrokes declaration.
9217
9218 * lread.c: Undef feature selection macros before defining.
9219
f0930f35
GM
92202000-02-18 Gerd Moellmann <gerd@gnu.org>
9221
9222 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
9223 for symbols other than the symbol in question.
9224
e3d4de90
DL
92252000-02-17 Dave Love <fx@gnu.org>
9226
9227 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
9228
0b378936
GM
92292000-02-17 Gerd Moellmann <gerd@gnu.org>
9230
d621caf7
GM
9231 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
9232
0b378936
GM
9233 * alloc.c (enum mem_type): Compile unconditionally.
9234
3b451f74
EZ
92352000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
9236
9237 * xfaces.c (tty_defined_color): Don't return faulire indication
9238 for unspecified-fg and unspecified-bg pseudo-colors.
9239
10689a01
GM
92402000-02-17 Gerd Moellmann <gerd@gnu.org>
9241
1216f5e4
GM
9242 * alloc.c (mark_object): Don't mark symbol names in pure space.
9243 (gc_sweep): Don't unmark symbol names in pure space.
9244
9245 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
9246 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
9247 [GC_MARK_STACK]: New defines.
427ec082 9248 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
9249 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
9250
9251 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
9252
9253 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
9254 allocate_buffer instead of xmalloc.
9255
9256 * alloc.c (toplevel): Include setjmp.h.
9257 (PURE_POINTER_P): New define.
9258 (enum mem_type) [GC_MARK_STACK]: New enumeration.
9259 (Vdead) [GC_MARK_STACK]: New variable.
9260 (lisp_malloc): Add parameter TYPE, call mem_insert if
9261 GC_MARK_STACK is defined.
9262 (allocate_buffer): New function.
427ec082 9263 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
9264 (free_float) [GC_MARK_STACK]: Set type to Vdead.
9265 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
9266 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
9267 (MEM_NIL) [GC_MARK_STACK]: New define.
9268 (struct mem_node) [GC_MARK_STACK]: New structure.
9269 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
9270 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
9271 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
9272 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
9273 (mark_stack) [GC_MARK_STACK]: New functions.
9274 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
9275 (clear_marks): Removed.
9276 (gc_sweep): Set free conses' car, free floats' type, free
9277 symbols' function to Vdead. Use lisp_free to free buffers.
9278 (init_alloc_once): Initialize Vdead.
9279 (survives_gc_p): Return non-zero for pure objects.
9280
9281 * alloc.c: Add comments throughout the file.
9282
2503c8b1
GM
9283 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
9284 that unblocks alarms.
9285
8389e1e2
GM
9286 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
9287 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
9288 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
9289
10689a01 9290 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 9291
bfc17d18
KH
92922000-02-17 Kenichi Handa <handa@etl.go.jp>
9293
4a09dee0
KH
9294 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
9295 avoid infinite error signaling. Allocate sufficient memory for
9296 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 9297
2b927d02
SM
92982000-02-17 Stefan Monnier <monnier@cs.yale.edu>
9299
9300 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
9301 depends on the previous behavior.
9302
b49cb764
GM
93032000-02-16 Gerd Moellmann <gerd@gnu.org>
9304
9305 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
9306
99e95407
GM
93072000-02-15 Gerd Moellmann <gerd@gnu.org>
9308
9309 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
9310
9311 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 9312 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
9313 write(2).
9314
6ffd3cf7
RS
93152000-02-15 Richard M. Stallman <rms@gnu.org>
9316
9317 * data.c (set_internal): Don't make variable buffer-local
9318 if within a let-binding for the same buffer.
9319 (let_shadows_buffer_binding_p): New function.
9320
9321 * eval.c (specbind): For buffer-local value,
9322 record the current buffer also.
9323 (unbind_to): Cope with that change.
9324
cad53475
GM
93252000-02-15 Gerd Moellmann <gerd@gnu.org>
9326
9327 * window.c (Fsave_window_excursion): Doc fix.
9328
1aa963c8
SM
93292000-02-15 Stefan Monnier <monnier@cs.yale.edu>
9330
9331 * syntax.c (back_comment): Make sure we only consider comment-starters
9332 of the relevant style and return -1 in case of a failure to find the
9333 beginning of the comment.
9334 (Fforward_comment): If back_comment fails, go back to the position just
9335 after the comment-end.
9336 (scan_lists): Add comment describing a very minor bug.
9337
b9b84fd3
SM
93382000-02-14 Stefan Monnier <monnier@cs.yale.edu>
9339
9340 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
9341 `completion-regexp-list' in the docstring.
9342
3a28db80
DL
93432000-02-14 Dave Love <fx@gnu.org>
9344
9345 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
9346
fb4a568d
SM
93472000-02-14 Stefan Monnier <monnier@cs.yale.edu>
9348
9349 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
9350 to Emacs' syntax. Also fix the comment about set/not-set meanings
9351 since Emacs syntax is not the value 0 any more.
9352 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
9353 since it's now part of RE_SYNTAX_EMACS.
9354
1063ebb5
DL
93552000-02-12 Dave Love <fx@gnu.org>
9356
9357 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
9358 Alpha.
9359
fb07a302
GM
93602000-02-12 Gerd Moellmann <gerd@gnu.org>
9361
9362 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
9363
aaf2320c
DL
93642000-02-12 Dave Love <fx@gnu.org>
9365
9366 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
9367
9368 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
9369 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
9370 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
9371
9372 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
9373
9374 * s/nextstep.h: Don't define HAVE_ALLOCA.
9375
9376 * config.in: Add vfork bits.
9377
eedf8bde
GM
93782000-02-12 Gerd Moellmann <gerd@gnu.org>
9379
9380 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
9381 unwind function to undo the effect of stopping atimers.
9382
9383 * keyboard.c (bind_polling_period): Stop all timers except
9384 poll_timer.
9385
9386 * atimer.c (stopped_atimers): New variable.
9387 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
9388 New functions.
9389
9390 * atimer.h (stop_other_atimers, run_all_atimers)
9391 (unwind_stop_other_atimers): Add function prototypes.
427ec082 9392
eedf8bde
GM
9393 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
9394
8476c2f8
KR
93952000-02-11 Ken Raeburn <raeburn@gnu.org>
9396
9397 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
9398 library may depend on jpeg.
9399 (atimer.o): Depends on atimer.c.
9400
0e85e4a3
KH
94012000-02-11 Kenichi Handa <handa@etl.go.jp>
9402
9403 * insdel.c (del_range_1): Call update_compositions.
9404 (del_range_both): Call update_compositions just once..
9405
97fa0cc8
DL
94062000-02-10 Dave Love <fx@gnu.org>
9407
9408 * xfns.c (create_frame_xic): Fix initialization of automatic
9409 aggregates for pcc.
9410
25566a3c
KH
94112000-02-09 Kenichi Handa <handa@etl.go.jp>
9412
9413 * ccl.c (CCL_MAKE_CHAR): New macro.
9414 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
9415 registers by CCL_MAKE_CHAR before calling translate_char.
9416 <CCL_TranslateCharacterConstTbl> Likewise.
9417
69da54ba
DL
94182000-02-08 Dave Love <fx@gnu.org>
9419
9420 * lread.c (__EXTENSIONS__): Define.
9421
f7136ee8
GM
94222000-02-08 Gerd Moellmann <gerd@gnu.org>
9423
9424 * puresize.h (BASE_PURESIZE): Increase to 650000.
9425
7768790b
EZ
94262000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
9427
9428 * msdos.c (XMenuActivate): Turn off the cursor after displaying
9429 the help message.
9430
38fd211b
EZ
94312000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
9432
9433 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
9434 md, mh, mb, mr, and me to the fake termcap entry.
9435
66e4690f
KR
94362000-02-06 Ken Raeburn <raeburn@gnu.org>
9437
9438 * sound.c (sound_cleanup): Don't call device close routine if the
9439 function pointer is null.
9440
a75dfea0
AI
94412000-02-06 Andrew Innes <andrewi@gnu.org>
9442
9443 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
9444 around image definitions and prototypes.
9445 (gamma_correct) [WINDOWSNT]: New prototype.
9446
9447 * w32term.c (x_make_frame_visible): Replace call to
9448 input_poll_signal with poll_for_input.
9449
9450 * window.c [WINDOWSNT]: Include w32term.h.
9451
9452 * xdisp.c [WINDOWSNT]: Include w32term.h.
9453
9454 * makefile.nt: Add dependencies on w32gui.h.
9455 (OBJ1): Include atimer.obj.
9456 ($(BLD)\atimer.obj): New dependency rule.
9457
9458 * w32.c (sigmask): New function (does nothing).
9459 (sigunblock): Ditto.
9460
9461 * frame.c [WINDOWSNT]: Include w32term.h.
9462
9463 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
9464
9465 * lread.c (syms_of_lread): Fix literal newlines.
9466
9467 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
9468 the string constant limit (2048 bytes) in MSVC.
9469 (main): Ditto.
9470
59ddecde
GM
94712000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
9472
9473 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
9474 area.
9475 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
9476 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
9477 dispatch the event.
9478
07590973
DL
94792000-02-04 Dave Love <fx@gnu.org>
9480
9481 * fileio.c: Remove some unused vars.
9482 (_GNU_SOURCE): Define (for euidaccess).
9483
9484 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
9485
9486 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
9487 gcpro1, gcpro2.
9488 (read_minibuf): Deal with allow_props correctly.
9489
649351f9
EZ
94902000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
9491
9492 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
9493
66e4690f 94942000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
9495
9496 * search.c (compile_pattern): If a cache entry has a nil regexp,
9497 fill in that entry instead of clobbering a previously cached
9498 string regexp.
9499
66e4690f 95002000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
9501
9502 * puresize.h (BASE_PURESIZE): Increase to 610000.
9503
d240a249
GM
95042000-02-02 Gerd Moellmann <gerd@gnu.org>
9505
9506 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
9507 can GC.
9508
ca91fb26
KH
95092000-02-02 Kenichi Handa <handa@etl.go.jp>
9510
25660570
KH
9511 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
9512 instead of incrementing ic directly.
9513 <CCL_WriteExprConst> Likewise.
9514 <ccl_set_expr>: Set ic to jump_address.
9515
ca91fb26
KH
9516 * fileio.c (e_write): Fix the handling of
9517 CODING_FINISH_INSUFFICIENT_SRC.
9518
2ede9689
DL
95192000-02-01 Dave Love <fx@gnu.org>
9520
9521 * editfns.c (Fpropertize): Doc fix.
9522
9523 * process.c (Fstart_process): Doc fix.
9524
9525 * eval.c: Fix various doc strings not to duplicate information
9526 from help-manyarg-func-alist.
9527
9528 * window.c (Fset_window_margins): Don't make interactive. Doc
9529 fix.
9530
9531 * doc.c (Vhelp_manyarg_func_alist): New variable.
9532 (Fdocumentation): Use it.
9533 (syms_of_doc): Define it.
9534
b6680a0e
GM
95352000-01-31 Gerd Moellmann <gerd@gnu.org>
9536
2cb750ba
GM
9537 * xterm.c (xim_open_dpy): Remove unused local variable.
9538
74e9213b
GM
9539 * emacs.c (USAGE): Use term `display options' instead of `X
9540 options'.
9541
9542 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
9543 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
9544
b6680a0e
GM
9545 * fns.c (sweep_weak_table): New function.
9546 (sweep_weak_hash_tables): Use it. Keep on marking until there
9547 is no more change.
9548
994c5afe
GM
95492000-01-30 Gerd Moellmann <gerd@gnu.org>
9550
9551 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
9552 that XTread_socket does not crash by trying to call XNoOp on a
9553 closed display.
427ec082 9554
f00276e3
JR
95552000-01-30 Jason Rumney <jasonr@gnu.org>
9556
9557 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
9558 Change selected_frame to SELECTED_FRAME ().
9559 (w32_console_mouse_position): Remove #ifndef MULE from around
9560 `insist' parameter.
9561
9562 * makefile.nt: Remove dosfns.obj.
9563
9564 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
9565
9566 * w32fns.c (w32_defined_color): Check for valid frame before
9567 applying gamma correction. Eliminate dependency on frame elsewhere.
9568 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
9569 (w32_to_x_font): Use resx and resy not height_in and width_in.
9570 (x_to_w32_font): Doc fix.
9571 (xlfd_strip_height): New function to strip and return font height.
9572 (w32_font_match): Compare height separately from rest of xlfd
9573 spec, using xlfd_strip_height.
9574
9575 * w32term.c (w32_term_init): Swap resx and height_in, resy and
9576 width_in. Use w32_defined_color in place of defined_color.
9577
9578 * w32faces.c: Merge more of DOS and X specifics in preparation for
9579 merge with xfaces.c.
9580 (defined_color): Remove FIXME comment.
9581 (tty_color_name): Provide w32-specific function.
9582 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
9583
9584 * w32console.c (turn_on_face, turn_off_face): Removed.
9585 (w32_face_attributes): New function.
9586 (Global_variables): Reduce scope where possible.
9587 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
9588 fill attribute.
9589 (hl_mode): Don't modify text attributes.
9590 (write_glyphs): Don't do anything if len <= 0. Use
9591 w32_face_attributes to get attributes for drawing. Write
9592 terminating codes using char_attr_normal.
9593 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
9594 (update_begin, update_end): Likewise.
9595 (vga_stdcolor_name): New function.
9596 (initialize_w32_display): Remove char_attr_reverse and char_attr.
9597 (Fset_screen_color): Remove char_attr_reverse.
9598
b08e8bb2
GM
95992000-01-29 Gerd Moellmann <gerd@gnu.org>
9600
9601 * xfns.c (xic_set_preeditarea): Take window parameter and
9602 window-relative pixel-positions.
9603
9604 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
9605 is its frame's selected window.
9606 (xim_instantiate_callback): Likewise.
9607
9608 * xfns.c (x_create_im): Removed.
9609 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
9610 (supported_xim_styles): Renamed from supported_styles.
9611 (best_xim_style): Renamed from best_style.
9612 (create_frame_xic): Renamed from xic_create_frame.
9613 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 9614
b08e8bb2
GM
96152000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
9616
9617 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
9618 our frames, call XFilterEvent with 2nd parameter `None'.
9619 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
9620 returning XBufferOverflow.
9621 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
9622 area.
9623 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
9624 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
9625 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
9626 (xim_initialize, xim_close)
9627 [HAVE_X_I18N && HAVE_X11R6]: New functions.
9628 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
9629 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
9630 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
9631
9632 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
9633 and `xim_styles'.
9634 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
9635 `xic_style' and `xic_xfs'.
9636 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
9637 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
9638 (FRAME_XIM): Removed.
9639
9640 * xfns.c (supported_styles): New variable.
9641 (DEFAULT_STYLE, DEFAULT_FONT): New macros
9642 (xic_create_xfontset, best_style, xic_create_frame)
9643 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
9644 (xic_set_xfontset): New functions.
9645
142e109c
DL
96462000-01-28 Dave Love <fx@gnu.org>
9647
9648 * s/irix6-5.h: Revert last change after change to irix5-0.h.
9649
9650 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
9651
b02786f9
GM
96522000-01-28 Gerd Moellmann <gerd@gnu.org>
9653
d060bc9f
GM
9654 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
9655 for *scratch* if it already existed.
9656
b02786f9
GM
9657 * emacs.c (USAGE): New macro.
9658 (main): Use it to display usage information.
9659
2c52d7e4
EZ
96602000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
9661
9662 Support for the menu-help feature:
9663
9664 * msdos.h: Change prototypes of XMenuAddSelection and
9665 XMenuActivate.
9666
9667 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
9668 part of the line to the termscript file.
9669 (IT_clear_to_end): Clear the entire line, not just its beginning.
9670 (menu_help_message, prev_menu_help_message): New variables.
9671 (IT_menu_make_room): Make room for the help_text member.
9672 (IT_menu_display): New argument disp_help; all callers changed.
9673 If disp_help is non-zero, store the help text of the active menu
9674 item in menu_help_message.
9675 (XMenuAddPane): Initialize the help_text member to NULL.
9676 (XMenuAddSelection): New argument help_text. Store it in the
9677 XMenu structure.
9678 (XMenuActivate): New argument help_callback. If the value of
9679 menu_help_message has changed since the last time, display the
9680 menu help message text while waiting for the mouse to move. Clear
9681 the echo area before exiting.
9682 (XMenuDestroy): Free the help_text member.
9683
ffe0bcd1
GM
96842000-01-27 Gerd Moellmann <gerd@gnu.org>
9685
9686 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
9687 XMenuAddSelection. Pass help callback to XMenuActivate.
9688 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
9689
50dbd23f
EZ
96902000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
9691
9692 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
9693 and EMACS_SET_USECS.
9694
f5941bf8
GM
96952000-01-26 Dave Love <fx@gnu.org>
9696
6c67ddee
DL
9697 * editfns.c (Fchar_after, Fchar_before): Doc fix.
9698
f5941bf8
GM
9699 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
9700 an error may be signalled.
9701
9e49c990
GM
97022000-01-26 Gerd Moellmann <gerd@gnu.org>
9703
fc3cb460
GM
9704 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
9705 LD_SWITCH_SYSTEM inherited from irix5-0.h.
9706
9e49c990
GM
9707 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
9708
d0c037d8
GM
97092000-01-25 Gerd Moellmann <gerd@gnu.org>
9710
9711 * charset.c (Fstring): If there is a multibyte char among
9712 the args, always return a multibyte string.
9713
e12489f9
GM
97142000-01-25 Gerd Moellmann <gerd@gnu.org>
9715
9716 * sysdep.c (sys_select): Turn atimers off and on instead of
9717 recording and restoring old alarm handler
9718
9719 * process.c (toplevel): Include atimer.h.
9720 (create_process_1): Rewritten.
9721 (create_process): Use atimers instead of alarm.
9722 (wait_reading_process_input) [hpux]: Turn atimers off instead
9723 of turning off SIGALRM.
9724 (wait_reading_process_input): Turn off atimers instead off
9725 calling stop_polling.
9726
9727 * emacs.c (main): Call init_atimer.
9728
9729 * keyboard.c (toplevel): Include systime.h and atimer.h.
9730 (polling_for_input): Removed because unused.
9731 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
9732 (poll_timer): New variable.
9733 (poll_for_input, poll_for_input_1): New functions.
9734 (start_polling, stop_polling): Rewritten.
9735
9736 * keyboard.h (polling_for_input): Removed.
427ec082 9737
e12489f9
GM
9738 * atimer.h, atimer.c: New files.
9739
9740 * Makefile.in (obj): Add atimer.o.
9741 (atimer.o): New target.
9742
9743 * blockinput.h (pending_atimers): Add extern declaration.
9744 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
9745
9746 * lisp.h (popup_activated_flag): Add extern declaration.
9747
9748 * xmenu.c (popup_activated_flag): Make externally visible.
9749 (popup_activate_callback) [USE_MOTIF]: Increment
9750 popup_activated_flag.
9751 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
9752
9753 * xterm.c (toplevel): Include atimer.h.
9754 (toolkit_scroll_bar_interaction): New variable.
9755 (Fxt_process_timeouts): Removed.
9756 (x_process_timeouts): New function.
9757 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
9758 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
9759 (x_make_frame_visible): Call poll_for_input_1 instead of
9760 input_poll_signal. Don't call alarm.
9761 (x_initialize): Install timer calling x_process_timeouts.
427ec082 9762
1e5279b9
DL
97632000-01-24 Dave Love <fx@gnu.org>
9764
6c67ddee 9765 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
9766 Don't use -cckr -- apparently not now necessary.
9767
edf6aeb8
EZ
97682000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
9769
9770 * msdos.c (IT_menu_display): Truncate long menu lines at the right
9771 screen boundary.
9772
9badad41
JR
97732000-01-23 Jason Rumney <jasonr@gnu.org>
9774
9775 * w32fns.c (w32_defined_color): Apply gamma correction before
9776 trying to map to the palette.
9777 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
9778 to w32_clear_rect.
9779
9780 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
9781 here. Callers changed to always pass real device context.
9782 (w32_draw_bitmap): Likewise.
9783 (w32_get_glyph_overhangs): Likewise.
9784 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
9785 one.
9786 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
9787 pfnSetScrollInfo and SetScrollRange.
9788 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
9789 back into MULE characters after decoding them.
9790 (x_get_glyph_face_and_encoding): Likewise.
9791 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
9792 GetCharABCWidthsW fails, since this is defined on Windows 9x.
9793 (x_produce_glyphs): Calculate per char metrics for a character
9794 that we know exists in default font when font_not_found_p is true.
9795
63bd786b
JR
97962000-01-22 Jason Rumney <jasonr@gnu.org>
9797
9798 * makefile.nt (intervals.obj, composite.obj): New modules.
9799 (composite.h): Added as dependency where appropriate.
9800
9801 * w32gui.h (XGCValue): New struct for emulating X GCs.
9802
9803 * w32term.h (XCharStruct): New struct for emulating X.
9804
9805 * w32console.c (turn_on_face, turn_off_face): New functions.
9806 (change_line_highlight): New prototype for new redisplay.
9807 (write_glyphs): Support multibyte text. Support faces.
9808
9809 * w32faces.c: Complete rewrite for new redisplay based on new
9810 xfaces.c.
9811
9812 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
9813 throughout. struct frame * in place of FRAME_PTR.
9814 Skeleton support for images, toolbars, tooltips from xfns.c.
9815 (Fx_create_frame): Use system default for default scroll bar
9816 width.
9817 (w32_get_arg): Renamed from x_get_arg.
9818 (Fx_file_dialog): New function.
9819 (w32_list_fonts): Check cache before asking system.
9820 (Vw32_enable_synthesized_fonts): New variable.
9821 (Vw32_enable_italics): Obsolete, removed.
9822
9823 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
9824 Use SELECTED_FRAME macro.
9825
9826 * w32menu.c: Add skeleton support for help strings on menus.
9827 (add_menu_item): Native checkbox and radio support added, but not
9828 yet enabled due to bugs.
9829 (push_menu_item): Add parameters type, selection and help.
9830 Callers updated.
9831 Formatting changes to reduce unnecessary diffs with xmenu.c.
9832
9833 * w32select.c (Fw32_set_clipboard_data): Update call to
9834 find_charset_in_str.
9835
9836 * w32term.c: Complete rewrite for new redisplay based on new
9837 xterm.c with necessary sections merged back in from old w32term.c.
9838
6ffd3cf7 98392000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
9840
9841 * data.c (set_internal): Further fix in same criterion.
9842
6ffd3cf7 98432000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
9844
9845 * data.c (set_internal): Fix the criteria for whether
9846 to swap out the old cached binding.
9847
60af03f1
DL
98482000-01-19 Dave Love <fx@gnu.org>
9849
9850 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
9851
f9be074f
KH
98522000-01-18 Kenichi Handa <handa@etl.go.jp>
9853
9854 * regex.c (re_compile_fastmap): While checking a range table for
9855 `charset', skip flag bits for a character class correctly.
9856
52b8dbf9
GM
98572000-01-17 Gerd Moellmann <gerd@gnu.org>
9858
d36100c9
GM
9859 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
9860
52b8dbf9
GM
9861 * xfns.c (x_window): Call lw_create_widget with new parameter
9862 list.
9863
9864 * widget.c (EmacsFrameSetCharSize): Change size of children first
9865 because of problems with main window geometry management under
9866 Lesstif.
9867
9868 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
9869 MENU_ITEMS_ITEM_.*.
9870 (MENU_ITEMS_ITEM_HELP): New enumerator.
9871 (push_menu_item): Add parameter HELP. Record help in menu_items.
9872 (single_menu_item, single_submenu, list_of_items): Call
9873 push_menu_item with new parameter.
9874 (single_submenu): Set help string in widget value.
9875 (menu_highlight_callback): New function.
9876 (set_frame_menubar): Call lw_create_widget with new
9877 parameter list.
9878 (xmenu_show, xdialog_show): Ditto.
9879
3139018f
GM
98802000-01-13 Gerd Moellmann <gerd@gnu.org>
9881
9882 * sound.c (Fplay_sound): Improve doc string.
9883
83c8f461
RS
98842000-01-11 Richard M. Stallman <rms@gnu.org>
9885
9886 * lisp.h (set_internal): Enter the new arg.
9887
9888 * eval.c (specbind): Record buffer-local variables specially,
9889 indicating which buffer's binding was saved.
9890 (unbind_to): Restore buffer-local variables specially
9891 in the proper buffer.
9892
9893 * data.c (set_internal): New arg BUF.
427ec082 9894
83c8f461
RS
9895 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
9896 * data.c (Fset): Pass new arg to set_internal.
9897 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 9898
1fab1775
GM
98992000-01-11 Gerd Moellmann <gerd@gnu.org>
9900
9901 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
9902 xprintsym.
9903
83c8f461 99042000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
9905
9906 * minibuf.c (Ftry_completion): Doc fix.
9907
7a85e4df
GM
99082000-01-11 Gerd Moellmann <gerd@gnu.org>
9909
9910 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
9911 vector, too.
9912
a970dae4
AS
99132000-01-11 Andreas Schwab <schwab@suse.de>
9914
9915 * coding.c (code_convert_region): Initialize total_skip.
9916
c65d14ee
DL
99172000-01-08 Dave Love <fx@gnu.org>
9918
9919 * eval.c (Fuser_variable_p): Check customizability too.
9920
834938d2
GM
99212000-01-07 Gerd Moellmann <gerd@gnu.org>
9922
9923 * minibuf.c (Fcompleting_read): Doc fix.
9924
e0303cd6
GM
99252000-01-05 Gerd Moellmann <gerd@gnu.org>
9926
8a26744b
GM
9927 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
9928 -L /usr/local/lib.
9929
e0303cd6
GM
9930 * xfns.c (x_create_im): New function to set IM and IC of a frame.
9931 Check that input style is supported before trying to create an
9932 IC for it.
9933 (x_window): Call x_create_im.
427ec082 9934
2e471eb5
GM
99352000-01-04 Gerd Moellmann <gerd@gnu.org>
9936
560a7bd2
GM
9937 * xfns.c (current_gif_memory_src): New variable.
9938 (gif_load): Record the address of the current memory source
9939 in current_gif_memory_src.
9940 (gif_read_from_memory): Use current_gif_memory_src.
9941
f9ee84a3
GM
9942 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
9943 macros statement form.
9944
d1299cde
GM
9945 * sound.c (struct sound): Renamed from struct sound_file.
9946 (struct sound): Add members `data' and `header_size'.
9947 (enum sound_attr): Add SOUND_DATA.
9948 (current_sound, current_sound_device): Variables renamed from
9949 sound_file and sound_device.
9950 (parse_sound): Parse :data.
9951 (parse_sound): Handle sound data in strings.
9952 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 9953 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
9954 needed header size.
9955 (wav_play, au_play): Play sounds from string data.
9956
2e471eb5
GM
9957 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
9958
9959 * lisp.h: Add prototype for allocate_string_data.
9960
9961 * alloc.c (Fgarbage_collect): Return number of live and free
9962 strings.
9963
9964 * alloc.c (mark_buffer): Remove code in #if 0.
9965 (gc_sweep): Ditto.
9966 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
9967 (strings_consed): New variable.
9968 (allocate_string): Set it.
9969 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
9970 (Fmemory_use_counts): Return strings_consed. Use Flist.
9971
9972 * alloc.c: General cleanup in comments etc. Remove conditional
9973 compilation for `standalone'.
9974
9975 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
9976
9977 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
9978 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
9979 (DONT_COPY_FLAG): Removed.
9980 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
9981 (struct sdata, struct sblock): New
9982 (struct string_block): Rewritten.
9983 (STRINGS_IN_STRING_BLOCK): New macro.
9984 (oldest_sblock, current_sblock, total_strings, total_free_strings)
9985 (large_sblocks, string_blocks, string_free_list): New variables.
9986 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
9987 (init_strings): Rewritten.
9988 (allocate_string, allocate_string_data, compact_small_strings)
9989 (free_large_strings, sweep_strings): New functions.
9990 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
9991 (struct string_block_head, current_string_block)
9992 (first_string_block, large_string_blocks, STRING_FULLSIZE)
9993 (STRING_PAD): Removed.
9994 (make_uninit_multibyte_string, make_pure_string): Rewritten.
9995 (Fgarbage_collect): Don't set mark bit in large strings.
9996 (mark_object): Mark strings differently. Mark symbol names
9997 differently.
9998 (survives_gc_p): Test marked strings differently.
427ec082 9999 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
10000 symbol names.
10001 (compact_strings): Removed.
10002
42608ba8
EZ
100032000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
10004
10005 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
10006 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
10007
e0a09e1a
KH
100082000-01-04 Kenichi Handa <handa@etl.go.jp>
10009
dd9f0750 10010 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 10011 in a non-empty buffer.
dd9f0750 10012
3c0f3b15 10013 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 10014
44cd3ae5
GM
100152000-01-03 Gerd Moellmann <gerd@gnu.org>
10016
10017 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
10018 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
10019
10020 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
10021
c182a70f
EZ
100222000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
10023
10024 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
10025 need to test for MSDOS frames.
10026
24480d5b
EZ
100272000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
10028
10029 * dosfns.c (unspecified_colors): Remove.
10030 (msdos_stdcolor_idx): Use global variables unspecified_fg and
10031 unspecified_bg.
10032 (msdos_stdcolor_name): Return strings for unspecified fore- and
10033 back-ground colors.
10034
10035 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 10036 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
10037 (tty_color_name): Return Lisp strings for unspecified fore- and
10038 back-ground colors.
10039 (Finternal_set_lisp_face_attribute): Remove the special treatment
10040 for Qunspecified_{f,b}g.
10041 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
10042 string.
10043
047f434a
GM
100442000-01-03 Gerd Moellmann <gerd@gnu.org>
10045
10046 * xdisp.c (reseat_at_next_visible_line_start): Position before
10047 newline only if ending up on a newline.
10048 (next_element_from_ellipsis): Return success. Handle case of
10049 displaying no ellipsis. Fix case of ellipsis defined in display
10050 table.
10051 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
10052 returns 0.
10053
d684c676
EZ
100542000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
10055
10056 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
10057 (Fcolor_supported_p): Renamed from face-color-supported-p.
10058
5fe1d139
EZ
100592000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
10060
10061 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
10062 list of colors renamed to tty-defined-color-alist.
10063 (tty_color_name): Pass the frame to tty-color-by-index.
10064 (realize_tty_face): tty-color-alist is now a function which
10065 accepts the frame as argument.
10066
10067 * term.c (Ftty_display_color_p): Accept an optional argument
10068 FRAME.
10069
816be8b8
EZ
100702000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
10071
10072 * term.c (insert_glyphs): Pass glyph, not &glyph, to
10073 encode_terminal_code.
10074
b635321e
EZ
100752000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
10076
10077 * dispnew.c (mode_line_string): Support termcap frames as well.
10078
9b784e96
GM
100792000-01-01 Gerd Moellmann <gerd@gnu.org>
10080
27189709
GM
10081 * syntax.c (Fforward_word): Undo previous change.
10082
10083 * editfns.c (Fconstrain_to_field): Don't constrain if
10084 inhibit-field-text-motion is non-nil.
10085 (Fline_beginning_position): Undo previous change.
10086 (Fline_end_position): Ditto.
10087
10088 * syntax.c (Fforward_word): Notice field boundaries only if
10089 inhibit-field-text-motion is nil.
10090
10091 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
10092
10093 * editfns.c (Vinhibit_field_text_motion): New variable.
10094 (inhibit-field-text-motion): New DEFVAR_LISP.
10095 (Fline_beginning_position, Fline_end_position): Notice field
10096 boundaries only if inhibit-field-text-motion is nil.
10097
45158a91
GM
10098 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
10099 All calls adjusted.
10100 (x_build_heuristic_mask): Likewise.
10101 (xbm_load_image_from_file): Change error output.
10102 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
10103 (gif_load, gs_load, x_kill_gs_process): Ditto.
10104
9b784e96
GM
10105 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
10106 color indices when accessing raster pixels.
63cec32f
GM
10107 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
10108 one of :file or :data.
10109 (enum pbm_keyword_index): Add PBM_DATA.
10110 (pbm_format): Add :data.
10111 (pbm_image_p): Allow either :file or :data.
10112 (pbm_read_file): New function.
10113 (pbm_scan_number): Rewritten to read from string.
10114 (pbm_load): Support :data.
9b784e96 10115
2cb085db 10116See ChangeLog.8 for earlier changes.
6922b018
KH
10117
10118;; Local Variables:
49b3bd82 10119;; coding: iso-2022-7bit
6922b018 10120;; End: