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