(window_internal_height): Return 1 less if the
[bpt/emacs.git] / src / ChangeLog
CommitLineData
ceeb3d7d
EZ
12001-04-09 Eli Zaretskii <eliz@is.elta.co.il>
2
3 * gmalloc.c (align): If the argument SIZE would overflow
4 __malloc_ptrdiff_t, fail right away.
5
63685b9d
GM
62001-04-06 Gerd Moellmann <gerd@gnu.org>
7
8 * xfns.c (compute_tip_xy): Add parameters WIDTH and HEIGHT.
9 Make sure the tooltip is completely visible.
10 (x_make_gc): Use FRAME_X_SCREEN_NUMBER.
11
12 * xterm.h (FRAME_X_SCREEN_NUMBER): New macro.
13
14 * xmenu.c (xmenu_show): Use FRAME_X_SCREEN_NUMBER.
15
3ffb33bb
DL
162001-04-06 Dave Love <fx@gnu.org>
17
18 * composite.c (update_compositions) <check_mask & CHECK_HEAD>: Fix
19 test of `from'.
20
869fb12c
GM
212001-04-06 Gerd Moellmann <gerd@gnu.org>
22
afa3935f
GM
23 * composite.h (COMPOSITION_VALID_P): Allow integers as cdrs of
24 PROP.
25
869fb12c
GM
26 * xdisp.c (Qinhibit_eval_during_redisplay): Make it a Lisp_Object.
27
441bf856
GM
282001-04-05 Gerd Moellmann <gerd@gnu.org>
29
4d664b04
GM
30 * sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
31
a55e4e68
GM
32 * editfns.c (Fcurrent_time_zone): Accept spaces in timezone
33 names.
34
30ca89f5
GM
35 * xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
36 (syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
37
38 * xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
39 shell widget's position only if it is non-null.
40
41 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]: Set
42 f->output_data.x->widget to null after destroying it.
43
81a81c0f
GM
44 * fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
45 FILENAME to bring it in synch with the documentation.
46
441bf856
GM
47 * xfaces.c (realizing_basic_faces_p): Renamed from
48 realize_default_face_p.
49 (realize_basic_faces): Set/clear realizing_basic_faces_p.
50 (realize_default_face): Don't set the flag.
51
702a1e8e
GM
522001-04-04 Gerd Moellmann <gerd@gnu.org>
53
1013f4e3
GM
54 * lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
55
56 * keyboard.c (echoing, echo_message_buffer): Make externally
57 visible.
58
59 * xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
60 the buffer that was used for echoing.
61
702a1e8e
GM
62 * xfaces.c (best_matching_font): Remove unused parameter PATTERN.
63 (first_font_matching): Removed unused function.
64 (x_face_list_fonts): Remove unused parameter SCALABLE_P.
65 (may_use_scalable_font_p): Remove parameter FONT; rename
66 parameter NAME to FONT.
67 (x_face_list_fonts): Fix missing bounds check.
68 (realizing_default_face_p): New variable.
69 (realize_default_face): Set and clear that flag.
70 (x_face_list_fonts): When called during the realization of the
71 default face, and no matching fonts are found when ignoring
72 scalable fonts and fonts matching a regexp from
73 face-ignored-fonts, try without ignoring fonts.
74
f9dbcda4
GM
752001-04-03 Gerd Moellmann <gerd@gnu.org>
76
ad18ffb1
GM
77 * xfns.c (postprocess_image): New function.
78 (lookup_image): Call it for all image types except PostScript.
79 (x_kill_gs_process): Call postprocess_image.
80
f9dbcda4
GM
81 * xterm.c (x_use_underline_position_properties): New variable.
82 (x_draw_glyph_string): Use it.
83 (syms_of_xterm): DEFVAR_BOOL it.
84
651f03b6
GM
852001-04-02 Gerd Moellmann <gerd@gnu.org>
86
87 * xterm.c (x_alloc_nearest_color_1): New function.
88 (x_alloc_nearest_color): Use it.
89 (x_color_cells): Take a Display as argument, instead of a frame.
90 (cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
91 (cvt_string_to_pixel, cvt_pixel_dtor): New functions.
92 (x_initialize): Register cvt_string_to_pixel as resource converter
93 string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
94
73d75a62
GM
952001-03-30 Gerd Moellmann <gerd@gnu.org>
96
b2046df8
GM
97 * xdisp.c (get_overlay_strings): Set iterator's end_charpos.
98 (set_iterator_to_next): If a string from a display property ends,
99 consider the case that this might also be the end of an
100 overlay string having the display property.
101
12700f40
GM
102 * xdisp.c (handle_display_prop): Fix recognition of subproperty
103 lists.
b2046df8 104
87d8eba4
GM
105 * xdisp.c (reseat_to_string): Undo last change.
106
73d75a62
GM
107 * dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
108 matrix of a window when the header line changes, when
109 new rows are allocated, or when the width changes.
110
911a2406
EZ
1112001-03-30 Eli Zaretskii <eliz@is.elta.co.il>
112
113 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last
114 change.
115
aea51abe
EZ
1162001-03-29 Eli Zaretskii <eliz@is.elta.co.il>
117
118 * fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
119 deprecated.
120
176bc847
GM
1212001-03-29 Gerd Moellmann <gerd@gnu.org>
122
ed31fabf
GM
123 * data.c (Fsubr_interactive_form): New function.
124 (syms_of_data): Defsubr it.
125
176bc847
GM
126 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
127 (live_float_p, live_misc_p): Return 1 only if the offset of the
128 pointer in its block is >= 0.
129
e59d0e9d
GM
1302001-03-28 Paul Eggert <eggert@twinsun.com>
131
132 * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
133 microseconds calcuation. Avoid double-rounding problem.
134 In doc string, warn that the result is approximate.
135
f827b862
GM
1362001-03-28 Gerd Moellmann <gerd@gnu.org>
137
30a3f61c
GM
138 * eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
139 bind `inhibit-eval-during-redisplay' to t.
140
141 * lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
142
143 * xdisp.c (inhibit_eval_during_redisplay)
144 (Qinhibit_eval_during_redisplay): New variables.
145 (safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
146 don't eval, return nil instead.
147 (syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
148 Initialize Qinhibit_eval_during_redisplay.
149
e719f5ae
GM
150 * xdisp.c (reseat_to_string): If STRING is multibyte, set
151 the iterator's multibyte_p flag.
152
deb2613a
GM
153 * xfaces.c (realize_basic_faces): Decrement menu_face_change_count
154 instead of setting it to zero; it's incremented for each frame
155 where the menu face is changed.
156
44655e77
GM
157 * xterm.c (x_draw_relief_rect): Extend left shadow to the
158 bottom; change bottom shadow accordingly.
159
a02f1be0
GM
160 * xterm.c (expose_window_tree, expose_frame): Don't compute
161 intersections here.
162 (expose_window): Do it here instead.
163 (x_draw_glyph_string): Fix a computation of the underline
164 position.
165
f827b862
GM
166 * bytecode.c (BYTE_CODE_QUIT): New macro.
167 (Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
168
4bde0ebb
GM
1692001-03-27 Gerd Moellmann <gerd@gnu.org>
170
607ec83c
GM
171 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
172 Give up if matrix starts in an ellipsis.
173 (init_from_display_pos): Do nothing if POS doesn't specify
174 a dpvec_index but the iterator has such a position.
175
0245398f
GM
176 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
177
aba25348
GM
178 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
179 x/y position is (0, 0) after destroying the menu bar, restore
180 its original position.
181
4bde0ebb
GM
182 * xdisp.c (in_ellipses_for_invisible_text_p): New function.
183 (init_from_display_pos): Use it.
184 (try_window_reusing_current_matrix): Don't use cursor_row_p.
185
8cdb267e
GM
1862001-03-26 Gerd Moellmann <gerd@gnu.org>
187
188 * xdisp.c (try_window_id): Undo last change.
189
9948db79
EZ
1902001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
191
192 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
193
194 * buffer.c (syms_of_buffer): Doc fix.
195
2eddf899
GM
1962001-03-26 Gerd Moellmann <gerd@gnu.org>
197
198 * xfaces.c (x_update_menu_appearance): Use local variable
199 popup_path for setting font resources.
200
6c145d35
EZ
2012001-03-25 Eli Zaretskii <eliz@is.elta.co.il>
202
6a65b1b5
EZ
203 * frame.c (Fframe_list): Don't reference tip_frame if
204 HAVE_WINDOW_SYSTEM is not defined.
205
6c145d35
EZ
206 * emacs.c (main): Update the copyright year. From Werner LEMBERG
207 <wl@gnu.org>.
208
d74c1900
GM
2092001-03-25 Gerd Moellmann <gerd@gnu.org>
210
20fbd925
GM
211 * xdisp.c (init_from_display_pos): Test invisible property
212 with TEXT_PROP_MEANS_INVISIBLE instead of NILP.
213
927c5b3b
GM
214 * xdisp.c (redisplay_internal) <update one window>: Make sure
215 last_arrow_position and last_arrow_string are set.
216
d74c1900
GM
217 * frame.c (Fframe_list): Don't return a tooltip frame.
218
091f8878
GM
2192001-03-23 Gerd Moellmann <gerd@gnu.org>
220
43c09969
GM
221 * xdisp.c (mark_window_display_accurate_1): New function,
222 extracted from mark_window_display_accurate. Compute
223 BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED,
224 BUF_BEG_UNCHANGED, BUF_END_UNCHANGED.
225 (mark_window_display_accurate): Use it.
226 (redisplay_internal): Use it for the selected window.
227 (redisplay_internal): Avoid duplicate mark_window_display_accurate
228 for the selected frame.
229
ac90c44f
GM
230 * xdisp.c Use make_number, for readability.
231 (try_window_id): Disable rows below the window end.
232 (try_window_reusing_current_matrix): Use cursor_row_p.
233 (try_window_reusing_current_matrix) <scrolling up>: Fix disabling
234 of rows.
235 (init_from_display_pos): If POS specifies a position in a display
236 vector, maybe get the iterator set up for that ellipsis.
43c09969 237
091f8878
GM
238 * xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
239
991786dd
EZ
2402001-03-23 Eli Zaretskii <eliz@is.elta.co.il>
241
242 * xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
243
6c29b43c
GM
2442001-03-23 Gerd Moellmann <gerd@gnu.org>
245
246 * xfaces.c (x_update_menu_appearance): Use a different path
247 for Lucid popup menus.
248
d8731202
SM
2492001-03-22 Stefan Monnier <monnier@cs.yale.edu>
250
251 * xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
252
253 * xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
254 (string_buffer_position): Use `make_number'.
255
f61a541b
GM
2562001-03-22 Gerd Moellmann <gerd@gnu.org>
257
3c9e997b
GM
258 * xfaces.c (x_update_menu_appearance): Renamed from
259 x_set_menu_face_resources. Use different resources for popups.
260
261 * lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
262 (GC_CHECK_STRING_BYTES): Don't define.
263
364cd450
GM
264 * xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
265 Removed, together with subroutines.
266 (x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
d8731202 267 (realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
364cd450 268
d8731202
SM
269 * dispextern.h (x_set_menu_resources_from_menu_face):
270 Remove prototype.
364cd450 271
d8731202 272 * xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
364cd450
GM
273 Remove calls to x_set_menu_resources_from_menu_face.
274
d8731202
SM
275 * xfaces.c (xm_set_menu_resources_from_menu_face):
276 Remove #ifndef LESSTIF_VERSION.
f61a541b
GM
277
278 * xmenu.c: Include widget.h.
279 (single_submenu): Return int. Some cleanup.
280 (set_frame_menubar): Call x_set_menu_resources_from_menu_face.
281
140330de
GM
2822001-03-21 Gerd Moellmann <gerd@gnu.org>
283
284 * xterm.c (x_update_window_end): Handle overwritten mouse face
285 also for tool bar windows.
286 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
287 DRAW is DRAW_IMAGE_RAISED.
288
1741905c
GM
2892001-03-20 Gerd Moellmann <gerd@gnu.org>
290
fa88947e
GM
291 * print.c (syms_of_print): Doc fixes.
292
1741905c
GM
293 * fns.c (Fmd5): Doc fix.
294
ade0bee1
GM
2952001-03-19 Gerd Moellmann <gerd@gnu.org>
296
357e7376
GM
297 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
298 Clear area of the frame not occupied by the scroll bar.
299
c2c097cc
GM
300 * xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
301 tip frame's root window buffer to *tip* right after creating
302 the frame.
303
ade0bee1
GM
304 * xdisp.c (highlight_trailing_whitespace): Glyphs whose object
305 is an integer don't have to be for space characters.
306
88c6e37e
GM
3072001-03-16 Gerd Moellmann <gerd@gnu.org>
308
309 * indent.c (current_column, current_column_1, Fmove_to_column)
310 (compute_motion): Handle characters from display vectors
311 differently.
312
c62eed76
KH
3132001-03-15 Kenichi Handa <handa@etl.go.jp>
314
315 * xterm.c (x_draw_glyph_string): Draw relief (if any) before
316 drawing glyph string.
317
c899e7e6
GM
3182001-03-15 Gerd Moellmann <gerd@gnu.org>
319
d0bbfc99
GM
320 * keyboard.c (timer_check): Preserve the value of deactivate-mark.
321 (command_loop_1): Undo last change.
322
03d1a189
GM
323 * xterm.c (fast_find_position): Return the correct vpos.
324
c899e7e6
GM
325 * data.c (store_symval_forwarding): Add parameter BUF. If BUF is
326 non-null, set a per-buffer value in BUF instead of the current
327 buffer.
328 (swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
329 Call store_symval_forwarding with BUF null.
330 (set_internal): Call store_symval_forwarding with the BUF
331 parameter passed to set_internal. Formerly, the value was always
332 set in the current buffer; the buffer recorded in specbind for
333 this case wasn't used.
334 (arith_driver): Reindent.
335
336 * buffer.c (swap_out_buffer_local_variables): Call
337 store_symval_forwarding with BUF null.
338
339 * lisp.h (store_symval_forwarding): Change prototype.
340
341 * eval.c (specbind): Call store_symval_forwarding with BUF null.
342
57ac7c81
GM
3432001-03-14 Gerd Moellmann <gerd@gnu.org>
344
697617d9
GM
345 * frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
346 FOR_DELETION. Avoid resizing the mini-window of the selected
347 frame if FOR_DELETION is set.
348 (Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
349 (Fmake_frame_invisible): Change calls to do_switch_frame for new
350 signature.
351
352 * window.c (Fset_window_configuration): Change call to
353 do_switch_frame to new format.
354
355 * keyboard.c (quit_throw_to_read_char): Change call to
356 do_switch_frame to new format.
357
358 * lisp.h (do_switch_frame): Change prototype.
359
819dce0f
GM
360 * frame.c (Fframe_parameters): In the `buffer-list' frame
361 parameter, store the buffer list of FRAME, not the list of the
362 selected frame.
363
57ac7c81
GM
364 * xterm.c (x_draw_glyph_string_box): Don't draw a full-width
365 box just because the glyph row's full_width_p flag is set.
366
65008712
GM
3672001-03-14 Eli Zaretskii <eliz@is.elta.co.il>
368
369 * xdisp.c (highlight_trailing_whitespace): On character terminals,
370 skip the padding blanks inserted in extend_face_to_end_of_line,
371 before checking for trailing whitespace.
372
159cf431
GM
3732001-03-13 Gerd Moellmann <gerd@gnu.org>
374
19b2bb80
GM
375 * xmenu.c (popup_activate_callback, popup_deactivate_callback):
376 Remove special handling for LessTif/Motif.
377 (toplevel): Don't include Xm/Xm.h.
378
afcdc0a1
GM
379 * xterm.c (XTread_socket) <LeaveNotify, EnterNotify>: Remove
380 workaround code for LessTif; it doesn't work anymore.
381
2564ea1b 382 * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
57ac7c81 383 Xm/ScrollBarP.h.
afcdc0a1 384
23442ae4
GM
385 * xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]: Don't
386 access private scroll bar data; it's no longer necessary with
387 contemporary LessTif.
388
9faaaa52
GM
389 * xfaces.c (xm_set_menu_resources_from_menu_face): Change
390 #if 0 to #ifndef LESSTIF_VERSION.
391
159cf431
GM
392 * xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
393 removing button grabs.
394
c6f7429a
KH
3952001-03-13 Kenichi Handa <handa@etl.go.jp>
396
cb82d767
KH
397 * fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
398 and clip-large-size-font as obsolete.
399
c6f7429a
KH
400 * lread.c (read_multibyte): Check the validity of multibyte
401 sequence. If invalid, return the first byte.
402
760cefb5
GM
4032001-03-12 Gerd Moellmann <gerd@gnu.org>
404
405 * keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
406 before running the command; timer functions or process
407 filters may have set it.
408
5141f9d0
EZ
4092001-03-12 Eli Zaretskii <eliz@is.elta.co.il>
410
411 * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
412 Doc fix.
413
b6a15240
GM
4142001-03-12 Gerd Moellmann <gerd@gnu.org>
415
416 * xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
417 to sprintf.
418
95522746
GM
4192001-03-09 Gerd Moellmann <gerd@gnu.org>
420
db14cfc5
GM
421 * dispextern.h (string_buffer_position): Add prototype.
422
423 * xdisp.c (string_buffer_position, display_prop_string_p)
424 (single_display_prop_string_p): New functions.
425
426 * xterm.c (note_mouse_highlight): If there's no help-echo on
427 a string, look at the buffer text ``under'' it.
428
429 * keyboard.c (make_lispy_event): Add string info to the event,
430 analogous to what's done on mode lines.
431 (read_key_sequence): For a click on a string, consider `local-map'
432 and `keymap' of that string.
433
3cfd8357
GM
434 * keyboard.c (make_lispy_event, make_lispy_movement): Adjust
435 calls to buffer_posn_from_coords to new format.
436
437 * dispextern.h (buffer_posn_from_coords): Adjust prototype.
438
439 * dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
440 POS; return void.
441
95522746
GM
442 * fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
443 flags argument to emacs_open; it seems to conflict with O_EXCL.
444
898a399d
KH
4452001-03-09 Kenichi Handa <handa@etl.go.jp>
446
28cd4910
KH
447 * composite.h (struct composition): Change types of members;
448 glyph_len to unsigned, width to unsigned short.
898a399d 449
4cdf6a6c
AI
4502001-03-08 Andrew Innes <andrewi@gnu.org>
451
452 * w32menu.c (add_menu_item): Fix problems with using ownerdraw for
453 menu titles.
454
129004d3
GM
4552001-03-08 Gerd Moellmann <gerd@gnu.org>
456
221dd3e7
GM
457 * xdisp.c (handle_display_prop): Use it->w->buffer as object,
458 instead of nil.
459
5de7c6f2
GM
460 * xterm.c (note_mouse_highlight): Handle mouse-face and
461 help-echo in strings.
462 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
463 (fast_find_string_pos): New function.
464
465 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
466 (display_string): Call face_at_string_position with new
467 parameter.
468
469 * xfaces.c (face_at_string_position): Add parameter MOUSE_P.
470 Handle `mouse-face'.
471
472 * dispextern.h (face_at_string_position): Change prototype.
473
e1fbabaf
GM
474 * dired.c (directory_files_internal): Handle EAGAIN more
475 efficiently.
476
129004d3
GM
477 * keyboard.c (make_lispy_event): Avoid generating drag events
478 if the mouse hasn't actually moved to another buffer position.
479
80c8ab8c
DL
4802001-03-08 Dave Love <fx@gnu.org>
481
129004d3 482 * eval.c (syms_of_eval) <debug-on-error>: Doc fix.
80c8ab8c 483
989521fd
GM
4842001-03-08 Gerd Moellmann <gerd@gnu.org>
485
486 * process.c (Fset_process_window_size): Fix a typo.
487
bb5c338d
KH
4882001-03-08 Kenichi Handa <handa@etl.go.jp>
489
490 * coding.c (detect_coding_sjis): Do more rigid check.
491 (detect_coding_big5): Likewise.
492 (decode_coding_sjis_big5): Likewise.
493 (Fdetect_coding_region): Call detect_coding_system with tailing
494 anchor byte `\0' for more rigid detection.
a1b12fe9
KH
495 (detect_coding_mask): Fix the incorrect handling of arg
496 MULTIBYTEP.
bb5c338d
KH
497 (Fdetect_coding_string): Likewise.
498
8b8f9197
SM
4992001-03-07 Stefan Monnier <monnier@cs.yale.edu>
500
501 * bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
502 a string before extracting its data.
503
3bdf2660
GM
5042001-03-07 Gerd Moellmann <gerd@gnu.org>
505
506 * window.c (Frecenter): Rewrite code handling negative values
507 of ARG on graphical frames.
508
5092001-03-07 Eli Zaretskii <a34785@is.elta.co.il>
510
511 * window.c (displayed_window_lines): If W->start is outside the
512 accessible portion of the buffer, call start_display with BEGV or
513 ZV instead of W->start.
514
471f86b9
GM
5152001-03-07 Gerd Moellmann <gerd@gnu.org>
516
2ab62c6c
GM
517 * buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
518
471f86b9
GM
519 * process.c (Fset_process_filter): Don't crash if the input
520 file descriptor of PROCESS is closed.
521 (Fset_process_window_size): Likewise.
522
101922c3
GM
5232001-03-06 Kenichi Handa <handa@etl.go.jp>
524
525 * xterm.c (XTflash): Make the timeout of select shorter, and call
526 select repeatedly until the desired time expires.
527
45d051a7
GM
5282001-03-06 Gerd Moellmann <gerd@gnu.org>
529
530 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
531
532 * xfns.c (Fx_create_frame): Clear Vwindow_list.
533
534 * lisp.h (Vwindow_list): Declare extern.
535
8f372c46
EZ
5362001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
537
538 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
539
f16a7aa5
GM
5402001-03-06 Gerd Moellmann <gerd@gnu.org>
541
157ae273
GM
542 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
543 to detect a case where we have to highlight a different region
544 despite not having left the currently highlighted region.
545 Set mouse_face_overlay in the x_display_info.
45d051a7 546 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
157ae273
GM
547
548 * xterm.h (struct x_display_info): Add mouse_face_overlay.
549
550 * buffer.c (mouse_face_overlay_overlaps): New function.
551
552 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
553 (Qmouse_face): Declare extern.
554
f16a7aa5
GM
555 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
556 if face_change_count is non-zero.
557
827afcac
KH
5582001-03-06 Kenichi Handa <handa@etl.go.jp>
559
560 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
561 that the source is unibyte.
562
14c7242e
DL
5632001-03-05 Dave Love <fx@gnu.org>
564
827afcac 565 * xterm.c (XTmouse_position): Fix typo.
14c7242e 566
c28b847b
GM
5672001-03-05 Gerd Moellmann <gerd@gnu.org>
568
569 * minibuf.c (read_minibuf): Clean up the binding stack if
570 called noninteractively.
571
b86644f2
KH
5722001-03-05 Kenichi Handa <handa@etl.go.jp>
573
574 * coding.c (syms_of_coding): Docstring modified.
575
203682cc 5762001-03-05 Kenichi Handa <handa@etl.go.jp>
b86644f2
KH
577
578 * charset.c (char_to_string): If a single byte char has modifier
579 bits that can't be reflected to the character code, ignore them
45d051a7 580 instead of signaling an error.
b86644f2 581
e30bd7b7
EZ
5822001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
583
584 * s/msdos.h: Update copyright notice.
585
586 * dosfns.h: Update copyright notice.
587
588 * dosfns.c: Update copyright notice.
589
590 * msdos.c: Update copyright notice.
591
b52b65bd
GM
5922001-03-02 Gerd Moellmann <gerd@gnu.org>
593
594 * xterm.c (glyph_rect): New function.
595 (XTmouse_position): Use it to raise the threshold for mouse
596 movement event generation.
597
53c4b1e6
EZ
5982001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
599
600 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
601 specifies (reverse . t), reverse the initial screen colors.
602 (IT_set_frame_parameters): If the property is foreground-color,
603 but we are reversing the colors, set bg_set, not fg_set. Likewise
604 for setting background-color and reversing: set fg_set. Set
605 unspecified-fg and unspecified-bg correctly when (reverse . t) is
606 in effect.
607
608 * xfaces.c (Finternal_set_lisp_face_attribute)
609 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
610 parameters alist.
611
f964b4d7
GM
6122001-03-02 Gerd Moellmann <gerd@gnu.org>
613
ef53d75e
GM
614 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
615 to a single slash in the middle of file names.
616
cda0f4da
GM
617 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
618 Accept only alphanumeric time zone names.
619
f964b4d7
GM
620 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
621 or width area.
622 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
623 a widget to zero height.
624
c3c45f65
GM
6252001-03-01 Gerd Moellmann <gerd@gnu.org>
626
627 * window.c (Fwindow_end): Call move_it_past_eol only if
628 ending up on a partially visible line.
629
028d739a
DL
6302001-03-01 Dave Love <fx@gnu.org>
631
632 * ccl.c (Fccl_execute): Doc fix.
633
57c5889c
GM
6342001-03-01 Gerd Moellmann <gerd@gnu.org>
635
35f59f6b
GM
636 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
637 of the tool bar before calling x_figure_window_size.
638
f84ff02c
GM
639 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
640 NULL after destroying it, otherwise XTread_socket can access a
641 destroyed widget when input is unblocked.
642
8b8f9197 643 * xfns.c (x_set_foreground_color): Set the background of the cursor GC.
420f628c 644
57c5889c
GM
645 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
646 same name as before, although there was a change in fontsets.
647
224227d1
KR
6482001-02-28 Ken Raeburn <raeburn@gnu.org>
649
4560730a
KR
650 * lisp.h (Fframe_parameter): Declare.
651
224227d1 652 * window.c (set_window_buffer): Field vscroll is an int, not a
57c5889c 653 Lisp_Object.
224227d1 654
ece93c02
GM
6552001-02-28 Gerd Moellmann <gerd@gnu.org>
656
11ef99b9
GM
657 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
658 NULL instead.
659
660 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
661 NULL instead.
662
ece93c02
GM
663 * alloc.c (toplevel): Include process.h.
664 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
665 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
666 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
667 (allocate_vector, allocate_hash_table, allocate_window)
668 (allocate_frame, allocate_process, allocate_other_vector): New
669 functions.
670 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
671 (mark_maybe_pointer): New function.
672 (mark_memory): Also mark Lisp data to which only pointers
673 remain and not Lisp_Objects.
674 (min_heap_address, max_heap_address): New variables.
675 (mem_find): Return MEM_NIL if START is below min_heap_address or
676 above max_heap_address.
677 (mem_insert): Compute min_heap_address and max_heap_address.
678
679 * process.c (make_process): Use allocate_process.
680
681 * frame.c (make_frame): Use allocate_frame.
682
683 * window.c (make_window, make_dummy_parent): Use allocate_window.
684 (Fcurrent_window_configuration): Use allocate_other_vector.
685
686 * lisp.h (allocate_vectorlike): Remove prototype.
687 (allocate_vector, allocate_other_vector, allocate_frame)
688 (allocate_window, allocate_process, allocate_hash_table):
689 Add prototypes.
690
691 * fns.c (Fdelete, larger_vector): Use allocate_vector.
692 (make_hash_table, copy_hash_table): Use allocate_hash_table.
693
063af457
KH
6942001-02-27 Kenichi Handa <handa@etl.go.jp>
695
696 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
697 treat the produced bytes as a valid multibyte sequence.
698
699 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
700 (ccl_driver) <CCL_WriteMultibyteChar2>: Use
701 CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
702 <ccl_finish>: Set ccl->eight_bit_control properly.
703
704 * ccl.h (struct ccl_program): New member eight_bit_control.
705
f58c6494
SM
7062001-02-26 Stefan Monnier <monnier@cs.yale.edu>
707
708 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
709 accessible_keymaps_char_table.
710 (accessible_keymaps_char_table): Obey `is_metized'.
711 (where_is_internal, Fwhere_is_internal): Don't confuse int and
712 Lisp_Object.
713
c596c392
GM
7142001-02-26 Gerd Moellmann <gerd@gnu.org>
715
716 * dispnew.c: Check HAVE_TERM_H before including term.h.
717
425de386
AI
7182001-02-24 Andrew Innes <andrewi@gnu.org>
719
720 * makefile.w32-in: Update copyright notice.
721
2ba11bbd
SM
7222001-02-24 Stefan Monnier <monnier@cs.yale.edu>
723
724 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
725
66c56ed1
KH
7262001-02-24 Kenichi Handa <handa@etl.go.jp>
727
4c1593ce
KH
728 * Makefile.in (lisp): Add international/utf-8.elc.
729
66c56ed1
KH
730 * fontset.c (Fnew_fontset): Fix handling of the case that an
731 element of FONTLIST is a cons of family and registry.
732
796ead7e
JR
7332001-02-23 Jason Rumney <jasonr@gnu.org>
734
735 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
736 to height unconditionally.
737
738 * w32term.c (x_set_glyph_string_background_width): Extend the
739 background face to the end of the drawing area in the text area,
740 only.
741 (x_insert_glyphs): Call window_box_left to obtain the left
742 x-coordinate of the area to shift.
743
744 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
745 safe_run_hooks.
746
f6839838
AI
7472001-02-22 Andrew Innes <andrewi@gnu.org>
748
749 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header
750 files.
751 ($(BLD)\dispnew.obj):
752 ($(BLD)\editfns.obj):
753 ($(BLD)\fileio.obj):
754 ($(BLD)\filelock.obj):
755 ($(BLD)\keyboard.obj):
756 ($(BLD)\w32proc.obj):
757 ($(BLD)\process.obj):
758 ($(BLD)\sysdep.obj): Ditto.
759
760 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
761 header files.
762 ($(BLD)/dispnew.$(O)):
763 ($(BLD)/editfns.$(O)):
764 ($(BLD)/fileio.$(O)):
765 ($(BLD)/filelock.$(O)):
766 ($(BLD)/keyboard.$(O)):
767 ($(BLD)/w32proc.$(O)):
768 ($(BLD)/process.$(O)):
769 ($(BLD)/sysdep.$(O)): Ditto.
770
c224f70b
GM
7712001-02-22 Gerd Moellmann <gerd@gnu.org>
772
51695746
GM
773 * xdisp.c (forward_to_next_line_start): When taking the shortcut
774 at the start of the function, check that the \n in it->c is
775 from the iterator's current position.
776
a61b7058
GM
777 * xdisp.c (handle_single_display_prop): Add parameter
778 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
779 properties which replace the display of text with something else.
780 (handle_display_prop): Call handle_single_display_prop with
781 additional argument saying if we already replaced text display
782 with something else. Use AREF.
783 (with_echo_area_buffer_unwind_data, display_menu_bar)
784 (decode_mode_spec_coding): Use AREF and ASIZE.
785
3473f362
GM
786 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
787 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
788 * vmstime.h: Files removed.
789
2bb58df3
GM
790 * unexencap.c, unexfx2800.c: Files removed.
791
c224f70b
GM
792 * dispnew.c (direct_output_for_insert): Give up if we are showing
793 a message or just cleared the message because we might need to
794 resize the echo area window or display an empty echo area.
795
ffc9ff0c
GM
7962001-02-21 Gerd Moellmann <gerd@gnu.org>
797
0528abe1
GM
798 * xdisp.c (redisplay_internal): Do the
799 mark_window_display_accurate after all windows have been
800 redisplayed because this call resets flags in buffers which are
801 needed for proper redisplay.
802
ffc9ff0c
GM
803 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c: Use
804 display_hourglass_p, start_hourglass, cancel_hourglass instead of
805 the old names.
806
807 * w32term.h (struct x_output): Rename busy_cursor to
808 hourglass_cursor, busy_window to hourglass_window, busy_p to
809 hourglass_p.
810
811 * msdos.h (struct x_output): Rename busy_window to
812 hourglass_window, busy_p to hourglass_p.
813
814 * xterm.h (struct x_output): Rename busy_cursor to
815 hourglass_cursor, busy_window to hourglass_window, busy_p to
816 hourglass_p.
817
818 * xfns.c: Rename everything containing *busy_cursor* and similar
819 to *hourglass*.
820 (syms_of_w32fns): Rename x-busy-pointer-shape to
821 x-hourglass-pointer-shape, display-busy-cursor to
822 display-hourglass, busy-cursor-delay to hourglass-delay.
823
824 * w32fns.c: Rename everything containing *busy_cursor* and similar
825 to *hourglass*.
826 (syms_of_w32fns): Rename x-busy-pointer-shape to
827 x-hourglass-pointer-shape, display-busy-cursor to
828 display-hourglass, busy-cursor-delay to hourglass-delay.
829
830 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
831 of its busy_p flag.
832
833 * dispextern.h (start_hourglass, cancel_hourglass)
834 (display_hourglass_p): Renamed from *busy_cursor*.
835
ab2c5f0a
GM
8362001-02-20 Gerd Moellmann <gerd@gnu.org>
837
d17e49a8
GM
838 * keyboard.c (read_char): When an event from unread-command-events
839 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
840
fa97adf6
GM
841 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
842 equal to the current buffer.
843
ab2c5f0a
GM
844 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
845 nil, otherwise we're left with truncate_lines t when a message
846 is printed with message-truncate-lines bound to t.
847
aeac019e
GM
8482001-02-19 Gerd Moellmann <gerd@gnu.org>
849
c8bc6f65
GM
850 * window.c (Fmove_to_window_line): Undo last change.
851 (displayed_window_lines): Call line_bottom_y to determine
852 the line's bottom position.
853
854 * dispextern.h (line_bottom_y): Add prototype.
855
856 * xdisp.c (line_bottom_y): New function extracted from
857 pos_visible_p.
858 (pos_visible_p): Use it.
859
980a2d69
GM
860 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
861 set redisplaying_p to 0 here instead of in Frecursive_edit.
862 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
863 set redisplaying_p.
864
184d2372
GM
865 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
866 New variables.
867 (syms_of_xdisp): Initialize new variables.
868 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
869 Specbind `inhibit-menubar-update' when updating the menu bar.
870
65048e97
GM
871 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
872 safe_run_hooks.
873
874 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
875 safe_run_hooks.
876
a57c4026
GM
877 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
878 is null.
879
aeac019e
GM
880 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
881 to the start of the file.
882
76846b31
GM
8832001-02-16 Gerd Moellmann <gerd@gnu.org>
884
f3f053f3 885 * window.c (set_window_buffer): Fix last change.
25237df5 886
f3f053f3
GM
887 * window.c (set_window_buffer): Set window's vscroll to 0.
888
dad75588
GM
889 * window.c (coordinates_in_window): Increase width of area
890 where the vertical line can be dragged.
891
c220b753
GM
892 * xterm.c (x_set_glyph_string_background_width): Extend the
893 background face to the end of the drawing area in the text
894 area, only.
895
c56b1c1b
GM
896 * xdisp.c (handle_single_display_prop): Set iterator's position
897 to where the `display' property starts, like for images.
898 (dump_glyph): New function.
899 (dump_glyph_row): Use it. Dump info about marginal areas.
900
901 * dispnew.c (direct_output_for_insert): Recognize more cases where
902 glyphs can be written instead of being inserted.
903
904 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
905 the left x-coordinate of the area to shift.
906
76846b31
GM
907 * dired.c (directory_files_internal): Set result list to nil
908 before retrying.
909
0fc71a77
KH
9102001-02-15 Kenichi Handa <handa@etl.go.jp>
911
912 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
913 invalid multibyte sequence, treat *SRC as a character of
914 eight-bit-graphic.
915
25078b54
EZ
9162001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
917
918 * textprop.c (Fset_text_properties): Doc fix.
919
8399f8a0
GM
9202001-02-15 Gerd Moellmann <gerd@gnu.org>
921
922 * dispnew.c (update_text_area): Undo change of 2001-01-12.
923
9a2a6f73
DL
9242001-02-14 Dave Love <fx@gnu.org>
925
926 * coding.c: Doc and message fixes.
927
bf853fee
AI
9282001-02-14 Andrew Innes <andrewi@gnu.org>
929
930 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
931 Emacs frame above the screen size.
932
78c663d8
GM
9332001-02-14 Gerd Moellmann <gerd@gnu.org>
934
935 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
936
7cc9f69f
GM
9372001-02-13 Gerd Moellmann <gerd@gnu.org>
938
0a411995
GM
939 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
940 case that TO ends up beyond ZV after running before-change-functions.
941
5ddc1b75
GM
942 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
943 the selected window if it is showing the buffer in question.
944
7cc9f69f
GM
945 * dired.c (directory_files_internal): Initialize errno.
946 (toplevel): Include errno.h.
947
2e6621ca
GM
9482001-02-13 Kenichi Handa <handa@etl.go.jp>
949
950 * xfaces.c (best_matching_font): New parameter width_ratio.
951 Multiply avgwidth by width_ratio.
952 (choose_face_font): Call best_matching_font with width_ratio
953 calculated from the column width of C.
954
60222d69
AI
9552001-02-12 Andrew Innes <andrewi@gnu.org>
956
957 The following changes are to draw box lines inside characters area
958 if line-width is negative.
959
960 * w32term.c (x_produce_image_glyph): Pay attention to the case that
961 face->box_line_width is negative.
962 (x_produce_stretch_glyph): Likewise.
963 (x_produce_glyphs): Likewise.
964 (x_estimate_mode_line_height): Likewise.
965 (x_draw_glyph_string_background): Likewise.
966 (x_draw_glyph_string_foreground): Likewise.
967 (x_draw_composite_glyph_string_foreground): Likewise.
968 (x_draw_glyph_string_box): Likewise.
969 (x_draw_image_foreground): Likewise.
970 (x_draw_image_relief): Likewise.
971 (x_draw_image_foreground_1): Likewise.
972 (x_draw_image_glyph_string): Likewise.
973
9804b846
KH
9742001-02-09 Kenichi Handa <handa@etl.go.jp>
975
976 The following changes are to draw box lines inside characters area
977 if line-width is negative.
978
979 * xterm.c (x_produce_image_glyph): Pay attention to the case that
980 face->box_line_width is negative.
981 (x_produce_stretch_glyph): Likewise.
982 (x_produce_glyphs): Likewise.
983 (x_estimate_mode_line_height): Likewise.
984 (x_draw_glyph_string_background): Likewise.
985 (x_draw_glyph_string_foreground): Likewise.
986 (x_draw_composite_glyph_string_foreground): Likewise.
987 (x_draw_glyph_string_box): Likewise.
988 (x_draw_image_foreground): Likewise.
989 (x_draw_image_relief): Likewise.
990 (x_draw_image_foreground_1): Likewise.
991 (x_draw_image_glyph_string): Likewise.
992
993 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
994 and :line-width can be negative.
995 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be
996 negative.
997
49be9f70
JR
9982001-02-09 Jason Rumney <jasonr@gnu.org>
999
1000 * w32term.c (w32_encode_char): Treat eight bit graphic and control
1001 characters the same as ASCII and latin-1.
1002 (x_display_and_set_cursor): Check for the focus frame's selected
1003 window instead of selected_window.
1004 (x_after_update_window_line): Don't clear if frame's internal
1005 border width is zero.
1006 (x_new_font): Don't change a tooltip's size.
1007 (w32_initialize): Set char_ins_del_ok to 1.
1008
1009 * w32fns.c (Fx_show_tip): Fix calls to make_number.
1010 (x_set_font): If font hasn't changed, avoid recomputing
1011 faces and other things.
1012 (x_set_tool_bar_lines): Do nothing if frame is
1013 minibuffer-only,
1014 (Fx_create_frame): Add the tool bar height to the frame
1015 height.
1016 (x_create_tip_frame): Prevent changing the tooltip's
1017 background color by specifying a color for the default font
1018 in .Xdefaults.
1019 (Qcancel_timer): New variable.
1020 (syms_of_w32fns): Initialize and staticpro it.
1021 (Fx_hide_tip, Fx_show_tip): Use it.
1022 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
1023 the timer.
1024 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
1025
1026 * w32.c (init_environment): Duplicate local string before putenv.
1027
555e35d2
SZ
10282001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
1029
1030 * charset.c (Fstring): A typo.
1031
19c92c94
KH
10322001-02-09 Kenichi Handa <handa@etl.go.jp>
1033
e47a1c33
KH
1034 * charset.c (Fstring): If all arguments are less than 256, return
1035 a unibyte string.
1036
1037 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
1038 return a unibyte string.
1039
19c92c94
KH
1040 * coding.c (code_convert_region): After detecting a coding, if
1041 nothing found, set coding->composing to COMPOSITION_NO.
1042 (decode_coding_string): Likewise.
1043
d8e675f5
SM
10442001-02-08 Stefan Monnier <monnier@cs.yale.edu>
1045
1046 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
1047 to avoid overflow.
1048
bd503487
KH
10492001-02-07 Kenichi Handa <handa@etl.go.jp>
1050
1051 * charset.c (parse_str_to_multibyte): New function.
1052
1053 * charset.h (parse_str_to_multibyte): Extern it.
1054
1055 * print.c (print_string): If we are going to print a unibyte
1056 string into a multibyte buffer, convert the string to multibyte by
1057 str_to_multibyte.
1058
a8370d72
AI
10592001-02-06 Andrew Innes <andrewi@gnu.org>
1060
1061 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
1062 been created. It seems we can get sent window messages such as
1063 WM_ERASEBKGND before we properly update a frame.
1064
c363a1d6
GM
10652001-02-06 Gerd Moellmann <gerd@gnu.org>
1066
1067 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
1068 Avoid some unnecessary cursor positioning.
1069
a08332c0
GM
10702001-02-05 Gerd Moellmann <gerd@gnu.org>
1071
1072 * xfaces.c (split_font_name): Compute numeric value of
1073 XLFD_AVGWIDTH.
1074 (LFACE_AVGWIDTH): New macro.
1075 (LFACEP): Use AREF.
1076 (check_lface_attrs): Check LFACE_AVGWIDTH.
1077 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
1078 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
1079 (merge_face_vectors): Check LFACE_AVGWIDTH.
1080 (Finternal_make_lisp_face): Use AREF.
1081 (xm_set_menu_resources_from_menu_face)
1082 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
1083 (Finternal_lisp_face_empty_p): Use AREF.
1084 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
1085 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
1086 Compare average widths..
1087 (best_matching_font): Arrange for comparing average widths.
1088
1089 * dispextern.h (enum lface_attribute_index): Add
1090 LFACE_AVGWIDTH_INDEX (invisible from Lisp).
1091
5cb3c8d4
DL
10922001-02-05 Dave Love <fx@gnu.org>
1093
1094 * puresize.h: Revert last change following loadup.el change.
1095
193fba87
AI
10962001-02-05 Andrew Innes <andrewi@gnu.org>
1097
1098 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
1099 invocation of temacs, to work with Windows 2000.
1100 (bootstrap-emacs): Ditto.
1101
e16f52ce
GM
11022001-02-05 Gerd Moellmann <gerd@gnu.org>
1103
7a58ab59
GM
1104 * xterm.c (x_display_and_set_cursor): Check for the focus
1105 frame's selected window instead of selected_window.
1106
e89aaabd
GM
1107 * xdisp.c (try_scrolling): If point is in the line below the
1108 window, make sure to move the iterator at least a canonical
1109 char height down.
1110
e16f52ce
GM
1111 * window.c (Fmove_to_window_line): Don't add 1 if window is
1112 vscrolled.
1113
789ce875
KH
11142001-02-05 Kenichi Handa <handa@etl.go.jp>
1115
1116 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not. If
1117 invalid, execute CCL_INVALID_CMD.
1118 (ccl_driver): If the CCL program is terminated because of
1119 CCL_STAT_INVALID_CMD, copy the remaining source data to the
1120 destination instead of throwing them away.
1121
20b28f82
GM
11222001-02-02 Gerd Moellmann <gerd@gnu.org>
1123
79fb38c0
GM
1124 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
1125 faces and other things.
1126
20b28f82
GM
1127 * xdisp.c (get_next_display_element): Fix case of empty
1128 display table entry.
1129
5a72551e
EZ
11302001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
1131
eb24d0bf
EZ
1132 * editfns.c (Fconstrain_to_field): Doc fix.
1133
6a3f48c7
EZ
1134 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
1135 into `thoroughly', to make it consistent with the doc string.
1136
5a72551e
EZ
1137 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
1138
01acdb05
GM
11392001-02-01 Gerd Moellmann <gerd@gnu.org>
1140
0353b28f
GM
1141 * search.c (search_buffer): Call set_search_regs with a byte
1142 position, not a character position.
1143
01acdb05
GM
1144 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
1145 minibuffer-only,
1146
e86b5133
EZ
11472001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
1148
1149 * frame.c (Fmodify_frame_parameters): Doc fix.
1150
7442878f
GM
11512001-01-31 Gerd Moellmann <gerd@gnu.org>
1152
01acdb05
GM
1153 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
1154 identifier which is not reserved by Standard C.
1155
7442878f
GM
1156 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
1157
1158 * window.c (enum window_part): New enumeration.
1159 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
1160 Qright_bitmap_area.
1161 (coordinates_in_window): Return an enumerator from enum
1162 window_part. Fix handling of right scroll bar.
1163 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
1164 `right-fringe' instead of `left-bitmap-area' and
1165 `right-bitmap-area'. Use enumerators from enum window_part
1166 instead of hard-coded integers.
1167 (check_window_containing, window_from_coordinates): Use
1168 enumerators from enum window_part instead of hard-coded integers.
1169 (syms_of_window): Replace Qleft_bitmap_area and
1170 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
1171
7c132cba
EZ
11722001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
1173
1174 * editfns.c (Fformat_time_string): Doc fix.
1175
c359dd9e
SM
11762001-01-31 Stefan Monnier <monnier@cs.yale.edu>
1177
1178 * keymap.c (Fwhere_is_internal): Use the first valid binding
1179 if no ascii binding is found (when firstonly is t).
1180
ce070307
GM
11812001-01-31 Gerd Moellmann <gerd@gnu.org>
1182
b4f30ec5
GM
1183 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
1184 instead of Finteractive_p.
1185
1186 * lisp.h (interactive_p): Add prototype.
1187
1188 * eval.c (interactive_p): New function.
1189 (Finteractive_p): Use it.
1190
ce070307
GM
1191 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
1192
f57b6e64
DL
11932001-01-31 Dave Love <fx@gnu.org>
1194
d61c7afe
DL
1195 * .gdbinit (hook-run): Define to run xreload.
1196
f57b6e64
DL
1197 * textprop.c (Fset_text_properties): Fix newline in doc string.
1198
eef93f99
GM
11992001-01-30 Gerd Moellmann <gerd@gnu.org>
1200
1201 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp): Use
1202 DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
1203
1204 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
1205 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
1206 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
1207
1208 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
1209 height.
1210
d9c1f6f9
DL
12112001-01-30 Dave Love <fx@gnu.org>
1212
1213 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
1214 AFTER_POTENTIAL_GC.
1215
e8f044a0
GM
12162001-01-29 Gerd Moellmann <gerd@gnu.org>
1217
1218 * bytecode.c (Fbyte_code) <Bcurrent_column>: Add
1219 BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
1220
8e1db7b3
EZ
12212001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
1222
1223 * textprop.c (Fset_text_properties): Doc fix.
1224
4eefd9d2
GM
12252001-01-29 Gerd Moellmann <gerd@gnu.org>
1226
1227 * xdisp.c (forward_to_next_line_start): Remove xassert.
1228
fccb8288
EZ
12292001-01-29 Jason Rumney <jasonr@gnu.org>
1230
4eefd9d2 1231 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
fccb8288
EZ
1232 returning without releasing it.
1233
76581eab
KH
12342001-01-29 Kenichi Handa <handa@etl.go.jp>
1235
1236 * w32fns.c (w32_font_match): Allocate three more bytes to regex
1237 for '^', '$', and '\0'.
1238
83a96b4d
AC
12392001-01-28 Andrew Choi <akochoi@i-cable.com>
1240
5604ec34
AC
1241 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
1242 regex for '^', '$', and '\0'.
1243
83a96b4d
AC
1244 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
1245 only if current_sblock has been initialized.
1246
1247 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
1248 terminal frame even if it is the only visible frame.
1249
c09a6440
KH
12502001-01-28 Kenichi Handa <handa@etl.go.jp>
1251
1252 * fontset.c (font_family_registry): Even if FONTNAME conform to
1253 XLFD, if it specifies other fields than family and registry,
1254 return FONTANME. New argument FORCE if nonzero cancel that
1255 feature.
1256 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
1257 a signle byte character. Don't set FAMILY part to nil here. It
1258 is handled by the caller choose_face_font.
1259 (Fnew_fontset): Call font_family_registry with FORCE 0.
1260 (Fset_fontset_font): Likewise.
1261
4dcd74e6
GM
12622001-01-27 Gerd Moellmann <gerd@gnu.org>
1263
1264 * xdisp.c (display_line): Don't treat a newline as fitting
1265 on the line.
1266
d2906bf8
GM
12672001-01-26 Gerd Moellmann <gerd@gnu.org>
1268
0130fe1a
GM
1269 * window.c (size_window): Set the window's orig_top to nil when
1270 changing heights, so that a future shrink_mini_window won't
1271 restore a bogus height.
1272
550f0e6a
GM
1273 * frame.c (do_switch_frame): If selected frame has a mini-window,
1274 resize that to exact size.
1275
b7b20fbd
GM
1276 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
1277
a47b7816
GM
1278 * xdisp.c (display_line): Simplify check for glyphs fitting
1279 entirely in the line.
1280
d2906bf8
GM
1281 * xfns.c (xic_style): New variable.
1282 (create_frame_xic): Move static variable to global scope for
550f0e6a 1283 the case that `static' gets defined away.
d2906bf8 1284
73df2b1e
KH
12852001-01-26 Kenichi Handa <handa@etl.go.jp>
1286
1287 * coding.c (decode_coding): Set a flag for inhibiting
1288 inconsistent eol.
1289 (code_convert_region): Always set saved_coding_symbol.
1290 (decode_coding_string): Likewise. Update coding->symbol when we
1291 encounter a inconsistent eol by the same way as
1292 code_convert_region.
1293
6613cfc4
GM
12942001-01-25 Gerd Moellmann <gerd@gnu.org>
1295
c5e6e06b
GM
1296 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
1297 XClearArea.
1298
1299 * xterm.c (x_after_update_window_line): Don't clear if frame's
1300 internal border width is zero.
1301 (x_clear_area): New function.
1302 (x_after_update_window_line, x_clear_end_of_line)
1303 (x_scroll_bar_create, x_scroll_bar_set_handle)
1304 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
1305 instead of XClearArea.
1306
1307 * xterm.h (x_clear_area): Add prototype.
1308
6613cfc4
GM
1309 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
1310 which doesn't seem necessary anymore with Lesstif 0.92.
1311
650cc6cc
DL
13122001-01-25 Dave Love <fx@gnu.org>
1313
34ac3367
DL
1314 * puresize.h (BASE_PURESIZE): Up to 720000.
1315
650cc6cc
DL
1316 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
1317
5e37dc22
GM
13182001-01-25 Gerd Moellmann <gerd@gnu.org>
1319
e1e441f9
GM
1320 * xdisp.c (echo_area_display): Don't call redisplay_internal
1321 when Emacs is shutting down. We can't run hooks etc. that
1322 would be necessary to do a redisplay.
1323
5e37dc22
GM
1324 * lread.c (read_integer): Use type EMACS_INT instead of int.
1325
0fb94c7f
EZ
13262001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
1327
1328 * ccl.c (ccl_driver): Fix last change.
1329
e3778624
KH
13302001-01-25 Kenichi Handa <handa@etl.go.jp>
1331
1332 * ccl.h (sturct ccl_program): New member suppress_error.
1333
bb264518 1334 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
e3778624
KH
1335 insert error message to the output.
1336 (setup_ccl_program): Initialize ccl->suppress_error to 0.
1337
1338 * coding.h (struct coding_system): New member suppress_error.
1339
1340 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
1341 (Fset_terminal_coding_system_internal): Set the member
1342 suppress_error to 1.
1343 (Fset_safe_terminal_coding_system_internal): Likewise.
1344
245ed2b1
SM
13452001-01-24 Stefan Monnier <monnier@cs.yale.edu>
1346
1347 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
1348 as if it was a `charset'.
1349
f9aaedb6
GM
13502001-01-24 Gerd Moellmann <gerd@gnu.org>
1351
1352 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
1353 value in where_is_cache; the next lookup in the cache returns
1354 something bogus if we do.
1355
c3902c3e
EZ
13562001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
1357
1358 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
1359 if HAVE_WINDOW_SYSTEM isn't defined.
1360
3497f73e
GM
13612001-01-24 Gerd Moellmann <gerd@gnu.org>
1362
e7e41584
GM
1363 * fns.c (sweep_weak_table): Fix code taking items out of
1364 the hash collision chain. Some cleanup.
1365
3497f73e
GM
1366 * xterm.c (x_new_font): Don't change a tooltip's size.
1367
1368 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
1369 background color by specifying a color for the default font
1370 in .Xdefaults.
1371
3d48e687
KH
13722001-01-24 Kenichi Handa <handa@etl.go.jp>
1373
96531b20
KH
1374 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
1375 a workaround for SunOS 4's cc.
1376 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
1377 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
1378 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
1379 statement.
3d48e687 1380
a30629d2
GM
13812001-01-23 Gerd Moellmann <gerd@gnu.org>
1382
1383 * xterm.c (x_set_window_size_1): New function extracted from
1384 x_set_window_size.
1385 (x_set_window_size): Use it.
1386 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
1387 doesn't have a widget, like tooltips.
1388
5a43decf
EZ
13892001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
1390
1391 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc
1392 fix.
1393
b0e98867
KH
13942001-01-23 Kenichi Handa <handa@etl.go.jp>
1395
1396 * fns.c (Fset_char_table_default): Fix to make sub char-table
1397 correctly.
1398
50606b4c
GM
13992001-01-22 Gerd Moellmann <gerd@gnu.org>
1400
cb2ddc53 1401 * xdisp.c (build_desired_tool_bar_string): Make sure we have
a30629d2 1402 a desired tool bar string, even if there are no tool bar
cb2ddc53
GM
1403 items.
1404
57c28064
GM
1405 * xdisp.c (Ftool_bar_lines_needed): New function.
1406 (syms_of_xdisp): Defsubr it.
1407
50606b4c
GM
1408 * editfns.c (Fformat): Don't extend text properties from arguments
1409 to padding chars in the result.
1410
2f169c38
EZ
14112001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
1412
1413 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
1414
0f32f023
AI
14152001-01-20 Andrew Innes <andrewi@gnu.org>
1416
1417 * w32term.c (w32_ring_bell): Only support visible bell on w32
1418 frames.
1419 (w32_initialize): Don't set term hooks that aren't actually needed
1420 in windowed mode.
1421
1422 * xfaces.c (realize_default_face):
1423 (realize_face):
1424 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
1425
1426 * xdisp.c (handle_single_display_prop): Remove references to
1427 FRAME_W32_CONSOLE_P.
1428
1429 * dispnew.c (Fredraw_frame): Remove reference to
1430 FRAME_W32_CONSOLE_P.
1431
1432 * frame.h (output_method): Remove output_w32_console method.
1433 (FRAME_W32_CONSOLE_P): Remove macro.
1434
1435 * frame.c (Qw32_console): Remove variable.
1436 (Fframep): Remove references to it.
1437 (syms_of_frame): Ditto.
1438 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
1439
1440 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
1441 redefinition.
1442
7173eada
KH
14432001-01-20 Kenichi Handa <handa@etl.go.jp>
1444
1445 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
1446
755b45ce
AI
14472001-01-19 Andrew Innes <andrewi@gnu.org>
1448
1449 * w32.c (init_environment): Add a version-independent site-lisp
1450 directory to EMACSLOADPATH, after the version dependent one.
1451
0a949811
GM
14522001-01-19 Gerd Moellmann <gerd@gnu.org>
1453
8501998a
GM
1454 * editfns.c (Fbuffer_substring): Doc fix.
1455
0a949811
GM
1456 * xdisp.c (message_dolog, message2, message2_nolog): Rename
1457 parameter LEN to NBYTES.
1458
e6ebcbbe
KH
14592001-01-19 Kenichi Handa <handa@etl.go.jp>
1460
200ecca2
KH
1461 * charset.c (strwidth): Use c_string_width.
1462 (c_string_width): New function.
1463 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
1464 Caller changed.
1465
1466 * charset.h (c_string_width, lisp_string_width): Extern them.
1467
1468 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
1469
e6ebcbbe
KH
1470 * indent.c (check_composition): Check validity of composition.
1471
200ecca2
KH
1472 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
1473 characters by calling c_string_width.
1474 (x_consider_frame_title): Get byte length of frame tile string
1475 correctly.
1476 (display_mode_element): Pay attention to width of non-ASCII
1477 characters by calling strwidth.
1478
8692ca92
GM
14792001-01-18 Gerd Moellmann <gerd@gnu.org>
1480
8962e303
GM
1481 * xfns.c (Qcancel_timer): New variable.
1482 (syms_of_xfns): Initialize and staticpro it.
1483 (Fx_hide_tip, Fx_show_tip): Use it.
1484 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
1485 the timer.
1486 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
1487
91523be9
GM
1488 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
1489
1490 * window.h (WINDOW_LIVE_P): New macro.
1491
b0b7ed0e
GM
1492 * window.c (window_size_fixed): New variable.
1493 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
1494 the doc string.
1495
06bccf8e
GM
1496 * eval.c (specbind): If binding a per-buffer variable which
1497 doesn't have a buffer-local value in the current buffer, change
1498 the global value by changing the value of the symbol bound in all
1499 buffers not having their own value, to make it consistent with
1500 what happens with other buffer-local variables.
1501
8692ca92
GM
1502 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
1503
1504 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
1505 when searching for a newline.
1506
bb3a3b50
KH
15072001-01-18 Kenichi Handa <handa@etl.go.jp>
1508
1509 * xdisp.c (display_string): Fix previous change.
1510
c2cc16fa
JR
15112001-01-18 Jason Rumney <jasonr@gnu.org>
1512
1513 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
1514 GLYPH_DEBUG is defined.
1515 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
1516 true for images with `:ascent 100'.
1517 (x_set_mouse_face_gc): If the last used mouse face has gone in the
1518 meantime, use face MOUSE_FACE_ID.
1519 If first glyph isn't a character glyph, use the ASCII NUL
1520 character to determine the face.
1521 (expose_area): Do not treat left margin specially.
1522 (note_mode_line_highlight): If no local_map, check global keymap.
1523 (note_mouse_highlight): Initialize overlay.
1524 (clear_mouse_face): Don't return if tip_frame is
1525 non-nil.
1526 (show_scroll_bars): Remove unused function.
1527 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
1528 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
1529 Clip to row.
1530 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be
1531 nil.
1532 (x_free_frame_resources): Unload relief colors.
1533
9c11f79e
GM
15342001-01-17 Gerd Moellmann <gerd@gnu.org>
1535
3aec8722
GM
1536 * xdisp.c (forward_to_next_line_start): Avoid calling
1537 get_next_display_element when the newline is already found. This
1538 may change the iterator's position, when its current position is
1539 equal to the iterator's stop_charpos.
1540
f3ffc2c3
GM
1541 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
1542 zero, use this method only at the end of a line.
1543
a86110a8
GM
1544 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
1545 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
1546 if SCALABLE_FONTS_P is set.
1547
d26d6fd9
GM
1548 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
1549 so that scalable fonts are included.
1550
9c11f79e
GM
1551 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
1552 In the cache, use a key containing the information if scalable
1553 fonts are included.
1554 (x_load_font): Adapt to change of keys in the font cache.
1555
15562001-01-17 Kim F. Storm <storm@filanet.dk>
1557
d26d6fd9
GM
1558 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
1559 XListFonts to take advantage of font caching.
1560
9c11f79e
GM
1561 * xterm.c (x_list_fonts): Ensure caching font information when
1562 called for a null frame, which is the case frequently when Emacs
1563 starts.
1564
51446987
GM
15652001-01-17 Gerd Moellmann <gerd@gnu.org>
1566
f864120f
GM
1567 * xfns.c (QCconversion): Replaces QCalgorithm.
1568
1569 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
1570
1571 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
1572 of :algorithm.
1573
e37d1417
GM
1574 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
1575 not everything could be displayed.
1576
51446987
GM
1577 * line.h, x-list-font.c: Files removed because unused.
1578
9ad4f3e5
AI
15792001-01-17 Andrew Innes <andrewi@gnu.org>
1580
1581 * dired.c (directory_files_internal): Convert result from readdir
1582 to a unibyte string initially, to avoid possible misinterpretation
1583 of some bytes as the internal form of Emacs characters.
1584
2eda09b5
KH
15852001-01-17 Kenichi Handa <handa@etl.go.jp>
1586
1587 * fns.c (concat): Be sure to avoid putting the same `composition'
1588 property on the adjacent regions.
1589
826f3788
GM
15902001-01-16 Gerd Moellmann <gerd@gnu.org>
1591
f251459d
GM
1592 * window.c (Fset_window_hscroll): Don't set window's min_hscroll
1593 here.
1594 (Fscroll_right, Fscroll_left): Set it here instead, if called
1595 interactively.
1596
d57b83b3
GM
1597 * buffer.c (Fset_buffer_modified_p): Set buffer's
1598 prevent_redisplay_optimizations_p flag.
1599
826f3788
GM
1600 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
1601 * sysdep.c, vmsproc.c, xselect.c: Call
1602 redisplay_preserve_echo_area with additional arg.
1603
1604 * dispextern.h, lisp.h (redisplay_preserve_echo_area): Change
1605 prototype.
1606
1607 * xdisp.c (redisplay_preserve_echo_area): Add parameter
1608 FROM_WHERE, for debugging.
1609
261d788b
KH
16102001-01-16 Kenichi Handa <handa@etl.go.jp>
1611
1612 * ccl.c (Fregister_ccl_program): Handle the return value of
1613 resolve_symbol_ccl_program correctly.
bda6b481
KH
1614 (CCL_Extension): Fix typo (originally CCL_Extention). Caller
1615 changed.
261d788b 1616
bccee4f2
GM
16172001-01-15 Gerd Moellmann <gerd@gnu.org>
1618
e4ded23c
GM
1619 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
1620 has gone in the meantime, use face MOUSE_FACE_ID.
1621
ae24cb3b
GM
1622 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: If
1623 x_display_info_for_display returns null, don't try to close
1624 the display; we didn't open it.
1625
bccee4f2
GM
1626 * dispnew.c (save_or_restore_current_matrices): Function removed.
1627 (save_current_matrix, restore_current_matrix): New functions.
1628 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
1629 restore the frame's current matrix. Due to the glyph pointer
1630 setup done in adjust_glyph_matrix, there is no easy way to make
1631 saving the current matrix in the desired matrix generally correct,
1632 so don't try it.
1633
ebeccffa
KH
16342001-01-15 Kenichi Handa <handa@etl.go.jp>
1635
1636 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
1637 truncation glyphs.
1638 (display_line): Optimize for wide characters.
e4ded23c 1639 (display_string): Don't try to display a multi-column character
ebeccffa
KH
1640 partially. On ttys, produce more than one truncation glyph for
1641 multi-column characters that don't fit on the line.
1642
64388126
KH
16432001-01-13 Kenichi Handa <handa@etl.go.jp>
1644
1645 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]: Define
1646 it instead of WORDS_BIGENDIAN. Caller changed.
1647
8edb0a6f
JR
16482001-01-13 Jason Rumney <jasonr@gnu.org>
1649
1650 * w32fns.c (Fimage_size, image_ascent, lookup_image)
1651 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
1652 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1653 (tiff_format, gif_format, gs_format): Adapt to change of image
1654 margins.
1655
1656 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
1657 (x_draw_image_relief, x_draw_image_foreground_1)
1658 (x_draw_image_glyph_string): Adapt to change of image margins.
1659
1660 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
1661 variables.
1662
1663 * w32bdf.c (search_file_line, get_cached_font_char)
1664 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
1665
1666 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
1667
1668 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
1669 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
1670 (Fw32_send_sys_command): Remove unused variables.
1671 (w32_msg_pump): Add parentheses.
1672
1673 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
1674 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
1675 Add parentheses.
1676
4956d1ef
GM
16772001-01-12 Gerd Moellmann <gerd@gnu.org>
1678
b30623be
GM
1679 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
1680 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
1681 being a pair of margins.
1682 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
1683 to DEFVAR_LISP. Extend doc.
1684
1685 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
1686 margins.
1687 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
1688 pair of integers `(X . Y)', use X for the horizontal and Y for the
1689 vertical margin.
1690 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
1691 (parse_image_spec): Check it.
1692 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1693 (tiff_format, gif_format, gs_format): Use
1694 IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
1695
1696 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1697 (x_draw_image_relief, x_draw_image_foreground_1)
1698 (x_draw_image_glyph_string): Adapt to the change of image margins.
1699
1700 * dispextern.h (struct image): Replace member `margin' with
1701 `hmargin' and `vmargin'.
1702
4554cc79
GM
1703 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
1704 and GLYPHS.
1705
1706 * dispnew.c (update_text_area): Put code which decrements the
1707 stop position when the row's face extends to the end of the
3bffc665 1708 line in #if 0.
4554cc79 1709
3cccce8d
GM
1710 * xfns.c (x_set_mouse_color): Fix color allocation.
1711
4956d1ef
GM
1712 * keyboard.c: Call get_local_map with new argument list.
1713
1714 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
1715
1716 * intervals.h (enum map_property): Removed.
1717 (get_local_map): Change prototype.
1718
1719 * keymap.c: Call get_local_map with new argument list.
1720 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
1721
2c2ff7f2
GM
17222001-01-11 Gerd Moellmann <gerd@gnu.org>
1723
a23887b9
GM
1724 * xdisp.c (build_desired_tool_bar_string): Correct the computation
1725 of the size needed for the tool bar string. For the last image,
1726 use a `display' property that reaches to the end of the string.
1727
a7ee2d2e
GM
1728 * xselect.c (selection_request_dpyinfo): New variable.
1729 (x_handle_selection_request): Set it.
1730 (x_selection_request_lisp_error): Don't call
1731 x_decline_selection_request if selection request's display has
1732 been closed.
1733
2c2ff7f2
GM
1734 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]: Do
1735 the unregister_colors before calling XFreeColors.
1736
457b792c
GM
17372001-01-10 Dave Love <fx@gnu.org>
1738
1739 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
1740 ${SOME_MACHINE_LISP}, not ${lisp}.
1741
c1efd260
GM
17422001-01-10 Gerd Moellmann <gerd@gnu.org>
1743
a98b5ed9 1744 * xdisp.c (display_line): On ttys, produce more than one
4554cc79 1745 truncation glyph for multi-column characters that don't fit on the
a98b5ed9
GM
1746 line.
1747
ac95a621
GM
1748 * xselect.c (x_reply_selection_request): Add a comment.
1749
c1efd260
GM
1750 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
1751 XkbGetNames instead of XkbGetKeyboard.
1752
1bfb1345
DL
17532001-01-10 Dave Love <fx@gnu.org>
1754
1755 * sysdep.c (random): Revert the declaration.
1756
38119822
GM
17572001-01-09 Gerd Moellmann <gerd@gnu.org>
1758
35f464a7
GM
1759 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]: Call
1760 function string_bytes.
1761 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
1762
1763 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
1764 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
1765 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
1766 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
1767 the current sblock.
1768 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
1769 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
1770 after sweeping strings, and at the end.
1771 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
1772
38119822
GM
1773 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
1774 ensure that pop_message is called.
1775
1776 * keyboard.c (Fexecute_extended_command): Use a
1777 record_unwind_protect to ensure that pop_message is called.
1778
1779 * lisp.h (push_message_unwind): Add prototype.
1780
1781 * xdisp.c (push_message_unwind): New function.
1782
1783 * fileio.c (do_auto_save_unwind): Do the pop_message here
1784 instead of in Fdo_auto_save.
1785 (Fdo_auto_save): Don't call pop_message.
1786
f47a9ec4
KR
17872001-01-08 Ken Raeburn <raeburn@gnu.org>
1788
1789 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
1790 in inner block.
1791
a758f97d
GM
17922001-01-08 Gerd Moellmann <gerd@gnu.org>
1793
6d0afc03
GM
1794 * window.c (window_scroll_pixel_based): Adjust glyph matrices
1795 when increasing window's vscroll.
1796
a758f97d
GM
1797 * macros.c (Qkbd_macro_termination_hook): New variable.
1798 (syms_of_macros): Initialize and staticpro it.
1799 (pop_kbd_macro): Run kbd-macro-termination-hook.
1800
1801 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
1802
1bfb1345 18032001-01-07 Dave Love <fx@gnu.org>
64d4ec0f
DL
1804
1805 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
1806 arglist, for documentation's sake.
1807
0dac6924
AI
18082001-01-06 Andrew Innes <andrewi@gnu.org>
1809
1810 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
1811 of *.pdb.
1812
8182406a
AI
18132001-01-05 Andrew Innes <andrewi@gnu.org>
1814
1815 * term.c (update_end): Don't check updating_frame; for some reason
1816 this can be 0 sometimes, such as after dismissing a popup menu,
1817 and isn't necessary given the explicit frame argument.
1818
3828218c
GM
18192001-01-05 Gerd Moellmann <gerd@gnu.org>
1820
1821 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
1822 on some systems, and an unsigned long on others, like FreeBSD 4.1.
1823
2f5ded21
GM
18242001-01-04 Gerd Moellmann <gerd@gnu.org>
1825
1826 * xterm.c (clear_mouse_face): Don't return if tip_frame is
1827 non-nil.
1828
1829 * xfns.c (x_create_tip_frame): Preserve the value of
1830 face_change_count around the creation of the tip frame.
1831
1832 * xfns.c (last_show_tip_args): New variable.
1833 (compute_tip_xy): New function.
1834 (Fx_show_tip): Reuse an existing tip frame, if possible.
1835 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
1836
dfad65fa
DL
18372001-01-04 Dave Love <fx@gnu.org>
1838
64d4ec0f
DL
1839 * editfns.c (Fformat): Doc fix.
1840
dfad65fa
DL
1841 * systime.h (set_file_times): Prototype.
1842
1843 * widget.h (EmacsFrameSetCharSize_): Prototype.
1844
1845 * sysdep.c (random, srandom): Declare explicitly.
1846
1847 * dispextern.h (move_it_vertically_backward): Declare.
1848
85fe3b5e
GM
18492001-01-04 Gerd Moellmann <gerd@gnu.org>
1850
0f2ac578
GM
1851 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
1852 like in Fx_create_frame.
1853
482cca61
GM
1854 * xfaces.c (set_font_frame_param): Don't do anything for
1855 non-graphical frames.
1856
85fe3b5e
GM
1857 * window.c (Fdelete_other_windows): Set window's window_end_valid
1858 to nil when changing the window's start. Don't change the
1859 window's start when its top position hasn't changed. If we do,
1860 this will set the window's optional_new_start, which act's like a
1861 force_start during redisplay with C-x 1 M-> under particular
1862 circumstances (see report from Per Starback to emacs-pretest-bug
1863 from 2000-12-13.).
1864
3e99d3b4
GM
18652001-01-03 Gerd Moellmann <gerd@gnu.org>
1866
a77dc1ec
GM
1867 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
1868 short cut at the start of the function. Add an assertion.
1869 (reseat_at_next_visible_line_start): Add an assertion.
1870
2f3cad6c
GM
1871 * window.c (Frecenter): When changing the window start, set the
1872 window's window_end_valid to nil.
1873 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
1874
1875 * dispextern.h (move_it_past_eol): Add prototype.
1876
1877 * xdisp.c (move_it_past_eol): New function.
1878
3e99d3b4
GM
1879 * window.c (Fwindow_end): Doc fix.
1880
18812001-01-03 Dave Love <fx@gnu.org>
1882
1883 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3
1884 kluge.
1885
bafb434c
GM
18862001-01-03 Gerd Moellmann <gerd@gnu.org>
1887
1888 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
1889 the enabled_p flag of the glyph row at window_end_vpos to 0.
1890 (handle_single_display_prop): Fix last change.
1891
5297fb00
RS
18922001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
1893
1894 * window.c (Frecenter): Doc fix.
1895
13d6a61c
AI
18962001-01-02 Andrew Innes <andrewi@gnu.org>
1897
1898 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
1899
1900 * frame.h (output_method): Add output_w32_console method.
1901 (FRAME_W32_CONSOLE_P): New macro.
1902
1903 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
1904 use output_w32_console method.
1905 (Qw32_console): New Lisp_Object.
1906 (Fframep): Return it.
1907 (syms_of_frame): Init it.
1908 (Fframe_parameters): Report w32console as font for w32_console
1909 frames.
1910
1911 * xfaces.c (realize_default_face): Set face foreground and
1912 background to unspecified for w32_console frames.
1913 (realize_face): Realize face cache for w32_console frames.
1914 (realize_tty_face): Accept w32_console frames.
1915
1916 * xdisp.c (handle_single_display_prop): Return if frame is
1917 w32_console.
1918 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
1919 necessary, even if running interactively.
1920
1921 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
1922 w32_console frames.
1923
1924 * w32term.c (x_update_begin):
1925 (x_update_end):
1926 (x_clear_frame):
1927 (x_ins_del_lines):
1928 (x_change_line_highlight):
1929 (x_delete_glyphs):
1930 (w32_ring_bell):
1931 (x_update_begin):
1932 (x_update_end):
1933 (w32_reassert_line_highlight):
1934 (w32_frame_rehighlight):
1935 (w32_frame_raise_lower): Do nothing if not w32 frame.
1936
1937 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
1938
1939 * w32fns.c (Fx_display_color_cells): Determine correct value, when
1940 system doesn't tell us directly.
1941 (Fx_display_visual_class): Implement properly.
1942
d6bb0c0d
GM
19432001-01-02 Gerd Moellmann <gerd@gnu.org>
1944
1945 * window.c (Frecenter): Handle centering in graphical frames
1946 specially. Centering on the basis of line counts doesn't work
1947 reliably with variable-height lines.
1948
315f5865
EZ
19492001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
1950
1951 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
1952 and al[].
1953
1954 * composite.c (run_composition_function): Remove unused variable
1955 `val'.
1956 (update_compositions): Remove unused variable `hook'.
1957
1958 * intervals.c (get_local_map): Remove unused variable `tem'.
1959
1960 * doprnt.c (doprnt1): Remove unused variable `size'.
1961
1962 * fns.c (Flength): Remove unused variable `tail'.
1963 (Fdelete): Remove unused variable `size'.
1964
1965 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
1966 and `gcpro2'.
1967
1968 * doc.c (Fsnarf_documentation): Remove unused variables `fun' and
1969 `tem'.
1970
1971 * data.c (find_symbol_value): Remove extra 3rd argument in the
1972 call to swap_in_symval_forwarding.
1973
1974 * undo.c (Fprimitive_undo): Remove unused block-scope variable
1975 `end'.
1976
1977 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
1978 (trivial_regexp_p): Remove unused variable `c'.
1979 (boyer_moore): Remove unused variable `k'.
1980
1981 * indent.c (current_column): Remove unused variable `stopchar'.
1982 (Fcompute_motion): Remove unused variable `contin'.
1983
1984 * casefiddle.c (casify_object): Remove unused variable `tolen'.
1985
1986 * dired.c (directory_files_internal): Fix a typo in a comment.
1987 Remove an unused variable `handler'.
1988 (file_name_completion): Remove unused function-scope variable
1989 `dp'.
1990 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
1991 on BSD4_2.
1992
1993 * fileio.c (e_write): Remove unused variable
1994 `require_encoding_p'.
1995
1996 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
1997 and `buf'.
1998 (Fmarker_insertion_type): Remove unused variable `buf'.
1999
2000 * insdel.c (make_gap): Remove unused variable `result'.
2001
2002 * keyboard.c (record_char): Remove unused function-scope variable
2003 `help'.
2004 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
2005 (menu_bar_items): Remove unused function-scope variable `tem'.
2006
2007 * fontset.c (fontset_ref): Remove unused variable `i'.
2008 (fontset_set): Remove unused variables `j' and `tmp'.
2009 (make_fontset): Remove unused variables `i', `j', `elt' and
2010 `base_elt'.
2011 (make_fontset_for_ascii_face): Remove unused variable `name'.
2012 (fs_load_font): Remove unused variable `font_idx'.
2013 (fs_query_fontset): Remove unused function-local variable
2014 `fontset'.
2015 (list_fontsets): Remove unused variable `tail'.
2016 (Fnew_fontset): Remove unused variables `family' and `registry'.
2017 (accumulate_font_info): Remove unused variable `tmp'.
2018 (Ffontset_font): Remove unused variable `id'.
2019 (syms_of_fontset): Remove unused variable `i'.
2020
2021 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
2022 to x_term_init.
2023 (lookup_image): Remove unused variable `file'.
2024 (xbm_load): Remove unused variables `bitmap_data', `height', and
2025 `width'. Remove function-local variable `i', leave the
2026 block-local one.
2027 (gif_load): Remove unused variable `inc'.
2028
2029 * xterm.c (XTread_socket): Remove unused variables `p' and
2030 `pend'.
2031 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
2032 leave only the one in the inner block.
2033
2034 * xfaces.c (face_fontset, realize_default_face): Remove unused
2035 variable `fontset'.
2036 (face_at_buffer_position): Remove unused variable `multibyte_p'.
2037
2038 * term.c (encode_terminal_code): Remove unused variable `c'.
2039
2040 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
2041 char *' instead of `char *'.
2042
2043 * category.c (Fcategory_docstring): Remove unused variable `doc'.
2044 (Fget_unused_category): Remove unused variable
2045 `docstring_vector'.
2046 (Fchar_category_set): Remove unused variables `val', `charset',
2047 `c1' and `c2'.
2048
2049 * coding.c (detect_coding_iso2022, setup_coding_system): Remove
2050 unused variable `i'.
2051 (detect_coding_mask): Remove unused variable `idx'.
2052 (detect_coding): Remove unused variable `i'.
2053 (ccl_coding_driver): Remove unused variable `result'.
2054 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
2055 (decode_coding_string): Remove unused variables `to' and
2056 `gcpro1'.
2057 (encode_coding_string): Remove unused variables `gcpro1' and
2058 `saved_coding_symbol'.
2059 (Ffind_coding_systems_region_internal): Remove function-local
2060 variable args[], leave only the block-local one.
2061 (code_convert_region1): Remove unused variable `len'.
2062
2063 * charset.c (char_printable_p): Remove unused variable `chars'.
2064 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
2065 (str_to_multibyte): Remove unused variable `c'.
2066
2067 * window.c (size_window): Remove block-local variable `min_size'.
2068
2069 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
2070 `header_line_height'.
2071 (append_space, extend_face_to_end_of_line): Declare `saved_what'
2072 enum display_element_type.
2073
1a8a9daf
GM
20742001-01-02 Gerd Moellmann <gerd@gnu.org>
2075
6dde6abc
GM
2076 * xterm.c (x_connection_closed): Catch X errors around all
2077 statements that call X. Save away the error message in a local
2078 copy.
2079
1883b2c6
GM
2080 * xterm.c (x_connection_closed): Set handling_signal to 0 at
2081 the start.
2082
a13be207
GM
2083 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
2084 in or at the start of invisible text.
2085
1a8a9daf
GM
2086 * dispnew.c (update_window): Don't check_current_matrix_flags.
2087
3608c0f9
JR
20882001-01-01 Jason Rumney <jasonr@gnu.org>
2089
2090 * w32fns.c (x_figure_window_size): Do not allow new_height and
2091 new_width of frame to override specified values.
2092
abb1acc4
KH
20932000-12-30 Kenichi Handa <handa@etl.go.jp>
2094
d279f620
KH
2095 * composite.c (find_composition): Fix a code for searching
2096 backward.
abb1acc4 2097
762a68ec
GM
20982000-12-29 Gerd Moellmann <gerd@gnu.org>
2099
9c8b8382
GM
2100 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New
2101 function.
2102 (update_window) [GLYPH_DEBUG]: Call it.
2103 (scrolling_window): Prevent including current rows which are below
2104 what's displayed in the window.
2105
2106 * xdisp.c (try_window_reusing_current_matrix)
2107 <new start <= old start>: Disable rows in the current matrix
2108 which are below the window after scrolling.
2109
762a68ec
GM
2110 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
2111 is zero. It's not worth the complexity.
2112 (invisible_text_between_p): Put in #if 0 because unused.
2113
2d5912c1
GM
21142000-12-28 Gerd Moellmann <gerd@gnu.org>
2115
46f6a258
GM
2116 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
2117 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
2118
89f93679
GM
2119 * keyboard.c (echo_char): If C is an integer, always call
2120 push_key_description. Former code could signal an invalid
2121 character error.
2122
2123 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
2124 If set, print multibyte text.
2125 (Fsingle_key_description): Call push_key_description with
2126 FORCE_MULTIBYTE set.
2127 (describe_buffer_bindings): Likewise.
2128
2129 * lisp.h (push_key_description): Add prototype.
2130
c06017fb
GM
2131 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
2132 around the call to redisplay_internal.
2133
f1d2ce7f
GM
2134 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
2135
2d5912c1
GM
2136 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
2137
9371f831
KH
21382000-12-28 Kenichi Handa <handa@etl.go.jp>
2139
2140 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
2141 (ccl_driver): New local variable `extra_bytes'.
2142
2143 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
2144
2145 * coding.c (setup_coding_system): Initialize
2146 coding->spec.ccl.eight_bit_carryover.
2147 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
2148
0c80628a
KH
21492000-12-28 Kenichi Handa <handa@etl.go.jp>
2150
2151 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
2152 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
2153 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
2154 (decode_composition_emacs_mule): New function.
2155 (decode_coding_emacs_mule): Decode composition sequence by calling
2156 decode_composition_emacs_mule.
2157 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
2158 (encode_coding_emacs_mule): Changed from macro to function. If
2d5912c1 2159 a text contains compositions, encode them correctly.
0c80628a
KH
2160 (setup_coding_system): Set coding->commong_flags for emacs-mule so
2161 that decoding and encoding are required.
2162
3e32cc27
GM
21632000-12-27 Gerd Moellmann <gerd@gnu.org>
2164
5e25feee
GM
2165 * xfaces.c (PT_PER_INCH): New macro.
2166 (xlfd_point_size): Compute real point size from font's pixel size.
2167 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
2168 instead of 72.
2169
892d8fcd
GM
2170 * .gdbinit: Comment out the line pointing to the Lesstif source
2171 directory.
2172
12c8b416
GM
2173 * window.c (Frecenter): Use displayed_window_lines instead
2174 of window_internal_height.
2175
6061fbf0
GM
2176 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
2177 instead of x-toolkit-scroll-bars-p.
2178 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
2179
2180 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
2181 instead of x-toolkit-scroll-bars-p.
2182 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
2183
3e32cc27
GM
2184 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
2185 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
2186 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]: New
2187 variables.
2188 (add_window_display_history, add_frame_display_history)
2189 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
2190 (build_frame_matrix_from_leaf_window): Remove unused code.
2191 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
2192 redisplay history.
2193 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
2194 (update_window) [GLYPH_DEBUG]: Likewise.
2195 (syms_of_display): Defsubr dump-redisplay-history.
2196
31798cfe
GM
21972000-12-23 Gerd Moellmann <gerd@gnu.org>
2198
f717c2ba
GM
2199 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
2200 the end of the prompt. Set echo_after_prompt to the offset
2201 of echoptr in echobuf.
2202
aeb2b8fc
GM
2203 * xdisp.c (init_from_display_pos): Pop until the iterator's
2204 stack is empty; there may be frames for stretch or images
2205 on the stack.
2206
31798cfe
GM
2207 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
2208 (save_or_restore_current_matrix): New function for the same
2209 purpose, but more efficient.
2210 (adjust_frame_glyphs_for_frame_redisplay): Use it.
2211
f8156156
EZ
22122000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
2213
2214 * xdisp.c (syms_of_xdisp): Fix last change.
2215
bdd6d4e8
GM
22162000-12-23 Gerd Moellmann <gerd@gnu.org>
2217
2218 * xdisp.c (syms_of_xdisp): Doc fix.
2219
2220 * xdisp.c (redisplay_window): Remove label restore_buffers;
2221 use finish_scroll_bars instead to make sure that scroll bars
2222 are redeemed. If we don't do this, flickering can result from
2223 scroll bars being destroyed and recreated.
2224
9436cdf9
JR
22252000-12-22 Jason Rumney <jasonr@gnu.org>
2226
2227 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
2228 in the wrong colors when the foreground is not black.
2229 (expose_window): Don't redraw the window that's currently being
2230 updated.
2231
951f9df5
GM
22322000-12-22 Gerd Moellmann <gerd@gnu.org>
2233
856ff7a7
GM
2234 * window.c (size_window): When setting the window's too_small_ok
2235 flag, compare old size with minimum size depending on WIDTH_P,
2236 don't compare with window_min_width.
2237
951f9df5
GM
2238 * window.c (delete_window): Simplify somewhat.
2239 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
2240 freeing window matrices. The flag windows_or_buffers_changed is
2241 set, so the next redisplay will consider all windows; this should
2242 suffice.
2243
886bc933
KH
22442000-12-22 Kenichi Handa <handa@etl.go.jp>
2245
2246 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
2247
2248 * ccl.h (struct ccl_program): New member cr_consumed.
2249
2250 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
2251 (CCL_READ_CHAR): Handle EOL conversion here.
2252 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
2253
177f4e88
GM
22542000-12-21 Gerd Moellmann <gerd@gnu.org>
2255
6ba384dc
GM
2256 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg
2257 GLYPHS.
2258
2259 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
2260 otherwise tabs of different size compare equal.
2261
2262 * callint.c (Fcall_interactively): Prevent a compiler warning.
2263
2264 * print.c (print_unwind): Return nil.
2265 (PRINTDECLARE): Initialize all local variables.
2266 (print_preprocess): Add a default case.
2267
8e15274f
GM
2268 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
2269
2270 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
2271
177f4e88
GM
2272 * window.c (delete_window, Fsplit_window)
2273 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
2274
2275 * dispextern.h (ensure_frame_matrix): Function declaration removed.
2276
2277 * dispnew.c (ensure_frame_matrix): Removed.
2278 (save_frame_matrix, restore_frame_matrix): New functions.
2279 (adjust_frame_glyphs_for_frame_redisplay): Use them.
2280
2281 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
2282 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
2283
99012074
AI
22842000-12-21 Andrew Innes <andrewi@gnu.org>
2285
2286 * w32term.c (x_update_begin): Regenerate the palette here, rather
2287 than for each window.
2288
2289 * w32xfns.c (select_palette): Avoid calling SelectPalette if
2290 palette is NULL, since this corrupts memory! Also get
2291 display_info reference from frame.
2292
29ef7d2d
JR
22932000-12-21 Jason Rumney <jasonr@gnu.org>
2294
2295 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
2296
2297 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
2298 to avoid returning without releasing it.
3e27fa1f 2299
3f9d67a6
KH
23002000-12-21 Kenichi Handa <handa@etl.go.jp>
2301
587fc3f9
KH
2302 * keymap.c (push_key_description): Don't convert eight-bit-control
2303 and eight-bit-graphic to multibyte character.
2304
3f9d67a6
KH
2305 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
2306 generic character and CODE1 is nil, return the smallest character
2307 in CHARSET.
2308
774ba8c9
DL
23092000-12-20 Dave Love <fx@gnu.org>
2310
2311 * s/osf5-0.h (NSIG): Don't redefine.
2312
88416888
SM
23132000-12-20 Stefan Monnier <monnier@cs.yale.edu>
2314
2315 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
2316 excluding menu-bar and tool-bar.
2317 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
2318 (menu_item_p): Remove.
2319 (where_is_internal_1): Don't ignore menu-items.
2320
a6426c6f
GM
23212000-12-20 Gerd Moellmann <gerd@gnu.org>
2322
03ff8aab
GM
2323 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
2324 into account.
2325
2326 * window.c (make_window): Initialize window's min_hscroll.
2327 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
2328 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
2329 to zero.
2330 (struct saved_window): New member min_hscroll.
2331 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
2332 (Fset_window_configuration): Set window's min_hscroll.
2333 (save_window_save): Save window's min_hscroll.
2334 (compare_window_configurations): Compare min_hscroll values.
2335
2336 * window.h (struct window): New member min_hscroll.
2337
2338 * keyboard.c (echo_prompt): Prevent a compiler warning.
2339
8de4aaf8
GM
2340 * xdisp.c (try_cursor_movement): Fix last change. The real
2341 condition is that PT is at the end of the row, and should
2342 be displayed at the start of the next row.
2343
3f7e3031
GM
2344 * xdisp.c (try_cursor_movement): If we end on a partially
2345 visible line, end we already decided to scroll, return -1.
2346
a6426c6f
GM
2347 * dispextern.h (ensure_frame_matrix): Add prototype.
2348
2349 * window.c (delete_window, Fsplit_window)
2350 (Fset_window_configuration): Call ensure_frame_matrix.
2351
2352 * dispnew.c (fake_current_matrices, ensure_frame_matrix): New
2353 functions.
2354 (adjust_frame_glyphs_for_frame_redisplay): If display has been
2355 completed, call fake_current_matrices instead of marking frame
2356 garbaged.
2357
57fa2774
JR
23582000-12-20 Jason Rumney <jasonr@gnu.org>
2359
2360 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
2361
d925df90
EZ
23622000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
2363
2364 * fns.c (Frequire): Doc fix.
2365
7b93a85b
GM
23662000-12-19 Gerd Moellmann <gerd@gnu.org>
2367
71d4497a
GM
2368 * window.c (window_scroll_pixel_based): Don't use
2369 move_it_vertically.
2370
c74e645b
GM
2371 * dispnew.c (direct_output_for_insert): Fix check for mini-window
2372 currently displaying a message.
2373
7b93a85b
GM
2374 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
2375 xterm.h.
2376 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
2377
90d97e64
AI
23782000-12-18 Andrew Innes <andrewi@gnu.org>
2379
2380 * w32.c (w32_strerror): New function.
2381
2382 * w32.h (w32_strerror): New extern.
2383
2384 * w32fns.c (Fw32_shell_execute): Use it.
2385
91c9e6ce
GM
23862000-12-18 Gerd Moellmann <gerd@gnu.org>
2387
2388 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
2389
6f4745e2
EZ
23902000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
2391
2392 * msdos.c (IT_set_face): Obey inverse_video.
2393
c9e088ce
KH
23942000-12-18 Kenichi Handa <handa@etl.go.jp>
2395
2396 * dired.c (directory_files_internal): Always return decoded filenames.
2397
c3695f5f
GM
23982000-12-18 Gerd Moellmann <gerd@gnu.org>
2399
52d8e4ff
GM
2400 * xterm.c (x_connection_closed): Prevent being called recursively
2401 because of an error condition in XtCloseDisplay.
2402
62be9979
GM
2403 * xdisp.c (init_iterator): If noninteractive, and the frame's
2404 face cache is null, make one.
2405
5f7a1890
GM
2406 * xfns.c (show_busy_cursor): Check for live frames more
2407 thoroughly.
2408
c3695f5f
GM
2409 * process.c (wait_reading_process_input): Check for pending
2410 input when running timers.
2411
78555fbe
EZ
24122000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
2413
2414 * msdos.c (IT_write_glyphs): Compute the glyph face from
2415 str->face_id.
2416
b2b36264
KH
24172000-12-18 Kenichi Handa <handa@etl.go.jp>
2418
2419 * process.c (read_process_output): Don't run a filter if the code
2420 decoder produces nothing but carryover.
2421
9c543fbf
AI
24222000-12-17 Andrew Innes <andrewi@gnu.org>
2423
2424 * w32.c (sys_rename): Only check errno against EEXIST, and not
2425 EACCES, when determining whether rename failed because the target
2426 exists. This was resulting in indefinite looping on Windows 9x if
2427 the source file was locked by another process.
2428
2429 * w32fns.c (Ffile_system_info): New function.
2430 (syms_of_w32fns): Defsubr it.
2431
10c2b5a8
GM
24322000-12-17 Gerd Moellmann <gerd@gnu.org>
2433
b0228ace
GM
2434 * window.c (coordinates_in_window): Fix computation for
2435 position on vertical line between mode lines.
2436
10c2b5a8
GM
2437 * xfns.c (unwind_create_frame): Return t if frame was deleted.
2438 Don't alter tip_frame or tip_window.
2439 (unwind_create_tip_frame): Set tip_frame to nil only if frame
2440 was deleted.
2441
c844a81a
GM
2442 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
2443 Don't alter tip_frame or tip_window.
2444 (unwind_create_tip_frame): Set tip_frame to nil only if frame
2445 was deleted.
2446
6c825f8e
EZ
24472000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
2448
2449 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
2450 be consistent with the doc string. Reported by NAKAJIMA Mikio
2451 <minakaji@osaka.email.ne.jp>.
2452
af4bb4c8
KH
24532000-12-16 Kenichi Handa <handa@etl.go.jp>
2454
2455 * xfaces.c (Vface_ignored_fonts): New variable.
2456 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
2457 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
2458
8062e53a
GM
24592000-12-15 Gerd Moellmann <gerd@gnu.org>
2460
e87b8809
GM
2461 * dispnew.c (update_window): Detect pending input every nth line
2462 updated, i.e. do it depending on real work done, and not on the
2463 vpos of the line.
2464
2465 * xterm.c (expose_window): Don't redraw the window that's
2466 currently being updated.
2467
a6768cc5
GM
2468 * window.c (Fset_window_point): Remove test for
2469 cursor_in_non_selected_windows.
2470
4ea7fdca
GM
2471 * lread.c (read1): Recognize end of file after `\\'.
2472
8062e53a
GM
2473 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
2474 not unwind_create_frame.
2475
bb7959c1
GM
24762000-12-15 Dave Love <fx@gnu.org>
2477
2478 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
2479 bcopy & al.
2480
2481 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
2482
ced04c42
KH
24832000-12-15 Kenichi Handa <handa@etl.go.jp>
2484
c5443913
KH
2485 * coding.c (setup_coding_system): Clear all members of the struct
2486 coding_system at first.
bc137305
KH
2487 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
2488 argument.
2489 (code_convert_region): Don't override coding->src_multibyte and
2490 coding->dst_multibyte.
c5443913 2491
ced04c42
KH
2492 * fns.c (Fmd5): Docstring improved.
2493
c2d7f289
MB
24942000-12-15 Miles Bader <miles@gnu.org>
2495
2496 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
2497 are actually marked as mode-lines; otherwise use
2498 estimate_mode_line_height.
2499
9d7d9263
GM
25002000-12-14 Gerd Moellmann <gerd@gnu.org>
2501
2502 * editfns.c (Fformat): Prevent a buffer overrun when the format
2503 specifies a precision.
2504
7cf0153a
EZ
25052000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
2506
2507 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
2508 argument is outside the range [2..3].
2509
1de0f662
AI
25102000-12-14 Andrew Innes <andrewi@gnu.org>
2511
2512 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
2513 nothing to do. Bind inhibit-quit.
2514 (tip_frame): Make it a Lisp_Object.
2515 (x_create_tip_frame): Set tip_frame after it has been added to
2516 Vframe_list.
2517 (Fx_show_tip): Don't set tip_frame here.
2518 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New
2519 variables.
2520 (unwind_create_frame, unwind_create_tip_frame): New functions.
2521 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
2522 while a frame is only partially constructed.
2523
2524 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
2525 (x_free_frame_resources): New function.
2526 (x_destroy_window): Use it.
2527
02387dcc
GM
25282000-12-14 Gerd Moellmann <gerd@gnu.org>
2529
2530 * xfns.c (Fx_backspace_delete_keys_p): New function.
2531 (syms_of_xfns): Defsubr it.
2532
2533 * config.in (HAVE_XKBGETKEYBOARD): Add.
2534
0544ef49
KH
25352000-12-14 Kenichi Handa <handa@etl.go.jp>
2536
98d62747
KH
2537 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
2538 Always store string in multibyte representation in echobuf.
2539 (echo_char): Always store string in multibyte representation in
2540 echobuf.
2541 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
2542 (read_key_sequence): Adjusted for the change of echo_prompt.
2543
a20193cd
KH
2544 * fns.c (Fmd5): Docstring improved.
2545
191b83b6
KH
2546 * lisp.h (detect_coding_system): Prototype adjusted.
2547
0544ef49
KH
2548 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
2549 (detect_coding_emacs_mule, detect_coding_iso2022,)
2550 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
2551 (detect_coding_utf_16, detect_coding_ccl): Make them static. New
2552 argument MULTIBYTEP. Callers changed.
2553 (detect_coding_mask, detect_coding_system): New argument
2554 MULTIBYTEP. Callers changed.
1da1bb05
KH
2555 (decode_coding_string): Set coding->src_multibyte and
2556 coding->dst_multibyte before calling detect_coding and detect_eol.
2557 Update them after some coding system is detected.
2558
d5b3eb1b
SM
25592000-12-13 Stefan Monnier <monnier@cs.yale.edu>
2560
2561 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
2562
2563 * keyboard.c (menu_bar_items, tool_bar_items):
2564 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
2565
f7f8bb69
GM
25662000-12-13 Gerd Moellmann <gerd@gnu.org>
2567
19f71add
GM
2568 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
2569 New variables.
2570 (unwind_create_frame, unwind_create_tip_frame): New functions.
2571 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
2572 while a frame is only partially constructed.
2573
2574 * xterm.h (x_free_frame_resources): Declare.
2575
2576 * xterm.c (x_free_frame_resources): New function.
2577 (x_destroy_window): Use it.
2578
e10da507
GM
2579 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
2580 don't interrupt the update for pending input initially, i.e.
2581 update at least some lines.
2582
2583 * keyboard.c (do_mouse_tracking): Make externally visible.
2584
d5b3eb1b 2585 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
f7f8bb69
GM
2586
2587 * xfns.c (gray_bitmap_bits): Declare `char *'.
2588
90aa2856
GM
25892000-12-12 Gerd Moellmann <gerd@gnu.org>
2590
2591 * xdisp.c (display_tool_bar_line): Make sure that tool bar
2592 lines start with a relief line.
2593
a308c9cd
DL
25942000-12-12 Dave Love <fx@gnu.org>
2595
2596 * window.c (Fdisplay_buffer): Doc fix.
2597 (Fwindow_list): Remove unused var.
2598
2599 * buffer.h (mmap_set_vars): Declare.
2600
2601 * window.h (Fset_window_point): Declare.
2602
d575011f
EZ
26032000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
2604
bf6282d2 2605 * msdos.c (fast_find_position): Don't overstep the last window row.
d575011f
EZ
2606 (IT_note_mouse_highlight): Initialize portion to -1. Remove
2607 unused variable `area'. When looking for a row under (X,Y), give
2608 up if some of the previous rows is not enabled.
2609
ecf4d726
GM
26102000-12-12 Gerd Moellmann <gerd@gnu.org>
2611
2ebf6139
GM
2612 * window.c (Fset_window_point): If displaying cursors in windows
2613 other than the selected window, make sure redisplay updates
2614 other windows to show the new value of point in the window.
2615
2616 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
2617
bfdb75ee
GM
2618 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
2619 the buffer is the sole visible buffer when in the mini-buffer.
2620
4fdbd809
GM
2621 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
2622 Bind `inhibit-read-only' to t.
2623 (unwind_with_echo_area_buffer): Use AREF.
2624
c0006262
GM
2625 * xfns.c (Fx_hide_tip): Simplified.
2626
e9a59cad
GM
2627 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use
2628 GC_MAKE_GCPROS_NOOPS instead of `1'.
2629
ecf4d726
GM
2630 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
2631
e5959a9a
GM
26322000-12-11 Gerd Moellmann <gerd@gnu.org>
2633
a3642e49
GM
2634 * xfns.c (Fx_hide_tip): Fix last change.
2635
44b5a125
GM
2636 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
2637 nothing to do. Bind inhibit-quit.
2638 (tip_frame): Make it a Lisp_Object.
2639 (x_create_tip_frame): Set tip_frame after it has been added to
2640 Vframe_list.
2641 (Fx_show_tip): Don't set tip_frame here.
2642
2643 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
2644
2645 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
2646 Lisp_Object.
2647
2648 * dispextern.h: Change external declaration of tip_frame.
2649
d990421f
GM
2650 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
2651 return an empty string.
2652
4db87380
GM
2653 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
2654 of the window's update_mode_line flag, since the former is set by
2655 force-mode-line-update, not the latter. This makes
2656 column-number-mode slightly faster.
2657
e5959a9a
GM
2658 * xdisp.c (try_window_id) <all changes above window start>:
2659 Set the cursor.
2660
169fe44e
GM
26612000-12-11 Paul Eggert <eggert@twinsun.com>
2662
2663 * config.in (HAVE_FTELLO): Remove.
2664 (HAVE_FSEEKO): Add.
2665 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
2666 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
2667 HAVE_FTELLO.
2668 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
2669 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
2670
59ec59ae
MB
26712000-12-11 Miles Bader <miles@gnu.org>
2672
2673 * window.c (displayed_window_lines): Don't round up when
2674 converting empty space at bottom to lines.
ff904dd6
MB
2675 Handle non-newline-terminated final lines properly.
2676 (Fwindow_text_height): New function (used to be in lisp).
2677 (syms_of_window): Initialize it.
59ec59ae 2678
42ebfa31
SM
26792000-12-09 Stefan Monnier <monnier@cs.yale.edu>
2680
2681 * syntax.c (scan_lists): Check that the right quote char has the
2682 right Sstring syntax when jumping over strings.
2683 (init_syntax_once): Use Smax rather than 13.
2684
5cdb3cf3
MB
26852000-12-09 Miles Bader <miles@gnu.org>
2686
2687 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
2688 with PARTIALLY, inverting the sense.
2689 (window_scroll_pixel_based): Scroll partially visible lines into
2690 place if we hit the beginning or end of the buffer.
a12167c5
MB
2691 (displayed_window_lines): Don't include partially visible lines.
2692 (Fmove_to_window_line): Skip past any partially visible first line.
5cdb3cf3 2693
842b2a94
GM
26942000-12-08 Gerd Moellmann <gerd@gnu.org>
2695
2696 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
2697
2698 * tparam.c (tparam1): Change the way buffers are reallocated to be
2699 portable and less obfuscated.
2700
2701 * termcap.c (tgetent): Change the way buffers are reallocated to
2702 be portable and less obfuscated.
2703
2704 * macros.c (store_kbd_macro_char): Change the way buffers are
2705 reallocated to be portable and less obfuscated.
2706
2707 * lread.c (read1): Change the way buffers are reallocated to be
2708 portable and less obfuscated.
2709
2710 * doc.c (Fsubstitute_command_keys): Change the way buffers
2711 are reallocated so that it is portable.
2712
137cad7c
EZ
27132000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
2714
2715 * dosfns.c (Ffile_system_info): New function.
2716 (syms_of_dosfns): Defsubr it.
2717
5c7f629c
SM
27182000-12-07 Stefan Monnier <monnier@cs.yale.edu>
2719
2720 * alloc.c (gc_sweep): Add comment.
2721
959e647d
GM
27222000-12-07 Gerd Moellmann <gerd@gnu.org>
2723
28fcb7dc
GM
2724 * sound.c (vox_configure): Change order of ioctls. Don't
2725 set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
2726 Ignore errors when changing volume.
2727 (vox_close): Don't reset the device.
2728
926b7e5e
GM
2729 * process.c (read_process_output): Make sure the process marker's
2730 position is valid when the process buffer is changed in
2731 after-change functions. W3 does that.
2732
959e647d
GM
2733 * xfns.c (x_free_gcs): New function.
2734
2735 * xterm.h (x_free_gcs): Add prototype.
2736
2737 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
2738 freeing GCs here.
2739
2740 * xterm.c (x_destroy_window): Call x_free_gcs so that
2741 resources of non-toolkit X windows will be freed.
2742
478ea067
AI
27432000-12-07 Andrew Innes <andrewi@gnu.org>
2744
2745 * w32fns.c (xlfd_charset_of_font): Fix last change.
2746
fbee3231
DL
27472000-12-06 Dave Love <fx@gnu.org>
2748
67292061
DL
2749 * md5.h (__P): Don't define -- it comes from config.h.
2750
fbee3231
DL
2751 * strftime.c: Change some #if foo to #ifdef foo.
2752
4ee87dbb
AI
27532000-12-06 Andrew Innes <andrewi@gnu.org>
2754
2755 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
2756
2757 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname
2758 argument.
2759 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
2760 (w32_list_fonts): Don't choke if pattern doesn't specify a
2761 codepage.
2762
9765b4a4
GM
27632000-12-06 Gerd Moellmann <gerd@gnu.org>
2764
d285b373
GM
2765 * alloc.c (gc_sweep): Prevent symbols read during loadup
2766 from being freed.
2767
384333ee
GM
2768 * xdisp.c (underlying_face_id): New function.
2769 (handle_face_prop, face_before_or_after_it_pos): Use it
2770 to determine the face ``under'' a string. Let strings inherit
2771 the face of the buffer under them.
2772
2773 * xfaces.c (face_at_string_position): Update function comment.
2774
d4b72d58
GM
2775 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
2776 matrix if the window's left position has changed; we need to
2777 redraw it in this case.
2778
2779 * dispextern.h (struct glyph_matrix): Add member window_left_x.
2780
e1d05387
GM
2781 * window.c (coordinates_in_window): Check mouse on mode-line or
2782 header-line first.
2783
eb1b0c74
GM
2784 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
2785 advertized by the function documentation.
2786
d94d636f
GM
2787 * window.c (syms_of_window): Doc fix.
2788
3887b449
GM
2789 * sound.c (vox_configure): Set volume for left and right channel.
2790 (sound_cleanup): Return nil.
2791
efc8f57a
GM
2792 * xdisp.c (move_it_by_lines): Fix paren typo.
2793
9765b4a4
GM
2794 * xterm.c (x_load_font): Don't use the font's max_bounds for
2795 computing the height of the font. If max_bounds' ascent or
2796 descent are greater than the font's ascent or descent, this means
2797 glyphs overlap, which should be handled now by redisplay.
2798
6529ed87
GM
2799 * window.c (Veven_window_heights): New variable.
2800 (syms_of_window): DEFVAR_LISP it.
2801 (Fdisplay_buffer): Check Veven_window_heights before evening the
2802 window heights.
2803
0eb2ecde
MB
28042000-12-06 Miles Bader <miles@gnu.org>
2805
2806 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
2807 update `default-frame-alist' instead of setting no frame parameters.
2808
03d7a167
KH
28092000-12-06 Kenichi Handa <handa@etl.go.jp>
2810
2811 * composite.c (update_compositions): Fix typo (use the correct
2812 variable).
2813
5f8803c2
JR
28142000-12-05 Jason Rumney <jasonr@gnu.org>
2815
2816 * md5.h: Remove underscores from function declarations.
2817 (__attribute__, __alignof__) [!__GNUC__]: Define.
2818
2819 * md5.c: Delay include of md5.h until after namespace cleaning.
2820
c28a075b
JR
2821 * makefile.w32-in (fns.o): Depend on md5.h
2822 (md5.o): New target.
2823 (sunfns.o): Remove.
2824
2825 * makefile.nt: Likewise.
2826
ff3c7056
JR
28272000-12-05 Jason Rumney <jasonr@altavista.net>
2828
2829 * w32term.c (expose_area): Complete last change.
2830
0c21eeeb
KR
28312000-12-05 Ken Raeburn <raeburn@gnu.org>
2832
2833 * minibuf.c: Include intervals.h.
2834
f201d732
JR
28352000-12-05 Jason Rumney <jasonr@gnu.org>
2836
2837 * w32term.c (x_produce_glyphs): If a font for a component of
2838 a composition is not found, use 1 pixel dot ascent and 0 dot
2839 descent value to avoid displaying terribly tall empty boxes.
2840 (expose_area): Pass x-coordinate relative to the exposed
2841 area to x_draw_glyphs instead of a window-relative coordinate.
2842
21999ab9
GM
28432000-12-05 Gerd Moellmann <gerd@gnu.org>
2844
4d2036e4
GM
2845 * xdisp.c (next_element_from_ellipsis): Save face before selective
2846 display in saved_face_id, and set face_before_selective_p.
2847 (reseat_1): Reset face_before_selective_p.
2848 (append_space, extend_face_to_end_of_line): If iterator's
2849 face_before_selective_p is set, use the face from saved_face_id.
2850 (extend_face_to_end_of_line): For tty frames, make sure to
2851 use the right face id when producing spaces at the end of
2852 the line.
2853
2854 * dispextern.h (struct it): Add face_before_selective_p.
2855
52be17cc
GM
2856 * keyboard.c (record_char): Don't record identical help-echo
2857 events in recent_keys.
2858
8a4f36cc
GM
2859 * xterm.c [USE_X_TOOLKIT]: Close the display.
2860 (xim_close_dpy): Handle case that the display has been closed.
2861
57d6e381
GM
2862 * xterm.c (x_destroy_window): Reset the frame's X window after
2863 destroying it.
2864
21999ab9
GM
2865 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
2866 variable window_width.
2867 (line_draw_cost): Fix code skipping over spaces at the end of the
2868 line when must_write_spaces is not set.
2869 (scrolling_window): Fix code inserting runs in list of all runs.
2870
91372bb7
KH
28712000-12-05 Kenichi Handa <handa@etl.go.jp>
2872
2873 * coding.c (setup_coding_system): Be sure to initialize
2874 coding->category_idx.
2875
6c083b4c
GM
28762000-12-04 Gerd Moellmann <gerd@gnu.org>
2877
0c68ce6f
GM
2878 * xterm.c (PER_CHAR_METRIC): Removed because not used.
2879
6452929e
GM
2880 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
2881 area to x_draw_glyphs instead of a window-relative coordinate.
2882
d7f31e22
GM
2883 * fileio.c (auto_save_error): Add parameter ERROR. Show the
2884 error in the message.
2885
ae18aa3b
GM
2886 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
2887 timer after having read a key. It's not good for code reading
2888 several keys in a loop, like an input method.
2889
caa15ef7
GM
2890 * fileio.c (Finsert_file_contents): When VISIT is t, don't
2891 record undo information for format-decode.
2892
2893 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
2894 current buffer is read-only, not if it isn't.
2895
6c083b4c
GM
2896 * keyboard.c (record_char): Record `help-echo' input events
2897 in recent_keys only if they display some help. Don't record
2898 `help-echo' events as macro char.
2899
caa15ef7
GM
29002000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2901
2902 * editfns.c (save_excursion_restore): Don't move point
2903 in another window if it is showing the wrong buffer.
2904 Avoid the call to Fwindow_live_p, for speed.
2905
5a13529b
KH
29062000-12-04 Kenichi Handa <handa@etl.go.jp>
2907
e225faa7
KH
2908 * xfaces.c (struct font_name): New member registry_priority.
2909 (split_font_name): Initialize the above member to zero.
2910 (concat_font_list): New function.
2911 (font_list): Include fonts of all alternative registries.
2912 (FONT_POINT_SIZE_QUANTUM): New macro.
2913 (better_font_p): Ignore point size difference less than
2914 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
2915
e89648b4
KH
2916 * xterm.c (x_produce_glyphs): If a font for a component of
2917 a composition is not found, use 1 pixel dot ascent and 0 dot
2918 descent value to avoid displaying terribly tall empty boxes.
2919
5a13529b
KH
2920 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
2921
d7935eb6
KR
29222000-12-03 Ken Raeburn <raeburn@gnu.org>
2923
2924 * coding.h (code_convert_string1): Declare.
2925
2926 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
2927
2928 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name):
2929 Declare.
2930
0dd5e255
JR
29312000-12-02 Jason Rumney <jasonr@gnu.org>
2932
2933 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
2934 correctly for single byte character case.
2935 (w32_per_char_metric): Do not try to make any assumptions about
2936 the metrics of BDF fonts.
250cfece
JR
2937 (x_estimate_mode_line_height): If `mode-line' face
2938 hasn't a font, use that of the frame, as drawing glyphs
2939 does.
2940 (note_mouse_highlight): Change the cursor shape on the vertical
2941 border between windows [not enabled].
2942
2943 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
2944
2945 * w32fns.c (Fx_create_frame): Reintroduce the call to
2946 face-set-after-frame-defaults.
2947 (Vx_window_horizontal_drag_shape): New variable.
2948 (syms_of_xfns): DEFVAR_LISP it.
2949 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
2950 enabled].
0dd5e255 2951
b5d8d2ca
GM
29522000-12-02 Simon Josefsson <simon@josefsson.org>
2953
2954 * fns.c (Fmd5): Use a different logic to decide the coding system
2955 to use.
2956
2957 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
2958
fbb87147
EZ
29592000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
2960
2961 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is
2962 NULL.
2963
447e9da0
GM
29642000-12-01 Gerd Moellmann <gerd@gnu.org>
2965
7708ced0
GM
2966 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
2967 height for YNegative.
2968 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
2969 height; also see comment there.
2970
447e9da0
GM
2971 * window.c (coordinates_in_window): Handle computations for
2972 positions on the vertical bar and fringes differently for
2973 window-system frames. Consider some pixels near the vertical bar
2974 as on the bar if the frame doesn't have vertical scroll bars.
2975 Associate positions between mode or header lines with the
2976 right window, the left one.
2977
86d1db20
JR
29782000-12-01 Jason Rumney <jasonr@gnu.org>
2979
2980 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
2981
2982 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
2983 invalid frame.
2984
a1d58e5b
GM
29852000-12-01 Gerd Moellmann <gerd@gnu.org>
2986
2987 * window.c (struct saved_window): Add members orig_top and
2988 orig_height.
2989 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
2990 (save_window_save, Fset_window_configuration): Save/restore
2991 window's orig_top and orig_height.
2992
89c609af
JR
29932000-12-01 Jason Rumney <jasonr@gnu.org>
2994
4d177746 2995 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
86d1db20 2996
89c609af
JR
2997 * w32fns.c (x_set_cursor_color): Fix last change.
2998
eccc05db
GM
29992000-11-30 Gerd Moellmann <gerd@gnu.org>
3000
31b6671b
GM
3001 * xdisp.c (echo_area_display): If cursor is in the echo area, make
3002 sure that the next redisplay displays the minibuffer, so that
3003 the cursor will be replaced with what the minibuffer wants.
3004
eccc05db
GM
3005 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
3006 #ifndef instead of using #if.
3007 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
3008 USE_TOOLKIT_SCROLL_BARS is defined.
3009
162de750
JR
30102000-11-30 Jason Rumney <jasonr@gnu.org>
3011
3012 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
3013 x_display_cursor.
3014
693c4692
GM
30152000-11-30 Gerd Moellmann <gerd@gnu.org>
3016
3017 * fns.c (Fmd5): Doc fix.
3018
b5d8d2ca 30192000-11-30 Simon Josefsson <simon@josefsson.org>
edfb795e
GM
3020
3021 * fns.c (Fmd5): New function.
3022 (syms_of_fns): Defsubr md5.
3023
3024 * Makefile.in (obj): Add md5.o
3025
b02cd40b
GM
30262000-11-30 Gerd Moellmann <gerd@gnu.org>
3027
edfb795e
GM
3028 * md5.h, md5.c: New files, taken from glibc.
3029
df3aedcf
GM
3030 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
3031
b02cd40b
GM
3032 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
3033 hasn't a font, use that of the frame, as drawing glyphs
3034 does.
3035
8b5176cd
SM
30362000-11-29 Stefan Monnier <monnier@cs.yale.edu>
3037
3038 * eval.c (Frun_hooks): Allow 0 arguments.
3039
346598f1
GM
30402000-11-29 Gerd Moellmann <gerd@gnu.org>
3041
f9396e03
GM
3042 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
3043 is over the menu bar widget, say it's not on the frame.
3044
4a967a9b
GM
3045 * xfns.c (Fx_create_frame): Reintroduce the call to
3046 face-set-after-frame-defaults.
3047
346598f1
GM
3048 * eval.c (Fsignal): Reset handling_signal.
3049
222456a1
JR
30502000-11-28 Jason Rumney <jasonr@gnu.org>
3051
3052 * w32menu.c (add_menu_item): Reset menu item text when changing
3053 type to radio button.
3054
8049ddc0
GM
30552000-11-28 Gerd Moellmann <gerd@gnu.org>
3056
346598f1 3057 * xselect.c: Update copyright.
f4f4ee4d 3058
bebe4a2c
GM
3059 * window.c (coordinates_in_window): If on a mode or header line,
3060 but sufficiently close to its start, return ``on vertical
3061 border''. This gives us a way to drag windows horizontally when
3062 using toolkit scroll bars.
3063
3064 * xterm.c (note_mouse_highlight): Change the cursor shape
3065 on the vertical border between windows.
3066
3067 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
3068
3069 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
3070 (syms_of_xfns): DEFVAR_LISP it.
3071 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
3072
8d2c2642
GM
3073 * textprop.c (text_read_only): New function.
3074 (verify_interval_modification): Use it instead of signaling
3075 `text-read-only'. This makes it easier to catch this error
3076 with a breakpoint.:
3077
8049ddc0
GM
3078 * xdisp.c (forward_to_next_line_start): Check for newlines,
3079 not end of line, which includes CR.
3080
5a2bae6c
KH
30812000-11-28 Kenichi Handa <handa@etl.go.jp>
3082
3083 * coding.c (Ffind_coding_systems_region_internal): Be sure to
3084 include no-conversion.
3085
ae31f84d
JR
30862000-11-27 Jason Rumney <jasonr@gnu.org>
3087
3088 * w32fns.c (w32_load_system_font): Always mark font as double byte
3089 if codepage is unicode.
3090
67f1cf4c
GM
30912000-11-27 Gerd Moellmann <gerd@gnu.org>
3092
4a74d071
GM
3093 * xdisp.c (forward_to_next_line_start): If already on a newline,
3094 just consume it to avoid unintended skipping over invisible text
3095 below.
3096
902ae620
GM
3097 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
3098 `vertical-line', `mode-line' and `header-line' events.
3099
3100 * xdisp.c (try_window_id): Avoid starting to display in the middle
67f1cf4c
GM
3101 of a character, a TAB for instance. This is easier than to set
3102 up the iterator exactly, and it's not a frequent case, so the
3103 additional effort wouldn't really pay off.
3104
c1e279c2
AC
31052000-11-26 Andrew Choi <akochoi@i-cable.com>
3106
67f1cf4c 3107 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
c1e279c2
AC
3108 init_window_once.
3109
a609568a
JR
31102000-11-25 Jason Rumney <jasonr@gnu.org>
3111
48b21762
JR
3112 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]: Args
3113 to window_from_coordinates should be pixel coordinates.
3114
a609568a
JR
3115 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
3116 redisplay handles them properly.
3117
a658d039
MB
31182000-11-25 Miles Bader <miles@gnu.org>
3119
3120 * indent.c (compute_motion): Keep pos_byte in sync with pos.
3121
d3416cca
JR
31222000-11-24 Jason Rumney <jasonr@gnu.org>
3123
3124 * w32.c (init_environment): Set LANG environment variable based on
3125 locale settings, if not set.
3126
3127 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
3128 making tool bar smaller. When clearing the frame, also
3129 clear current matrices. Clear frame when tool bar disappears.
3130 Don't use more lines for the tool-bar than is available.
3131 (x_change_window_heights): New function.
3132
ba193890
GM
31332000-11-24 Gerd Moellmann <gerd@gnu.org>
3134
2be8f184
GM
3135 * xdisp.c (init_from_display_pos): If POS says we're already after
3136 an overlay string ending at POS, make sure to pop the iterator
3137 because it will be in front of that overlay string. When POS is
3138 ZV, we've thereby also ``processed'' overlay strings at ZV.
3139
ba193890
GM
3140 * xfaces.c (lface_from_face_name): Function comment fix.
3141
1862a24e
MB
31422000-11-24 Miles Bader <miles@gnu.org>
3143
3144 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
3145 apply `mode-line-inverse-video' -- zero means force display using
3146 the default face, non-zero means display using the specialized face.
3147 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
3148
f07fa1b8
KH
31492000-11-23 Kenichi Handa <handa@etl.go.jp>
3150
3151 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
3152 hard coded `4'.
3153
2bcdf662
EZ
31542000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
3155
3156 * coding.c (decode_coding_emacs_mule): Fix the case of
3157 CODING_EOL_LF, which used uninitialized value of c.
3158
ba8299ff
SM
31592000-11-23 Stefan Monnier <monnier@cs.yale.edu>
3160
3161 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
3162
f4117c4d
GM
31632000-11-22 Gerd Moellmann <gerd@gnu.org>
3164
03e757c1
GM
3165 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
3166 buffer object.
3167
f4117c4d
GM
3168 * frame.h (struct frame): Replace desired_tool_bar_items,
3169 current_tool_bar_items, n_desired_tool_bar_items,
cc362d76 3170 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
f4117c4d
GM
3171
3172 * frame.c (make_frame): Change initialization of tool bar
3173 items accordingly.
3174
3175 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
cc362d76 3176 Change references to members deleted from struct frame to use the
f4117c4d
GM
3177 new ones.
3178
3179 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
cc362d76 3180 references to members deleted from struct frame to use the new
f4117c4d
GM
3181 ones.
3182
3183 * dispnew.c (update_frame): Do nothing with frame's tool bar
3184 items.
3185
3186 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
3187
3188 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
cc362d76 3189 (note_tool_bar_highlight): Change references to members deleted
f4117c4d
GM
3190 from struct frame to use the new ones.
3191
f8e2f3f2
MB
31922000-11-23 Miles Bader <miles@gnu.org>
3193
3194 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
3195 the face's inverse-video attribute, rather than overriding it.
3196
60e8e0a5
GM
31972000-11-22 Gerd Moellmann <gerd@gnu.org>
3198
3199 * xfns.c (x_set_tool_bar_lines): Clear internal border when
3200 making tool bar smaller.
3201
92dd1b29
DL
32022000-11-22 Dave Love <fx@gnu.org>
3203
3204 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
3205
e672fdce
MB
32062000-11-22 Miles Bader <miles@gnu.org>
3207
3a17d6cc
MB
3208 * keyboard.c (Vminibuffer_message_timeout): New variable.
3209 (command_loop_1): Use it to determine message timeout.
3210 (syms_of_keyboard): Initialize it.
3211
60e8e0a5 3212 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
e672fdce 3213
e9655d81
KH
32142000-11-22 Kenichi Handa <handa@etl.go.jp>
3215
3216 * sysdep.c: Move the code for declaring h_errno after #include
3217 <netdb.h>.
3218
77270fac
GM
32192000-11-21 Gerd Moellmann <gerd@gnu.org>
3220
cd913aae
GM
3221 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
3222 the menu bar when the tooltip is unmapped.
3223
77270fac
GM
3224 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
3225 sole visible buffer when we're currently in the mini-buffer, and
3226 give up if so.
3227
556635d6
JR
32282000-11-21 Jason Rumney <jasonr@gnu.org>
3229
3230 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
3231 put on the clipboard.
3232 (Fw32_get_clipboard_data): Compare data on clipboard with saved
3233 copy of what Emacs last put there. If they are the same, do not
3234 use the clipboard copy to avoid losing data due to coding
3235 conversions.
3236
5b7bde64
MB
32372000-11-22 Miles Bader <miles@gnu.org>
3238
3239 * minibuf.c (Vminibuffer_prompt_properties): New variable.
3240 (syms_of_minibuf): Initialize it.
3241 (read_minibuf): Add properties from Vminibuffer_prompt_properties
3242 to prompt, don't make read-only.
3243
ff23e1dd
GM
32442000-11-21 Gerd Moellmann <gerd@gnu.org>
3245
3c64f287
GM
3246 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>: Add
3247 BEFORE/AFTER_POTENTIAL_GC.
3248
7aaf4388
GM
3249 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
3250
f5f47add 3251 * buffer.c (mmap_free_1): Avoid a compiler warning.
1a15cca0 3252
ff23e1dd
GM
3253 * term.c, cm.c: Don't try to include termcap.h; see comment there.
3254
37c35586
KH
32552000-11-21 Kenichi Handa <handa@etl.go.jp>
3256
3257 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
3258 ... #endif scope.
3259
ff9ab414
GM
32602000-11-20 Gerd Moellmann <gerd@gnu.org>
3261
c51d2b5e
GM
3262 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
3263 screen supports it.
3264
29a01b72
GM
3265 * s/gnu-linux.h: Don't use `#cpu'.
3266
09dfdf85
GM
3267 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
3268 not defined in mman.h.
3269
ff9ab414
GM
3270 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New
3271 variables.
3272 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
3273 and store an index in the XClientMessageEvent. Storing a
3274 Lisp_Object or pointer can fail on a 64 bit system, since X only
3275 transfers 32 bits.
3276 (x_scroll_bar_to_input_event): Get the window from
3277 scroll_bar_windows.
3278
81459ac9
DL
32792000-11-20 Dave Love <fx@gnu.org>
3280
3281 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
3282
56c13ae6
GM
32832000-11-20 Gerd Moellmann <gerd@gnu.org>
3284
3285 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
3286
495a6df3
KH
32872000-11-20 Kenichi Handa <handa@etl.go.jp>
3288
2bcf3714
KH
3289 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
3290 by WIDTH.
3291
495a6df3
KH
3292 * alloc.c (make_string): Fix previous change. Be sure to make
3293 unibyte string correctly.
3294
6d950f4c
GM
32952000-11-19 Gerd Moellmann <gerd@gnu.org>
3296
39b39373
GM
3297 * window.c (Fwindow_list): Change parameter list to be XEmacs
3298 compatible.
3299 (window_list_1): New function.
3300 (window_loop): Use it instead of Fwindow_list.
3301
b95b34e5
GM
3302 * sysdep.c (emacs_ospeed): New variable.
3303 (toplevel): Don't declare ospeed extern.
3304 (init_baud_rate): Use emacs_ospeed instead of ospeed.
3305
3306 * termcap.c (ospeed): Remove.
3307 (tputs) [!emacs]: Remove unused code.
3308 (tgetent): Avoid a compiler warning.
3309
e83dc917
GM
3310 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
3311 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
b95b34e5 3312 SCROLL_BAR_X_WIDGET with additional argument DPY.
e83dc917
GM
3313
3314 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
3315 removed.
3316 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
3317 Take the X display as additional argument.
3318 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
3319 `Widget' is a pointer type that's not easily stored in Lisp_Object
3320 form in a portable way.
3321
6d950f4c
GM
3322 * dispnew.c (update_text_area): Fix last change.
3323
e47306e6
GM
33242000-11-18 Gerd Moellmann <gerd@gnu.org>
3325
fb3cd89b
GM
3326 * xdisp.c: Use BINDING_STACK_SIZE throughout.
3327
3328 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
3329 clear current matrices.
3330
edaa9aed
GM
3331 * buffer.c (mmap_enlarge): Don't print a message on stderr
3332 if mapping new memory at the end of the existing region fails.
3333
e47306e6
GM
3334 * dispnew.c (update_text_area): Don't skip over equal glyphs
3335 when the last current glyph overlaps the glyph to its right.
3336
509633e3
MB
33372000-11-18 Miles Bader <miles@gnu.org>
3338
3339 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
3340 lines that *end* with "..." too (that's the most common case!).
3341
d392e9c5
GM
33422000-11-18 Gerd Moellmann <gerd@gnu.org>
3343
67988445
GM
3344 * xdisp.c (resize_mini_window): Temporarily change to the
3345 mini-window's buffer if necessary.
1bfdbe43 3346
d392e9c5
GM
3347 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
3348 the tooltip obscures less text under it.
3349
33502000-11-17 Gerd Moellmann <gerd@gnu.org>
3351
3352 * puresize.h (BASE_PURESIZE): Increase to 700000.
3353
92bb977f
JR
33542000-11-18 Jason Rumney <jasonr@gnu.org>
3355
3356 * w32term.c (w32_draw_bitmap): Use face to set colors.
3357
26fbf20b
DL
33582000-11-17 Dave Love <fx@gnu.org>
3359
3360 * lread.c (Fload): Fix #ifdef for pcc.
3361
100b593b
GM
33622000-11-17 Gerd Moellmann <gerd@gnu.org>
3363
3364 * xdisp.c (pos_visible_p): Compute the default character height
3365 differently.
3366
a288d0d1
GM
33672000-11-16 Gerd Moellmann <gerd@gnu.org>
3368
cac94de6
GM
3369 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
3370 knowing the line's height; use the default font's height in that
3371 case.
3372
a288d0d1
GM
3373 * xfaces.c (weight_table): Add `demi' with the same meaning as
3374 `demibold'.
3375
981fb6f6
KH
33762000-11-16 Kenichi Handa <handa@etl.go.jp>
3377
2cca872d 3378 * dispnew.c (null_row): New global static variable.
981fb6f6
KH
3379 (clear_glyph_row): Delete local static variable null_row.
3380
e5fa381b
JR
33812000-11-15 Jason Rumney <jasonr@gnu.org>
3382
3383 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
3384 (w32_alloc_lighter_color): Use new brightness calculations from
3385 xterm.c. Scale delta to be in the range expected by W32.
3386 (w32_draw_relief_rect): Use frame relief colors.
3387
8e42f043
GM
33882000-11-15 Gerd Moellmann <gerd@gnu.org>
3389
6d133d1f
GM
3390 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
3391 (Qinhibit_default_face_x_resources): New variable.
3392 (syms_of_frame): Initialize it.
3393 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
3394
3395 * xdisp.c (pos_visible_p): Improve function comment.
3396
3397 * lisp.h (BINDING_STACK_SIZE): New macro.
3398
8e42f043
GM
3399 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
3400 reading the directory if readdir returns null and errno is EAGAIN
3401 or EINTR.
3402
e8c87124
SM
34032000-11-14 Stefan Monnier <monnier@cs.yale.edu>
3404
3405 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
3406 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
3407 Set amount_to_scroll to max of dx and scroll_step so that
3408 scroll-conservatively doesn't defeat scroll-step>1.
3409 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
3410 scroll-conservatively for line-at-a-time scrolling.
3411
5f0c971d
GM
34122000-11-14 Gerd Moellmann <gerd@gnu.org>
3413
3414 * window.c (Fpos_visible_in_window_p): Call pos_visible with
3415 extra argument.
3416
3417 * xdisp.c (current_mode_line_height, current_header_line_height):
3418 New variables.
3419 (init_xdisp): Initialize them.
3420 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
3421 and use exact mode line heights if it is set.
3422
3423 * lisp.h (pos_visible_p): Change prototype.
3424
3425 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
3426 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
3427 and current_header_line_height first.
3428 (current_mode_line_height, current_header_line_height): Declare
3429 extern.
3430
d7361edf
MB
34312000-11-14 Miles Bader <miles@lsi.nec.co.jp>
3432
3433 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
3434 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
3435 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
3436
ee5e440a
MB
34372000-11-14 Miles Bader <miles@gnu.org>
3438
3439 * xterm.c (x_alloc_lighter_color): Include an additive component
3440 too for dark colors, because FACTOR isn't enough.
3441 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
3442 New macros.
3443
5ca020fc
GM
34442000-11-13 Gerd Moellmann <gerd@gnu.org>
3445
3446 * keyboard.c (show_help_echo): Call message3_nolog with number of
3447 bytes in the help string as 2nd parameter, instead of the number
3448 of characters.
3449
9d348294
MB
34502000-11-13 Miles Bader <miles@gnu.org>
3451
3452 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
3453 (Fload): Use new openp return protocol.
3454 Don't try to use Vload_source_file_function to load .elc files.
3455 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
3456 openp return protocol.
3457 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
3458
1729bb9a
KH
34592000-11-11 Kenichi Handa <handa@etl.go.jp>
3460
4e677396
KH
3461 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
3462
3463 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
3464 Defined these macros.
3465 (NLIST_STRUCT): Avoid re-defining it.
3466
1729bb9a
KH
3467 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
3468 -I/usr/contrib/X11R6/include.
3469 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
3470
a82fe213
JR
34712000-11-10 Jason Rumney <jasonr@gnu.org>
3472
3473 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
3474
3475 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
3476 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
3477
3478 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
3479 (Qw32_charset_vietnamese): New symbol.
3480 (xlfd_charset_of_font): New function.
3481 (w32_load_system_font): Use it.
3482 (x_to_w32_charset): Use Fassoc to find charset info. Special case
3483 when Vw32_charset_info_alist is nil to ensure default face always
3484 has font. Use Fcar and Fcdr for safety.
3485 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
3486 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
3487 pseudo-codepages for special cases.
3488 (w32_to_x_font): New parameter to allow charset portion to be
3489 specified where there is many to one mapping. Callers changed.
3490 (w32_list_fonts): Avoid listing fonts that won't display.
3491
52d89894
GM
34922000-11-10 Gerd Moellmann <gerd@gnu.org>
3493
3494 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
3495 (font_list_1): Renamed from font_list.
3496 (font_list): New function, trying alternative registries from
3497 Vface_alternative_font_registry_alist.
3498 (Finternal_set_alternative_font_registry_alist): New function.
3499 (syms_of_xfaces): Initialize and Staticpro
3500 Vface_alternative_font_registry_alist. Defsubr
3501 Finternal_set_alternative_font_registry_alist.
3502
651cd3da
KR
35032000-11-09 Ken Raeburn <raeburn@gnu.org>
3504
3505 * lisp.h (Flooking_at): Declare.
3506
388ac098
GM
35072000-11-09 Gerd Moellmann <gerd@gnu.org>
3508
778fbc46
GM
3509 * dired.c (directory_files_internal): Fix a braino.
3510
388ac098
GM
3511 * dired.c (directory_files_internal): Add missing GCPRO's.
3512 Some cleanup.
3513
ecaedde1
GM
35142000-11-08 Gerd Moellmann <gerd@gnu.org>
3515
f7eb32aa
GM
3516 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
3517 (resize_mini_window): Return quickly if Vresize_mini_window is
3518 nil. Don't return if Vmax_mini_window_height is nil.
3519
3520 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
3521 (syms_of_xdisp): Initialize them.
3522 (resize_mini_window): Act according to the setting of
3523 Vresize_mini_window.
3524 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
3525
ecaedde1
GM
3526 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
3527 scroll bar widget after configuring it, so that it will appear at
3528 the right position from the start.
3529 (XTredeem_scroll_bar): Cleaned up.
3530
3747ef2c
KH
35312000-11-08 Kenichi Handa <handa@etl.go.jp>
3532
3533 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
5d16e624 3534 font is taller than the frame line, we don't have to bias the
3747ef2c
KH
3535 division by two.
3536
3537 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
3538
03391420
DL
35392000-11-07 Dave Love <fx@gnu.org>
3540
7758f1c1 3541 * config.in (HAVE_MKSTEMP): Add.
03391420
DL
3542
3543 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
3544
b5de343d
GM
35452000-11-07 Gerd Moellmann <gerd@gnu.org>
3546
acad3c0b
GM
3547 * window.c (Fset_window_configuration): Don't try to preserve
3548 point in the current buffer, if that buffer is displayed in more
3549 than one window.
3550
b5de343d
GM
3551 * xfaces.c (lookup_named_face): If default face isn't realized,
3552 try to realize it. Return -1 if not successful.
3553 (Fx_list_fonts): Handle case that face cannot be determined.
3554 (Fface_font): Likewise.
3555
cdb1fe49
GM
35562000-11-06 Gerd Moellmann <gerd@gnu.org>
3557
3558 * window.c (displayed_window_lines): Detect partially
3559 visible lines at the bottom correctly.
3560
d3a67486
SM
35612000-11-06 Stefan Monnier <monnier@cs.yale.edu>
3562
3563 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
3564 when ensuring we don't do visit in indirect buffer.
3565
ff8dd5d5
KH
35662000-11-06 Kenichi Handa <handa@etl.go.jp>
3567
3568 * composite.h (compose_chars_in_text): Add prototype.
3569
3570 * composite.c (Vcomposition_function_table): New variable.
3571 (Qcomposition_function_table): New variable.
3572 (run_composition_function): Call
3573 Vcompose_chars_after_function with three arguments.
3574 (compose_chars_in_text): New function.
3575 (syms_of_composite): Modified the doc-string of
3576 Vcompose_chars_after_function. Declare composition-function-table
3577 as a lisp variable, and initialize it.
3578
3579 * xfns.c (x_encode_text): Suppress producing escape sequences for
3580 composition.
3581
3582 * xselect.c: Include composite.h.
3583 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
3584
d1145f85
AI
35852000-11-05 Andrew Innes <andrewi@gnu.org>
3586
3587 * w32term.c (x_produce_glyphs): Fix typo in enum name.
3588
3589 * sysdep.c (read_input_waiting): Remove extraneous argument to
3590 read_socket_hook.
3591
3592 * w32fns.c (Fx_server_version): Include w32_build_number in the
3593 return list.
3594
3595 * w32heap.c (w32_build_number): New variable.
3596 (cache_system_info): Set it.
3597
3598 * w32heap.h (w32_build_number): Add extern.
3599
3600 * emacs.c (syms_of_emacs): Update docstring for
3601 system-configuration, to reflect the actual usage on MS-Windows.
3602
e85ee976
GM
36032000-10-31 Gerd Moellmann <gerd@gnu.org>
3604
26dcb81b
GM
3605 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
3606 process idle timers while waiting for another event.
3607
0a894bad
GM
3608 * dispnew.c (update_frame_line): Handle case where spaces in
3609 the default face are colored.
3610
e85ee976
GM
3611 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
3612 window height hasn't changed.
3613
01b220b6
JR
36142000-10-31 Jason Rumney <jasonr@gnu.org>
3615
3616 * w32term.c (x_produce_glyphs): Handle composite characters.
3617 (x_draw_glyph_string_foreground)
3618 (x_draw_composite_glyph_string_foreground): Restore old font.
3619
4e6b7204
MB
36202000-10-31 Miles Bader <miles@lsi.nec.co.jp>
3621
3622 * minibuf.c (read_minibuf): Reset the undo history just before
3623 starting the recursive-edit.
3624
d4358b37
GM
36252000-10-30 Gerd Moellmann <gerd@gnu.org>
3626
563f68f1
GM
3627 * xfaces.c (menu_face_change_count): New variable.
3628 (Finternal_set_lisp_face_attribute): Increment it for changes
3629 of the `menu' face.
3630 (realize_basic_faces): Reflect changes in the `menu' faces
3631 in menu bars.
3632
82e274d1
GM
3633 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
3634 dy obtained from the iterator's y-position after moving from
3635 scroll_margin_pos to PT; see comment there.
3636
0dbf9fd2
GM
3637 * xdisp.c (safe_eval_handler): Call add_to_log.
3638
906b3b14
GM
3639 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
3640 is not a symbol or string.
3641
d4358b37
GM
3642 * xdisp.c (echo_area_display): Don't perform a display update from
3643 inside redisplay. The update will happen anyway at the end of
3644 redisplay, and it can confuse redisplay (GC messages while
3645 redisplaying, for instance.)
3646
70c825df
SM
36472000-10-30 Stefan Monnier <monnier@cs.yale.edu>
3648
cf9b4b0b
SM
3649 * xrdb.c (x_load_resources): Use the class name in the defaults.
3650
70c825df
SM
3651 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
3652 (regex_compile): Catch bogus \(\1\).
3653
a1d34b1e
GM
36542000-10-30 Gerd Moellmann <gerd@gnu.org>
3655
cae71efe
GM
3656 * xterm.c (x_alloc_nearest_color): Fix last change to compare
3657 RGB values.
3658
35efe0a1
GM
3659 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
3660 we have a color cache, check that the cached color equals the
3661 allocated color. If not, clear the color cache.
3662
1d3baf74
GM
3663 * window.c (displayed_window_lines): Change buffers if necessary.
3664 Fix computation of displayed lines.
3665
a1d34b1e
GM
3666 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
3667 update_menu_bindings to DEFVAR_BOOL.
3668
70737ea9
KH
36692000-10-30 Kenichi Handa <handa@etl.go.jp>
3670
70c825df 3671 * search.c (Fset_match_data): Be sure to make search_regs always sane.
80406070 3672
fa0cb51d
KH
3673 * puresize.h (BASE_PURESIZE): Increase to 680000.
3674
70737ea9
KH
3675 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
3676
0e4c08e8
JR
36772000-10-29 Jason Rumney <jasonr@gnu.org>
3678
3679 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
3680
3681 * w32term.c (w32_bdf_per_char_metric): Negate descent.
3682 (w32_cache_char_metrics): Handle possibility that 'x' does not
3683 exist in a BDF font.
3684 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
3685
3686 * w32bdf.h (bdffont): Add nchars.
3687
3688 * w32bdf.c (set_bdf_font_info): Set it.
3689 (w32_BDF_TextOut): Swap byte order of double byte characters.
3690 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
3691
45b84006
EZ
36922000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
3693
3694 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
3695 don't override the colors in frame's param_alist, unless they are
3696 unspecified.
3697
3698 * term.c (reassert_line_highlight): If inverse_video is non-zero,
3699 reverse the effect of the highlight flag.
3700
caf9deee
KR
37012000-10-27 Ken Raeburn <raeburn@gnu.org>
3702
3703 * window.h (Fwindow_live_p): Declare.
3704
ae0b9b46
KR
3705 * undo.c (record_delete): Check that last_undo_buffer is really a
3706 buffer before applying XBUFFER to it.
3707
3708 * keymap.c (where_is_internal): Pass lisp object, not integer, to
3709 Faref.
3710
02067692
SM
37112000-10-27 Stefan Monnier <monnier@cs.yale.edu>
3712
3713 * lisp.h (KEYMAPP): New macro.
3714 (get_keymap): Remove.
3715 (get_keymap_1): Rename get_keymap.
3716
3717 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
3718
3719 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
3720
3721 * xmenu.c (single_submenu): Use KEYMAPP.
3722 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
3723 Use KEYMAPP rather than Fkeymapp.
3724
3725 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
3726
3727 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
3728 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
3729 Use KEYMAPP rather than Fkeymapp.
3730 (single_submenu): Use KEYMAPP.
3731 (w32_menu_show, w32_dialog_show): Use TRUE.
3732
3733 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
3734
3735 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
3736 (Fkeymapp): Use KEYMAPP.
3737 (get_keymap): Rename from get_keymap_1. Remove old def.
3738 Return t when autoload=0 and error=0 and the keymap needs autoloading.
3739 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
3740 (Fminor_mode_key_binding): Don't raise an error if the binding
3741 is not a keymap.
3742 (Fuse_global_map, Fuse_local_map): Allow autoloading.
3743 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
3744
3745 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
3746 Allow Vspecial_event_map to be autoloaded.
3747 (menu_bar_items): Fetch the keymap rather than using keymapp.
3748 (menu_bar_one_keymap): No need to follow func-indirect any more.
3749 (parse_menu_item): get_keymap_1 -> get_keymap.
3750 (tool_bar_items): Fetch the keymap rather than using keymapp.
3751 (read_key_sequence): Use KEYMAPP.
3752
3753 * intervals.c (get_local_map): Use get_keymap rather than following
3754 function-indirections explicitly.
3755
3756 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
3757
f9d80af3
JR
37582000-10-27 Jason Rumney <jasonr@gnu.org>
3759
3760 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
3761 point, as Windows has oversized fonts.
3762
3763 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
3764
a3ba27da
GM
37652000-10-27 Gerd Moellmann <gerd@gnu.org>
3766
3767 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
3768 (freehook, reallochook): Handle null pointer arguments.
3769 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
3770
aa3b80cc
SM
37712000-10-27 Stefan Monnier <monnier@cs.yale.edu>
3772
3773 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
3774 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
3775 Giving in to popular pressure to shut up the compiler with casts.
3776
e24e84cc
GM
37772000-10-27 Gerd Moellmann <gerd@gnu.org>
3778
3779 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
3780 signed value, and use a default value computed from the font's
3781 maximum descent.
3782
05ea7ef2
MB
37832000-10-27 Miles Bader <miles@lsi.nec.co.jp>
3784
3785 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
3786 that specify a negative underline position can still use underlines.
3787
3788 * window.c (Fpos_visible_in_window_p): Make POS default to
3789 WINDOW's point, not the current buffer's point.
3790
0b95284b
DL
37912000-10-26 Dave Love <fx@gnu.org>
3792
3793 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
3794 when it's necessary.
3795
6c5b90af
GM
37962000-10-26 Gerd Moellmann <gerd@gnu.org>
3797
8b6d9dc9
GM
3798 * window.c (size_window): Compute size difference from sum of old
3799 child window sizes instead of from parent's size.
3800
6bc92b2e
GM
3801 * xdisp.c (pos_visible_p): Change current buffer if necessary.
3802 Handle obscured lines at the top of the window.
3803
3804 * frame.c (Fdelete_frame): Doc fix. Move running the hook
3805 down after the last error condition check.
3806
6c5b90af
GM
3807 * frame.c (Fdelete_frame): Run delete-frame-hook.
3808
42f92d4d
KH
38092000-10-26 Kenichi Handa <handa@etl.go.jp>
3810
3811 * coding.c (decode_coding): Fix previous change (check also
3812 CODING_MODE_LAST_BLOCK).
3813
d97151cb
SM
38142000-10-25 Stefan Monnier <monnier@cs.yale.edu>
3815
e7efc503
SM
3816 * regex.c: More `unsigned char' -> `re_char' changes.
3817 Also change several `int' into `re_wchar_t'.
3818 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
3819 (PUSH_FAILURE_POINTER): Don't cast any more.
3820 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
3821 We want GCC to complain, since this piece of code makes
3822 re_match non-reentrant, which *should* be fixed.
3823 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
3824 (EXTEND_BUFFER): Use RETALLOC.
3825 (SET_LIST_BIT): Don't cast.
3826 (re_wchar_t): New type.
3827 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
3828 that those two functions will always properly return.
3829 (IMMEDIATE_QUIT_CHECK): Cast to void.
3830 (analyse_first): Use recursion rather than an explicit stack.
3831 (re_compile_fastmap): Can't fail anymore.
3832 (re_search_2): Don't check re_compile_fastmap for failure.
3833 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
3834 Now also sets the new value (passed in a new argument).
3835 (re_match_2_internal): Use it.
3836 Also, use a new var `reg' of type size_t when looping through regs
3837 rather than reuse the inappropriate `mcnt'.
3838
d97151cb
SM
3839 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
3840 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
3841 (where_is_internal): Renamed from Fwhere_is_internal.
3842 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
3843 (Fwhere_is_internal): New function wrapping where_is_internal.
3844 (where_is_internal_1): Handle the case where we're filling the cache.
3845 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
3846
d5789b65
MB
38472000-10-25 Miles Bader <miles@gnu.org>
3848
3849 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
3850
4ecda532
GM
38512000-10-25 Gerd Moellmann <gerd@gnu.org>
3852
3853 * window.c (pos_fully_visible_p): Removed.
3854 (Fpos_visible_in_window_p): Use pos_visible_p to determine
3855 if position is visible and/or fully visible.
3856
3857 * lisp.h (pos_visible_p): Add prototype.
3858
3859 * xdisp.c (pos_visible_p): New function.
3860
68c3a137
KH
38612000-10-25 Kenichi Handa <handa@etl.go.jp>
3862
3863 * process.c (send_process): If OBJECT is t, it means that the data
3864 is from C string, but we should encode it. Before calling
3865 setup_raw_text_coding_system, be sure to flush out data by the
3866 previous coding system.
3867
7ae1c032
MB
38682000-10-25 Miles Bader <miles@lsi.nec.co.jp>
3869
ff4dcd4b
MB
3870 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
3871 assignment of startpos to prev when startpos == pos.
3872
7ae1c032
MB
3873 * editfns.c (find_field): Set the field stickiness correctly from
3874 overlay fields. Use renamed `text_property_stickiness'.
3875 (text_property_stickiness): Renamed from `char_property_stickiness'.
ebe2a441 3876 Only check text properties, not overlays.
7ae1c032
MB
3877 * textprop.c (get_char_property_and_overlay): New function.
3878 (Fget_char_property): Use it.
3879 * intervals.h (get_char_property_and_overlay): Add declaration.
3880
49801145
SM
38812000-10-25 Stefan Monnier <monnier@cs.yale.edu>
3882
3883 * keymap.c: Use AREF, ASET and ASIZE macros.
3884 (Fmake_sparse_keymap): Docstring fix.
3885 (synkey): Remove.
3886 (shadow_lookup): Move up.
3887 Handle the case where lookup-key returns an integer.
3888 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
3889 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
3890 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
3891 Simplify/rewrite the keymap-finding code.
3892 Add check for command shadowing, using shadow_lookup.
3893
39e776cd
SM
38942000-10-24 Stefan Monnier <monnier@cs.yale.edu>
3895
3896 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
3897 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
3898 a symbol.
3899
2488aba5
AI
39002000-10-24 Andrew Innes <andrewi@gnu.org>
3901
3902 * dired.c (directory_files_internal_unwind): New function.
3903 (directory_files_internal): Use it to ensure closedir is called
3904 even if expand-file-name or file-attributes throw, eg. because of
3905 a user interrupt. Also enable immediate_quit while calling
3906 re_search, so that matching can be interrupted as well.
3907
b94fdf61
AI
39082000-10-24 Andrew Innes <andrewi@gnu.org>
3909
3910 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
3911 NT-Emacs only.
3912 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
3913 so that re_search functions only quit when callers expect them to.
3914
39152000-10-24 Kenichi Handa <handa@etl.go.jp>
3916
3917 * regex.c (regex_compile): Change the way of handling a range from
3918 a char less than 256 to a char not less than 256.
3919
1946f901
GM
39202000-10-24 Gerd Moellmann <gerd@gnu.org>
3921
7ae2f10f
GM
3922 * window.c (size_window): Prevent setting window's width or
3923 height to a negative value (esp. with XSETFASTINT).
3924
5dcab13e
GM
3925 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
3926 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
3927 (protect_malloc_state) [GC_MALLOC_CHECK &&
3928 GC_PROTECT_MALLOC_STATE]: New function.
3929 (PROTECT_MALLOC_STATE): New macro.
3930 (__malloc_initialize, morecore, _malloc_internal)
3931 (_free_internal) _realloc_internal): Use it to make _heapinfo
3932 read-only outside of gmalloc.
3933
63e1b552
GM
3934 * keymap.c: Update copyright.
3935
1946f901
GM
3936 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
3937 a symbol.
3938
4fa09beb
GM
39392000-10-24 Colin Walters <walters@cis.ohio-state.edu>
3940
3941 * filelock.c (unlock_all_files): Use unlock_file to expand each
3942 buffer's file_truename before trying remove its lock file.
3943
23afac01
EZ
39442000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
3945
3946 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
3947 or CRLF, decode EOLs.
3948
04448b95
KH
39492000-10-24 Kenichi Handa <handa@etl.go.jp>
3950
3951 * window.c (Fdisplay_buffer): Fix doc.
3952
3090a5a5
JR
39532000-10-23 Jason Rumney <jasonr@gnu.org>
3954
3955 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
3956 ASCII font of default fontset on Windows.
3957
3958 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
3959 xterm.c comment below).
3960
3961 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
3962
a83fee2c
GM
39632000-10-23 Gerd Moellmann <gerd@gnu.org>
3964
3965 * xterm.c (x_connection_closed): Reset handling_signal.
3966
3967 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing
3968 null.
3969
6ffdb539
MB
39702000-10-23 Miles Bader <miles@gnu.org>
3971
3972 * window.c (window_scroll_pixel_based, window_scroll_line_based):
3973 Pass nil for FULLY argument to Fpos_visible_in_window_p to
3974 maintain old behavior.
3975 * minibuf.c (Fminibuffer_complete): Likewise.
3976
7f1c969b
MB
39772000-10-23 Miles Bader <miles@lsi.nec.co.jp>
3978
3979 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
3980 that when a font can't be exactly centered, it errs up rather than
3981 down.
3982
23afac01 39832000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
8ec118cd
SZ
3984
3985 * fns.c (Fbase64_decode_string): The decoded result should be
3986 unibyte.
3987
1a578e9b
AC
39882000-10-23 Andrew Choi <akochoi@i-cable.com>
3989
3990 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
3991
3992 * dispnew.c [macintosh]: Include macterm.h.
a83fee2c 3993 (init_display) [macintosh]: Initialization for window system.
1a578e9b
AC
3994
3995 * emacs.c (main) [macintosh]: Call syms_of_textprop,
3996 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
3997 syms_of_search, x_term_init, and init_keyboard before calling
3998 init_window_once. Also, call syms_of_xmenu.
3999
4000 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
4001 default fontset to Monaco.
4002
4003 * frame.c [macintosh]: Include macterm.h. Remove declarations of
4004 NewMacWindow and DisposeMacWindow.
4005 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
4006 instead of calling NewMacWindow and setting fields of
4007 f->output_data.mac directly. Call init_frame_faces.
4008 (Fdelete_frame) [macintosh]: Remove unused code.
4009 (Fmodify_frame_parameters) [macintosh]: Call
4010 x_set_frame_parameters instead of mac_set_frame_parameters.
4011
4012 * frame.h [macintosh]: Define menu_bar_lines field in struct
4013 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
4014
4015 * keyboard.c [macintosh]: Include macterm.h.
4016 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
4017 and menu_bar_activate_event type events as for X and NT.
4018 (make_lispy_event) [macintosh]: Construct lisp events of type
4019 MENU_BAR_EVENT as for X and NT.
4020
4021 * sysdep.c [macintosh]: Remove declaration for sys_signal.
4022 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
4023 (sys_subshell) [macintosh]: Remove definition entirely.
4024 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
4025 Vwindow_system_version here. Remove initialization of
4026 Vx_bitmap_file_path.
4027 (read_input_waiting): Correct the number of parameters passed to
4028 read_socket_hook.
4029 Move all Macintosh functions to mac/mac.c.
4030
4031 * term.c [macintosh]: Include macterm.h.
4032
4033 * window.c [macintosh]: Include macterm.h.
4034
4035 * xdisp.c [macintosh]: Include macterm.h. Declare
4036 set_frame_menubar and pending_menu_activation.
4037 (echo_area_display) [macintosh]: Do not return if terminal frame
4038 is the selected frame.
4039 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
4040 Allow only the selected frame to set menu bar.
4041 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
4042 calling FRAME_EXTERNAL_MENU_BAR (f).
4043 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
4044
4045 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
4046 and check_x. Declare XCreateGC. Define x_create_gc and
4047 x_free_gc. Initialize font_sort_order.
4048 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
4049 but call x_list_fonts instead of w32_list_fonts.
4050 (Finternal_face_x_get_resource) [macintosh]: Do not call
4051 display_x_get_resource.
4052 (prepare_face_for_display) [macintosh]: Set xgcv.font.
4053 (realize_x_face) [macintosh]: Load the font if it is specified in
4054 ATTRS.
4055 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed
4056 to Qt.
4057
1ffbabe3
SM
40582000-10-22 Stefan Monnier <monnier@cs.yale.edu>
4059
4060 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
4061 is nil: since we go to the end of submap anyway, we'd end up
4062 setting nil to nil.
4063 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
4064 doesn't obey autoload.
4065
bed43f1d
EZ
40662000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
4067
1ffbabe3 4068 * msdos.c (dos_set_window_size): Update screen dimension variables.
bed43f1d 4069
ea4233a7
JR
40702000-10-21 Jason Rumney <jasonr@gnu.org>
4071
4072 * w32term.c (w32_cache_char_metrics): Double check that font is
4073 really fixed pitch before trusting tmPitchAndFamily.
4074
f3d3c491
AI
40752000-10-21 Andrew Innes <andrewi@gnu.org>
4076
4077 * w32gui.h (w32_char_font_type): Move enum from w32term.c
4078
4079 * w32term.h: Extern decl for w32_cache_char_metrics.
4080
4081 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
4082
4083 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
4084 (w32_unload_font): Free per_char array if present.
4085
4086 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
4087 cached information in emulated XFontStruct to handle common cases
4088 quickly. Do not allocate XCharStruct for return.
4089 (w32_native_per_char_metric): New function.
4090 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
4091 allocating one.
4092 (x_produce_glyphs): Don't get an HDC. Change calls to
4093 w32_per_char_metric to match arg change above. Remove calls to
4094 free results.
4095 (w32_get_glyph_overhangs): Ditto.
4096 (w32_cache_char_metrics): New function.
4097
4098 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
4099 ($(BLD)/casefiddle.$(O)): Remove compile command.
4100 ($(BLD)/gmalloc.$(O)): Remove compile command.
4101 ($(BLD)/dispnew.obj):
4102 ($(BLD)/keyboard.obj):
4103 ($(BLD)/w32inevt.obj):
4104 ($(BLD)/w32bdf.obj):
4105 ($(BLD)/alloc.obj):
4106 ($(BLD)/buffer.obj):
4107 ($(BLD)/editfns.obj):
4108 ($(BLD)/emacs.obj):
4109 ($(BLD)/fileio.obj):
4110 ($(BLD)/fns.obj):
4111 ($(BLD)/indent.obj):
4112 ($(BLD)/insdel.obj):
4113 ($(BLD)/intervals.obj):
4114 ($(BLD)/minibuf.obj):
4115 ($(BLD)/print.obj):
4116 ($(BLD)/scroll.obj):
4117 ($(BLD)/sysdep.obj):
4118 ($(BLD)/textprop.obj):
4119 ($(BLD)/widget.obj):
4120 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
4121 ($(BLD)/term.obj): Add dependency on dispextern.h.
4122
4123 * makefile.nt ($(BLD)\dispnew.obj):
4124 ($(BLD)\keyboard.obj):
4125 ($(BLD)\w32inevt.obj):
4126 ($(BLD)\w32bdf.obj):
4127 ($(BLD)\alloc.obj):
4128 ($(BLD)\buffer.obj):
4129 ($(BLD)\editfns.obj):
4130 ($(BLD)\emacs.obj):
4131 ($(BLD)\fileio.obj):
4132 ($(BLD)\fns.obj):
4133 ($(BLD)\indent.obj):
4134 ($(BLD)\insdel.obj):
4135 ($(BLD)\intervals.obj):
4136 ($(BLD)\minibuf.obj):
4137 ($(BLD)\print.obj):
4138 ($(BLD)\scroll.obj):
4139 ($(BLD)\sysdep.obj):
4140 ($(BLD)\textprop.obj):
4141 ($(BLD)\widget.obj):
4142 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
4143 ($(BLD)\term.obj): Add dependency on dispextern.h
4144
18ad4821
EZ
41452000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
4146
4147 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
4148 with an additional argument of Qt.
4149
de54681a
MB
41502000-10-21 Miles Bader <miles@gnu.org>
4151
4152 * window.c (pos_fully_visible_in_window_p): New function.
4153 (Fpos_visible_in_window_p): Add FULLY argument.
4154 Use pos_fully_visible_in_window_p.
4155 (window_scroll_pixel_based, window_scroll_line_based): Update
4156 calls to Fpos_visible_in_window_p.
4157 * lisp.h (Fpos_visible_in_window_p): Update prototype
4158
13c844fb
GM
41592000-10-20 Gerd Moellmann <gerd@gnu.org>
4160
4161 * alloc.c (toplevel): Conditionalize compilation of mem_*
4162 functions differently.
4163
d9506268
JR
41642000-10-20 Jason Rumney <jasonr@gnu.org>
4165
4166 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
4167 mem_init where it used to be. mem_z etc not defined otherwise.
4168
8094989b
GM
41692000-10-20 Gerd Moellmann <gerd@gnu.org>
4170
4171 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
4172 GC_MALLOC_CHECK.
4173 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
4174 structure definition and related variabled to the top of the file.
4175 Include this code when GC_MALLOC_CHECK is defined.
4176 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
4177 register/unregister allocated region.
4178 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
4179 which isn't allocated.
4180 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
4181 something which is already in use.
4182 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
4183 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
4184 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
4185 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
4186
4187 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
4188 _malloc_internal instead of malloc.
4189 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
4190 of free.
4191
ea456eb4
AI
41922000-10-20 Andrew Innes <andrewi@gnu.org>
4193
4194 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
4195 Windows.
4196 (my_strftime) <macro>: Don't use macro arg list when redefining as
4197 _strftime_copytm.
4198 (my_strftime) <function>: Supply 0 as ut argument.
4199
e64c3a75
JR
42002000-10-19 Jason Rumney <jasonr@altavista.net>
4201
4202 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
4203 including dispextern.h, as it stops faces from working.
4204
4205 * w32fns.c (Fx_create_frame): Don't bother calling
4206 face-set-after-frame-default since the caller does it for us
4207 anyway. Clean up calls to x_get_arg to be consistent with X.
4208
4209 * w32term.c (x_produce_glyphs): Handle
4210 unibyte_display_via_language_environment correctly.
4211 (w32_draw_box_rect): Fix the calculation of width and height.
4212
4213 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
4214 as it has stopped working.
4215 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
4216 menu-bar.
4217
17401c97
GM
42182000-10-19 Gerd Moellmann <gerd@gnu.org>
4219
4220 * eval.c (skip_debugger): Prevent a compiler warning.
4221 (Fcondition_case): Likewise.
4222 (Fbacktrace_frame): Use a null interactive spec.
4223
773272d8
KH
42242000-10-19 Kenichi Handa <handa@etl.go.jp>
4225
4226 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
4227
a42943e9
GM
42282000-10-18 Gerd Moellmann <gerd@gnu.org>
4229
e50517d9
GM
4230 * strftime.c: Sync with glibc, file version 1.78.
4231 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
4232 should no longer be used according to ISO 8601.
4233
9035a35a
GM
4234 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
4235 no map for meta_prefix_char, don't try to use it as a keymap.
4236 Instead, if T_OK is non-zero, look up a default binding, if any,
4237 otherwise, if T_OK is zero, return nil.
4238
a42943e9
GM
4239 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
4240 (x_to_xcolors, png_load): Use x_query_color.
4241
4242 * xterm.c (x_color_cells, x_query_colors, x_query_color): New
4243 functions.
4244 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
4245 which can be slow.
4246 (x_copy_color, x_alloc_lighter_color): Likewise.
4247
4248 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
4249 (x_query_color, x_query_colors): Add prototype.
4250
4251 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
4252 check_string_bytes only if not noninteractive, increase count to 50.
4253
00de2987
MB
42542000-10-18 Miles Bader <miles@lsi.nec.co.jp>
4255
4256 * insdel.c (adjust_markers_for_delete): Handle before-insertion
4257 markers correctly.
4258
54918e2b
GM
42592000-10-17 Gerd Moellmann <gerd@gnu.org>
4260
1f0b3fd2
GM
4261 * alloc.c (pure_bytes_used): Renamed from pureptr.
4262 (ALIGN): New macro.
4263 (pure_alloc): New function.
4264 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
4265 Use it.
4266 (Fpurecopy): Use PURE_POINTER_P.
4267
68c5d1db
GM
4268 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
4269 PT has moved backward.
4270
9a038881
GM
4271 * xdisp.c (cursor_row_p): Take continued lines into account.
4272
361b097f
GM
4273 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
4274 string's size_byte.
4275 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
4276 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
4277 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
4278 string allocated.
4279
54918e2b
GM
4280 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
4281 of selective display off while searching for the next line start.
4282
03ed0806
KH
42832000-10-17 Kenichi Handa <handa@etl.go.jp>
4284
4285 * Makefile.in (term.o): Depend on dispextern.h.
4286
7e05cdaf
SM
42872000-10-16 Stefan Monnier <monnier@cs.yale.edu>
4288
4289 * keymap.c (keymap_memberp): Ensure that nil is not a member.
4290
a6801fd1
GM
42912000-10-16 Gerd Moellmann <gerd@gnu.org>
4292
483de32b
GM
4293 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
4294 the iterator at the beginning, so that they can be set later on,
4295 for instance in reseat_at_next_visible_line_start, without being
4296 overwritten.
4297
a6801fd1
GM
4298 * xfns.c (pbm_format): Add :foreground and :background keywords.
4299 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
483de32b 4300 (xbm_load): Recognize foreground and background color
a6801fd1
GM
4301 specifications.
4302
dbf1fcc1
EZ
43032000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
4304
4305 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
4306
4307 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern
4308 declaration.
4309
4310 * msdos.c (IT_set_face): Compare highlighted face with the default
4311 face, and invert colors if these faces' colors are identical.
4312 (Fmsdos_remember_default_colors): Don't swap foreground and
4313 background colors in initial_colors[].
4314 (IT_set_frame_parameters): Don't swap frame's foreground and
4315 background pixels. If ALIST includes "(reverse . t)", swap
4316 foreground-color and background-color properties in frame's
4317 param_alist. If the original frame's param_alist doesn't specify
4318 the colors, store unspecified-fg and unspecified-bg, reversed if
4319 required.
4320
4321 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
4322 the colors are unspecified and reversed, reverse fore- and back-
4323 ground in the returned value.
4324 (Fframe_parameter): Ditto.
4325
b41fe2c3
GM
43262000-10-16 Gerd Moellmann <gerd@gnu.org>
4327
3a6b59d9
GM
4328 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
4329 get_last_unchanged_at_beg_row.
4330 (find_first_unchanged_at_end_row): Renamed from
4331 get_first_unchanged_at_end_row.
4332 (find_first_unchanged_at_end_row): Convert assertions to
4333 unconditional tests which abort. When looking for a row in
4334 unchanged text, don't go further back than first_text_row.
4335
b41fe2c3
GM
4336 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
4337 Don't add in the last line's height when deciding if the new
4338 position is below the scroll margin.
9d1af64f 4339
b41fe2c3 43402000-10-16 Miles Bader <miles@gnu.org>
f657bbf6
MB
4341
4342 * editfns.c (Fconstrain_to_field): Check carefully for field
4343 boundaries if either OLD_POS or NEW_POS has a non-nil field
4344 property, even if they're the same.
4345
c412cb7b
KH
43462000-10-16 Kenichi Handa <handa@etl.go.jp>
4347
4348 * xterm.c (x_draw_box_rect): Fix the calculation of width and
4349 height for XFillRectangle.
4350
5586f3eb
SM
43512000-10-15 Stefan Monnier <monnier@cs.yale.edu>
4352
4353 * syntax.c (Fstring_to_syntax): New function extracted from
4354 Fmodify_syntax_entry.
4355 (Fmodify_syntax_entry): Use it and document the ! and | fences.
4356 (skip_chars, Fforward_comment): Remove unused variables.
4357 (syms_of_syntax): Add defsubr for string-to-syntax.
4358 (describe_syntax): Add code for comment and string fences.
4359
db785038
SM
43602000-10-14 Stefan Monnier <monnier@cs.yale.edu>
4361
4362 * keymap.c (access_keymap): Add AUTOLOAD parameter.
4363 Do the meta->esc mapping. Call get_keyelt before returning.
4364 Start scanning from the second element (the first is always `keymap')
4365 to make it easier to detect when we reach a parent map.
4366 Handle the case of inheriting from a symbol whose function is a map.
4367 (Fkeymap_parent): Also handle the `inherit from symbol' case.
4368 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
4369 (get_keyelt, Flookup_key): Update call to access_keymap.
4370 Remove the meta->esc mappings.
4371 (define_as_prefix): Delete old disabled code.
4372 (menu_item_p): New function.
4373 (where_is_internal_1): Skip over the few remaining menu items.
4374 * lisp.h (access_keymap): Update prototype.
4375 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
4376 Update call to access_keymap.
4377 (follow_key, read_key_sequence): Update calls to access_keymap.
4378 Remove the meta->esc mappings.
4379
cafafe0b
GM
43802000-10-13 Gerd Moellmann <gerd@gnu.org>
4381
a2e2a7f6
GM
4382 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
4383 with additional argument.
4384
cafafe0b
GM
4385 * xdisp.c (cursor_row_p): New function.
4386 (try_cursor_movement, display_line): Use it.
4387
4388 * xdisp.c (append_space): Also save/restore iterator's current
4389 character and its length.
4390
4391 * xdisp.c (init_from_display_pos): Add an assertion.
4392 (handle_stop): Don't set iterator's add_overlay_start.
4393 (handle_invisible_prop): Likewise.
4394 (load_overlay_strings): If text under an overlay is invisible,
4395 take both before- and after-strings into account when the iterator
4396 is positioned either at the start or at the end of the overlay.
4397 (forward_to_next_line_start): Rewritten.
4398 (reseat_at_next_visible_line_start): Rewritten.
4399 (set_iterator_to_next): Add parameter RESEAT_P.
4400
4401 * dispextern.h (struct it): Remove member add_overlay_start.
4402 (set_iterator_to_next): Change prototype.
4403
c744452b
KH
44042000-10-13 Kenichi Handa <handa@etl.go.jp>
4405
4406 * coding.c (code_convert_region): Be sure to initialize
4407 coding->category_idx.
e4a3f4e1
KH
4408 (decode_coding_string): Set coding->src_multibyte and
4409 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
4410 (encode_coding_string): Set coding->src_multibyte and
4411 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
c744452b 4412
321fd26f
SM
44132000-10-12 Stefan Monnier <monnier@cs.yale.edu>
4414
4415 * xfns.c (Fx_create_frame): Don't bother calling
4416 face-set-after-frame-default since the caller does it for us anyway.
4417
76832439
EZ
44182000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
4419
4420 * window.c (coordinates_in_window): Fix detection of vertical line
4421 on character terminals.
4422
2483cf58
GM
44232000-10-12 Gerd Moellmann <gerd@gnu.org>
4424
4425 * editfns.c (save_excursion_save): Additionally record the
4426 selected window.
4427 (save_excursion_restore): If buffer was visible in a window, and a
4428 different window was selected, and the old selected window is
4429 still live, restore point in that window.
4430
eb991b25
KH
44312000-10-12 Kenichi Handa <handa@etl.go.jp>
4432
8a0eba09
KH
4433 * xterm.c (x_produce_glyphs): Handle
4434 unibyte_display_via_language_environment correctly.
4435
20401fcc
KH
4436 * regex.c (regex_compile): Change the way of handling a range from
4437 unibyte char to multibyte char.
4438
4439 * syntax.c (skip_chars): Change the way of handling a range from
4440 unibyte char to multibyte char.
4441
eb991b25
KH
4442 * process.c (read_process_output): Cancel previous change.
4443
365dd325
EZ
44442000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
4445
c1b096cb
EZ
4446 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
4447
365dd325
EZ
4448 * charset.c (Ffind_charset_string): Doc fix.
4449 (Ffind_charset_region): Doc fix.
4450
eb483c2b
KH
44512000-10-11 Kenichi Handa <handa@mule.m17n.org>
4452
4453 * process.c (read_process_output): Fix previous change. Adjust
4454 multibyteness of text to insert in a buffer by
df3c11b9 4455 string_make_unibyte/multibyte instead of
eb483c2b
KH
4456 Fstring_as_unibyte/multibyte.
4457
b40bfb99
AS
44582000-10-10 Andreas Schwab <schwab@suse.de>
4459
4460 * alloc.c (mark_object): Remove all workarounds installed on
4461 1993-08-08.
4462
caff31d4
KH
44632000-10-10 Kenichi Handa <handa@etl.go.jp>
4464
4465 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before
4466 returning.
4467 (base64_encode_1): Make it work for a text of multibyte form.
4468 (Fbase64_decode_region): Allocate sufficient memory for multibyte
4469 case. Don't call str_to_multibyte because base64_decode_1
4470 produces correct multibyte form for eight-bit codes.
4471 (Fbase64_decode_string): Adjusted for the change of
4472 base64_decode_1.
4473 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
4474 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
4475 codes.
4476
4477 * charset.h (CHAR_STRING): Optimized for single byte characters.
4478
cba026ef
AS
44792000-10-09 Andreas Schwab <schwab@suse.de>
4480
4481 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
4482 -1 after socket is closed, to fall through to error processing.
4483
1e21fe48
EZ
44842000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
4485
4486 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
365dd325 4487 variables. If ALIST includes foreground-color or
1e21fe48
EZ
4488 background-color, change also the colors of the default face for
4489 this frame.
4490
a640322e
EZ
44912000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
4492
4493 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
4494 them extern (they are defined on xfaces.c).
4495 (syms_of_msdos): Don't intern and don't staticpro
4496 Qbackground_color and Qforeground_color.
4497
a115794c
EZ
44982000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
4499
4500 * frame.c (Fframe_parameter): For non-windowed frames, if
4501 f->param_alist says foreground or background color is unspecified,
4502 call tty_color_name to return the color name computed from the
4503 frame's current colors.
4504
f5533b63
DL
45052000-10-06 Dave Love <fx@gnu.org>
4506
4507 * terminfo.c (ospeed): Don't declare.
4508
4509 * sysdep.c: Don't include string.h.
4510 (h_errno): Declare conditional also on TRY_AGAIN.
4511
4512 * charset.c (Ffind_charset_string): Doc fix.
4513
4514 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
4515 (Fbase64_decode_region, Fbase64_decode_string): More explicit
4516 error messages.
4517
2b06561a
DL
45182000-10-05 Dave Love <fx@gnu.org>
4519
4520 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
4521 position like menu-bar.
4522
ca839c85
GM
45232000-10-05 Gerd Moellmann <gerd@gnu.org>
4524
4525 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
4526
4527 * xdisp.c (handle_single_display_prop): Use safe_call1.
4528 (safe_call): Renamed from call_function.
4529 (safe_call1): New function.
4530 (handle_fontified_prop): Use safe_call1 instead of call1.
4531 (safe_eval): Renamed from eval_form.
4532 (safe_eval_handler): Renamed from eval_handler.
4533 (handle_single_display_prop, display_mode_element): Use safe_eval
4534 instead of eval_form.
4535
4536 * xfaces.c (merge_face_heights): Use safe_call instead of
4537 call_function.
4538
4539 * keyboard.c (show_help_echo): Use safe_call instead of
4540 call_function; use safe_eval instead of eval_form.
4541
4542 * lisp.h (safe_call): Renamed from call_function.
4543 (safe_eval): Renamed from eval_form.
4544 (safe_call1): Add prototype.
4545
a3489ece
MB
45462000-10-05 Miles Bader <miles@lsi.nec.co.jp>
4547
4548 * xfns.c (image_ascent): Rearrange ascent calculation for the
4549 has-a-font case.
4550
35810b6f
SM
45512000-10-04 Stefan Monnier <monnier@cs.yale.edu>
4552
4553 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
4554 (where_is_internal_1): Don't bother ignoring menu-items any more.
4555
3dc78168
GM
45562000-10-04 Gerd Moellmann <gerd@gnu.org>
4557
4558 * keyboard.c (update_menu_bindings): New variable.
4559 (parse_menu_item): Use AREF. If update_menu_bindings
4560 is 0, don't update menu bindings.
4561 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
4562
1efc2bb9
EZ
45632000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
4564
4565 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
4566 to `mark_object'.
4567
3f679f55
SM
45682000-10-02 Stefan Monnier <monnier@cs.yale.edu>
4569
4570 * syntax.c (forw_comment): Match nestedness of ender/starter.
4571 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
4572 (prev_char_comstart_first): Remove.
4573 (back_comment): Check two-char comment markers more carefully
4574 to better handle overlapping cases like *//* or /* */* */ ...
4575 Match nestedness of ender/starter.
4576
2021ab61
DL
45772000-10-02 Dave Love <fx@gnu.org>
4578
4579 * config.in (HAVE_GAI_STRERROR): Add undef.
4580
4581 * process.c (Fopen_network_stream): Use it.
4582
4583 * m/alpha.h (NO_REMAP): Don't define.
4584
64e6cc18
GM
45852000-10-02 Gerd Moellmann <gerd@gnu.org>
4586
4587 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
4588 return with a string converted to an integer or vice versa when
4589 Vmocklisp_arguments is t.
4590 (Fsignal): Likewise. The function can return for `quit'.
4591 (struct gcpro): Declare member `var' to point to a volatile
4592 Lisp_Object.
4593
4594 * eval.c (error): Prevent compiler warning.
4595
b1904cd9
SM
45962000-09-30 Stefan Monnier <monnier@cs.yale.edu>
4597
4598 * keymap.c (keymap_memberp): New function.
4599 (Fset_keymap_parent): Use it.
4600 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
4601 Use keymap_memberp to avoid creating cycles.
4602 (access_keymap): Use KEYMAPP.
4603
71c9ec51
GM
46042000-09-30 Gerd Moellmann <gerd@gnu.org>
4605
4606 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
64e6cc18
GM
4607 gai_strerror. Make sure xerrno is set if connect fails. Improve
4608 error recovery.
71c9ec51 4609
c70c6b58
JR
46102000-09-29 Jason Rumney <jasonr@gnu.org>
4611
4612 * w32term.c (w32_char_font_type, w32_encode_char)
4613 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
4614 (w32_bdf_per_char_metric): New function.
4615 (w32_per_char_metric): Use it.
4616 (x_draw_glyph_string_background): Always draw background for BDF
4617 glyphs.
4618
4619 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
4620 GDI object which is a scarce resource.
4621
4622 * w32bdf.c (search_file_line): Fix skipping of whitespace.
4623 (get_quoted_string): Fix limit on memchr search.
4624 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
4625 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
4626 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
4627 (get_cached_font_char, cache_char_offset): Use macro
4628 BDF_CODEPOINT_RANGE_COVER_P.
4629 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
4630 (clear_cached_bitmap_slots): New function.
4631 (GET_HEX_VALUE): G-Z, g-z are not hex.
4632 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
4633 (get_bitmap_with_cache): Use new cache implementation.
4634 (create_offscreen_bitmap): New function.
4635 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
4636
4637 * w32term.c (x_produce_glyphs): If the distance from the current
4638 position to the next tab stop is less than a canonical character
4639 width, use the tab stop after that.
4640 (x_draw_glyphs): Handle case START and END are out of bounds more
4641 carefully.
4642 (x_clear_mouse_face): Block/unblock input.
4643 (x_display_and_set_cursor): Don't show a hollow box cursor for
4644 buffers whose cursor_type is nil.
4645
fe01239f
GM
46462000-09-29 Gerd Moellmann <gerd@gnu.org>
4647
4648 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar
4649 disappears.
4650
4651 * dispextern.h (updating_frame): Declare extern.
4652
e7c52f1f
AS
46532000-09-29 Andreas Schwab <schwab@suse.de>
4654
4655 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
4656
de6e1f7c
GM
46572000-09-29 Gerd Moellmann <gerd@gnu.org>
4658
25126faa
GM
4659 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
4660 use its function definition.
4661 (tool_bar_items): Likewise.
4662
de6e1f7c
GM
4663 * lisp.h (fatal): Declare NO_RETURN.
4664
454ee39b
KH
46652000-09-29 Kenichi Handa <handa@etl.go.jp>
4666
4667 * keymap.c: Remove the line "#undef NULL".
4668
96301c5f
GM
46692000-09-28 Gerd Moellmann <gerd@gnu.org>
4670
4671 * xterm.c (x_make_frame_visible): Try harder to make the frame
4672 visible.
4673
efffeeb4
DL
46742000-09-28 Dave Love <fx@gnu.org>
4675
ecb8b666
DL
4676 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
4677
dc3cd20f
DL
4678 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
4679
4680 * .gdbinit (xreload): Note its need on GNU/Linux.
4681
efffeeb4
DL
4682 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
4683 r_alloc, r_alloc_free.
4684
8610d903
KH
46852000-09-28 Kenichi Handa <handa@etl.go.jp>
4686
4687 * syntax.c (skip_chars): Handle negation correctly.
4688
8901d1ac
GM
46892000-09-27 Gerd Moellmann <gerd@gnu.org>
4690
6f22f1ad
GM
4691 * xfaces.c (realize_default_face): Call set_lface_from_font_name
4692 with non-zero FORCE_P argument.
4693
8901d1ac
GM
4694 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
4695 Add assertions.
4696
4697 * xdisp.c (window_box_height): Add an assertion.
4698
4699 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
4700 tool-bar than is available.
4701 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
4702
36f1966f
DL
47032000-09-27 Dave Love <fx@gnu.org>
4704
efffeeb4 4705 * s/irix6-5.h: Now works 64-bit. Tidied.
36f1966f 4706
31d929e5
GM
47072000-09-26 Gerd Moellmann <gerd@gnu.org>
4708
c98863bf
GM
4709 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
4710 instead of BITS_PER_INT.
4711 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
4712 EMACS_UINT, respectively.
4713 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
4714
4715 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
4716
4717 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
4718
77072ab1
GM
4719 * window.c (freeze_window_starts): Construct last argument for
4720 foreach_window differently.
4721
4722 * xfns.c (x_decode_color): Don't return a Lisp_Object.
4723
4724 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
4725 EMACS_UINT instead of `int' and `unsigned int'.
4726 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
4727
4728 * frame.h (struct frame): Make the `nothing' member of union
4729 output_data an EMACS_INT.
4730
31d929e5
GM
4731 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug
4732 hunting.
4733 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
4734 size in the sdata structure.
4735 (SDATA_NBYTES, SDATA_DATA): New macros.
4736 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
4737 differently for the different layout of the sdata structure.
4738 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
4739 in sdata.
4740 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
4741 Check that size recorded in the string size and size recorded in
4742 the sdata structure agree.
4743
3e60b029
DL
47442000-09-25 Dave Love <fx@gnu.org>
4745
4746 * buffer.c: Include stdio.h.
4747
4748 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
4749
4750 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
4751
4752 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
4753 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as
4754 size_t.
4755 (__malloc_extra_blocks): Declare as __malloc_size_t.
4756
8ff16b4e
GM
47572000-09-25 Gerd Moellmann <gerd@gnu.org>
4758
755a2ccd
GM
4759 * alloc.c (mark_image): Use GC_NILP instead of NILP.
4760
d8b4516f
GM
4761 * keyboard.c (show_help_echo): Set help_echo_showing_p.
4762 (read_char): If help-echo is showing, preserve the echo area
4763 when redisplaying.
4764
4765 * xdisp.c (help_echo_showing_p): New variable.
4766 (set_message): Reset it to 0.
4767 (init_xdisp): Initialize help_echo_showing_p.
4768
4769 * dispextern.h (help_echo_showing_p): Declare extern.
4770
4771 * config.in: Fix typo in __GNUC_MINOR__.
4772
4773 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
4774
b11af2dd
GM
4775 * s/freebsd.h (POSIX_SIGNALS): Define.
4776
8ff16b4e
GM
4777 * xterm.c (x_clear_mouse_face): Block/unblock input.
4778
844eb643
DL
47792000-09-24 Dave Love <fx@gnu.org>
4780
4781 * fns.c (base64_encode_1): Fix last change.
4782
b30ab1b3
GM
47832000-09-22 Gerd Moellmann <gerd@gnu.org>
4784
4785 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
4786
4787 * xdisp.c (try_window_reusing_current_matrix): More fixes
4788 for the case window has a header-line.
4789
c6cbe5f0
DL
47902000-09-22 Dave Love <fx@gnu.org>
4791
4c7c1f3f
DL
4792 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
4793 a doc string.
4794
4795 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
4796
c6cbe5f0
DL
4797 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
4798
550a625e
GM
47992000-09-21 Gerd Moellmann <gerd@gnu.org>
4800
4c7c1f3f 4801 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
fca99116
GM
4802 for GCC >= 2.5.
4803
4804 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error): Declare
4805 NO_RETURN.
4806
80d26f99
GM
4807 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
4808 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
4809 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
4810 warnings.
4811
4812 * marker.c (byte_char_debug_check): Return void.
4813
623a0aae
GM
4814 * xfns.c (Fx_create_frame): Set default frame parameter value
4815 for tool-bar-lines to 1.
4816
4817 * dispnew.c (scrolling_window): Compare y-positions of rows
4818 equal at the start. Some simplification.
4819
4820 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
4821 reused rows' y-position in the case window has a header-line, and
4822 new window start is greater than old window start.
4823
42ac0ae5
GM
4824 * process.c (process_sent_to): New variable.
4825 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
4826 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
4827 Declare more parameters volatile.
4828
550a625e
GM
4829 * lread.c (Vrecursive_load_depth_limit): New variable.
4830 (Fload): Check recursive loads whose recursion depth exceeds
4831 Vrecursive_load_depth_limit.
4832 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
4833
8320414c
GM
48342000-09-20 Gerd Moellmann <gerd@gnu.org>
4835
f46c275e
GM
4836 * fileio.c (Fread_file_name): Doc fix.
4837
4838 * editfns.c (Fmessage_or_box): Doc fix.
4839
4840 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
4841
b7e11c5b
GM
4842 * xfns.c (xbm_scan): Allow C-style comments.
4843
8320414c
GM
4844 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
4845 symbols are specified, add color translations to the cache.
4846 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New
4847 functions.
4848 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
4849 xpm_cache_color.
4850 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
4851 structures to xpm_init_color_cache.
4852
da1608d9
GM
48532000-09-19 Gerd Moellmann <gerd@gnu.org>
4854
4855 * dispnew.c (update_window_line): Make sure to always draw
4856 mode-lines.
4857
6badfa25
AI
48582000-09-19 Andrew Innes <andrewi@gnu.org>
4859
4860 * makefile.nt (bootstrap-emacs): Don't change directory.
4861
3a5f42bb
KH
48622000-09-19 Kenichi Handa <handa@etl.go.jp>
4863
1b7649bd
KH
4864 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
4865
3a5f42bb
KH
4866 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
4867 If output buffer is too small, signal an appropriated error.
4868
9f83cf0b
DL
48692000-09-18 Dave Love <fx@gnu.org>
4870
4871 * keyboard.c (menu_bar_items, tool_bar_items)
4872 (current_active_maps): Remove redundant get_local_map call.
4873
28c7826c
GM
48742000-09-18 Gerd Moellmann <gerd@gnu.org>
4875
5cefa566
GM
4876 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
4877 cursor for buffers whose cursor_type is nil.
4878
6fed3546
GM
4879 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
4880 a feature to implement that is already implemented.
4881 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
4882 warnings.
4883
4884 * xfns.c (x_clear_image_1): New function.
4885 (x_clear_image): Use it.
4886 (x_from_xcolors): Use x_clear_image_1; don't free the image's
4887 mask.
4888
05b1f851
GM
4889 * dispnew.c (update_window): Move test for invisible lines
4890 at the top to update_window_line.
4891 (update_window_line): Handle invisible lines here.
4892
f4779de9
GM
4893 * xfns.c (clear_image_cache): Clear current matrices of all
4894 frames sharing an image cache. Block input while freeing
4895 images. Fix timestamp comparison.
4896 (x_clear_image): Also free the mask.
4897
28c7826c
GM
4898 * xfns.c (lookup_image): Block input while loading the image so
4899 that we won't get interrupted in a state where the image isn't yet
4900 set up completely.
4901 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
4902 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
4903 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
4904 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock
4905 input.
4906
b7412313
GM
49072000-09-16 Gerd Moellmann <gerd@gnu.org>
4908
4909 * dispnew.c (update_window): Make sure to make desired rows
4910 current even if they are completely invisible at the top
4911 of a window.
4912
47e351a3
GM
49132000-09-15 Gerd Moellmann <gerd@gnu.org>
4914
7f8f1edc
GM
4915 * xfns.c (lookup_image): Build mask before applying an algorithm.
4916 Recognize algorithm `disabled'.
4917 (cross_disabled_images): New variable.
4918 (COLOR_INTENSITY): New macro.
4919 (x_detect_edges): Use COLOR_INTENSITY.
4920 (x_disable_image): New function.
4921 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
4922
4923 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
4924 disabled state, don't apply an image transformation algorithm if
4925 the user specified an image for the disabled state. Use
28c7826c 4926 `:algorithm disabled' for creating a disabled item's image if the
7f8f1edc
GM
4927 user hasn't specified an image.
4928
ebb8f116
GM
4929 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
4930 allocation functions with the XPM lib.
4931 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
4932 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
4933 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
4934 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
4935 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New
4936 functions.
4937 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
4938 functions, if possible, because these handle color allocation
4939 failure more gracefully.
4940 (Fimage_mask_p): New function.
4941
47e351a3
GM
4942 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
4943 (Qedge_detection, Qheuristic): New symbols.
4944 (syms_of_xfns): Initialize new symbols.
4945 (lookup_image): Handle `:mask X', `:algorithm emboss', and
4946 `algorithm (edge-detection ...)'.
4947 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
4948 (tiff_format, gif_format, gs_format): Add `:mask'.
4949 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
4950 (GIF_MASK, GS_MASK): New enumerators.
4951 (x_laplace_read_row, x_laplace_write_row): Functions removed.
4952 (emboss_matrix, laplace_matrix): New variables.
4953 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
4954 (x_edge_detection): New functions.
4955 (x_laplace): Rewritten in terms of x_detect_edges.
4956 (x_build_heuristic_mask): If image has a mask, free it.
4957
fe83b953
AI
49582000-09-14 Andrew Innes <andrewi@gnu.org>
4959
4960 * makefile.w32-in: Revert to Unix line endings.
4961
3021e816
AI
49622000-09-14 Andrew Innes <andrewi@gnu.org>
4963
4964 * makefile.w32-in: Standardize indentation somewhat.
4965 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
4966 cater for differences between shells.
4967
4968 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
4969
2a32b5ea
GM
49702000-09-14 Gerd Moellmann <gerd@gnu.org>
4971
4972 * xterm.c (x_produce_glyphs): If the distance from the current
4973 position to the next tab stop is less than a canonical character
4974 width, use the tab stop after that.
4975
b4331e96
DL
49762000-09-14 Dave Love <fx@gnu.org>
4977
4978 * buffer.c (alloc_buffer_text): Fix xmalloc call.
4979
ef9e4345
GM
49802000-09-14 Gerd Moellmann <gerd@gnu.org>
4981
085536c2
GM
4982 * xdisp.c (handle_fontified_prop): While running fontification
4983 functions, bind `fontification-functions' and
4984 `after-change-functions' to nil.
4985
ef9e4345
GM
4986 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
4987 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
4988
4989 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
4990
4991 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
4992 USE_MMAP_FOR_BUFFERS.
4993
4994 * insdel.c (make_gap): Use enlarge_buffer_text.
4995
4996 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
4997 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
4998 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
4999 from former r_alloc_* functions in ralloc.c.
5000 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New
5001 variables.
5002 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
5003 (mmap_init) [REL_ALLOC_MMAP]: New function.
5004 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
5005 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
5006 BUFFER_FREE.
5007
5008 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
5009 (enlarge_buffer_text): Add prototype.
5010
5011 * ralloc.c: Remove everything having to do with the use of mmap.
5012
f8608968
GM
50132000-09-13 Gerd Moellmann <gerd@gnu.org>
5014
2a494b2d
GM
5015 * sound.c (Fplay_sound): Doc fix.
5016
8c907a56
GM
5017 * keyboard.c: Avoid some more compiler warnings.
5018 (parse_tool_bar_item): Ignore cached key bindings.
5019
f8608968
GM
5020 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
5021 and allocation of Lisp data.
5022
6ab70e9a
GM
50232000-09-12 Gerd Moellmann <gerd@gnu.org>
5024
d12d0a9b
GM
5025 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
5026 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
5027 defaults first.
5028
6ab70e9a
GM
5029 * lread.c (Fload): Put code checking for recursive loads in #if 0.
5030
63c36c3c
KH
50312000-09-12 Miyashita Hisashi <himi@meadowy.org>
5032
5033 * ccl.c: Comment fixed.
5034 (MAX_MAP_SET_LEVEL): Increased to 30.
5035 (PUSH_MAPPING_STACK): Enclose with do-while block.
5036 (POP_MAPPING_STACK): Likewise.
5037 (stack_idx_of_map_multiple): New variable.
5038 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
5039 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
5040 call the corresponding CCL program by
5041 CCL_CALL_FOR_MAP_INSTRUCTION.
5042 (ccl_driver) <CCL_MapSingle>: Likewise.
5043 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
5044 with the case where looking up process reaches to the end of
5045 map-set, and call CCL programs as the above change.
5046
7ee3bd7b
GM
50472000-09-11 Gerd Moellmann <gerd@gnu.org>
5048
8ec8a5ec
GM
5049 * xfns.c (png_load, jpeg_load): Declare some variables volatile
5050 that might be clobbered by longjmp.
5051 (check_x_display_info, x_decode_color, create_frame_xic)
5052 (Fx_display_backing_store, Fx_display_visual_class)
5053 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler
5054 warnings.
5055
f74b0705
GM
5056 * lread.c (init_lread): Set Vloads_in_progress to nil.
5057 (Fload): Show list of recursively loaded files, when signaling an
5058 error.
5059
7ee3bd7b
GM
5060 * lread.c (Vloads_in_progress): New variable.
5061 (record_load_unwind): New function.
5062 (Fload): Check for recursive loads.
5063 (syms_of_lread): Initialize Vloads_in_progress.
5064 (read_integer, read1): Avoid some compiler warnings.
5065
5066 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
5067 compiler warnings.
5068
974e1e5b
MB
50692000-09-11 Miles Bader <miles@gnu.org>
5070
5071 * editfns.c (Fbuffer_string): Doc fix.
5072
9824c4e3
GM
50732000-09-10 Gerd Moellmann <gerd@gnu.org>
5074
5075 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
5076
6a72fdd1
KR
50772000-09-09 Ken Raeburn <raeburn@gnu.org>
5078
5079 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
5080 whether to include other header files.
5081
28e6fb66
GM
50822000-09-09 Gerd Moellmann <gerd@gnu.org>
5083
5084 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
9824c4e3 5085 by Fmemq as a boolean.
28e6fb66 5086
7f8b6551
SM
50872000-09-08 Stefan Monnier <monnier@cs.yale.edu>
5088
5089 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
5090
a8710abf
GM
50912000-09-08 Gerd Moellmann <gerd@gnu.org>
5092
d1a02881
GM
5093 * ralloc.c (mmap_fd): Remove initializer which can make it
5094 read-only in a dumped Emacs.
5095 (mmap_fd_1): New variable.
5096 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
5097 restore it from there.
5098 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
5099 unconditionally so that mmap_fd can be initialized there.
5100 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
5101 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
5102 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
5103
c454aac1
GM
5104 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
5105
5106 * xdisp.c (dump_glyph_row): Fix printf format string.
5107 (display_line, move_it_in_display_line_to): Avoid compiler
5108 warnings.
5109
fc653ef2
GM
5110 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
5111
3015eec0
GM
5112 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
5113 inheritance.
5114
bfe0ee88
GM
5115 * xdisp.c (try_window_id): When trying to locate cursor in
5116 unchanged rows at the top, handle the case that we can't find it.
5117
a8710abf
GM
5118 * xterm.c (x_draw_glyphs): Handle case START and END are out
5119 of bounds more carefully.
5120
6b7d4ae4
DL
51212000-09-08 Dave Love <fx@gnu.org>
5122
423193c5
DL
5123 * s/sol2.h (REL_ALLOC_MMAP): Define.
5124 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
5125
5126 * ralloc.c: Don't include string.h (redundant).
5127 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
5128 [!MAP_ANON]: Include fcntl.h.
5129 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
5130 (r_alloc, r_re_alloc, r_alloc_free)
5131 (mmap_enlarge, mmap_set_vars): Use it.
5132 (r_alloc_init_fd): New function.
5133 (__morecore) [SYSTEM_MALLOC]: Don't declare.
5134 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
5135 malloc type.
5136
5137 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
5138 Remove vm-limit.o.
5139
6b7d4ae4
DL
5140 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
5141 change to __NetBSD__.
5142
44d31981
KH
51432000-09-08 Kenichi Handa <handa@etl.go.jp>
5144
5145 * search.c (compile_pattern): Check the multibyteness of cached
5146 string and PATTERN.
5147
aad40737
MB
51482000-09-08 Miles Bader <miles@gnu.org>
5149
5150 * xfaces.c (default_face_vector): Function removed.
5151 (Finternal_merge_in_global_face): Restore old global/local
5152 attribute override order. Use inline loop instead of calling
5153 default_face_vector.
5154
91a211b5
GM
51552000-09-07 Gerd Moellmann <gerd@gnu.org>
5156
5157 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
5158 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
5159 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
5160 where necessary, in case POINTER_TYPE is `void'.
5161
03419440
EZ
51622000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
5163
5164 * frame.c (make_terminal_frame): Initialize frame foreground and
5165 background colors to unspecified, for the initial instance of an
5166 MSDOS frame.
5167
f46f845b
GM
51682000-09-07 Gerd Moellmann <gerd@gnu.org>
5169
24f76fbf
GM
5170 * ralloc.c (mmap_find): Fix overlap computation.
5171 (mmap_enlarge): Compute nbytes before trying to find an
5172 overlapping region.
5173
f46f845b
GM
5174 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
5175 instead of `!='.
5176
5177 * lread.c (syms_of_lread): Change value of regexp
5178 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
5179
5180 * xmenu.c (xdialog_show): When looking up the selection in
5181 menu_items, take `quote' boundaries into account; this corresponds
5182 to a nil ITEM in x-popup-dialog.
5183
3c014385
KH
51842000-09-07 Kenichi Handa <handa@etl.go.jp>
5185
fd6f711b
KH
5186 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
5187 not 0x81.
5188 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
5189
3c014385 5190 * coding.c (encode_coding_sjis_big5): Use translation table for
ed254191
KH
5191 encoding, not decoding. Fix the handling of latin-jisx0201.
5192 Check for the charset katakana-jisx0201 too.
3c014385 5193 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
f46f845b 5194 (detect_coding_sjis): Check the byte sequence more rigidly.
3c014385 5195
0da3ecef
GM
51962000-09-07 Gerd Moellmann <gerd@gnu.org>
5197
ab0ee409
GM
5198 * xfaces.c (Vparam_value_alist): New variable.
5199 (syms_of_xfaces): Initialize it.
5200 (Finternal_set_lisp_face_attribute): Avoid more consing.
5201
5202 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
5203 specially.
5204 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
5205 (Qbackground_mode): New variable.
5206 (syms_of_frame_1): Initialize Qbackground_mode.
5207
5208 * lisp.h (Qdisplay): Declare extern.
1091dd67 5209
0da3ecef
GM
5210 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
5211 change face on all frames, and change the default for new frames.
5212
b14654b9
DL
52132000-09-07 Dave Love <fx@gnu.org>
5214
5215 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
5216
d24fd56f
KH
52172000-09-07 Kenichi Handa <handa@etl.go.jp>
5218
794f3670
KH
5219 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
5220
0fddd0dc
KH
5221 * charset.c: Include composite.h
5222 (lisp_string_width): New function.
5223 (Fstring_width): Call lisp_string_width instead of strwidth.
5224
5225 * Makefile.in (charset.o): Depends on composite.h.
5226
d24fd56f
KH
5227 * process.c (read_process_output): Before inserting the decoded
5228 text in the buffer, adjust the multibyteness.
5229
fa0b693c
GM
52302000-09-06 Gerd Moellmann <gerd@gnu.org>
5231
73b77ee5
GM
5232 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
5233 buffer's text buffer is null, map new memory.
5234
0a58f946
GM
5235 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
5236 POINTER_TYPE and size_t.
5237 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
5238 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
5239 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
5240 [REL_ALLOC_MMAP]: New macros.
5241 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
5242 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
5243 [REL_ALLOC_MMAP]: New functions.
5244
5245 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
5246 before and after unexec.
5247
5248 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
5249 text buffers if necessary.
5250
5251 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
5252 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
5253 in prototypes.
5254
fa0b693c
GM
5255 * config.in (HAVE_MMAP): Add #undef.
5256
877055f6
GM
52572000-09-05 Gerd Moellmann <gerd@gnu.org>
5258
08ba3862
GM
5259 * frame.c (Qdisplay_type): New variable.
5260 (syms_of_frame_1): Initialize it.
5261 (Fframe_parameter): New function that avoids consing.
5262 (syms_of_frame): Defsubr it.
5263
66ffe51c
GM
5264 * buffer.c (Fother_buffer): Consider buffers as invisible when
5265 they are displayed in a window on an invisible frame.
5266
877055f6
GM
5267 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
5268 get-largest-window always return nil.
5269
bb970e67
GM
52702000-09-04 Gerd Moellmann <gerd@gnu.org>
5271
5272 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
5273 variable; recognize Emacs 19 elc files.
5274
7a3d0e0e
MB
52752000-09-04 Miles Bader <miles@gnu.org>
5276
5277 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
5278 before initially popping up the menu, so the menu doesn't flash
5279 when the face settings are significantly different from the
5280 defaults.
5281
14473664
SM
52822000-09-04 Stefan Monnier <monnier@cs.yale.edu>
5283
5284 * regex.c (WIDE_CHAR_SUPPORT): New macro.
5285 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
5286 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
5287 (BIT_UNIBYTE): Remove.
5288 (re_match_2_internal): Delete corresponding code and streamline the
5289 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
5290 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
5291 (re_wctype_t): New type.
5292 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
5293 (regex_compile): Use them and fix handling of overly long char classes.
5294
c1174479
AI
52952000-09-03 Andrew Innes <andrewi@gnu.org>
5296
f8803e97
AI
5297 * makefile.w32-in: Change to DOS line endings.
5298
c1174479
AI
5299 * s/ms-w32.h (ORDINARY_LINK): New define.
5300
5301 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
5302 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
5303
5304 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
5305 (distclean): Delete them here instead.
5306
44ef7cf6
AI
5307 * w32proc.c (compare_env): Convert to uppercase for comparison,
5308 not lowercase, to match how the native Windows shell works.
5309
49b3bd82
JR
53102000-09-03 Jason Rumney <jasonr@gnu.org>
5311
5312 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
5313 CVS changes the line-ends when checking in/out on DOS/Windows.
5314
5315 * makefile.nt (emacs): Do not change directory to run temacs, as
5316 the load-path is set relative to current directory.
5317
a3d35a39
MB
53182000-09-03 Miles Bader <miles@gnu.org>
5319
5320 * xterm.c (x_alloc_lighter_color_for_widget): New function.
5321
d276b0cf
GM
53222000-09-02 Gerd Moellmann <gerd@gnu.org>
5323
715e84c9
GM
5324 * xdisp.c (redisplay_mode_lines): New function.
5325 (display_mode_lines): Return number of mode lines displayed.
5326 (echo_area_display): Use redisplay_mode_lines to draw garbaged
5327 mode lines. Don't temporarily bind redisplay-dont-pause to t.
5328
8892f40b
GM
5329 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
5330 string.h and strings.h.
5331 (index) [HAVE_INDEX]: Add prototype.
5332
d276b0cf
GM
5333 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
5334 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
5335
5336 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
5337 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
5338
38404229
GM
53392000-09-01 Gerd Moellmann <gerd@gnu.org>
5340
5341 * lread.c (read1): Accept `?' as symbol constituent, for
5342 compatiblity with XEmacs.
5343
c0f9ea08
SM
53442000-08-31 Stefan Monnier <monnier@cs.yale.edu>
5345
5346 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
5347 (struct re_pattern_buffer): Remove newline_anchor.
5348 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
5349 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
5350 (re_max_failures, fail_stack): Use size_t rather than unsigned.
5351 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
5352 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
5353 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
5354 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
5355 Get rid of references to newline_anchor.
5356 (regcomp): Allocate and precompute a fastmap.
5357
8c0f83fe
GM
53582000-08-31 Gerd Moellmann <gerd@gnu.org>
5359
5360 * lread.c (openp): GCPRO local variable `filename'.
5361
4bb91c68
SM
53622000-08-30 Stefan Monnier <monnier@cs.yale.edu>
5363
5364 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
5365
5366 * regex.c: Merge some changes from GNU libc. Add prototypes.
5367 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
5368 Use memcmp and memcpy instead of bcopy and bcmp.
5369 (init_syntax_once): Use ISALNUM.
5370 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
5371 (REG_UNSET_VALUE): Remove. Use NULL instead.
5372 (REG_UNSET, re_match_2_internal): Use NULL.
5373 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
5374 New macros.
5375 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
5376 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
5377 (regex_compile): In handle_interval, return an error rather than try to
5378 unfetch the interval if we can't find the closing brace.
5379 Obey the RE_NO_GNU_OPS syntax bit.
5380 (TOLOWER): New macro.
5381 (regcomp): Use it.
5382 (regexec): Allocate regs.start and regs.end as one block.
5383
5226a931
GM
53842000-08-30 Gerd Moellmann <gerd@gnu.org>
5385
868dd24b
GM
5386 * xdisp.c (echo_area_display): Check display_completed instead
5387 of calling detect_input_pending.
5388
5389 * dispnew.c (update_frame): Only set display_completed here; move
5390 the update_begin and update_end calls here from update_frame_1.
5391 (update_frame_1): Don't set display_completed here, don't call
5392 update_begin/update_end.
5393
5226a931
GM
5394 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
5395 instead of store_frame_param.
5396
2a8bd25f
GM
53972000-08-29 Gerd Moellmann <gerd@gnu.org>
5398
5399 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
5400 desired window matrix hasn't been displayed, use the current row
5401 instead. Make sure that only those frame rows are updated for
5402 which there exists a corresponding enabled desired row.
5403
ba3478d9
MB
54042000-08-29 Miles Bader <miles@gnu.org>
5405
5406 * xfaces.c (default_face_vector): New function.
5407 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
5408
87d0f685
GM
54092000-08-29 Gerd Moellmann <gerd@gnu.org>
5410
5411 * lread.c (openp): Prevent temporary string passed to
5412 Ffile_readable_p from being garbage collected.
5413
6fa86045
DL
54142000-08-28 Dave Love <fx@gnu.org>
5415
5416 * keymap.c (store_in_keymap): Add `static' to declaration.
5417
bb17930d
GM
54182000-08-28 Gerd Moellmann <gerd@gnu.org>
5419
5420 * emacs.c, callint.c, doc.c, editfns.c
5421 (toplevel) [HAVE_STRING_H]: Include string.h.
5422 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
5423 (index): Remove prototypes which might conflict with non-standard
5424 definitions of index/strchr.
5425
5426 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
5427 (rindex): Define only if !HAVE_RINDEX.
5428
5429 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
5430
5431 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
5432
87188200
MB
54332000-08-28 Miles Bader <miles@gnu.org>
5434
5435 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
5436 made inconsistent by a font-related attribute in FROM.
5437 (merge_face_inheritance): Add function comment.
5438
41a68aef
KH
54392000-08-28 Kenichi Handa <handa@etl.go.jp>
5440
5441 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
5442 the 4th arg (PREV_EVENT) Qt to suppress input method.
5443
f7c436c1
SM
54442000-08-27 Stefan Monnier <monnier@cs.yale.edu>
5445
0b32bf0e
SM
5446 * regex.c: Indent cpp directives and remove parens after `defined'.
5447 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
5448 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
5449 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
5450 (re_compile_pattern): Use size_t for length.
5451 (init_syntax_once): Move to a better place.
5452 * regex.h: Merge changes from GNU libc. Indent cpp directives.
5453 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
5454
f7c436c1
SM
5455 * syntax.c (back_comment): Detect cases where a comment-starter is
5456 actually inside another comment as in: /* a // b */ c // d \n.
5457 Make it clear that `comstart_pos' is unused for nested comments.
5458
5459 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
5460 (KEYMAPP): New macro.
5461 (Fkeymap_parent, Fset_keymap_parent): Use it.
5462 (fix_submap_inheritance): Mark it static.
5463 (define_as_prefix, describe_buffer_bindings, describe_command)
5464 (describe_translation, describe_map): Complete prototypes.
5465
5466 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
5467
5468 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
5469 to better match the key-lookup behavior.
5470
6288c62f
GM
54712000-08-27 Gerd Moellmann <gerd@gnu.org>
5472
5473 * xfaces.c (lface_fully_specified_p): Handle :inherit.
5474 (Finternal_set_lisp_face_attribute): Fix typo in error message.
5475
e931344e
EZ
54762000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
5477
5478 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
5479 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
5480 (xterm.o): Depend on coding.h
5481
d10dfeef
KH
54822000-08-26 Kenichi Handa <handa@etl.go.jp>
5483
5484 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
5485 the corresponding '#endif'.
5486
2d73e8d3
MB
54872000-08-26 Miles Bader <miles@gnu.org>
5488
5489 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
5490 * xfaces.c (QCinherit): New variable.
5491 (syms_of_xfaces): Initialize it.
5492 (LFACE_INHERIT): New macro.
5493 (Finternal_get_lisp_face_attribute)
5494 (merge_face_vector_with_property)
5495 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
5496 (check_lface_attrs): Allow new types of face height. Check
5497 inherit attribute.
5498 (CYCLE_CHECK): New macro.
5499 (merge_face_inheritance): New function.
5500 (merge_face_vectors): Merge inherited faces too. Add F and
5501 CYCLE_CHECK arguments.
5502 (merge_face_vector_with_property, Finternal_merge_in_global_face)
5503 (lookup_named_face, lookup_derived_face, realize_named_face)
5504 (face_at_string_position, face_at_buffer_position): Supply
5505 new F and CYCLE_CHECK arguments to merge_face_vectors.
5506 (merge_face_heights): New function.
5507 (merge_face_vectors, merge_face_vector_with_property)
5508 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
5509 handle relative face heights.
5510 (lface_same_font_attributes_p): Compare heights using EQ.
5511
6ce974d4
KH
55122000-08-26 Kenichi Handa <handa@etl.go.jp>
5513
5514 * charset.c (char_to_string): Check the character validity.
5515 (char_valid_p): If C is not less than MAX_CHAR, be sure to return
5516 0.
5517
dc1e502d
SM
55182000-08-25 Stefan Monnier <monnier@cs.yale.edu>
5519
5520 * regex.c (PUSH_FAILURE_COUNT): New macro.
5521 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
5522 Handle popping of a register's or a counter's data.
5523 (POP_FAILURE_POINT): Use the new name.
5524 (re_match_2_internal): Push counter data on the stack for succeed_n,
5525 jump_n and set_number_at and remove misleading dead code in succeed_n.
5526
bd9d0f3f
GM
55272000-08-25 Gerd Moellmann <gerd@gnu.org>
5528
5529 * xdisp.c (redisplay_internal): If considering all windows on all
5530 frames, update the display for each frame as soon as possible,
5531 instead of first building all desired matrices for all frames, and
5532 then updating them all.
5533 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
5534
aa5b8e15
GM
55352000-08-24 Gerd Moellmann <gerd@gnu.org>
5536
17494071
GM
5537 * bytecode.c (mark_byte_stack): Add a comment.
5538
aa5b8e15
GM
5539 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
5540 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
5541 a graphical frame.
5542
c543db81
KH
55432000-08-24 Kenichi Handa <handa@etl.go.jp>
5544
d246d5f5
KH
5545 * minibuf.c (do_completion): Always use compare-string, not
5546 string-equal because the latter doesn't pay attention to
5547 multibyteness of strings.
5548
c543db81
KH
5549 * process.c (create_process): Don't setup raw-text coding here.
5550 (Fopen_network_stream): Don't set coding->src_multibyte and
5551 coding->dst_multibyte here.
5552 (read_process_output): For process filter, return unibyte string
5553 if default-enable-multibyte-characters is nil.
5554 (send_process): If OBJECT is multibyte text, be sure to encoded it
5555 by the specified coding system for the process. Otherwise, setup
5556 raw-text coding.
5557 (init_process): Don't initialize default-process-coding-system
5558 here.
5559
9b47cfe0
EZ
55602000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
5561
5562 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
5563 <scroll-down-aggressively>: Likewise.
5564
f5a36960
KH
55652000-08-23 Kenichi Handa <handa@etl.go.jp>
5566
5567 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
5568 zero. Set coding->produced_char correctly.
5569
69a7ffa7
AI
55702000-08-22 Andrew Innes <andrewi@gnu.org>
5571
5572 * makefile.w32-in: New file.
5573
5574 * unexw32.c (unexec): Ignore old_name, and use the actual location
5575 of the current executable instead. Base new_name on this.
5576
5577 * w32proc.c (create_child): Remove reference to security
5578 descriptor, which isn't needed and doesn't compile with mingw32.
5579
5580 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5581 up dllimport attributes.
5582 (x_update_window_end): Update prototype.
5583
5584 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
5585 extern, which screws up dllimport attributes.
5586
5587 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5588 up dllimport attributes.
5589
5590 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
5591 screws up dllimport attributes.
5592
5593 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5594 up dllimport attributes.
5595 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
5596 screws up dllimport attributes.
5597
5598 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5599 up dllimport attributes.
5600
5601 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
5602 screws up dllimport attributes.
5603
5604 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
5605 screws up dllimport attributes.
5606
5607 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5608 up dllimport attributes.
5609
5610 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
5611 unnecessary extern, which screws up dllimport attributes.
5612 (main): Ditto.
5613
5614 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5615 up dllimport attributes.
5616
5617 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
5618 unnecessary extern, which screws up dllimport attributes.
5619
5620 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
5621 screws up dllimport attributes.
5622
5623 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5624 up dllimport attributes.
5625
5626 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
5627
5628 * w32bdf.c (search_file_line):
5629 (set_bdf_font_info):
5630 (seek_char):
5631 (w32_get_bdf_glyph):
5632 (w32_BDF_to_x_font): Fix compile warnings.
5633
5634 * w32menu.c: Include keyboard.h before frame.h. Fix compile
5635 warnings.
5636
5637 * w32select.c: Include keyboard.h before frame.h.
5638
5639 * w32fns.c (max): Define macro.
5640 (JOHAB_CHARSET): Define if not known.
5641 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
5642 (Fx_show_tip): Synch with X version.
5643
5644 * w32xfns.c: Include keyboard.h before frame.h.
5645
5646 * w32fns.c: Include keyboard.h before frame.h.
5647
5648 * w32term.c: Include keyboard.h before frame.h.
5649
5650 * fontset.c: Include keyboard.h before frame.h.
5651
5652 * w32inevt.c: Include keyboard.h before frame.h.
5653 (MOUSE_MOVED): Define if not known.
5654
5655 * minibuf.c: Include keyboard.h before frame.h.
5656
5657 * keyboard.c: Include keyboard.h before frame.h.
5658
5659 * indent.c: Include keyboard.h before frame.h.
5660
5661 * dispnew.c: Include keyboard.h before frame.h.
5662
5663 * buffer.c: Include keyboard.h before frame.h.
5664
5665 * alloc.c: Include keyboard.h before frame.h.
5666
5667 * print.c: Include keyboard.h before frame.h.
5668
5669 * process.c: Include keyboard.h before frame.h.
5670
5671 * scroll.c: Include keyboard.h before frame.h.
5672
5673 * sysdep.c: Include keyboard.h before frame.h.
5674
5675 * term.c: Include keyboard.h before frame.h.
5676
5677 * window.c: Include keyboard.h before frame.h.
5678
5679 * xdisp.c: Include keyboard.h before frame.h.
5680 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
5681
5682 * frame.c: Include keyboard.h before frame.h.
5683
5684 * w32heap.h: Undefine min, max.
5685
5686 * w32gui.h: Undefine min, max.
5687
5688 * unexw32.c: Change PUCHAR to PCHAR.
5689 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
5690 (relocate_offset):
5691 (get_section_info):
5692 (copy_executable_and_dump_data): Remove unnecessary static defs.
5693 (copy_executable_and_dump_data): Fix compile warnings.
5694
5695 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
5696
5697 * w32console.c (min): Define macro.
5698 (clear_frame, write_glyphs): Fix compile warning.
5699
5700 * w32proc.c (compare_env):
5701 (find_child_console): Fix compile warning.
5702
5703 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
5704 sys_errlist instead of _sys_errlist.
5705 (get_emacs_configuration_options): New function.
5706
5707 * s/ms-w32.h (sys_nerr): Provide default definition.
5708 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
5709 name with _ prepended.
5710 (NSIG): Define if not known.
5711 (get_emacs_configuration): Provide extern declaration.
5712 (get_emacs_configuration_options): Provide extern declaration.
5713 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
5714
5715 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
5716 (map_w32_filename):
5717 (read_unc_volume): Fix compile warning.
5718
5719 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
5720 definitions from being used.
5721
5722 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
5723
5724 * w32.c (unc_volume_file_attributes):
5725 (open_unc_volume): Make arg const.
5726
5727 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
5728 (read_input_waiting): Remove excess parameter.
5729
5730 * w32.c (init_environment): Call _access.
5731 (check_windows_init_file): Call _close.
5732 (init_user_info): Call _putenv.
5733 (init_environment): Call _putenv and _strdup.
5734 (init_ntproc): Reset volume info cache on startup.
5735
5736 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
5737 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
5738 cannot override the CRT malloc.
5739
5740 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
5741 (LINK_FLAGS): Append to original value of LINK_FLAGS.
5742
5743 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
5744 unless we are linking with a static CRT.
5745 (RVA_TO_PTR): Cast result to unsigned char*.
5746
5747 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
5748 (add_volume_info): Use xstrdup.
5749
25060080
SM
57502000-08-22 Stefan Monnier <monnier@cs.yale.edu>
5751
5752 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
5753 (do_completion, Fminibuffer_complete_word): Use it.
5754 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
5755 var so it can take non-boolean values.
5756
6917e6bb
GM
57572000-08-21 Gerd Moellmann <gerd@gnu.org>
5758
acb7cc89
GM
5759 * editfns.c (find_field): Formatting changes.
5760 (toplevel): Some old-style function forward declarations
5761 changed to prototypes, some new protypes added, some functions
5762 made static.
5763
5764 * lisp.h (set_time_zone_rule): Add prototype.
5765 (use_dialog_box): External declaration.
5766
0bbfdc25
GM
5767 * keyboard.c (gen_help_event): Add parameter SIZE.
5768 (kbd_buffer_events_waiting): Slightly rewritten.
5769 (clear_event): New function.
5770 (kbd_buffer_get_event): Use it, and clear the input_events of
5771 HELP_EVENTs.
5772 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
5773 don't fill the newly created array with nils.
5774 (toplevel): Convert some old-style function forward declarations
5775 to prototypes.
5776
5777 * keyboard.h (gen_help_event): Change prototype.
5778
5779 * xterm.c (XTread_socket): Change calls to gen_help_event.
5780
5781 * w32term.c (w32_read_socket): Change calls to gen_help_event.
5782
6917e6bb
GM
5783 * eval.c (Fmacroexpand): Doc fix.
5784
e5cd3d11
JR
57852000-08-20 Jason Rumney <jasonr@gnu.org>
5786
5787 * w32term.h (x_display_info_for_display): Remove as this function
5788 does not exist on W32.
5789
5790 * w32term.c (help_echo_window): New variable.
5791 (syms_of_w32term): staticpro it.
5792 (note_mode_line_highlight): Set it.
5793 (XTextExtents16): Removed as there is no equivalent on W32.
5794 (x_compute_glyph_string_overhangs): Incomplete body removed, as
5795 the X way of doing this will not work for W32.
5796 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
5797 (x_draw_image_foreground): Avoid drawing outside of the clip area
5798 when image doesn't have a mask.
5799 (note_mouse_highlight): Process overlays in the right order of
5800 priority. Set help_echo_window.
5801 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
5802 because that's more visible for large images.
5803
5804 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
5805 name to single_keymap_panes.
5806 (w32_menu_show): Set wv->title when dealing with titles.
5807 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
5808
6e69ab8c
MB
58092000-08-21 Miles Bader <miles@gnu.org>
5810
5811 * minibuf.c (do_completion): Try again if we rewrite the input
5812 string, but no completion was done, so that any completion message
5813 will be correct.
5814
511bd4eb
GM
58152000-08-20 Gerd Moellmann <gerd@gnu.org>
5816
5817 * xfaces.c (lface_equal_p): Compare strings differently.
5818 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
5819 (realize_tty_face): Use them.
5820 (syms_of_xfaces): Initialize new variables.
5821 (map_tty_color): New function, extracted from realize_tty_face.
5822 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
5823 foreground or background color, store the new color name in the
5824 realized face; previous code trying to do this had no effect.
5825 (realize_tty_face): Use map_tty_color.
5826 (Fclear_face_cache): Set face_change_count and ensure thorough
5827 redisplay.
5828
1433385f
GM
58292000-08-19 Gerd Moellmann <gerd@gnu.org>
5830
511bd4eb
GM
5831 * undo.c (record_first_change, record_marker_adjustment): Don't
5832 use XBUFFER on last_undo_buffer which might not be a buffer.
1433385f 5833
419ac0a2
KH
58342000-08-18 Kenichi Handa <handa@etl.go.jp>
5835
5836 * coding.c (decode_coding_string): Set members consumed,
5837 consumed_char, produced, produced_char of *coding correctly. If
5838 decode_coding doesn't consume any byte, don't try anymore.
5839 (encode_coding_string): Likewise.
5840
7eb9e30d
GM
58412000-08-18 Gerd Moellmann <gerd@gnu.org>
5842
511bd4eb
GM
5843 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
5844 conditional have void type, for Standard C compilers.
7eb9e30d
GM
5845
5846 * xdisp.c (redisplay_internal): Compare windows for equality with
5847 EQ, instead of applying XWINDOW to something that might not
5848 be a window.
5849
dd34a735
KH
58502000-08-18 Kenichi Handa <handa@etl.go.jp>
5851
5852 * fontset.c (Finternal_char_font): Search only the selected frame
5853 for a window of the current buffer.
5854
385ff9e3
GM
58552000-08-18 Gerd Moellmann <gerd@gnu.org>
5856
511bd4eb 5857 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
01cce3e7
GM
5858 Lisp_Objects.
5859
385ff9e3
GM
5860 * keyboard.c (kbd_buffer_get_event): Handle the case that the
5861 second half of a HELP_EVENT is found at the start of kbd_buffer.
5862
d6abb4c7
MB
58632000-08-18 Miles Bader <miles@gnu.org>
5864
4618074a
MB
5865 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
5866
d6abb4c7
MB
5867 * editfns.c (save_restriction_save): Rewrite to use markers.
5868 (save_restriction_restore): Rewrite to understand new form of data
5869 saved by save_restriction_save.
5870 (Fsave_restriction): Remove cautionary note in doc-string.
5871
a7b28523
GM
58722000-08-17 Gerd Moellmann <gerd@gnu.org>
5873
5874 * fileio.c (build_annotations): Add a comment explaining the
5875 return value of format-annotate-function. Replace a spurious call
5876 to Flength with a CONSP test. Call format-annotate-function with
5877 a fifth arg specifying how many times the function is been called
5878 in a row, to let it choose temporary buffers appropriately.
5879
03c9ed77
DL
58802000-08-17 Dave Love <fx@gnu.org>
5881
5882 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
5883 declare make_temp_name twice.
5884
5885 * lread.c: Prototype readevalloop, load_unwind,
5886 load_descriptor_unwind.
5887 (unreadpure): Give it an arg.
5888
5889 * unexalpha.c: Prototype fatal_unexec, mark_x,
5890 update_dynamic_symbols. Declare unexec as void.
5891
5892 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
5893 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
5894
5895 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
5896 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on
5897 DOUG_LEA_MALLOC.
5898
5899 * alloca.c: Use #error.
5900 [POINTER_TYPE]: Use it.
5901
5902 * eval.c (Fdefvar): Doc fix.
5903
5904 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
5905 INITIALIZE_INTERVAL.
5906
5907 * buffer.h: Avoid DECLARE_INTERVALS.
5908
5909 * config.in: Add size_t.
5910
aae41d97
EZ
59112000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
5912
5913 * w16select.c (set_clipboard_data): If there's not enough memory
5914 to put text into clipboard, return 1, as Fw16_set_clipboard_data
5915 expects. In case of other failures, return 3.
5916 (system_error_msg): New error message.
5917 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
5918 system_error_msg.
5919
65aa5e85
GM
59202000-08-16 Gerd Moellmann <gerd@gnu.org>
5921
5922 * term.c (write_glyphs): Also turn off inverse video after turning
5923 off other appearances in case TS_exit_attribute_mode is not equal
5924 to TS_end_standout_mode.
5925 (insert_glyphs): Turn inverse video on/off for each run of glyphs
5926 with the same face.
5927 (turn_off_face): Reset standout_mode only if
5928 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
5929 is equal to TS_end_standout_mode.
5930
ece23901
KH
59312000-08-16 Kenichi Handa <handa@etl.go.jp>
5932
9d7bcb2e
KH
5933 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
5934 sequence at the end of the source block.
5935
ece23901
KH
5936 * ccl.c (Fccl_program_p): Docstring modified.
5937 (Fccl_execute): Likewise.
5938 (Fccl_execute_on_string): Likewise.
5939
5e30eaa2
EZ
59402000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
5941
5942 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
5943
290602fd
KH
59442000-08-16 Kenichi Handa <handa@etl.go.jp>
5945
5946 The following changes are mainly to fix bugs of
5947 encode/decode-coding-string failing if encoding/decoding return
5948 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
5949 variable conversion_buffer.
5950
5951 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
5952 decrement dst_end to avoid buffer overflow in the later call of
5953 string_as_multibyte
5954
5955 * coding.h (conversion_buffer_size, conversion_buffer)
5956 (get_conversion_buffer): Extern deleted.
5957
5958 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
5959 (conversion_buffer, conversion_buffer_size): Variables deleted.
5960 (get_conversion_buffer): Function deleted.
5961 (struct conversion_buffer): New structure.
5962 (MAX_ALLOCA): New macro.
5963 (allocate_conversion_buffer): New macro.
5964 (extend_conversion_buffer, free_conversion_buffer): New functions.
5965 (ccl_coding_driver): Set coding->result.
5966 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
5967 this is the last block of source.
5968 (encode_coding): Likewise. Handle the source block as the last
5969 one only when the whole source text is consumed.
5970 (decode_coding_string): Handle the case that the output buffer is
5971 too small to decode the whole source text. Use
5972 allocate_conversion_buffer, extend_conversion_buffer and
5973 free_conversion_buffer, not get_conversion_buffer.
5974 (encode_coding_string): Likewise.
5975 (init_coding): Function deleted.
5976 (init_coding_once): Delete code to initialize
5977 conversion_buffer_size.
5978
5979 * emacs.c (main): Don't call init_coding.
5980
5981 * msdos.c (IT_write_glyphs): Use a locally declared
5982 conversion_buffer.
5983
5984 * term.c (write_glyphs): Use a locally declared conversion_buffer.
5985 (insert_glyphs): Likewise.
5986
5987 * w32console.c (write_glyphs): Use a locally declared
5988 conversion_buffer.
5989
b9f80d41
EZ
59902000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
5991
5992 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
5993 member of display_info is NULL.
5994
32dc52f7
GM
59952000-08-15 Gerd Moellmann <gerd@gnu.org>
5996
58ed0d3b
GM
5997 * alloc.c (compact_small_strings): Use safe_bcopy, add an
5998 assertion.
5999
32dc52f7 6000 * term.c (turn_off_face): Reset standout_mode when resetting
58ed0d3b 6001 appearances with capability `me'.
32dc52f7
GM
6002 (write_glyphs): Switch on inverse video before each face change.
6003
4eb22d33
DL
60042000-08-14 Dave Love <fx@gnu.org>
6005
6006 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
6007 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
6008 (lisp_free): Declare and make static.
6009
6010 * window.c: Fix embedded comment.
6011 (syms_of_window): Fix doc string.
6012
90cbf47e
GM
60132000-08-14 Gerd Moellmann <gerd@gnu.org>
6014
6015 * keymap.c (push_key_description): If C without modifiers is < 32,
6016 make sure to print `C-' before `M-', like in the manual.
6017
440fc135
GM
60182000-08-11 Gerd Moellmann <gerd@gnu.org>
6019
6020 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
6021 since they aren't relocated anymore.
6022 (sxhash_string): Make sure returned hash code fits in a Lisp
6023 integer.
6024
6025 * xdisp.c (try_cursor_movement): Fix handling of cursor in
6026 partially visible line which is smaller than the window's
6027 height.
6028
6e264fad
KH
60292000-08-11 Kenichi Handa <handa@etl.go.jp>
6030
6031 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
6032 the multibyte form of eight-bit-control characters.
6033 (Fccl_execute_on_string): Initialize ccl->multibyte.
6034
6035 * ccl.h (struct ccl_program): New member multibyte.
6036
6037 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
6038
c371f69a
KH
60392000-08-11 Kenichi Handa <handa@etl.go.jp>
6040
6041 * regex.c (regex_compile) <normal_char>: Pay attention to
6042 multibyteness.
6043 (analyse_first) <exactn>: Setup fastmap correctly for
6044 eight-bit-control characters.
6045
60462000-08-11 Kenichi Handa <handa@etl.go.jp>
6047
6048 * termhooks.h (enum event_kind): New member
6049 multibyte_char_keystroke.
6050
6051 * keyboard.c (make_lispy_event): Handle the new event type
6052 multibyte_char_keystroke.
6053
6054 * xterm.c: Include coding.h.
6055 (XTread_socket): Work around a bug of XmbLookupString. If the
6056 input is from XIM, decode it according to the current locale. In
6057 that case, generate multibyte_char_keystroke events.
6058
b8ddbe71
KH
60592000-08-11 Kenichi Handa <handa@etl.go.jp>
6060
6061 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
6062 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
6063
47589c8c
GM
60642000-08-10 Gerd Moellmann <gerd@gnu.org>
6065
6066 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
6067 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
6068 (move_it_in_display_line_to): Record iterator's ascent and descent
6069 before producing glyphs, and restore them when we know the glyph
6070 doesn't fit on the line.
6071 (move_it_to): Restructured so that it's easier to debug. If
6072 moving to a vpos, and not moving to an x or character position,
6073 stop as soon as the specified vpos is reached; don't move further
6074 into that line because that might change the computed line height.
6075 (try_cursor_movement): New function, extracted from the cursor
6076 movement branch of redisplay_window. If ending on a partially
6077 visible line, don't try to scroll if the cursor line is taller
6078 than the window.
6079 (redisplay_window): Use try_cursor_movement.
6080
6081 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
6082 because that function doesn't cope with variable-height lines.
6083
6084 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
6085 box cursor because that's better visible for large images.
6086
c51bacd6
MB
60872000-08-10 Miles Bader <miles@gnu.org>
6088
6089 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
6090
bea56df7
GM
60912000-08-10 Gerd Moellmann <gerd@gnu.org>
6092
6093 * xdisp.c (Vmessages_buffer_name): New variable.
6094 (message_dolog): Use it.
6095 (syms_of_xdisp): Initialize it.
6096
99cd7364
EZ
60972000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
6098
6099 * msdos.c (IT_note_mouse_highlight): Update the calls to
6100 overlays_at.
6101 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
6102 redundant now that keyboard.h is included.
6103
7d093d56
EZ
61042000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
6105
6106 * keyboard.c (kbd_buffer_events_waiting): New function.
6107
6108 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
6109
6110 * msdos.c: Include keyboard.h.
6111 (XMenuActivate): Empty no_event events from the event buffer. If
6112 no events are left after that, call clear_input_pending.
6113 (mouse_clear_clicks): New function, code moved from mouse_init.
6114 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
6115 mouse driver to ``forget'' any past clicks.
6116
6117 * Makefile.in (msdos.o): Depend on keyboard.h.
6118
41e757a6
GM
61192000-08-09 Gerd Moellmann <gerd@gnu.org>
6120
8e7bd231
GM
6121 * lisp.h (input_pending): External declaration.
6122
6123 * dispextern.h (Qredisplay_dont_pause): Declare extern.
6124
6125 * xdisp.c (echo_area_display): Display thoroughly if input is
6126 pending. Bind redisplay-dont-pause to t during the redisplay.
6127 in case input is pending.
6128
6129 * dispnew.c (Qredisplay_dont_pause): New variable.
6130 (syms_of_display): Initialize and staticpro it.
6131 (update_frame_1): Don't interrupt the display for pending input if
6132 redisplay_dont_pause is set.
6133
43028b7e
GM
6134 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
6135
41e757a6
GM
6136 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
6137
2f2174fa
KH
61382000-08-09 Miles Bader <miles@lsi.nec.co.jp>
6139
6140 * callproc.c (Fcall_process): Terminate the unwind-protect around
6141 the post-read-conversion of coding system.
6142
0a6fd67e
MB
6143 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
6144 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
6145 * buffer.h (overlays_at): Update prototype.
6146 * xdisp.c (next_overlay_change): Update call to overlays_at.
6147 * xfaces.c (face_at_buffer_position): Likewise.
6148 * textprop.c (Fget_char_property): Likewise.
6149 * xterm.c (note_mouse_highlight): Likewise.
6150
0c80756e
MB
6151 * minibuf.c (do_completion): Don't consider a simple change of
6152 case as `completion'.
6153
975f250a
KR
61542000-08-08 Ken Raeburn <raeburn@gnu.org>
6155
b347b3fd
KR
6156 * keyboard.c (syms_of_keyboard): Initialize
6157 last_point_position_buffer.
6158 * undo.c (record_delete): Make sure last_point_position_buffer is
6159 a buffer before comparing pointers.
6160
6161 * coding.h (decode_coding_string): Declare.
6162
6163 * intervals.h (Fprevious_single_char_property_change): Declare.
6164
6165 * textprop.c (Fprevious_single_char_property_change): Don't do
6166 arithmetic directly on lisp objects.
6167
25ad1371 6168 * editfns.c (find_field): Use EQ, not ==, to compare Lisp
b347b3fd
KR
6169 objects.
6170
6171 * keyboard.h (menu_item_eval_property): Declare.
6172
6173 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
6174 reuse as buffer name, instead of recreating (and discarding) every
6175 time a message is logged.
6176 (with_echo_area_buffer): Make callback arg A2 a lisp object.
25ad1371
GM
6177 (current_message_1, truncate_message_1, set_message_1)
6178 (display_echo_area_1, resize_mini_window_1): Signatures changed.
6179 (current_message, truncate_echo_area, display_echo_area)
6180 (resize_echo_area_axactly): Changed calls.
b347b3fd 6181
975f250a 6182 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
25ad1371 6183 Lisp object.
975f250a 6184 (Ffind_coding_systems_region_internal): First argument to Fappend
25ad1371 6185 must be an integer, not a Lisp object.
975f250a 6186
46dc9912
KH
61872000-08-08 Kenichi Handa <handa@etl.go.jp>
6188
6189 * charset.c (Fchar_width): Doc fix.
6190
9f6d1a6c
GM
61912000-08-08 Gerd Moellmann <gerd@gnu.org>
6192
6193 * charset.c (Fstring_width): Doc fix.
6194
ff3d9573
GM
61952000-08-07 Gerd Moellmann <gerd@gnu.org>
6196
41e757a6 6197 * xdisp.c (start_display): When starting display on a continuation
49ad1d99
GM
6198 line, clear ascent and descent members of the iterator structure;
6199 the height of the continued line does not affect the height of the
6200 continuation line.
6201 (make_cursor_line_fully_visible): Do nothing if cursor is on a
6202 line taller than the window.
6203 (redisplay_window) <forced window start>: Handle case that the
6204 middle of the window is not found in any row.
6205 (dump_glyph_row): Show more information.
6206 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
6207 first text line in a glyph matrix.
6208
6209 * xterm.c (x_draw_image_foreground): Avoid drawing outside
6210 of the clip area when image doesn't have a mask.
6211
70fc58b3
GM
6212 * fns.c (sweep_weak_table): Fix survival conditions for
6213 key-or-value and key-and-value weakness.
6214
6215 * .gdbinit (xhashtable): New command.
6216
ac0e96ee
GM
6217 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
6218 tables out of the list of all weak hash tables.
6219
ff3d9573
GM
6220 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
6221 a new buffer is created, make sure echo_area_buffer[] references
6222 the new buffer.
6223
e0d8827b
EZ
62242000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
6225
6226 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
6227 the doc string.
6228
c6f35378
KH
62292000-08-07 Kenichi Handa <handa@etl.go.jp>
6230
6231 * syntax.c (skip_chars): Fix previous change. Make the handling
6232 of unibyte string consistent with that of regex search.
6233
1fd4c450
GM
62342000-08-05 Gerd Moellmann <gerd@gnu.org>
6235
e49aa397
GM
6236 * xmenu.c (popup_get_selection): Use xfree instead of free.
6237
6238 * fileio.c (Finsert_file_contents): Use xfree instead of free.
6239
6240 * editfns.c (Ftranspose_regions): Use xfree instead of free.
6241
6242 * callproc.c (child_setup): Use xfree instead of free.
6243
6244 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
6245 instead of malloc.
6246 (run_mac_command, closedir): Use `xfree' instead of `free'.
6247
6248 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
6249
6250 * eval.c (error): Use xfree instead of free.
6251
1fd4c450
GM
6252 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
6253
6254 * fns.c: Replace `illegal' with `invalid'.
e49aa397 6255 (Fmake_hash_table, make_hash_table): Allow table size of 0.
1fd4c450 6256
82d497fc
KH
62572000-08-05 Kenichi Handa <handa@etl.go.jp>
6258
6259 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
6260 conversion.
6261
59f953a2
NF
62622000-08-04 Noah Friedman <friedman@splode.com>
6263
6264 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
6265 docstring.
6266
688351f2
GM
62672000-08-04 Gerd Moellmann <gerd@gnu.org>
6268
6269 * syntax.c (skip_chars): Fix typo in error message.
6270
2dad51cc
AS
62712000-08-04 Andreas Schwab <schwab@suse.de>
6272
6273 * m/ia64.h: Moved from s/ia64.h.
6274
99bb2c60
KH
62752000-08-04 Kenichi Handa <handa@etl.go.jp>
6276
082a1df2
KH
6277 * process.c (read_process_output): Big simplification. Handle
6278 composition and post-read-conversion of coding system correctly.
6279 (send_process): Handle composition correctly.
6280
6281 * callproc.c (Fcall_process): Handle post-read-conversion of
6282 coding system if any.
6283
99bb2c60
KH
6284 * coding.c (decode_coding_iso2022): More strict check for handling
6285 single shifting.
082a1df2
KH
6286 (coding_restore_composition): Pay attention to the case that
6287 cmp_data is not set properly (because of invalid code in the
6288 source text).
6289 (run_pre_post_conversion_on_str): Include text properties in the
6290 resulting string.
6291 (decode_coding_string): Set members of coding correctly.
99bb2c60 6292
f4988be7
GM
62932000-08-03 Gerd Moellmann <gerd@gnu.org>
6294
6295 * s/ia64.h: New file.
6296
6297 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
6298 Use NULL instead of 0 at the end of variable argument list of
6299 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
6300 sizeof (int) < sizeof (void *).
6301
6302 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
6303 of variable argument lists of XtVaGetValues and XtVaSetValues.
6304
6305 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
6306 variable argument lists of XtVaGetValues and XtVaSetValues.
6307
ead53494
GM
63082000-08-02 Gerd Moellmann <gerd@gnu.org>
6309
6310 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
6311 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
6312
6313 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
6314 prototype.
6315
6316 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
6317 in call to Fsingle_key_description.
6318
6319 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
6320 Callers changed.
6321
63222000-08-02 Colin Walters <walters@cis.ohio-state.edu>
6323
6324 * window.c (display_buffer_reuse_frames): New variable.
6325 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
6326 frames displaying BUFFER.
6327 (syms_of_window): Define Lisp variable
6328 display-buffer-reuse-frames.
6329
10b0f752
MB
63302000-08-01 Miles Bader <miles@gnu.org>
6331
6332 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
6333 when to constrain NEW_POS (they were pretty screwed up before).
6334
16425c4a
EZ
63352000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
6336
6337 * msdos.c (run_msdos_command): Save and restore the master
6338 environment, for the case that child_setup signals an error.
6339 When mirroring slashes in DOS shell commands, don't fail when
6340 argv[2] has embedded blanks.
da288c14
EZ
6341 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
6342 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
6343 (dos_ttraw): Call mouse_setup_buttons.
16425c4a
EZ
6344
6345 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
6346 using alloca; free it after run_msdos_command returns.
6347
27f73852
DL
63482000-07-27 Dave Love <fx@gnu.org>
6349
6350 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't
6351 define.
6352 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently
6353 working.
6354
6355 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
6356
c0261b5e
EZ
63572000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
6358
6359 * editfns.c (lisp_time_argument): Fix last change.
6360
b548072f
GM
63612000-07-27 Gerd Moellmann <gerd@gnu.org>
6362
3ab82477
GM
6363 * fns.c (Fdelete): Make it work on vectors and strings in addition
6364 to lists.
6365
b548072f
GM
6366 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
6367 (syms_of_fns): Initialize new variables.
6368 (sweep_weak_table): Handle weakness `key-or-value' and
6369 `key-and-value'.
6370 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
6371 weakness, with t meaning the same as `key-and-value'.
6372
91ae8751
KH
63732000-07-27 Kenichi Handa <handa@etl.go.jp>
6374
6375 * coding.h (struct coding_system): Member safe_charset deleted.
6376
6377 * coding.c (Qsafe_charsets): This variable deleted.
6378 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system): New
6379 variables.
6380 (coding_safe_chars): New function.
6381 (CODING_SAFE_CHAR_P): New macro.
6382 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
6383 checking safe_charsets member of the coding system. Caller
6384 changed.
6385 (detect_coding_iso2022): New local variable safe_chars.
6386 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
6387 safe_charsets member of the coding system.
6388 (decode_coding_iso2022): New local variable safe_chars.
6389 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
6390 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
6391 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
6392 (ENCODE_UNSAFE_CHARACTER): New macro.
6393 (encode_coding_iso2022): New local variable safe_chars. Check
6394 unsafe chars.
6395 (setup_coding_system): Delete the code to initialize
6396 coding->safe_charses
6397 (intersection, find_safe_codings): New functions.
6398 (Ffind_coding_systems_region_internal): New function.
6399 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
6400 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
6401 variable and initialize it.
6402
6403 * fns.c (char_table_ref_and_index): New function.
6404
6405 * lisp.h (char_table_ref_and_index): Add prototype.
6406
34a7a267
SS
64072000-07-26 Sam Steingold <sds@gnu.org>
6408
6409 * editfns.c (lisp_time_argument): Added third argument `usec'.
3ab82477 6410 (Ffloat_time): New built-in Lisp function.
34a7a267 6411
a95cb10a
GM
64122000-07-26 Gerd Moellmann <gerd@gnu.org>
6413
3353ef5a
GM
6414 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
6415 for the character code.
6416
6417 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
6418 GNU/Linux.
6419
a95cb10a
GM
6420 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
6421 if called for a popup menu.
6422 (xmenu_show): Store help string in widget values.
6423
b4a12321
DL
64242000-07-26 Dave Love <fx@gnu.org>
6425
6426 * syswait.h: Move some definitions.
6427 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
6428 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
6429 perspicuous definitions.
6430 (WTERMSIG): Fix bit pattern used.
6431
13f5ad37
KH
64322000-07-26 Kenichi Handa <handa@etl.go.jp>
6433
6434 * print.c (print_object): If vector printing is truncated, print
6435 "..." to indicate it as well as the case of list printing.
6436
070fe99c
GM
64372000-07-25 Gerd Moellmann <gerd@gnu.org>
6438
969065c3
GM
6439 * xdisp.c (next_element_from_display_vector): Improve comments.
6440
6441 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
6442 for the character code, and the rest for the face id as in 20.x.
6443 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
6444
6445 * window.c (window_display_table): Cleaned up.
6446
070fe99c
GM
6447 * syntax.c (Fforward_word): Add last arg nil in call of
6448 Fconstrain_to_field.
6449
bad77ef7
EZ
64502000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
6451
969065c3 6452 * fileio.c (Frename_file) [DOS_NT]: If the file names are
bad77ef7
EZ
6453 identical but for the letter-case, don't call
6454 barf_or_query_if_file_exists.
6455
c28da489
MB
64562000-07-25 Miles Bader <miles@gnu.org>
6457
6458 * editfns.c (find_field): Honor special `boundary' fields.
6459 (Qboundary): New variables.
6460 (syms_of_editfns): Initialize Qboundary.
6461 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
6462 Use scan_buffer instead of find_before_next_newline, because it
6463 allows us to detect the boundary case where there's a newline at
6464 the search limit.
6465 * lisp.h (Fconstrain_to_field): Update external declaration.
6466
e3c31fd5
GM
64672000-07-24 Gerd Moellmann <gerd@gnu.org>
6468
6469 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
6470 if that is nil.
c28da489 6471
c66c29a2
DL
64722000-07-24 Dave Love <fx@gnu.org>
6473
6474 * s/sunos4-0.h, s/sol2.h:
6475 (LIBS_TERMCAP): Move from m/sparc.h.
6476
6477 * m/sparc.h (TERMINFO): Moved to system files (probably only
6478 relevant for sunos4 judging by its vintage).
6479 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
6480 __arch64__.
6481
fbe0a958
EZ
64822000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
6483
6484 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
6485 name to single_keymap_panes.
6486
7d88e5c9
AS
64872000-07-24 Andreas Schwab <schwab@suse.de>
6488
6489 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
6490
e024b101
GM
64912000-07-24 Gerd Moellmann <gerd@gnu.org>
6492
6493 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
6494 parameters instead of using int parameters. Expect FN to accept
6495 EMACS_INT parameters.
6496 (display_echo_area, resize_echo_area_axactly, current_message)
6497 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
6498 with new argument list.
6499 (resize_mini_window_1): New callback function.
6500 (current_message_1, truncate_message_1, set_message_1): Change
6501 parameter lists to the new format expected by
6502 with_echo_area_buffer.
6503
25c1a9ce
KH
65042000-07-24 Kenichi Handa <handa@etl.go.jp>
6505
6506 * fontset.c (fontset_ref): Remove INLINE declaration.
6507 (fontset_ref_via_base): Likewise.
6508 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
6509 to downcase.
6510
7f987ac0
EZ
65112000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
6512
6513 * msdos.c (IT_note_mouse_highlight): Process overlays in the
6514 correct order of priority. If help echo was found in an overlay,
6515 use that overlay as the object in which the help echo was found.
6516
e2db3069
MB
65172000-07-22 Miles Bader <miles@gnu.org>
6518
6519 * textprop.c (Fprevious_single_char_property_change): The initial
6520 property value should be from the position preceding POSITION, not
6521 following it.
6522
5e3203e4
EZ
65232000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
6524
6525 * coding.c (syms_of_coding): Doc fix for
6526 inhibit-iso-escape-detection.
6527
62145073
GM
65282000-07-21 Gerd Moellmann <gerd@gnu.org>
6529
c20aeb83
GM
6530 * xterm.c (note_mouse_highlight): Process overlays in the right
6531 order of priority.
34a7a267 6532
743934db
GM
6533 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
6534
6535 * xterm.c (note_mouse_highlight): If help-echo was found in an
6536 overlay, use that overlay as the object in which the help was
6537 found.
6538
d1dc7e43 6539 * window.c (foreach_window_1): Fix typo reversing an if-condition.
34a7a267 6540
62145073
GM
6541 * window.c (foreach_window): Instead of a fake variable argument
6542 list, take one USER_DATA argument.
6543 (foreach_window_1): Likewise, and call callback functions with two
6544 args, the window and USER_DATA.
6545 (struct check_window_data): New struct.
6546 (check_window_containing): Use it.
6547 (window_from_coordinates): Set up a struct check_window_data for
6548 foreach_window.
6549 (add_window_to_list, freeze_window_start): Change parameters
6550 according to new calling convention.
6551
6552 * window.h (foreach_window): Change prototype.
6553
6554 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
6555
65562000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
6557
6558 * xmenu.c (menu_help_callback): Call show_help_echo with
6559 additional arguments OBJECT and POS.
6560
11270583
KH
65612000-07-21 Kenichi Handa <handa@etl.go.jp>
6562
07b14857
KH
6563 * data.c (Faset): Allow storing any multibyte character in a
6564 string. Convert unibyte string to multibyte if necessary.
6565
11270583
KH
6566 * xfns.c (x_encode_text): New function.
6567 (x_set_name): Use x_encode_text.
6568 (x_set_title): Likewise.
6569
6570 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
6571
6572 * xterm.h (x_encode_text): Add prototype.
6573
bc75b4fd
DL
65742000-07-20 Dave Love <fx@gnu.org>
6575
6576 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
6577 xfree, not free.
6578
48c14970
EZ
65792000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
6580
6581 * msdos.c (help_echo_window): New variable.
6582 (syms_of_msdos): Initialize and staticpro it.
6583 (IT_note_mode_line_highlight): Set help_echo_window.
6584 (IT_note_mouse_highlight): Ditto.
6585 (dos_rawgetc): Store help_echo_window in the second event produced
6586 for HELP_EVENTs.
6587
6588 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
6589 Record the object that generated the help echo and the position of
6590 that object in help_echo_object and help_echo_pos. Record that
6591 some glyphs in a row are displayed in mouse-face.
6592 (IT_update_begin): Don't clear mouse highlight unless one of the
6593 enabled glyph rows is marked as being displayed in mouse-face.
6594 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
6595 and position recorded in help_echo_object and help_echo_pos to the
6596 event queue.
6597 (IT_menu_display): Accept a new argument PN: the pane number of
6598 the current menu pane. Record the pane number and the item
6599 number of the item which has associated help string.
6600 (XMenuActivate): Update the prototype for help_callback in
6601 function declaration. Call IT_menu_display with the current menu
6602 pane number as an additional argument. Call help_callback with
6603 two additional arguments: the pane number and the item number of
6604 the menu item associated with the help text.
6605 (help_echo_object, help_echo_pos): New variables.
6606 (syms_of_msdos): Initialize them and staticpro help_echo_object.
6607
6608 * msdos.h (XMenuActivate): Update prototype.
6609
4279296d
GM
66102000-07-19 Gerd Moellmann <gerd@gnu.org>
6611
47db06aa
GM
6612 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
6613 Add some more prototypes.
6614
6615 * xterm.c, xterm.h: Add some more prototypes.
6616
6617 * lisp.h (Fnext_single_char_property_change): Add prototype.
6618
6619 * dispnew.c (direct_output_for_insert): Remove confusing
6620 outer local variable mouse_face_overwritten_p.
6621 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
6622
4279296d
GM
6623 * alloc.c (allocate_string_data): Don't copy old string contents.
6624
670acd62
KH
66252000-07-19 Kenichi Handa <handa@etl.go.jp>
6626
6627 * coding.c (code_convert_region): Delete text properties before
6628 shrinking the conversion region.
6629
7cea38bc
GM
66302000-07-18 Gerd Moellmann <gerd@gnu.org>
6631
dc1cac59
GM
6632 * dispnew.c (update_text_area): Write the whole row if it
6633 has mouse-face in it.
6634
85a8aca9
GM
6635 * xfaces.c (face-alternative-font-family-alist): Remove
6636 DEFVAR_LISP; staticpro instead.
6637
34a7a267 6638 * xmenu.c (menu_help_callback): Call show_help_echo with
7cea38bc
GM
6639 new arguments.
6640
6641 * keyboard.c (show_help_echo): Add parameter WINDOW.
6642 (read_char): Call show_help_echo with window extracted from Lisp
6643 help event.
6644 (gen_help_event): Add parameter WINDOW.
6645
6646 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
6647
6648 * xterm.c (help_echo_window): New variable.
6649 (note_mouse_highlight, note_tool_bar_highlight): Set
6650 help_echo_window.
6651 (XTread_socket): Pass help_echo_window to gen_help_event.
6652 (syms_of_xterm): Initialize and staticpro help_echo_window.
6653
f8276b77
DL
66542000-07-18 Dave Love <fx@gnu.org>
6655
6656 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
6657 systime.h.
6658
088831a6
GM
66592000-07-18 Gerd Moellmann <gerd@gnu.org>
6660
3d6cd763
GM
6661 * alloc.c (allocate_string_data): If string had already data
6662 assigned, copy old contents to new string data.
6663
6664 * coding.c (syms_of_coding): Fix typo in spelling of variable
6665 `inhibit-iso-escape-detection'.
6666
088831a6
GM
6667 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
6668
6669 * Makefile.in: Add dependencies on dispextern.h.
6670 (alloca.o): Don't define malloc and define EMACS_FREE instead of
6671 `free'; both can conflict with system header files.
6672
bc8a8d55
KH
66732000-07-18 Kenichi Handa <handa@etl.go.jp>
6674
6675 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
6676 undefined.
6677
069f5950
DL
66782000-07-18 Dave Love <fx@gnu.org>
6679
6680 * window.c (Fwindow_list): Declare arg `window'.
6681
aa96c820
KH
66822000-07-18 Kenichi Handa <handa@etl.go.jp>
6683
6684 * coding.c (setup_coding_system): Don't override the explicitly
6685 specified designations.
6686
06be8d32
MB
66872000-07-15 Miles Bader <miles@gnu.org>
6688
6689 * editfns.c (char_property_eq, char_property_stickiness): Renamed
6690 from `text_property_eq' and `text_property_stickiness', respectively.
6691 (find_field, Fconstrain_to_field, char_property_eq)
6692 (char_property_stickiness): Changed to call char-property functions
6693 instead of text-property-only ones.
6694
6695 * textprop.c (Fnext_single_char_property_change): Made a subr (was
6696 `next_single_char_property_change'). Do more error checking, and
6697 cleanup limit behavior.
6698 (Fprevious_single_char_property_change): New function.
6699 (syms_of_textprop): Initialize new subrs.
6700
6701 * xdisp.c (display_prop_end, invisible_text_between_p):
6702 Call Fnext_single_char_property_change instead of
6703 next_single_char_property_change.
6704
3fddcdc3
JR
67052000-07-15 Jason Rumney <jasonr@gnu.org>
6706
6707 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
6708 after menu is finished with.
6709 (add_menu_item): Only consider wv->title as a menu title.
6710 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
6711
6712 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
6713 null title.
6714 (FONT_REGEXP): Remove unused macro, and its sub-components.
6715 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
6716
6717 * w32term.c (help_echo_object, help_echo_pos): New variables.
6718 (note_mode_line_highlight): Store additional information about the
6719 help-echo in help_echo_object and help_echo_pos. Check both
6720 `local-map' and `keymap' properties for changing the cursor
6721 (note_mouse_highlight): Store additional information about the
6722 help-echo in help_echo_object and help_echo_pos.
6723 (note_tool_bar_highlight): Set help_echo_object to nil and
6724 help_echo_pos to -1.
6725 (w32_read_socket): Use gen_help_event instead of filling
6726 input_events manually.
6727 (syms_of_w32term): Staticpro help_echo_object.
6728 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
6729 set, arrange for a mouse-highlight redisplay in
6730 XTframe_up_to_date.
6731 (x_clear_mouse_face): New function.
6732 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
6733 (x_update_window_begin): No need to turn off the mouse
6734 highlight here.
6735 (show_mouse_face): Set the mouse_face_p flag of glyph rows
6736 depending on whether they contain glyphs highlighted in
6737 mouse-face.
6738 (x_fill_stretch_glyph_string): Consume runs of stretch
6739 glyphs instead of a single one.
6740 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
6741 with new argument list.
6742 (x_set_glyph_string_gc): Make sure the face's GC is valid.
6743 (x_append_glyph, x_append_composite_glyph)
6744 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
6745 changes in struct glyph starting 1999-12-27. See comments for
6746 xterm.c on 2000-07-05.
6747
178c5d9c
SS
67482000-07-14 Sam Steingold <sds@gnu.org>
6749
6750 * xfaces.c (realize_x_face): Fix the last patch:
6751 check `default_face' before dereferencing.
6752
6fe533f6
DL
67532000-07-14 Dave Love <fx@gnu.org>
6754
069f5950 6755 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 6756
dd7b81cf
KH
67572000-07-14 Kenichi Handa <handa@etl.go.jp>
6758
0693904a 6759 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 6760 default_face's fontset, not using the default fontset.
0693904a 6761
dd7b81cf
KH
6762 * coding.c (inhibit_iso_escape_detection): New variable.
6763 (syms_of_coding): Make it a Lisp variable.
6764 (detect_coding_iso2022): If inhibit_iso_escape_detection is
6765 nonzero, ignore ISO2022's escape sequence.
6766
d5aa31d8
GM
67672000-07-14 Gerd Moellmann <gerd@gnu.org>
6768
e5acf0ca
GM
6769 * alloca.c (malloc) [emacs]: Define as xmalloc.
6770
bd23a692
GM
6771 * xfns.c (Fx_show_tip): If frame parameters contain a position,
6772 use that instead of the mouse position. Add parameters DX and DY.
6773
6774 * dispextern.h (Fx_show_tip): Adjust number of parameters
6775 in prototype.
6776
9662da0b
GM
6777 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
6778 if HELP is a function, call it with OBJECT and POS as parameters
6779 to get the help to display.
6780 (gen_help_event, kbd_buffer_store_help_event): New functions.
6781 (kbd_buffer_get_event): Construct the Lisp help-event differently.
6782 (read_char): Call show_help_echo with new parameters.
6783
178c5d9c 6784 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
6785 Add prototypes.
6786
6787 * xterm.c (help_echo_object, help_echo_pos): New variables.
6788 (note_mode_line_highlight): Store additional information about the
6789 help-echo in help_echo_object and help_echo_pos. Check both
6790 `local-map' and `keymap' properties for changing the cursor
6791 (note_mouse_highlight): Store additional information about the
6792 help-echo in help_echo_object and help_echo_pos.
6793 (note_tool_bar_highlight): Set help_echo_object to nil and
6794 help_echo_pos to -1.
6795 (XTread_socket): Use gen_help_event instead of filling
6796 input_events manually.
6797 (syms_of_xterm): Staticpro help_echo_object.
6798
6799 * xmenu.c (menu_highlight_callback): Use
6800 kbd_buffer_store_help_event instead of setting up and input_event
6801 structure manually.
6802
6803 * xdisp.c (eval_form): GCPRO argument sexpr.
6804 (call_function): New function.
6805 (handle_single_display_prop): Use call_function and FUNCTIONP
6806 instead of checking whether if font_height is a symbol and
6807 using eval_form.
6808
6809 * eval.c (internal_condition_case_2): New function.
6810
6811 * lisp.h (FUNCTIONP): New macro.
6812 (internal_condition_case_2, call_function): Add prototypes.
6813
d5aa31d8
GM
6814 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
6815 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
6816 Always set `arg' member of input_events.
6817 (construct_menu_click): Unused function removed.
6818
6819 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
6820
6821 * w32term.c (construct_mouse_click, construct_mouse_wheel)
6822 (construct_drag_n_drop, x_scroll_bar_handle_click)
6823 (w32_read_socket): Always set `arg' member of input_events.
6824
6825 * keyboard.c (show_help_echo): Use eval_form. Add comment.
6826
6827 * lisp.h (eval_form): Add prototype.
6828
6829 * xdisp.c (eval_form): Make it externally visible.
6830
0f1a9b23
GM
68312000-07-13 Gerd Moellmann <gerd@gnu.org>
6832
6833 * xterm.c (x_handle_tool_bar_click): Store the frame in the
6834 frame_or_window slot of TOOL_BAR_EVENT input events instead of
6835 consing. For prefix events, store the frame in the `arg' slot of
6836 the event, otherwise store the key there.
6837 (XTread_socket): Instead of consing, use the frame_or_window slot
6838 of HELP_EVENTs for the frame, and the `arg' slot for the help
6839 string.
6840
6841 * xmenu.c (menu_highlight_callback): Store help string in the
6842 `arg' member of the input event; don't cons.
6843 (menubar_selection_callback): Use the `arg' slot of input events
6844 to queue additional information, instead of consing.
6845
6846 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
6847
6848 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
6849 TOOL_BAR_EVENTs.
6850 (w32_read_socket): Adapt to changes in HELP_EVENTs.
6851
6852 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
6853 input events to queue additional information, instead of consing.
6854
6855 * keyboard.c (kbd_buffer_gcpro): Renamed from
6856 kbd_buffer_frame_or_window. Now used for all Lisp objects
6857 referenced from the input queue.
6858 (kbd_buffer_store_event): Always use structure assignment for
6859 copying input events. Record all Lisp objects referenced from
6860 events in kbd_buffer_gcpro.
6861 (kbd_buffer_get_event): Construct Lisp `help-echo' events
6862 differently from input events. Test for prefix menu_bar_events
6863 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
6864 event in kbd_buffer_gcpro to nil.
6865 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
6866 frame_or_window is equal to its arg member as prefix events.
6867 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
6868 used by an input event to nil.
6869 (init_keyboard): Use two times the size of the input queue
6870 for kbd_buffer_gcpro.
6871 (syms_of_keyboard): Likewise.
6872
6873 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
6874 USER_SIGNAL_EVENT.
6875
6876 * termhooks.h (struct input_event): Add member `arg'.
6877 (MENU_BAR_EVENT): Renamed from menu_bar_event.
6878 (USER_SIGNAL_EVENT): Renamed from user_signal.
6879
6880 * xfaces.c (ASET): Remove definition.
6881
6882 * lisp.h (AREF, ASET, ASIZE): New macros.
6883
6884 * fontset.c (AREF, ASIZE): Remove definitions.
6885
6886 * fns.c (AREF): Remove definition.
178c5d9c 6887
0f1a9b23
GM
6888 * composite.c (AREF): Remove definition.
6889
712eaef2
GM
68902000-07-12 Gerd Moellmann <gerd@gnu.org>
6891
d8ee7803
GM
6892 * dispnew.c (redraw_overlapped_rows): Add missing local.
6893 (scrolling_window): Remove debug code.
6894
712eaef2
GM
6895 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
6896 Before scrolling, turn off a mouse-highlight in the window
6897 being scrolled.
6898
6899 * xterm.c (x_update_window_end): Add parameter
6900 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
6901 redisplay in XTframe_up_to_date.
6902 (x_clear_mouse_face): New function.
6903 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
6904
6905 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
6906 current glyph row.
6907 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
6908 it when any row is written to that contains glyphs highlighted in
6909 mouse-face.
6910 (update_window): Call the window update end hook with new
6911 parameter MOUSE_FACE_OVERWRITTEN_P.
6912 (direct_output_for_insert): Give up if row contains mouse-face.
6913
6914 * dispextern.h (struct redisplay_interface): Add parameter
6915 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
6916 (clear_mouse_face): New function pointer member.
6917
02010917
SM
69182000-07-11 Stefan Monnier <monnier@cs.yale.edu>
6919
6920 * syntax.c (back_comment): Use one switch rather than a few `if's.
6921 Obey open_paren_in_column_0_is_defun_start.
6922 When reverting to the `slow' method, try to nicely handle the case
6923 of nested comments by checking that the comment-starter we found
6924 does indeed match the comment-ender.
6925 (scan_sexps_forward, scan_sexps_forward):
6926 Ignore excessive opening parenthesis rather than throwing an error.
6927
d76c03ea
GM
69282000-07-11 Gerd Moellmann <gerd@gnu.org>
6929
6930 * doc.c (Fsubstitute_command_keys): Handle case that a GC
6931 in Fwhere_is_internal or get_keymap_1 relocates string contents.
6932
6933 * dispnew.c (direct_output_forward_char): Give up if currently
6934 displaying a message instead of the minibuffer contents.
6935
6936 * xterm.c (x_update_window_begin): No need to turn off the mouse
6937 highlight here.
6938 (show_mouse_face): Set the mouse_face_p flag of glyph rows
6939 depending on whether they contain glyphs highlighted in
6940 mouse-face.
6941
6942 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
6943 compare the mouse_face_p flags of both rows.
6944
6945 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
6946
d55ead18
EZ
69472000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
6948
6949 * keyboard.c (show_help_echo): Accept additional parameter
6950 ok_to_overwrite_keystroke_echo.
6951 (read_char): Call show_help_echo with a zero
6952 ok_to_overwrite_keystroke_echo argument.
6953 * keyboard.h (show_help_echo): Update prototype of
6954 show_help_echo.
6955 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
6956 ok_to_overwrite_keystroke_echo argument.
6957 * w32menu.c (w32_menu_display_help): Call show_help_echo with
6958 non-zero ok_to_overwrite_keystroke_echo argument.
6959
df75b1a3
GM
69602000-07-10 Gerd Moellmann <gerd@gnu.org>
6961
4b92c49a
GM
6962 * xdisp.c (try_window_id): If changes are all below what is
6963 displayed in the window, and point is in the window, we still
6964 might have to find point on the display.
6965
6966 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
6967 glyphs instead of a single one.
6968 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
6969 with new argument list.
6970 (x_set_glyph_string_gc): Make sure the face's GC is valid.
6971
df75b1a3
GM
6972 * keymap.c (get_keymap_1): Add comment that this function can GC.
6973 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
6974 comment that functions can GC.
6975 (Fset_keymap_parent): GCPRO arg KEYMAP.
6976
4314cf3e
EZ
69772000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
6978
6979 * msdos.c (XMenuActivate): After exiting the menu, restore the
6980 echo area message and erase it.
6981
ab49ce15
KH
69822000-07-10 Kenichi Handa <handa@etl.go.jp>
6983
6984 * fontset.c (Ffontset_info): Make the return value more compatible
6985 with that of Emacs 20.
6986
090a072f
GM
69872000-07-07 Gerd Moellmann <gerd@gnu.org>
6988
6989 * eval.c (Fsignal): Handle case that backtrace_list is null.
6990
f92de4a6
KH
69912000-07-07 Kenichi Handa <handa@etl.go.jp>
6992
6993 * ccl.c (Fccl_execute): Typo fixed.
6994
dd8888a1
GM
69952000-07-06 Gerd Moellmann <gerd@gnu.org>
6996
e5c81191 6997 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 6998
dd8888a1
GM
6999 * window.c (Fwindow_list): Reverse list at the end.
7000 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
7001 means allow windows on OWINDOW's frame, only.
7002 (window_loop): Simplified; use Fwindow_list.
7003
7004 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
7005
485266d0
GM
70062000-07-05 Gerd Moellmann <gerd@gnu.org>
7007
7008 * xterm.c (XTread_socket): Increment handling_signal at the start,
7009 decrement it at the end.
7010
7011 * eval.c (handling_signal): New variable.
7012 (Fsignal): Abort if handling_signal is non-zero.
7013
7014 * lisp.h (handling_signal): External declaration.
178c5d9c 7015
485266d0
GM
7016 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
7017
80fcd514
KR
70182000-07-05 Ken Raeburn <raeburn@gnu.org>
7019
7020 Sound support for NetBSD through "Linux emulation" support:
7021 * config.in (HAVE_SOUNDCARD_H): Undef.
7022 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
7023 * Makefile.in (LIBSOUND): New variable.
7024 (LIBES): Include it.
7025 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
7026 <soundcard.h>.
7027 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
7028 elsewhere.
7029 (vox_open): Use DEFAULT_SOUND_DEVICE.
7030 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
7031
d5c5cddd
GM
70322000-07-05 Gerd Moellmann <gerd@gnu.org>
7033
7034 * print.c (print_error_message): If Vsignaling_function is set,
7035 show it in *Messages*.
7036
7037 * lisp.h (Vsignaling_function): External declaration.
7038
7039 * eval.c (Vsignaling_function): New variable.
7040 (Fsignal): Compute it.
7041 (syms_of_eval): Staticpro it.
7042
65171e3a
DL
70432000-07-05 Dave Love <fx@gnu.org>
7044
7045 * syswait.h: Use the autoconf recommended approach. Old code
7046 #if'd out in case we need to revert.
7047
178c5d9c 7048 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 7049
e2c46326
AI
70502000-07-05 Andrew Innes <andrewi@gnu.org>
7051
7052 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
7053 when non-NULL instead of __morecore, to take account of buffer
7054 memory. This also solves a problem with spurious memory warnings
7055 on Windows.
7056
7057 * ralloc.c: Make real_morecore non-static.
7058
7059 * eval.c (internal_condition_case): Comment out abort if
7060 interrupt_input_blocked is not zero.
7061
7062 * makefile.nt: Add support for `bootstrap' and related targets.
7063 Include minimal debug info in emacs.exe in release build.
7064 Remove all dependencies on lisp.h, and fixup some others.
7065
7066 * w32.c (init_environment): Install code from 20.7 for providing
7067 default values for environment variables, based on the
7068 executable's own location.
7069 (map_w32_filename): Handle filenames that are longer than
7070 MAX_PATH.
7071 (sys_socket): Install socket inheritance bug fix from 20.7.
7072
7073 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
7074 here via blockinput.h).
7075
a027a91b
SM
70762000-07-05 Stefan Monnier <monnier@cs.yale.edu>
7077
e4b31601
SM
7078 * w32menu.c (w32_menu_display_help):
7079 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
7080
7081 * keyboard.h (show_help_echo): Declare.
7082
7083 * keyboard.c (show_help_echo): New function, extracted from read_char.
7084 Feval its `msg' argument if it's a cons cell.
7085 (read_char): Use it.
4cf8d9d5 7086 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 7087
178c5d9c 7088 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 7089 (note_tool_bar_highlight, XTread_socket):
178c5d9c 7090 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
7091 (dos_rawgetc):
7092 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
7093 (note_tool_bar_highlight, w32_read_socket):
7094 Do not gratuitously ignore non-string `help-echo' properties.
7095
88d75730
GM
70962000-07-05 Gerd Moellmann <gerd@gnu.org>
7097
969f7e79
GM
7098 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
7099
71201b00
GM
7100 * window.c (delete_all_subwindows): Reset Vwindow_list.
7101
88d75730
GM
7102 * xterm.c (x_append_glyph, x_append_composite_glyph)
7103 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
7104 changes in struct glyph starting 1999-12-27. Some bit-fields of
7105 struct glyph were not set, which made glyphs unequal when compared
7106 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
7107 effects were the result. This also depended on the contents of
7108 memory returned by xmalloc. If flickering happens again, activate
7109 the code in clear_glyph_row that's in #if 0. If the flickering is
7110 gone with that, chances are that it is caused by something
7111 similar.
7112
7113 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 7114
88d75730
GM
7115 * dispextern.h: Add some comments.
7116
7117 * window.c (add_window_to_list): Add parameter LIST.
7118 (window_list): Order list so that, for each frame, windows are
7119 in canonical order, and so that frames appear in the list in
7120 the order given by Vframe_list.
7121 (next_window): Reverse the handling of NEXT_P.
7122
53654733
GM
71232000-07-04 Gerd Moellmann <gerd@gnu.org>
7124
87efd256
GM
7125 * window.c (Vwindow_list): New variable.
7126 (make_window, delete_window): Set Vwindow_list to nil.
7127 (check_window_containing): New function.
7128 (window_from_coordinates): Rewritten.
7129 (add_window_to_list, window_list, candidate_window_p)
7130 (decode_next_window_args, next_window): New functions.
7131 (Fnext_window, Fprevious_window): Rewritten in terms of
7132 next_window.
7133 (Fwindow_list): New function.
7134 (Fother_window): Cleaned up.
7135 (foreach_window): Add a longer "variable argument list". Let
7136 callback function return 0 to indicate that cycling over windows
7137 should stop.
7138 (foreach_window_1): Likewise.
7139 (freeze_window_start): Return int.
7140 (init_window): New function.
7141 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
7142
7143 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
7144 input_event with bzero.
7145 (main): Call init_window.
7146
53654733
GM
7147 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
7148 a menu filter.
7149
4a8c194f
KH
71502000-07-04 Kenichi Handa <handa@etl.go.jp>
7151
7152 * composite.h (make_composition_value_copy): Extern it.
7153
7154 * composite.c (make_composition_value_copy): New function.
7155
7156 * editfns.c (Fformat): While copying text properties, make each
7157 composition property value a copy.
7158
7159 * fns.c (concat): While copying text properties, make each
7160 composition property value a copy.
7161
831a6cb0
GM
71622000-07-03 Gerd Moellmann <gerd@gnu.org>
7163
2f516940
GM
7164 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
7165
178c5d9c 7166 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
7167 marked already.
7168
831a6cb0
GM
7169 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
7170 include those frames as candidates which have their focus
7171 redirected to the minibuffer frame.
7172
d9c4f922
SM
71732000-07-03 Stefan Monnier <monnier@cs.yale.edu>
7174
7175 * fns.c (Fputhash): Return `value' rather than nil.
7176
3780bc22
GM
71772000-06-30 Gerd Moellmann <gerd@gnu.org>
7178
97d176db
GM
7179 * frame.c (next_frame): Don't check focus redirection in case
7180 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
7181 unless their focus is redirected, which contradicts the
7182 specification of next-frame, and leads to infinite loops in
7183 certain situations when cycling through windows with next-window.
7184
dca9961d
KH
71852000-06-30 Kenichi Handa <handa@etl.go.jp>
7186
7187 * coding.c (code_convert_region): Even if the length of text is
7188 zero, try to convert it if coding->type is coding_type_ccl.
7189 (decode_coding_string, encode_coding_string): Likewise.
7190
d5483ab1
GM
71912000-06-28 Gerd Moellmann <gerd@gnu.org>
7192
af5c25e1 7193 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 7194 the display if windows_or_buffers_changed.
af5c25e1
GM
7195
7196 * dispnew.c (struct row_entry): New structure.
7197 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
7198 (row_table_size, old_lines, new_lines, old_lines_size)
7199 (new_lines_size, run_pool, runs_size, runs): New variables.
7200 (add_row_entry): New function.
7201 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 7202 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
7203 holding them in local variables. Use a larger hash table whose
7204 size depends on glyph matrix sizes. Don't use bzero to clear the
7205 hash table; instead, clear used slots only.
7206
7207 * fns.c (next_almost_prime): Make it externally visible.
7208
7209 * lisp.h (next_almost_prime): Add prototype.
7210
d5483ab1
GM
7211 * s/isc4-0.h (sigunblock): Define.
7212
7213 * s/sco5.h (sigunblock): Define.
7214
93e40f40
DL
72152000-06-27 Dave Love <fx@gnu.org>
7216
7217 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
7218 (moved to osf5-0.h).
7219 [!NOT_C_CODE]: Protect string.h stuff.
7220
7221 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
7222 (sys_siglist, NSIG): Definitions moved here from osf1.h.
7223
3c4b7685
GM
72242000-06-27 Gerd Moellmann <gerd@gnu.org>
7225
97d176db 7226 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
7227 below the last line from the needed window height.
7228
32cad0aa
SM
72292000-06-26 Stefan Monnier <monnier@cs.yale.edu>
7230
7231 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
7232 (Fwidget_get): Use it.
7233 (syms_of_fns): Defsubr it.
7234
2c69ced2
GM
72352000-06-26 Gerd Moellmann <gerd@gnu.org>
7236
178c5d9c 7237 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
7238 display info for XIM.
7239 (xim_open_dpy): Likewise.
7240 (xim_close_dpy): Don't free the display info's XIM.
7241
7242 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
7243
7244 * config.in (USE_XIM): New define.
7245
3fc720e4
GM
7246 * keymap.c (get_keyelt): For menu-items containing a `:filter
7247 FILTER', apply FILTER to the menu-item's definition to get the
7248 real definition to use.
7249
7250 * lisp.h (QCfilter): External declaration.
7251
2c69ced2
GM
7252 * xfns.c (Fimage_size): New function.
7253 (syms_of_xfns): Defsubr it.
7254
f978b2a2
AS
72552000-06-26 Andreas Schwab <schwab@suse.de>
7256
7257 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
7258 Fstring_as_unibyte.
7259
94cc7892
DL
72602000-06-25 Dave Love <fx@gnu.org>
7261
7262 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
7263 tgetnum.
7264
7265 * Makefile.in (blockinput.h): Depend on atimer.h.
7266 (atimer.h): Depend on systime.h.
7267
7268 * blockinput.h: Protect against multiple inclusion. Include
7269 atimer.h.
7270
7271 * atimer.h: Protect against multiple inclusion. Include
7272 systime.h.
7273
7274 * lisp.h (swap_in_global_binding): Declare.
7275
b8c24556
KR
72762000-06-24 Ken Raeburn <raeburn@gnu.org>
7277
7278 * process.c (Fopen_network_stream): Turn off atimers for duration
7279 of call to connect. (Patch from Gerd.)
7280
8cf8560b
DL
72812000-06-23 Dave Love <fx@gnu.org>
7282
511c7541
DL
7283 * ralloc.c: Maybe include unistd.h
7284
8cf8560b
DL
7285 * emacs.c (setgrp): Undefine before defining.
7286 (malloc_warning, set_time_zone_rule, index): Prototype.
7287
7288 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
7289 HAVE_STRUCT_TIMEZONE.
7290
7291 * s/osf1.h: Move string.h hack here from alpha.h and make it
7292 conditional.
7293 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
7294 _XOPEN_SOURCE.
7295 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
7296 (SOCKLEN_TYPE): Don't define.
7297
7298 * m/alpha.h: Remove string.h hack.
7299
7300 * s/osf5-0.h: New file.
7301
7302 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
7303 include time.h, done by systime.h.
7304 [__FreeBSD__]: Remove redundant includes.
7305
3fc720e4 7306 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
7307 (delete_temp_file): Return Qnil to avoid warning.
7308
7309 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
7310
7311 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
7312 HAVE_X_WINDOWS.
7313
7314 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
7315
7316 * composite.h (compose_text): Declare.
7317
7318 * xterm.c: Don't include sys/types.h unconditionally. Don't
7319 protect its inclusion with !USG (following xmenu.c).
7320
ea055732
GM
73212000-06-23 Gerd Moellmann <gerd@gnu.org>
7322
7323 * xfns.c (x_create_tip_frame): Initialize frame's colors like
7324 in x_create_frame.
7325
74b01b80
EZ
73262000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
7327
7328 * coding.c (decode_eol_post_ccl): Special handling for undecided
7329 and inconsistent EOL types.
7330
64f3a166
GM
73312000-06-22 Gerd Moellmann <gerd@gnu.org>
7332
16cf31f7
GM
7333 * xrdb.c (x_load_resources): Add default resource for scroll bar's
7334 trough color and main window's background color.
7335
178c5d9c 7336 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
7337 differently.
7338
7339 * xterm.h (Xt_app_con): External declaration.
7340
7341 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 7342
486a103d
GM
7343 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
7344
64f3a166
GM
7345 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
7346 (handle_invisible_prop): Record the start of invisible text in
7347 it->add_overlay_start.
7348 (struct overlay_entry): Add member `overlay'.
7349 (handle_overlay_change): Simplify.
7350 (next_overlay_string): After having processed overlay strings at the
7351 end of the buffer, record that fact in
7352 it->overlay_strings_at_end_processed_p.
7353 (compare_overlay_entries): If before- and after-strings come
7354 from the same overlay, let before-strings come first.
7355 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
7356 (load_overlay_strings): Take it->add_overlay_start into account
7357 when adding overlay strings.
7358
7359 * dispextern.h (struct it): Add member add_overlay_start.
7360
bb746ea6
DL
73612000-06-22 Dave Love <fx@gnu.org>
7362
7363 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
7364
7365 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
7366
a8f573f3
KH
73672000-06-22 Kenichi Handa <handa@etl.go.jp>
7368
7369 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
7370 is greater than 0.
7371
9f2bbc92
DL
73722000-06-21 Dave Love <fx@gnu.org>
7373
178c5d9c 7374 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 7375
3ee5041c
SM
73762000-06-21 Stefan Monnier <monnier@cs.yale.edu>
7377
7378 * syntax.c (back_comment): Simplify string-parity counting (with
7379 the added benefit of handling multiple string-styles as long as
7380 they are not intertwined).
7381 Jump to the slow code as soon as a comment starter is found in
7382 a "string_lossage" position. Fixes the case: " /* " /* " */.
7383
4c343001
DL
73842000-06-21 Dave Love <fx@gnu.org>
7385
7386 * Makefile.in: Use GETLOADAVG_LIBS.
7387
7388 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
7389 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
7390
e6365855
SM
73912000-06-20 Stefan Monnier <monnier@cs.yale.edu>
7392
7393 * syntax.c (describe_syntax): Recognize the `n'estable bit.
7394 (Fforward_comment, scan_lists):
7395 Check the comstyle of single-char comment-starters.
7396 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
7397 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
7398 Check the comstyle of single-char comment-starters.
7399 Clarify control-flow around the Scomment case.
e6365855 7400
5700d2cc
DL
74012000-06-20 Dave Love <fx@gnu.org>
7402
d355bd8a
SM
7403 * fns.c (make_hash_table, maybe_resize_hash_table):
7404 Cast arg of next_almost_prime.
5700d2cc 7405
178c5d9c 7406 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
7407
7408 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
7409 and unistd.h.
7410
4a27bdfb
GM
74112000-06-20 Gerd Moellmann <gerd@gnu.org>
7412
a61d762c
GM
7413 * keyboard.c (adjust_point_for_property): Check if display
7414 property should be treated as intangible by looking at its
7415 value.
7416
178c5d9c 7417 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
7418 (display_prop_intangible_p): New functions.
7419
7420 * dispextern.h (display_prop_intangible_p): Add prototype.
7421
7422 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 7423
4a27bdfb
GM
7424 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
7425 argument to sigprocmask.
7426
7427 * s/sco5.h (sigblock): Redefined to pass a pointer as second
7428 argument to sigprocmask.
7429
7430 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
7431 sigprocmask_set, and pass a pointer to it to sigprocmask.
7432
7433 * sysdep.c (sigprocmask_set): New variable.
7434
7435 * fileio.c (make_temp_name): Don't use `%s' in string passed to
7436 report_file_error.
7437
427ec082
SS
74382000-06-20 Sam Steingold <sds@gnu.org>
7439
7440 * xrdb.c: Don't declare xmalloc, xrealloc.
7441
8972fe79 74422000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
7443
7444 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
7445 (re_comp): Cast gettext return value to avoid complaints when
7446 !HAVE_LIBINTL.
7447
074b6efe
DL
74482000-06-20 Dave Love <fx@gnu.org>
7449
f85c008a
DL
7450 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
7451 HAVE_GETTIMEOFDAY.
7452
5700d2cc 7453 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 7454
d355bd8a 7455 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
7456
7457 * m/alpha.h: Don't declare xmalloc, xrealloc.
7458
0af4f205
DL
7459 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
7460
7461 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
7462
7463 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
7464
7465 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
7466 HAVE_GETWD.
7467
074b6efe
DL
7468 * keyboard.h (poll_for_input_1): Declare.
7469
7470 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
7471
7472 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
7473
7474 * doprnt.c: Don't declare xmalloc, xrealloc.
7475
7476 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
7477 (getenv, ctime, getwd): Removed.
7478 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
7479
7480 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
7481 x_set_tool_bar_lines.
7482
7483 * config.in: Add HAVE_GETWD. Move some definitions above
7484 machine/system includes.
7485
68a5e97b
KH
74862000-06-20 Kenichi Handa <handa@etl.go.jp>
7487
95417e1e
KH
7488 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
7489
68a5e97b
KH
7490 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
7491 contain information about ENCODING.
7492
7493 * fontset.c (FONTSET_ASCII): Use the first element of char table
7494 for an ASCII font, not defalt slot.
7495 (fontset_ref_via_base): If FONTSET doesn't contain information for
7496 C, try the default fontset.
7497 (make_fontset): Don't copy the default fontset.
7498 (fontset_font_pattern): Likewise.
7499 (accumulate_font_info): If ELT is nil, use the corresponding
7500 element in the default fontset.
7501
3b4fa1b2
DL
75022000-06-19 Dave Love <fx@gnu.org>
7503
943e731c
DL
7504 * syntax.c (Fparse_partial_sexp): Doc fix.
7505
7506 * regex.h: Test PROTOTYPES as well as __STDC__.
7507
3b4fa1b2
DL
7508 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
7509 errno, strerror. Put text after #endif in comment.
7510
7511 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
7512 pcc).
7513
7514 * xterm.c (x_frame_of_widget): Likewise.
7515
cdf0357b
GM
75162000-06-19 Gerd Moellmann <gerd@gnu.org>
7517
7518 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
7519 to Vfundamental_mode_abbrev_table.
7520
7521 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
7522 bogus objects are marked. This slows down GC by ~80 percent, but
7523 it might be worth trying when debugging GC-related problems.
7524 This feature requires conservative stack marking to be enabled.
7525
7526 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
7527 returns XLookupChars, reset `modifiers' to zero.
7528
998e9f8c
DL
75292000-06-19 Dave Love <fx@gnu.org>
7530
7531 * mktime.c: Unprotoized.
7532
18e21ce8 75332000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
7534
7535 * data.c (set_internal): If variable is frame-local,
7536 store the new value immediately into the frame parameter alist.
7537
140c4ac6
KR
75382000-06-19 Ken Raeburn <raeburn@gnu.org>
7539
14358466
KR
7540 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
7541 in the custom handler pointer.
7542
140c4ac6
KR
7543 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
7544 value, or checks for CHAR_META can fail when Lisp_Object is a
7545 union type.
7546 * keymap.c (get_keyelt): Likewise.
7547
10d7bf84
KH
75482000-06-19 Kenichi Handa <handa@etl.go.jp>
7549
7550 * ccl.h (struct ccl_program): New member eol_type.
7551 (struct ccl_spec): New member cr_carryover.
7552
7553 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
7554 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
7555
7556 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
7557 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
7558 (decode_eol_post_ccl): New function.
7559 (decode_coding): Don't detect EOL format here for CCL based coding
7560 systems.
7561 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
7562 decode_eol_post_ccl after running the CCL program.
7563 (code_convert_region): Don't detect EOL format here for CCL based
7564 coding systems.
7565 (decode_coding_string): Likewise.
7566
52e386c2
KR
75672000-06-18 Ken Raeburn <raeburn@gnu.org>
7568
7569 * charset.c (update_charset_table): Use XINT on "iso_final_char"
7570 when treating it as an integer.
7571
7572 * coding.h (encode_coding_string): Declare.
7573
7574 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
7575 it as an integer.
7576
7577 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
7578 "xkeymap" to avoid shadowing the "enum map_type" value that needs
7579 to be passed to get_local_map.
7580
7581 * sound.c (Fplay_sound): Don't call make_number on
7582 Frun_hook_with_args count argument.
7583
7584 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
7585 for lisp objects in X event structure data field, when lisp
7586 objects are represented with unions.
7587 (x_scroll_bar_to_input_event): Ditto.
7588
b357b9d4
KR
75892000-06-16 Ken Raeburn <raeburn@gnu.org>
7590
7591 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
7592 termination of string. Fix sense of test whether
7593 Vline_number_display_limit is an integer.
b357b9d4 7594
a871441d
GM
75952000-06-16 Gerd Moellmann <gerd@gnu.org>
7596
a9021acd
GM
7597 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
7598 only if HAVE_X_WINDOWS.
7599
6344985d
GM
7600 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
7601 of titles.
7602
427ec082 7603 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
7604 out of bounds.
7605
228b083e
EZ
76062000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
7607
7608 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
7609 of its headers.
7610
c25b53a2
KH
76112000-06-15 Kenichi Handa <handa@etl.go.jp>
7612
7613 * coding.c (decode_coding_emacs_mule): Always set src_base at the
7614 start of the while loop.
7615
a6981b11
GM
76162000-06-15 Gerd Moellmann <gerd@gnu.org>
7617
e9924e52
GM
7618 * atimer.c (alarm_signal_handler): Add forward declaration.
7619
a6981b11
GM
7620 * data.c (set_internal): Remove debug code.
7621
25fa6deb
GM
76222000-06-14 Gerd Moellmann <gerd@gnu.org>
7623
dce6b995
GM
7624 * Makefile.in (bootstrap-temacs): Add `-I../src'.
7625
9f817ea4
GM
7626 * unexec.c (toplevel) [COFF]: Include coff.h.
7627
7628 * s/lynxos.h: New file.
7629
7630 * keymap.c (Fsingle_key_description): Enclose function key and
7631 event symbol names in angle brackets.
7632
8a4e3c0c
GM
7633 * xdisp.c (setup_echo_area_for_printing): Call
7634 message_log_maybe_newline if message_buf_print is not set.
7635
7636 * print.c (printchar, strout): Don't check message_buf_print
427ec082 7637 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
7638 function does something useful even when message_buf_print is
7639 already set.
7640
25fa6deb
GM
7641 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
7642 variables.
7643 (ensure_echo_area_buffers): Initialize echo buffer's
7644 truncate lines setting to nil.
7645 (with_echo_area_buffer): Don't set the echo buffer's truncate
7646 lines setting here.
8a4e3c0c 7647 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
7648 of message_truncate_lines.
7649 (resize_mini_window): Handle case that lines are truncated.
7650 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
7651 message-truncate-lines.
7652
7653 * keyboard.c (read_char): Bind message-truncate-lines to t
7654 while displaying a help-echo.
7655
7656 * lisp.h (Qmessage_truncate_lines): External declaration.
7657
163dcff3
GM
76582000-06-13 Gerd Moellmann <gerd@gnu.org>
7659
1681ead6
GM
7660 * xdisp.c (Vline_number_display_limit): Renamed from
7661 line_number_display_limit.
7662 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
7663 Extend documentation string. Initialize
7664 Vline_number_display_limit to nil meaning no limit.
7665 (decode_mode_spec): Use Vline_number_display_limit with its new
7666 meaning.
7667
163dcff3
GM
7668 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
7669
18e21ce8 76702000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
7671
7672 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 7673
163dcff3
GM
7674 * xfns.c (x_set_frame_parameters): Comment fix.
7675
7676 * frame.c (store_frame_param): Call swap_in_global_binding if the
7677 variable's current binding was chosen based on this frame.
7678
7679 * data.c (swap_in_global_binding): New function.
7680
a704139d
EZ
76812000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
7682
7683 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
7684 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
7685
9b6610db
EZ
76862000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
7687
7688 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
7689
c68833d2
JR
76902000-06-12 Jason Rumney <jasonr@gnu.org>
7691
7692 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
7693
7694 * w32.h (EMACS_W32_H): Renamed from _NT_H_
7695
7696 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
7697
7698 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
7699
ed1056b3
GM
77002000-06-12 Gerd Moellmann <gerd@gnu.org>
7701
7702 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
7703 (syms_of_xfaces): Defsubr Sdump_colors.
7704 (x_free_colors): Don't treat b&w specially on default visual.
7705 (x_free_dpy_colors): New function.
7706 (free_face_colors): Don't check visual class; it's done
7707 in x_free_colors.
7708
7709 * xterm.c (x_frame_of_widget): New function.
7710 (x_alloc_nearest_color_for_widget): Use it.
7711 (x_copy_dpy_color): New function.
7712 (x_destroy_window): Free various colors.
7713
5050a2ef
KH
77142000-06-12 Kenichi Handa <handa@etl.go.jp>
7715
7716 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
7717
7718 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
7719
7720 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
7721
7722 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
7723
7724 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
7725
fb1b041d
DL
77262000-06-11 Dave Love <fx@gnu.org>
7727
7728 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
7729
ff96b5f4
EZ
77302000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
7731
7732 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
7733
db8eeecd
GM
77342000-06-11 Gerd Moellmann <gerd@gnu.org>
7735
ed1056b3 7736 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
7737 to `XEvent *'.
7738
49b71c5f
KH
77392000-06-10 Kenichi Handa <handa@etl.go.jp>
7740
c479bd55
KH
7741 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
7742 (regex_compile): Fix the code for handling the case of single byte
7743 char and multibyte char being mixed in a range within [...].
7744
ff6a65c2
KH
7745 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
7746 and dst_multibyte members of coding.
7747
49b71c5f
KH
7748 * charset.c (update_charset_table): Update the table
7749 bytes_by_char_head.
7750 (init_charset_once): Initialize elements of bytes_by_char_head to
7751 1 except for leading codes for private charases.
7752
7753 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
7754 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
7755 sequence.
7756
9e80b57d
KR
77572000-06-09 Ken Raeburn <raeburn@gnu.org>
7758
7759 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
7760 access the data it doesn't point to.
7761
f83fe4b4
GM
77622000-06-08 Gerd Moellmann <gerd@gnu.org>
7763
7764 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 7765 will be translated to a switch-frame event when reading the
f83fe4b4
GM
7766 event queue. This is necessary because Emacs otherwise won't
7767 perform a switch-frame to a new frame until some other event, for
7768 example a keystroke event, forces it to do so. This has various
7769 effects, one visible being that the cursor of a frame created with
7770 C-x 5 2 or switched to with a window manager key binding like
7771 A-TAB stays hollow because selected_window isn't on the newly
7772 focused frame until the switch-frame is performed.
7773
7774 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
7775 generating a switch-frame event if necessary.
7776
7777 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
7778
7779 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
7780 it's an integer.
7781
0890801b
KH
77822000-06-08 Kenichi Handa <handa@etl.go.jp>
7783
7784 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
7785 charset.
7786
173cbca8
GM
77872000-06-07 Gerd Moellmann <gerd@gnu.org>
7788
3091c2a6
GM
7789 * window.c (displayed_window_lines): Take empty lines at
7790 the bottom of a window into account.
427ec082 7791
f38952fe
GM
7792 * window.c (displayed_window_lines): New function.
7793 (Fmove_to_window_line): Use displayed_window_lines to determine
7794 the number of lines to move, instead of using the window's height.
7795
7796 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
7797 to stop reading, even if the form read sets point to a different
7798 value when evaluated.
7799
427ec082 7800 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
7801 put the cursor.
7802
6ba6c818
KH
78032000-06-07 Kenichi Handa <handa@etl.go.jp>
7804
7805 * fileio.c (e_write): Free composition data if stored in
7806 coding->cmp_data.
7807
5f1aea9a
GM
78082000-06-06 Gerd Moellmann <gerd@gnu.org>
7809
666852af
GM
7810 * xdisp.c (display_line): Set row's and iterator's
7811 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
7812 Set cursor even if row ends in the middle of a character.
7813 (dump_glyph_row): Print values of new flags.
7814 (redisplay_window) <cursor movement in unchanged window>: When
7815 point has been moved forward, and PT is at the end of the cursor
7816 row, don't place the cursor in the next row if the cursor row ends
7817 in the middle of a character or at ZV.
7818
7819 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
7820 (struct glyph_row): Add starts_in_middle_of_char_p and
7821 ends_in_middle_of_char_p.
7822 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
7823 ends_in_middle_of_char_p flag.
7824 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
7825
d13f3e2e
GM
7826 * term.c (append_glyph): Revert change of 2000-06-06.
7827
7828 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
7829 padding glyph not fitting on line as whole character not
7830 fitting on line.
7831
5f1aea9a
GM
7832 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
7833 this isn't true for images with `:ascent 100'.
7834
10cda9b0
KH
78352000-06-06 Kenichi Handa <handa@etl.go.jp>
7836
ed00559d
KH
7837 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
7838 as modified if it is originally unmodified.
7839
10cda9b0
KH
7840 * term.c (encode_terminal_code): Change the way to check if
7841 terminal coding does any conversion.
7842 (append_glyph): Set glyph->pixel_width correctly.
7843
7844 * xdisp.c (display_line): While checking line continuation, pay
7845 attention to a padding glyph.
7846
1969fae2
GM
78472000-06-05 Gerd Moellmann <gerd@gnu.org>
7848
7849 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
7850
162ccef4
DL
78512000-06-05 Dave Love <fx@gnu.org>
7852
f19f32dd
DL
7853 * xdisp.c: Include fontset.h.
7854
7855 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
7856
7857 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
7858
7859 * dispnew.c: Conditionally include term.h.
7860
7861 * coding.h: Declare code_convert_string_norecord.
7862
7863 * frame.h (struct frame): Use volatile unconditionally.
7864
7865 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
7866
7867 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
7868
7869 * systime.h: Protect against multiple inclusion.
7870 (timezone) [USG5_4]: Define as time_t.
7871
7872 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
7873 (Foptimize_char_table, make_temp_name): Declare.
7874
7875 * Makefile.in (xdisp.o): Depend on fontset.h.
7876
7877 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
7878
7879 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
7880 (Foptimize_char_table, make_temp_name): Declare.
7881
427ec082 7882 * s/irix4-0.h:
162ccef4
DL
7883 * s/irix5-0.h:
7884 * s/netbsd.h: Don't define autoconfiscated MATHERR.
7885
2082fe81
DL
78862000-06-02 Dave Love <fx@gnu.org>
7887
7888 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
7889
dcf671d2
GM
78902000-06-02 Gerd Moellmann <gerd@gnu.org>
7891
7892 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 7893 result face, set flags in that face indicating that colors may not
dcf671d2
GM
7894 be freed.
7895
7896 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
7897 glyph, use the ASCII NUL character to determine the face.
7898
d42122a3
DL
78992000-06-02 Dave Love <fx@gnu.org>
7900
7901 * sysdep.c: Conditionally include stdlib.h, unistd.h.
7902 (VFORK_RETURN_TYPE): Remove.
427ec082 7903
d42122a3
DL
7904 * config.in: Add NO_MATHERR.
7905
dd432f16
DL
79062000-06-01 Dave Love <fx@gnu.org>
7907
90aa4ea8
DL
7908 * cmds.c (internal_self_insert): Don't check
7909 Vbefore_change_function, Vafter_change_function.
7910
7911 * insdel.c (signal_before_change, signal_after_change): Likewise.
7912
7913 * buffer.c (Vbefore_change_function, Vafter_change_function):
7914 Variables and their initializations deleted.
7915
2330c9d4
DL
7916 * callint.c (Fcall_interactively): Doc fix.
7917
dd432f16
DL
7918 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
7919
bf9e8804
DL
79202000-05-31 Dave Love <fx@gnu.org>
7921
7922 * textprop.c: Revert last change -- duplicated.
7923
3694b4ab
GM
79242000-05-31 Gerd Moellmann <gerd@gnu.org>
7925
7926 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
7927 in #if 0.
7928
7929 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
7930
f14156cd
JR
79312000-05-31 Jason Rumney <jasonr@gnu.org>
7932
8119aab8
JR
7933 * search.c (Fre_search_forward, Fre_search_backward)
7934 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
7935
f14156cd
JR
7936 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
7937
4aab9be3
JR
79382000-05-30 Jason Rumney <jasonr@gnu.org>
7939
7940 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
7941 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
7942
7943 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
7944 member.
7945
7946 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
7947 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
7948 expand a nil default_filename.
7949
7950 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
7951 pointer to glyph_to_pixel_coords, not a frame.
7952
7953 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
7954 coding.h to dependencies.
7955
7956 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
7957
7958 * w32console.c (glyph_to_pixel_coords): Change first parameter to
7959 window pointer to be consistent with w32term.c and xterm.c.
7960
7961 * w32fns.c: Format and doc changes to bring closer to xfns.c.
7962 (VIETNAMESE_CHARSET): Define if not defined in system headers.
7963 (Qline_spacing, Qcenter): New variables.
7964 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
7965 (x_set_line_spacing): New function.
7966 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
7967 macros.
7968 (x_specified_cursor_type): New function.
7969 (x_set_cursor_type): Use it.
7970 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
7971 and icon strings.
7972 (validate_x_resource_name, x_get_resource_string): Measure lengths
7973 of external strings in bytes.
7974 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
7975 GetTextExtentPoint32 with NULL title.
7976 (Fx_create_frame): Initialize Qline_spacing.
7977 (w32_load_system_font): Initialize font->double_byte_p.
7978 (x_to_w32_charset): Use Vw32_charset_info_alist.
7979 (Image, busy cursor, tooltip functions): Merged changes from
7980 xfns.c. Not yet functional on Windows.
7981
7982 * w32gui.h (W32FontStruct): Add double_byte_p member.
7983
7984 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
7985 (emacs_button_translation): Use it.
7986 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
7987 in `mask' to be set.
7988
7989 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
7990 menu strings.
7991
7992 * w32term.c: Format and doc changes to bring closer to xterm.c.
7993 (w32_char_font_type): New enum.
7994 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
7995 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
7996 (w32_encode_char): New function.
7997 (x_encode_char): Removed.
7998 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
7999 x_encode_char and w32_font_is_double_byte.
8000 (x_produce_image_glyph): Use image_ascent.
8001 (x_produce_glyphs): Use new version of w32_per_char_metric and
8002 handle NULL return value. Allow extra line spacing.
8003 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
8004 (w32_get_glyph_overhangs): Remove unicode_p param. Use
8005 w32_font_type member of glyph instead.
8006 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
8007 (fast_find_position): Make sure not to consider rows not visible
8008 in the window.
8009 (w32_read_socket) [WM_MENUSELECT]: Cannot call
8010 w32_menu_display_help with input blocked, as it can abort.
8011 (x_display_and_set_cursor): Choose cursor depending
8012 on buffer-local value of cursor_type.
8013 (x_draw_bar_cursor): Add parameter WIDTH.
8014
8015 * w32term.h (CP_DEFAULT): Define.
8016 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
8017
10fc3187
GM
80182000-05-30 Gerd Moellmann <gerd@gnu.org>
8019
8020 * search.c (Fre_search_forward, Fre_search_backward)
8021 (Fposix_search_backward, Fposix_search_forward): Doc fix.
8022
d0555360
KH
80232000-05-30 Kenichi Handa <handa@etl.go.jp>
8024
8025 * coding.c (detect_coding_iso2022): Fix code for checking
8026 CODING_CATEGORY_MASK_ISO_8_2.
8027
f1ad044f
SM
80282000-05-29 Stefan Monnier <monnier@cs.yale.edu>
8029
8030 * regex.c (PREFETCH_NOLIMIT): New function.
8031 (re_match_2_internal): Use it and adjust the end_match_2 logic.
8032
84ec3b4b
GM
80332000-05-29 Gerd Moellmann <gerd@gnu.org>
8034
66254a13
GM
8035 * syntax.c (find_defun_start): Move test for
8036 open_paren_in_column_0_is_defun_start outside of the loop.
8037
49e70dec
GM
8038 * xdisp.c (redisplay_window): Really switch buffers when
8039 displaying mode lines, and temporarily set selected_frame to the
8040 frame of the window that's redisplayed.
8041
84ec3b4b
GM
8042 * xfaces.c (free_realized_faces): Block/unblock input.
8043 (free_realized_multibyte_face): Ditto.
8044
869a3a14
DL
80452000-05-29 Dave Love <fx@gnu.org>
8046
8047 * textprop.c (Qkeymap): New variable.
8048 (syms_of_textprop): Intern it.
8049
8050 * keymap.c: Include intervals.h.
8051 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
8052
8053 * Makefile.in (keymap.o): Depend on intervals.h.
8054
8055 * keyboard.c (menu_bar_items, tool_bar_items)
8056 (Fexecute_extended_command): Deal with `keymap' property.
8057 (read_key_sequence): Track map from `keymap' property as well as
8058 `local_map'.
8059
8060 * intervals.c (get_local_map): Extra arg to allow looking for
8061 `keymap' too.
8062
8063 * intervals.h (map_property): New enum.
8064 (get_local_map): Extra arg using it.
8065 (Qkeymap): Declare.
8066
84ec3b4b 8067 * lisp.h (get_local_map): Don't declare here.
869a3a14 8068
89d0c844
KH
80692000-05-29 Kenichi Handa <handa@etl.go.jp>
8070
8071 * Makefile.in (callproc.o): Depend on composite.h.
8072
8073 * callproc.c: Include composite.h.
8074 (Fcall_process): Handle composition correctly.
8075
8076 * coding.h (coding_allocate_composition_data): Extern it.
8077 (coding_restore_composition): Likewise.
8078
8079 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
8080 yet allocated, finish decoding with result
8081 CODING_FINISH_INSUFFICIENT_CMP.
8082 (coding_allocate_composition_data): Make it non-static.
8083 (coding_restore_composition): Likewise.
8084
797a084a
EZ
80852000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
8086
8087 * charset.c (syms_of_charset): Revert last change.
8088
cf872af5
EZ
80892000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
8090
8091 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
8092 charsets as unibyte, with 1-column screen width. Sent by Kenichi
8093 Handa.
cf872af5 8094
5b1ae051
EZ
80952000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
8096
8097 * charset.c (syms_of_charset): Set width of character sets
8098 eight-bit-control and eight-bit-graphic to 1 column.
8099
34ec9ebe
GM
81002000-05-26 Gerd Moellmann <gerd@gnu.org>
8101
8102 * config.in (HAVE_SPEED_T): New define.
8103
8104 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
8105 `extern speed_t'.
8106
dd854dc2
DL
81072000-05-26 Dave Love <fx@gnu.org>
8108
8109 * coding.c (shrink_decoding_region): Initialize eol_conversion.
8110
8111 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
8112 (Fsubr_arity): New function.
8113 (syms_of_data): Install them.
8114
ba9f8f95
KH
81152000-05-26 Kenichi Handa <handa@etl.go.jp>
8116
0f3e0672
KH
8117 * charset.c (init_charset_once): Set the table bytes_by_char_head
8118 correctly.
8119
cebefb44
KH
8120 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
8121 the default fontset to what Emacs uses by default.
0f3e0672
KH
8122 (check_registry_encoding): This function deleted.
8123 (Fset_fontset_font): Remove the adhoc condition for the default
8124 fontset. Allow cons in FONTNAME.
cebefb44 8125
0f3e0672
KH
8126 * fns.c (map_char_table): Ignore char-table entries for
8127 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 8128
7a18af49
KR
81292000-05-25 Ken Raeburn <raeburn@gnu.org>
8130
8131 * emacs.c (main): Initialize keyboard syms before initializing
8132 window code, so face names are available.
8133
d2af47df
SM
81342000-05-25 Stefan Monnier <monnier@cs.yale.edu>
8135
8136 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
8137 of an anchor at the beginning of a shy-group.
8138
fc6a6a4e
GM
81392000-05-25 Gerd Moellmann <gerd@gnu.org>
8140
8141 * xdisp.c (handle_invisible_prop): Don't try to skip over
8142 invisible text if end of text is already reached.
8143
005f0d35
DL
81442000-05-25 Dave Love <fx@gnu.org>
8145
02513cdd
DL
8146 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
8147
005f0d35
DL
8148 * coding.c (encode_eol): Add null statement after label.
8149
89f6ca4e
EZ
81502000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
8151
8152 * w16select.c (Fw16_set_clipboard_data): Fix the change from
8153 2000-05-20.
8154
a4e1759e
KH
81552000-05-25 Kenichi Handa <handa@etl.go.jp>
8156
8157 * ccl.c (ccl_driver): Fix previous change.
8158
eacfd7fe
KH
81592000-05-25 Kenichi Handa <handa@etl.go.jp>
8160
46ab33a9
KH
8161 * coding.c (run_pre_post_conversion_on_str): Set point to the
8162 beginning of buffer before calling coding->post_read_conversion.
8163 (decode_coding_string): Give correct args to
8164 run_pre_post_conversion_on_str.
8165 (encode_coding_string): Likewise.
8166
eacfd7fe
KH
8167 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
8168 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
8169 eight-bit-graphic correctly.
8170
f8569325
DL
81712000-05-24 Kenichi HANDA <handa@etl.go.jp>
8172
8173 * fileio.c (Finsert_file_contents): Even if a file is not found,
8174 execute codes for setting up coding system. Call
8175 after-insert-file-functions unconditionally.
8176
04545643
GM
81772000-05-24 Gerd Moellmann <gerd@gnu.org>
8178
8179 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
8180 BSD_PGRPS are not defined.
8181
747d90ea
KH
81822000-05-24 Kenichi Handa <handa@etl.go.jp>
8183
8184 * charset.c (update_charset_table): Accept nil in LONG_NAME and
8185 DESCRIPTION.
8186 (syms_of_charset): Avoid building same strings.
8187
716e3b88
GM
81882000-05-23 Gerd Moellmann <gerd@gnu.org>
8189
8190 * lread.c (Fload): Add a comment about the meaning of
8191 Vuser_init_file being t.
8192
8193 * puresize.h (BASE_PURESIZE): Increase to 675000.
8194
8195 * s/gnu-linux.h (setpgrp): Don't define it here because this
8196 prevents compilation on GNU/Linux systems with glib 2.2.
8197
8198 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
8199 as setpgid.
427ec082 8200
9aeb39fa
EZ
82012000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
8202
8203 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
8204 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
8205 version.
8206 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
8207
29ced61b
KH
82082000-05-23 Kenichi Handa <handa@etl.go.jp>
8209
0574a2ed
KH
8210 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
8211 unconditionally.
8212
3d80f24d
KH
8213 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
8214
8215 * term.c (encode_terminal_code): Set coding->src_multibyte
8216 properly.
8217
29ced61b
KH
8218 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
8219
d7e00792
KH
82202000-05-22 Kenichi Handa <handa@etl.go.jp>
8221
c9d80d38
KH
8222 * keyboard.c (read_char): Allow character codes 128..255 to be
8223 handled by input-method-function.
8224
d7e00792
KH
8225 * insdel.c (adjust_markers_for_replace): Fix previous change.
8226 (adjust_after_replace): If PREV_TEXT is nil, call
8227 adjust_markers_for_insert, not adjust_markers_for_replace.
8228
087121cc 82292000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 8230
087121cc
GM
8231 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
8232 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
8233 [HAVE_GRANDPT]: Define.
8234 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
8235
8236 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
8237 like SYSV_PTYS.
8238
8239 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
8240
8241 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
8242
c9671f81
KH
82432000-05-20 Kenichi Handa <handa@etl.go.jp>
8244
8245 The following changes are to handle 8-bit characters in a
8246 multibyte buffer/string without facing with byte combining
8247 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
8248 eight-bit-graphic (for 0xA0..0xFF) are introduced.
8249
8250 * Makefile.in (fns.o): Depend on charset.h.
8251
8252 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
8253 convert it to unibyte.
8254 (make_string): Use parse_str_as_multibyte, not chars_in_text.
8255
8256 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
8257 apparent char boundary.
8258 (Fset_buffer_multibyte): Convert 8-bit characters in the range
8259 0x80..0x9F to/from multibyte form.
8260
8261 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
8262 to unibyte.
8263
8264 * callproc.c (Fcall_process): Always encode an argument string if
8265 it is multibyte. Setup src_multibyte and dst_multibyte members of
8266 process_coding properly.
ce75fd23 8267
c9671f81
KH
8268 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
8269 SPLIT_NON_ASCII_CHAR.
8270
8271 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
8272 as is.
8273 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
8274
8275 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
8276 variables.
8277 (SPLIT_CHARACTER_SEQ): This macro deleted.
8278 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
8279 valid.
8280 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
8281 and eight-bit-graphic.
8282 (char_to_string): Likewise. Signal an error for too large
8283 character code.
8284 (char_printable_p): Return 0 for 8-bit characters.
8285 (update_charset_table): Update iso_charset_table only when a final
8286 character is non-negative.
8287 (find_charset_in_text): Renamed from find_charset_in_str.
8288 Arguments and return value changed. Callers changed.
8289 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
8290 be -1 if CHARSET is used only internally.
8291 (Fmake_char_internal): Handle new charsets; eight-bit-control and
8292 eight-bit-graphic.
8293 (Fcharset_after): Simplified.
8294 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
8295 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
8296 (multibyte_chars_in_text): Simplified by assuming there's no
8297 invalid multibyte sequence.
8298 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
8299 str_as_unibyte): New functions.
8300 (Fstring): Simpified by assuming that byte combining never
8301 happens.
8302 (init_charset_once): Initialization for
8303 LEADING_CODE_8_BIT_CONTROL.
8304 (syms_of_charset): Intern and staticpro Qeight_bit_control and
8305 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
8306 eight-bit-control and eight-bit-graphic.
8307
8308 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
8309 CHARSET_8_BIT_GRAPHIC): New macros.
8310 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
8311 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
8312 (CHARSET_REVERSE_CHARSET): Likewise.
8313 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
8314 eight-bit-graphic.
8315 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
8316 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
8317 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
8318 encounter an invalid multibyte sequence.
8319 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
8320 sequence is always valid.
8321 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
8322 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
8323 macros.
8324 (CHAR_STRING): For 8-bit characters, call char_to_string.
8325 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
8326 multibyte sequence is always valid.
8327 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
8328 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
8329 str_as_unibyte): Extern them.
8330 (BCOPY_SHORT): Fix a bug.
8331 (CHAR_LEN): This macro deleted. Callers changed to use
8332 CHAR_BYTES.
8333 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
8334 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
8335 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
8336
bd4bde7f 8337 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
8338 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
8339 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
8340 EMIT_BYTES): New macros.
8341 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
8342 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
8343 macros deleted.
8344 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
8345 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
8346 check the validity of multibyte sequence.
8347 (decode_coding_emacs_mule): New function.
8348 (encode_coding_emacs_mule): New macro.
8349 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
8350 the source.
8351 (DECODE_ISO_CHARACTER): Just return a character code.
8352 (DECODE_COMPOSITION_START): Set coding->result instead of result.
8353 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
8354 EMIT_CHAR to produced decoded characters. Exit the loop only by
8355 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
8356 block here.
8357 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
8358 only position codes for an invalid character.
8359 (encode_designation_at_bol): Return new destination pointer. 5th
8360 arg DSTP is changed to DST.
8361 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
8362 from the source by ONE_MORE_CHAR. Don't handle the case of last
8363 block here.
8364 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
8365 macros deleted.
8366 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
8367 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
8368 TWO_MORE_BYTES to fetch a byte from the source.
8369 (encode_eol): Pay attention to coding->src_multibyte.
8370 (detect_coding, detect_eol): Preserve members src_multibyte and
8371 dst_multibyte.
8372 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
8373 (encoding_buffer_size): Set magnification to 3 for all coding
8374 systems that require encoding.
8375 (ccl_coding_driver): For decoding, be sure that the result is
8376 valid multibyte sequence.
8377 (decode_coding): Initialize coding->errors and coding->result.
8378 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
8379 and raw-text, always call decode_eol. Handle the case of last
8380 block here. If not coding->dst_multibyte, convert the resulting
8381 sequence to unibyte.
8382 (encode_coding): Initialize coding->errors and coding->result.
8383 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
8384 and raw-text, always call encode_eol. Handle the case of last
8385 block here.
8386 (shrink_decoding_region, shrink_encoding_region): Detect cases
8387 that we can't skip data more rigidly.
8388 (code_convert_region): Setup src_multibyte and dst_multibyte
8389 members of coding. For decoding, if the buffer is multibyte,
8390 convert the source sequence to unibyte in advance. For encoding,
8391 if the buffer is multibyte, convert the resulting sequence to
8392 multibyte afterward.
8393 (run_pre_post_conversion_on_str): New function.
8394 (code_convert_string): Deleted and divided into the following two.
8395 (decode_coding_string, encode_coding_string): New functions.
8396 (code_convert_string1, code_convert_string_norecord): Call one of
8397 above.
8398 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
8399 MAKE_NON_ASCII_CHAR.
8400 (Fset_terminal_coding_system_internal,
8401 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
8402 and dst_multibyte members.
8403 (init_coding_once): Initialize iso_code_class with new enum
8404 ISO_control_0 and ISO_control_1.
8405
8406 * coding.h (enum iso_code_class_type): Member ISO_control_code is
8407 devided into ISO_control_0 and ISO_control_1.
8408 (struct coding_system): New members src_multibyte, dst_multibyte,
8409 errors, and result. Delete member fake_multibyte.
8410 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
8411 nonzero.
8412 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
8413 nonzero.
8414
8415 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
8416 (Faset): Likewise.
8417
8418 * editfns.c (Fformat): Be sure to convert 8-bit characters to
8419 multibyte form.
8420 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
8421 combining occurs.
8422 (Ftranspose_region): Delete codes for handling byte combining.
8423
8424 * fileio.c (Finsert_file_contents): Setup src_multibyte and
8425 dst_multibyte members of coding. On handling REPLACE on unibyte
8426 buffer, convert the result of decode_coding to unibyte. On
8427 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 8428 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
8429 multibyteness of the source (buffer or string).
8430
8431 * fns.c (concat): Handle 8-bit characters correctly.
8432 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
8433 unibyte in the result.
8434 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
8435 valid multibyte form in the result.
8436 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
8437 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
8438 return -1, signal an error.
8439 (base64_encode_1): New arg MULTIBYTE. Get each character by
8440 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
8441 character is found, return -1.
8442 (Fbase64_decode_region): Delete codes for handling byte-combining.
8443 Treat each decoded byte as a unibyte character.
8444 (Fbase64_decode_string): Return unibyte string.
8445 (Fcompare_strings, concat, string_byte_to_char): Use
8446 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
8447 FETCH_STRING_CHAR_ADVANCE.
8448 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8449 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
8450
8451 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
8452 SPLIT_NON_ASCII_CHAR.
8453 (fontset_ref_via_base, fontset_set): Likewise
8454
8455 * insdel.c (adjust_markers_for_record_delete): Deleted.
8456 (adjust_markers_for_insert): Argument changed. Caller changed.
8457 (adjust_markers_for_replace): Likewise.
8458 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
8459 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
8460 (copy_text): Delete unused local varialbe c_save. For converting
8461 to multibyte, be sure to make all 8-bit characters in valid
8462 multibyte form.
8463 (count_size_as_multibyte): Handle 8-bit characters correctly.
8464 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
8465 adjust_after_replace, replace_range, del_range_2)
8466 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
8467 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
8468 adjust_after_replace, replace_range, del_range_2) Delete codes for
8469 handling byte combining.
8470 (adjust_before_replace): Deleted.
427ec082 8471
c9671f81
KH
8472 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
8473 SPLIT_NON_ASCII_CHAR.
8474 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
8475 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
8476 unconditionally.
8477 (Fkey_description): Likewise.
8478
8479 * lread.c (read1): On reading multibyte string, be sure to make
8480 all 8-bit chararacters in valid multibyte form.
8481 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8482
8483 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
8484 unconditionally.
8485
8486 * process.c (Fstart_process): GCPRO current_dir before calling
8487 Ffind_operation_coding_system. Encode arguments here.
8488 (create_process): Don't encode arguments here. Setup
8489 src_multibyte and dst_multibyte members of struct coding.
8490 (read_process_output): Setup src_multibyte and dst_multibyte
8491 members of struct coding. If the output is to multibyte buffer,
8492 always decode the output of the process. Adjust the
8493 representation of 8-bit characters to the multibyteness of the
8494 output.
8495 (send_process): Setup coding->src_multibyte according to the
8496 multibyteness of the source.
8497
8498 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
8499 unconditionally.
8500 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
8501 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
8502
8503 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
8504 CHAR_LEN.
8505
8506 * w16select.c (Fw16_set_clipboard_data): Setup members
8507 src_multibyte and dst_multibyte of coding. Adjusted for the
8508 change for find_charset_in_str.
8509 (Fw16_get_clipboard_data): Likewise.
8510
8511 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
8512 dst_multibyte of coding.
8513 (x_to_w32_font): Likewise.
8514
8515 * w32select.c (Fw32_set_clipboard_data): Setup members
8516 src_multibyte and dst_multibyte of coding. Adjusted for the
8517 change for find_charset_in_str.
8518 (Fw32_get_clipboard_data): Likewise.
8519
8520 * xdisp.c (get_next_display_element): Handle 8-bit characters
8521 correctly.
8522 (next_element_from_display_vector): Use CHAR_BYTES instead of
8523 CHAR_LEN.
8524 (disp_char_vector): Use SPLIT_CHAR instead of
8525 SPLIT_NON_ASCII_CHAR.
8526
8527 * xselect.c (selection_data_to_lisp_data): Setup members
8528 src_multibyte and dst_multibyte of coding. Adjusted for the
8529 change for find_charset_in_str.
8530 (lisp_data_to_selection_data): Likewise.
8531
5f64c9e0
GM
85322000-05-19 Gerd Moellmann <gerd@gnu.org>
8533
2b63d473
GM
8534 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
8535 buffer.
8536
5f64c9e0
GM
8537 * dispextern.h (Vimage_types): Add extern declaration.
8538
8539 * xdisp.c (Vimage_types): Moved here from xfns.c.
8540 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
8541
8542 * xfns.c (Vimages_types): Moved to xdisp.c.
8543 (syms_of_xfns): Move `image-types' to xdisp.c.
8544
8545 * w32fns.c (Vimage_types): Removed.
8546 (syms_of_w32fns): Remove `image-types'.
8547
813086ea
KH
85482000-05-18 Kenichi Handa <handa@etl.go.jp>
8549
8550 * fns.c (map_char_table): Pay attention to character number of
8551 charset. Check the validity of charset at the first level. For
8552 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
8553 the default value.
8554
8555 * fontset.c: Include "buffer.h".
8556 (fs_load_font): If the face has fontset, record the face ID in
8557 that fontset.
8558 (Finternal_char_font): New function.
8559 (accumulate_font_info): New function.
8560 (Ffontset_info): Rewritten for the new fontset implementation.
8561 (syms_of_fontset): Register Vdefault_fontset in the first element
8562 of Vfontset_table. Include Vdefault_fontset in
8563 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
8564 function.
8565
bdaebbf0
DL
85662000-05-16 Dave Love <fx@gnu.org>
8567
8568 * m/iris5d.h: Deleted -- unused.
8569
cb613bb8
GM
85702000-05-16 Gerd Moellmann <gerd@gnu.org>
8571
b15f3b77
GM
8572 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
8573 `invalid' instead of `illegal'.
8574
8575 * indent.c (Fmove_to_column): When ending within a tab, insert
8576 spaces first so that markers at the end of the tab get adjusted.
8577
835c1b36
GM
8578 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
8579 buffer list that wasn't selected in that frame.
8580
cb613bb8
GM
8581 * filelock.c (get_boot_time): To obtain an 8 char file name, which
8582 is needed on mescaline, use a 2 char prefix, and call
8583 make_temp_name with second arg non-zero.
8584
8585 * fileio.c (make_temp_name): New function, extracted from
8586 Fmake_temp_name.
8587 (Fmake_temp_name): Use it.
8588
f685bea9
EZ
85892000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
8590
8591 * window.c (coordinates_in_window): Subtract 1 when computing
8592 right_x.
8593
a1b8d58b
GM
85942000-05-15 Gerd Moellmann <gerd@gnu.org>
8595
8596 * Makefile.in (lisp): Add env.elc.
8597
8598 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
8599
a265079f
GM
86002000-05-12 Gerd Moellmann <gerd@gnu.org>
8601
8602 * search.c (Freplace_match): Handle case of `\N' in the
8603 replacement when there's no group N.
8604
da4496b6
GM
86052000-05-11 Gerd Moellmann <gerd@gnu.org>
8606
0ace421a
GM
8607 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
8608 of the message to message_dolog.
8609
1172eb8d
GM
8610 * keyboard.c (read_char): Don't clear current message for help
8611 events; let the code handling help events handle this. Change
8612 code detecting help events that should be ignored.
8613
da4496b6
GM
8614 * xdisp.c (handle_single_display_prop): Don't try to set PT if
8615 we're interating over a string.
8616
0623e40f
DL
86172000-05-09 Dave Love <fx@gnu.org>
8618
8619 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
8620 that offset before writing. Move gcpro region past call of
8621 Ffile_regular_p.
8622
bae2503b
DL
86232000-05-04 Dave Love <fx@gnu.org>
8624
8625 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
8626
ec82fb2f
GM
86272000-05-04 Gerd Moellmann <gerd@gnu.org>
8628
8629 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
8630 of inserted characters when BUF equals the current buffer, and PT
8631 is in front of or equal to FROM.
8632
cbf18892
GM
86332000-05-03 Gerd Moellmann <gerd@gnu.org>
8634
4ff40dd0
GM
8635 * xdisp.c (handle_single_display_prop): If display property value
8636 is invalid, or something not supported on the frame, restore
8637 iterator's position to what it was initially. Make sure to return
8638 0 for invalid and unsupported property values.
8639
cbf18892
GM
8640 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
8641 that x_per_char_metric returns null.
8642
1b0672c3
GM
86432000-05-02 Gerd Moellmann <gerd@gnu.org>
8644
576da55d
GM
8645 * xterm.h (struct face): Add forward declaration.
8646 (struct image): Ditto.
8647 (image_ascent): Add prototype.
8648
8649 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
8650 (x_draw_image_relief, x_draw_image_foreground_1): Call function
8651 image_ascent instead of using IMAGE_ASCENT.
8652
8653 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
8654 (IMAGE_ASCENT): Removed.
8655
8656 * xfns.c (Qcenter): New variable.
8657 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
8658 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
8659 (image_ascent): New function.
8660 (lookup_image): Recognize `:ascent center'.
8661 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
8662 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
8663 (xbm_load): Don't set image's ascent here.
8664 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
8665 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
8666 check ascent values here.
8667 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
8668 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
8669 (syms_of_xfns): Initialize Qcenter.
8670
1b0672c3
GM
8671 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
8672 to the limits, increase the limits.
8673
0d7811ed
KH
86742000-05-01 Kenichi Handa <handa@etl.go.jp>
8675
8676 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
8677 Check Vfont_encoding_alist against the full name of the opened
8678 font.
8679
a943a5ca
GM
86802000-04-28 Gerd Moellmann <gerd@gnu.org>
8681
8682 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
8683 taller than the window.
8684
5dba1e29
KH
86852000-04-28 Kenichi Handa <handa@etl.go.jp>
8686
8687 * xfaces.c (realize_x_face): Fix the argument of the second
8688 xassert. BASE_FACE may not be a face for ASCII.
8689
353964e3
GM
86902000-04-27 Gerd Moellmann <gerd@gnu.org>
8691
c76e04a8
GM
8692 * print.c (print_object): Treat print-length < 0 as nil.
8693
8694 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
8695
8696 * s/freebsd.h (TERMCAP_OBJ): Removed.
8697 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
8698
8699 * lread.c (read1): Don't treat period followed by certain
8700 characters as symbol start.
8701
8702 * xfns.c (slurp_file): New function.
8703 (xbm_image_p): Handle case of in-memory XBM files.
8704 (xbm_scan): Rewritten to work on memory buffers instead of files.
8705 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
8706 Work on memory buffers instead of files. If DATA is null test
8707 if buffer looks like an in-memory XBM file.
8708 (xbm_load_image): Renamed from xbm_load_image_file. Work on
8709 memory buffers instead of files.
8710 (xbm_file_p): New function.
8711 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
8712
353964e3
GM
8713 * lread.c (end_of_file_error): New function.
8714 (read1): Call it instead of signaling `end-of-file' directly.
8715
427ec082 8716 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
8717 with Fprinc instead of Fprin1.
8718
24d744ac
KR
87192000-04-26 Ken Raeburn <raeburn@gnu.org>
8720
8721 * window.c (freeze_window_start): Check that minibuffer scroll
8722 window isn't nil before extracting the window structure pointer
8723 from it.
8724
8725 * undo.c (record_delete): If we hit the end of the undo list, stop
8726 picking elements apart.
8727
7464346d
GM
87282000-04-26 Gerd Moellmann <gerd@gnu.org>
8729
8730 * xdisp.c (display_line): If lines are continued, restore
8731 iterator's ascent/descent information to the values before the
8732 first glyph not fitting on the line.
8733
612839b6
GM
87342000-04-25 Gerd Moellmann <gerd@gnu.org>
8735
8736 * xdisp.c (try_window_id) <all changes above window start>: Adjust
8737 positions in glyph matrix. Don't compute new window end
8738 positions.
8739
8740 * dispnew.c (increment_matrix_positions): Renamed from
8741 increment_glyph_matrix_buffer_positions.
8742 (increment_row_positions): Renamed from
8743 increment_glyph_row_buffer_positions.
8744
8745 * dispextern.h: Change names of renamed functions from dispnew.c
8746 in prototypes.
8747
cc181e95
GM
87482000-04-24 Gerd Moellmann <gerd@gnu.org>
8749
abfcc168
GM
8750 * fileio.c (Fdo_auto_save): Create directories for auto-save
8751 list file if necessary.
8752
cc181e95
GM
8753 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
8754 from buffer or frame.
8755 (automatic_hscrolling_p): New variable.
8756 (hscroll_windows): Scroll windows horizontally only if automatic
8757 hscrolling is allowed.
8758 (syms_of_xdisp): New variable `automatic-hscrolling'.
8759
8760 * frame.h (struct frame): Add member extra_line_spacing.
8761
8762 * xfns.c (x_set_line_spacing): New function.
8763 (Fx_create_frame): Set line spacing from resources.
8764 (Qline_spacing): New variable.
8765 (syms_of_xfns): Initialize Qline_spacing.
427ec082 8766
cc181e95
GM
8767 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
8768
8769 * buffer.c (init_buffer_once): Handle extra_line_spacing.
8770 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 8771 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
8772 extra_line_spacing from default value.
8773 (init_buffer_once): Initialize default value of extra_line_spacing.
8774
8775 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
8776 and extra3.
8777
8778 * xterm.c (x_produce_glyphs): Remove reference to struct it's
8779 prompt_width. Add extra line spacing.
8780
8781 * term.c (produce_glyphs): Remove reference to struct it's
8782 prompt_width.
8783
8784 * dispextern.h (struct it): Remove member prompt_width, add
8785 extra_line_spacing.
8786
58827478
GM
87872000-04-22 Gerd Moellmann <gerd@gnu.org>
8788
8789 * dispnew.c (update_frame_line): When writing a whole line, make
8790 sure cursor is in the right row afterwards, otherwise a use of
8791 capability `ch' in cmgoto might leave the cursor in the row below.
8792
25a87f42
GM
87932000-04-21 Gerd Moellmann <gerd@gnu.org>
8794
8795 * lisp.h (struct Lisp_Buffer_Cons): Remove.
8796
8797 * keyboard.c (timer_check): Fix typo in comment.
8798
54edf5c2
KH
87992000-04-21 Kenichi Handa <handa@etl.go.jp>
8800
8801 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
8802 name change: ch -> character.
8803
3a64eef5
GM
88042000-04-20 Gerd Moellmann <gerd@gnu.org>
8805
8806 * keyboard.c (echo_message_buffer): New variable.
8807 (echo_now): Set echo_message_buffer to the echo area buffer used
8808 to display the echo.
8809 (cancel_echoing): Reset echo_message_buffer to nil.
8810 (read_char): Code rewritten that handles canceling an echo or
8811 echoing a dash, respectively.
8812
8813 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
8814 directory doesn't exist.
8815
6142fdcb
DL
88162000-04-19 Dave Love <fx@gnu.org>
8817
8818 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
8819 (concat): Don't allow numeric args.
8820 (Fconcat): Doc change.
6142fdcb 8821
ac6b5352
SM
88222000-04-19 Stefan Monnier <monnier@cs.yale.edu>
8823
8824 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
8825 instead define end_match(1|2) more carefully.
8826 Use GET_CHAR_BEFORE_2 for `begline'.
8827
cb9215e4
GM
88282000-04-19 Gerd Moellmann <gerd@gnu.org>
8829
5e3dac3f
GM
8830 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
8831 on 64-bit systems where NULL is defined as `0'.
8832
8833 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
8834 the `variable argument list' to make it work on Alpha.
8835
cb9215e4
GM
8836 * m/alpha.h (_LP64) [!_LP64]: Define.
8837 (ORDINARY_LINK): Define for NetBSD.
8838
8839 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 8840
f532dca0
DL
88412000-04-19 Dave Love <fx@gnu.org>
8842
c750667e
DL
8843 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
8844 change.
8845
8846 * Makefile.in (LIBS): Don't use.
8847 (GETLOADAVG_OBJ): Define again.
8848 (otherobj): Add GETLOADAVG_OBJ.
8849
f532dca0
DL
8850 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
8851
1c7e22fd
GM
88522000-04-18 Gerd Moellmann <gerd@gnu.org>
8853
f6d3257b
GM
8854 * lread.c (read_filtered_event): Cancel and start busy cursor.
8855
427ec082 8856 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
8857 that the per-character metrics may be null.
8858
e10f64e7
GM
88592000-04-17 Gerd Moellmann <gerd@gnu.org>
8860
0daee095
GM
8861 * buffer.c (clone_per_buffer_values): New function.
8862 (Fmake_indirect_buffer): Add optional argument CLONE. Call
8863 clone_per_buffer_values if CLONE is not nil.
8864
e10f64e7
GM
8865 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
8866
38687d43
DL
88672000-04-16 Dave Love <fx@gnu.org>
8868
8869 * Makefile.in: Remove obsolete localcpp stuff.
8870 (GETLOADAVG_OBJ): Don't define.
8871 (obj): Move LIBOBJS...
8872 (otherobj): ... to here.
8873 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
8874 whitespace-only lines after the continuation (Irix).
8875
c21c7262
GM
88762000-04-14 Gerd Moellmann <gerd@gnu.org>
8877
8878 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
8879
8880 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
8881
314767c0
DL
88822000-04-14 Dave Love <fx@gnu.org>
8883
8884 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
8885 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
8886 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
8887 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
8888 NLIST_STRUCT.
8889
8890 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
8891 autoconfiscated HAVE_GETLOADAVG.
8892
8893 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
8894 BROKEN_MKTIME.
8895
a2522dca
GM
88962000-04-14 Gerd Moellmann <gerd@gnu.org>
8897
8898 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
8899 (fill_in_lock_file_name): Avoid existing files that aren't
8900 links.
8901
33744b5d
DL
89022000-04-14 Dave Love <fx@gnu.org>
8903
c21c7262 8904 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
8905 (INTERVAL_SRC): Convert to make variable.
8906 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
8907 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
8908 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
8909 add LIBOBJS.
8910 (SOME_MACHINE_OBJECTS): Remove interval stuff.
8911 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
8912 (shortlisp): Add facemenu, float-sup, frame.
8913 (SOME_MACHINE_LISP): Remove them from here.
8914 (LIBES): Change unused LDLIBS to autoconf LIBS.
8915
8916 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
8917
9d3d5916
KH
89182000-04-14 Kenichi Handa <handa@etl.go.jp>
8919
8920 * composite.c (update_compositions): If FROM and TO are not in a
8921 valid range, do nothing.
8922
198e3c7a
GM
89232000-04-13 Gerd Moellmann <gerd@gnu.org>
8924
8925 * tparam.c (tparam1): Abort when encountering an unknown
8926 `%'-specifier.
8927
8928 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
8929 terminfo.o.
8930
8931 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
8932 as TERMCAP_OBJ.
8933
055a28c9
EZ
89342000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
8935
8936 * fileio.c (a_write): Remove redundant semi-colons.
8937 (e_write): Return -1 if failed to write all the data.
8938 This fixes the changes made at 1999-12-15.
8939
f5c75033
DL
89402000-04-12 Dave Love <fx@gnu.org>
8941
8942 * fns.c (mapcar1): Test for null vals to support mapc.
8943 (Fmapc): New function.
8944
0c3cfc51
EZ
89452000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
8946
8947 * msdos.c (NUM_MOUSE_BUTTONS): Define.
8948 (IT_frame_up_to_date): Support the buffer local value of
8949 cursor-type, if defined.
8950
33465a31
DL
89512000-04-10 Dave Love <fx@gnu.org>
8952
8953 * editfns.c (preceding-char, following-char): Doc fix.
8954
6ed56568
KR
89552000-04-10 Ken Raeburn <raeburn@gnu.org>
8956
8957 * Makefile.in (temacs): Revert 2000-03-12 change.
8958
7cf80d4e
JR
89592000-04-10 Jason Rumney <jasonr@gnu.org>
8960
8961 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
8962
34f3f342
GM
89632000-04-10 Gerd Moellmann <gerd@gnu.org>
8964
1a1b1895
GM
8965 * xdisp.c (setup_echo_area_for_printing): Choose an echo
8966 area buffer, if it's not set up yet.
8967
34f3f342
GM
8968 * indent.c (compute_motion): Set immediate_quit.
8969
be0dbdab
GM
89702000-04-09 Gerd Moellmann <gerd@gnu.org>
8971
c45be9ac
GM
8972 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
8973 variable.
8974 (realize_tty_face): Suppress boldness if colors are the inverse of
8975 the default colors, and tty_suppress_bold_inverse_default_colors_p
8976 is set.
8977 (Ftty_suppress_bold_inverse_default_colors): New function.
8978 (syms_of_xfaces): Defsubr it.
8979
be0dbdab
GM
8980 * buffer.c (Frestore_buffer_modified_p): New function.
8981 (syms_of_buffer): Defsubr it.
8982
e8413c3b
KR
89832000-04-08 Ken Raeburn <raeburn@gnu.org>
8984
87f67317
KR
8985 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
8986 charset id (int) argument, not a charset (Lisp_Object).
8987
e8413c3b
KR
8988 * coding.h (code_convert_string): Declare.
8989 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
8990 object, as the fourth argument to code_convert_string.
8991
8992 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
8993 value.
8994 (Fset_fontset_font): Use EQ to compare lisp objects.
8995
7c752c80
KR
89962000-04-05 Ken Raeburn <raeburn@gnu.org>
8997
c0333abc
KR
8998 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
8999 a pointer that looks like a lisp object.
9000 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
9001 zero, instead see whether it's an integer object, since they can't
9002 have intervals.
9003 (GET_INTERVAL_OBJECT): Simply assign to the destination.
9004
7c752c80
KR
9005 * dispnew.c (allocate_matrices_for_frame_redisplay,
9006 direct_output_forward_char): Use X(U)INT and make_number as needed
9007 to convert between (unsigned) int values and lisp integers.
9008 * keyboard.c (read_key_sequence): Likewise.
9009 * lread.c (substitute_object_recurse): Likewise.
9010 * fns.c (concat, hash_lookup, hash_remove): Likewise.
9011 * minibuf.c (do_completion, Fminibuffer_complete_word,
9012 Fminibuffer_completion_help): Likewise.
9013 * term.c (produce_special_glyphs): Likewise.
9014
9015 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
9016 * print.c (print_preprocess, print_object): Likewise.
9017
9018 * search.c (compile_pattern): Use NILP when checking for nil.
9019
74e49b38
KR
9020 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
9021 __OPTIMIZE__]: Provide a GNU C macro version that handles
9022 lisp-object unions.
9023 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
9024 field, to better cope with ENABLE_CHECKING and calls that modify a
9025 Lisp_Object using its old value.
9026
685e5ed2
GM
90272000-04-04 Gerd Moellmann <gerd@gnu.org>
9028
c407c570
GM
9029 * window.c (compare_window_configurations): Signal an error
9030 if parameters C1 or C2 aren't window configurations.
9031
685e5ed2
GM
9032 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
9033 AFTER_POTENTIAL_GC calls around calls to functions that can
9034 signal an error and thus invoke the debugger.
9035
587a49ab
GM
90362000-04-03 Gerd Moellmann <gerd@gnu.org>
9037
62f20204
GM
9038 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
9039 an error if decoding fails.
9040
587a49ab
GM
9041 * keyboard.c (lispy_mouse_names): Variable removed.
9042 (Vlispy_mouse_stem): New variable.
9043 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
9044 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
9045 for any mouse button number. Increase size of mouse_syms and
9046 button_down_location as needed. Call modify_event_symbol with
9047 different arguments.
9048 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
9049 Call modify_event_symbol with different arguments.
9050 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
9051 for any button number. Call modify_event_symbol with different
9052 arguments.
9053 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
9054 Accept a string for NAME_ALIST_OR_STEM.
9055
9056 * lisp.h (larger_vector): Add prototype.
9057
9058 * fns.c (larger_vector): Make externally visible.
9059
9060 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
9061
2d1675e4
SM
90622000-04-02 Stefan Monnier <monnier@cs.yale.edu>
9063
9064 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
9065 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
9066 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
9067 we are between str1 and str2.
9068 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
9069 (PATFETCH): Use `TRANSLATE'.
9070 (PATFETCH_RAW): Fetch multibyte char if applicable.
9071 (PATUNFETCH): Remove.
9072 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
9073 When writing a char, write it directly into the pattern buffer rather
9074 than going needlessly through a temp char-array.
9075 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
9076 multibyte magic and remove the useless `#ifdef emacs'.
9077 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
9078 buffer.
9079
9080 * regex.h (struct re_pattern_buffer): Make field `multibyte'
9081 conditional on `emacs'.
9082
9083 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
9084
cc2d8c6b
KR
90852000-04-01 Ken Raeburn <raeburn@gnu.org>
9086
9087 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
9088 non-union-type versions of XMARK and friends here, because XMARK
9089 and friends won't work on an integer field if NO_UNION_TYPE is not
9090 defined.
9091 (make_number): Define as a function if it's not defined as a
9092 macro.
9093
09654086
KR
9094 * composite.c (run_composite_function): Use NILP when checking for
9095 nil.
9096 (syms_of_composite): Delete local var NARGS, pass an int as first
9097 argument to Fmake_hash_table.
9098
2387b382
KR
9099 * editfns.c (text_property_stickiness): Use NILP to test
9100 Lisp_Object boolean value.
9101 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
9102 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
9103 problems reading from and changing the same lisp value in an
9104 XSETSTRING call.
9105
27660e89
GM
91062000-04-01 Gerd Moellmann <gerd@gnu.org>
9107
9108 * term.c (TN_no_color_video): New variable.
9109 (term_init): Intitialize TN_no_color_video.
9110 (enum no_color_bit): New enumeration.
9111 (MAY_USE_WITH_COLORS_P): New macro.
9112 (turn_on_face): Use it to determine if attributes may be used
9113 combined with colors.
9114
3578db3c
KR
91152000-04-01 Ken Raeburn <raeburn@gnu.org>
9116
9117 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
9118 with int lvalues via casts; instead, just yield lisp object
9119 lvalues.
9120 (enlarge_window): Variable sizep now points to Lisp_Object. Use
9121 proper accessor macros.
9122 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
9123 (grow_mini_window): Fix typo getting int value of root->height.
9124
6fc556fd
KR
9125 * xdisp.c (compute_string_pos): Fix order of arguments to
9126 string_pos_nchars_ahead.
9127 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
9128 count arg to variable-arg routines like Frun_hook_with_args and
9129 Fformat.
587a49ab
GM
9130 (back_to_previous_visible_line_start)
9131 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
9132 fixed-arg routines like Fget_char_property and Fmake_string.
9133 (reconsider_clip_changes): Use XINT when comparing integer lisp
9134 objects, or passing them as int arguments.
587a49ab
GM
9135 (mark_window_display_accurate, insert_left_trunc_glyphs)
9136 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
9137 storing or passing integer values as lisp objects.
9138 (set_cursor_from_row, highlight_trailing_whitespace): Use
9139 INTEGERP, not implicit test against zero, for glyph object.
9140 (try_window_id): Don't use make_number when we want an int value.
9141
9142 * xfaces.c (xlfd_symbolic_value): Make last argument a
9143 Lisp_Object, to be consistent with callers.
9144 (Fbitmap_spec_p): Use XINT to get numeric value of height.
9145 (lface_hash): Apply XFASTINT to lisp values before folding in.
9146
9147 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
9148 fill in window width and height. Pass an int, not a lisp object,
9149 as first arg to Finsert.
9150
6e7b2457
GM
91512000-04-01 Gerd Moellmann <gerd@gnu.org>
9152
610d841e
GM
9153 * xfaces.c (realize_basic_faces): Block input while realizing
9154 the faces.
9155
6e7b2457
GM
9156 * keyboard.c (lispy_mouse_names): Add additional mouse names.
9157
9158 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
9159
aa110c0c
GM
91602000-03-31 Gerd Moellmann <gerd@gnu.org>
9161
9162 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 9163 or ASCII, handle case that per-char metric is null.
aa110c0c 9164
8801a864
KR
91652000-03-30 Ken Raeburn <raeburn@gnu.org>
9166
c6129d7e
KR
9167 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
9168
8801a864
KR
9169 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
9170 XSUBR, XBUFFER): Verify correct object type before returning
9171 pointer, using eassert.
9172 * frame.h (XFRAME): Likewise.
9173
9174 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
9175 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
9176 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
9177 type.
9178 * data.c (set_internal): Likewise.
9179 * dispextern.h (WINDOW_WANTS_MODELINE_P,
9180 WINDOW_WANTS_HEADER_LINE_P): Likewise.
9181 * fileio.c (auto_save_1): Likewise.
9182 * insdel.c (check_markers): Likewise.
9183 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
9184 * undo.c (record_insert): Likewise.
9185 * vmsproc.c (child_sig): Likewise.
9186 * window.c (unshow_buffer, window_loop): Likewise.
9187 * xterm.c (x_erase_phys_cursor): Likewise.
9188
8e7af858
GM
91892000-03-30 Gerd Moellmann <gerd@gnu.org>
9190
9191 * xfns.c (free_image_cache): Free the cache structure itself
9192 last, after all its members have been freed.
9193
9194 * lisp.h (xstrdup): Add prototype.
9195
9196 * alloc.c (xstrdup): Moved here from xfaces.c.
9197 (allocating_for_lisp): Variable removed.
9198 (lisp_malloc): Block input around the calls to malloc and
9199 mem_insert.
9200
9201 * xfaces.c (realize_tty_face): Use find_symbol_value instead
9202 of Fsymbol_value.
9203 (xstrdup): Moved to alloc.c.
9204
e0b8c689
KR
92052000-03-29 Ken Raeburn <raeburn@gnu.org>
9206
b96f9fb7
KR
9207 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
9208
9209 * emacs.c (main): Fix sense of no-loadup test.
9210
e0b8c689
KR
9211 * config.in (ENABLE_CHECKING): Undef.
9212
9213 * lisp.h (struct interval): Replace "parent" field with a union of
9214 interval pointer and Lisp_Object; add new bitfield to use as
9215 discriminant. Change other flag fields to bitfields.
9216 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
9217 is defined and the supplied test fails, print a message and
9218 abort.
9219 (eassert): New macro. Use CHECK to provide an assert-like
9220 facility.
9221
9222 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
9223 pointers; abort if the value looks like a lisp object.
9224 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
9225 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
9226 Modify for new interval parent definition.
9227
9228 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
9229 UNMARK_BALANCE_INTERVALS): Update references that need an
9230 addressable lisp object in the interval structure.
9231 (die): New function.
9232 (suppress_checking): New variable.
9233
9234 * intervals.c (interval_start_pos): Just return 0 if there's no
9235 parent object.
9236
f83c5440
GM
92372000-03-29 Gerd Moellmann <gerd@gnu.org>
9238
9239 * lread.c (read1): Accept `.' (period) as symbol start like in CL
9240 and earlier Emacs versions.
9241
9242 * keyboard.c (Ftop_level): Cancel busy-cursor.
9243
9244 * eval.c (call_debugger): Cancel busy-cursor.
9245
fdce64ff
KH
92462000-03-29 Kenichi Handa <handa@etl.go.jp>
9247
9248 * search.c (Freplace_match): Adjust multibyteness of the current
9249 buffer and NEWTEXT. Free allocated memory before signaling an
9250 error.
9251
f6a3f532
SM
92522000-03-28 Stefan Monnier <monnier@cs.yale.edu>
9253
9254 * regex.c (analyse_first): New function obtained by ripping out most
9255 of re_compile_fastmap and generalizing it a little bit so that it
9256 can also just return whether a given (sub)pattern can match the empty
9257 string or not.
9258 (regex_compile): Use `analyse_first' to decide whether the loop-check
9259 needs to be done or not for *, +, *? and +? (the loop check is costly
9260 for non-greedy repetition).
9261 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
9262
e9b309ac
DL
92632000-03-28 Dave Love <fx@gnu.org>
9264
bb15bd9a
DL
9265 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
9266 alpha.
9267
e9b309ac
DL
9268 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
9269
ed0767d8
SM
92702000-03-27 Stefan Monnier <monnier@cs.yale.edu>
9271
9272 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
9273 an expression.
9274 (enum re_opcode_t): Update description of succeed_n.
9275 (PATFETCH): Always define.
9276 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
9277 operators, char classes, shy-groups and intervals).
9278 Optimize special cases of intervals so as to only use succeed_n and
9279 jump_n when really needed.
9280 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
9281 that we don't have to handle the special cases any more.
9282 Simplify on_failure_jump handling as well.
9283
e11e7e46
JR
92842000-03-28 Jason Rumney <jasonr@gnu.org>
9285
9286 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
9287
88faab89
GM
92882000-03-27 Gerd Moellmann <gerd@gnu.org>
9289
182ff242
GM
9290 * s/freebsd.h (GC_SETJMP_WORKS): Define.
9291
9292 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 9293
182ff242
GM
9294 * alloc.c (mark_maybe_object): New function.
9295 (mark_memory): Use it.
9296 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
9297 (setjmp_tested_p, longjmp_done): New variables.
9298 (test_setjmp): New function.
9299 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
9300 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
9301
c1005d06
GM
9302 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
9303 to DEC_TEXT_POS and INC_TEXT_POS.
9304
9305 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
9306 with parameter MULTIBYTE_P.
9307
427ec082 9308 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
9309 MULTIBYTE_P.
9310
7439e5b9 9311 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
9312 buffers because it looks for multibyte character byte sequences
9313 which don't exist in unibyte text.
7439e5b9 9314
d9c545da
GM
9315 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
9316
11fd416e 9317 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
9318 [DEBUG_X_COLORS]: New functions.
9319 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
9320
9321 * xfns.c (x_set_cursor_color): Get color reference counts right.
9322
9323 * xterm.c (x_copy_color): New function.
9324 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
9325
9326 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
9327 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
9328 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
9329 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
9330 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
9331 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
9332 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
9333 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
9334 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
9335 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
9336
11fd416e
GM
9337 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
9338 names for handling per-buffer variables.
d9c545da
GM
9339
9340 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
9341 instead of MAX_BUFFER_LOCAL_VARS.
9342 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
9343
9344 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
9345
88faab89
GM
9346 * xfns.c (x_specified_cursor_type): New function.
9347 (x_set_cursor_type): Use it.
9348
9349 * buffer.h (struct buffer): Add cursor_type.
9350
d80f42b7
SM
93512000-03-26 Stefan Monnier <monnier@cs.yale.edu>
9352
9353 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 9354 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 9355 opcode.
d80f42b7
SM
9356 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
9357 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
9358 executing it as well as when popping it off the stack to find infinite
9359 loops in non-greedy repetition operators.
9360
89e80928
GM
93612000-03-26 Gerd Moellmann <gerd@gnu.org>
9362
3d4ff2dd
GM
9363 * doc.c (Qfunction_documentation): New variable.
9364 (syms_of_doc): Initialize Qfunction_documentation.
9365 (Fdocumentation): If FUNCTION is a symbol with non-nil
9366 `function-documentation' property, return a documentation derived
9367 from that.
9368
bd96bd79
GM
9369 * buffer.c (syms_of_buffer): Add default-cursor-type.
9370 (init_buffer_once): Don't let cursor_type have a local value
9371 in every buffer.
9372
19d1bc27
GM
9373 * xterm.c (x_display_and_set_cursor): Choose cursor depending
9374 on buffer-local value of cursor_type.
9375 (x_draw_bar_cursor): Add parameter WIDTH.
9376
9377 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
9378 (init_buffer_once): Set default cursor_type value to t.
9379 Mark cursor_type as local everywhere.
9380 (syms_of_buffer): New per-buffer variable cursor-type.
9381
89e80928
GM
9382 * buffer.h (struct buffer): Remove member local_var_flags,
9383 add local_flags.
9384 (MAX_BUFFER_LOCAL_VARS): New macro.
9385 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
9386 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
9387 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
9388 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
9389
9390 * print.c (print_object): Use new macros for per-buffer
9391 variables.
9392
9393 * category.c (Fset_category_table): Use new macros for per-buffer
9394 variables.
9395
9396 * buffer.c (buffer_permanent_local_flags): Make a char array.
9397 (max_buffer_local_idx): New variable.
9398 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
9399 for new handling of per-buffer variables.
9400 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
9401 (init_buffer_once): Initialize per-buffer vars differently.
9402 Set max_buffer_local_idx.
9403
9404 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
9405 variables.
9406
9407 * lread.c (defvar_per_buffer): Use new macros for per-buffer
9408 variables.
9409
9410 * data.c (do_symval_forwarding, store_symval_forwarding)
9411 (find_symbol_value, set_internal, default_value, Fset_default)
9412 (Fkill_local_variable, Flocal_variable_p): Use new macros for
9413 per-buffer variables.
9414
9415 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
9416
9a0dd3dc
GM
94172000-03-24 Gerd Moellmann <gerd@gnu.org>
9418
b68c375f
GM
9419 * xterm.c (x_term_init): Unblock input around call1 of
9420 Qvendor_specific_keysyms.
9421
9a0dd3dc
GM
9422 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
9423 (find_defun_start): Consider an open parenthesis in column 0
9424 a defun start only if open_paren_in_column_0_is_defun_start is set.
9425 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
9426
7973e637
SM
94272000-03-24 Stefan Monnier <monnier@cs.yale.edu>
9428
9429 * eval.c (Fautoload): Add entry in load-history (if after dump).
9430 * lread.c (load-history): Update docstring.
9431
39210e90
GM
94322000-03-24 Gerd Moellmann <gerd@gnu.org>
9433
9434 * indent.c (Fvertical_motion): Always use the current buffer.
9435 Temporarily change the window's buffer, if necessary.
9436
72db3ab5
GM
94372000-03-23 Gerd Moellmann <gerd@gnu.org>
9438
9439 * xterm.c (fast_find_position): Make sure not to consider rows
9440 not visible in the window.
9441
990b2375
SM
94422000-03-22 Stefan Monnier <monnier@cs.yale.edu>
9443
9444 * regex.c (enum syntaxcode): Provide default for non-Emacs.
9445 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
9446
ff4df011
JR
94472000-03-22 Jason Rumney <jasonr@gnu.org>
9448
9449 * w32menu.c (single_submenu): Set help string to NULL if none.
9450 (w32_menu_show): Set help string correctly.
9451 (add-menu-item): Set help string in MIIM_DATA for menu item.
9452 Load SetMenuItemInfoA explicitly.
9453 (w32_menu_display_help): New function.
427ec082 9454
ff4df011
JR
9455 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
9456 (QCdata): Moved to xdisp.c.
9457
9458 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
9459 (Vw32_charset_to_codepage_alist): Removed.
9460 (Vw32_charset_info_alist): New variable.
9461 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
9462 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
9463 greek, hebrew, thai, johab, mac, unicode]): New symbols.
9464 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
9465 with TODO comment.
9466 (w32_codepage_for_font): Use Vw32_charset_info_alist.
9467 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
9468 Define Vw32_charset_info_alist and w32_charset symbols.
9469
94702000-03-22 Jason Rumney <jasonr@gnu.org>
9471
9472 * makefile.nt (w32bdf.obj): Update dependencies.
9473
9474 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
9475
9476 * w32fns.c: Include fontset.h after dispextern.h.
9477 (Fx_create_frame): Do not create fontset.
9478 (w32_load_system_font): Doc fix.
9479 (Fx_close_connection): Free full_name if it is not shared.
9480
9481 * w32term.c: Include fontset.h after dispextern.h.
9482 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
9483 updated.
9484 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
9485 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
9486 (w32_font_is_double_byte): New function, needs body.
9487 (x_append_glyph): Set glyph->glyph_not_available_p.
9488 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
9489 it->charset. If it->multibyte_p is zero and it->c is a multibyte
9490 character, convert it to a unibyte character.
9491 (struct glyph_string): Delete member `charset'.
9492 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
9493 calculating it is found.
9494 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
9495 the case that per char metric is not available correctly.
9496 (x_fill_glyph_string): Handle the case that the specific glyph is
9497 not available correctly.
9498 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
9499 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
9500 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
9501 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
9502 fontset. Don't call FS_LOAD_FONT.
9503
439d5cb4
KR
95042000-03-22 Ken Raeburn <raeburn@gnu.org>
9505
9506 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
9507 (INT_LISPLIKE): New macro.
9508 (NULL_INTERVAL_P): Use it.
9509 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
9510 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
9511 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
9512
9513 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
9514 explicit references to "parent" field of struct interval and
9515 associated unclean type conversions.
9516 * intervals.c (create_root_interval, root_interval, rotate_right,
9517 rotate_left, balance_possible_root_interval, split_interval_right,
9518 split_interval_left, interval_start_pos, find_interval,
9519 next_interval, previous_interval, update_interval,
9520 adjust_intervals_for_insertion, delete_node, delete_interval,
9521 adjust_intervals_for_deletion, merge_interval_right,
9522 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
9523 copy_intervals_to_string): Likewise.
9524 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
9525 Likewise.
9526 * syntax.c (update_syntax_table): Likewise.
9527
9528 * intervals.c (reproduce_tree_obj): New function, like
9529 reproduce_tree but takes a Lisp_Object for the parent. Declare
9530 with prototype.
9531 (graft_intervals_into_buffer): Use it when appropriate.
9532 (reproduce_tree): Declare with prototype.
9533 (balance_possible_root_interval): Check that the parent is a lisp
9534 object before trying to examine its type.
9535
ee1c5b21
GM
95362000-03-22 Gerd Moellmann <gerd@gnu.org>
9537
9538 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
9539 as strings only if both are known to be strings.
9540
9541 * s/openbsd.h (LIBS_TERMCAP): Undef.
9542
1fb352e0
SM
95432000-03-21 Stefan Monnier <monnier@cs.yale.edu>
9544
9545 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
9546 definitions for non-Emacs compilation.
9547 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
9548 outside of `#ifdef emacs'.
9549 (print_partial_compiled_pattern): Update.
9550 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
9551 (re_compile_fastmap): Merge handling of charset and charset_not (for
9552 emacs and non-emacs compilation as well).
9553 Similarly for (not)categoryspec and (not)syntaxspec.
9554 Don't use the fastmap when reaching `anychar' since the added
9555 complexity is not justified.
9556 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
9557 and (not)syntaxspec. Merge (not)categoryspec.
9558
fdaa1f77
KH
95592000-03-22 Kenichi Handa <handa@etl.go.jp>
9560
ff1a0d8e
KH
9561 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
9562 FACE_FOR_CHAR): Define them differently for the configuration of
9563 --without-x.
fdaa1f77 9564
d152fb46
DL
95652000-03-21 Dave Love <fx@gnu.org>
9566
9567 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
9568 doc string.
9569
d2cafc8c
GM
95702000-03-21 Gerd Moellmann <gerd@gnu.org>
9571
9572 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
9573 (lface_fully_specified_p): Don't check contents of
9574 LFACE_FONT_INDEX because that attribute is optional.
9575 (realize_x_face): Remove now unwarranted xassert.
9576
9111d4b5
KH
95772000-03-21 Kenichi HANDA <handa@etl.go.jp>
9578
9579 The following changes are to make font selection based on
9580 characters, not charset. In addition, they recover fontset
9581 facilities while utilizing the new font selection mechanism.
9582
6c4bfdc0
KH
9583 * Makefile.in (fontset.o): Depend on dispextern.h.
9584
9585 * alloc.c (mark_face_cache): Don't mark face->registry.
9586
9111d4b5
KH
9587 * dispextern.h (struct glyph): New member glyph_not_available_p.
9588 Use 22 bits for face_id.
9589 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
9590 (struct face): Delete member registry, new member ascii_face.
9591 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
9592 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
9593 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
9594 (struct it): Delete member charset, new member
9595 glyph_not_available_p.
9596
9597 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
9598 (struct fontset_info, struct fontset_data): Structs removed.
9599 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
9600 Vglobale_fontset_alist, font_idx_temp): Externs removed.
9601 (fs_load_font, fs_query_fontset): Adjusted for new argument.
9602 (fs_free_face_fontset, fontset_font_pattern,
9603 face_suitable_for_char_p, face_for_char,
9604 make_fontset_for_ascii_face): Extern them.
9605 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
9606 (FS_LOAD_FACE_FONT): New macro.
9607
9608 * fontset.c: All codes rewritten or adjusted for the change of
9609 fontset implementation. Now fontset is represented by char table.
9610 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
9611 removed.
9612 (my_strcasecmp): Function removed.
9613 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
9614 variables.
9615 (AREF, ASIZE): New macros.
9616 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
9617 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
9618 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
9619 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
9620 fontset_id_valid_p, font_family_registry, fontset_name,
9621 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
9622 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
9623 New functions.
9624 (fs_load_font): New arg FACE. Caller changed.
9625 (fs_query_fontset): Argument changed. Caller changed.
9626 (Fquery_fontset): call fs_query_fontset.
9627 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
9628 Functions removed.
9629 (clear_fontset_elements, check_registry_encoding,
9630 check_fontset_name): New functions.
9631 (syms_of_fontset): Set char-table-extra-slots property of fontset
9632 to 3. Staticpro and initialize Vfontset_table and
9633 Vdefault_fontset. Defsubr fontset_font and fontset_list.
9634
9635 * frame.h (struct frame): Member `fontset_data' removed.
9636 (FRAME_FONTSET_DATA): Macro removed.
9637
9638 * frame.c (make_frame): Don't allocate f->fontset_data.
9639 (Fdelete_frame): Don't free f->fontset_data.
9640
6c4bfdc0
KH
9641 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
9642
9111d4b5
KH
9643 * xdisp.c (charset_at_position): Function removed.
9644 (init_iterator): Don't set member charset of struct `it'.
9645 (handle_face_prop, reseat_to_string, set_iterator_to_next,
9646 next_element_from_display_vector, insert_left_trunc_glyphs):
9647 Likewise.
9648 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
9649 FACE_FOR_CHARSET.
9650 (get_next_display_element, append_space,
9651 extend_face_to_end_of_line): Likewise.
9652
9653 * xfaces.c (Qx_charset_registry, Vface_default_registry):
9654 Variables removed.
9655 (clear_font_table, frame_update_line_height, load_face_font):
9656 Adjusted for the change of fontset implementation.
9657 (load_face_fontset_font): Function removed.
9658 (pixel_point_size): New function.
9659 (font_list): Argument type changed. Caller changed.
9660 (LFACE_FONT): New macro.
9661 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
9662 (set_lface_from_font_name): Type of arg FONTNAME is changed to
9663 Lisp_Object. Determine the font name by actually loading a font
9664 by the specified pattern. Set LFACE_FONT (lface) to the specified
9665 pattern. Even if a font is not found, don't try alternatives.
9666 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
9667 (set_font_frame_param): If `font' is specified in lface, use it.
9668 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
9669 (lface_same_font_attributes_p): Likewise.
9670 (make_realized_face): Arguent changed. Caller changed. Set
9671 face->ascii_face to face itself.
9672 (free_realized_face): Free face->fontset if face is for ASCII.
9673 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
9674 deduce_unibyte_registry, x_charset_registry): Functions removed.
9675 (free_realized_multibyte_face): New function.
9676 (lookup_face, lookup_named_face, lookup_derived_face): Argument
9677 changed. Caller changed.
9678 (try_font_list): Argument type changed.
9679 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
9680 (choose_face_font): Argument changed. Handle fontset properly.
9681 (choose_face_fontset_font): Function removed.
9682 (realize_default_face, realize_named_face): Don't remove the
9683 former face here.
9684 (realize_face): Argument changed. Caller changed. Remove face
9685 with the arg former_face_id in advance. Load font for the new
9686 face.
9687 (realize_x_face): Argument changed. Caller changed. For a
9688 multibyte character, share fontset with base_face. For a single
9689 byte character, make a new realized fontset. Don't load a font
9690 here.
9691 (realize_tty_face): Argument changed. Caller changed.
9692 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
9693 (face_at_buffer_position): Don't check multibyte_p for returning
9694 DEFAULT_FACE_ID.
9695 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
9696 FACE_SUITABLE_FOR_CHARSET_P.
9697 (syms_of_xfaces): Remove code for Qx_charset_registry and
9698 Vface_default_registry.
9699
6c4bfdc0
KH
9700 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
9701 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
9702 (x_per_char_metric): Don't try FONT->default_char. Even if
9703 pcm->width is zero, glyph bits may exist.
9704 (x_encode_char): Always initialize char2b->byte1.
9705 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
9706 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
9707 changed.
9708 (x_append_glyph): Set glyph->glyph_not_available_p.
9709 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
9710 it->charset. Handle the case that per char metric is not
9711 available. If it->multibyte_p is zero and it->c is a multibyte
9712 character, convert it to a unibyte character.
9713 (struct glyph_string): Delete member `charset'.
9714 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
9715 the case that per char metric is not available correctly.
9716 (x_fill_glyph_string): Handle the case that the specific glyph is
9717 not available correctly.
9718 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
9719 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
9720 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
9721 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
9722 fontset. Don't call FS_LOAD_FONT.
9723
9724 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
9725 (x_create_tip_frame): Likewise.
9726 (Fx_close_connection): Free full_name of font_info.
9727
9728 * fns.c (optimize_sub_char_table): New function.
9729 (Foptimize_char_table): New function.
9730 (syms_of_fns): Defsubr Soptimize_char_table.
9731
b33dd3b0
GM
97322000-03-20 Gerd Moellmann <gerd@gnu.org>
9733
9734 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
9735 only if buffer is displayed in some window.
9736
9737 * xdisp.c (handle_single_display_prop): Initialize local `value'.
9738 (try_window_reusing_current_matrix): Don't call scroll run
9739 function if run's current and desired position are the same;
9740 this prevents cursor flickering.
9741
4e8a9132
SM
97422000-03-19 Stefan Monnier <monnier@cs.yale.edu>
9743
9744 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
9745
9746 * regex.c (RE_STRING_CHAR): New macro.
9747 (GET_CHAR_AFER_2): Remove.
9748 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
9749 (enum re_opcode_t): Remove on_failure_jump_exclusive.
9750 (print_partial_compiled_pattern, re_compile_fastmap)
9751 (re_match_2_internal): Remove on_failure_jump_exclusive.
9752 (regex_compile): Turn optimizable P+ loops into PP*, so that the
9753 optimization only need to work for * (ie. can use of_keep_string_jump).
9754 Remove the special case for .*\n since it is now covered by the general
9755 optimization.
9756 (re_search_2): Don't bother with `room'.
9757 (skip_one_char): New function.
9758 (skip_noops): Simplify since `memory' is not needed any more.
9759 (mutually_exclusive_p): Restructure slightly to use `switch' and
9760 add handling for "all" remaining cases.
9761 (re_match_2_internal): Change on_failure_jump_smart to use
9762 on_failure_keep_string_jump (and redirect the end-of-loop jump)
9763 rather than on_failure_jump_exclusive.
9764
2136fdd4
GM
97652000-03-19 Gerd Moellmann <gerd@gnu.org>
9766
9767 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
9768 number of bits per RGB because it's everywhere used as the depth
9769 of the visual.
9770
9771 * term.c (calculate_costs): Remove code dealing with X frames.
9772
18e21ce8 97732000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
9774
9775 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
9776
d7b511c4
GM
97772000-03-18 Gerd Moellmann <gerd@gnu.org>
9778
9779 * lread.c (read_integer): Unread the last char not consumed.
9780
16b5d424
GM
97812000-03-17 Gerd Moellmann <gerd@gnu.org>
9782
9783 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 9784 which are in the process of being deleted.
16b5d424 9785
1fa28578
GM
97862000-03-16 Gerd Moellmann <gerd@gnu.org>
9787
83488cce
GM
9788 * Makefile.in (mostlyclean): Add `*.core'.
9789 (clean): Add `bootstrap-emacs'.
9790
1fa28578
GM
9791 * lread.c (read_integer): New function.
9792 (read1): Support read syntax #o, #x, #b, #r.
9793
99633e97
SM
97942000-03-15 Stefan Monnier <monnier@cs.yale.edu>
9795
1fa28578
GM
9796 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
9797 make sure POINTER_TO_OFFSET gives the same value before and after
9798 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
9799 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
9800 (debug): Now only active if > 0 rather than if != 0.
9801 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
9802 (print_partial_compiled_pattern): Add missing `succeed' case. Use
9803 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
9804 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
9805 (store_op1, store_op2, insert_op1, insert_op2)
9806 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
9807 (group_in_compile_stack): Move to after its arg's types are
9808 declared and add a prototype.
99633e97 9809 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
9810 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
9811 wrapper.
99633e97 9812 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
9813 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
9814 indentation of the greedy-op and shy-group code.
99633e97
SM
9815 (at_(beg|end)line_loc_p): Fix argument's types.
9816 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
9817 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
9818 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
9819 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
9820 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
9821 QUIT unconditionally.
99633e97 9822
699238d9
GM
98232000-03-15 Gerd Moellmann <gerd@gnu.org>
9824
9825 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
9826 a sole completion.
9827
9828 * process.c (send_process): Add a hint that the function
9829 can call Lisp code to its comment.
9830
9831 * lread.c (load_dangerous_libraries): New variable.
9832 (Vbytecomp_version_regexp): New variable.
9833 (safe_to_load_p): New function.
9834 (Fload): Handle files not compiled with Emacs specially.
9835 (syms_of_lread): New Lisp variable load-dangerous-libraries.
9836
34e23e5a
GM
98372000-03-14 Gerd Moellmann <gerd@gnu.org>
9838
9c763cca
GM
9839 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
9840
9841 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
9842 support functions only if HAVE_X11R6_XIM is defined.
9843 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
9844
9845 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
9846
9847 * xfns.c (X_I18N_INHIBITED): Don't define.
9848 (create_frame_xic): Remove conditional compilation on
9849 X_I18N_INHIBITED.
9850 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
9851
9852 * config.in (HAVE_X_I18N): Moved here from xterm.h.
9853 (HAVE_X11R6_XIM): Define.
9854
9855 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
9856
34e23e5a
GM
9857 * xterm.c (x_term_init): Add support for X resource `synchronous'.
9858 If set, call XSynchronize.
9859
66f0296e
SM
98602000-03-13 Stefan Monnier <monnier@cs.yale.edu>
9861
34e23e5a
GM
9862 * regex.c: Declare a new type `re_char' used throughout the code
9863 for the string char type. It's `const unsigned char' to match the
9864 rest of Emacs. Consistently make sure all pointers to strings use
9865 it and make sure all pointers into the pattern use `unsigned
9866 char'.
66f0296e 9867 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
9868 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
9869 code duplication.
66f0296e
SM
9870
9871 * charset.h (GET_CHAR_AFTER_2): Remove.
9872 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
9873
854a025c
KR
98742000-03-12 Ken Raeburn <raeburn@gnu.org>
9875
9876 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
9877 variable before the invocation of YMF_PASS_LDFLAGS, in case both
9878 of them try to use backquotes.
9879
b9d2c7e2
DL
98802000-03-12 Dave Love <fx@gnu.org>
9881
9882 * unexelf.c: Restore changes of 1999-10-19.
9883 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
9884 fix its type and alignment; copy it from current process.
9885
5e5dff44
GM
98862000-03-12 Gerd Moellmann <gerd@gnu.org>
9887
9b2f3c38
GM
9888 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
9889 has been found. Fix bug not computing timer's predecessor.
9890
427ec082 9891 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
9892 file name.
9893
e1cff360
GM
9894 * window.c (Fsave_window_excursion): Doc fix.
9895
5e5dff44
GM
9896 * xfns.c (x_defined_color): Rewritten to use
9897 x_allocate_nearest_color.
9898
e411ce4b
EZ
98992000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
9900
9901 * msdos.c (vga_installed): New function, code moved from
9902 dos_set_window_size.
9903 (Qbar, Qcursor_type, outside_cursor): New variables.
9904 (syms_of_msdos): Intern and staticpro them.
9905 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
9906 shape used outside Emacs when called for the first time.
9907 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
9908 cursor shape used outside Emacs.
9909 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
9910 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
9911 type has changed.
9912 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
9913 parameters specify the cursor. Make qreverse a global
9914 variable (renamed to Qreverse).
9915
80460654
GM
99162000-03-09 Gerd Moellmann <gerd@gnu.org>
9917
9918 * fns.c (Fy_or_n_p): Cancel busy-cursor.
9919
95cd4c40
SM
99202000-03-08 Stefan Monnier <monnier@cs.yale.edu>
9921
9922 This is a big redesign of failure-stack and register handling, prompted
9923 by bugs revealed when trying to add shy-groups. Overall, what happened
9924 is that loops are now structured a little differently, groups can be
9925 shy and the code is a little simpler.
9926
9927 * regex.h: Update the copyright.
9928 (RE_SHY_GROUPS): New value.
9929 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
9930 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
9931
80460654
GM
9932 * regex.c (enum re_opcode_t): Remove jump_past_alt,
9933 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
9934 on_failure_jump_(exclusive, loop and smart). Also fix the comment
9935 for (start|stop)_memory since they now only take one argument (the
9936 second has becomes unnecessary).
9937 (print_partial_compiled_pattern): Adjust for changes in
9938 re_opcode_t.
9939 (print_compiled_pattern): Use %ld to printf long ints and flush to
9940 make debugging a little easier.
95cd4c40
SM
9941 (union fail_stack_elt): Make the integer unsigned.
9942 (struct fail_stack_type): Add a `frame' element.
9943 (INIT_FAIL_STACK): Init `frame' as well.
9944 (POP_PATTERN_OP): New macro for re_compile_fastmap.
9945 (DEBUG_PUSH, DEBUG_POP): Remove.
9946 (NUM_REG_ITEMS): Remove.
9947 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
9948 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
9949 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 9950 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
9951 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
9952 macros.
9953 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
9954 address pushed is not the destination of the jump but the source
9955 of it instead.
95cd4c40
SM
9956 (NUM_FAILURE_ITEMS): Remove.
9957 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
9958 registers before the actual failure point). Don't hardcode any
9959 meaning for str==NULL anymore.
95cd4c40 9960 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
9961 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
9962 Remove.
95cd4c40
SM
9963 (REG_UNSET_VALUE): Use NULL (why not?).
9964 (compile_range): Remove declaration since it doesn't exist.
9965 (struct compile_stack_elt_t): Remove inner_group_offset.
9966 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
9967 (regex_grow_registers): Remove dead code.
9968 (FIXUP_ALT_JUMP): New macro.
80460654
GM
9969 (regex_compile): Add shy-groups Change loops to use
9970 on_failure_jump_smart&jump instead of
9971 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
9972 initial (dummy_failure_)jump. Remove c1_base (looks like unused
9973 variable to me). Use `jump' instead of `jump_past_alt' and don't
9974 bother with push_dummy_failure in alternatives since it is now
9975 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
9976 emacs' for (re)allocating the stack.
9977 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
9978 from loop when bufp->can_be_null rather than jumping to `done'.
9979 Avoid jumping backwards so as to ensure termination. Use
9980 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
9981 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 9982 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
9983 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
9984 improve mutually_exclusive_p to handle ".+\n".
9985 (lowest_active_reg, highest_active_reg,
9986 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
9987 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
9988 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
9989 variables. Push register (in `start_memory') on the stack rather
9990 than storing it in old_reg(start|end). Remove the cycle detection
9991 from `stop_memory', replaced by the use of on_failure_jump_loop
9992 for greedy loops. Add code for the new on_failure_jump_<foo>.
9993 Remove ad-hoc code in `on_failure_jump' to push more registers in
9994 the case of a loop. Take out code from `maybe_pop_jump' into
9995 separate functions and adapt it to the semantics of
9996 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
9997 and push_dummy_failure. Remove dummy_failure handling and
9998 handling of `failures to jump to on_failure_jump' (this last one
9999 was already dead code, it seems).
10000 (group_match_null_string_p, alt_match_null_string_p)
10001 (common_op_match_null_string_p): Remove.
95cd4c40 10002
7397acc4
DL
100032000-03-08 Dave Love <fx@gnu.org>
10004
10005 * config.in: Don't depend on __STDC__ for volatile.
10006 Add POINTER_TYPE, PTR, PROTOTYPES.
10007
10008 * hftctl.c, strftime.c: Use PROTOTYPES.
10009 * eval.c (find_handler_clause): Likewise.
10010
10011 * mem-limits.h: Use POINTER_TYPE.
10012
10013 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
10014 (memory_warnings): Declare using POINTER_TYPE.
10015
5e91ff9e
GM
100162000-03-08 Gerd Moellmann <gerd@gnu.org>
10017
feab4fba
GM
10018 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
10019
25edb08f
GM
10020 * xdisp.c (display_echo_area): Temporarily inhibit garbage
10021 collection.
10022
5e91ff9e
GM
10023 * xfns.c: Remove obsolete code in #if 0.
10024 (Fx_focus_frame): New function.
10025
a735b7e1
KH
100262000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
10027
10028 * coding.c (coding_category_name): Add coding-category-utf-8,
10029 coding-category-utf-16-be, coding-category-utf-16-le.
10030 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
10031 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
10032 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
10033 (detect_coding_utf_8): New function.
10034 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
10035 UTF_16_LOW_SURROGATE_P): New macros.
10036 (detect_coding_utf_16): New function
10037 (detect_coding_mask): When priorities are specified, skip any
10038 categories that have `nil' coding-system. Fix bug of returning
10039 wrong mask when PRIORITIES is specified and detect_coding_XXX()
10040 returns a mask not set in PRIORITIES.
10041 (detect_eol_type_in_2_octet_form): New function.
10042 (detect_eol): selects detect_eol_type_XXX to call according to
10043 cooding->category_idx.
10044 (detect_coding_system): Remove `nil' coding-system in the result.
10045 (Fupdate_coding_systems_internal): Update all coding-categories.
10046
10047 * coding.h (CODING_CATEGORY_IDX_UTF_8,
10048 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
10049 macros.
10050 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
10051 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
10052 CODING_CATEGORY_IDX_UTF_16_LE.
10053 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
10054 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
10055 (CODING_CATEGORY_MASK_ANY): Include the above macros.
10056 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
10057
9994cc69
GM
100582000-03-07 Gerd Moellmann <gerd@gnu.org>
10059
e9b4e5ff
GM
10060 * doc.c (Fdocumentation_property): If value is not a string,
10061 and doesn't refer to etc/DOC, evaluate it to obtain a string.
10062
f7daf1e1
GM
10063 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
10064 close the display with XtCloseDisplay. This caused a bus error
10065 on OpenWindows.
10066
9994cc69
GM
10067 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
10068 complete but not unique.
10069
4336c705
GM
100702000-03-06 Gerd Moellmann <gerd@gnu.org>
10071
18bb0684
GM
10072 * process.c (send_process): Remove local variable `procname' that
10073 might become invalid when a GC happens. Instead, access the
10074 process name slot directly.
10075
4336c705
GM
10076 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
10077 orig_height if set.
10078
10079 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
10080 orig_height if set.
10081
515d0d0e
EZ
100822000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
10083
10084 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
10085 glyph matrices have been freed.
10086
100b3cbb
GM
100872000-03-05 Gerd Moellmann <gerd@gnu.org>
10088
50df5e5a 10089 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 10090 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
10091
10092 * xfns.c (QCdata): Moved to xdisp.c.
10093
10094 * xdisp.c (QCdata): Moved here from xfns.c.
10095 (syms_of_xdisp): Initialize QCdata.
10096
10097 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
10098
10099 * window.c (coordinates_in_window): Use
10100 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
10101 FRAME_INTERNAL_BORDER_WIDTH.
10102
100b3cbb 10103 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 10104 it is obviously invalid.
100b3cbb
GM
10105
10106 * xterm.c (x_term_init): Create a colormap if not using the
10107 default visual.
10108
10109 * xterm.h (select_visual): Change prototype.
10110
10111 * xfns.c (select_visual): Rewritten. Recognize user-specified
10112 visual classes.
10113 (visual_classes): New variable.
10114
64d739c4
GM
101152000-03-04 Gerd Moellmann <gerd@gnu.org>
10116
10117 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
10118 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
10119 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
10120 (x_decode_color): Don't handle allocation of white and black
10121 specially.
10122 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
10123 XtNcolormap resources.
10124 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
10125 (Fx_create_frame): Initialize color members of x_output structure.
10126 (xpm_load): Pass colormap to XPM lib.
10127
10128 * xfaces.c (x_free_colors): Access colormap of frame using
10129 FRAME_X_COLORMAP. Be paranoid about freeing black and white
10130 when default colormap is used.
10131
10132 * xterm.c (x_term_init): Set Colormap member of x_display_info
10133 structure. Copy colormap if resource `privateColormap' is
10134 specified (PseudoColor only).
10135 (x_setup_relief_color): Access colormap of frame using
10136 FRAME_X_COLORMAP.
10137
10138 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
10139 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
10140
c3cee013
JR
101412000-03-04 Jason Rumney <jasonr@gnu.org>
10142
10143 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
10144 other non-platform-specific equivalents.
64d739c4 10145 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
10146 specific functions and macros as their w32 equivalents where
10147 non-platform-specifics are not available.
10148 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
10149 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
10150 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
10151 (frame_update_line_height): Use macros to access f->output_data.
10152 (defined_color): Remove FIXME comments; fixed.
10153 (x_face_list_fonts, prepare_face_for_display): Put X specifics
10154 into #ifdef blocks. Add WINDOWSNT blocks.
10155 (Fx_list_fonts): Use macros for accessing font data.
10156 (set_lface_from_font_name): Different default fonts for X and
10157 WINDOWSNT.
10158 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
10159 scalable for backward compatibility.
64d739c4 10160 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
10161 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
10162
64d739c4 10163 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
10164 syms_of_w32faces.
10165
10166 * makefile.nt (w32faces.obj): Remove.
10167 (xfaces.obj): Add.
10168
807cc41c
JR
101692000-03-03 Jason Rumney <jasonr@gnu.org>
10170
10171 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
10172 correct parameters.
10173
0007072a
KR
101742000-03-03 Ken Raeburn <raeburn@gnu.org>
10175
10176 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
10177 standard ELF definitions here if the system header does not.
10178
71a6ba55
GM
101792000-03-03 Gerd Moellmann <gerd@gnu.org>
10180
10181 * xterm.c (PER_CHAR_METRIC): Removed.
10182 (x_per_char_metric_1, x_default_char): New functions.
10183 (x_per_char_metric): If font's default char is invalid, return
10184 metrics of a suitably chosen usable default char.
10185 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
10186 char, replace occurrences of unprintable chars with a suitably
10187 chosen usable default char.
71a6ba55 10188
900fa1f1
GM
101892000-03-02 Gerd Moellmann <gerd@gnu.org>
10190
42f55fe0
GM
10191 * xterm.c (note_mouse_highlight): Return quickly if frame's
10192 glyph matrices have been freed.
10193
10194 * dispnew.c (free_glyphs): Block input while freeing matrices.
10195
900fa1f1
GM
10196 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
10197
10198 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
10199 x_free_colors.
10200
10201 * dispextern.h (x_free_colors): Add prototype.
10202
10203 * xfaces.c (x_free_colors): New function.
10204 (unload_color, free_face_colors): Use it.
10205
2f950292
EZ
102062000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
10207
10208 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
10209
10210 * window.c [MSDOS]: Include msdos.h.
10211
54d04320
DL
102122000-03-02 Dave Love <fx@gnu.org>
10213
10214 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
10215
10216 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
10217 set C_OPTIMIZE_SWITCH for gcc.
10218
0ba93ac4
KH
102192000-03-02 Kenichi Handa <handa@etl.go.jp>
10220
10221 * coding.c (coding_save_composition): Be sure to allocate
10222 composition data area in coding even if there's no composition in
10223 the current run.
10224
a2bc11d4
JR
102252000-03-01 Jason Rumney <jasonr@gnu.org>
10226
10227 * w32term.c: Equivalent changes to those made to xterm.c on
10228 2000-02-25 and 2000-02-24.
10229
10230 * w32fns.c: Equivalent changes to those made to xfns.c on
10231 2000-02-25 and 2000-02-21.
10232
10233 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
10234 correct line-end convention is followed.
10235
10236 * w32menu.c [HAVE_BOXES]: Remove #undef.
10237 (single_keymap_panes): Remove code for simulating checkmarks.
10238 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
10239 Remove code for drawing simulated checkmarks.
10240 (w32_menu_show): make unibyte help string correctly.
10241 (add_menu_item): draw standard Windows checkmarks. Draw radio
10242 buttons as radio buttons if possible.
10243
72d19d75
GM
102442000-03-01 Gerd Moellmann <gerd@gnu.org>
10245
2df636f4
GM
10246 * sysdep.c (start_of_text): Don't define this function for NetBSD
10247 with ELF.
10248
427ec082 10249 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
10250 Don't define.
10251 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
10252 (LINKER): Don't undef if __NetBSD__ is defined.
10253
10254 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
10255
10256 * fileio.c [__NetBSD__]: Define `unix'.
10257
72d19d75
GM
10258 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
10259
ed4d0512
GM
102602000-02-29 Gerd Moellmann <gerd@gnu.org>
10261
50b1039f
GM
10262 * atimer.c (start_atimer): Don't abort when timers are stopped.
10263 (append_atimer_lists): New function.
10264 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
10265 arbitrary lists of stopped and running atimers.
10266
ed4d0512
GM
10267 * atimer.c (cancel_atimer): Handle canceling an atimer when
10268 some timers are stopped.
10269
10270 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
10271 after canceling it.
10272
10273 * fns.c (maybe_resize_hash_table): Handle case of new size
10274 coming out as being the same as old size.
10275
387023ee
JR
102762000-02-27 Jason Rumney <jasonr@gnu.org>
10277
10278 * makefile.nt: Add atimer.h to dependencies.
10279 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
10280 * w32console.c: Only disable window system features for dispextern.h
10281 (initialize_w32_display): Build a display info for the console.
10282 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
10283 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
10284 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
10285 as 2 button mice.
10286 * w32gui.h (struct W32FontStruct): Revert last change after change
10287 to xdisp.c.
10288 * w32menu.c (single_submenu): Set up help string.
10289 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
10290 (w32_dialog_show): Set up help string.
10291 * w32term.c (w32_display_info_for_display): Remove unused function.
10292 (w32_draw_bitmap): Use pre-built bitmaps.
10293 (w32_initialize_display_info): New function to initialize parts of
10294 display info that are common to both GUI and console frames.
10295 (w32_term_init): Use w32_initialize_display_info. Do not set
10296 Vw32_num_mouse_buttons here, as it is not called for console
10297 frames. Build bitmaps for indicating truncated lines etc.
10298 (x_delete_display): Destroy pre-built bitmaps.
10299 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
10300 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
10301
4516715a
DL
103022000-02-27 Dave Love <fx@gnu.org>
10303
10304 * lisp.h: Add a bunch of prototypes.
10305
171ca836
KH
103062000-02-26 Kenichi Handa <handa@etl.go.jp>
10307
10308 * keyboard.c (read_char): Set `usec' correctly.
10309
4013921d
KH
103102000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
10311
10312 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
10313 `lambda', set reg[RRR] to the map index.
10314 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
10315 reg[RRR] to 0. Otherwise, set it to -1.
10316
9244a058
GM
103172000-02-25 Gerd Moellmann <gerd@gnu.org>
10318
2df636f4 10319 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 10320
18e21ce8 103212000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 10322
f43d79c1
GM
10323 * fileio.c (Ffile_symlink_p): If result starts with a `/'
10324 and contains a `:', prepend `/:'.
10325
10326 * window.c (select_window_1): If selected_window is nil,
10327 don't "swap out" the buffer's point.
10328 (Fset_window_configuration): Set selected_window to nil
10329 before calling Fselect_window.
10330 (unshow_buffer): Don't set point in buffer from window's point
10331 if another more recently selected window also shows the buffer.
10332
bed0c171
GM
103332000-02-25 Gerd Moellmann <gerd@gnu.org>
10334
449c3c52
GM
10335 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
10336
f5b58615
GM
10337 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
10338 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
10339 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
10340 variables.
10341 (DEFAULT_BUSY_CURSOR_DELAY): New define.
10342 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
10343 (hide_busy_cursor): New functions.
10344 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
10345
10346 * minibuf.c (read_minibuf): Cancel busy-cursor.
10347
10348 * keyboard.c (command_loop_1): Call start_busy_cursor before
10349 Fcommand_execute and cancel_busy_cursor after it.
10350 (timer_check): Remove busy-cursor code.
10351 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
10352 cursor timer.
10353
10354 * process.c (wait_reading_process_input): Remove busy-cursor code.
10355
10356 * eval.c (Fsignal): Call cancel_busy_cursor instead of
10357 Fx_hide_busy_cursor.
10358
10359 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
10360 Remove prototyoes.
10361 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
10362
10363 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
10364
10365 * xterm.c (XTread_socket): Remove busy-cursor code.
10366
4eb8436f
GM
10367 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
10368 (build_frame_matrix_from_leaf_window): Put code handling
10369 glyph row's not being a slice of a frame row in #if 0.
10370 (sync_window_with_frame_matrix_rows): New function.
10371 (frame_row_to_window): New function.
10372 (mirror_line_dance): Handle copies between windows.
10373
3cb65b0e
GM
10374 * lread.c (Fload): Use `xfree' instead of `free'.
10375 (init_obarray): Use `xmalloc' instead of `malloc'.
10376
bed0c171
GM
10377 * window.c (Fset_window_buffer): Set WINDOW to the window
10378 after decoding.
2add4349
GM
10379 (coordinates_in_window): Take frame's internal border width
10380 into account.
bed0c171 10381
42088c12
GM
103822000-02-24 Gerd Moellmann <gerd@gnu.org>
10383
10384 * xterm.c (x_display_and_set_cursor): Display cursor of
10385 non-selected windows depending on the setting of
10386 cursor_in_non_selected_windows.
10387
10388 * xdisp.c (cursor_in_non_selected_windows): New variable.
10389 (syms_of_xdisp): DEFVAR_BOOL it.
10390
d1e103b2
GM
103912000-02-23 Gerd Moellmann <gerd@gnu.org>
10392
723e779c
GM
10393 * data.c (Fstring_to_number): If number is greater than what
10394 fits into an integer, return a float.
10395
d1e103b2
GM
10396 * eval.c (specbind): Remove references to
10397 keyword_symbols_constant_flag.
10398
10399 * data.c (keyword_symbols_constant_flag): Removed.
10400 (Fmakunbound, set_internal, syms_of_data): Remove references to
10401 keyword_symbols_constant_flag.
10402
10403 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
10404
214f877f
KH
104052000-02-23 Kenichi Handa <handa@etl.go.jp>
10406
10407 * syntax.c (multibyte_syntax_as_symbol): New variable.
10408 (syms_of_syntax): Declare it as a Lisp variable.
10409 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
10410 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
10411 nonzero, treat all multibyte characters as symbol.
42088c12 10412 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
10413 characters.
10414
130adcb7
EZ
104152000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
10416
3cb65b0e 10417 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 10418 a deleted frame.
130adcb7 10419
17cbbf95
GM
104202000-02-21 Gerd Moellmann <gerd@gnu.org>
10421
10422 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
10423
10424 * xfns.c (x_window_to_frame, x_any_window_to_frame)
10425 (x_non_menubar_window_to_frame): Check the busy-cursor window.
10426
beb0bc36
DL
104272000-02-21 Dave Love <fx@gnu.org>
10428
10429 * frame.c (Vmouse_position_function): New variable.
10430 (Fmouse_position): Use it.
10431 (syms_of_frame): Install it.
10432
10433 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
10434
1d92afcd
GM
104352000-02-20 Gerd Moellmann <gerd@gnu.org>
10436
10437 * fileio.c (Finsert_file_contents): Unbind the binding of
10438 standard-output done by temp_output_buffer_setup.
329eed9f
GM
10439
10440 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
10441 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
10442 (specbind, unbind_to): Handle most common case of non-constant
10443 symbol with trivial value specially.
10444
10445 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
10446
18e21ce8 104472000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
10448
10449 * data.c (Fmake_variable_buffer_local): Doc fix.
10450 Init found_for_buffer to 0.
10451 (Fmake_variable_frame_local): If the variable has already
10452 been buffer-local, set the check_frame field.
10453
1d4311c3
EZ
104542000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
10455
10456 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
10457 produced for CODING_MODE_LAST_BLOCK requires.
10458
2dc95ddd
DL
104592000-02-18 Dave Love <fx@gnu.org>
10460
10461 * keyboard.c (echo_keystrokes): Remove declaration.
10462 (Vecho_keystrokes) New variable.
10463 (read_char, record_menu_key, read_key_sequence): Use it to allow
10464 use of float value.
10465 (syms_of_keyboard): Change Vecho_keystrokes declaration.
10466
10467 * lread.c: Undef feature selection macros before defining.
10468
f0930f35
GM
104692000-02-18 Gerd Moellmann <gerd@gnu.org>
10470
10471 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
10472 for symbols other than the symbol in question.
10473
e3d4de90
DL
104742000-02-17 Dave Love <fx@gnu.org>
10475
10476 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
10477
0b378936
GM
104782000-02-17 Gerd Moellmann <gerd@gnu.org>
10479
d621caf7
GM
10480 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
10481
0b378936
GM
10482 * alloc.c (enum mem_type): Compile unconditionally.
10483
3b451f74
EZ
104842000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
10485
10486 * xfaces.c (tty_defined_color): Don't return faulire indication
10487 for unspecified-fg and unspecified-bg pseudo-colors.
10488
10689a01
GM
104892000-02-17 Gerd Moellmann <gerd@gnu.org>
10490
1216f5e4
GM
10491 * alloc.c (mark_object): Don't mark symbol names in pure space.
10492 (gc_sweep): Don't unmark symbol names in pure space.
10493
10494 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
10495 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
10496 [GC_MARK_STACK]: New defines.
427ec082 10497 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
10498 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
10499
10500 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
10501
10502 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
10503 allocate_buffer instead of xmalloc.
10504
10505 * alloc.c (toplevel): Include setjmp.h.
10506 (PURE_POINTER_P): New define.
10507 (enum mem_type) [GC_MARK_STACK]: New enumeration.
10508 (Vdead) [GC_MARK_STACK]: New variable.
10509 (lisp_malloc): Add parameter TYPE, call mem_insert if
10510 GC_MARK_STACK is defined.
10511 (allocate_buffer): New function.
427ec082 10512 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
10513 (free_float) [GC_MARK_STACK]: Set type to Vdead.
10514 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
10515 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
10516 (MEM_NIL) [GC_MARK_STACK]: New define.
10517 (struct mem_node) [GC_MARK_STACK]: New structure.
10518 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
10519 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
10520 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
10521 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
10522 (mark_stack) [GC_MARK_STACK]: New functions.
10523 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
10524 (clear_marks): Removed.
10525 (gc_sweep): Set free conses' car, free floats' type, free
10526 symbols' function to Vdead. Use lisp_free to free buffers.
10527 (init_alloc_once): Initialize Vdead.
10528 (survives_gc_p): Return non-zero for pure objects.
10529
10530 * alloc.c: Add comments throughout the file.
10531
2503c8b1
GM
10532 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
10533 that unblocks alarms.
10534
8389e1e2
GM
10535 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
10536 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
10537 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
10538
10689a01 10539 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 10540
bfc17d18
KH
105412000-02-17 Kenichi Handa <handa@etl.go.jp>
10542
4a09dee0
KH
10543 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
10544 avoid infinite error signaling. Allocate sufficient memory for
10545 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 10546
2b927d02
SM
105472000-02-17 Stefan Monnier <monnier@cs.yale.edu>
10548
10549 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
10550 depends on the previous behavior.
10551
b49cb764
GM
105522000-02-16 Gerd Moellmann <gerd@gnu.org>
10553
10554 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
10555
99e95407
GM
105562000-02-15 Gerd Moellmann <gerd@gnu.org>
10557
10558 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
10559
10560 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 10561 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
10562 write(2).
10563
6ffd3cf7
RS
105642000-02-15 Richard M. Stallman <rms@gnu.org>
10565
10566 * data.c (set_internal): Don't make variable buffer-local
10567 if within a let-binding for the same buffer.
10568 (let_shadows_buffer_binding_p): New function.
10569
10570 * eval.c (specbind): For buffer-local value,
10571 record the current buffer also.
10572 (unbind_to): Cope with that change.
10573
cad53475
GM
105742000-02-15 Gerd Moellmann <gerd@gnu.org>
10575
10576 * window.c (Fsave_window_excursion): Doc fix.
10577
1aa963c8
SM
105782000-02-15 Stefan Monnier <monnier@cs.yale.edu>
10579
10580 * syntax.c (back_comment): Make sure we only consider comment-starters
10581 of the relevant style and return -1 in case of a failure to find the
10582 beginning of the comment.
10583 (Fforward_comment): If back_comment fails, go back to the position just
10584 after the comment-end.
10585 (scan_lists): Add comment describing a very minor bug.
10586
b9b84fd3
SM
105872000-02-14 Stefan Monnier <monnier@cs.yale.edu>
10588
10589 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
10590 `completion-regexp-list' in the docstring.
10591
3a28db80
DL
105922000-02-14 Dave Love <fx@gnu.org>
10593
10594 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
10595
fb4a568d
SM
105962000-02-14 Stefan Monnier <monnier@cs.yale.edu>
10597
10598 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
10599 to Emacs' syntax. Also fix the comment about set/not-set meanings
10600 since Emacs syntax is not the value 0 any more.
10601 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
10602 since it's now part of RE_SYNTAX_EMACS.
10603
1063ebb5
DL
106042000-02-12 Dave Love <fx@gnu.org>
10605
10606 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
10607 Alpha.
10608
fb07a302
GM
106092000-02-12 Gerd Moellmann <gerd@gnu.org>
10610
10611 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
10612
aaf2320c
DL
106132000-02-12 Dave Love <fx@gnu.org>
10614
10615 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
10616
10617 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
10618 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
10619 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
10620
10621 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
10622
10623 * s/nextstep.h: Don't define HAVE_ALLOCA.
10624
10625 * config.in: Add vfork bits.
10626
eedf8bde
GM
106272000-02-12 Gerd Moellmann <gerd@gnu.org>
10628
10629 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
10630 unwind function to undo the effect of stopping atimers.
10631
10632 * keyboard.c (bind_polling_period): Stop all timers except
10633 poll_timer.
10634
10635 * atimer.c (stopped_atimers): New variable.
10636 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
10637 New functions.
10638
10639 * atimer.h (stop_other_atimers, run_all_atimers)
10640 (unwind_stop_other_atimers): Add function prototypes.
427ec082 10641
eedf8bde
GM
10642 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
10643
8476c2f8
KR
106442000-02-11 Ken Raeburn <raeburn@gnu.org>
10645
10646 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
10647 library may depend on jpeg.
10648 (atimer.o): Depends on atimer.c.
10649
0e85e4a3
KH
106502000-02-11 Kenichi Handa <handa@etl.go.jp>
10651
10652 * insdel.c (del_range_1): Call update_compositions.
10653 (del_range_both): Call update_compositions just once..
10654
97fa0cc8
DL
106552000-02-10 Dave Love <fx@gnu.org>
10656
10657 * xfns.c (create_frame_xic): Fix initialization of automatic
10658 aggregates for pcc.
10659
25566a3c
KH
106602000-02-09 Kenichi Handa <handa@etl.go.jp>
10661
10662 * ccl.c (CCL_MAKE_CHAR): New macro.
10663 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
10664 registers by CCL_MAKE_CHAR before calling translate_char.
10665 <CCL_TranslateCharacterConstTbl> Likewise.
10666
69da54ba
DL
106672000-02-08 Dave Love <fx@gnu.org>
10668
10669 * lread.c (__EXTENSIONS__): Define.
10670
f7136ee8
GM
106712000-02-08 Gerd Moellmann <gerd@gnu.org>
10672
10673 * puresize.h (BASE_PURESIZE): Increase to 650000.
10674
7768790b
EZ
106752000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
10676
10677 * msdos.c (XMenuActivate): Turn off the cursor after displaying
10678 the help message.
10679
38fd211b
EZ
106802000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
10681
10682 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
10683 md, mh, mb, mr, and me to the fake termcap entry.
10684
66e4690f
KR
106852000-02-06 Ken Raeburn <raeburn@gnu.org>
10686
10687 * sound.c (sound_cleanup): Don't call device close routine if the
10688 function pointer is null.
10689
a75dfea0
AI
106902000-02-06 Andrew Innes <andrewi@gnu.org>
10691
10692 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
10693 around image definitions and prototypes.
10694 (gamma_correct) [WINDOWSNT]: New prototype.
10695
10696 * w32term.c (x_make_frame_visible): Replace call to
10697 input_poll_signal with poll_for_input.
10698
10699 * window.c [WINDOWSNT]: Include w32term.h.
10700
10701 * xdisp.c [WINDOWSNT]: Include w32term.h.
10702
10703 * makefile.nt: Add dependencies on w32gui.h.
10704 (OBJ1): Include atimer.obj.
10705 ($(BLD)\atimer.obj): New dependency rule.
10706
10707 * w32.c (sigmask): New function (does nothing).
10708 (sigunblock): Ditto.
10709
10710 * frame.c [WINDOWSNT]: Include w32term.h.
10711
10712 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
10713
10714 * lread.c (syms_of_lread): Fix literal newlines.
10715
10716 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
10717 the string constant limit (2048 bytes) in MSVC.
10718 (main): Ditto.
10719
59ddecde
GM
107202000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
10721
10722 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
10723 area.
10724 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
10725 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
10726 dispatch the event.
10727
07590973
DL
107282000-02-04 Dave Love <fx@gnu.org>
10729
10730 * fileio.c: Remove some unused vars.
10731 (_GNU_SOURCE): Define (for euidaccess).
10732
10733 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
10734
10735 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
10736 gcpro1, gcpro2.
10737 (read_minibuf): Deal with allow_props correctly.
10738
649351f9
EZ
107392000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
10740
10741 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
10742
66e4690f 107432000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
10744
10745 * search.c (compile_pattern): If a cache entry has a nil regexp,
10746 fill in that entry instead of clobbering a previously cached
10747 string regexp.
10748
66e4690f 107492000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
10750
10751 * puresize.h (BASE_PURESIZE): Increase to 610000.
10752
d240a249
GM
107532000-02-02 Gerd Moellmann <gerd@gnu.org>
10754
10755 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
10756 can GC.
10757
ca91fb26
KH
107582000-02-02 Kenichi Handa <handa@etl.go.jp>
10759
25660570
KH
10760 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
10761 instead of incrementing ic directly.
10762 <CCL_WriteExprConst> Likewise.
10763 <ccl_set_expr>: Set ic to jump_address.
10764
ca91fb26
KH
10765 * fileio.c (e_write): Fix the handling of
10766 CODING_FINISH_INSUFFICIENT_SRC.
10767
2ede9689
DL
107682000-02-01 Dave Love <fx@gnu.org>
10769
10770 * editfns.c (Fpropertize): Doc fix.
10771
10772 * process.c (Fstart_process): Doc fix.
10773
10774 * eval.c: Fix various doc strings not to duplicate information
10775 from help-manyarg-func-alist.
10776
10777 * window.c (Fset_window_margins): Don't make interactive. Doc
10778 fix.
10779
10780 * doc.c (Vhelp_manyarg_func_alist): New variable.
10781 (Fdocumentation): Use it.
10782 (syms_of_doc): Define it.
10783
b6680a0e
GM
107842000-01-31 Gerd Moellmann <gerd@gnu.org>
10785
2cb750ba
GM
10786 * xterm.c (xim_open_dpy): Remove unused local variable.
10787
74e9213b
GM
10788 * emacs.c (USAGE): Use term `display options' instead of `X
10789 options'.
10790
10791 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
10792 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
10793
b6680a0e
GM
10794 * fns.c (sweep_weak_table): New function.
10795 (sweep_weak_hash_tables): Use it. Keep on marking until there
10796 is no more change.
10797
994c5afe
GM
107982000-01-30 Gerd Moellmann <gerd@gnu.org>
10799
10800 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
10801 that XTread_socket does not crash by trying to call XNoOp on a
10802 closed display.
427ec082 10803
f00276e3
JR
108042000-01-30 Jason Rumney <jasonr@gnu.org>
10805
10806 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
10807 Change selected_frame to SELECTED_FRAME ().
10808 (w32_console_mouse_position): Remove #ifndef MULE from around
10809 `insist' parameter.
10810
10811 * makefile.nt: Remove dosfns.obj.
10812
10813 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
10814
10815 * w32fns.c (w32_defined_color): Check for valid frame before
10816 applying gamma correction. Eliminate dependency on frame elsewhere.
10817 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
10818 (w32_to_x_font): Use resx and resy not height_in and width_in.
10819 (x_to_w32_font): Doc fix.
10820 (xlfd_strip_height): New function to strip and return font height.
10821 (w32_font_match): Compare height separately from rest of xlfd
10822 spec, using xlfd_strip_height.
10823
10824 * w32term.c (w32_term_init): Swap resx and height_in, resy and
10825 width_in. Use w32_defined_color in place of defined_color.
10826
10827 * w32faces.c: Merge more of DOS and X specifics in preparation for
10828 merge with xfaces.c.
10829 (defined_color): Remove FIXME comment.
10830 (tty_color_name): Provide w32-specific function.
10831 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
10832
10833 * w32console.c (turn_on_face, turn_off_face): Removed.
10834 (w32_face_attributes): New function.
10835 (Global_variables): Reduce scope where possible.
10836 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
10837 fill attribute.
10838 (hl_mode): Don't modify text attributes.
10839 (write_glyphs): Don't do anything if len <= 0. Use
10840 w32_face_attributes to get attributes for drawing. Write
10841 terminating codes using char_attr_normal.
10842 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
10843 (update_begin, update_end): Likewise.
10844 (vga_stdcolor_name): New function.
10845 (initialize_w32_display): Remove char_attr_reverse and char_attr.
10846 (Fset_screen_color): Remove char_attr_reverse.
10847
b08e8bb2
GM
108482000-01-29 Gerd Moellmann <gerd@gnu.org>
10849
10850 * xfns.c (xic_set_preeditarea): Take window parameter and
10851 window-relative pixel-positions.
10852
10853 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
10854 is its frame's selected window.
10855 (xim_instantiate_callback): Likewise.
10856
10857 * xfns.c (x_create_im): Removed.
10858 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
10859 (supported_xim_styles): Renamed from supported_styles.
10860 (best_xim_style): Renamed from best_style.
10861 (create_frame_xic): Renamed from xic_create_frame.
10862 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 10863
b08e8bb2
GM
108642000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
10865
10866 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
10867 our frames, call XFilterEvent with 2nd parameter `None'.
10868 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
10869 returning XBufferOverflow.
10870 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
10871 area.
10872 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
10873 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
10874 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
10875 (xim_initialize, xim_close)
10876 [HAVE_X_I18N && HAVE_X11R6]: New functions.
10877 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
10878 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
10879 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
10880
10881 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
10882 and `xim_styles'.
10883 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
10884 `xic_style' and `xic_xfs'.
10885 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
10886 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
10887 (FRAME_XIM): Removed.
10888
10889 * xfns.c (supported_styles): New variable.
10890 (DEFAULT_STYLE, DEFAULT_FONT): New macros
10891 (xic_create_xfontset, best_style, xic_create_frame)
10892 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
10893 (xic_set_xfontset): New functions.
10894
142e109c
DL
108952000-01-28 Dave Love <fx@gnu.org>
10896
10897 * s/irix6-5.h: Revert last change after change to irix5-0.h.
10898
10899 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
10900
b02786f9
GM
109012000-01-28 Gerd Moellmann <gerd@gnu.org>
10902
d060bc9f
GM
10903 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
10904 for *scratch* if it already existed.
10905
b02786f9
GM
10906 * emacs.c (USAGE): New macro.
10907 (main): Use it to display usage information.
10908
2c52d7e4
EZ
109092000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
10910
10911 Support for the menu-help feature:
10912
10913 * msdos.h: Change prototypes of XMenuAddSelection and
10914 XMenuActivate.
10915
10916 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
10917 part of the line to the termscript file.
10918 (IT_clear_to_end): Clear the entire line, not just its beginning.
10919 (menu_help_message, prev_menu_help_message): New variables.
10920 (IT_menu_make_room): Make room for the help_text member.
10921 (IT_menu_display): New argument disp_help; all callers changed.
10922 If disp_help is non-zero, store the help text of the active menu
10923 item in menu_help_message.
10924 (XMenuAddPane): Initialize the help_text member to NULL.
10925 (XMenuAddSelection): New argument help_text. Store it in the
10926 XMenu structure.
10927 (XMenuActivate): New argument help_callback. If the value of
10928 menu_help_message has changed since the last time, display the
10929 menu help message text while waiting for the mouse to move. Clear
10930 the echo area before exiting.
10931 (XMenuDestroy): Free the help_text member.
10932
ffe0bcd1
GM
109332000-01-27 Gerd Moellmann <gerd@gnu.org>
10934
10935 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
10936 XMenuAddSelection. Pass help callback to XMenuActivate.
10937 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
10938
50dbd23f
EZ
109392000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
10940
10941 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
10942 and EMACS_SET_USECS.
10943
f5941bf8
GM
109442000-01-26 Dave Love <fx@gnu.org>
10945
6c67ddee
DL
10946 * editfns.c (Fchar_after, Fchar_before): Doc fix.
10947
f5941bf8
GM
10948 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
10949 an error may be signalled.
10950
9e49c990
GM
109512000-01-26 Gerd Moellmann <gerd@gnu.org>
10952
fc3cb460
GM
10953 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
10954 LD_SWITCH_SYSTEM inherited from irix5-0.h.
10955
9e49c990
GM
10956 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
10957
d0c037d8
GM
109582000-01-25 Gerd Moellmann <gerd@gnu.org>
10959
10960 * charset.c (Fstring): If there is a multibyte char among
10961 the args, always return a multibyte string.
10962
e12489f9
GM
109632000-01-25 Gerd Moellmann <gerd@gnu.org>
10964
10965 * sysdep.c (sys_select): Turn atimers off and on instead of
10966 recording and restoring old alarm handler
10967
10968 * process.c (toplevel): Include atimer.h.
10969 (create_process_1): Rewritten.
10970 (create_process): Use atimers instead of alarm.
10971 (wait_reading_process_input) [hpux]: Turn atimers off instead
10972 of turning off SIGALRM.
10973 (wait_reading_process_input): Turn off atimers instead off
10974 calling stop_polling.
10975
10976 * emacs.c (main): Call init_atimer.
10977
10978 * keyboard.c (toplevel): Include systime.h and atimer.h.
10979 (polling_for_input): Removed because unused.
10980 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
10981 (poll_timer): New variable.
10982 (poll_for_input, poll_for_input_1): New functions.
10983 (start_polling, stop_polling): Rewritten.
10984
10985 * keyboard.h (polling_for_input): Removed.
427ec082 10986
e12489f9
GM
10987 * atimer.h, atimer.c: New files.
10988
10989 * Makefile.in (obj): Add atimer.o.
10990 (atimer.o): New target.
10991
10992 * blockinput.h (pending_atimers): Add extern declaration.
10993 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
10994
10995 * lisp.h (popup_activated_flag): Add extern declaration.
10996
10997 * xmenu.c (popup_activated_flag): Make externally visible.
10998 (popup_activate_callback) [USE_MOTIF]: Increment
10999 popup_activated_flag.
11000 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
11001
11002 * xterm.c (toplevel): Include atimer.h.
11003 (toolkit_scroll_bar_interaction): New variable.
11004 (Fxt_process_timeouts): Removed.
11005 (x_process_timeouts): New function.
11006 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
11007 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
11008 (x_make_frame_visible): Call poll_for_input_1 instead of
11009 input_poll_signal. Don't call alarm.
11010 (x_initialize): Install timer calling x_process_timeouts.
427ec082 11011
1e5279b9
DL
110122000-01-24 Dave Love <fx@gnu.org>
11013
6c67ddee 11014 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
11015 Don't use -cckr -- apparently not now necessary.
11016
edf6aeb8
EZ
110172000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
11018
11019 * msdos.c (IT_menu_display): Truncate long menu lines at the right
11020 screen boundary.
11021
9badad41
JR
110222000-01-23 Jason Rumney <jasonr@gnu.org>
11023
11024 * w32fns.c (w32_defined_color): Apply gamma correction before
11025 trying to map to the palette.
11026 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
11027 to w32_clear_rect.
11028
11029 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
11030 here. Callers changed to always pass real device context.
11031 (w32_draw_bitmap): Likewise.
11032 (w32_get_glyph_overhangs): Likewise.
11033 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
11034 one.
11035 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
11036 pfnSetScrollInfo and SetScrollRange.
11037 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
11038 back into MULE characters after decoding them.
11039 (x_get_glyph_face_and_encoding): Likewise.
11040 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
11041 GetCharABCWidthsW fails, since this is defined on Windows 9x.
11042 (x_produce_glyphs): Calculate per char metrics for a character
11043 that we know exists in default font when font_not_found_p is true.
11044
63bd786b
JR
110452000-01-22 Jason Rumney <jasonr@gnu.org>
11046
11047 * makefile.nt (intervals.obj, composite.obj): New modules.
11048 (composite.h): Added as dependency where appropriate.
11049
11050 * w32gui.h (XGCValue): New struct for emulating X GCs.
11051
11052 * w32term.h (XCharStruct): New struct for emulating X.
11053
11054 * w32console.c (turn_on_face, turn_off_face): New functions.
11055 (change_line_highlight): New prototype for new redisplay.
11056 (write_glyphs): Support multibyte text. Support faces.
11057
11058 * w32faces.c: Complete rewrite for new redisplay based on new
11059 xfaces.c.
11060
11061 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
11062 throughout. struct frame * in place of FRAME_PTR.
11063 Skeleton support for images, toolbars, tooltips from xfns.c.
11064 (Fx_create_frame): Use system default for default scroll bar
11065 width.
11066 (w32_get_arg): Renamed from x_get_arg.
11067 (Fx_file_dialog): New function.
11068 (w32_list_fonts): Check cache before asking system.
11069 (Vw32_enable_synthesized_fonts): New variable.
11070 (Vw32_enable_italics): Obsolete, removed.
11071
11072 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
11073 Use SELECTED_FRAME macro.
11074
11075 * w32menu.c: Add skeleton support for help strings on menus.
11076 (add_menu_item): Native checkbox and radio support added, but not
11077 yet enabled due to bugs.
11078 (push_menu_item): Add parameters type, selection and help.
11079 Callers updated.
11080 Formatting changes to reduce unnecessary diffs with xmenu.c.
11081
11082 * w32select.c (Fw32_set_clipboard_data): Update call to
11083 find_charset_in_str.
11084
11085 * w32term.c: Complete rewrite for new redisplay based on new
11086 xterm.c with necessary sections merged back in from old w32term.c.
11087
6ffd3cf7 110882000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
11089
11090 * data.c (set_internal): Further fix in same criterion.
11091
6ffd3cf7 110922000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
11093
11094 * data.c (set_internal): Fix the criteria for whether
11095 to swap out the old cached binding.
11096
60af03f1
DL
110972000-01-19 Dave Love <fx@gnu.org>
11098
11099 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
11100
f9be074f
KH
111012000-01-18 Kenichi Handa <handa@etl.go.jp>
11102
11103 * regex.c (re_compile_fastmap): While checking a range table for
11104 `charset', skip flag bits for a character class correctly.
11105
52b8dbf9
GM
111062000-01-17 Gerd Moellmann <gerd@gnu.org>
11107
d36100c9
GM
11108 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
11109
52b8dbf9
GM
11110 * xfns.c (x_window): Call lw_create_widget with new parameter
11111 list.
11112
11113 * widget.c (EmacsFrameSetCharSize): Change size of children first
11114 because of problems with main window geometry management under
11115 Lesstif.
11116
11117 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
11118 MENU_ITEMS_ITEM_.*.
11119 (MENU_ITEMS_ITEM_HELP): New enumerator.
11120 (push_menu_item): Add parameter HELP. Record help in menu_items.
11121 (single_menu_item, single_submenu, list_of_items): Call
11122 push_menu_item with new parameter.
11123 (single_submenu): Set help string in widget value.
11124 (menu_highlight_callback): New function.
11125 (set_frame_menubar): Call lw_create_widget with new
11126 parameter list.
11127 (xmenu_show, xdialog_show): Ditto.
11128
3139018f
GM
111292000-01-13 Gerd Moellmann <gerd@gnu.org>
11130
11131 * sound.c (Fplay_sound): Improve doc string.
11132
83c8f461
RS
111332000-01-11 Richard M. Stallman <rms@gnu.org>
11134
11135 * lisp.h (set_internal): Enter the new arg.
11136
11137 * eval.c (specbind): Record buffer-local variables specially,
11138 indicating which buffer's binding was saved.
11139 (unbind_to): Restore buffer-local variables specially
11140 in the proper buffer.
11141
11142 * data.c (set_internal): New arg BUF.
427ec082 11143
83c8f461
RS
11144 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
11145 * data.c (Fset): Pass new arg to set_internal.
11146 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 11147
1fab1775
GM
111482000-01-11 Gerd Moellmann <gerd@gnu.org>
11149
11150 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
11151 xprintsym.
11152
83c8f461 111532000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
11154
11155 * minibuf.c (Ftry_completion): Doc fix.
11156
7a85e4df
GM
111572000-01-11 Gerd Moellmann <gerd@gnu.org>
11158
11159 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
11160 vector, too.
11161
a970dae4
AS
111622000-01-11 Andreas Schwab <schwab@suse.de>
11163
11164 * coding.c (code_convert_region): Initialize total_skip.
11165
c65d14ee
DL
111662000-01-08 Dave Love <fx@gnu.org>
11167
11168 * eval.c (Fuser_variable_p): Check customizability too.
11169
834938d2
GM
111702000-01-07 Gerd Moellmann <gerd@gnu.org>
11171
11172 * minibuf.c (Fcompleting_read): Doc fix.
11173
e0303cd6
GM
111742000-01-05 Gerd Moellmann <gerd@gnu.org>
11175
8a26744b
GM
11176 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
11177 -L /usr/local/lib.
11178
e0303cd6
GM
11179 * xfns.c (x_create_im): New function to set IM and IC of a frame.
11180 Check that input style is supported before trying to create an
11181 IC for it.
11182 (x_window): Call x_create_im.
427ec082 11183
2e471eb5
GM
111842000-01-04 Gerd Moellmann <gerd@gnu.org>
11185
560a7bd2
GM
11186 * xfns.c (current_gif_memory_src): New variable.
11187 (gif_load): Record the address of the current memory source
11188 in current_gif_memory_src.
11189 (gif_read_from_memory): Use current_gif_memory_src.
11190
f9ee84a3
GM
11191 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
11192 macros statement form.
11193
d1299cde
GM
11194 * sound.c (struct sound): Renamed from struct sound_file.
11195 (struct sound): Add members `data' and `header_size'.
11196 (enum sound_attr): Add SOUND_DATA.
11197 (current_sound, current_sound_device): Variables renamed from
11198 sound_file and sound_device.
11199 (parse_sound): Parse :data.
11200 (parse_sound): Handle sound data in strings.
11201 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 11202 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
11203 needed header size.
11204 (wav_play, au_play): Play sounds from string data.
11205
2e471eb5
GM
11206 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
11207
11208 * lisp.h: Add prototype for allocate_string_data.
11209
11210 * alloc.c (Fgarbage_collect): Return number of live and free
11211 strings.
11212
11213 * alloc.c (mark_buffer): Remove code in #if 0.
11214 (gc_sweep): Ditto.
11215 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
11216 (strings_consed): New variable.
11217 (allocate_string): Set it.
11218 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
11219 (Fmemory_use_counts): Return strings_consed. Use Flist.
11220
11221 * alloc.c: General cleanup in comments etc. Remove conditional
11222 compilation for `standalone'.
11223
11224 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
11225
11226 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
11227 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
11228 (DONT_COPY_FLAG): Removed.
11229 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
11230 (struct sdata, struct sblock): New
11231 (struct string_block): Rewritten.
11232 (STRINGS_IN_STRING_BLOCK): New macro.
11233 (oldest_sblock, current_sblock, total_strings, total_free_strings)
11234 (large_sblocks, string_blocks, string_free_list): New variables.
11235 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
11236 (init_strings): Rewritten.
11237 (allocate_string, allocate_string_data, compact_small_strings)
11238 (free_large_strings, sweep_strings): New functions.
11239 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
11240 (struct string_block_head, current_string_block)
11241 (first_string_block, large_string_blocks, STRING_FULLSIZE)
11242 (STRING_PAD): Removed.
11243 (make_uninit_multibyte_string, make_pure_string): Rewritten.
11244 (Fgarbage_collect): Don't set mark bit in large strings.
11245 (mark_object): Mark strings differently. Mark symbol names
11246 differently.
11247 (survives_gc_p): Test marked strings differently.
427ec082 11248 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
11249 symbol names.
11250 (compact_strings): Removed.
11251
42608ba8
EZ
112522000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
11253
11254 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
11255 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
11256
e0a09e1a
KH
112572000-01-04 Kenichi Handa <handa@etl.go.jp>
11258
dd9f0750 11259 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 11260 in a non-empty buffer.
dd9f0750 11261
3c0f3b15 11262 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 11263
44cd3ae5
GM
112642000-01-03 Gerd Moellmann <gerd@gnu.org>
11265
11266 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
11267 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
11268
11269 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
11270
c182a70f
EZ
112712000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11272
11273 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
11274 need to test for MSDOS frames.
11275
24480d5b
EZ
112762000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11277
11278 * dosfns.c (unspecified_colors): Remove.
11279 (msdos_stdcolor_idx): Use global variables unspecified_fg and
11280 unspecified_bg.
11281 (msdos_stdcolor_name): Return strings for unspecified fore- and
11282 back-ground colors.
11283
11284 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 11285 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
11286 (tty_color_name): Return Lisp strings for unspecified fore- and
11287 back-ground colors.
11288 (Finternal_set_lisp_face_attribute): Remove the special treatment
11289 for Qunspecified_{f,b}g.
11290 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
11291 string.
11292
047f434a
GM
112932000-01-03 Gerd Moellmann <gerd@gnu.org>
11294
11295 * xdisp.c (reseat_at_next_visible_line_start): Position before
11296 newline only if ending up on a newline.
11297 (next_element_from_ellipsis): Return success. Handle case of
11298 displaying no ellipsis. Fix case of ellipsis defined in display
11299 table.
11300 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
11301 returns 0.
11302
d684c676
EZ
113032000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11304
11305 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
11306 (Fcolor_supported_p): Renamed from face-color-supported-p.
11307
5fe1d139
EZ
113082000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11309
11310 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
11311 list of colors renamed to tty-defined-color-alist.
11312 (tty_color_name): Pass the frame to tty-color-by-index.
11313 (realize_tty_face): tty-color-alist is now a function which
11314 accepts the frame as argument.
11315
11316 * term.c (Ftty_display_color_p): Accept an optional argument
11317 FRAME.
11318
816be8b8
EZ
113192000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11320
11321 * term.c (insert_glyphs): Pass glyph, not &glyph, to
11322 encode_terminal_code.
11323
b635321e
EZ
113242000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11325
11326 * dispnew.c (mode_line_string): Support termcap frames as well.
11327
9b784e96
GM
113282000-01-01 Gerd Moellmann <gerd@gnu.org>
11329
27189709
GM
11330 * syntax.c (Fforward_word): Undo previous change.
11331
11332 * editfns.c (Fconstrain_to_field): Don't constrain if
11333 inhibit-field-text-motion is non-nil.
11334 (Fline_beginning_position): Undo previous change.
11335 (Fline_end_position): Ditto.
11336
11337 * syntax.c (Fforward_word): Notice field boundaries only if
11338 inhibit-field-text-motion is nil.
11339
11340 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
11341
11342 * editfns.c (Vinhibit_field_text_motion): New variable.
11343 (inhibit-field-text-motion): New DEFVAR_LISP.
11344 (Fline_beginning_position, Fline_end_position): Notice field
11345 boundaries only if inhibit-field-text-motion is nil.
11346
45158a91
GM
11347 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
11348 All calls adjusted.
11349 (x_build_heuristic_mask): Likewise.
11350 (xbm_load_image_from_file): Change error output.
11351 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
11352 (gif_load, gs_load, x_kill_gs_process): Ditto.
11353
9b784e96
GM
11354 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
11355 color indices when accessing raster pixels.
63cec32f
GM
11356 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
11357 one of :file or :data.
11358 (enum pbm_keyword_index): Add PBM_DATA.
11359 (pbm_format): Add :data.
11360 (pbm_image_p): Allow either :file or :data.
11361 (pbm_read_file): New function.
11362 (pbm_scan_number): Rewritten to read from string.
11363 (pbm_load): Support :data.
9b784e96 11364
2cb085db 11365See ChangeLog.8 for earlier changes.
6922b018
KH
11366
11367;; Local Variables:
49b3bd82 11368;; coding: iso-2022-7bit
6922b018 11369;; End: