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