*** empty log message ***
[bpt/emacs.git] / src / ChangeLog
CommitLineData
441bf856
GM
12001-04-05 Gerd Moellmann <gerd@gnu.org>
2
4d664b04
GM
3 * sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
4
a55e4e68
GM
5 * editfns.c (Fcurrent_time_zone): Accept spaces in timezone
6 names.
7
30ca89f5
GM
8 * xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
9 (syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
10
11 * xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
12 shell widget's position only if it is non-null.
13
14 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]: Set
15 f->output_data.x->widget to null after destroying it.
16
81a81c0f
GM
17 * fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
18 FILENAME to bring it in synch with the documentation.
19
441bf856
GM
20 * xfaces.c (realizing_basic_faces_p): Renamed from
21 realize_default_face_p.
22 (realize_basic_faces): Set/clear realizing_basic_faces_p.
23 (realize_default_face): Don't set the flag.
24
702a1e8e
GM
252001-04-04 Gerd Moellmann <gerd@gnu.org>
26
1013f4e3
GM
27 * lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
28
29 * keyboard.c (echoing, echo_message_buffer): Make externally
30 visible.
31
32 * xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
33 the buffer that was used for echoing.
34
702a1e8e
GM
35 * xfaces.c (best_matching_font): Remove unused parameter PATTERN.
36 (first_font_matching): Removed unused function.
37 (x_face_list_fonts): Remove unused parameter SCALABLE_P.
38 (may_use_scalable_font_p): Remove parameter FONT; rename
39 parameter NAME to FONT.
40 (x_face_list_fonts): Fix missing bounds check.
41 (realizing_default_face_p): New variable.
42 (realize_default_face): Set and clear that flag.
43 (x_face_list_fonts): When called during the realization of the
44 default face, and no matching fonts are found when ignoring
45 scalable fonts and fonts matching a regexp from
46 face-ignored-fonts, try without ignoring fonts.
47
f9dbcda4
GM
482001-04-03 Gerd Moellmann <gerd@gnu.org>
49
ad18ffb1
GM
50 * xfns.c (postprocess_image): New function.
51 (lookup_image): Call it for all image types except PostScript.
52 (x_kill_gs_process): Call postprocess_image.
53
f9dbcda4
GM
54 * xterm.c (x_use_underline_position_properties): New variable.
55 (x_draw_glyph_string): Use it.
56 (syms_of_xterm): DEFVAR_BOOL it.
57
651f03b6
GM
582001-04-02 Gerd Moellmann <gerd@gnu.org>
59
60 * xterm.c (x_alloc_nearest_color_1): New function.
61 (x_alloc_nearest_color): Use it.
62 (x_color_cells): Take a Display as argument, instead of a frame.
63 (cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
64 (cvt_string_to_pixel, cvt_pixel_dtor): New functions.
65 (x_initialize): Register cvt_string_to_pixel as resource converter
66 string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
67
73d75a62
GM
682001-03-30 Gerd Moellmann <gerd@gnu.org>
69
b2046df8
GM
70 * xdisp.c (get_overlay_strings): Set iterator's end_charpos.
71 (set_iterator_to_next): If a string from a display property ends,
72 consider the case that this might also be the end of an
73 overlay string having the display property.
74
12700f40
GM
75 * xdisp.c (handle_display_prop): Fix recognition of subproperty
76 lists.
b2046df8 77
87d8eba4
GM
78 * xdisp.c (reseat_to_string): Undo last change.
79
73d75a62
GM
80 * dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
81 matrix of a window when the header line changes, when
82 new rows are allocated, or when the width changes.
83
911a2406
EZ
842001-03-30 Eli Zaretskii <eliz@is.elta.co.il>
85
86 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last
87 change.
88
aea51abe
EZ
892001-03-29 Eli Zaretskii <eliz@is.elta.co.il>
90
91 * fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
92 deprecated.
93
176bc847
GM
942001-03-29 Gerd Moellmann <gerd@gnu.org>
95
ed31fabf
GM
96 * data.c (Fsubr_interactive_form): New function.
97 (syms_of_data): Defsubr it.
98
176bc847
GM
99 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
100 (live_float_p, live_misc_p): Return 1 only if the offset of the
101 pointer in its block is >= 0.
102
e59d0e9d
GM
1032001-03-28 Paul Eggert <eggert@twinsun.com>
104
105 * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
106 microseconds calcuation. Avoid double-rounding problem.
107 In doc string, warn that the result is approximate.
108
f827b862
GM
1092001-03-28 Gerd Moellmann <gerd@gnu.org>
110
30a3f61c
GM
111 * eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
112 bind `inhibit-eval-during-redisplay' to t.
113
114 * lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
115
116 * xdisp.c (inhibit_eval_during_redisplay)
117 (Qinhibit_eval_during_redisplay): New variables.
118 (safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
119 don't eval, return nil instead.
120 (syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
121 Initialize Qinhibit_eval_during_redisplay.
122
e719f5ae
GM
123 * xdisp.c (reseat_to_string): If STRING is multibyte, set
124 the iterator's multibyte_p flag.
125
deb2613a
GM
126 * xfaces.c (realize_basic_faces): Decrement menu_face_change_count
127 instead of setting it to zero; it's incremented for each frame
128 where the menu face is changed.
129
44655e77
GM
130 * xterm.c (x_draw_relief_rect): Extend left shadow to the
131 bottom; change bottom shadow accordingly.
132
a02f1be0
GM
133 * xterm.c (expose_window_tree, expose_frame): Don't compute
134 intersections here.
135 (expose_window): Do it here instead.
136 (x_draw_glyph_string): Fix a computation of the underline
137 position.
138
f827b862
GM
139 * bytecode.c (BYTE_CODE_QUIT): New macro.
140 (Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
141
4bde0ebb
GM
1422001-03-27 Gerd Moellmann <gerd@gnu.org>
143
607ec83c
GM
144 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
145 Give up if matrix starts in an ellipsis.
146 (init_from_display_pos): Do nothing if POS doesn't specify
147 a dpvec_index but the iterator has such a position.
148
0245398f
GM
149 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
150
aba25348
GM
151 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
152 x/y position is (0, 0) after destroying the menu bar, restore
153 its original position.
154
4bde0ebb
GM
155 * xdisp.c (in_ellipses_for_invisible_text_p): New function.
156 (init_from_display_pos): Use it.
157 (try_window_reusing_current_matrix): Don't use cursor_row_p.
158
8cdb267e
GM
1592001-03-26 Gerd Moellmann <gerd@gnu.org>
160
161 * xdisp.c (try_window_id): Undo last change.
162
9948db79
EZ
1632001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
164
165 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
166
167 * buffer.c (syms_of_buffer): Doc fix.
168
2eddf899
GM
1692001-03-26 Gerd Moellmann <gerd@gnu.org>
170
171 * xfaces.c (x_update_menu_appearance): Use local variable
172 popup_path for setting font resources.
173
6c145d35
EZ
1742001-03-25 Eli Zaretskii <eliz@is.elta.co.il>
175
6a65b1b5
EZ
176 * frame.c (Fframe_list): Don't reference tip_frame if
177 HAVE_WINDOW_SYSTEM is not defined.
178
6c145d35
EZ
179 * emacs.c (main): Update the copyright year. From Werner LEMBERG
180 <wl@gnu.org>.
181
d74c1900
GM
1822001-03-25 Gerd Moellmann <gerd@gnu.org>
183
20fbd925
GM
184 * xdisp.c (init_from_display_pos): Test invisible property
185 with TEXT_PROP_MEANS_INVISIBLE instead of NILP.
186
927c5b3b
GM
187 * xdisp.c (redisplay_internal) <update one window>: Make sure
188 last_arrow_position and last_arrow_string are set.
189
d74c1900
GM
190 * frame.c (Fframe_list): Don't return a tooltip frame.
191
091f8878
GM
1922001-03-23 Gerd Moellmann <gerd@gnu.org>
193
43c09969
GM
194 * xdisp.c (mark_window_display_accurate_1): New function,
195 extracted from mark_window_display_accurate. Compute
196 BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED,
197 BUF_BEG_UNCHANGED, BUF_END_UNCHANGED.
198 (mark_window_display_accurate): Use it.
199 (redisplay_internal): Use it for the selected window.
200 (redisplay_internal): Avoid duplicate mark_window_display_accurate
201 for the selected frame.
202
ac90c44f
GM
203 * xdisp.c Use make_number, for readability.
204 (try_window_id): Disable rows below the window end.
205 (try_window_reusing_current_matrix): Use cursor_row_p.
206 (try_window_reusing_current_matrix) <scrolling up>: Fix disabling
207 of rows.
208 (init_from_display_pos): If POS specifies a position in a display
209 vector, maybe get the iterator set up for that ellipsis.
43c09969 210
091f8878
GM
211 * xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
212
991786dd
EZ
2132001-03-23 Eli Zaretskii <eliz@is.elta.co.il>
214
215 * xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
216
6c29b43c
GM
2172001-03-23 Gerd Moellmann <gerd@gnu.org>
218
219 * xfaces.c (x_update_menu_appearance): Use a different path
220 for Lucid popup menus.
221
d8731202
SM
2222001-03-22 Stefan Monnier <monnier@cs.yale.edu>
223
224 * xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
225
226 * xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
227 (string_buffer_position): Use `make_number'.
228
f61a541b
GM
2292001-03-22 Gerd Moellmann <gerd@gnu.org>
230
3c9e997b
GM
231 * xfaces.c (x_update_menu_appearance): Renamed from
232 x_set_menu_face_resources. Use different resources for popups.
233
234 * lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
235 (GC_CHECK_STRING_BYTES): Don't define.
236
364cd450
GM
237 * xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
238 Removed, together with subroutines.
239 (x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
d8731202 240 (realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
364cd450 241
d8731202
SM
242 * dispextern.h (x_set_menu_resources_from_menu_face):
243 Remove prototype.
364cd450 244
d8731202 245 * xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
364cd450
GM
246 Remove calls to x_set_menu_resources_from_menu_face.
247
d8731202
SM
248 * xfaces.c (xm_set_menu_resources_from_menu_face):
249 Remove #ifndef LESSTIF_VERSION.
f61a541b
GM
250
251 * xmenu.c: Include widget.h.
252 (single_submenu): Return int. Some cleanup.
253 (set_frame_menubar): Call x_set_menu_resources_from_menu_face.
254
140330de
GM
2552001-03-21 Gerd Moellmann <gerd@gnu.org>
256
257 * xterm.c (x_update_window_end): Handle overwritten mouse face
258 also for tool bar windows.
259 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
260 DRAW is DRAW_IMAGE_RAISED.
261
1741905c
GM
2622001-03-20 Gerd Moellmann <gerd@gnu.org>
263
fa88947e
GM
264 * print.c (syms_of_print): Doc fixes.
265
1741905c
GM
266 * fns.c (Fmd5): Doc fix.
267
ade0bee1
GM
2682001-03-19 Gerd Moellmann <gerd@gnu.org>
269
357e7376
GM
270 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
271 Clear area of the frame not occupied by the scroll bar.
272
c2c097cc
GM
273 * xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
274 tip frame's root window buffer to *tip* right after creating
275 the frame.
276
ade0bee1
GM
277 * xdisp.c (highlight_trailing_whitespace): Glyphs whose object
278 is an integer don't have to be for space characters.
279
88c6e37e
GM
2802001-03-16 Gerd Moellmann <gerd@gnu.org>
281
282 * indent.c (current_column, current_column_1, Fmove_to_column)
283 (compute_motion): Handle characters from display vectors
284 differently.
285
c62eed76
KH
2862001-03-15 Kenichi Handa <handa@etl.go.jp>
287
288 * xterm.c (x_draw_glyph_string): Draw relief (if any) before
289 drawing glyph string.
290
c899e7e6
GM
2912001-03-15 Gerd Moellmann <gerd@gnu.org>
292
d0bbfc99
GM
293 * keyboard.c (timer_check): Preserve the value of deactivate-mark.
294 (command_loop_1): Undo last change.
295
03d1a189
GM
296 * xterm.c (fast_find_position): Return the correct vpos.
297
c899e7e6
GM
298 * data.c (store_symval_forwarding): Add parameter BUF. If BUF is
299 non-null, set a per-buffer value in BUF instead of the current
300 buffer.
301 (swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
302 Call store_symval_forwarding with BUF null.
303 (set_internal): Call store_symval_forwarding with the BUF
304 parameter passed to set_internal. Formerly, the value was always
305 set in the current buffer; the buffer recorded in specbind for
306 this case wasn't used.
307 (arith_driver): Reindent.
308
309 * buffer.c (swap_out_buffer_local_variables): Call
310 store_symval_forwarding with BUF null.
311
312 * lisp.h (store_symval_forwarding): Change prototype.
313
314 * eval.c (specbind): Call store_symval_forwarding with BUF null.
315
57ac7c81
GM
3162001-03-14 Gerd Moellmann <gerd@gnu.org>
317
697617d9
GM
318 * frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
319 FOR_DELETION. Avoid resizing the mini-window of the selected
320 frame if FOR_DELETION is set.
321 (Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
322 (Fmake_frame_invisible): Change calls to do_switch_frame for new
323 signature.
324
325 * window.c (Fset_window_configuration): Change call to
326 do_switch_frame to new format.
327
328 * keyboard.c (quit_throw_to_read_char): Change call to
329 do_switch_frame to new format.
330
331 * lisp.h (do_switch_frame): Change prototype.
332
819dce0f
GM
333 * frame.c (Fframe_parameters): In the `buffer-list' frame
334 parameter, store the buffer list of FRAME, not the list of the
335 selected frame.
336
57ac7c81
GM
337 * xterm.c (x_draw_glyph_string_box): Don't draw a full-width
338 box just because the glyph row's full_width_p flag is set.
339
65008712
GM
3402001-03-14 Eli Zaretskii <eliz@is.elta.co.il>
341
342 * xdisp.c (highlight_trailing_whitespace): On character terminals,
343 skip the padding blanks inserted in extend_face_to_end_of_line,
344 before checking for trailing whitespace.
345
159cf431
GM
3462001-03-13 Gerd Moellmann <gerd@gnu.org>
347
19b2bb80
GM
348 * xmenu.c (popup_activate_callback, popup_deactivate_callback):
349 Remove special handling for LessTif/Motif.
350 (toplevel): Don't include Xm/Xm.h.
351
afcdc0a1
GM
352 * xterm.c (XTread_socket) <LeaveNotify, EnterNotify>: Remove
353 workaround code for LessTif; it doesn't work anymore.
354
2564ea1b 355 * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
57ac7c81 356 Xm/ScrollBarP.h.
afcdc0a1 357
23442ae4
GM
358 * xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]: Don't
359 access private scroll bar data; it's no longer necessary with
360 contemporary LessTif.
361
9faaaa52
GM
362 * xfaces.c (xm_set_menu_resources_from_menu_face): Change
363 #if 0 to #ifndef LESSTIF_VERSION.
364
159cf431
GM
365 * xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
366 removing button grabs.
367
c6f7429a
KH
3682001-03-13 Kenichi Handa <handa@etl.go.jp>
369
cb82d767
KH
370 * fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
371 and clip-large-size-font as obsolete.
372
c6f7429a
KH
373 * lread.c (read_multibyte): Check the validity of multibyte
374 sequence. If invalid, return the first byte.
375
760cefb5
GM
3762001-03-12 Gerd Moellmann <gerd@gnu.org>
377
378 * keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
379 before running the command; timer functions or process
380 filters may have set it.
381
5141f9d0
EZ
3822001-03-12 Eli Zaretskii <eliz@is.elta.co.il>
383
384 * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
385 Doc fix.
386
b6a15240
GM
3872001-03-12 Gerd Moellmann <gerd@gnu.org>
388
389 * xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
390 to sprintf.
391
95522746
GM
3922001-03-09 Gerd Moellmann <gerd@gnu.org>
393
db14cfc5
GM
394 * dispextern.h (string_buffer_position): Add prototype.
395
396 * xdisp.c (string_buffer_position, display_prop_string_p)
397 (single_display_prop_string_p): New functions.
398
399 * xterm.c (note_mouse_highlight): If there's no help-echo on
400 a string, look at the buffer text ``under'' it.
401
402 * keyboard.c (make_lispy_event): Add string info to the event,
403 analogous to what's done on mode lines.
404 (read_key_sequence): For a click on a string, consider `local-map'
405 and `keymap' of that string.
406
3cfd8357
GM
407 * keyboard.c (make_lispy_event, make_lispy_movement): Adjust
408 calls to buffer_posn_from_coords to new format.
409
410 * dispextern.h (buffer_posn_from_coords): Adjust prototype.
411
412 * dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
413 POS; return void.
414
95522746
GM
415 * fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
416 flags argument to emacs_open; it seems to conflict with O_EXCL.
417
898a399d
KH
4182001-03-09 Kenichi Handa <handa@etl.go.jp>
419
28cd4910
KH
420 * composite.h (struct composition): Change types of members;
421 glyph_len to unsigned, width to unsigned short.
898a399d 422
4cdf6a6c
AI
4232001-03-08 Andrew Innes <andrewi@gnu.org>
424
425 * w32menu.c (add_menu_item): Fix problems with using ownerdraw for
426 menu titles.
427
129004d3
GM
4282001-03-08 Gerd Moellmann <gerd@gnu.org>
429
221dd3e7
GM
430 * xdisp.c (handle_display_prop): Use it->w->buffer as object,
431 instead of nil.
432
5de7c6f2
GM
433 * xterm.c (note_mouse_highlight): Handle mouse-face and
434 help-echo in strings.
435 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
436 (fast_find_string_pos): New function.
437
438 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
439 (display_string): Call face_at_string_position with new
440 parameter.
441
442 * xfaces.c (face_at_string_position): Add parameter MOUSE_P.
443 Handle `mouse-face'.
444
445 * dispextern.h (face_at_string_position): Change prototype.
446
e1fbabaf
GM
447 * dired.c (directory_files_internal): Handle EAGAIN more
448 efficiently.
449
129004d3
GM
450 * keyboard.c (make_lispy_event): Avoid generating drag events
451 if the mouse hasn't actually moved to another buffer position.
452
80c8ab8c
DL
4532001-03-08 Dave Love <fx@gnu.org>
454
129004d3 455 * eval.c (syms_of_eval) <debug-on-error>: Doc fix.
80c8ab8c 456
989521fd
GM
4572001-03-08 Gerd Moellmann <gerd@gnu.org>
458
459 * process.c (Fset_process_window_size): Fix a typo.
460
bb5c338d
KH
4612001-03-08 Kenichi Handa <handa@etl.go.jp>
462
463 * coding.c (detect_coding_sjis): Do more rigid check.
464 (detect_coding_big5): Likewise.
465 (decode_coding_sjis_big5): Likewise.
466 (Fdetect_coding_region): Call detect_coding_system with tailing
467 anchor byte `\0' for more rigid detection.
a1b12fe9
KH
468 (detect_coding_mask): Fix the incorrect handling of arg
469 MULTIBYTEP.
bb5c338d
KH
470 (Fdetect_coding_string): Likewise.
471
8b8f9197
SM
4722001-03-07 Stefan Monnier <monnier@cs.yale.edu>
473
474 * bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
475 a string before extracting its data.
476
3bdf2660
GM
4772001-03-07 Gerd Moellmann <gerd@gnu.org>
478
479 * window.c (Frecenter): Rewrite code handling negative values
480 of ARG on graphical frames.
481
4822001-03-07 Eli Zaretskii <a34785@is.elta.co.il>
483
484 * window.c (displayed_window_lines): If W->start is outside the
485 accessible portion of the buffer, call start_display with BEGV or
486 ZV instead of W->start.
487
471f86b9
GM
4882001-03-07 Gerd Moellmann <gerd@gnu.org>
489
2ab62c6c
GM
490 * buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
491
471f86b9
GM
492 * process.c (Fset_process_filter): Don't crash if the input
493 file descriptor of PROCESS is closed.
494 (Fset_process_window_size): Likewise.
495
101922c3
GM
4962001-03-06 Kenichi Handa <handa@etl.go.jp>
497
498 * xterm.c (XTflash): Make the timeout of select shorter, and call
499 select repeatedly until the desired time expires.
500
45d051a7
GM
5012001-03-06 Gerd Moellmann <gerd@gnu.org>
502
503 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
504
505 * xfns.c (Fx_create_frame): Clear Vwindow_list.
506
507 * lisp.h (Vwindow_list): Declare extern.
508
8f372c46
EZ
5092001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
510
511 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
512
f16a7aa5
GM
5132001-03-06 Gerd Moellmann <gerd@gnu.org>
514
157ae273
GM
515 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
516 to detect a case where we have to highlight a different region
517 despite not having left the currently highlighted region.
518 Set mouse_face_overlay in the x_display_info.
45d051a7 519 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
157ae273
GM
520
521 * xterm.h (struct x_display_info): Add mouse_face_overlay.
522
523 * buffer.c (mouse_face_overlay_overlaps): New function.
524
525 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
526 (Qmouse_face): Declare extern.
527
f16a7aa5
GM
528 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
529 if face_change_count is non-zero.
530
827afcac
KH
5312001-03-06 Kenichi Handa <handa@etl.go.jp>
532
533 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
534 that the source is unibyte.
535
14c7242e
DL
5362001-03-05 Dave Love <fx@gnu.org>
537
827afcac 538 * xterm.c (XTmouse_position): Fix typo.
14c7242e 539
c28b847b
GM
5402001-03-05 Gerd Moellmann <gerd@gnu.org>
541
542 * minibuf.c (read_minibuf): Clean up the binding stack if
543 called noninteractively.
544
b86644f2
KH
5452001-03-05 Kenichi Handa <handa@etl.go.jp>
546
547 * coding.c (syms_of_coding): Docstring modified.
548
203682cc 5492001-03-05 Kenichi Handa <handa@etl.go.jp>
b86644f2
KH
550
551 * charset.c (char_to_string): If a single byte char has modifier
552 bits that can't be reflected to the character code, ignore them
45d051a7 553 instead of signaling an error.
b86644f2 554
e30bd7b7
EZ
5552001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
556
557 * s/msdos.h: Update copyright notice.
558
559 * dosfns.h: Update copyright notice.
560
561 * dosfns.c: Update copyright notice.
562
563 * msdos.c: Update copyright notice.
564
b52b65bd
GM
5652001-03-02 Gerd Moellmann <gerd@gnu.org>
566
567 * xterm.c (glyph_rect): New function.
568 (XTmouse_position): Use it to raise the threshold for mouse
569 movement event generation.
570
53c4b1e6
EZ
5712001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
572
573 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
574 specifies (reverse . t), reverse the initial screen colors.
575 (IT_set_frame_parameters): If the property is foreground-color,
576 but we are reversing the colors, set bg_set, not fg_set. Likewise
577 for setting background-color and reversing: set fg_set. Set
578 unspecified-fg and unspecified-bg correctly when (reverse . t) is
579 in effect.
580
581 * xfaces.c (Finternal_set_lisp_face_attribute)
582 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
583 parameters alist.
584
f964b4d7
GM
5852001-03-02 Gerd Moellmann <gerd@gnu.org>
586
ef53d75e
GM
587 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
588 to a single slash in the middle of file names.
589
cda0f4da
GM
590 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
591 Accept only alphanumeric time zone names.
592
f964b4d7
GM
593 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
594 or width area.
595 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
596 a widget to zero height.
597
c3c45f65
GM
5982001-03-01 Gerd Moellmann <gerd@gnu.org>
599
600 * window.c (Fwindow_end): Call move_it_past_eol only if
601 ending up on a partially visible line.
602
028d739a
DL
6032001-03-01 Dave Love <fx@gnu.org>
604
605 * ccl.c (Fccl_execute): Doc fix.
606
57c5889c
GM
6072001-03-01 Gerd Moellmann <gerd@gnu.org>
608
35f59f6b
GM
609 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
610 of the tool bar before calling x_figure_window_size.
611
f84ff02c
GM
612 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
613 NULL after destroying it, otherwise XTread_socket can access a
614 destroyed widget when input is unblocked.
615
8b8f9197 616 * xfns.c (x_set_foreground_color): Set the background of the cursor GC.
420f628c 617
57c5889c
GM
618 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
619 same name as before, although there was a change in fontsets.
620
224227d1
KR
6212001-02-28 Ken Raeburn <raeburn@gnu.org>
622
4560730a
KR
623 * lisp.h (Fframe_parameter): Declare.
624
224227d1 625 * window.c (set_window_buffer): Field vscroll is an int, not a
57c5889c 626 Lisp_Object.
224227d1 627
ece93c02
GM
6282001-02-28 Gerd Moellmann <gerd@gnu.org>
629
11ef99b9
GM
630 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
631 NULL instead.
632
633 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
634 NULL instead.
635
ece93c02
GM
636 * alloc.c (toplevel): Include process.h.
637 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
638 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
639 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
640 (allocate_vector, allocate_hash_table, allocate_window)
641 (allocate_frame, allocate_process, allocate_other_vector): New
642 functions.
643 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
644 (mark_maybe_pointer): New function.
645 (mark_memory): Also mark Lisp data to which only pointers
646 remain and not Lisp_Objects.
647 (min_heap_address, max_heap_address): New variables.
648 (mem_find): Return MEM_NIL if START is below min_heap_address or
649 above max_heap_address.
650 (mem_insert): Compute min_heap_address and max_heap_address.
651
652 * process.c (make_process): Use allocate_process.
653
654 * frame.c (make_frame): Use allocate_frame.
655
656 * window.c (make_window, make_dummy_parent): Use allocate_window.
657 (Fcurrent_window_configuration): Use allocate_other_vector.
658
659 * lisp.h (allocate_vectorlike): Remove prototype.
660 (allocate_vector, allocate_other_vector, allocate_frame)
661 (allocate_window, allocate_process, allocate_hash_table):
662 Add prototypes.
663
664 * fns.c (Fdelete, larger_vector): Use allocate_vector.
665 (make_hash_table, copy_hash_table): Use allocate_hash_table.
666
063af457
KH
6672001-02-27 Kenichi Handa <handa@etl.go.jp>
668
669 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
670 treat the produced bytes as a valid multibyte sequence.
671
672 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
673 (ccl_driver) <CCL_WriteMultibyteChar2>: Use
674 CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
675 <ccl_finish>: Set ccl->eight_bit_control properly.
676
677 * ccl.h (struct ccl_program): New member eight_bit_control.
678
f58c6494
SM
6792001-02-26 Stefan Monnier <monnier@cs.yale.edu>
680
681 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
682 accessible_keymaps_char_table.
683 (accessible_keymaps_char_table): Obey `is_metized'.
684 (where_is_internal, Fwhere_is_internal): Don't confuse int and
685 Lisp_Object.
686
c596c392
GM
6872001-02-26 Gerd Moellmann <gerd@gnu.org>
688
689 * dispnew.c: Check HAVE_TERM_H before including term.h.
690
425de386
AI
6912001-02-24 Andrew Innes <andrewi@gnu.org>
692
693 * makefile.w32-in: Update copyright notice.
694
2ba11bbd
SM
6952001-02-24 Stefan Monnier <monnier@cs.yale.edu>
696
697 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
698
66c56ed1
KH
6992001-02-24 Kenichi Handa <handa@etl.go.jp>
700
4c1593ce
KH
701 * Makefile.in (lisp): Add international/utf-8.elc.
702
66c56ed1
KH
703 * fontset.c (Fnew_fontset): Fix handling of the case that an
704 element of FONTLIST is a cons of family and registry.
705
796ead7e
JR
7062001-02-23 Jason Rumney <jasonr@gnu.org>
707
708 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
709 to height unconditionally.
710
711 * w32term.c (x_set_glyph_string_background_width): Extend the
712 background face to the end of the drawing area in the text area,
713 only.
714 (x_insert_glyphs): Call window_box_left to obtain the left
715 x-coordinate of the area to shift.
716
717 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
718 safe_run_hooks.
719
f6839838
AI
7202001-02-22 Andrew Innes <andrewi@gnu.org>
721
722 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header
723 files.
724 ($(BLD)\dispnew.obj):
725 ($(BLD)\editfns.obj):
726 ($(BLD)\fileio.obj):
727 ($(BLD)\filelock.obj):
728 ($(BLD)\keyboard.obj):
729 ($(BLD)\w32proc.obj):
730 ($(BLD)\process.obj):
731 ($(BLD)\sysdep.obj): Ditto.
732
733 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
734 header files.
735 ($(BLD)/dispnew.$(O)):
736 ($(BLD)/editfns.$(O)):
737 ($(BLD)/fileio.$(O)):
738 ($(BLD)/filelock.$(O)):
739 ($(BLD)/keyboard.$(O)):
740 ($(BLD)/w32proc.$(O)):
741 ($(BLD)/process.$(O)):
742 ($(BLD)/sysdep.$(O)): Ditto.
743
c224f70b
GM
7442001-02-22 Gerd Moellmann <gerd@gnu.org>
745
51695746
GM
746 * xdisp.c (forward_to_next_line_start): When taking the shortcut
747 at the start of the function, check that the \n in it->c is
748 from the iterator's current position.
749
a61b7058
GM
750 * xdisp.c (handle_single_display_prop): Add parameter
751 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
752 properties which replace the display of text with something else.
753 (handle_display_prop): Call handle_single_display_prop with
754 additional argument saying if we already replaced text display
755 with something else. Use AREF.
756 (with_echo_area_buffer_unwind_data, display_menu_bar)
757 (decode_mode_spec_coding): Use AREF and ASIZE.
758
3473f362
GM
759 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
760 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
761 * vmstime.h: Files removed.
762
2bb58df3
GM
763 * unexencap.c, unexfx2800.c: Files removed.
764
c224f70b
GM
765 * dispnew.c (direct_output_for_insert): Give up if we are showing
766 a message or just cleared the message because we might need to
767 resize the echo area window or display an empty echo area.
768
ffc9ff0c
GM
7692001-02-21 Gerd Moellmann <gerd@gnu.org>
770
0528abe1
GM
771 * xdisp.c (redisplay_internal): Do the
772 mark_window_display_accurate after all windows have been
773 redisplayed because this call resets flags in buffers which are
774 needed for proper redisplay.
775
ffc9ff0c
GM
776 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c: Use
777 display_hourglass_p, start_hourglass, cancel_hourglass instead of
778 the old names.
779
780 * w32term.h (struct x_output): Rename busy_cursor to
781 hourglass_cursor, busy_window to hourglass_window, busy_p to
782 hourglass_p.
783
784 * msdos.h (struct x_output): Rename busy_window to
785 hourglass_window, busy_p to hourglass_p.
786
787 * xterm.h (struct x_output): Rename busy_cursor to
788 hourglass_cursor, busy_window to hourglass_window, busy_p to
789 hourglass_p.
790
791 * xfns.c: Rename everything containing *busy_cursor* and similar
792 to *hourglass*.
793 (syms_of_w32fns): Rename x-busy-pointer-shape to
794 x-hourglass-pointer-shape, display-busy-cursor to
795 display-hourglass, busy-cursor-delay to hourglass-delay.
796
797 * w32fns.c: Rename everything containing *busy_cursor* and similar
798 to *hourglass*.
799 (syms_of_w32fns): Rename x-busy-pointer-shape to
800 x-hourglass-pointer-shape, display-busy-cursor to
801 display-hourglass, busy-cursor-delay to hourglass-delay.
802
803 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
804 of its busy_p flag.
805
806 * dispextern.h (start_hourglass, cancel_hourglass)
807 (display_hourglass_p): Renamed from *busy_cursor*.
808
ab2c5f0a
GM
8092001-02-20 Gerd Moellmann <gerd@gnu.org>
810
d17e49a8
GM
811 * keyboard.c (read_char): When an event from unread-command-events
812 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
813
fa97adf6
GM
814 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
815 equal to the current buffer.
816
ab2c5f0a
GM
817 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
818 nil, otherwise we're left with truncate_lines t when a message
819 is printed with message-truncate-lines bound to t.
820
aeac019e
GM
8212001-02-19 Gerd Moellmann <gerd@gnu.org>
822
c8bc6f65
GM
823 * window.c (Fmove_to_window_line): Undo last change.
824 (displayed_window_lines): Call line_bottom_y to determine
825 the line's bottom position.
826
827 * dispextern.h (line_bottom_y): Add prototype.
828
829 * xdisp.c (line_bottom_y): New function extracted from
830 pos_visible_p.
831 (pos_visible_p): Use it.
832
980a2d69
GM
833 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
834 set redisplaying_p to 0 here instead of in Frecursive_edit.
835 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
836 set redisplaying_p.
837
184d2372
GM
838 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
839 New variables.
840 (syms_of_xdisp): Initialize new variables.
841 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
842 Specbind `inhibit-menubar-update' when updating the menu bar.
843
65048e97
GM
844 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
845 safe_run_hooks.
846
847 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
848 safe_run_hooks.
849
a57c4026
GM
850 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
851 is null.
852
aeac019e
GM
853 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
854 to the start of the file.
855
76846b31
GM
8562001-02-16 Gerd Moellmann <gerd@gnu.org>
857
f3f053f3 858 * window.c (set_window_buffer): Fix last change.
25237df5 859
f3f053f3
GM
860 * window.c (set_window_buffer): Set window's vscroll to 0.
861
dad75588
GM
862 * window.c (coordinates_in_window): Increase width of area
863 where the vertical line can be dragged.
864
c220b753
GM
865 * xterm.c (x_set_glyph_string_background_width): Extend the
866 background face to the end of the drawing area in the text
867 area, only.
868
c56b1c1b
GM
869 * xdisp.c (handle_single_display_prop): Set iterator's position
870 to where the `display' property starts, like for images.
871 (dump_glyph): New function.
872 (dump_glyph_row): Use it. Dump info about marginal areas.
873
874 * dispnew.c (direct_output_for_insert): Recognize more cases where
875 glyphs can be written instead of being inserted.
876
877 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
878 the left x-coordinate of the area to shift.
879
76846b31
GM
880 * dired.c (directory_files_internal): Set result list to nil
881 before retrying.
882
0fc71a77
KH
8832001-02-15 Kenichi Handa <handa@etl.go.jp>
884
885 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
886 invalid multibyte sequence, treat *SRC as a character of
887 eight-bit-graphic.
888
25078b54
EZ
8892001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
890
891 * textprop.c (Fset_text_properties): Doc fix.
892
8399f8a0
GM
8932001-02-15 Gerd Moellmann <gerd@gnu.org>
894
895 * dispnew.c (update_text_area): Undo change of 2001-01-12.
896
9a2a6f73
DL
8972001-02-14 Dave Love <fx@gnu.org>
898
899 * coding.c: Doc and message fixes.
900
bf853fee
AI
9012001-02-14 Andrew Innes <andrewi@gnu.org>
902
903 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
904 Emacs frame above the screen size.
905
78c663d8
GM
9062001-02-14 Gerd Moellmann <gerd@gnu.org>
907
908 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
909
7cc9f69f
GM
9102001-02-13 Gerd Moellmann <gerd@gnu.org>
911
0a411995
GM
912 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
913 case that TO ends up beyond ZV after running before-change-functions.
914
5ddc1b75
GM
915 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
916 the selected window if it is showing the buffer in question.
917
7cc9f69f
GM
918 * dired.c (directory_files_internal): Initialize errno.
919 (toplevel): Include errno.h.
920
2e6621ca
GM
9212001-02-13 Kenichi Handa <handa@etl.go.jp>
922
923 * xfaces.c (best_matching_font): New parameter width_ratio.
924 Multiply avgwidth by width_ratio.
925 (choose_face_font): Call best_matching_font with width_ratio
926 calculated from the column width of C.
927
60222d69
AI
9282001-02-12 Andrew Innes <andrewi@gnu.org>
929
930 The following changes are to draw box lines inside characters area
931 if line-width is negative.
932
933 * w32term.c (x_produce_image_glyph): Pay attention to the case that
934 face->box_line_width is negative.
935 (x_produce_stretch_glyph): Likewise.
936 (x_produce_glyphs): Likewise.
937 (x_estimate_mode_line_height): Likewise.
938 (x_draw_glyph_string_background): Likewise.
939 (x_draw_glyph_string_foreground): Likewise.
940 (x_draw_composite_glyph_string_foreground): Likewise.
941 (x_draw_glyph_string_box): Likewise.
942 (x_draw_image_foreground): Likewise.
943 (x_draw_image_relief): Likewise.
944 (x_draw_image_foreground_1): Likewise.
945 (x_draw_image_glyph_string): Likewise.
946
9804b846
KH
9472001-02-09 Kenichi Handa <handa@etl.go.jp>
948
949 The following changes are to draw box lines inside characters area
950 if line-width is negative.
951
952 * xterm.c (x_produce_image_glyph): Pay attention to the case that
953 face->box_line_width is negative.
954 (x_produce_stretch_glyph): Likewise.
955 (x_produce_glyphs): Likewise.
956 (x_estimate_mode_line_height): Likewise.
957 (x_draw_glyph_string_background): Likewise.
958 (x_draw_glyph_string_foreground): Likewise.
959 (x_draw_composite_glyph_string_foreground): Likewise.
960 (x_draw_glyph_string_box): Likewise.
961 (x_draw_image_foreground): Likewise.
962 (x_draw_image_relief): Likewise.
963 (x_draw_image_foreground_1): Likewise.
964 (x_draw_image_glyph_string): Likewise.
965
966 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
967 and :line-width can be negative.
968 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be
969 negative.
970
49be9f70
JR
9712001-02-09 Jason Rumney <jasonr@gnu.org>
972
973 * w32term.c (w32_encode_char): Treat eight bit graphic and control
974 characters the same as ASCII and latin-1.
975 (x_display_and_set_cursor): Check for the focus frame's selected
976 window instead of selected_window.
977 (x_after_update_window_line): Don't clear if frame's internal
978 border width is zero.
979 (x_new_font): Don't change a tooltip's size.
980 (w32_initialize): Set char_ins_del_ok to 1.
981
982 * w32fns.c (Fx_show_tip): Fix calls to make_number.
983 (x_set_font): If font hasn't changed, avoid recomputing
984 faces and other things.
985 (x_set_tool_bar_lines): Do nothing if frame is
986 minibuffer-only,
987 (Fx_create_frame): Add the tool bar height to the frame
988 height.
989 (x_create_tip_frame): Prevent changing the tooltip's
990 background color by specifying a color for the default font
991 in .Xdefaults.
992 (Qcancel_timer): New variable.
993 (syms_of_w32fns): Initialize and staticpro it.
994 (Fx_hide_tip, Fx_show_tip): Use it.
995 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
996 the timer.
997 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
998
999 * w32.c (init_environment): Duplicate local string before putenv.
1000
555e35d2
SZ
10012001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
1002
1003 * charset.c (Fstring): A typo.
1004
19c92c94
KH
10052001-02-09 Kenichi Handa <handa@etl.go.jp>
1006
e47a1c33
KH
1007 * charset.c (Fstring): If all arguments are less than 256, return
1008 a unibyte string.
1009
1010 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
1011 return a unibyte string.
1012
19c92c94
KH
1013 * coding.c (code_convert_region): After detecting a coding, if
1014 nothing found, set coding->composing to COMPOSITION_NO.
1015 (decode_coding_string): Likewise.
1016
d8e675f5
SM
10172001-02-08 Stefan Monnier <monnier@cs.yale.edu>
1018
1019 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
1020 to avoid overflow.
1021
bd503487
KH
10222001-02-07 Kenichi Handa <handa@etl.go.jp>
1023
1024 * charset.c (parse_str_to_multibyte): New function.
1025
1026 * charset.h (parse_str_to_multibyte): Extern it.
1027
1028 * print.c (print_string): If we are going to print a unibyte
1029 string into a multibyte buffer, convert the string to multibyte by
1030 str_to_multibyte.
1031
a8370d72
AI
10322001-02-06 Andrew Innes <andrewi@gnu.org>
1033
1034 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
1035 been created. It seems we can get sent window messages such as
1036 WM_ERASEBKGND before we properly update a frame.
1037
c363a1d6
GM
10382001-02-06 Gerd Moellmann <gerd@gnu.org>
1039
1040 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
1041 Avoid some unnecessary cursor positioning.
1042
a08332c0
GM
10432001-02-05 Gerd Moellmann <gerd@gnu.org>
1044
1045 * xfaces.c (split_font_name): Compute numeric value of
1046 XLFD_AVGWIDTH.
1047 (LFACE_AVGWIDTH): New macro.
1048 (LFACEP): Use AREF.
1049 (check_lface_attrs): Check LFACE_AVGWIDTH.
1050 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
1051 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
1052 (merge_face_vectors): Check LFACE_AVGWIDTH.
1053 (Finternal_make_lisp_face): Use AREF.
1054 (xm_set_menu_resources_from_menu_face)
1055 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
1056 (Finternal_lisp_face_empty_p): Use AREF.
1057 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
1058 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
1059 Compare average widths..
1060 (best_matching_font): Arrange for comparing average widths.
1061
1062 * dispextern.h (enum lface_attribute_index): Add
1063 LFACE_AVGWIDTH_INDEX (invisible from Lisp).
1064
5cb3c8d4
DL
10652001-02-05 Dave Love <fx@gnu.org>
1066
1067 * puresize.h: Revert last change following loadup.el change.
1068
193fba87
AI
10692001-02-05 Andrew Innes <andrewi@gnu.org>
1070
1071 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
1072 invocation of temacs, to work with Windows 2000.
1073 (bootstrap-emacs): Ditto.
1074
e16f52ce
GM
10752001-02-05 Gerd Moellmann <gerd@gnu.org>
1076
7a58ab59
GM
1077 * xterm.c (x_display_and_set_cursor): Check for the focus
1078 frame's selected window instead of selected_window.
1079
e89aaabd
GM
1080 * xdisp.c (try_scrolling): If point is in the line below the
1081 window, make sure to move the iterator at least a canonical
1082 char height down.
1083
e16f52ce
GM
1084 * window.c (Fmove_to_window_line): Don't add 1 if window is
1085 vscrolled.
1086
789ce875
KH
10872001-02-05 Kenichi Handa <handa@etl.go.jp>
1088
1089 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not. If
1090 invalid, execute CCL_INVALID_CMD.
1091 (ccl_driver): If the CCL program is terminated because of
1092 CCL_STAT_INVALID_CMD, copy the remaining source data to the
1093 destination instead of throwing them away.
1094
20b28f82
GM
10952001-02-02 Gerd Moellmann <gerd@gnu.org>
1096
79fb38c0
GM
1097 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
1098 faces and other things.
1099
20b28f82
GM
1100 * xdisp.c (get_next_display_element): Fix case of empty
1101 display table entry.
1102
5a72551e
EZ
11032001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
1104
eb24d0bf
EZ
1105 * editfns.c (Fconstrain_to_field): Doc fix.
1106
6a3f48c7
EZ
1107 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
1108 into `thoroughly', to make it consistent with the doc string.
1109
5a72551e
EZ
1110 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
1111
01acdb05
GM
11122001-02-01 Gerd Moellmann <gerd@gnu.org>
1113
0353b28f
GM
1114 * search.c (search_buffer): Call set_search_regs with a byte
1115 position, not a character position.
1116
01acdb05
GM
1117 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
1118 minibuffer-only,
1119
e86b5133
EZ
11202001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
1121
1122 * frame.c (Fmodify_frame_parameters): Doc fix.
1123
7442878f
GM
11242001-01-31 Gerd Moellmann <gerd@gnu.org>
1125
01acdb05
GM
1126 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
1127 identifier which is not reserved by Standard C.
1128
7442878f
GM
1129 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
1130
1131 * window.c (enum window_part): New enumeration.
1132 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
1133 Qright_bitmap_area.
1134 (coordinates_in_window): Return an enumerator from enum
1135 window_part. Fix handling of right scroll bar.
1136 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
1137 `right-fringe' instead of `left-bitmap-area' and
1138 `right-bitmap-area'. Use enumerators from enum window_part
1139 instead of hard-coded integers.
1140 (check_window_containing, window_from_coordinates): Use
1141 enumerators from enum window_part instead of hard-coded integers.
1142 (syms_of_window): Replace Qleft_bitmap_area and
1143 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
1144
7c132cba
EZ
11452001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
1146
1147 * editfns.c (Fformat_time_string): Doc fix.
1148
c359dd9e
SM
11492001-01-31 Stefan Monnier <monnier@cs.yale.edu>
1150
1151 * keymap.c (Fwhere_is_internal): Use the first valid binding
1152 if no ascii binding is found (when firstonly is t).
1153
ce070307
GM
11542001-01-31 Gerd Moellmann <gerd@gnu.org>
1155
b4f30ec5
GM
1156 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
1157 instead of Finteractive_p.
1158
1159 * lisp.h (interactive_p): Add prototype.
1160
1161 * eval.c (interactive_p): New function.
1162 (Finteractive_p): Use it.
1163
ce070307
GM
1164 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
1165
f57b6e64
DL
11662001-01-31 Dave Love <fx@gnu.org>
1167
d61c7afe
DL
1168 * .gdbinit (hook-run): Define to run xreload.
1169
f57b6e64
DL
1170 * textprop.c (Fset_text_properties): Fix newline in doc string.
1171
eef93f99
GM
11722001-01-30 Gerd Moellmann <gerd@gnu.org>
1173
1174 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp): Use
1175 DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
1176
1177 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
1178 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
1179 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
1180
1181 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
1182 height.
1183
d9c1f6f9
DL
11842001-01-30 Dave Love <fx@gnu.org>
1185
1186 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
1187 AFTER_POTENTIAL_GC.
1188
e8f044a0
GM
11892001-01-29 Gerd Moellmann <gerd@gnu.org>
1190
1191 * bytecode.c (Fbyte_code) <Bcurrent_column>: Add
1192 BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
1193
8e1db7b3
EZ
11942001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
1195
1196 * textprop.c (Fset_text_properties): Doc fix.
1197
4eefd9d2
GM
11982001-01-29 Gerd Moellmann <gerd@gnu.org>
1199
1200 * xdisp.c (forward_to_next_line_start): Remove xassert.
1201
fccb8288
EZ
12022001-01-29 Jason Rumney <jasonr@gnu.org>
1203
4eefd9d2 1204 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
fccb8288
EZ
1205 returning without releasing it.
1206
76581eab
KH
12072001-01-29 Kenichi Handa <handa@etl.go.jp>
1208
1209 * w32fns.c (w32_font_match): Allocate three more bytes to regex
1210 for '^', '$', and '\0'.
1211
83a96b4d
AC
12122001-01-28 Andrew Choi <akochoi@i-cable.com>
1213
5604ec34
AC
1214 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
1215 regex for '^', '$', and '\0'.
1216
83a96b4d
AC
1217 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
1218 only if current_sblock has been initialized.
1219
1220 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
1221 terminal frame even if it is the only visible frame.
1222
c09a6440
KH
12232001-01-28 Kenichi Handa <handa@etl.go.jp>
1224
1225 * fontset.c (font_family_registry): Even if FONTNAME conform to
1226 XLFD, if it specifies other fields than family and registry,
1227 return FONTANME. New argument FORCE if nonzero cancel that
1228 feature.
1229 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
1230 a signle byte character. Don't set FAMILY part to nil here. It
1231 is handled by the caller choose_face_font.
1232 (Fnew_fontset): Call font_family_registry with FORCE 0.
1233 (Fset_fontset_font): Likewise.
1234
4dcd74e6
GM
12352001-01-27 Gerd Moellmann <gerd@gnu.org>
1236
1237 * xdisp.c (display_line): Don't treat a newline as fitting
1238 on the line.
1239
d2906bf8
GM
12402001-01-26 Gerd Moellmann <gerd@gnu.org>
1241
0130fe1a
GM
1242 * window.c (size_window): Set the window's orig_top to nil when
1243 changing heights, so that a future shrink_mini_window won't
1244 restore a bogus height.
1245
550f0e6a
GM
1246 * frame.c (do_switch_frame): If selected frame has a mini-window,
1247 resize that to exact size.
1248
b7b20fbd
GM
1249 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
1250
a47b7816
GM
1251 * xdisp.c (display_line): Simplify check for glyphs fitting
1252 entirely in the line.
1253
d2906bf8
GM
1254 * xfns.c (xic_style): New variable.
1255 (create_frame_xic): Move static variable to global scope for
550f0e6a 1256 the case that `static' gets defined away.
d2906bf8 1257
73df2b1e
KH
12582001-01-26 Kenichi Handa <handa@etl.go.jp>
1259
1260 * coding.c (decode_coding): Set a flag for inhibiting
1261 inconsistent eol.
1262 (code_convert_region): Always set saved_coding_symbol.
1263 (decode_coding_string): Likewise. Update coding->symbol when we
1264 encounter a inconsistent eol by the same way as
1265 code_convert_region.
1266
6613cfc4
GM
12672001-01-25 Gerd Moellmann <gerd@gnu.org>
1268
c5e6e06b
GM
1269 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
1270 XClearArea.
1271
1272 * xterm.c (x_after_update_window_line): Don't clear if frame's
1273 internal border width is zero.
1274 (x_clear_area): New function.
1275 (x_after_update_window_line, x_clear_end_of_line)
1276 (x_scroll_bar_create, x_scroll_bar_set_handle)
1277 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
1278 instead of XClearArea.
1279
1280 * xterm.h (x_clear_area): Add prototype.
1281
6613cfc4
GM
1282 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
1283 which doesn't seem necessary anymore with Lesstif 0.92.
1284
650cc6cc
DL
12852001-01-25 Dave Love <fx@gnu.org>
1286
34ac3367
DL
1287 * puresize.h (BASE_PURESIZE): Up to 720000.
1288
650cc6cc
DL
1289 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
1290
5e37dc22
GM
12912001-01-25 Gerd Moellmann <gerd@gnu.org>
1292
e1e441f9
GM
1293 * xdisp.c (echo_area_display): Don't call redisplay_internal
1294 when Emacs is shutting down. We can't run hooks etc. that
1295 would be necessary to do a redisplay.
1296
5e37dc22
GM
1297 * lread.c (read_integer): Use type EMACS_INT instead of int.
1298
0fb94c7f
EZ
12992001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
1300
1301 * ccl.c (ccl_driver): Fix last change.
1302
e3778624
KH
13032001-01-25 Kenichi Handa <handa@etl.go.jp>
1304
1305 * ccl.h (sturct ccl_program): New member suppress_error.
1306
bb264518 1307 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
e3778624
KH
1308 insert error message to the output.
1309 (setup_ccl_program): Initialize ccl->suppress_error to 0.
1310
1311 * coding.h (struct coding_system): New member suppress_error.
1312
1313 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
1314 (Fset_terminal_coding_system_internal): Set the member
1315 suppress_error to 1.
1316 (Fset_safe_terminal_coding_system_internal): Likewise.
1317
245ed2b1
SM
13182001-01-24 Stefan Monnier <monnier@cs.yale.edu>
1319
1320 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
1321 as if it was a `charset'.
1322
f9aaedb6
GM
13232001-01-24 Gerd Moellmann <gerd@gnu.org>
1324
1325 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
1326 value in where_is_cache; the next lookup in the cache returns
1327 something bogus if we do.
1328
c3902c3e
EZ
13292001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
1330
1331 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
1332 if HAVE_WINDOW_SYSTEM isn't defined.
1333
3497f73e
GM
13342001-01-24 Gerd Moellmann <gerd@gnu.org>
1335
e7e41584
GM
1336 * fns.c (sweep_weak_table): Fix code taking items out of
1337 the hash collision chain. Some cleanup.
1338
3497f73e
GM
1339 * xterm.c (x_new_font): Don't change a tooltip's size.
1340
1341 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
1342 background color by specifying a color for the default font
1343 in .Xdefaults.
1344
3d48e687
KH
13452001-01-24 Kenichi Handa <handa@etl.go.jp>
1346
96531b20
KH
1347 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
1348 a workaround for SunOS 4's cc.
1349 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
1350 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
1351 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
1352 statement.
3d48e687 1353
a30629d2
GM
13542001-01-23 Gerd Moellmann <gerd@gnu.org>
1355
1356 * xterm.c (x_set_window_size_1): New function extracted from
1357 x_set_window_size.
1358 (x_set_window_size): Use it.
1359 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
1360 doesn't have a widget, like tooltips.
1361
5a43decf
EZ
13622001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
1363
1364 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc
1365 fix.
1366
b0e98867
KH
13672001-01-23 Kenichi Handa <handa@etl.go.jp>
1368
1369 * fns.c (Fset_char_table_default): Fix to make sub char-table
1370 correctly.
1371
50606b4c
GM
13722001-01-22 Gerd Moellmann <gerd@gnu.org>
1373
cb2ddc53 1374 * xdisp.c (build_desired_tool_bar_string): Make sure we have
a30629d2 1375 a desired tool bar string, even if there are no tool bar
cb2ddc53
GM
1376 items.
1377
57c28064
GM
1378 * xdisp.c (Ftool_bar_lines_needed): New function.
1379 (syms_of_xdisp): Defsubr it.
1380
50606b4c
GM
1381 * editfns.c (Fformat): Don't extend text properties from arguments
1382 to padding chars in the result.
1383
2f169c38
EZ
13842001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
1385
1386 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
1387
0f32f023
AI
13882001-01-20 Andrew Innes <andrewi@gnu.org>
1389
1390 * w32term.c (w32_ring_bell): Only support visible bell on w32
1391 frames.
1392 (w32_initialize): Don't set term hooks that aren't actually needed
1393 in windowed mode.
1394
1395 * xfaces.c (realize_default_face):
1396 (realize_face):
1397 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
1398
1399 * xdisp.c (handle_single_display_prop): Remove references to
1400 FRAME_W32_CONSOLE_P.
1401
1402 * dispnew.c (Fredraw_frame): Remove reference to
1403 FRAME_W32_CONSOLE_P.
1404
1405 * frame.h (output_method): Remove output_w32_console method.
1406 (FRAME_W32_CONSOLE_P): Remove macro.
1407
1408 * frame.c (Qw32_console): Remove variable.
1409 (Fframep): Remove references to it.
1410 (syms_of_frame): Ditto.
1411 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
1412
1413 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
1414 redefinition.
1415
7173eada
KH
14162001-01-20 Kenichi Handa <handa@etl.go.jp>
1417
1418 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
1419
755b45ce
AI
14202001-01-19 Andrew Innes <andrewi@gnu.org>
1421
1422 * w32.c (init_environment): Add a version-independent site-lisp
1423 directory to EMACSLOADPATH, after the version dependent one.
1424
0a949811
GM
14252001-01-19 Gerd Moellmann <gerd@gnu.org>
1426
8501998a
GM
1427 * editfns.c (Fbuffer_substring): Doc fix.
1428
0a949811
GM
1429 * xdisp.c (message_dolog, message2, message2_nolog): Rename
1430 parameter LEN to NBYTES.
1431
e6ebcbbe
KH
14322001-01-19 Kenichi Handa <handa@etl.go.jp>
1433
200ecca2
KH
1434 * charset.c (strwidth): Use c_string_width.
1435 (c_string_width): New function.
1436 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
1437 Caller changed.
1438
1439 * charset.h (c_string_width, lisp_string_width): Extern them.
1440
1441 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
1442
e6ebcbbe
KH
1443 * indent.c (check_composition): Check validity of composition.
1444
200ecca2
KH
1445 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
1446 characters by calling c_string_width.
1447 (x_consider_frame_title): Get byte length of frame tile string
1448 correctly.
1449 (display_mode_element): Pay attention to width of non-ASCII
1450 characters by calling strwidth.
1451
8692ca92
GM
14522001-01-18 Gerd Moellmann <gerd@gnu.org>
1453
8962e303
GM
1454 * xfns.c (Qcancel_timer): New variable.
1455 (syms_of_xfns): Initialize and staticpro it.
1456 (Fx_hide_tip, Fx_show_tip): Use it.
1457 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
1458 the timer.
1459 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
1460
91523be9
GM
1461 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
1462
1463 * window.h (WINDOW_LIVE_P): New macro.
1464
b0b7ed0e
GM
1465 * window.c (window_size_fixed): New variable.
1466 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
1467 the doc string.
1468
06bccf8e
GM
1469 * eval.c (specbind): If binding a per-buffer variable which
1470 doesn't have a buffer-local value in the current buffer, change
1471 the global value by changing the value of the symbol bound in all
1472 buffers not having their own value, to make it consistent with
1473 what happens with other buffer-local variables.
1474
8692ca92
GM
1475 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
1476
1477 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
1478 when searching for a newline.
1479
bb3a3b50
KH
14802001-01-18 Kenichi Handa <handa@etl.go.jp>
1481
1482 * xdisp.c (display_string): Fix previous change.
1483
c2cc16fa
JR
14842001-01-18 Jason Rumney <jasonr@gnu.org>
1485
1486 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
1487 GLYPH_DEBUG is defined.
1488 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
1489 true for images with `:ascent 100'.
1490 (x_set_mouse_face_gc): If the last used mouse face has gone in the
1491 meantime, use face MOUSE_FACE_ID.
1492 If first glyph isn't a character glyph, use the ASCII NUL
1493 character to determine the face.
1494 (expose_area): Do not treat left margin specially.
1495 (note_mode_line_highlight): If no local_map, check global keymap.
1496 (note_mouse_highlight): Initialize overlay.
1497 (clear_mouse_face): Don't return if tip_frame is
1498 non-nil.
1499 (show_scroll_bars): Remove unused function.
1500 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
1501 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
1502 Clip to row.
1503 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be
1504 nil.
1505 (x_free_frame_resources): Unload relief colors.
1506
9c11f79e
GM
15072001-01-17 Gerd Moellmann <gerd@gnu.org>
1508
3aec8722
GM
1509 * xdisp.c (forward_to_next_line_start): Avoid calling
1510 get_next_display_element when the newline is already found. This
1511 may change the iterator's position, when its current position is
1512 equal to the iterator's stop_charpos.
1513
f3ffc2c3
GM
1514 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
1515 zero, use this method only at the end of a line.
1516
a86110a8
GM
1517 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
1518 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
1519 if SCALABLE_FONTS_P is set.
1520
d26d6fd9
GM
1521 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
1522 so that scalable fonts are included.
1523
9c11f79e
GM
1524 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
1525 In the cache, use a key containing the information if scalable
1526 fonts are included.
1527 (x_load_font): Adapt to change of keys in the font cache.
1528
15292001-01-17 Kim F. Storm <storm@filanet.dk>
1530
d26d6fd9
GM
1531 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
1532 XListFonts to take advantage of font caching.
1533
9c11f79e
GM
1534 * xterm.c (x_list_fonts): Ensure caching font information when
1535 called for a null frame, which is the case frequently when Emacs
1536 starts.
1537
51446987
GM
15382001-01-17 Gerd Moellmann <gerd@gnu.org>
1539
f864120f
GM
1540 * xfns.c (QCconversion): Replaces QCalgorithm.
1541
1542 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
1543
1544 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
1545 of :algorithm.
1546
e37d1417
GM
1547 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
1548 not everything could be displayed.
1549
51446987
GM
1550 * line.h, x-list-font.c: Files removed because unused.
1551
9ad4f3e5
AI
15522001-01-17 Andrew Innes <andrewi@gnu.org>
1553
1554 * dired.c (directory_files_internal): Convert result from readdir
1555 to a unibyte string initially, to avoid possible misinterpretation
1556 of some bytes as the internal form of Emacs characters.
1557
2eda09b5
KH
15582001-01-17 Kenichi Handa <handa@etl.go.jp>
1559
1560 * fns.c (concat): Be sure to avoid putting the same `composition'
1561 property on the adjacent regions.
1562
826f3788
GM
15632001-01-16 Gerd Moellmann <gerd@gnu.org>
1564
f251459d
GM
1565 * window.c (Fset_window_hscroll): Don't set window's min_hscroll
1566 here.
1567 (Fscroll_right, Fscroll_left): Set it here instead, if called
1568 interactively.
1569
d57b83b3
GM
1570 * buffer.c (Fset_buffer_modified_p): Set buffer's
1571 prevent_redisplay_optimizations_p flag.
1572
826f3788
GM
1573 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
1574 * sysdep.c, vmsproc.c, xselect.c: Call
1575 redisplay_preserve_echo_area with additional arg.
1576
1577 * dispextern.h, lisp.h (redisplay_preserve_echo_area): Change
1578 prototype.
1579
1580 * xdisp.c (redisplay_preserve_echo_area): Add parameter
1581 FROM_WHERE, for debugging.
1582
261d788b
KH
15832001-01-16 Kenichi Handa <handa@etl.go.jp>
1584
1585 * ccl.c (Fregister_ccl_program): Handle the return value of
1586 resolve_symbol_ccl_program correctly.
bda6b481
KH
1587 (CCL_Extension): Fix typo (originally CCL_Extention). Caller
1588 changed.
261d788b 1589
bccee4f2
GM
15902001-01-15 Gerd Moellmann <gerd@gnu.org>
1591
e4ded23c
GM
1592 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
1593 has gone in the meantime, use face MOUSE_FACE_ID.
1594
ae24cb3b
GM
1595 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: If
1596 x_display_info_for_display returns null, don't try to close
1597 the display; we didn't open it.
1598
bccee4f2
GM
1599 * dispnew.c (save_or_restore_current_matrices): Function removed.
1600 (save_current_matrix, restore_current_matrix): New functions.
1601 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
1602 restore the frame's current matrix. Due to the glyph pointer
1603 setup done in adjust_glyph_matrix, there is no easy way to make
1604 saving the current matrix in the desired matrix generally correct,
1605 so don't try it.
1606
ebeccffa
KH
16072001-01-15 Kenichi Handa <handa@etl.go.jp>
1608
1609 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
1610 truncation glyphs.
1611 (display_line): Optimize for wide characters.
e4ded23c 1612 (display_string): Don't try to display a multi-column character
ebeccffa
KH
1613 partially. On ttys, produce more than one truncation glyph for
1614 multi-column characters that don't fit on the line.
1615
64388126
KH
16162001-01-13 Kenichi Handa <handa@etl.go.jp>
1617
1618 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]: Define
1619 it instead of WORDS_BIGENDIAN. Caller changed.
1620
8edb0a6f
JR
16212001-01-13 Jason Rumney <jasonr@gnu.org>
1622
1623 * w32fns.c (Fimage_size, image_ascent, lookup_image)
1624 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
1625 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1626 (tiff_format, gif_format, gs_format): Adapt to change of image
1627 margins.
1628
1629 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
1630 (x_draw_image_relief, x_draw_image_foreground_1)
1631 (x_draw_image_glyph_string): Adapt to change of image margins.
1632
1633 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
1634 variables.
1635
1636 * w32bdf.c (search_file_line, get_cached_font_char)
1637 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
1638
1639 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
1640
1641 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
1642 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
1643 (Fw32_send_sys_command): Remove unused variables.
1644 (w32_msg_pump): Add parentheses.
1645
1646 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
1647 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
1648 Add parentheses.
1649
4956d1ef
GM
16502001-01-12 Gerd Moellmann <gerd@gnu.org>
1651
b30623be
GM
1652 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
1653 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
1654 being a pair of margins.
1655 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
1656 to DEFVAR_LISP. Extend doc.
1657
1658 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
1659 margins.
1660 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
1661 pair of integers `(X . Y)', use X for the horizontal and Y for the
1662 vertical margin.
1663 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
1664 (parse_image_spec): Check it.
1665 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1666 (tiff_format, gif_format, gs_format): Use
1667 IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
1668
1669 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1670 (x_draw_image_relief, x_draw_image_foreground_1)
1671 (x_draw_image_glyph_string): Adapt to the change of image margins.
1672
1673 * dispextern.h (struct image): Replace member `margin' with
1674 `hmargin' and `vmargin'.
1675
4554cc79
GM
1676 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
1677 and GLYPHS.
1678
1679 * dispnew.c (update_text_area): Put code which decrements the
1680 stop position when the row's face extends to the end of the
3bffc665 1681 line in #if 0.
4554cc79 1682
3cccce8d
GM
1683 * xfns.c (x_set_mouse_color): Fix color allocation.
1684
4956d1ef
GM
1685 * keyboard.c: Call get_local_map with new argument list.
1686
1687 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
1688
1689 * intervals.h (enum map_property): Removed.
1690 (get_local_map): Change prototype.
1691
1692 * keymap.c: Call get_local_map with new argument list.
1693 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
1694
2c2ff7f2
GM
16952001-01-11 Gerd Moellmann <gerd@gnu.org>
1696
a23887b9
GM
1697 * xdisp.c (build_desired_tool_bar_string): Correct the computation
1698 of the size needed for the tool bar string. For the last image,
1699 use a `display' property that reaches to the end of the string.
1700
a7ee2d2e
GM
1701 * xselect.c (selection_request_dpyinfo): New variable.
1702 (x_handle_selection_request): Set it.
1703 (x_selection_request_lisp_error): Don't call
1704 x_decline_selection_request if selection request's display has
1705 been closed.
1706
2c2ff7f2
GM
1707 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]: Do
1708 the unregister_colors before calling XFreeColors.
1709
457b792c
GM
17102001-01-10 Dave Love <fx@gnu.org>
1711
1712 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
1713 ${SOME_MACHINE_LISP}, not ${lisp}.
1714
c1efd260
GM
17152001-01-10 Gerd Moellmann <gerd@gnu.org>
1716
a98b5ed9 1717 * xdisp.c (display_line): On ttys, produce more than one
4554cc79 1718 truncation glyph for multi-column characters that don't fit on the
a98b5ed9
GM
1719 line.
1720
ac95a621
GM
1721 * xselect.c (x_reply_selection_request): Add a comment.
1722
c1efd260
GM
1723 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
1724 XkbGetNames instead of XkbGetKeyboard.
1725
1bfb1345
DL
17262001-01-10 Dave Love <fx@gnu.org>
1727
1728 * sysdep.c (random): Revert the declaration.
1729
38119822
GM
17302001-01-09 Gerd Moellmann <gerd@gnu.org>
1731
35f464a7
GM
1732 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]: Call
1733 function string_bytes.
1734 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
1735
1736 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
1737 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
1738 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
1739 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
1740 the current sblock.
1741 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
1742 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
1743 after sweeping strings, and at the end.
1744 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
1745
38119822
GM
1746 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
1747 ensure that pop_message is called.
1748
1749 * keyboard.c (Fexecute_extended_command): Use a
1750 record_unwind_protect to ensure that pop_message is called.
1751
1752 * lisp.h (push_message_unwind): Add prototype.
1753
1754 * xdisp.c (push_message_unwind): New function.
1755
1756 * fileio.c (do_auto_save_unwind): Do the pop_message here
1757 instead of in Fdo_auto_save.
1758 (Fdo_auto_save): Don't call pop_message.
1759
f47a9ec4
KR
17602001-01-08 Ken Raeburn <raeburn@gnu.org>
1761
1762 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
1763 in inner block.
1764
a758f97d
GM
17652001-01-08 Gerd Moellmann <gerd@gnu.org>
1766
6d0afc03
GM
1767 * window.c (window_scroll_pixel_based): Adjust glyph matrices
1768 when increasing window's vscroll.
1769
a758f97d
GM
1770 * macros.c (Qkbd_macro_termination_hook): New variable.
1771 (syms_of_macros): Initialize and staticpro it.
1772 (pop_kbd_macro): Run kbd-macro-termination-hook.
1773
1774 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
1775
1bfb1345 17762001-01-07 Dave Love <fx@gnu.org>
64d4ec0f
DL
1777
1778 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
1779 arglist, for documentation's sake.
1780
0dac6924
AI
17812001-01-06 Andrew Innes <andrewi@gnu.org>
1782
1783 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
1784 of *.pdb.
1785
8182406a
AI
17862001-01-05 Andrew Innes <andrewi@gnu.org>
1787
1788 * term.c (update_end): Don't check updating_frame; for some reason
1789 this can be 0 sometimes, such as after dismissing a popup menu,
1790 and isn't necessary given the explicit frame argument.
1791
3828218c
GM
17922001-01-05 Gerd Moellmann <gerd@gnu.org>
1793
1794 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
1795 on some systems, and an unsigned long on others, like FreeBSD 4.1.
1796
2f5ded21
GM
17972001-01-04 Gerd Moellmann <gerd@gnu.org>
1798
1799 * xterm.c (clear_mouse_face): Don't return if tip_frame is
1800 non-nil.
1801
1802 * xfns.c (x_create_tip_frame): Preserve the value of
1803 face_change_count around the creation of the tip frame.
1804
1805 * xfns.c (last_show_tip_args): New variable.
1806 (compute_tip_xy): New function.
1807 (Fx_show_tip): Reuse an existing tip frame, if possible.
1808 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
1809
dfad65fa
DL
18102001-01-04 Dave Love <fx@gnu.org>
1811
64d4ec0f
DL
1812 * editfns.c (Fformat): Doc fix.
1813
dfad65fa
DL
1814 * systime.h (set_file_times): Prototype.
1815
1816 * widget.h (EmacsFrameSetCharSize_): Prototype.
1817
1818 * sysdep.c (random, srandom): Declare explicitly.
1819
1820 * dispextern.h (move_it_vertically_backward): Declare.
1821
85fe3b5e
GM
18222001-01-04 Gerd Moellmann <gerd@gnu.org>
1823
0f2ac578
GM
1824 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
1825 like in Fx_create_frame.
1826
482cca61
GM
1827 * xfaces.c (set_font_frame_param): Don't do anything for
1828 non-graphical frames.
1829
85fe3b5e
GM
1830 * window.c (Fdelete_other_windows): Set window's window_end_valid
1831 to nil when changing the window's start. Don't change the
1832 window's start when its top position hasn't changed. If we do,
1833 this will set the window's optional_new_start, which act's like a
1834 force_start during redisplay with C-x 1 M-> under particular
1835 circumstances (see report from Per Starback to emacs-pretest-bug
1836 from 2000-12-13.).
1837
3e99d3b4
GM
18382001-01-03 Gerd Moellmann <gerd@gnu.org>
1839
a77dc1ec
GM
1840 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
1841 short cut at the start of the function. Add an assertion.
1842 (reseat_at_next_visible_line_start): Add an assertion.
1843
2f3cad6c
GM
1844 * window.c (Frecenter): When changing the window start, set the
1845 window's window_end_valid to nil.
1846 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
1847
1848 * dispextern.h (move_it_past_eol): Add prototype.
1849
1850 * xdisp.c (move_it_past_eol): New function.
1851
3e99d3b4
GM
1852 * window.c (Fwindow_end): Doc fix.
1853
18542001-01-03 Dave Love <fx@gnu.org>
1855
1856 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3
1857 kluge.
1858
bafb434c
GM
18592001-01-03 Gerd Moellmann <gerd@gnu.org>
1860
1861 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
1862 the enabled_p flag of the glyph row at window_end_vpos to 0.
1863 (handle_single_display_prop): Fix last change.
1864
5297fb00
RS
18652001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
1866
1867 * window.c (Frecenter): Doc fix.
1868
13d6a61c
AI
18692001-01-02 Andrew Innes <andrewi@gnu.org>
1870
1871 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
1872
1873 * frame.h (output_method): Add output_w32_console method.
1874 (FRAME_W32_CONSOLE_P): New macro.
1875
1876 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
1877 use output_w32_console method.
1878 (Qw32_console): New Lisp_Object.
1879 (Fframep): Return it.
1880 (syms_of_frame): Init it.
1881 (Fframe_parameters): Report w32console as font for w32_console
1882 frames.
1883
1884 * xfaces.c (realize_default_face): Set face foreground and
1885 background to unspecified for w32_console frames.
1886 (realize_face): Realize face cache for w32_console frames.
1887 (realize_tty_face): Accept w32_console frames.
1888
1889 * xdisp.c (handle_single_display_prop): Return if frame is
1890 w32_console.
1891 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
1892 necessary, even if running interactively.
1893
1894 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
1895 w32_console frames.
1896
1897 * w32term.c (x_update_begin):
1898 (x_update_end):
1899 (x_clear_frame):
1900 (x_ins_del_lines):
1901 (x_change_line_highlight):
1902 (x_delete_glyphs):
1903 (w32_ring_bell):
1904 (x_update_begin):
1905 (x_update_end):
1906 (w32_reassert_line_highlight):
1907 (w32_frame_rehighlight):
1908 (w32_frame_raise_lower): Do nothing if not w32 frame.
1909
1910 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
1911
1912 * w32fns.c (Fx_display_color_cells): Determine correct value, when
1913 system doesn't tell us directly.
1914 (Fx_display_visual_class): Implement properly.
1915
d6bb0c0d
GM
19162001-01-02 Gerd Moellmann <gerd@gnu.org>
1917
1918 * window.c (Frecenter): Handle centering in graphical frames
1919 specially. Centering on the basis of line counts doesn't work
1920 reliably with variable-height lines.
1921
315f5865
EZ
19222001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
1923
1924 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
1925 and al[].
1926
1927 * composite.c (run_composition_function): Remove unused variable
1928 `val'.
1929 (update_compositions): Remove unused variable `hook'.
1930
1931 * intervals.c (get_local_map): Remove unused variable `tem'.
1932
1933 * doprnt.c (doprnt1): Remove unused variable `size'.
1934
1935 * fns.c (Flength): Remove unused variable `tail'.
1936 (Fdelete): Remove unused variable `size'.
1937
1938 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
1939 and `gcpro2'.
1940
1941 * doc.c (Fsnarf_documentation): Remove unused variables `fun' and
1942 `tem'.
1943
1944 * data.c (find_symbol_value): Remove extra 3rd argument in the
1945 call to swap_in_symval_forwarding.
1946
1947 * undo.c (Fprimitive_undo): Remove unused block-scope variable
1948 `end'.
1949
1950 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
1951 (trivial_regexp_p): Remove unused variable `c'.
1952 (boyer_moore): Remove unused variable `k'.
1953
1954 * indent.c (current_column): Remove unused variable `stopchar'.
1955 (Fcompute_motion): Remove unused variable `contin'.
1956
1957 * casefiddle.c (casify_object): Remove unused variable `tolen'.
1958
1959 * dired.c (directory_files_internal): Fix a typo in a comment.
1960 Remove an unused variable `handler'.
1961 (file_name_completion): Remove unused function-scope variable
1962 `dp'.
1963 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
1964 on BSD4_2.
1965
1966 * fileio.c (e_write): Remove unused variable
1967 `require_encoding_p'.
1968
1969 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
1970 and `buf'.
1971 (Fmarker_insertion_type): Remove unused variable `buf'.
1972
1973 * insdel.c (make_gap): Remove unused variable `result'.
1974
1975 * keyboard.c (record_char): Remove unused function-scope variable
1976 `help'.
1977 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
1978 (menu_bar_items): Remove unused function-scope variable `tem'.
1979
1980 * fontset.c (fontset_ref): Remove unused variable `i'.
1981 (fontset_set): Remove unused variables `j' and `tmp'.
1982 (make_fontset): Remove unused variables `i', `j', `elt' and
1983 `base_elt'.
1984 (make_fontset_for_ascii_face): Remove unused variable `name'.
1985 (fs_load_font): Remove unused variable `font_idx'.
1986 (fs_query_fontset): Remove unused function-local variable
1987 `fontset'.
1988 (list_fontsets): Remove unused variable `tail'.
1989 (Fnew_fontset): Remove unused variables `family' and `registry'.
1990 (accumulate_font_info): Remove unused variable `tmp'.
1991 (Ffontset_font): Remove unused variable `id'.
1992 (syms_of_fontset): Remove unused variable `i'.
1993
1994 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
1995 to x_term_init.
1996 (lookup_image): Remove unused variable `file'.
1997 (xbm_load): Remove unused variables `bitmap_data', `height', and
1998 `width'. Remove function-local variable `i', leave the
1999 block-local one.
2000 (gif_load): Remove unused variable `inc'.
2001
2002 * xterm.c (XTread_socket): Remove unused variables `p' and
2003 `pend'.
2004 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
2005 leave only the one in the inner block.
2006
2007 * xfaces.c (face_fontset, realize_default_face): Remove unused
2008 variable `fontset'.
2009 (face_at_buffer_position): Remove unused variable `multibyte_p'.
2010
2011 * term.c (encode_terminal_code): Remove unused variable `c'.
2012
2013 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
2014 char *' instead of `char *'.
2015
2016 * category.c (Fcategory_docstring): Remove unused variable `doc'.
2017 (Fget_unused_category): Remove unused variable
2018 `docstring_vector'.
2019 (Fchar_category_set): Remove unused variables `val', `charset',
2020 `c1' and `c2'.
2021
2022 * coding.c (detect_coding_iso2022, setup_coding_system): Remove
2023 unused variable `i'.
2024 (detect_coding_mask): Remove unused variable `idx'.
2025 (detect_coding): Remove unused variable `i'.
2026 (ccl_coding_driver): Remove unused variable `result'.
2027 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
2028 (decode_coding_string): Remove unused variables `to' and
2029 `gcpro1'.
2030 (encode_coding_string): Remove unused variables `gcpro1' and
2031 `saved_coding_symbol'.
2032 (Ffind_coding_systems_region_internal): Remove function-local
2033 variable args[], leave only the block-local one.
2034 (code_convert_region1): Remove unused variable `len'.
2035
2036 * charset.c (char_printable_p): Remove unused variable `chars'.
2037 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
2038 (str_to_multibyte): Remove unused variable `c'.
2039
2040 * window.c (size_window): Remove block-local variable `min_size'.
2041
2042 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
2043 `header_line_height'.
2044 (append_space, extend_face_to_end_of_line): Declare `saved_what'
2045 enum display_element_type.
2046
1a8a9daf
GM
20472001-01-02 Gerd Moellmann <gerd@gnu.org>
2048
6dde6abc
GM
2049 * xterm.c (x_connection_closed): Catch X errors around all
2050 statements that call X. Save away the error message in a local
2051 copy.
2052
1883b2c6
GM
2053 * xterm.c (x_connection_closed): Set handling_signal to 0 at
2054 the start.
2055
a13be207
GM
2056 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
2057 in or at the start of invisible text.
2058
1a8a9daf
GM
2059 * dispnew.c (update_window): Don't check_current_matrix_flags.
2060
3608c0f9
JR
20612001-01-01 Jason Rumney <jasonr@gnu.org>
2062
2063 * w32fns.c (x_figure_window_size): Do not allow new_height and
2064 new_width of frame to override specified values.
2065
abb1acc4
KH
20662000-12-30 Kenichi Handa <handa@etl.go.jp>
2067
d279f620
KH
2068 * composite.c (find_composition): Fix a code for searching
2069 backward.
abb1acc4 2070
762a68ec
GM
20712000-12-29 Gerd Moellmann <gerd@gnu.org>
2072
9c8b8382
GM
2073 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New
2074 function.
2075 (update_window) [GLYPH_DEBUG]: Call it.
2076 (scrolling_window): Prevent including current rows which are below
2077 what's displayed in the window.
2078
2079 * xdisp.c (try_window_reusing_current_matrix)
2080 <new start <= old start>: Disable rows in the current matrix
2081 which are below the window after scrolling.
2082
762a68ec
GM
2083 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
2084 is zero. It's not worth the complexity.
2085 (invisible_text_between_p): Put in #if 0 because unused.
2086
2d5912c1
GM
20872000-12-28 Gerd Moellmann <gerd@gnu.org>
2088
46f6a258
GM
2089 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
2090 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
2091
89f93679
GM
2092 * keyboard.c (echo_char): If C is an integer, always call
2093 push_key_description. Former code could signal an invalid
2094 character error.
2095
2096 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
2097 If set, print multibyte text.
2098 (Fsingle_key_description): Call push_key_description with
2099 FORCE_MULTIBYTE set.
2100 (describe_buffer_bindings): Likewise.
2101
2102 * lisp.h (push_key_description): Add prototype.
2103
c06017fb
GM
2104 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
2105 around the call to redisplay_internal.
2106
f1d2ce7f
GM
2107 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
2108
2d5912c1
GM
2109 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
2110
9371f831
KH
21112000-12-28 Kenichi Handa <handa@etl.go.jp>
2112
2113 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
2114 (ccl_driver): New local variable `extra_bytes'.
2115
2116 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
2117
2118 * coding.c (setup_coding_system): Initialize
2119 coding->spec.ccl.eight_bit_carryover.
2120 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
2121
0c80628a
KH
21222000-12-28 Kenichi Handa <handa@etl.go.jp>
2123
2124 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
2125 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
2126 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
2127 (decode_composition_emacs_mule): New function.
2128 (decode_coding_emacs_mule): Decode composition sequence by calling
2129 decode_composition_emacs_mule.
2130 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
2131 (encode_coding_emacs_mule): Changed from macro to function. If
2d5912c1 2132 a text contains compositions, encode them correctly.
0c80628a
KH
2133 (setup_coding_system): Set coding->commong_flags for emacs-mule so
2134 that decoding and encoding are required.
2135
3e32cc27
GM
21362000-12-27 Gerd Moellmann <gerd@gnu.org>
2137
5e25feee
GM
2138 * xfaces.c (PT_PER_INCH): New macro.
2139 (xlfd_point_size): Compute real point size from font's pixel size.
2140 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
2141 instead of 72.
2142
892d8fcd
GM
2143 * .gdbinit: Comment out the line pointing to the Lesstif source
2144 directory.
2145
12c8b416
GM
2146 * window.c (Frecenter): Use displayed_window_lines instead
2147 of window_internal_height.
2148
6061fbf0
GM
2149 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
2150 instead of x-toolkit-scroll-bars-p.
2151 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
2152
2153 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
2154 instead of x-toolkit-scroll-bars-p.
2155 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
2156
3e32cc27
GM
2157 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
2158 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
2159 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]: New
2160 variables.
2161 (add_window_display_history, add_frame_display_history)
2162 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
2163 (build_frame_matrix_from_leaf_window): Remove unused code.
2164 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
2165 redisplay history.
2166 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
2167 (update_window) [GLYPH_DEBUG]: Likewise.
2168 (syms_of_display): Defsubr dump-redisplay-history.
2169
31798cfe
GM
21702000-12-23 Gerd Moellmann <gerd@gnu.org>
2171
f717c2ba
GM
2172 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
2173 the end of the prompt. Set echo_after_prompt to the offset
2174 of echoptr in echobuf.
2175
aeb2b8fc
GM
2176 * xdisp.c (init_from_display_pos): Pop until the iterator's
2177 stack is empty; there may be frames for stretch or images
2178 on the stack.
2179
31798cfe
GM
2180 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
2181 (save_or_restore_current_matrix): New function for the same
2182 purpose, but more efficient.
2183 (adjust_frame_glyphs_for_frame_redisplay): Use it.
2184
f8156156
EZ
21852000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
2186
2187 * xdisp.c (syms_of_xdisp): Fix last change.
2188
bdd6d4e8
GM
21892000-12-23 Gerd Moellmann <gerd@gnu.org>
2190
2191 * xdisp.c (syms_of_xdisp): Doc fix.
2192
2193 * xdisp.c (redisplay_window): Remove label restore_buffers;
2194 use finish_scroll_bars instead to make sure that scroll bars
2195 are redeemed. If we don't do this, flickering can result from
2196 scroll bars being destroyed and recreated.
2197
9436cdf9
JR
21982000-12-22 Jason Rumney <jasonr@gnu.org>
2199
2200 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
2201 in the wrong colors when the foreground is not black.
2202 (expose_window): Don't redraw the window that's currently being
2203 updated.
2204
951f9df5
GM
22052000-12-22 Gerd Moellmann <gerd@gnu.org>
2206
856ff7a7
GM
2207 * window.c (size_window): When setting the window's too_small_ok
2208 flag, compare old size with minimum size depending on WIDTH_P,
2209 don't compare with window_min_width.
2210
951f9df5
GM
2211 * window.c (delete_window): Simplify somewhat.
2212 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
2213 freeing window matrices. The flag windows_or_buffers_changed is
2214 set, so the next redisplay will consider all windows; this should
2215 suffice.
2216
886bc933
KH
22172000-12-22 Kenichi Handa <handa@etl.go.jp>
2218
2219 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
2220
2221 * ccl.h (struct ccl_program): New member cr_consumed.
2222
2223 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
2224 (CCL_READ_CHAR): Handle EOL conversion here.
2225 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
2226
177f4e88
GM
22272000-12-21 Gerd Moellmann <gerd@gnu.org>
2228
6ba384dc
GM
2229 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg
2230 GLYPHS.
2231
2232 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
2233 otherwise tabs of different size compare equal.
2234
2235 * callint.c (Fcall_interactively): Prevent a compiler warning.
2236
2237 * print.c (print_unwind): Return nil.
2238 (PRINTDECLARE): Initialize all local variables.
2239 (print_preprocess): Add a default case.
2240
8e15274f
GM
2241 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
2242
2243 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
2244
177f4e88
GM
2245 * window.c (delete_window, Fsplit_window)
2246 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
2247
2248 * dispextern.h (ensure_frame_matrix): Function declaration removed.
2249
2250 * dispnew.c (ensure_frame_matrix): Removed.
2251 (save_frame_matrix, restore_frame_matrix): New functions.
2252 (adjust_frame_glyphs_for_frame_redisplay): Use them.
2253
2254 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
2255 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
2256
99012074
AI
22572000-12-21 Andrew Innes <andrewi@gnu.org>
2258
2259 * w32term.c (x_update_begin): Regenerate the palette here, rather
2260 than for each window.
2261
2262 * w32xfns.c (select_palette): Avoid calling SelectPalette if
2263 palette is NULL, since this corrupts memory! Also get
2264 display_info reference from frame.
2265
29ef7d2d
JR
22662000-12-21 Jason Rumney <jasonr@gnu.org>
2267
2268 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
2269
2270 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
2271 to avoid returning without releasing it.
3e27fa1f 2272
3f9d67a6
KH
22732000-12-21 Kenichi Handa <handa@etl.go.jp>
2274
587fc3f9
KH
2275 * keymap.c (push_key_description): Don't convert eight-bit-control
2276 and eight-bit-graphic to multibyte character.
2277
3f9d67a6
KH
2278 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
2279 generic character and CODE1 is nil, return the smallest character
2280 in CHARSET.
2281
774ba8c9
DL
22822000-12-20 Dave Love <fx@gnu.org>
2283
2284 * s/osf5-0.h (NSIG): Don't redefine.
2285
88416888
SM
22862000-12-20 Stefan Monnier <monnier@cs.yale.edu>
2287
2288 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
2289 excluding menu-bar and tool-bar.
2290 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
2291 (menu_item_p): Remove.
2292 (where_is_internal_1): Don't ignore menu-items.
2293
a6426c6f
GM
22942000-12-20 Gerd Moellmann <gerd@gnu.org>
2295
03ff8aab
GM
2296 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
2297 into account.
2298
2299 * window.c (make_window): Initialize window's min_hscroll.
2300 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
2301 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
2302 to zero.
2303 (struct saved_window): New member min_hscroll.
2304 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
2305 (Fset_window_configuration): Set window's min_hscroll.
2306 (save_window_save): Save window's min_hscroll.
2307 (compare_window_configurations): Compare min_hscroll values.
2308
2309 * window.h (struct window): New member min_hscroll.
2310
2311 * keyboard.c (echo_prompt): Prevent a compiler warning.
2312
8de4aaf8
GM
2313 * xdisp.c (try_cursor_movement): Fix last change. The real
2314 condition is that PT is at the end of the row, and should
2315 be displayed at the start of the next row.
2316
3f7e3031
GM
2317 * xdisp.c (try_cursor_movement): If we end on a partially
2318 visible line, end we already decided to scroll, return -1.
2319
a6426c6f
GM
2320 * dispextern.h (ensure_frame_matrix): Add prototype.
2321
2322 * window.c (delete_window, Fsplit_window)
2323 (Fset_window_configuration): Call ensure_frame_matrix.
2324
2325 * dispnew.c (fake_current_matrices, ensure_frame_matrix): New
2326 functions.
2327 (adjust_frame_glyphs_for_frame_redisplay): If display has been
2328 completed, call fake_current_matrices instead of marking frame
2329 garbaged.
2330
57fa2774
JR
23312000-12-20 Jason Rumney <jasonr@gnu.org>
2332
2333 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
2334
d925df90
EZ
23352000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
2336
2337 * fns.c (Frequire): Doc fix.
2338
7b93a85b
GM
23392000-12-19 Gerd Moellmann <gerd@gnu.org>
2340
71d4497a
GM
2341 * window.c (window_scroll_pixel_based): Don't use
2342 move_it_vertically.
2343
c74e645b
GM
2344 * dispnew.c (direct_output_for_insert): Fix check for mini-window
2345 currently displaying a message.
2346
7b93a85b
GM
2347 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
2348 xterm.h.
2349 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
2350
90d97e64
AI
23512000-12-18 Andrew Innes <andrewi@gnu.org>
2352
2353 * w32.c (w32_strerror): New function.
2354
2355 * w32.h (w32_strerror): New extern.
2356
2357 * w32fns.c (Fw32_shell_execute): Use it.
2358
91c9e6ce
GM
23592000-12-18 Gerd Moellmann <gerd@gnu.org>
2360
2361 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
2362
6f4745e2
EZ
23632000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
2364
2365 * msdos.c (IT_set_face): Obey inverse_video.
2366
c9e088ce
KH
23672000-12-18 Kenichi Handa <handa@etl.go.jp>
2368
2369 * dired.c (directory_files_internal): Always return decoded filenames.
2370
c3695f5f
GM
23712000-12-18 Gerd Moellmann <gerd@gnu.org>
2372
52d8e4ff
GM
2373 * xterm.c (x_connection_closed): Prevent being called recursively
2374 because of an error condition in XtCloseDisplay.
2375
62be9979
GM
2376 * xdisp.c (init_iterator): If noninteractive, and the frame's
2377 face cache is null, make one.
2378
5f7a1890
GM
2379 * xfns.c (show_busy_cursor): Check for live frames more
2380 thoroughly.
2381
c3695f5f
GM
2382 * process.c (wait_reading_process_input): Check for pending
2383 input when running timers.
2384
78555fbe
EZ
23852000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
2386
2387 * msdos.c (IT_write_glyphs): Compute the glyph face from
2388 str->face_id.
2389
b2b36264
KH
23902000-12-18 Kenichi Handa <handa@etl.go.jp>
2391
2392 * process.c (read_process_output): Don't run a filter if the code
2393 decoder produces nothing but carryover.
2394
9c543fbf
AI
23952000-12-17 Andrew Innes <andrewi@gnu.org>
2396
2397 * w32.c (sys_rename): Only check errno against EEXIST, and not
2398 EACCES, when determining whether rename failed because the target
2399 exists. This was resulting in indefinite looping on Windows 9x if
2400 the source file was locked by another process.
2401
2402 * w32fns.c (Ffile_system_info): New function.
2403 (syms_of_w32fns): Defsubr it.
2404
10c2b5a8
GM
24052000-12-17 Gerd Moellmann <gerd@gnu.org>
2406
b0228ace
GM
2407 * window.c (coordinates_in_window): Fix computation for
2408 position on vertical line between mode lines.
2409
10c2b5a8
GM
2410 * xfns.c (unwind_create_frame): Return t if frame was deleted.
2411 Don't alter tip_frame or tip_window.
2412 (unwind_create_tip_frame): Set tip_frame to nil only if frame
2413 was deleted.
2414
c844a81a
GM
2415 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
2416 Don't alter tip_frame or tip_window.
2417 (unwind_create_tip_frame): Set tip_frame to nil only if frame
2418 was deleted.
2419
6c825f8e
EZ
24202000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
2421
2422 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
2423 be consistent with the doc string. Reported by NAKAJIMA Mikio
2424 <minakaji@osaka.email.ne.jp>.
2425
af4bb4c8
KH
24262000-12-16 Kenichi Handa <handa@etl.go.jp>
2427
2428 * xfaces.c (Vface_ignored_fonts): New variable.
2429 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
2430 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
2431
8062e53a
GM
24322000-12-15 Gerd Moellmann <gerd@gnu.org>
2433
e87b8809
GM
2434 * dispnew.c (update_window): Detect pending input every nth line
2435 updated, i.e. do it depending on real work done, and not on the
2436 vpos of the line.
2437
2438 * xterm.c (expose_window): Don't redraw the window that's
2439 currently being updated.
2440
a6768cc5
GM
2441 * window.c (Fset_window_point): Remove test for
2442 cursor_in_non_selected_windows.
2443
4ea7fdca
GM
2444 * lread.c (read1): Recognize end of file after `\\'.
2445
8062e53a
GM
2446 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
2447 not unwind_create_frame.
2448
bb7959c1
GM
24492000-12-15 Dave Love <fx@gnu.org>
2450
2451 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
2452 bcopy & al.
2453
2454 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
2455
ced04c42
KH
24562000-12-15 Kenichi Handa <handa@etl.go.jp>
2457
c5443913
KH
2458 * coding.c (setup_coding_system): Clear all members of the struct
2459 coding_system at first.
bc137305
KH
2460 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
2461 argument.
2462 (code_convert_region): Don't override coding->src_multibyte and
2463 coding->dst_multibyte.
c5443913 2464
ced04c42
KH
2465 * fns.c (Fmd5): Docstring improved.
2466
c2d7f289
MB
24672000-12-15 Miles Bader <miles@gnu.org>
2468
2469 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
2470 are actually marked as mode-lines; otherwise use
2471 estimate_mode_line_height.
2472
9d7d9263
GM
24732000-12-14 Gerd Moellmann <gerd@gnu.org>
2474
2475 * editfns.c (Fformat): Prevent a buffer overrun when the format
2476 specifies a precision.
2477
7cf0153a
EZ
24782000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
2479
2480 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
2481 argument is outside the range [2..3].
2482
1de0f662
AI
24832000-12-14 Andrew Innes <andrewi@gnu.org>
2484
2485 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
2486 nothing to do. Bind inhibit-quit.
2487 (tip_frame): Make it a Lisp_Object.
2488 (x_create_tip_frame): Set tip_frame after it has been added to
2489 Vframe_list.
2490 (Fx_show_tip): Don't set tip_frame here.
2491 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New
2492 variables.
2493 (unwind_create_frame, unwind_create_tip_frame): New functions.
2494 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
2495 while a frame is only partially constructed.
2496
2497 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
2498 (x_free_frame_resources): New function.
2499 (x_destroy_window): Use it.
2500
02387dcc
GM
25012000-12-14 Gerd Moellmann <gerd@gnu.org>
2502
2503 * xfns.c (Fx_backspace_delete_keys_p): New function.
2504 (syms_of_xfns): Defsubr it.
2505
2506 * config.in (HAVE_XKBGETKEYBOARD): Add.
2507
0544ef49
KH
25082000-12-14 Kenichi Handa <handa@etl.go.jp>
2509
98d62747
KH
2510 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
2511 Always store string in multibyte representation in echobuf.
2512 (echo_char): Always store string in multibyte representation in
2513 echobuf.
2514 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
2515 (read_key_sequence): Adjusted for the change of echo_prompt.
2516
a20193cd
KH
2517 * fns.c (Fmd5): Docstring improved.
2518
191b83b6
KH
2519 * lisp.h (detect_coding_system): Prototype adjusted.
2520
0544ef49
KH
2521 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
2522 (detect_coding_emacs_mule, detect_coding_iso2022,)
2523 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
2524 (detect_coding_utf_16, detect_coding_ccl): Make them static. New
2525 argument MULTIBYTEP. Callers changed.
2526 (detect_coding_mask, detect_coding_system): New argument
2527 MULTIBYTEP. Callers changed.
1da1bb05
KH
2528 (decode_coding_string): Set coding->src_multibyte and
2529 coding->dst_multibyte before calling detect_coding and detect_eol.
2530 Update them after some coding system is detected.
2531
d5b3eb1b
SM
25322000-12-13 Stefan Monnier <monnier@cs.yale.edu>
2533
2534 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
2535
2536 * keyboard.c (menu_bar_items, tool_bar_items):
2537 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
2538
f7f8bb69
GM
25392000-12-13 Gerd Moellmann <gerd@gnu.org>
2540
19f71add
GM
2541 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
2542 New variables.
2543 (unwind_create_frame, unwind_create_tip_frame): New functions.
2544 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
2545 while a frame is only partially constructed.
2546
2547 * xterm.h (x_free_frame_resources): Declare.
2548
2549 * xterm.c (x_free_frame_resources): New function.
2550 (x_destroy_window): Use it.
2551
e10da507
GM
2552 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
2553 don't interrupt the update for pending input initially, i.e.
2554 update at least some lines.
2555
2556 * keyboard.c (do_mouse_tracking): Make externally visible.
2557
d5b3eb1b 2558 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
f7f8bb69
GM
2559
2560 * xfns.c (gray_bitmap_bits): Declare `char *'.
2561
90aa2856
GM
25622000-12-12 Gerd Moellmann <gerd@gnu.org>
2563
2564 * xdisp.c (display_tool_bar_line): Make sure that tool bar
2565 lines start with a relief line.
2566
a308c9cd
DL
25672000-12-12 Dave Love <fx@gnu.org>
2568
2569 * window.c (Fdisplay_buffer): Doc fix.
2570 (Fwindow_list): Remove unused var.
2571
2572 * buffer.h (mmap_set_vars): Declare.
2573
2574 * window.h (Fset_window_point): Declare.
2575
d575011f
EZ
25762000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
2577
bf6282d2 2578 * msdos.c (fast_find_position): Don't overstep the last window row.
d575011f
EZ
2579 (IT_note_mouse_highlight): Initialize portion to -1. Remove
2580 unused variable `area'. When looking for a row under (X,Y), give
2581 up if some of the previous rows is not enabled.
2582
ecf4d726
GM
25832000-12-12 Gerd Moellmann <gerd@gnu.org>
2584
2ebf6139
GM
2585 * window.c (Fset_window_point): If displaying cursors in windows
2586 other than the selected window, make sure redisplay updates
2587 other windows to show the new value of point in the window.
2588
2589 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
2590
bfdb75ee
GM
2591 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
2592 the buffer is the sole visible buffer when in the mini-buffer.
2593
4fdbd809
GM
2594 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
2595 Bind `inhibit-read-only' to t.
2596 (unwind_with_echo_area_buffer): Use AREF.
2597
c0006262
GM
2598 * xfns.c (Fx_hide_tip): Simplified.
2599
e9a59cad
GM
2600 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use
2601 GC_MAKE_GCPROS_NOOPS instead of `1'.
2602
ecf4d726
GM
2603 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
2604
e5959a9a
GM
26052000-12-11 Gerd Moellmann <gerd@gnu.org>
2606
a3642e49
GM
2607 * xfns.c (Fx_hide_tip): Fix last change.
2608
44b5a125
GM
2609 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
2610 nothing to do. Bind inhibit-quit.
2611 (tip_frame): Make it a Lisp_Object.
2612 (x_create_tip_frame): Set tip_frame after it has been added to
2613 Vframe_list.
2614 (Fx_show_tip): Don't set tip_frame here.
2615
2616 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
2617
2618 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
2619 Lisp_Object.
2620
2621 * dispextern.h: Change external declaration of tip_frame.
2622
d990421f
GM
2623 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
2624 return an empty string.
2625
4db87380
GM
2626 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
2627 of the window's update_mode_line flag, since the former is set by
2628 force-mode-line-update, not the latter. This makes
2629 column-number-mode slightly faster.
2630
e5959a9a
GM
2631 * xdisp.c (try_window_id) <all changes above window start>:
2632 Set the cursor.
2633
169fe44e
GM
26342000-12-11 Paul Eggert <eggert@twinsun.com>
2635
2636 * config.in (HAVE_FTELLO): Remove.
2637 (HAVE_FSEEKO): Add.
2638 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
2639 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
2640 HAVE_FTELLO.
2641 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
2642 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
2643
59ec59ae
MB
26442000-12-11 Miles Bader <miles@gnu.org>
2645
2646 * window.c (displayed_window_lines): Don't round up when
2647 converting empty space at bottom to lines.
ff904dd6
MB
2648 Handle non-newline-terminated final lines properly.
2649 (Fwindow_text_height): New function (used to be in lisp).
2650 (syms_of_window): Initialize it.
59ec59ae 2651
42ebfa31
SM
26522000-12-09 Stefan Monnier <monnier@cs.yale.edu>
2653
2654 * syntax.c (scan_lists): Check that the right quote char has the
2655 right Sstring syntax when jumping over strings.
2656 (init_syntax_once): Use Smax rather than 13.
2657
5cdb3cf3
MB
26582000-12-09 Miles Bader <miles@gnu.org>
2659
2660 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
2661 with PARTIALLY, inverting the sense.
2662 (window_scroll_pixel_based): Scroll partially visible lines into
2663 place if we hit the beginning or end of the buffer.
a12167c5
MB
2664 (displayed_window_lines): Don't include partially visible lines.
2665 (Fmove_to_window_line): Skip past any partially visible first line.
5cdb3cf3 2666
842b2a94
GM
26672000-12-08 Gerd Moellmann <gerd@gnu.org>
2668
2669 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
2670
2671 * tparam.c (tparam1): Change the way buffers are reallocated to be
2672 portable and less obfuscated.
2673
2674 * termcap.c (tgetent): Change the way buffers are reallocated to
2675 be portable and less obfuscated.
2676
2677 * macros.c (store_kbd_macro_char): Change the way buffers are
2678 reallocated to be portable and less obfuscated.
2679
2680 * lread.c (read1): Change the way buffers are reallocated to be
2681 portable and less obfuscated.
2682
2683 * doc.c (Fsubstitute_command_keys): Change the way buffers
2684 are reallocated so that it is portable.
2685
137cad7c
EZ
26862000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
2687
2688 * dosfns.c (Ffile_system_info): New function.
2689 (syms_of_dosfns): Defsubr it.
2690
5c7f629c
SM
26912000-12-07 Stefan Monnier <monnier@cs.yale.edu>
2692
2693 * alloc.c (gc_sweep): Add comment.
2694
959e647d
GM
26952000-12-07 Gerd Moellmann <gerd@gnu.org>
2696
28fcb7dc
GM
2697 * sound.c (vox_configure): Change order of ioctls. Don't
2698 set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
2699 Ignore errors when changing volume.
2700 (vox_close): Don't reset the device.
2701
926b7e5e
GM
2702 * process.c (read_process_output): Make sure the process marker's
2703 position is valid when the process buffer is changed in
2704 after-change functions. W3 does that.
2705
959e647d
GM
2706 * xfns.c (x_free_gcs): New function.
2707
2708 * xterm.h (x_free_gcs): Add prototype.
2709
2710 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
2711 freeing GCs here.
2712
2713 * xterm.c (x_destroy_window): Call x_free_gcs so that
2714 resources of non-toolkit X windows will be freed.
2715
478ea067
AI
27162000-12-07 Andrew Innes <andrewi@gnu.org>
2717
2718 * w32fns.c (xlfd_charset_of_font): Fix last change.
2719
fbee3231
DL
27202000-12-06 Dave Love <fx@gnu.org>
2721
67292061
DL
2722 * md5.h (__P): Don't define -- it comes from config.h.
2723
fbee3231
DL
2724 * strftime.c: Change some #if foo to #ifdef foo.
2725
4ee87dbb
AI
27262000-12-06 Andrew Innes <andrewi@gnu.org>
2727
2728 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
2729
2730 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname
2731 argument.
2732 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
2733 (w32_list_fonts): Don't choke if pattern doesn't specify a
2734 codepage.
2735
9765b4a4
GM
27362000-12-06 Gerd Moellmann <gerd@gnu.org>
2737
d285b373
GM
2738 * alloc.c (gc_sweep): Prevent symbols read during loadup
2739 from being freed.
2740
384333ee
GM
2741 * xdisp.c (underlying_face_id): New function.
2742 (handle_face_prop, face_before_or_after_it_pos): Use it
2743 to determine the face ``under'' a string. Let strings inherit
2744 the face of the buffer under them.
2745
2746 * xfaces.c (face_at_string_position): Update function comment.
2747
d4b72d58
GM
2748 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
2749 matrix if the window's left position has changed; we need to
2750 redraw it in this case.
2751
2752 * dispextern.h (struct glyph_matrix): Add member window_left_x.
2753
e1d05387
GM
2754 * window.c (coordinates_in_window): Check mouse on mode-line or
2755 header-line first.
2756
eb1b0c74
GM
2757 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
2758 advertized by the function documentation.
2759
d94d636f
GM
2760 * window.c (syms_of_window): Doc fix.
2761
3887b449
GM
2762 * sound.c (vox_configure): Set volume for left and right channel.
2763 (sound_cleanup): Return nil.
2764
efc8f57a
GM
2765 * xdisp.c (move_it_by_lines): Fix paren typo.
2766
9765b4a4
GM
2767 * xterm.c (x_load_font): Don't use the font's max_bounds for
2768 computing the height of the font. If max_bounds' ascent or
2769 descent are greater than the font's ascent or descent, this means
2770 glyphs overlap, which should be handled now by redisplay.
2771
6529ed87
GM
2772 * window.c (Veven_window_heights): New variable.
2773 (syms_of_window): DEFVAR_LISP it.
2774 (Fdisplay_buffer): Check Veven_window_heights before evening the
2775 window heights.
2776
0eb2ecde
MB
27772000-12-06 Miles Bader <miles@gnu.org>
2778
2779 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
2780 update `default-frame-alist' instead of setting no frame parameters.
2781
03d7a167
KH
27822000-12-06 Kenichi Handa <handa@etl.go.jp>
2783
2784 * composite.c (update_compositions): Fix typo (use the correct
2785 variable).
2786
5f8803c2
JR
27872000-12-05 Jason Rumney <jasonr@gnu.org>
2788
2789 * md5.h: Remove underscores from function declarations.
2790 (__attribute__, __alignof__) [!__GNUC__]: Define.
2791
2792 * md5.c: Delay include of md5.h until after namespace cleaning.
2793
c28a075b
JR
2794 * makefile.w32-in (fns.o): Depend on md5.h
2795 (md5.o): New target.
2796 (sunfns.o): Remove.
2797
2798 * makefile.nt: Likewise.
2799
ff3c7056
JR
28002000-12-05 Jason Rumney <jasonr@altavista.net>
2801
2802 * w32term.c (expose_area): Complete last change.
2803
0c21eeeb
KR
28042000-12-05 Ken Raeburn <raeburn@gnu.org>
2805
2806 * minibuf.c: Include intervals.h.
2807
f201d732
JR
28082000-12-05 Jason Rumney <jasonr@gnu.org>
2809
2810 * w32term.c (x_produce_glyphs): If a font for a component of
2811 a composition is not found, use 1 pixel dot ascent and 0 dot
2812 descent value to avoid displaying terribly tall empty boxes.
2813 (expose_area): Pass x-coordinate relative to the exposed
2814 area to x_draw_glyphs instead of a window-relative coordinate.
2815
21999ab9
GM
28162000-12-05 Gerd Moellmann <gerd@gnu.org>
2817
4d2036e4
GM
2818 * xdisp.c (next_element_from_ellipsis): Save face before selective
2819 display in saved_face_id, and set face_before_selective_p.
2820 (reseat_1): Reset face_before_selective_p.
2821 (append_space, extend_face_to_end_of_line): If iterator's
2822 face_before_selective_p is set, use the face from saved_face_id.
2823 (extend_face_to_end_of_line): For tty frames, make sure to
2824 use the right face id when producing spaces at the end of
2825 the line.
2826
2827 * dispextern.h (struct it): Add face_before_selective_p.
2828
52be17cc
GM
2829 * keyboard.c (record_char): Don't record identical help-echo
2830 events in recent_keys.
2831
8a4f36cc
GM
2832 * xterm.c [USE_X_TOOLKIT]: Close the display.
2833 (xim_close_dpy): Handle case that the display has been closed.
2834
57d6e381
GM
2835 * xterm.c (x_destroy_window): Reset the frame's X window after
2836 destroying it.
2837
21999ab9
GM
2838 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
2839 variable window_width.
2840 (line_draw_cost): Fix code skipping over spaces at the end of the
2841 line when must_write_spaces is not set.
2842 (scrolling_window): Fix code inserting runs in list of all runs.
2843
91372bb7
KH
28442000-12-05 Kenichi Handa <handa@etl.go.jp>
2845
2846 * coding.c (setup_coding_system): Be sure to initialize
2847 coding->category_idx.
2848
6c083b4c
GM
28492000-12-04 Gerd Moellmann <gerd@gnu.org>
2850
0c68ce6f
GM
2851 * xterm.c (PER_CHAR_METRIC): Removed because not used.
2852
6452929e
GM
2853 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
2854 area to x_draw_glyphs instead of a window-relative coordinate.
2855
d7f31e22
GM
2856 * fileio.c (auto_save_error): Add parameter ERROR. Show the
2857 error in the message.
2858
ae18aa3b
GM
2859 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
2860 timer after having read a key. It's not good for code reading
2861 several keys in a loop, like an input method.
2862
caa15ef7
GM
2863 * fileio.c (Finsert_file_contents): When VISIT is t, don't
2864 record undo information for format-decode.
2865
2866 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
2867 current buffer is read-only, not if it isn't.
2868
6c083b4c
GM
2869 * keyboard.c (record_char): Record `help-echo' input events
2870 in recent_keys only if they display some help. Don't record
2871 `help-echo' events as macro char.
2872
caa15ef7
GM
28732000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2874
2875 * editfns.c (save_excursion_restore): Don't move point
2876 in another window if it is showing the wrong buffer.
2877 Avoid the call to Fwindow_live_p, for speed.
2878
5a13529b
KH
28792000-12-04 Kenichi Handa <handa@etl.go.jp>
2880
e225faa7
KH
2881 * xfaces.c (struct font_name): New member registry_priority.
2882 (split_font_name): Initialize the above member to zero.
2883 (concat_font_list): New function.
2884 (font_list): Include fonts of all alternative registries.
2885 (FONT_POINT_SIZE_QUANTUM): New macro.
2886 (better_font_p): Ignore point size difference less than
2887 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
2888
e89648b4
KH
2889 * xterm.c (x_produce_glyphs): If a font for a component of
2890 a composition is not found, use 1 pixel dot ascent and 0 dot
2891 descent value to avoid displaying terribly tall empty boxes.
2892
5a13529b
KH
2893 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
2894
d7935eb6
KR
28952000-12-03 Ken Raeburn <raeburn@gnu.org>
2896
2897 * coding.h (code_convert_string1): Declare.
2898
2899 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
2900
2901 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name):
2902 Declare.
2903
0dd5e255
JR
29042000-12-02 Jason Rumney <jasonr@gnu.org>
2905
2906 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
2907 correctly for single byte character case.
2908 (w32_per_char_metric): Do not try to make any assumptions about
2909 the metrics of BDF fonts.
250cfece
JR
2910 (x_estimate_mode_line_height): If `mode-line' face
2911 hasn't a font, use that of the frame, as drawing glyphs
2912 does.
2913 (note_mouse_highlight): Change the cursor shape on the vertical
2914 border between windows [not enabled].
2915
2916 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
2917
2918 * w32fns.c (Fx_create_frame): Reintroduce the call to
2919 face-set-after-frame-defaults.
2920 (Vx_window_horizontal_drag_shape): New variable.
2921 (syms_of_xfns): DEFVAR_LISP it.
2922 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
2923 enabled].
0dd5e255 2924
b5d8d2ca
GM
29252000-12-02 Simon Josefsson <simon@josefsson.org>
2926
2927 * fns.c (Fmd5): Use a different logic to decide the coding system
2928 to use.
2929
2930 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
2931
fbb87147
EZ
29322000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
2933
2934 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is
2935 NULL.
2936
447e9da0
GM
29372000-12-01 Gerd Moellmann <gerd@gnu.org>
2938
7708ced0
GM
2939 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
2940 height for YNegative.
2941 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
2942 height; also see comment there.
2943
447e9da0
GM
2944 * window.c (coordinates_in_window): Handle computations for
2945 positions on the vertical bar and fringes differently for
2946 window-system frames. Consider some pixels near the vertical bar
2947 as on the bar if the frame doesn't have vertical scroll bars.
2948 Associate positions between mode or header lines with the
2949 right window, the left one.
2950
86d1db20
JR
29512000-12-01 Jason Rumney <jasonr@gnu.org>
2952
2953 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
2954
2955 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
2956 invalid frame.
2957
a1d58e5b
GM
29582000-12-01 Gerd Moellmann <gerd@gnu.org>
2959
2960 * window.c (struct saved_window): Add members orig_top and
2961 orig_height.
2962 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
2963 (save_window_save, Fset_window_configuration): Save/restore
2964 window's orig_top and orig_height.
2965
89c609af
JR
29662000-12-01 Jason Rumney <jasonr@gnu.org>
2967
4d177746 2968 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
86d1db20 2969
89c609af
JR
2970 * w32fns.c (x_set_cursor_color): Fix last change.
2971
eccc05db
GM
29722000-11-30 Gerd Moellmann <gerd@gnu.org>
2973
31b6671b
GM
2974 * xdisp.c (echo_area_display): If cursor is in the echo area, make
2975 sure that the next redisplay displays the minibuffer, so that
2976 the cursor will be replaced with what the minibuffer wants.
2977
eccc05db
GM
2978 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
2979 #ifndef instead of using #if.
2980 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
2981 USE_TOOLKIT_SCROLL_BARS is defined.
2982
162de750
JR
29832000-11-30 Jason Rumney <jasonr@gnu.org>
2984
2985 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
2986 x_display_cursor.
2987
693c4692
GM
29882000-11-30 Gerd Moellmann <gerd@gnu.org>
2989
2990 * fns.c (Fmd5): Doc fix.
2991
b5d8d2ca 29922000-11-30 Simon Josefsson <simon@josefsson.org>
edfb795e
GM
2993
2994 * fns.c (Fmd5): New function.
2995 (syms_of_fns): Defsubr md5.
2996
2997 * Makefile.in (obj): Add md5.o
2998
b02cd40b
GM
29992000-11-30 Gerd Moellmann <gerd@gnu.org>
3000
edfb795e
GM
3001 * md5.h, md5.c: New files, taken from glibc.
3002
df3aedcf
GM
3003 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
3004
b02cd40b
GM
3005 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
3006 hasn't a font, use that of the frame, as drawing glyphs
3007 does.
3008
8b5176cd
SM
30092000-11-29 Stefan Monnier <monnier@cs.yale.edu>
3010
3011 * eval.c (Frun_hooks): Allow 0 arguments.
3012
346598f1
GM
30132000-11-29 Gerd Moellmann <gerd@gnu.org>
3014
f9396e03
GM
3015 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
3016 is over the menu bar widget, say it's not on the frame.
3017
4a967a9b
GM
3018 * xfns.c (Fx_create_frame): Reintroduce the call to
3019 face-set-after-frame-defaults.
3020
346598f1
GM
3021 * eval.c (Fsignal): Reset handling_signal.
3022
222456a1
JR
30232000-11-28 Jason Rumney <jasonr@gnu.org>
3024
3025 * w32menu.c (add_menu_item): Reset menu item text when changing
3026 type to radio button.
3027
8049ddc0
GM
30282000-11-28 Gerd Moellmann <gerd@gnu.org>
3029
346598f1 3030 * xselect.c: Update copyright.
f4f4ee4d 3031
bebe4a2c
GM
3032 * window.c (coordinates_in_window): If on a mode or header line,
3033 but sufficiently close to its start, return ``on vertical
3034 border''. This gives us a way to drag windows horizontally when
3035 using toolkit scroll bars.
3036
3037 * xterm.c (note_mouse_highlight): Change the cursor shape
3038 on the vertical border between windows.
3039
3040 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
3041
3042 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
3043 (syms_of_xfns): DEFVAR_LISP it.
3044 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
3045
8d2c2642
GM
3046 * textprop.c (text_read_only): New function.
3047 (verify_interval_modification): Use it instead of signaling
3048 `text-read-only'. This makes it easier to catch this error
3049 with a breakpoint.:
3050
8049ddc0
GM
3051 * xdisp.c (forward_to_next_line_start): Check for newlines,
3052 not end of line, which includes CR.
3053
5a2bae6c
KH
30542000-11-28 Kenichi Handa <handa@etl.go.jp>
3055
3056 * coding.c (Ffind_coding_systems_region_internal): Be sure to
3057 include no-conversion.
3058
ae31f84d
JR
30592000-11-27 Jason Rumney <jasonr@gnu.org>
3060
3061 * w32fns.c (w32_load_system_font): Always mark font as double byte
3062 if codepage is unicode.
3063
67f1cf4c
GM
30642000-11-27 Gerd Moellmann <gerd@gnu.org>
3065
4a74d071
GM
3066 * xdisp.c (forward_to_next_line_start): If already on a newline,
3067 just consume it to avoid unintended skipping over invisible text
3068 below.
3069
902ae620
GM
3070 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
3071 `vertical-line', `mode-line' and `header-line' events.
3072
3073 * xdisp.c (try_window_id): Avoid starting to display in the middle
67f1cf4c
GM
3074 of a character, a TAB for instance. This is easier than to set
3075 up the iterator exactly, and it's not a frequent case, so the
3076 additional effort wouldn't really pay off.
3077
c1e279c2
AC
30782000-11-26 Andrew Choi <akochoi@i-cable.com>
3079
67f1cf4c 3080 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
c1e279c2
AC
3081 init_window_once.
3082
a609568a
JR
30832000-11-25 Jason Rumney <jasonr@gnu.org>
3084
48b21762
JR
3085 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]: Args
3086 to window_from_coordinates should be pixel coordinates.
3087
a609568a
JR
3088 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
3089 redisplay handles them properly.
3090
a658d039
MB
30912000-11-25 Miles Bader <miles@gnu.org>
3092
3093 * indent.c (compute_motion): Keep pos_byte in sync with pos.
3094
d3416cca
JR
30952000-11-24 Jason Rumney <jasonr@gnu.org>
3096
3097 * w32.c (init_environment): Set LANG environment variable based on
3098 locale settings, if not set.
3099
3100 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
3101 making tool bar smaller. When clearing the frame, also
3102 clear current matrices. Clear frame when tool bar disappears.
3103 Don't use more lines for the tool-bar than is available.
3104 (x_change_window_heights): New function.
3105
ba193890
GM
31062000-11-24 Gerd Moellmann <gerd@gnu.org>
3107
2be8f184
GM
3108 * xdisp.c (init_from_display_pos): If POS says we're already after
3109 an overlay string ending at POS, make sure to pop the iterator
3110 because it will be in front of that overlay string. When POS is
3111 ZV, we've thereby also ``processed'' overlay strings at ZV.
3112
ba193890
GM
3113 * xfaces.c (lface_from_face_name): Function comment fix.
3114
1862a24e
MB
31152000-11-24 Miles Bader <miles@gnu.org>
3116
3117 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
3118 apply `mode-line-inverse-video' -- zero means force display using
3119 the default face, non-zero means display using the specialized face.
3120 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
3121
f07fa1b8
KH
31222000-11-23 Kenichi Handa <handa@etl.go.jp>
3123
3124 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
3125 hard coded `4'.
3126
2bcdf662
EZ
31272000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
3128
3129 * coding.c (decode_coding_emacs_mule): Fix the case of
3130 CODING_EOL_LF, which used uninitialized value of c.
3131
ba8299ff
SM
31322000-11-23 Stefan Monnier <monnier@cs.yale.edu>
3133
3134 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
3135
f4117c4d
GM
31362000-11-22 Gerd Moellmann <gerd@gnu.org>
3137
03e757c1
GM
3138 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
3139 buffer object.
3140
f4117c4d
GM
3141 * frame.h (struct frame): Replace desired_tool_bar_items,
3142 current_tool_bar_items, n_desired_tool_bar_items,
cc362d76 3143 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
f4117c4d
GM
3144
3145 * frame.c (make_frame): Change initialization of tool bar
3146 items accordingly.
3147
3148 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
cc362d76 3149 Change references to members deleted from struct frame to use the
f4117c4d
GM
3150 new ones.
3151
3152 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
cc362d76 3153 references to members deleted from struct frame to use the new
f4117c4d
GM
3154 ones.
3155
3156 * dispnew.c (update_frame): Do nothing with frame's tool bar
3157 items.
3158
3159 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
3160
3161 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
cc362d76 3162 (note_tool_bar_highlight): Change references to members deleted
f4117c4d
GM
3163 from struct frame to use the new ones.
3164
f8e2f3f2
MB
31652000-11-23 Miles Bader <miles@gnu.org>
3166
3167 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
3168 the face's inverse-video attribute, rather than overriding it.
3169
60e8e0a5
GM
31702000-11-22 Gerd Moellmann <gerd@gnu.org>
3171
3172 * xfns.c (x_set_tool_bar_lines): Clear internal border when
3173 making tool bar smaller.
3174
92dd1b29
DL
31752000-11-22 Dave Love <fx@gnu.org>
3176
3177 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
3178
e672fdce
MB
31792000-11-22 Miles Bader <miles@gnu.org>
3180
3a17d6cc
MB
3181 * keyboard.c (Vminibuffer_message_timeout): New variable.
3182 (command_loop_1): Use it to determine message timeout.
3183 (syms_of_keyboard): Initialize it.
3184
60e8e0a5 3185 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
e672fdce 3186
e9655d81
KH
31872000-11-22 Kenichi Handa <handa@etl.go.jp>
3188
3189 * sysdep.c: Move the code for declaring h_errno after #include
3190 <netdb.h>.
3191
77270fac
GM
31922000-11-21 Gerd Moellmann <gerd@gnu.org>
3193
cd913aae
GM
3194 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
3195 the menu bar when the tooltip is unmapped.
3196
77270fac
GM
3197 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
3198 sole visible buffer when we're currently in the mini-buffer, and
3199 give up if so.
3200
556635d6
JR
32012000-11-21 Jason Rumney <jasonr@gnu.org>
3202
3203 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
3204 put on the clipboard.
3205 (Fw32_get_clipboard_data): Compare data on clipboard with saved
3206 copy of what Emacs last put there. If they are the same, do not
3207 use the clipboard copy to avoid losing data due to coding
3208 conversions.
3209
5b7bde64
MB
32102000-11-22 Miles Bader <miles@gnu.org>
3211
3212 * minibuf.c (Vminibuffer_prompt_properties): New variable.
3213 (syms_of_minibuf): Initialize it.
3214 (read_minibuf): Add properties from Vminibuffer_prompt_properties
3215 to prompt, don't make read-only.
3216
ff23e1dd
GM
32172000-11-21 Gerd Moellmann <gerd@gnu.org>
3218
3c64f287
GM
3219 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>: Add
3220 BEFORE/AFTER_POTENTIAL_GC.
3221
7aaf4388
GM
3222 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
3223
f5f47add 3224 * buffer.c (mmap_free_1): Avoid a compiler warning.
1a15cca0 3225
ff23e1dd
GM
3226 * term.c, cm.c: Don't try to include termcap.h; see comment there.
3227
37c35586
KH
32282000-11-21 Kenichi Handa <handa@etl.go.jp>
3229
3230 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
3231 ... #endif scope.
3232
ff9ab414
GM
32332000-11-20 Gerd Moellmann <gerd@gnu.org>
3234
c51d2b5e
GM
3235 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
3236 screen supports it.
3237
29a01b72
GM
3238 * s/gnu-linux.h: Don't use `#cpu'.
3239
09dfdf85
GM
3240 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
3241 not defined in mman.h.
3242
ff9ab414
GM
3243 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New
3244 variables.
3245 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
3246 and store an index in the XClientMessageEvent. Storing a
3247 Lisp_Object or pointer can fail on a 64 bit system, since X only
3248 transfers 32 bits.
3249 (x_scroll_bar_to_input_event): Get the window from
3250 scroll_bar_windows.
3251
81459ac9
DL
32522000-11-20 Dave Love <fx@gnu.org>
3253
3254 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
3255
56c13ae6
GM
32562000-11-20 Gerd Moellmann <gerd@gnu.org>
3257
3258 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
3259
495a6df3
KH
32602000-11-20 Kenichi Handa <handa@etl.go.jp>
3261
2bcf3714
KH
3262 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
3263 by WIDTH.
3264
495a6df3
KH
3265 * alloc.c (make_string): Fix previous change. Be sure to make
3266 unibyte string correctly.
3267
6d950f4c
GM
32682000-11-19 Gerd Moellmann <gerd@gnu.org>
3269
39b39373
GM
3270 * window.c (Fwindow_list): Change parameter list to be XEmacs
3271 compatible.
3272 (window_list_1): New function.
3273 (window_loop): Use it instead of Fwindow_list.
3274
b95b34e5
GM
3275 * sysdep.c (emacs_ospeed): New variable.
3276 (toplevel): Don't declare ospeed extern.
3277 (init_baud_rate): Use emacs_ospeed instead of ospeed.
3278
3279 * termcap.c (ospeed): Remove.
3280 (tputs) [!emacs]: Remove unused code.
3281 (tgetent): Avoid a compiler warning.
3282
e83dc917
GM
3283 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
3284 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
b95b34e5 3285 SCROLL_BAR_X_WIDGET with additional argument DPY.
e83dc917
GM
3286
3287 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
3288 removed.
3289 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
3290 Take the X display as additional argument.
3291 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
3292 `Widget' is a pointer type that's not easily stored in Lisp_Object
3293 form in a portable way.
3294
6d950f4c
GM
3295 * dispnew.c (update_text_area): Fix last change.
3296
e47306e6
GM
32972000-11-18 Gerd Moellmann <gerd@gnu.org>
3298
fb3cd89b
GM
3299 * xdisp.c: Use BINDING_STACK_SIZE throughout.
3300
3301 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
3302 clear current matrices.
3303
edaa9aed
GM
3304 * buffer.c (mmap_enlarge): Don't print a message on stderr
3305 if mapping new memory at the end of the existing region fails.
3306
e47306e6
GM
3307 * dispnew.c (update_text_area): Don't skip over equal glyphs
3308 when the last current glyph overlaps the glyph to its right.
3309
509633e3
MB
33102000-11-18 Miles Bader <miles@gnu.org>
3311
3312 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
3313 lines that *end* with "..." too (that's the most common case!).
3314
d392e9c5
GM
33152000-11-18 Gerd Moellmann <gerd@gnu.org>
3316
67988445
GM
3317 * xdisp.c (resize_mini_window): Temporarily change to the
3318 mini-window's buffer if necessary.
1bfdbe43 3319
d392e9c5
GM
3320 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
3321 the tooltip obscures less text under it.
3322
33232000-11-17 Gerd Moellmann <gerd@gnu.org>
3324
3325 * puresize.h (BASE_PURESIZE): Increase to 700000.
3326
92bb977f
JR
33272000-11-18 Jason Rumney <jasonr@gnu.org>
3328
3329 * w32term.c (w32_draw_bitmap): Use face to set colors.
3330
26fbf20b
DL
33312000-11-17 Dave Love <fx@gnu.org>
3332
3333 * lread.c (Fload): Fix #ifdef for pcc.
3334
100b593b
GM
33352000-11-17 Gerd Moellmann <gerd@gnu.org>
3336
3337 * xdisp.c (pos_visible_p): Compute the default character height
3338 differently.
3339
a288d0d1
GM
33402000-11-16 Gerd Moellmann <gerd@gnu.org>
3341
cac94de6
GM
3342 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
3343 knowing the line's height; use the default font's height in that
3344 case.
3345
a288d0d1
GM
3346 * xfaces.c (weight_table): Add `demi' with the same meaning as
3347 `demibold'.
3348
981fb6f6
KH
33492000-11-16 Kenichi Handa <handa@etl.go.jp>
3350
2cca872d 3351 * dispnew.c (null_row): New global static variable.
981fb6f6
KH
3352 (clear_glyph_row): Delete local static variable null_row.
3353
e5fa381b
JR
33542000-11-15 Jason Rumney <jasonr@gnu.org>
3355
3356 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
3357 (w32_alloc_lighter_color): Use new brightness calculations from
3358 xterm.c. Scale delta to be in the range expected by W32.
3359 (w32_draw_relief_rect): Use frame relief colors.
3360
8e42f043
GM
33612000-11-15 Gerd Moellmann <gerd@gnu.org>
3362
6d133d1f
GM
3363 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
3364 (Qinhibit_default_face_x_resources): New variable.
3365 (syms_of_frame): Initialize it.
3366 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
3367
3368 * xdisp.c (pos_visible_p): Improve function comment.
3369
3370 * lisp.h (BINDING_STACK_SIZE): New macro.
3371
8e42f043
GM
3372 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
3373 reading the directory if readdir returns null and errno is EAGAIN
3374 or EINTR.
3375
e8c87124
SM
33762000-11-14 Stefan Monnier <monnier@cs.yale.edu>
3377
3378 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
3379 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
3380 Set amount_to_scroll to max of dx and scroll_step so that
3381 scroll-conservatively doesn't defeat scroll-step>1.
3382 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
3383 scroll-conservatively for line-at-a-time scrolling.
3384
5f0c971d
GM
33852000-11-14 Gerd Moellmann <gerd@gnu.org>
3386
3387 * window.c (Fpos_visible_in_window_p): Call pos_visible with
3388 extra argument.
3389
3390 * xdisp.c (current_mode_line_height, current_header_line_height):
3391 New variables.
3392 (init_xdisp): Initialize them.
3393 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
3394 and use exact mode line heights if it is set.
3395
3396 * lisp.h (pos_visible_p): Change prototype.
3397
3398 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
3399 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
3400 and current_header_line_height first.
3401 (current_mode_line_height, current_header_line_height): Declare
3402 extern.
3403
d7361edf
MB
34042000-11-14 Miles Bader <miles@lsi.nec.co.jp>
3405
3406 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
3407 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
3408 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
3409
ee5e440a
MB
34102000-11-14 Miles Bader <miles@gnu.org>
3411
3412 * xterm.c (x_alloc_lighter_color): Include an additive component
3413 too for dark colors, because FACTOR isn't enough.
3414 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
3415 New macros.
3416
5ca020fc
GM
34172000-11-13 Gerd Moellmann <gerd@gnu.org>
3418
3419 * keyboard.c (show_help_echo): Call message3_nolog with number of
3420 bytes in the help string as 2nd parameter, instead of the number
3421 of characters.
3422
9d348294
MB
34232000-11-13 Miles Bader <miles@gnu.org>
3424
3425 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
3426 (Fload): Use new openp return protocol.
3427 Don't try to use Vload_source_file_function to load .elc files.
3428 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
3429 openp return protocol.
3430 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
3431
1729bb9a
KH
34322000-11-11 Kenichi Handa <handa@etl.go.jp>
3433
4e677396
KH
3434 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
3435
3436 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
3437 Defined these macros.
3438 (NLIST_STRUCT): Avoid re-defining it.
3439
1729bb9a
KH
3440 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
3441 -I/usr/contrib/X11R6/include.
3442 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
3443
a82fe213
JR
34442000-11-10 Jason Rumney <jasonr@gnu.org>
3445
3446 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
3447
3448 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
3449 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
3450
3451 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
3452 (Qw32_charset_vietnamese): New symbol.
3453 (xlfd_charset_of_font): New function.
3454 (w32_load_system_font): Use it.
3455 (x_to_w32_charset): Use Fassoc to find charset info. Special case
3456 when Vw32_charset_info_alist is nil to ensure default face always
3457 has font. Use Fcar and Fcdr for safety.
3458 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
3459 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
3460 pseudo-codepages for special cases.
3461 (w32_to_x_font): New parameter to allow charset portion to be
3462 specified where there is many to one mapping. Callers changed.
3463 (w32_list_fonts): Avoid listing fonts that won't display.
3464
52d89894
GM
34652000-11-10 Gerd Moellmann <gerd@gnu.org>
3466
3467 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
3468 (font_list_1): Renamed from font_list.
3469 (font_list): New function, trying alternative registries from
3470 Vface_alternative_font_registry_alist.
3471 (Finternal_set_alternative_font_registry_alist): New function.
3472 (syms_of_xfaces): Initialize and Staticpro
3473 Vface_alternative_font_registry_alist. Defsubr
3474 Finternal_set_alternative_font_registry_alist.
3475
651cd3da
KR
34762000-11-09 Ken Raeburn <raeburn@gnu.org>
3477
3478 * lisp.h (Flooking_at): Declare.
3479
388ac098
GM
34802000-11-09 Gerd Moellmann <gerd@gnu.org>
3481
778fbc46
GM
3482 * dired.c (directory_files_internal): Fix a braino.
3483
388ac098
GM
3484 * dired.c (directory_files_internal): Add missing GCPRO's.
3485 Some cleanup.
3486
ecaedde1
GM
34872000-11-08 Gerd Moellmann <gerd@gnu.org>
3488
f7eb32aa
GM
3489 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
3490 (resize_mini_window): Return quickly if Vresize_mini_window is
3491 nil. Don't return if Vmax_mini_window_height is nil.
3492
3493 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
3494 (syms_of_xdisp): Initialize them.
3495 (resize_mini_window): Act according to the setting of
3496 Vresize_mini_window.
3497 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
3498
ecaedde1
GM
3499 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
3500 scroll bar widget after configuring it, so that it will appear at
3501 the right position from the start.
3502 (XTredeem_scroll_bar): Cleaned up.
3503
3747ef2c
KH
35042000-11-08 Kenichi Handa <handa@etl.go.jp>
3505
3506 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
5d16e624 3507 font is taller than the frame line, we don't have to bias the
3747ef2c
KH
3508 division by two.
3509
3510 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
3511
03391420
DL
35122000-11-07 Dave Love <fx@gnu.org>
3513
7758f1c1 3514 * config.in (HAVE_MKSTEMP): Add.
03391420
DL
3515
3516 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
3517
b5de343d
GM
35182000-11-07 Gerd Moellmann <gerd@gnu.org>
3519
acad3c0b
GM
3520 * window.c (Fset_window_configuration): Don't try to preserve
3521 point in the current buffer, if that buffer is displayed in more
3522 than one window.
3523
b5de343d
GM
3524 * xfaces.c (lookup_named_face): If default face isn't realized,
3525 try to realize it. Return -1 if not successful.
3526 (Fx_list_fonts): Handle case that face cannot be determined.
3527 (Fface_font): Likewise.
3528
cdb1fe49
GM
35292000-11-06 Gerd Moellmann <gerd@gnu.org>
3530
3531 * window.c (displayed_window_lines): Detect partially
3532 visible lines at the bottom correctly.
3533
d3a67486
SM
35342000-11-06 Stefan Monnier <monnier@cs.yale.edu>
3535
3536 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
3537 when ensuring we don't do visit in indirect buffer.
3538
ff8dd5d5
KH
35392000-11-06 Kenichi Handa <handa@etl.go.jp>
3540
3541 * composite.h (compose_chars_in_text): Add prototype.
3542
3543 * composite.c (Vcomposition_function_table): New variable.
3544 (Qcomposition_function_table): New variable.
3545 (run_composition_function): Call
3546 Vcompose_chars_after_function with three arguments.
3547 (compose_chars_in_text): New function.
3548 (syms_of_composite): Modified the doc-string of
3549 Vcompose_chars_after_function. Declare composition-function-table
3550 as a lisp variable, and initialize it.
3551
3552 * xfns.c (x_encode_text): Suppress producing escape sequences for
3553 composition.
3554
3555 * xselect.c: Include composite.h.
3556 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
3557
d1145f85
AI
35582000-11-05 Andrew Innes <andrewi@gnu.org>
3559
3560 * w32term.c (x_produce_glyphs): Fix typo in enum name.
3561
3562 * sysdep.c (read_input_waiting): Remove extraneous argument to
3563 read_socket_hook.
3564
3565 * w32fns.c (Fx_server_version): Include w32_build_number in the
3566 return list.
3567
3568 * w32heap.c (w32_build_number): New variable.
3569 (cache_system_info): Set it.
3570
3571 * w32heap.h (w32_build_number): Add extern.
3572
3573 * emacs.c (syms_of_emacs): Update docstring for
3574 system-configuration, to reflect the actual usage on MS-Windows.
3575
e85ee976
GM
35762000-10-31 Gerd Moellmann <gerd@gnu.org>
3577
26dcb81b
GM
3578 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
3579 process idle timers while waiting for another event.
3580
0a894bad
GM
3581 * dispnew.c (update_frame_line): Handle case where spaces in
3582 the default face are colored.
3583
e85ee976
GM
3584 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
3585 window height hasn't changed.
3586
01b220b6
JR
35872000-10-31 Jason Rumney <jasonr@gnu.org>
3588
3589 * w32term.c (x_produce_glyphs): Handle composite characters.
3590 (x_draw_glyph_string_foreground)
3591 (x_draw_composite_glyph_string_foreground): Restore old font.
3592
4e6b7204
MB
35932000-10-31 Miles Bader <miles@lsi.nec.co.jp>
3594
3595 * minibuf.c (read_minibuf): Reset the undo history just before
3596 starting the recursive-edit.
3597
d4358b37
GM
35982000-10-30 Gerd Moellmann <gerd@gnu.org>
3599
563f68f1
GM
3600 * xfaces.c (menu_face_change_count): New variable.
3601 (Finternal_set_lisp_face_attribute): Increment it for changes
3602 of the `menu' face.
3603 (realize_basic_faces): Reflect changes in the `menu' faces
3604 in menu bars.
3605
82e274d1
GM
3606 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
3607 dy obtained from the iterator's y-position after moving from
3608 scroll_margin_pos to PT; see comment there.
3609
0dbf9fd2
GM
3610 * xdisp.c (safe_eval_handler): Call add_to_log.
3611
906b3b14
GM
3612 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
3613 is not a symbol or string.
3614
d4358b37
GM
3615 * xdisp.c (echo_area_display): Don't perform a display update from
3616 inside redisplay. The update will happen anyway at the end of
3617 redisplay, and it can confuse redisplay (GC messages while
3618 redisplaying, for instance.)
3619
70c825df
SM
36202000-10-30 Stefan Monnier <monnier@cs.yale.edu>
3621
cf9b4b0b
SM
3622 * xrdb.c (x_load_resources): Use the class name in the defaults.
3623
70c825df
SM
3624 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
3625 (regex_compile): Catch bogus \(\1\).
3626
a1d34b1e
GM
36272000-10-30 Gerd Moellmann <gerd@gnu.org>
3628
cae71efe
GM
3629 * xterm.c (x_alloc_nearest_color): Fix last change to compare
3630 RGB values.
3631
35efe0a1
GM
3632 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
3633 we have a color cache, check that the cached color equals the
3634 allocated color. If not, clear the color cache.
3635
1d3baf74
GM
3636 * window.c (displayed_window_lines): Change buffers if necessary.
3637 Fix computation of displayed lines.
3638
a1d34b1e
GM
3639 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
3640 update_menu_bindings to DEFVAR_BOOL.
3641
70737ea9
KH
36422000-10-30 Kenichi Handa <handa@etl.go.jp>
3643
70c825df 3644 * search.c (Fset_match_data): Be sure to make search_regs always sane.
80406070 3645
fa0cb51d
KH
3646 * puresize.h (BASE_PURESIZE): Increase to 680000.
3647
70737ea9
KH
3648 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
3649
0e4c08e8
JR
36502000-10-29 Jason Rumney <jasonr@gnu.org>
3651
3652 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
3653
3654 * w32term.c (w32_bdf_per_char_metric): Negate descent.
3655 (w32_cache_char_metrics): Handle possibility that 'x' does not
3656 exist in a BDF font.
3657 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
3658
3659 * w32bdf.h (bdffont): Add nchars.
3660
3661 * w32bdf.c (set_bdf_font_info): Set it.
3662 (w32_BDF_TextOut): Swap byte order of double byte characters.
3663 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
3664
45b84006
EZ
36652000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
3666
3667 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
3668 don't override the colors in frame's param_alist, unless they are
3669 unspecified.
3670
3671 * term.c (reassert_line_highlight): If inverse_video is non-zero,
3672 reverse the effect of the highlight flag.
3673
caf9deee
KR
36742000-10-27 Ken Raeburn <raeburn@gnu.org>
3675
3676 * window.h (Fwindow_live_p): Declare.
3677
ae0b9b46
KR
3678 * undo.c (record_delete): Check that last_undo_buffer is really a
3679 buffer before applying XBUFFER to it.
3680
3681 * keymap.c (where_is_internal): Pass lisp object, not integer, to
3682 Faref.
3683
02067692
SM
36842000-10-27 Stefan Monnier <monnier@cs.yale.edu>
3685
3686 * lisp.h (KEYMAPP): New macro.
3687 (get_keymap): Remove.
3688 (get_keymap_1): Rename get_keymap.
3689
3690 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
3691
3692 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
3693
3694 * xmenu.c (single_submenu): Use KEYMAPP.
3695 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
3696 Use KEYMAPP rather than Fkeymapp.
3697
3698 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
3699
3700 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
3701 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
3702 Use KEYMAPP rather than Fkeymapp.
3703 (single_submenu): Use KEYMAPP.
3704 (w32_menu_show, w32_dialog_show): Use TRUE.
3705
3706 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
3707
3708 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
3709 (Fkeymapp): Use KEYMAPP.
3710 (get_keymap): Rename from get_keymap_1. Remove old def.
3711 Return t when autoload=0 and error=0 and the keymap needs autoloading.
3712 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
3713 (Fminor_mode_key_binding): Don't raise an error if the binding
3714 is not a keymap.
3715 (Fuse_global_map, Fuse_local_map): Allow autoloading.
3716 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
3717
3718 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
3719 Allow Vspecial_event_map to be autoloaded.
3720 (menu_bar_items): Fetch the keymap rather than using keymapp.
3721 (menu_bar_one_keymap): No need to follow func-indirect any more.
3722 (parse_menu_item): get_keymap_1 -> get_keymap.
3723 (tool_bar_items): Fetch the keymap rather than using keymapp.
3724 (read_key_sequence): Use KEYMAPP.
3725
3726 * intervals.c (get_local_map): Use get_keymap rather than following
3727 function-indirections explicitly.
3728
3729 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
3730
f9d80af3
JR
37312000-10-27 Jason Rumney <jasonr@gnu.org>
3732
3733 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
3734 point, as Windows has oversized fonts.
3735
3736 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
3737
a3ba27da
GM
37382000-10-27 Gerd Moellmann <gerd@gnu.org>
3739
3740 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
3741 (freehook, reallochook): Handle null pointer arguments.
3742 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
3743
aa3b80cc
SM
37442000-10-27 Stefan Monnier <monnier@cs.yale.edu>
3745
3746 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
3747 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
3748 Giving in to popular pressure to shut up the compiler with casts.
3749
e24e84cc
GM
37502000-10-27 Gerd Moellmann <gerd@gnu.org>
3751
3752 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
3753 signed value, and use a default value computed from the font's
3754 maximum descent.
3755
05ea7ef2
MB
37562000-10-27 Miles Bader <miles@lsi.nec.co.jp>
3757
3758 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
3759 that specify a negative underline position can still use underlines.
3760
3761 * window.c (Fpos_visible_in_window_p): Make POS default to
3762 WINDOW's point, not the current buffer's point.
3763
0b95284b
DL
37642000-10-26 Dave Love <fx@gnu.org>
3765
3766 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
3767 when it's necessary.
3768
6c5b90af
GM
37692000-10-26 Gerd Moellmann <gerd@gnu.org>
3770
8b6d9dc9
GM
3771 * window.c (size_window): Compute size difference from sum of old
3772 child window sizes instead of from parent's size.
3773
6bc92b2e
GM
3774 * xdisp.c (pos_visible_p): Change current buffer if necessary.
3775 Handle obscured lines at the top of the window.
3776
3777 * frame.c (Fdelete_frame): Doc fix. Move running the hook
3778 down after the last error condition check.
3779
6c5b90af
GM
3780 * frame.c (Fdelete_frame): Run delete-frame-hook.
3781
42f92d4d
KH
37822000-10-26 Kenichi Handa <handa@etl.go.jp>
3783
3784 * coding.c (decode_coding): Fix previous change (check also
3785 CODING_MODE_LAST_BLOCK).
3786
d97151cb
SM
37872000-10-25 Stefan Monnier <monnier@cs.yale.edu>
3788
e7efc503
SM
3789 * regex.c: More `unsigned char' -> `re_char' changes.
3790 Also change several `int' into `re_wchar_t'.
3791 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
3792 (PUSH_FAILURE_POINTER): Don't cast any more.
3793 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
3794 We want GCC to complain, since this piece of code makes
3795 re_match non-reentrant, which *should* be fixed.
3796 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
3797 (EXTEND_BUFFER): Use RETALLOC.
3798 (SET_LIST_BIT): Don't cast.
3799 (re_wchar_t): New type.
3800 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
3801 that those two functions will always properly return.
3802 (IMMEDIATE_QUIT_CHECK): Cast to void.
3803 (analyse_first): Use recursion rather than an explicit stack.
3804 (re_compile_fastmap): Can't fail anymore.
3805 (re_search_2): Don't check re_compile_fastmap for failure.
3806 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
3807 Now also sets the new value (passed in a new argument).
3808 (re_match_2_internal): Use it.
3809 Also, use a new var `reg' of type size_t when looping through regs
3810 rather than reuse the inappropriate `mcnt'.
3811
d97151cb
SM
3812 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
3813 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
3814 (where_is_internal): Renamed from Fwhere_is_internal.
3815 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
3816 (Fwhere_is_internal): New function wrapping where_is_internal.
3817 (where_is_internal_1): Handle the case where we're filling the cache.
3818 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
3819
d5789b65
MB
38202000-10-25 Miles Bader <miles@gnu.org>
3821
3822 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
3823
4ecda532
GM
38242000-10-25 Gerd Moellmann <gerd@gnu.org>
3825
3826 * window.c (pos_fully_visible_p): Removed.
3827 (Fpos_visible_in_window_p): Use pos_visible_p to determine
3828 if position is visible and/or fully visible.
3829
3830 * lisp.h (pos_visible_p): Add prototype.
3831
3832 * xdisp.c (pos_visible_p): New function.
3833
68c3a137
KH
38342000-10-25 Kenichi Handa <handa@etl.go.jp>
3835
3836 * process.c (send_process): If OBJECT is t, it means that the data
3837 is from C string, but we should encode it. Before calling
3838 setup_raw_text_coding_system, be sure to flush out data by the
3839 previous coding system.
3840
7ae1c032
MB
38412000-10-25 Miles Bader <miles@lsi.nec.co.jp>
3842
ff4dcd4b
MB
3843 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
3844 assignment of startpos to prev when startpos == pos.
3845
7ae1c032
MB
3846 * editfns.c (find_field): Set the field stickiness correctly from
3847 overlay fields. Use renamed `text_property_stickiness'.
3848 (text_property_stickiness): Renamed from `char_property_stickiness'.
ebe2a441 3849 Only check text properties, not overlays.
7ae1c032
MB
3850 * textprop.c (get_char_property_and_overlay): New function.
3851 (Fget_char_property): Use it.
3852 * intervals.h (get_char_property_and_overlay): Add declaration.
3853
49801145
SM
38542000-10-25 Stefan Monnier <monnier@cs.yale.edu>
3855
3856 * keymap.c: Use AREF, ASET and ASIZE macros.
3857 (Fmake_sparse_keymap): Docstring fix.
3858 (synkey): Remove.
3859 (shadow_lookup): Move up.
3860 Handle the case where lookup-key returns an integer.
3861 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
3862 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
3863 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
3864 Simplify/rewrite the keymap-finding code.
3865 Add check for command shadowing, using shadow_lookup.
3866
39e776cd
SM
38672000-10-24 Stefan Monnier <monnier@cs.yale.edu>
3868
3869 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
3870 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
3871 a symbol.
3872
2488aba5
AI
38732000-10-24 Andrew Innes <andrewi@gnu.org>
3874
3875 * dired.c (directory_files_internal_unwind): New function.
3876 (directory_files_internal): Use it to ensure closedir is called
3877 even if expand-file-name or file-attributes throw, eg. because of
3878 a user interrupt. Also enable immediate_quit while calling
3879 re_search, so that matching can be interrupted as well.
3880
b94fdf61
AI
38812000-10-24 Andrew Innes <andrewi@gnu.org>
3882
3883 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
3884 NT-Emacs only.
3885 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
3886 so that re_search functions only quit when callers expect them to.
3887
38882000-10-24 Kenichi Handa <handa@etl.go.jp>
3889
3890 * regex.c (regex_compile): Change the way of handling a range from
3891 a char less than 256 to a char not less than 256.
3892
1946f901
GM
38932000-10-24 Gerd Moellmann <gerd@gnu.org>
3894
7ae2f10f
GM
3895 * window.c (size_window): Prevent setting window's width or
3896 height to a negative value (esp. with XSETFASTINT).
3897
5dcab13e
GM
3898 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
3899 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
3900 (protect_malloc_state) [GC_MALLOC_CHECK &&
3901 GC_PROTECT_MALLOC_STATE]: New function.
3902 (PROTECT_MALLOC_STATE): New macro.
3903 (__malloc_initialize, morecore, _malloc_internal)
3904 (_free_internal) _realloc_internal): Use it to make _heapinfo
3905 read-only outside of gmalloc.
3906
63e1b552
GM
3907 * keymap.c: Update copyright.
3908
1946f901
GM
3909 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
3910 a symbol.
3911
4fa09beb
GM
39122000-10-24 Colin Walters <walters@cis.ohio-state.edu>
3913
3914 * filelock.c (unlock_all_files): Use unlock_file to expand each
3915 buffer's file_truename before trying remove its lock file.
3916
23afac01
EZ
39172000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
3918
3919 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
3920 or CRLF, decode EOLs.
3921
04448b95
KH
39222000-10-24 Kenichi Handa <handa@etl.go.jp>
3923
3924 * window.c (Fdisplay_buffer): Fix doc.
3925
3090a5a5
JR
39262000-10-23 Jason Rumney <jasonr@gnu.org>
3927
3928 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
3929 ASCII font of default fontset on Windows.
3930
3931 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
3932 xterm.c comment below).
3933
3934 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
3935
a83fee2c
GM
39362000-10-23 Gerd Moellmann <gerd@gnu.org>
3937
3938 * xterm.c (x_connection_closed): Reset handling_signal.
3939
3940 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing
3941 null.
3942
6ffdb539
MB
39432000-10-23 Miles Bader <miles@gnu.org>
3944
3945 * window.c (window_scroll_pixel_based, window_scroll_line_based):
3946 Pass nil for FULLY argument to Fpos_visible_in_window_p to
3947 maintain old behavior.
3948 * minibuf.c (Fminibuffer_complete): Likewise.
3949
7f1c969b
MB
39502000-10-23 Miles Bader <miles@lsi.nec.co.jp>
3951
3952 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
3953 that when a font can't be exactly centered, it errs up rather than
3954 down.
3955
23afac01 39562000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
8ec118cd
SZ
3957
3958 * fns.c (Fbase64_decode_string): The decoded result should be
3959 unibyte.
3960
1a578e9b
AC
39612000-10-23 Andrew Choi <akochoi@i-cable.com>
3962
3963 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
3964
3965 * dispnew.c [macintosh]: Include macterm.h.
a83fee2c 3966 (init_display) [macintosh]: Initialization for window system.
1a578e9b
AC
3967
3968 * emacs.c (main) [macintosh]: Call syms_of_textprop,
3969 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
3970 syms_of_search, x_term_init, and init_keyboard before calling
3971 init_window_once. Also, call syms_of_xmenu.
3972
3973 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
3974 default fontset to Monaco.
3975
3976 * frame.c [macintosh]: Include macterm.h. Remove declarations of
3977 NewMacWindow and DisposeMacWindow.
3978 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
3979 instead of calling NewMacWindow and setting fields of
3980 f->output_data.mac directly. Call init_frame_faces.
3981 (Fdelete_frame) [macintosh]: Remove unused code.
3982 (Fmodify_frame_parameters) [macintosh]: Call
3983 x_set_frame_parameters instead of mac_set_frame_parameters.
3984
3985 * frame.h [macintosh]: Define menu_bar_lines field in struct
3986 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
3987
3988 * keyboard.c [macintosh]: Include macterm.h.
3989 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
3990 and menu_bar_activate_event type events as for X and NT.
3991 (make_lispy_event) [macintosh]: Construct lisp events of type
3992 MENU_BAR_EVENT as for X and NT.
3993
3994 * sysdep.c [macintosh]: Remove declaration for sys_signal.
3995 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
3996 (sys_subshell) [macintosh]: Remove definition entirely.
3997 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
3998 Vwindow_system_version here. Remove initialization of
3999 Vx_bitmap_file_path.
4000 (read_input_waiting): Correct the number of parameters passed to
4001 read_socket_hook.
4002 Move all Macintosh functions to mac/mac.c.
4003
4004 * term.c [macintosh]: Include macterm.h.
4005
4006 * window.c [macintosh]: Include macterm.h.
4007
4008 * xdisp.c [macintosh]: Include macterm.h. Declare
4009 set_frame_menubar and pending_menu_activation.
4010 (echo_area_display) [macintosh]: Do not return if terminal frame
4011 is the selected frame.
4012 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
4013 Allow only the selected frame to set menu bar.
4014 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
4015 calling FRAME_EXTERNAL_MENU_BAR (f).
4016 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
4017
4018 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
4019 and check_x. Declare XCreateGC. Define x_create_gc and
4020 x_free_gc. Initialize font_sort_order.
4021 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
4022 but call x_list_fonts instead of w32_list_fonts.
4023 (Finternal_face_x_get_resource) [macintosh]: Do not call
4024 display_x_get_resource.
4025 (prepare_face_for_display) [macintosh]: Set xgcv.font.
4026 (realize_x_face) [macintosh]: Load the font if it is specified in
4027 ATTRS.
4028 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed
4029 to Qt.
4030
1ffbabe3
SM
40312000-10-22 Stefan Monnier <monnier@cs.yale.edu>
4032
4033 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
4034 is nil: since we go to the end of submap anyway, we'd end up
4035 setting nil to nil.
4036 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
4037 doesn't obey autoload.
4038
bed43f1d
EZ
40392000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
4040
1ffbabe3 4041 * msdos.c (dos_set_window_size): Update screen dimension variables.
bed43f1d 4042
ea4233a7
JR
40432000-10-21 Jason Rumney <jasonr@gnu.org>
4044
4045 * w32term.c (w32_cache_char_metrics): Double check that font is
4046 really fixed pitch before trusting tmPitchAndFamily.
4047
f3d3c491
AI
40482000-10-21 Andrew Innes <andrewi@gnu.org>
4049
4050 * w32gui.h (w32_char_font_type): Move enum from w32term.c
4051
4052 * w32term.h: Extern decl for w32_cache_char_metrics.
4053
4054 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
4055
4056 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
4057 (w32_unload_font): Free per_char array if present.
4058
4059 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
4060 cached information in emulated XFontStruct to handle common cases
4061 quickly. Do not allocate XCharStruct for return.
4062 (w32_native_per_char_metric): New function.
4063 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
4064 allocating one.
4065 (x_produce_glyphs): Don't get an HDC. Change calls to
4066 w32_per_char_metric to match arg change above. Remove calls to
4067 free results.
4068 (w32_get_glyph_overhangs): Ditto.
4069 (w32_cache_char_metrics): New function.
4070
4071 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
4072 ($(BLD)/casefiddle.$(O)): Remove compile command.
4073 ($(BLD)/gmalloc.$(O)): Remove compile command.
4074 ($(BLD)/dispnew.obj):
4075 ($(BLD)/keyboard.obj):
4076 ($(BLD)/w32inevt.obj):
4077 ($(BLD)/w32bdf.obj):
4078 ($(BLD)/alloc.obj):
4079 ($(BLD)/buffer.obj):
4080 ($(BLD)/editfns.obj):
4081 ($(BLD)/emacs.obj):
4082 ($(BLD)/fileio.obj):
4083 ($(BLD)/fns.obj):
4084 ($(BLD)/indent.obj):
4085 ($(BLD)/insdel.obj):
4086 ($(BLD)/intervals.obj):
4087 ($(BLD)/minibuf.obj):
4088 ($(BLD)/print.obj):
4089 ($(BLD)/scroll.obj):
4090 ($(BLD)/sysdep.obj):
4091 ($(BLD)/textprop.obj):
4092 ($(BLD)/widget.obj):
4093 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
4094 ($(BLD)/term.obj): Add dependency on dispextern.h.
4095
4096 * makefile.nt ($(BLD)\dispnew.obj):
4097 ($(BLD)\keyboard.obj):
4098 ($(BLD)\w32inevt.obj):
4099 ($(BLD)\w32bdf.obj):
4100 ($(BLD)\alloc.obj):
4101 ($(BLD)\buffer.obj):
4102 ($(BLD)\editfns.obj):
4103 ($(BLD)\emacs.obj):
4104 ($(BLD)\fileio.obj):
4105 ($(BLD)\fns.obj):
4106 ($(BLD)\indent.obj):
4107 ($(BLD)\insdel.obj):
4108 ($(BLD)\intervals.obj):
4109 ($(BLD)\minibuf.obj):
4110 ($(BLD)\print.obj):
4111 ($(BLD)\scroll.obj):
4112 ($(BLD)\sysdep.obj):
4113 ($(BLD)\textprop.obj):
4114 ($(BLD)\widget.obj):
4115 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
4116 ($(BLD)\term.obj): Add dependency on dispextern.h
4117
18ad4821
EZ
41182000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
4119
4120 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
4121 with an additional argument of Qt.
4122
de54681a
MB
41232000-10-21 Miles Bader <miles@gnu.org>
4124
4125 * window.c (pos_fully_visible_in_window_p): New function.
4126 (Fpos_visible_in_window_p): Add FULLY argument.
4127 Use pos_fully_visible_in_window_p.
4128 (window_scroll_pixel_based, window_scroll_line_based): Update
4129 calls to Fpos_visible_in_window_p.
4130 * lisp.h (Fpos_visible_in_window_p): Update prototype
4131
13c844fb
GM
41322000-10-20 Gerd Moellmann <gerd@gnu.org>
4133
4134 * alloc.c (toplevel): Conditionalize compilation of mem_*
4135 functions differently.
4136
d9506268
JR
41372000-10-20 Jason Rumney <jasonr@gnu.org>
4138
4139 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
4140 mem_init where it used to be. mem_z etc not defined otherwise.
4141
8094989b
GM
41422000-10-20 Gerd Moellmann <gerd@gnu.org>
4143
4144 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
4145 GC_MALLOC_CHECK.
4146 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
4147 structure definition and related variabled to the top of the file.
4148 Include this code when GC_MALLOC_CHECK is defined.
4149 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
4150 register/unregister allocated region.
4151 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
4152 which isn't allocated.
4153 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
4154 something which is already in use.
4155 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
4156 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
4157 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
4158 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
4159
4160 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
4161 _malloc_internal instead of malloc.
4162 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
4163 of free.
4164
ea456eb4
AI
41652000-10-20 Andrew Innes <andrewi@gnu.org>
4166
4167 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
4168 Windows.
4169 (my_strftime) <macro>: Don't use macro arg list when redefining as
4170 _strftime_copytm.
4171 (my_strftime) <function>: Supply 0 as ut argument.
4172
e64c3a75
JR
41732000-10-19 Jason Rumney <jasonr@altavista.net>
4174
4175 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
4176 including dispextern.h, as it stops faces from working.
4177
4178 * w32fns.c (Fx_create_frame): Don't bother calling
4179 face-set-after-frame-default since the caller does it for us
4180 anyway. Clean up calls to x_get_arg to be consistent with X.
4181
4182 * w32term.c (x_produce_glyphs): Handle
4183 unibyte_display_via_language_environment correctly.
4184 (w32_draw_box_rect): Fix the calculation of width and height.
4185
4186 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
4187 as it has stopped working.
4188 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
4189 menu-bar.
4190
17401c97
GM
41912000-10-19 Gerd Moellmann <gerd@gnu.org>
4192
4193 * eval.c (skip_debugger): Prevent a compiler warning.
4194 (Fcondition_case): Likewise.
4195 (Fbacktrace_frame): Use a null interactive spec.
4196
773272d8
KH
41972000-10-19 Kenichi Handa <handa@etl.go.jp>
4198
4199 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
4200
a42943e9
GM
42012000-10-18 Gerd Moellmann <gerd@gnu.org>
4202
e50517d9
GM
4203 * strftime.c: Sync with glibc, file version 1.78.
4204 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
4205 should no longer be used according to ISO 8601.
4206
9035a35a
GM
4207 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
4208 no map for meta_prefix_char, don't try to use it as a keymap.
4209 Instead, if T_OK is non-zero, look up a default binding, if any,
4210 otherwise, if T_OK is zero, return nil.
4211
a42943e9
GM
4212 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
4213 (x_to_xcolors, png_load): Use x_query_color.
4214
4215 * xterm.c (x_color_cells, x_query_colors, x_query_color): New
4216 functions.
4217 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
4218 which can be slow.
4219 (x_copy_color, x_alloc_lighter_color): Likewise.
4220
4221 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
4222 (x_query_color, x_query_colors): Add prototype.
4223
4224 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
4225 check_string_bytes only if not noninteractive, increase count to 50.
4226
00de2987
MB
42272000-10-18 Miles Bader <miles@lsi.nec.co.jp>
4228
4229 * insdel.c (adjust_markers_for_delete): Handle before-insertion
4230 markers correctly.
4231
54918e2b
GM
42322000-10-17 Gerd Moellmann <gerd@gnu.org>
4233
1f0b3fd2
GM
4234 * alloc.c (pure_bytes_used): Renamed from pureptr.
4235 (ALIGN): New macro.
4236 (pure_alloc): New function.
4237 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
4238 Use it.
4239 (Fpurecopy): Use PURE_POINTER_P.
4240
68c5d1db
GM
4241 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
4242 PT has moved backward.
4243
9a038881
GM
4244 * xdisp.c (cursor_row_p): Take continued lines into account.
4245
361b097f
GM
4246 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
4247 string's size_byte.
4248 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
4249 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
4250 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
4251 string allocated.
4252
54918e2b
GM
4253 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
4254 of selective display off while searching for the next line start.
4255
03ed0806
KH
42562000-10-17 Kenichi Handa <handa@etl.go.jp>
4257
4258 * Makefile.in (term.o): Depend on dispextern.h.
4259
7e05cdaf
SM
42602000-10-16 Stefan Monnier <monnier@cs.yale.edu>
4261
4262 * keymap.c (keymap_memberp): Ensure that nil is not a member.
4263
a6801fd1
GM
42642000-10-16 Gerd Moellmann <gerd@gnu.org>
4265
483de32b
GM
4266 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
4267 the iterator at the beginning, so that they can be set later on,
4268 for instance in reseat_at_next_visible_line_start, without being
4269 overwritten.
4270
a6801fd1
GM
4271 * xfns.c (pbm_format): Add :foreground and :background keywords.
4272 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
483de32b 4273 (xbm_load): Recognize foreground and background color
a6801fd1
GM
4274 specifications.
4275
dbf1fcc1
EZ
42762000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
4277
4278 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
4279
4280 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern
4281 declaration.
4282
4283 * msdos.c (IT_set_face): Compare highlighted face with the default
4284 face, and invert colors if these faces' colors are identical.
4285 (Fmsdos_remember_default_colors): Don't swap foreground and
4286 background colors in initial_colors[].
4287 (IT_set_frame_parameters): Don't swap frame's foreground and
4288 background pixels. If ALIST includes "(reverse . t)", swap
4289 foreground-color and background-color properties in frame's
4290 param_alist. If the original frame's param_alist doesn't specify
4291 the colors, store unspecified-fg and unspecified-bg, reversed if
4292 required.
4293
4294 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
4295 the colors are unspecified and reversed, reverse fore- and back-
4296 ground in the returned value.
4297 (Fframe_parameter): Ditto.
4298
b41fe2c3
GM
42992000-10-16 Gerd Moellmann <gerd@gnu.org>
4300
3a6b59d9
GM
4301 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
4302 get_last_unchanged_at_beg_row.
4303 (find_first_unchanged_at_end_row): Renamed from
4304 get_first_unchanged_at_end_row.
4305 (find_first_unchanged_at_end_row): Convert assertions to
4306 unconditional tests which abort. When looking for a row in
4307 unchanged text, don't go further back than first_text_row.
4308
b41fe2c3
GM
4309 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
4310 Don't add in the last line's height when deciding if the new
4311 position is below the scroll margin.
9d1af64f 4312
b41fe2c3 43132000-10-16 Miles Bader <miles@gnu.org>
f657bbf6
MB
4314
4315 * editfns.c (Fconstrain_to_field): Check carefully for field
4316 boundaries if either OLD_POS or NEW_POS has a non-nil field
4317 property, even if they're the same.
4318
c412cb7b
KH
43192000-10-16 Kenichi Handa <handa@etl.go.jp>
4320
4321 * xterm.c (x_draw_box_rect): Fix the calculation of width and
4322 height for XFillRectangle.
4323
5586f3eb
SM
43242000-10-15 Stefan Monnier <monnier@cs.yale.edu>
4325
4326 * syntax.c (Fstring_to_syntax): New function extracted from
4327 Fmodify_syntax_entry.
4328 (Fmodify_syntax_entry): Use it and document the ! and | fences.
4329 (skip_chars, Fforward_comment): Remove unused variables.
4330 (syms_of_syntax): Add defsubr for string-to-syntax.
4331 (describe_syntax): Add code for comment and string fences.
4332
db785038
SM
43332000-10-14 Stefan Monnier <monnier@cs.yale.edu>
4334
4335 * keymap.c (access_keymap): Add AUTOLOAD parameter.
4336 Do the meta->esc mapping. Call get_keyelt before returning.
4337 Start scanning from the second element (the first is always `keymap')
4338 to make it easier to detect when we reach a parent map.
4339 Handle the case of inheriting from a symbol whose function is a map.
4340 (Fkeymap_parent): Also handle the `inherit from symbol' case.
4341 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
4342 (get_keyelt, Flookup_key): Update call to access_keymap.
4343 Remove the meta->esc mappings.
4344 (define_as_prefix): Delete old disabled code.
4345 (menu_item_p): New function.
4346 (where_is_internal_1): Skip over the few remaining menu items.
4347 * lisp.h (access_keymap): Update prototype.
4348 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
4349 Update call to access_keymap.
4350 (follow_key, read_key_sequence): Update calls to access_keymap.
4351 Remove the meta->esc mappings.
4352
cafafe0b
GM
43532000-10-13 Gerd Moellmann <gerd@gnu.org>
4354
a2e2a7f6
GM
4355 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
4356 with additional argument.
4357
cafafe0b
GM
4358 * xdisp.c (cursor_row_p): New function.
4359 (try_cursor_movement, display_line): Use it.
4360
4361 * xdisp.c (append_space): Also save/restore iterator's current
4362 character and its length.
4363
4364 * xdisp.c (init_from_display_pos): Add an assertion.
4365 (handle_stop): Don't set iterator's add_overlay_start.
4366 (handle_invisible_prop): Likewise.
4367 (load_overlay_strings): If text under an overlay is invisible,
4368 take both before- and after-strings into account when the iterator
4369 is positioned either at the start or at the end of the overlay.
4370 (forward_to_next_line_start): Rewritten.
4371 (reseat_at_next_visible_line_start): Rewritten.
4372 (set_iterator_to_next): Add parameter RESEAT_P.
4373
4374 * dispextern.h (struct it): Remove member add_overlay_start.
4375 (set_iterator_to_next): Change prototype.
4376
c744452b
KH
43772000-10-13 Kenichi Handa <handa@etl.go.jp>
4378
4379 * coding.c (code_convert_region): Be sure to initialize
4380 coding->category_idx.
e4a3f4e1
KH
4381 (decode_coding_string): Set coding->src_multibyte and
4382 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
4383 (encode_coding_string): Set coding->src_multibyte and
4384 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
c744452b 4385
321fd26f
SM
43862000-10-12 Stefan Monnier <monnier@cs.yale.edu>
4387
4388 * xfns.c (Fx_create_frame): Don't bother calling
4389 face-set-after-frame-default since the caller does it for us anyway.
4390
76832439
EZ
43912000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
4392
4393 * window.c (coordinates_in_window): Fix detection of vertical line
4394 on character terminals.
4395
2483cf58
GM
43962000-10-12 Gerd Moellmann <gerd@gnu.org>
4397
4398 * editfns.c (save_excursion_save): Additionally record the
4399 selected window.
4400 (save_excursion_restore): If buffer was visible in a window, and a
4401 different window was selected, and the old selected window is
4402 still live, restore point in that window.
4403
eb991b25
KH
44042000-10-12 Kenichi Handa <handa@etl.go.jp>
4405
8a0eba09
KH
4406 * xterm.c (x_produce_glyphs): Handle
4407 unibyte_display_via_language_environment correctly.
4408
20401fcc
KH
4409 * regex.c (regex_compile): Change the way of handling a range from
4410 unibyte char to multibyte char.
4411
4412 * syntax.c (skip_chars): Change the way of handling a range from
4413 unibyte char to multibyte char.
4414
eb991b25
KH
4415 * process.c (read_process_output): Cancel previous change.
4416
365dd325
EZ
44172000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
4418
c1b096cb
EZ
4419 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
4420
365dd325
EZ
4421 * charset.c (Ffind_charset_string): Doc fix.
4422 (Ffind_charset_region): Doc fix.
4423
eb483c2b
KH
44242000-10-11 Kenichi Handa <handa@mule.m17n.org>
4425
4426 * process.c (read_process_output): Fix previous change. Adjust
4427 multibyteness of text to insert in a buffer by
df3c11b9 4428 string_make_unibyte/multibyte instead of
eb483c2b
KH
4429 Fstring_as_unibyte/multibyte.
4430
b40bfb99
AS
44312000-10-10 Andreas Schwab <schwab@suse.de>
4432
4433 * alloc.c (mark_object): Remove all workarounds installed on
4434 1993-08-08.
4435
caff31d4
KH
44362000-10-10 Kenichi Handa <handa@etl.go.jp>
4437
4438 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before
4439 returning.
4440 (base64_encode_1): Make it work for a text of multibyte form.
4441 (Fbase64_decode_region): Allocate sufficient memory for multibyte
4442 case. Don't call str_to_multibyte because base64_decode_1
4443 produces correct multibyte form for eight-bit codes.
4444 (Fbase64_decode_string): Adjusted for the change of
4445 base64_decode_1.
4446 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
4447 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
4448 codes.
4449
4450 * charset.h (CHAR_STRING): Optimized for single byte characters.
4451
cba026ef
AS
44522000-10-09 Andreas Schwab <schwab@suse.de>
4453
4454 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
4455 -1 after socket is closed, to fall through to error processing.
4456
1e21fe48
EZ
44572000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
4458
4459 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
365dd325 4460 variables. If ALIST includes foreground-color or
1e21fe48
EZ
4461 background-color, change also the colors of the default face for
4462 this frame.
4463
a640322e
EZ
44642000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
4465
4466 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
4467 them extern (they are defined on xfaces.c).
4468 (syms_of_msdos): Don't intern and don't staticpro
4469 Qbackground_color and Qforeground_color.
4470
a115794c
EZ
44712000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
4472
4473 * frame.c (Fframe_parameter): For non-windowed frames, if
4474 f->param_alist says foreground or background color is unspecified,
4475 call tty_color_name to return the color name computed from the
4476 frame's current colors.
4477
f5533b63
DL
44782000-10-06 Dave Love <fx@gnu.org>
4479
4480 * terminfo.c (ospeed): Don't declare.
4481
4482 * sysdep.c: Don't include string.h.
4483 (h_errno): Declare conditional also on TRY_AGAIN.
4484
4485 * charset.c (Ffind_charset_string): Doc fix.
4486
4487 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
4488 (Fbase64_decode_region, Fbase64_decode_string): More explicit
4489 error messages.
4490
2b06561a
DL
44912000-10-05 Dave Love <fx@gnu.org>
4492
4493 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
4494 position like menu-bar.
4495
ca839c85
GM
44962000-10-05 Gerd Moellmann <gerd@gnu.org>
4497
4498 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
4499
4500 * xdisp.c (handle_single_display_prop): Use safe_call1.
4501 (safe_call): Renamed from call_function.
4502 (safe_call1): New function.
4503 (handle_fontified_prop): Use safe_call1 instead of call1.
4504 (safe_eval): Renamed from eval_form.
4505 (safe_eval_handler): Renamed from eval_handler.
4506 (handle_single_display_prop, display_mode_element): Use safe_eval
4507 instead of eval_form.
4508
4509 * xfaces.c (merge_face_heights): Use safe_call instead of
4510 call_function.
4511
4512 * keyboard.c (show_help_echo): Use safe_call instead of
4513 call_function; use safe_eval instead of eval_form.
4514
4515 * lisp.h (safe_call): Renamed from call_function.
4516 (safe_eval): Renamed from eval_form.
4517 (safe_call1): Add prototype.
4518
a3489ece
MB
45192000-10-05 Miles Bader <miles@lsi.nec.co.jp>
4520
4521 * xfns.c (image_ascent): Rearrange ascent calculation for the
4522 has-a-font case.
4523
35810b6f
SM
45242000-10-04 Stefan Monnier <monnier@cs.yale.edu>
4525
4526 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
4527 (where_is_internal_1): Don't bother ignoring menu-items any more.
4528
3dc78168
GM
45292000-10-04 Gerd Moellmann <gerd@gnu.org>
4530
4531 * keyboard.c (update_menu_bindings): New variable.
4532 (parse_menu_item): Use AREF. If update_menu_bindings
4533 is 0, don't update menu bindings.
4534 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
4535
1efc2bb9
EZ
45362000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
4537
4538 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
4539 to `mark_object'.
4540
3f679f55
SM
45412000-10-02 Stefan Monnier <monnier@cs.yale.edu>
4542
4543 * syntax.c (forw_comment): Match nestedness of ender/starter.
4544 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
4545 (prev_char_comstart_first): Remove.
4546 (back_comment): Check two-char comment markers more carefully
4547 to better handle overlapping cases like *//* or /* */* */ ...
4548 Match nestedness of ender/starter.
4549
2021ab61
DL
45502000-10-02 Dave Love <fx@gnu.org>
4551
4552 * config.in (HAVE_GAI_STRERROR): Add undef.
4553
4554 * process.c (Fopen_network_stream): Use it.
4555
4556 * m/alpha.h (NO_REMAP): Don't define.
4557
64e6cc18
GM
45582000-10-02 Gerd Moellmann <gerd@gnu.org>
4559
4560 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
4561 return with a string converted to an integer or vice versa when
4562 Vmocklisp_arguments is t.
4563 (Fsignal): Likewise. The function can return for `quit'.
4564 (struct gcpro): Declare member `var' to point to a volatile
4565 Lisp_Object.
4566
4567 * eval.c (error): Prevent compiler warning.
4568
b1904cd9
SM
45692000-09-30 Stefan Monnier <monnier@cs.yale.edu>
4570
4571 * keymap.c (keymap_memberp): New function.
4572 (Fset_keymap_parent): Use it.
4573 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
4574 Use keymap_memberp to avoid creating cycles.
4575 (access_keymap): Use KEYMAPP.
4576
71c9ec51
GM
45772000-09-30 Gerd Moellmann <gerd@gnu.org>
4578
4579 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
64e6cc18
GM
4580 gai_strerror. Make sure xerrno is set if connect fails. Improve
4581 error recovery.
71c9ec51 4582
c70c6b58
JR
45832000-09-29 Jason Rumney <jasonr@gnu.org>
4584
4585 * w32term.c (w32_char_font_type, w32_encode_char)
4586 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
4587 (w32_bdf_per_char_metric): New function.
4588 (w32_per_char_metric): Use it.
4589 (x_draw_glyph_string_background): Always draw background for BDF
4590 glyphs.
4591
4592 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
4593 GDI object which is a scarce resource.
4594
4595 * w32bdf.c (search_file_line): Fix skipping of whitespace.
4596 (get_quoted_string): Fix limit on memchr search.
4597 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
4598 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
4599 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
4600 (get_cached_font_char, cache_char_offset): Use macro
4601 BDF_CODEPOINT_RANGE_COVER_P.
4602 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
4603 (clear_cached_bitmap_slots): New function.
4604 (GET_HEX_VALUE): G-Z, g-z are not hex.
4605 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
4606 (get_bitmap_with_cache): Use new cache implementation.
4607 (create_offscreen_bitmap): New function.
4608 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
4609
4610 * w32term.c (x_produce_glyphs): If the distance from the current
4611 position to the next tab stop is less than a canonical character
4612 width, use the tab stop after that.
4613 (x_draw_glyphs): Handle case START and END are out of bounds more
4614 carefully.
4615 (x_clear_mouse_face): Block/unblock input.
4616 (x_display_and_set_cursor): Don't show a hollow box cursor for
4617 buffers whose cursor_type is nil.
4618
fe01239f
GM
46192000-09-29 Gerd Moellmann <gerd@gnu.org>
4620
4621 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar
4622 disappears.
4623
4624 * dispextern.h (updating_frame): Declare extern.
4625
e7c52f1f
AS
46262000-09-29 Andreas Schwab <schwab@suse.de>
4627
4628 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
4629
de6e1f7c
GM
46302000-09-29 Gerd Moellmann <gerd@gnu.org>
4631
25126faa
GM
4632 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
4633 use its function definition.
4634 (tool_bar_items): Likewise.
4635
de6e1f7c
GM
4636 * lisp.h (fatal): Declare NO_RETURN.
4637
454ee39b
KH
46382000-09-29 Kenichi Handa <handa@etl.go.jp>
4639
4640 * keymap.c: Remove the line "#undef NULL".
4641
96301c5f
GM
46422000-09-28 Gerd Moellmann <gerd@gnu.org>
4643
4644 * xterm.c (x_make_frame_visible): Try harder to make the frame
4645 visible.
4646
efffeeb4
DL
46472000-09-28 Dave Love <fx@gnu.org>
4648
ecb8b666
DL
4649 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
4650
dc3cd20f
DL
4651 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
4652
4653 * .gdbinit (xreload): Note its need on GNU/Linux.
4654
efffeeb4
DL
4655 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
4656 r_alloc, r_alloc_free.
4657
8610d903
KH
46582000-09-28 Kenichi Handa <handa@etl.go.jp>
4659
4660 * syntax.c (skip_chars): Handle negation correctly.
4661
8901d1ac
GM
46622000-09-27 Gerd Moellmann <gerd@gnu.org>
4663
6f22f1ad
GM
4664 * xfaces.c (realize_default_face): Call set_lface_from_font_name
4665 with non-zero FORCE_P argument.
4666
8901d1ac
GM
4667 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
4668 Add assertions.
4669
4670 * xdisp.c (window_box_height): Add an assertion.
4671
4672 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
4673 tool-bar than is available.
4674 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
4675
36f1966f
DL
46762000-09-27 Dave Love <fx@gnu.org>
4677
efffeeb4 4678 * s/irix6-5.h: Now works 64-bit. Tidied.
36f1966f 4679
31d929e5
GM
46802000-09-26 Gerd Moellmann <gerd@gnu.org>
4681
c98863bf
GM
4682 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
4683 instead of BITS_PER_INT.
4684 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
4685 EMACS_UINT, respectively.
4686 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
4687
4688 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
4689
4690 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
4691
77072ab1
GM
4692 * window.c (freeze_window_starts): Construct last argument for
4693 foreach_window differently.
4694
4695 * xfns.c (x_decode_color): Don't return a Lisp_Object.
4696
4697 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
4698 EMACS_UINT instead of `int' and `unsigned int'.
4699 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
4700
4701 * frame.h (struct frame): Make the `nothing' member of union
4702 output_data an EMACS_INT.
4703
31d929e5
GM
4704 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug
4705 hunting.
4706 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
4707 size in the sdata structure.
4708 (SDATA_NBYTES, SDATA_DATA): New macros.
4709 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
4710 differently for the different layout of the sdata structure.
4711 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
4712 in sdata.
4713 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
4714 Check that size recorded in the string size and size recorded in
4715 the sdata structure agree.
4716
3e60b029
DL
47172000-09-25 Dave Love <fx@gnu.org>
4718
4719 * buffer.c: Include stdio.h.
4720
4721 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
4722
4723 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
4724
4725 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
4726 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as
4727 size_t.
4728 (__malloc_extra_blocks): Declare as __malloc_size_t.
4729
8ff16b4e
GM
47302000-09-25 Gerd Moellmann <gerd@gnu.org>
4731
755a2ccd
GM
4732 * alloc.c (mark_image): Use GC_NILP instead of NILP.
4733
d8b4516f
GM
4734 * keyboard.c (show_help_echo): Set help_echo_showing_p.
4735 (read_char): If help-echo is showing, preserve the echo area
4736 when redisplaying.
4737
4738 * xdisp.c (help_echo_showing_p): New variable.
4739 (set_message): Reset it to 0.
4740 (init_xdisp): Initialize help_echo_showing_p.
4741
4742 * dispextern.h (help_echo_showing_p): Declare extern.
4743
4744 * config.in: Fix typo in __GNUC_MINOR__.
4745
4746 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
4747
b11af2dd
GM
4748 * s/freebsd.h (POSIX_SIGNALS): Define.
4749
8ff16b4e
GM
4750 * xterm.c (x_clear_mouse_face): Block/unblock input.
4751
844eb643
DL
47522000-09-24 Dave Love <fx@gnu.org>
4753
4754 * fns.c (base64_encode_1): Fix last change.
4755
b30ab1b3
GM
47562000-09-22 Gerd Moellmann <gerd@gnu.org>
4757
4758 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
4759
4760 * xdisp.c (try_window_reusing_current_matrix): More fixes
4761 for the case window has a header-line.
4762
c6cbe5f0
DL
47632000-09-22 Dave Love <fx@gnu.org>
4764
4c7c1f3f
DL
4765 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
4766 a doc string.
4767
4768 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
4769
c6cbe5f0
DL
4770 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
4771
550a625e
GM
47722000-09-21 Gerd Moellmann <gerd@gnu.org>
4773
4c7c1f3f 4774 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
fca99116
GM
4775 for GCC >= 2.5.
4776
4777 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error): Declare
4778 NO_RETURN.
4779
80d26f99
GM
4780 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
4781 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
4782 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
4783 warnings.
4784
4785 * marker.c (byte_char_debug_check): Return void.
4786
623a0aae
GM
4787 * xfns.c (Fx_create_frame): Set default frame parameter value
4788 for tool-bar-lines to 1.
4789
4790 * dispnew.c (scrolling_window): Compare y-positions of rows
4791 equal at the start. Some simplification.
4792
4793 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
4794 reused rows' y-position in the case window has a header-line, and
4795 new window start is greater than old window start.
4796
42ac0ae5
GM
4797 * process.c (process_sent_to): New variable.
4798 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
4799 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
4800 Declare more parameters volatile.
4801
550a625e
GM
4802 * lread.c (Vrecursive_load_depth_limit): New variable.
4803 (Fload): Check recursive loads whose recursion depth exceeds
4804 Vrecursive_load_depth_limit.
4805 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
4806
8320414c
GM
48072000-09-20 Gerd Moellmann <gerd@gnu.org>
4808
f46c275e
GM
4809 * fileio.c (Fread_file_name): Doc fix.
4810
4811 * editfns.c (Fmessage_or_box): Doc fix.
4812
4813 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
4814
b7e11c5b
GM
4815 * xfns.c (xbm_scan): Allow C-style comments.
4816
8320414c
GM
4817 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
4818 symbols are specified, add color translations to the cache.
4819 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New
4820 functions.
4821 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
4822 xpm_cache_color.
4823 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
4824 structures to xpm_init_color_cache.
4825
da1608d9
GM
48262000-09-19 Gerd Moellmann <gerd@gnu.org>
4827
4828 * dispnew.c (update_window_line): Make sure to always draw
4829 mode-lines.
4830
6badfa25
AI
48312000-09-19 Andrew Innes <andrewi@gnu.org>
4832
4833 * makefile.nt (bootstrap-emacs): Don't change directory.
4834
3a5f42bb
KH
48352000-09-19 Kenichi Handa <handa@etl.go.jp>
4836
1b7649bd
KH
4837 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
4838
3a5f42bb
KH
4839 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
4840 If output buffer is too small, signal an appropriated error.
4841
9f83cf0b
DL
48422000-09-18 Dave Love <fx@gnu.org>
4843
4844 * keyboard.c (menu_bar_items, tool_bar_items)
4845 (current_active_maps): Remove redundant get_local_map call.
4846
28c7826c
GM
48472000-09-18 Gerd Moellmann <gerd@gnu.org>
4848
5cefa566
GM
4849 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
4850 cursor for buffers whose cursor_type is nil.
4851
6fed3546
GM
4852 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
4853 a feature to implement that is already implemented.
4854 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
4855 warnings.
4856
4857 * xfns.c (x_clear_image_1): New function.
4858 (x_clear_image): Use it.
4859 (x_from_xcolors): Use x_clear_image_1; don't free the image's
4860 mask.
4861
05b1f851
GM
4862 * dispnew.c (update_window): Move test for invisible lines
4863 at the top to update_window_line.
4864 (update_window_line): Handle invisible lines here.
4865
f4779de9
GM
4866 * xfns.c (clear_image_cache): Clear current matrices of all
4867 frames sharing an image cache. Block input while freeing
4868 images. Fix timestamp comparison.
4869 (x_clear_image): Also free the mask.
4870
28c7826c
GM
4871 * xfns.c (lookup_image): Block input while loading the image so
4872 that we won't get interrupted in a state where the image isn't yet
4873 set up completely.
4874 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
4875 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
4876 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
4877 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock
4878 input.
4879
b7412313
GM
48802000-09-16 Gerd Moellmann <gerd@gnu.org>
4881
4882 * dispnew.c (update_window): Make sure to make desired rows
4883 current even if they are completely invisible at the top
4884 of a window.
4885
47e351a3
GM
48862000-09-15 Gerd Moellmann <gerd@gnu.org>
4887
7f8f1edc
GM
4888 * xfns.c (lookup_image): Build mask before applying an algorithm.
4889 Recognize algorithm `disabled'.
4890 (cross_disabled_images): New variable.
4891 (COLOR_INTENSITY): New macro.
4892 (x_detect_edges): Use COLOR_INTENSITY.
4893 (x_disable_image): New function.
4894 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
4895
4896 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
4897 disabled state, don't apply an image transformation algorithm if
4898 the user specified an image for the disabled state. Use
28c7826c 4899 `:algorithm disabled' for creating a disabled item's image if the
7f8f1edc
GM
4900 user hasn't specified an image.
4901
ebb8f116
GM
4902 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
4903 allocation functions with the XPM lib.
4904 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
4905 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
4906 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
4907 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
4908 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New
4909 functions.
4910 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
4911 functions, if possible, because these handle color allocation
4912 failure more gracefully.
4913 (Fimage_mask_p): New function.
4914
47e351a3
GM
4915 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
4916 (Qedge_detection, Qheuristic): New symbols.
4917 (syms_of_xfns): Initialize new symbols.
4918 (lookup_image): Handle `:mask X', `:algorithm emboss', and
4919 `algorithm (edge-detection ...)'.
4920 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
4921 (tiff_format, gif_format, gs_format): Add `:mask'.
4922 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
4923 (GIF_MASK, GS_MASK): New enumerators.
4924 (x_laplace_read_row, x_laplace_write_row): Functions removed.
4925 (emboss_matrix, laplace_matrix): New variables.
4926 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
4927 (x_edge_detection): New functions.
4928 (x_laplace): Rewritten in terms of x_detect_edges.
4929 (x_build_heuristic_mask): If image has a mask, free it.
4930
fe83b953
AI
49312000-09-14 Andrew Innes <andrewi@gnu.org>
4932
4933 * makefile.w32-in: Revert to Unix line endings.
4934
3021e816
AI
49352000-09-14 Andrew Innes <andrewi@gnu.org>
4936
4937 * makefile.w32-in: Standardize indentation somewhat.
4938 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
4939 cater for differences between shells.
4940
4941 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
4942
2a32b5ea
GM
49432000-09-14 Gerd Moellmann <gerd@gnu.org>
4944
4945 * xterm.c (x_produce_glyphs): If the distance from the current
4946 position to the next tab stop is less than a canonical character
4947 width, use the tab stop after that.
4948
b4331e96
DL
49492000-09-14 Dave Love <fx@gnu.org>
4950
4951 * buffer.c (alloc_buffer_text): Fix xmalloc call.
4952
ef9e4345
GM
49532000-09-14 Gerd Moellmann <gerd@gnu.org>
4954
085536c2
GM
4955 * xdisp.c (handle_fontified_prop): While running fontification
4956 functions, bind `fontification-functions' and
4957 `after-change-functions' to nil.
4958
ef9e4345
GM
4959 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
4960 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
4961
4962 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
4963
4964 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
4965 USE_MMAP_FOR_BUFFERS.
4966
4967 * insdel.c (make_gap): Use enlarge_buffer_text.
4968
4969 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
4970 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
4971 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
4972 from former r_alloc_* functions in ralloc.c.
4973 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New
4974 variables.
4975 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
4976 (mmap_init) [REL_ALLOC_MMAP]: New function.
4977 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
4978 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
4979 BUFFER_FREE.
4980
4981 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
4982 (enlarge_buffer_text): Add prototype.
4983
4984 * ralloc.c: Remove everything having to do with the use of mmap.
4985
f8608968
GM
49862000-09-13 Gerd Moellmann <gerd@gnu.org>
4987
2a494b2d
GM
4988 * sound.c (Fplay_sound): Doc fix.
4989
8c907a56
GM
4990 * keyboard.c: Avoid some more compiler warnings.
4991 (parse_tool_bar_item): Ignore cached key bindings.
4992
f8608968
GM
4993 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
4994 and allocation of Lisp data.
4995
6ab70e9a
GM
49962000-09-12 Gerd Moellmann <gerd@gnu.org>
4997
d12d0a9b
GM
4998 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
4999 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
5000 defaults first.
5001
6ab70e9a
GM
5002 * lread.c (Fload): Put code checking for recursive loads in #if 0.
5003
63c36c3c
KH
50042000-09-12 Miyashita Hisashi <himi@meadowy.org>
5005
5006 * ccl.c: Comment fixed.
5007 (MAX_MAP_SET_LEVEL): Increased to 30.
5008 (PUSH_MAPPING_STACK): Enclose with do-while block.
5009 (POP_MAPPING_STACK): Likewise.
5010 (stack_idx_of_map_multiple): New variable.
5011 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
5012 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
5013 call the corresponding CCL program by
5014 CCL_CALL_FOR_MAP_INSTRUCTION.
5015 (ccl_driver) <CCL_MapSingle>: Likewise.
5016 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
5017 with the case where looking up process reaches to the end of
5018 map-set, and call CCL programs as the above change.
5019
7ee3bd7b
GM
50202000-09-11 Gerd Moellmann <gerd@gnu.org>
5021
8ec8a5ec
GM
5022 * xfns.c (png_load, jpeg_load): Declare some variables volatile
5023 that might be clobbered by longjmp.
5024 (check_x_display_info, x_decode_color, create_frame_xic)
5025 (Fx_display_backing_store, Fx_display_visual_class)
5026 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler
5027 warnings.
5028
f74b0705
GM
5029 * lread.c (init_lread): Set Vloads_in_progress to nil.
5030 (Fload): Show list of recursively loaded files, when signaling an
5031 error.
5032
7ee3bd7b
GM
5033 * lread.c (Vloads_in_progress): New variable.
5034 (record_load_unwind): New function.
5035 (Fload): Check for recursive loads.
5036 (syms_of_lread): Initialize Vloads_in_progress.
5037 (read_integer, read1): Avoid some compiler warnings.
5038
5039 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
5040 compiler warnings.
5041
974e1e5b
MB
50422000-09-11 Miles Bader <miles@gnu.org>
5043
5044 * editfns.c (Fbuffer_string): Doc fix.
5045
9824c4e3
GM
50462000-09-10 Gerd Moellmann <gerd@gnu.org>
5047
5048 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
5049
6a72fdd1
KR
50502000-09-09 Ken Raeburn <raeburn@gnu.org>
5051
5052 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
5053 whether to include other header files.
5054
28e6fb66
GM
50552000-09-09 Gerd Moellmann <gerd@gnu.org>
5056
5057 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
9824c4e3 5058 by Fmemq as a boolean.
28e6fb66 5059
7f8b6551
SM
50602000-09-08 Stefan Monnier <monnier@cs.yale.edu>
5061
5062 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
5063
a8710abf
GM
50642000-09-08 Gerd Moellmann <gerd@gnu.org>
5065
d1a02881
GM
5066 * ralloc.c (mmap_fd): Remove initializer which can make it
5067 read-only in a dumped Emacs.
5068 (mmap_fd_1): New variable.
5069 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
5070 restore it from there.
5071 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
5072 unconditionally so that mmap_fd can be initialized there.
5073 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
5074 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
5075 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
5076
c454aac1
GM
5077 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
5078
5079 * xdisp.c (dump_glyph_row): Fix printf format string.
5080 (display_line, move_it_in_display_line_to): Avoid compiler
5081 warnings.
5082
fc653ef2
GM
5083 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
5084
3015eec0
GM
5085 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
5086 inheritance.
5087
bfe0ee88
GM
5088 * xdisp.c (try_window_id): When trying to locate cursor in
5089 unchanged rows at the top, handle the case that we can't find it.
5090
a8710abf
GM
5091 * xterm.c (x_draw_glyphs): Handle case START and END are out
5092 of bounds more carefully.
5093
6b7d4ae4
DL
50942000-09-08 Dave Love <fx@gnu.org>
5095
423193c5
DL
5096 * s/sol2.h (REL_ALLOC_MMAP): Define.
5097 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
5098
5099 * ralloc.c: Don't include string.h (redundant).
5100 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
5101 [!MAP_ANON]: Include fcntl.h.
5102 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
5103 (r_alloc, r_re_alloc, r_alloc_free)
5104 (mmap_enlarge, mmap_set_vars): Use it.
5105 (r_alloc_init_fd): New function.
5106 (__morecore) [SYSTEM_MALLOC]: Don't declare.
5107 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
5108 malloc type.
5109
5110 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
5111 Remove vm-limit.o.
5112
6b7d4ae4
DL
5113 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
5114 change to __NetBSD__.
5115
44d31981
KH
51162000-09-08 Kenichi Handa <handa@etl.go.jp>
5117
5118 * search.c (compile_pattern): Check the multibyteness of cached
5119 string and PATTERN.
5120
aad40737
MB
51212000-09-08 Miles Bader <miles@gnu.org>
5122
5123 * xfaces.c (default_face_vector): Function removed.
5124 (Finternal_merge_in_global_face): Restore old global/local
5125 attribute override order. Use inline loop instead of calling
5126 default_face_vector.
5127
91a211b5
GM
51282000-09-07 Gerd Moellmann <gerd@gnu.org>
5129
5130 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
5131 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
5132 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
5133 where necessary, in case POINTER_TYPE is `void'.
5134
03419440
EZ
51352000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
5136
5137 * frame.c (make_terminal_frame): Initialize frame foreground and
5138 background colors to unspecified, for the initial instance of an
5139 MSDOS frame.
5140
f46f845b
GM
51412000-09-07 Gerd Moellmann <gerd@gnu.org>
5142
24f76fbf
GM
5143 * ralloc.c (mmap_find): Fix overlap computation.
5144 (mmap_enlarge): Compute nbytes before trying to find an
5145 overlapping region.
5146
f46f845b
GM
5147 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
5148 instead of `!='.
5149
5150 * lread.c (syms_of_lread): Change value of regexp
5151 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
5152
5153 * xmenu.c (xdialog_show): When looking up the selection in
5154 menu_items, take `quote' boundaries into account; this corresponds
5155 to a nil ITEM in x-popup-dialog.
5156
3c014385
KH
51572000-09-07 Kenichi Handa <handa@etl.go.jp>
5158
fd6f711b
KH
5159 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
5160 not 0x81.
5161 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
5162
3c014385 5163 * coding.c (encode_coding_sjis_big5): Use translation table for
ed254191
KH
5164 encoding, not decoding. Fix the handling of latin-jisx0201.
5165 Check for the charset katakana-jisx0201 too.
3c014385 5166 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
f46f845b 5167 (detect_coding_sjis): Check the byte sequence more rigidly.
3c014385 5168
0da3ecef
GM
51692000-09-07 Gerd Moellmann <gerd@gnu.org>
5170
ab0ee409
GM
5171 * xfaces.c (Vparam_value_alist): New variable.
5172 (syms_of_xfaces): Initialize it.
5173 (Finternal_set_lisp_face_attribute): Avoid more consing.
5174
5175 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
5176 specially.
5177 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
5178 (Qbackground_mode): New variable.
5179 (syms_of_frame_1): Initialize Qbackground_mode.
5180
5181 * lisp.h (Qdisplay): Declare extern.
1091dd67 5182
0da3ecef
GM
5183 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
5184 change face on all frames, and change the default for new frames.
5185
b14654b9
DL
51862000-09-07 Dave Love <fx@gnu.org>
5187
5188 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
5189
d24fd56f
KH
51902000-09-07 Kenichi Handa <handa@etl.go.jp>
5191
794f3670
KH
5192 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
5193
0fddd0dc
KH
5194 * charset.c: Include composite.h
5195 (lisp_string_width): New function.
5196 (Fstring_width): Call lisp_string_width instead of strwidth.
5197
5198 * Makefile.in (charset.o): Depends on composite.h.
5199
d24fd56f
KH
5200 * process.c (read_process_output): Before inserting the decoded
5201 text in the buffer, adjust the multibyteness.
5202
fa0b693c
GM
52032000-09-06 Gerd Moellmann <gerd@gnu.org>
5204
73b77ee5
GM
5205 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
5206 buffer's text buffer is null, map new memory.
5207
0a58f946
GM
5208 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
5209 POINTER_TYPE and size_t.
5210 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
5211 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
5212 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
5213 [REL_ALLOC_MMAP]: New macros.
5214 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
5215 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
5216 [REL_ALLOC_MMAP]: New functions.
5217
5218 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
5219 before and after unexec.
5220
5221 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
5222 text buffers if necessary.
5223
5224 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
5225 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
5226 in prototypes.
5227
fa0b693c
GM
5228 * config.in (HAVE_MMAP): Add #undef.
5229
877055f6
GM
52302000-09-05 Gerd Moellmann <gerd@gnu.org>
5231
08ba3862
GM
5232 * frame.c (Qdisplay_type): New variable.
5233 (syms_of_frame_1): Initialize it.
5234 (Fframe_parameter): New function that avoids consing.
5235 (syms_of_frame): Defsubr it.
5236
66ffe51c
GM
5237 * buffer.c (Fother_buffer): Consider buffers as invisible when
5238 they are displayed in a window on an invisible frame.
5239
877055f6
GM
5240 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
5241 get-largest-window always return nil.
5242
bb970e67
GM
52432000-09-04 Gerd Moellmann <gerd@gnu.org>
5244
5245 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
5246 variable; recognize Emacs 19 elc files.
5247
7a3d0e0e
MB
52482000-09-04 Miles Bader <miles@gnu.org>
5249
5250 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
5251 before initially popping up the menu, so the menu doesn't flash
5252 when the face settings are significantly different from the
5253 defaults.
5254
14473664
SM
52552000-09-04 Stefan Monnier <monnier@cs.yale.edu>
5256
5257 * regex.c (WIDE_CHAR_SUPPORT): New macro.
5258 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
5259 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
5260 (BIT_UNIBYTE): Remove.
5261 (re_match_2_internal): Delete corresponding code and streamline the
5262 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
5263 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
5264 (re_wctype_t): New type.
5265 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
5266 (regex_compile): Use them and fix handling of overly long char classes.
5267
c1174479
AI
52682000-09-03 Andrew Innes <andrewi@gnu.org>
5269
f8803e97
AI
5270 * makefile.w32-in: Change to DOS line endings.
5271
c1174479
AI
5272 * s/ms-w32.h (ORDINARY_LINK): New define.
5273
5274 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
5275 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
5276
5277 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
5278 (distclean): Delete them here instead.
5279
44ef7cf6
AI
5280 * w32proc.c (compare_env): Convert to uppercase for comparison,
5281 not lowercase, to match how the native Windows shell works.
5282
49b3bd82
JR
52832000-09-03 Jason Rumney <jasonr@gnu.org>
5284
5285 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
5286 CVS changes the line-ends when checking in/out on DOS/Windows.
5287
5288 * makefile.nt (emacs): Do not change directory to run temacs, as
5289 the load-path is set relative to current directory.
5290
a3d35a39
MB
52912000-09-03 Miles Bader <miles@gnu.org>
5292
5293 * xterm.c (x_alloc_lighter_color_for_widget): New function.
5294
d276b0cf
GM
52952000-09-02 Gerd Moellmann <gerd@gnu.org>
5296
715e84c9
GM
5297 * xdisp.c (redisplay_mode_lines): New function.
5298 (display_mode_lines): Return number of mode lines displayed.
5299 (echo_area_display): Use redisplay_mode_lines to draw garbaged
5300 mode lines. Don't temporarily bind redisplay-dont-pause to t.
5301
8892f40b
GM
5302 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
5303 string.h and strings.h.
5304 (index) [HAVE_INDEX]: Add prototype.
5305
d276b0cf
GM
5306 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
5307 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
5308
5309 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
5310 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
5311
38404229
GM
53122000-09-01 Gerd Moellmann <gerd@gnu.org>
5313
5314 * lread.c (read1): Accept `?' as symbol constituent, for
5315 compatiblity with XEmacs.
5316
c0f9ea08
SM
53172000-08-31 Stefan Monnier <monnier@cs.yale.edu>
5318
5319 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
5320 (struct re_pattern_buffer): Remove newline_anchor.
5321 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
5322 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
5323 (re_max_failures, fail_stack): Use size_t rather than unsigned.
5324 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
5325 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
5326 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
5327 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
5328 Get rid of references to newline_anchor.
5329 (regcomp): Allocate and precompute a fastmap.
5330
8c0f83fe
GM
53312000-08-31 Gerd Moellmann <gerd@gnu.org>
5332
5333 * lread.c (openp): GCPRO local variable `filename'.
5334
4bb91c68
SM
53352000-08-30 Stefan Monnier <monnier@cs.yale.edu>
5336
5337 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
5338
5339 * regex.c: Merge some changes from GNU libc. Add prototypes.
5340 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
5341 Use memcmp and memcpy instead of bcopy and bcmp.
5342 (init_syntax_once): Use ISALNUM.
5343 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
5344 (REG_UNSET_VALUE): Remove. Use NULL instead.
5345 (REG_UNSET, re_match_2_internal): Use NULL.
5346 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
5347 New macros.
5348 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
5349 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
5350 (regex_compile): In handle_interval, return an error rather than try to
5351 unfetch the interval if we can't find the closing brace.
5352 Obey the RE_NO_GNU_OPS syntax bit.
5353 (TOLOWER): New macro.
5354 (regcomp): Use it.
5355 (regexec): Allocate regs.start and regs.end as one block.
5356
5226a931
GM
53572000-08-30 Gerd Moellmann <gerd@gnu.org>
5358
868dd24b
GM
5359 * xdisp.c (echo_area_display): Check display_completed instead
5360 of calling detect_input_pending.
5361
5362 * dispnew.c (update_frame): Only set display_completed here; move
5363 the update_begin and update_end calls here from update_frame_1.
5364 (update_frame_1): Don't set display_completed here, don't call
5365 update_begin/update_end.
5366
5226a931
GM
5367 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
5368 instead of store_frame_param.
5369
2a8bd25f
GM
53702000-08-29 Gerd Moellmann <gerd@gnu.org>
5371
5372 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
5373 desired window matrix hasn't been displayed, use the current row
5374 instead. Make sure that only those frame rows are updated for
5375 which there exists a corresponding enabled desired row.
5376
ba3478d9
MB
53772000-08-29 Miles Bader <miles@gnu.org>
5378
5379 * xfaces.c (default_face_vector): New function.
5380 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
5381
87d0f685
GM
53822000-08-29 Gerd Moellmann <gerd@gnu.org>
5383
5384 * lread.c (openp): Prevent temporary string passed to
5385 Ffile_readable_p from being garbage collected.
5386
6fa86045
DL
53872000-08-28 Dave Love <fx@gnu.org>
5388
5389 * keymap.c (store_in_keymap): Add `static' to declaration.
5390
bb17930d
GM
53912000-08-28 Gerd Moellmann <gerd@gnu.org>
5392
5393 * emacs.c, callint.c, doc.c, editfns.c
5394 (toplevel) [HAVE_STRING_H]: Include string.h.
5395 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
5396 (index): Remove prototypes which might conflict with non-standard
5397 definitions of index/strchr.
5398
5399 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
5400 (rindex): Define only if !HAVE_RINDEX.
5401
5402 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
5403
5404 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
5405
87188200
MB
54062000-08-28 Miles Bader <miles@gnu.org>
5407
5408 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
5409 made inconsistent by a font-related attribute in FROM.
5410 (merge_face_inheritance): Add function comment.
5411
41a68aef
KH
54122000-08-28 Kenichi Handa <handa@etl.go.jp>
5413
5414 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
5415 the 4th arg (PREV_EVENT) Qt to suppress input method.
5416
f7c436c1
SM
54172000-08-27 Stefan Monnier <monnier@cs.yale.edu>
5418
0b32bf0e
SM
5419 * regex.c: Indent cpp directives and remove parens after `defined'.
5420 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
5421 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
5422 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
5423 (re_compile_pattern): Use size_t for length.
5424 (init_syntax_once): Move to a better place.
5425 * regex.h: Merge changes from GNU libc. Indent cpp directives.
5426 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
5427
f7c436c1
SM
5428 * syntax.c (back_comment): Detect cases where a comment-starter is
5429 actually inside another comment as in: /* a // b */ c // d \n.
5430 Make it clear that `comstart_pos' is unused for nested comments.
5431
5432 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
5433 (KEYMAPP): New macro.
5434 (Fkeymap_parent, Fset_keymap_parent): Use it.
5435 (fix_submap_inheritance): Mark it static.
5436 (define_as_prefix, describe_buffer_bindings, describe_command)
5437 (describe_translation, describe_map): Complete prototypes.
5438
5439 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
5440
5441 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
5442 to better match the key-lookup behavior.
5443
6288c62f
GM
54442000-08-27 Gerd Moellmann <gerd@gnu.org>
5445
5446 * xfaces.c (lface_fully_specified_p): Handle :inherit.
5447 (Finternal_set_lisp_face_attribute): Fix typo in error message.
5448
e931344e
EZ
54492000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
5450
5451 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
5452 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
5453 (xterm.o): Depend on coding.h
5454
d10dfeef
KH
54552000-08-26 Kenichi Handa <handa@etl.go.jp>
5456
5457 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
5458 the corresponding '#endif'.
5459
2d73e8d3
MB
54602000-08-26 Miles Bader <miles@gnu.org>
5461
5462 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
5463 * xfaces.c (QCinherit): New variable.
5464 (syms_of_xfaces): Initialize it.
5465 (LFACE_INHERIT): New macro.
5466 (Finternal_get_lisp_face_attribute)
5467 (merge_face_vector_with_property)
5468 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
5469 (check_lface_attrs): Allow new types of face height. Check
5470 inherit attribute.
5471 (CYCLE_CHECK): New macro.
5472 (merge_face_inheritance): New function.
5473 (merge_face_vectors): Merge inherited faces too. Add F and
5474 CYCLE_CHECK arguments.
5475 (merge_face_vector_with_property, Finternal_merge_in_global_face)
5476 (lookup_named_face, lookup_derived_face, realize_named_face)
5477 (face_at_string_position, face_at_buffer_position): Supply
5478 new F and CYCLE_CHECK arguments to merge_face_vectors.
5479 (merge_face_heights): New function.
5480 (merge_face_vectors, merge_face_vector_with_property)
5481 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
5482 handle relative face heights.
5483 (lface_same_font_attributes_p): Compare heights using EQ.
5484
6ce974d4
KH
54852000-08-26 Kenichi Handa <handa@etl.go.jp>
5486
5487 * charset.c (char_to_string): Check the character validity.
5488 (char_valid_p): If C is not less than MAX_CHAR, be sure to return
5489 0.
5490
dc1e502d
SM
54912000-08-25 Stefan Monnier <monnier@cs.yale.edu>
5492
5493 * regex.c (PUSH_FAILURE_COUNT): New macro.
5494 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
5495 Handle popping of a register's or a counter's data.
5496 (POP_FAILURE_POINT): Use the new name.
5497 (re_match_2_internal): Push counter data on the stack for succeed_n,
5498 jump_n and set_number_at and remove misleading dead code in succeed_n.
5499
bd9d0f3f
GM
55002000-08-25 Gerd Moellmann <gerd@gnu.org>
5501
5502 * xdisp.c (redisplay_internal): If considering all windows on all
5503 frames, update the display for each frame as soon as possible,
5504 instead of first building all desired matrices for all frames, and
5505 then updating them all.
5506 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
5507
aa5b8e15
GM
55082000-08-24 Gerd Moellmann <gerd@gnu.org>
5509
17494071
GM
5510 * bytecode.c (mark_byte_stack): Add a comment.
5511
aa5b8e15
GM
5512 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
5513 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
5514 a graphical frame.
5515
c543db81
KH
55162000-08-24 Kenichi Handa <handa@etl.go.jp>
5517
d246d5f5
KH
5518 * minibuf.c (do_completion): Always use compare-string, not
5519 string-equal because the latter doesn't pay attention to
5520 multibyteness of strings.
5521
c543db81
KH
5522 * process.c (create_process): Don't setup raw-text coding here.
5523 (Fopen_network_stream): Don't set coding->src_multibyte and
5524 coding->dst_multibyte here.
5525 (read_process_output): For process filter, return unibyte string
5526 if default-enable-multibyte-characters is nil.
5527 (send_process): If OBJECT is multibyte text, be sure to encoded it
5528 by the specified coding system for the process. Otherwise, setup
5529 raw-text coding.
5530 (init_process): Don't initialize default-process-coding-system
5531 here.
5532
9b47cfe0
EZ
55332000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
5534
5535 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
5536 <scroll-down-aggressively>: Likewise.
5537
f5a36960
KH
55382000-08-23 Kenichi Handa <handa@etl.go.jp>
5539
5540 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
5541 zero. Set coding->produced_char correctly.
5542
69a7ffa7
AI
55432000-08-22 Andrew Innes <andrewi@gnu.org>
5544
5545 * makefile.w32-in: New file.
5546
5547 * unexw32.c (unexec): Ignore old_name, and use the actual location
5548 of the current executable instead. Base new_name on this.
5549
5550 * w32proc.c (create_child): Remove reference to security
5551 descriptor, which isn't needed and doesn't compile with mingw32.
5552
5553 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5554 up dllimport attributes.
5555 (x_update_window_end): Update prototype.
5556
5557 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
5558 extern, which screws up dllimport attributes.
5559
5560 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5561 up dllimport attributes.
5562
5563 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
5564 screws up dllimport attributes.
5565
5566 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5567 up dllimport attributes.
5568 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
5569 screws up dllimport attributes.
5570
5571 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5572 up dllimport attributes.
5573
5574 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
5575 screws up dllimport attributes.
5576
5577 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
5578 screws up dllimport attributes.
5579
5580 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5581 up dllimport attributes.
5582
5583 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
5584 unnecessary extern, which screws up dllimport attributes.
5585 (main): Ditto.
5586
5587 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5588 up dllimport attributes.
5589
5590 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
5591 unnecessary extern, which screws up dllimport attributes.
5592
5593 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
5594 screws up dllimport attributes.
5595
5596 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5597 up dllimport attributes.
5598
5599 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
5600
5601 * w32bdf.c (search_file_line):
5602 (set_bdf_font_info):
5603 (seek_char):
5604 (w32_get_bdf_glyph):
5605 (w32_BDF_to_x_font): Fix compile warnings.
5606
5607 * w32menu.c: Include keyboard.h before frame.h. Fix compile
5608 warnings.
5609
5610 * w32select.c: Include keyboard.h before frame.h.
5611
5612 * w32fns.c (max): Define macro.
5613 (JOHAB_CHARSET): Define if not known.
5614 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
5615 (Fx_show_tip): Synch with X version.
5616
5617 * w32xfns.c: Include keyboard.h before frame.h.
5618
5619 * w32fns.c: Include keyboard.h before frame.h.
5620
5621 * w32term.c: Include keyboard.h before frame.h.
5622
5623 * fontset.c: Include keyboard.h before frame.h.
5624
5625 * w32inevt.c: Include keyboard.h before frame.h.
5626 (MOUSE_MOVED): Define if not known.
5627
5628 * minibuf.c: Include keyboard.h before frame.h.
5629
5630 * keyboard.c: Include keyboard.h before frame.h.
5631
5632 * indent.c: Include keyboard.h before frame.h.
5633
5634 * dispnew.c: Include keyboard.h before frame.h.
5635
5636 * buffer.c: Include keyboard.h before frame.h.
5637
5638 * alloc.c: Include keyboard.h before frame.h.
5639
5640 * print.c: Include keyboard.h before frame.h.
5641
5642 * process.c: Include keyboard.h before frame.h.
5643
5644 * scroll.c: Include keyboard.h before frame.h.
5645
5646 * sysdep.c: Include keyboard.h before frame.h.
5647
5648 * term.c: Include keyboard.h before frame.h.
5649
5650 * window.c: Include keyboard.h before frame.h.
5651
5652 * xdisp.c: Include keyboard.h before frame.h.
5653 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
5654
5655 * frame.c: Include keyboard.h before frame.h.
5656
5657 * w32heap.h: Undefine min, max.
5658
5659 * w32gui.h: Undefine min, max.
5660
5661 * unexw32.c: Change PUCHAR to PCHAR.
5662 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
5663 (relocate_offset):
5664 (get_section_info):
5665 (copy_executable_and_dump_data): Remove unnecessary static defs.
5666 (copy_executable_and_dump_data): Fix compile warnings.
5667
5668 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
5669
5670 * w32console.c (min): Define macro.
5671 (clear_frame, write_glyphs): Fix compile warning.
5672
5673 * w32proc.c (compare_env):
5674 (find_child_console): Fix compile warning.
5675
5676 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
5677 sys_errlist instead of _sys_errlist.
5678 (get_emacs_configuration_options): New function.
5679
5680 * s/ms-w32.h (sys_nerr): Provide default definition.
5681 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
5682 name with _ prepended.
5683 (NSIG): Define if not known.
5684 (get_emacs_configuration): Provide extern declaration.
5685 (get_emacs_configuration_options): Provide extern declaration.
5686 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
5687
5688 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
5689 (map_w32_filename):
5690 (read_unc_volume): Fix compile warning.
5691
5692 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
5693 definitions from being used.
5694
5695 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
5696
5697 * w32.c (unc_volume_file_attributes):
5698 (open_unc_volume): Make arg const.
5699
5700 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
5701 (read_input_waiting): Remove excess parameter.
5702
5703 * w32.c (init_environment): Call _access.
5704 (check_windows_init_file): Call _close.
5705 (init_user_info): Call _putenv.
5706 (init_environment): Call _putenv and _strdup.
5707 (init_ntproc): Reset volume info cache on startup.
5708
5709 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
5710 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
5711 cannot override the CRT malloc.
5712
5713 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
5714 (LINK_FLAGS): Append to original value of LINK_FLAGS.
5715
5716 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
5717 unless we are linking with a static CRT.
5718 (RVA_TO_PTR): Cast result to unsigned char*.
5719
5720 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
5721 (add_volume_info): Use xstrdup.
5722
25060080
SM
57232000-08-22 Stefan Monnier <monnier@cs.yale.edu>
5724
5725 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
5726 (do_completion, Fminibuffer_complete_word): Use it.
5727 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
5728 var so it can take non-boolean values.
5729
6917e6bb
GM
57302000-08-21 Gerd Moellmann <gerd@gnu.org>
5731
acb7cc89
GM
5732 * editfns.c (find_field): Formatting changes.
5733 (toplevel): Some old-style function forward declarations
5734 changed to prototypes, some new protypes added, some functions
5735 made static.
5736
5737 * lisp.h (set_time_zone_rule): Add prototype.
5738 (use_dialog_box): External declaration.
5739
0bbfdc25
GM
5740 * keyboard.c (gen_help_event): Add parameter SIZE.
5741 (kbd_buffer_events_waiting): Slightly rewritten.
5742 (clear_event): New function.
5743 (kbd_buffer_get_event): Use it, and clear the input_events of
5744 HELP_EVENTs.
5745 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
5746 don't fill the newly created array with nils.
5747 (toplevel): Convert some old-style function forward declarations
5748 to prototypes.
5749
5750 * keyboard.h (gen_help_event): Change prototype.
5751
5752 * xterm.c (XTread_socket): Change calls to gen_help_event.
5753
5754 * w32term.c (w32_read_socket): Change calls to gen_help_event.
5755
6917e6bb
GM
5756 * eval.c (Fmacroexpand): Doc fix.
5757
e5cd3d11
JR
57582000-08-20 Jason Rumney <jasonr@gnu.org>
5759
5760 * w32term.h (x_display_info_for_display): Remove as this function
5761 does not exist on W32.
5762
5763 * w32term.c (help_echo_window): New variable.
5764 (syms_of_w32term): staticpro it.
5765 (note_mode_line_highlight): Set it.
5766 (XTextExtents16): Removed as there is no equivalent on W32.
5767 (x_compute_glyph_string_overhangs): Incomplete body removed, as
5768 the X way of doing this will not work for W32.
5769 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
5770 (x_draw_image_foreground): Avoid drawing outside of the clip area
5771 when image doesn't have a mask.
5772 (note_mouse_highlight): Process overlays in the right order of
5773 priority. Set help_echo_window.
5774 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
5775 because that's more visible for large images.
5776
5777 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
5778 name to single_keymap_panes.
5779 (w32_menu_show): Set wv->title when dealing with titles.
5780 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
5781
6e69ab8c
MB
57822000-08-21 Miles Bader <miles@gnu.org>
5783
5784 * minibuf.c (do_completion): Try again if we rewrite the input
5785 string, but no completion was done, so that any completion message
5786 will be correct.
5787
511bd4eb
GM
57882000-08-20 Gerd Moellmann <gerd@gnu.org>
5789
5790 * xfaces.c (lface_equal_p): Compare strings differently.
5791 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
5792 (realize_tty_face): Use them.
5793 (syms_of_xfaces): Initialize new variables.
5794 (map_tty_color): New function, extracted from realize_tty_face.
5795 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
5796 foreground or background color, store the new color name in the
5797 realized face; previous code trying to do this had no effect.
5798 (realize_tty_face): Use map_tty_color.
5799 (Fclear_face_cache): Set face_change_count and ensure thorough
5800 redisplay.
5801
1433385f
GM
58022000-08-19 Gerd Moellmann <gerd@gnu.org>
5803
511bd4eb
GM
5804 * undo.c (record_first_change, record_marker_adjustment): Don't
5805 use XBUFFER on last_undo_buffer which might not be a buffer.
1433385f 5806
419ac0a2
KH
58072000-08-18 Kenichi Handa <handa@etl.go.jp>
5808
5809 * coding.c (decode_coding_string): Set members consumed,
5810 consumed_char, produced, produced_char of *coding correctly. If
5811 decode_coding doesn't consume any byte, don't try anymore.
5812 (encode_coding_string): Likewise.
5813
7eb9e30d
GM
58142000-08-18 Gerd Moellmann <gerd@gnu.org>
5815
511bd4eb
GM
5816 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
5817 conditional have void type, for Standard C compilers.
7eb9e30d
GM
5818
5819 * xdisp.c (redisplay_internal): Compare windows for equality with
5820 EQ, instead of applying XWINDOW to something that might not
5821 be a window.
5822
dd34a735
KH
58232000-08-18 Kenichi Handa <handa@etl.go.jp>
5824
5825 * fontset.c (Finternal_char_font): Search only the selected frame
5826 for a window of the current buffer.
5827
385ff9e3
GM
58282000-08-18 Gerd Moellmann <gerd@gnu.org>
5829
511bd4eb 5830 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
01cce3e7
GM
5831 Lisp_Objects.
5832
385ff9e3
GM
5833 * keyboard.c (kbd_buffer_get_event): Handle the case that the
5834 second half of a HELP_EVENT is found at the start of kbd_buffer.
5835
d6abb4c7
MB
58362000-08-18 Miles Bader <miles@gnu.org>
5837
4618074a
MB
5838 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
5839
d6abb4c7
MB
5840 * editfns.c (save_restriction_save): Rewrite to use markers.
5841 (save_restriction_restore): Rewrite to understand new form of data
5842 saved by save_restriction_save.
5843 (Fsave_restriction): Remove cautionary note in doc-string.
5844
a7b28523
GM
58452000-08-17 Gerd Moellmann <gerd@gnu.org>
5846
5847 * fileio.c (build_annotations): Add a comment explaining the
5848 return value of format-annotate-function. Replace a spurious call
5849 to Flength with a CONSP test. Call format-annotate-function with
5850 a fifth arg specifying how many times the function is been called
5851 in a row, to let it choose temporary buffers appropriately.
5852
03c9ed77
DL
58532000-08-17 Dave Love <fx@gnu.org>
5854
5855 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
5856 declare make_temp_name twice.
5857
5858 * lread.c: Prototype readevalloop, load_unwind,
5859 load_descriptor_unwind.
5860 (unreadpure): Give it an arg.
5861
5862 * unexalpha.c: Prototype fatal_unexec, mark_x,
5863 update_dynamic_symbols. Declare unexec as void.
5864
5865 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
5866 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
5867
5868 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
5869 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on
5870 DOUG_LEA_MALLOC.
5871
5872 * alloca.c: Use #error.
5873 [POINTER_TYPE]: Use it.
5874
5875 * eval.c (Fdefvar): Doc fix.
5876
5877 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
5878 INITIALIZE_INTERVAL.
5879
5880 * buffer.h: Avoid DECLARE_INTERVALS.
5881
5882 * config.in: Add size_t.
5883
aae41d97
EZ
58842000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
5885
5886 * w16select.c (set_clipboard_data): If there's not enough memory
5887 to put text into clipboard, return 1, as Fw16_set_clipboard_data
5888 expects. In case of other failures, return 3.
5889 (system_error_msg): New error message.
5890 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
5891 system_error_msg.
5892
65aa5e85
GM
58932000-08-16 Gerd Moellmann <gerd@gnu.org>
5894
5895 * term.c (write_glyphs): Also turn off inverse video after turning
5896 off other appearances in case TS_exit_attribute_mode is not equal
5897 to TS_end_standout_mode.
5898 (insert_glyphs): Turn inverse video on/off for each run of glyphs
5899 with the same face.
5900 (turn_off_face): Reset standout_mode only if
5901 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
5902 is equal to TS_end_standout_mode.
5903
ece23901
KH
59042000-08-16 Kenichi Handa <handa@etl.go.jp>
5905
9d7bcb2e
KH
5906 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
5907 sequence at the end of the source block.
5908
ece23901
KH
5909 * ccl.c (Fccl_program_p): Docstring modified.
5910 (Fccl_execute): Likewise.
5911 (Fccl_execute_on_string): Likewise.
5912
5e30eaa2
EZ
59132000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
5914
5915 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
5916
290602fd
KH
59172000-08-16 Kenichi Handa <handa@etl.go.jp>
5918
5919 The following changes are mainly to fix bugs of
5920 encode/decode-coding-string failing if encoding/decoding return
5921 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
5922 variable conversion_buffer.
5923
5924 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
5925 decrement dst_end to avoid buffer overflow in the later call of
5926 string_as_multibyte
5927
5928 * coding.h (conversion_buffer_size, conversion_buffer)
5929 (get_conversion_buffer): Extern deleted.
5930
5931 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
5932 (conversion_buffer, conversion_buffer_size): Variables deleted.
5933 (get_conversion_buffer): Function deleted.
5934 (struct conversion_buffer): New structure.
5935 (MAX_ALLOCA): New macro.
5936 (allocate_conversion_buffer): New macro.
5937 (extend_conversion_buffer, free_conversion_buffer): New functions.
5938 (ccl_coding_driver): Set coding->result.
5939 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
5940 this is the last block of source.
5941 (encode_coding): Likewise. Handle the source block as the last
5942 one only when the whole source text is consumed.
5943 (decode_coding_string): Handle the case that the output buffer is
5944 too small to decode the whole source text. Use
5945 allocate_conversion_buffer, extend_conversion_buffer and
5946 free_conversion_buffer, not get_conversion_buffer.
5947 (encode_coding_string): Likewise.
5948 (init_coding): Function deleted.
5949 (init_coding_once): Delete code to initialize
5950 conversion_buffer_size.
5951
5952 * emacs.c (main): Don't call init_coding.
5953
5954 * msdos.c (IT_write_glyphs): Use a locally declared
5955 conversion_buffer.
5956
5957 * term.c (write_glyphs): Use a locally declared conversion_buffer.
5958 (insert_glyphs): Likewise.
5959
5960 * w32console.c (write_glyphs): Use a locally declared
5961 conversion_buffer.
5962
b9f80d41
EZ
59632000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
5964
5965 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
5966 member of display_info is NULL.
5967
32dc52f7
GM
59682000-08-15 Gerd Moellmann <gerd@gnu.org>
5969
58ed0d3b
GM
5970 * alloc.c (compact_small_strings): Use safe_bcopy, add an
5971 assertion.
5972
32dc52f7 5973 * term.c (turn_off_face): Reset standout_mode when resetting
58ed0d3b 5974 appearances with capability `me'.
32dc52f7
GM
5975 (write_glyphs): Switch on inverse video before each face change.
5976
4eb22d33
DL
59772000-08-14 Dave Love <fx@gnu.org>
5978
5979 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
5980 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
5981 (lisp_free): Declare and make static.
5982
5983 * window.c: Fix embedded comment.
5984 (syms_of_window): Fix doc string.
5985
90cbf47e
GM
59862000-08-14 Gerd Moellmann <gerd@gnu.org>
5987
5988 * keymap.c (push_key_description): If C without modifiers is < 32,
5989 make sure to print `C-' before `M-', like in the manual.
5990
440fc135
GM
59912000-08-11 Gerd Moellmann <gerd@gnu.org>
5992
5993 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
5994 since they aren't relocated anymore.
5995 (sxhash_string): Make sure returned hash code fits in a Lisp
5996 integer.
5997
5998 * xdisp.c (try_cursor_movement): Fix handling of cursor in
5999 partially visible line which is smaller than the window's
6000 height.
6001
6e264fad
KH
60022000-08-11 Kenichi Handa <handa@etl.go.jp>
6003
6004 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
6005 the multibyte form of eight-bit-control characters.
6006 (Fccl_execute_on_string): Initialize ccl->multibyte.
6007
6008 * ccl.h (struct ccl_program): New member multibyte.
6009
6010 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
6011
c371f69a
KH
60122000-08-11 Kenichi Handa <handa@etl.go.jp>
6013
6014 * regex.c (regex_compile) <normal_char>: Pay attention to
6015 multibyteness.
6016 (analyse_first) <exactn>: Setup fastmap correctly for
6017 eight-bit-control characters.
6018
60192000-08-11 Kenichi Handa <handa@etl.go.jp>
6020
6021 * termhooks.h (enum event_kind): New member
6022 multibyte_char_keystroke.
6023
6024 * keyboard.c (make_lispy_event): Handle the new event type
6025 multibyte_char_keystroke.
6026
6027 * xterm.c: Include coding.h.
6028 (XTread_socket): Work around a bug of XmbLookupString. If the
6029 input is from XIM, decode it according to the current locale. In
6030 that case, generate multibyte_char_keystroke events.
6031
b8ddbe71
KH
60322000-08-11 Kenichi Handa <handa@etl.go.jp>
6033
6034 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
6035 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
6036
47589c8c
GM
60372000-08-10 Gerd Moellmann <gerd@gnu.org>
6038
6039 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
6040 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
6041 (move_it_in_display_line_to): Record iterator's ascent and descent
6042 before producing glyphs, and restore them when we know the glyph
6043 doesn't fit on the line.
6044 (move_it_to): Restructured so that it's easier to debug. If
6045 moving to a vpos, and not moving to an x or character position,
6046 stop as soon as the specified vpos is reached; don't move further
6047 into that line because that might change the computed line height.
6048 (try_cursor_movement): New function, extracted from the cursor
6049 movement branch of redisplay_window. If ending on a partially
6050 visible line, don't try to scroll if the cursor line is taller
6051 than the window.
6052 (redisplay_window): Use try_cursor_movement.
6053
6054 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
6055 because that function doesn't cope with variable-height lines.
6056
6057 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
6058 box cursor because that's better visible for large images.
6059
c51bacd6
MB
60602000-08-10 Miles Bader <miles@gnu.org>
6061
6062 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
6063
bea56df7
GM
60642000-08-10 Gerd Moellmann <gerd@gnu.org>
6065
6066 * xdisp.c (Vmessages_buffer_name): New variable.
6067 (message_dolog): Use it.
6068 (syms_of_xdisp): Initialize it.
6069
99cd7364
EZ
60702000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
6071
6072 * msdos.c (IT_note_mouse_highlight): Update the calls to
6073 overlays_at.
6074 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
6075 redundant now that keyboard.h is included.
6076
7d093d56
EZ
60772000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
6078
6079 * keyboard.c (kbd_buffer_events_waiting): New function.
6080
6081 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
6082
6083 * msdos.c: Include keyboard.h.
6084 (XMenuActivate): Empty no_event events from the event buffer. If
6085 no events are left after that, call clear_input_pending.
6086 (mouse_clear_clicks): New function, code moved from mouse_init.
6087 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
6088 mouse driver to ``forget'' any past clicks.
6089
6090 * Makefile.in (msdos.o): Depend on keyboard.h.
6091
41e757a6
GM
60922000-08-09 Gerd Moellmann <gerd@gnu.org>
6093
8e7bd231
GM
6094 * lisp.h (input_pending): External declaration.
6095
6096 * dispextern.h (Qredisplay_dont_pause): Declare extern.
6097
6098 * xdisp.c (echo_area_display): Display thoroughly if input is
6099 pending. Bind redisplay-dont-pause to t during the redisplay.
6100 in case input is pending.
6101
6102 * dispnew.c (Qredisplay_dont_pause): New variable.
6103 (syms_of_display): Initialize and staticpro it.
6104 (update_frame_1): Don't interrupt the display for pending input if
6105 redisplay_dont_pause is set.
6106
43028b7e
GM
6107 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
6108
41e757a6
GM
6109 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
6110
2f2174fa
KH
61112000-08-09 Miles Bader <miles@lsi.nec.co.jp>
6112
6113 * callproc.c (Fcall_process): Terminate the unwind-protect around
6114 the post-read-conversion of coding system.
6115
0a6fd67e
MB
6116 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
6117 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
6118 * buffer.h (overlays_at): Update prototype.
6119 * xdisp.c (next_overlay_change): Update call to overlays_at.
6120 * xfaces.c (face_at_buffer_position): Likewise.
6121 * textprop.c (Fget_char_property): Likewise.
6122 * xterm.c (note_mouse_highlight): Likewise.
6123
0c80756e
MB
6124 * minibuf.c (do_completion): Don't consider a simple change of
6125 case as `completion'.
6126
975f250a
KR
61272000-08-08 Ken Raeburn <raeburn@gnu.org>
6128
b347b3fd
KR
6129 * keyboard.c (syms_of_keyboard): Initialize
6130 last_point_position_buffer.
6131 * undo.c (record_delete): Make sure last_point_position_buffer is
6132 a buffer before comparing pointers.
6133
6134 * coding.h (decode_coding_string): Declare.
6135
6136 * intervals.h (Fprevious_single_char_property_change): Declare.
6137
6138 * textprop.c (Fprevious_single_char_property_change): Don't do
6139 arithmetic directly on lisp objects.
6140
25ad1371 6141 * editfns.c (find_field): Use EQ, not ==, to compare Lisp
b347b3fd
KR
6142 objects.
6143
6144 * keyboard.h (menu_item_eval_property): Declare.
6145
6146 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
6147 reuse as buffer name, instead of recreating (and discarding) every
6148 time a message is logged.
6149 (with_echo_area_buffer): Make callback arg A2 a lisp object.
25ad1371
GM
6150 (current_message_1, truncate_message_1, set_message_1)
6151 (display_echo_area_1, resize_mini_window_1): Signatures changed.
6152 (current_message, truncate_echo_area, display_echo_area)
6153 (resize_echo_area_axactly): Changed calls.
b347b3fd 6154
975f250a 6155 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
25ad1371 6156 Lisp object.
975f250a 6157 (Ffind_coding_systems_region_internal): First argument to Fappend
25ad1371 6158 must be an integer, not a Lisp object.
975f250a 6159
46dc9912
KH
61602000-08-08 Kenichi Handa <handa@etl.go.jp>
6161
6162 * charset.c (Fchar_width): Doc fix.
6163
9f6d1a6c
GM
61642000-08-08 Gerd Moellmann <gerd@gnu.org>
6165
6166 * charset.c (Fstring_width): Doc fix.
6167
ff3d9573
GM
61682000-08-07 Gerd Moellmann <gerd@gnu.org>
6169
41e757a6 6170 * xdisp.c (start_display): When starting display on a continuation
49ad1d99
GM
6171 line, clear ascent and descent members of the iterator structure;
6172 the height of the continued line does not affect the height of the
6173 continuation line.
6174 (make_cursor_line_fully_visible): Do nothing if cursor is on a
6175 line taller than the window.
6176 (redisplay_window) <forced window start>: Handle case that the
6177 middle of the window is not found in any row.
6178 (dump_glyph_row): Show more information.
6179 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
6180 first text line in a glyph matrix.
6181
6182 * xterm.c (x_draw_image_foreground): Avoid drawing outside
6183 of the clip area when image doesn't have a mask.
6184
70fc58b3
GM
6185 * fns.c (sweep_weak_table): Fix survival conditions for
6186 key-or-value and key-and-value weakness.
6187
6188 * .gdbinit (xhashtable): New command.
6189
ac0e96ee
GM
6190 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
6191 tables out of the list of all weak hash tables.
6192
ff3d9573
GM
6193 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
6194 a new buffer is created, make sure echo_area_buffer[] references
6195 the new buffer.
6196
e0d8827b
EZ
61972000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
6198
6199 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
6200 the doc string.
6201
c6f35378
KH
62022000-08-07 Kenichi Handa <handa@etl.go.jp>
6203
6204 * syntax.c (skip_chars): Fix previous change. Make the handling
6205 of unibyte string consistent with that of regex search.
6206
1fd4c450
GM
62072000-08-05 Gerd Moellmann <gerd@gnu.org>
6208
e49aa397
GM
6209 * xmenu.c (popup_get_selection): Use xfree instead of free.
6210
6211 * fileio.c (Finsert_file_contents): Use xfree instead of free.
6212
6213 * editfns.c (Ftranspose_regions): Use xfree instead of free.
6214
6215 * callproc.c (child_setup): Use xfree instead of free.
6216
6217 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
6218 instead of malloc.
6219 (run_mac_command, closedir): Use `xfree' instead of `free'.
6220
6221 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
6222
6223 * eval.c (error): Use xfree instead of free.
6224
1fd4c450
GM
6225 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
6226
6227 * fns.c: Replace `illegal' with `invalid'.
e49aa397 6228 (Fmake_hash_table, make_hash_table): Allow table size of 0.
1fd4c450 6229
82d497fc
KH
62302000-08-05 Kenichi Handa <handa@etl.go.jp>
6231
6232 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
6233 conversion.
6234
59f953a2
NF
62352000-08-04 Noah Friedman <friedman@splode.com>
6236
6237 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
6238 docstring.
6239
688351f2
GM
62402000-08-04 Gerd Moellmann <gerd@gnu.org>
6241
6242 * syntax.c (skip_chars): Fix typo in error message.
6243
2dad51cc
AS
62442000-08-04 Andreas Schwab <schwab@suse.de>
6245
6246 * m/ia64.h: Moved from s/ia64.h.
6247
99bb2c60
KH
62482000-08-04 Kenichi Handa <handa@etl.go.jp>
6249
082a1df2
KH
6250 * process.c (read_process_output): Big simplification. Handle
6251 composition and post-read-conversion of coding system correctly.
6252 (send_process): Handle composition correctly.
6253
6254 * callproc.c (Fcall_process): Handle post-read-conversion of
6255 coding system if any.
6256
99bb2c60
KH
6257 * coding.c (decode_coding_iso2022): More strict check for handling
6258 single shifting.
082a1df2
KH
6259 (coding_restore_composition): Pay attention to the case that
6260 cmp_data is not set properly (because of invalid code in the
6261 source text).
6262 (run_pre_post_conversion_on_str): Include text properties in the
6263 resulting string.
6264 (decode_coding_string): Set members of coding correctly.
99bb2c60 6265
f4988be7
GM
62662000-08-03 Gerd Moellmann <gerd@gnu.org>
6267
6268 * s/ia64.h: New file.
6269
6270 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
6271 Use NULL instead of 0 at the end of variable argument list of
6272 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
6273 sizeof (int) < sizeof (void *).
6274
6275 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
6276 of variable argument lists of XtVaGetValues and XtVaSetValues.
6277
6278 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
6279 variable argument lists of XtVaGetValues and XtVaSetValues.
6280
ead53494
GM
62812000-08-02 Gerd Moellmann <gerd@gnu.org>
6282
6283 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
6284 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
6285
6286 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
6287 prototype.
6288
6289 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
6290 in call to Fsingle_key_description.
6291
6292 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
6293 Callers changed.
6294
62952000-08-02 Colin Walters <walters@cis.ohio-state.edu>
6296
6297 * window.c (display_buffer_reuse_frames): New variable.
6298 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
6299 frames displaying BUFFER.
6300 (syms_of_window): Define Lisp variable
6301 display-buffer-reuse-frames.
6302
10b0f752
MB
63032000-08-01 Miles Bader <miles@gnu.org>
6304
6305 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
6306 when to constrain NEW_POS (they were pretty screwed up before).
6307
16425c4a
EZ
63082000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
6309
6310 * msdos.c (run_msdos_command): Save and restore the master
6311 environment, for the case that child_setup signals an error.
6312 When mirroring slashes in DOS shell commands, don't fail when
6313 argv[2] has embedded blanks.
da288c14
EZ
6314 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
6315 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
6316 (dos_ttraw): Call mouse_setup_buttons.
16425c4a
EZ
6317
6318 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
6319 using alloca; free it after run_msdos_command returns.
6320
27f73852
DL
63212000-07-27 Dave Love <fx@gnu.org>
6322
6323 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't
6324 define.
6325 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently
6326 working.
6327
6328 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
6329
c0261b5e
EZ
63302000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
6331
6332 * editfns.c (lisp_time_argument): Fix last change.
6333
b548072f
GM
63342000-07-27 Gerd Moellmann <gerd@gnu.org>
6335
3ab82477
GM
6336 * fns.c (Fdelete): Make it work on vectors and strings in addition
6337 to lists.
6338
b548072f
GM
6339 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
6340 (syms_of_fns): Initialize new variables.
6341 (sweep_weak_table): Handle weakness `key-or-value' and
6342 `key-and-value'.
6343 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
6344 weakness, with t meaning the same as `key-and-value'.
6345
91ae8751
KH
63462000-07-27 Kenichi Handa <handa@etl.go.jp>
6347
6348 * coding.h (struct coding_system): Member safe_charset deleted.
6349
6350 * coding.c (Qsafe_charsets): This variable deleted.
6351 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system): New
6352 variables.
6353 (coding_safe_chars): New function.
6354 (CODING_SAFE_CHAR_P): New macro.
6355 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
6356 checking safe_charsets member of the coding system. Caller
6357 changed.
6358 (detect_coding_iso2022): New local variable safe_chars.
6359 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
6360 safe_charsets member of the coding system.
6361 (decode_coding_iso2022): New local variable safe_chars.
6362 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
6363 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
6364 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
6365 (ENCODE_UNSAFE_CHARACTER): New macro.
6366 (encode_coding_iso2022): New local variable safe_chars. Check
6367 unsafe chars.
6368 (setup_coding_system): Delete the code to initialize
6369 coding->safe_charses
6370 (intersection, find_safe_codings): New functions.
6371 (Ffind_coding_systems_region_internal): New function.
6372 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
6373 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
6374 variable and initialize it.
6375
6376 * fns.c (char_table_ref_and_index): New function.
6377
6378 * lisp.h (char_table_ref_and_index): Add prototype.
6379
34a7a267
SS
63802000-07-26 Sam Steingold <sds@gnu.org>
6381
6382 * editfns.c (lisp_time_argument): Added third argument `usec'.
3ab82477 6383 (Ffloat_time): New built-in Lisp function.
34a7a267 6384
a95cb10a
GM
63852000-07-26 Gerd Moellmann <gerd@gnu.org>
6386
3353ef5a
GM
6387 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
6388 for the character code.
6389
6390 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
6391 GNU/Linux.
6392
a95cb10a
GM
6393 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
6394 if called for a popup menu.
6395 (xmenu_show): Store help string in widget values.
6396
b4a12321
DL
63972000-07-26 Dave Love <fx@gnu.org>
6398
6399 * syswait.h: Move some definitions.
6400 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
6401 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
6402 perspicuous definitions.
6403 (WTERMSIG): Fix bit pattern used.
6404
13f5ad37
KH
64052000-07-26 Kenichi Handa <handa@etl.go.jp>
6406
6407 * print.c (print_object): If vector printing is truncated, print
6408 "..." to indicate it as well as the case of list printing.
6409
070fe99c
GM
64102000-07-25 Gerd Moellmann <gerd@gnu.org>
6411
969065c3
GM
6412 * xdisp.c (next_element_from_display_vector): Improve comments.
6413
6414 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
6415 for the character code, and the rest for the face id as in 20.x.
6416 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
6417
6418 * window.c (window_display_table): Cleaned up.
6419
070fe99c
GM
6420 * syntax.c (Fforward_word): Add last arg nil in call of
6421 Fconstrain_to_field.
6422
bad77ef7
EZ
64232000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
6424
969065c3 6425 * fileio.c (Frename_file) [DOS_NT]: If the file names are
bad77ef7
EZ
6426 identical but for the letter-case, don't call
6427 barf_or_query_if_file_exists.
6428
c28da489
MB
64292000-07-25 Miles Bader <miles@gnu.org>
6430
6431 * editfns.c (find_field): Honor special `boundary' fields.
6432 (Qboundary): New variables.
6433 (syms_of_editfns): Initialize Qboundary.
6434 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
6435 Use scan_buffer instead of find_before_next_newline, because it
6436 allows us to detect the boundary case where there's a newline at
6437 the search limit.
6438 * lisp.h (Fconstrain_to_field): Update external declaration.
6439
e3c31fd5
GM
64402000-07-24 Gerd Moellmann <gerd@gnu.org>
6441
6442 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
6443 if that is nil.
c28da489 6444
c66c29a2
DL
64452000-07-24 Dave Love <fx@gnu.org>
6446
6447 * s/sunos4-0.h, s/sol2.h:
6448 (LIBS_TERMCAP): Move from m/sparc.h.
6449
6450 * m/sparc.h (TERMINFO): Moved to system files (probably only
6451 relevant for sunos4 judging by its vintage).
6452 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
6453 __arch64__.
6454
fbe0a958
EZ
64552000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
6456
6457 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
6458 name to single_keymap_panes.
6459
7d88e5c9
AS
64602000-07-24 Andreas Schwab <schwab@suse.de>
6461
6462 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
6463
e024b101
GM
64642000-07-24 Gerd Moellmann <gerd@gnu.org>
6465
6466 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
6467 parameters instead of using int parameters. Expect FN to accept
6468 EMACS_INT parameters.
6469 (display_echo_area, resize_echo_area_axactly, current_message)
6470 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
6471 with new argument list.
6472 (resize_mini_window_1): New callback function.
6473 (current_message_1, truncate_message_1, set_message_1): Change
6474 parameter lists to the new format expected by
6475 with_echo_area_buffer.
6476
25c1a9ce
KH
64772000-07-24 Kenichi Handa <handa@etl.go.jp>
6478
6479 * fontset.c (fontset_ref): Remove INLINE declaration.
6480 (fontset_ref_via_base): Likewise.
6481 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
6482 to downcase.
6483
7f987ac0
EZ
64842000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
6485
6486 * msdos.c (IT_note_mouse_highlight): Process overlays in the
6487 correct order of priority. If help echo was found in an overlay,
6488 use that overlay as the object in which the help echo was found.
6489
e2db3069
MB
64902000-07-22 Miles Bader <miles@gnu.org>
6491
6492 * textprop.c (Fprevious_single_char_property_change): The initial
6493 property value should be from the position preceding POSITION, not
6494 following it.
6495
5e3203e4
EZ
64962000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
6497
6498 * coding.c (syms_of_coding): Doc fix for
6499 inhibit-iso-escape-detection.
6500
62145073
GM
65012000-07-21 Gerd Moellmann <gerd@gnu.org>
6502
c20aeb83
GM
6503 * xterm.c (note_mouse_highlight): Process overlays in the right
6504 order of priority.
34a7a267 6505
743934db
GM
6506 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
6507
6508 * xterm.c (note_mouse_highlight): If help-echo was found in an
6509 overlay, use that overlay as the object in which the help was
6510 found.
6511
d1dc7e43 6512 * window.c (foreach_window_1): Fix typo reversing an if-condition.
34a7a267 6513
62145073
GM
6514 * window.c (foreach_window): Instead of a fake variable argument
6515 list, take one USER_DATA argument.
6516 (foreach_window_1): Likewise, and call callback functions with two
6517 args, the window and USER_DATA.
6518 (struct check_window_data): New struct.
6519 (check_window_containing): Use it.
6520 (window_from_coordinates): Set up a struct check_window_data for
6521 foreach_window.
6522 (add_window_to_list, freeze_window_start): Change parameters
6523 according to new calling convention.
6524
6525 * window.h (foreach_window): Change prototype.
6526
6527 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
6528
65292000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
6530
6531 * xmenu.c (menu_help_callback): Call show_help_echo with
6532 additional arguments OBJECT and POS.
6533
11270583
KH
65342000-07-21 Kenichi Handa <handa@etl.go.jp>
6535
07b14857
KH
6536 * data.c (Faset): Allow storing any multibyte character in a
6537 string. Convert unibyte string to multibyte if necessary.
6538
11270583
KH
6539 * xfns.c (x_encode_text): New function.
6540 (x_set_name): Use x_encode_text.
6541 (x_set_title): Likewise.
6542
6543 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
6544
6545 * xterm.h (x_encode_text): Add prototype.
6546
bc75b4fd
DL
65472000-07-20 Dave Love <fx@gnu.org>
6548
6549 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
6550 xfree, not free.
6551
48c14970
EZ
65522000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
6553
6554 * msdos.c (help_echo_window): New variable.
6555 (syms_of_msdos): Initialize and staticpro it.
6556 (IT_note_mode_line_highlight): Set help_echo_window.
6557 (IT_note_mouse_highlight): Ditto.
6558 (dos_rawgetc): Store help_echo_window in the second event produced
6559 for HELP_EVENTs.
6560
6561 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
6562 Record the object that generated the help echo and the position of
6563 that object in help_echo_object and help_echo_pos. Record that
6564 some glyphs in a row are displayed in mouse-face.
6565 (IT_update_begin): Don't clear mouse highlight unless one of the
6566 enabled glyph rows is marked as being displayed in mouse-face.
6567 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
6568 and position recorded in help_echo_object and help_echo_pos to the
6569 event queue.
6570 (IT_menu_display): Accept a new argument PN: the pane number of
6571 the current menu pane. Record the pane number and the item
6572 number of the item which has associated help string.
6573 (XMenuActivate): Update the prototype for help_callback in
6574 function declaration. Call IT_menu_display with the current menu
6575 pane number as an additional argument. Call help_callback with
6576 two additional arguments: the pane number and the item number of
6577 the menu item associated with the help text.
6578 (help_echo_object, help_echo_pos): New variables.
6579 (syms_of_msdos): Initialize them and staticpro help_echo_object.
6580
6581 * msdos.h (XMenuActivate): Update prototype.
6582
4279296d
GM
65832000-07-19 Gerd Moellmann <gerd@gnu.org>
6584
47db06aa
GM
6585 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
6586 Add some more prototypes.
6587
6588 * xterm.c, xterm.h: Add some more prototypes.
6589
6590 * lisp.h (Fnext_single_char_property_change): Add prototype.
6591
6592 * dispnew.c (direct_output_for_insert): Remove confusing
6593 outer local variable mouse_face_overwritten_p.
6594 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
6595
4279296d
GM
6596 * alloc.c (allocate_string_data): Don't copy old string contents.
6597
670acd62
KH
65982000-07-19 Kenichi Handa <handa@etl.go.jp>
6599
6600 * coding.c (code_convert_region): Delete text properties before
6601 shrinking the conversion region.
6602
7cea38bc
GM
66032000-07-18 Gerd Moellmann <gerd@gnu.org>
6604
dc1cac59
GM
6605 * dispnew.c (update_text_area): Write the whole row if it
6606 has mouse-face in it.
6607
85a8aca9
GM
6608 * xfaces.c (face-alternative-font-family-alist): Remove
6609 DEFVAR_LISP; staticpro instead.
6610
34a7a267 6611 * xmenu.c (menu_help_callback): Call show_help_echo with
7cea38bc
GM
6612 new arguments.
6613
6614 * keyboard.c (show_help_echo): Add parameter WINDOW.
6615 (read_char): Call show_help_echo with window extracted from Lisp
6616 help event.
6617 (gen_help_event): Add parameter WINDOW.
6618
6619 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
6620
6621 * xterm.c (help_echo_window): New variable.
6622 (note_mouse_highlight, note_tool_bar_highlight): Set
6623 help_echo_window.
6624 (XTread_socket): Pass help_echo_window to gen_help_event.
6625 (syms_of_xterm): Initialize and staticpro help_echo_window.
6626
f8276b77
DL
66272000-07-18 Dave Love <fx@gnu.org>
6628
6629 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
6630 systime.h.
6631
088831a6
GM
66322000-07-18 Gerd Moellmann <gerd@gnu.org>
6633
3d6cd763
GM
6634 * alloc.c (allocate_string_data): If string had already data
6635 assigned, copy old contents to new string data.
6636
6637 * coding.c (syms_of_coding): Fix typo in spelling of variable
6638 `inhibit-iso-escape-detection'.
6639
088831a6
GM
6640 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
6641
6642 * Makefile.in: Add dependencies on dispextern.h.
6643 (alloca.o): Don't define malloc and define EMACS_FREE instead of
6644 `free'; both can conflict with system header files.
6645
bc8a8d55
KH
66462000-07-18 Kenichi Handa <handa@etl.go.jp>
6647
6648 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
6649 undefined.
6650
069f5950
DL
66512000-07-18 Dave Love <fx@gnu.org>
6652
6653 * window.c (Fwindow_list): Declare arg `window'.
6654
aa96c820
KH
66552000-07-18 Kenichi Handa <handa@etl.go.jp>
6656
6657 * coding.c (setup_coding_system): Don't override the explicitly
6658 specified designations.
6659
06be8d32
MB
66602000-07-15 Miles Bader <miles@gnu.org>
6661
6662 * editfns.c (char_property_eq, char_property_stickiness): Renamed
6663 from `text_property_eq' and `text_property_stickiness', respectively.
6664 (find_field, Fconstrain_to_field, char_property_eq)
6665 (char_property_stickiness): Changed to call char-property functions
6666 instead of text-property-only ones.
6667
6668 * textprop.c (Fnext_single_char_property_change): Made a subr (was
6669 `next_single_char_property_change'). Do more error checking, and
6670 cleanup limit behavior.
6671 (Fprevious_single_char_property_change): New function.
6672 (syms_of_textprop): Initialize new subrs.
6673
6674 * xdisp.c (display_prop_end, invisible_text_between_p):
6675 Call Fnext_single_char_property_change instead of
6676 next_single_char_property_change.
6677
3fddcdc3
JR
66782000-07-15 Jason Rumney <jasonr@gnu.org>
6679
6680 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
6681 after menu is finished with.
6682 (add_menu_item): Only consider wv->title as a menu title.
6683 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
6684
6685 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
6686 null title.
6687 (FONT_REGEXP): Remove unused macro, and its sub-components.
6688 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
6689
6690 * w32term.c (help_echo_object, help_echo_pos): New variables.
6691 (note_mode_line_highlight): Store additional information about the
6692 help-echo in help_echo_object and help_echo_pos. Check both
6693 `local-map' and `keymap' properties for changing the cursor
6694 (note_mouse_highlight): Store additional information about the
6695 help-echo in help_echo_object and help_echo_pos.
6696 (note_tool_bar_highlight): Set help_echo_object to nil and
6697 help_echo_pos to -1.
6698 (w32_read_socket): Use gen_help_event instead of filling
6699 input_events manually.
6700 (syms_of_w32term): Staticpro help_echo_object.
6701 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
6702 set, arrange for a mouse-highlight redisplay in
6703 XTframe_up_to_date.
6704 (x_clear_mouse_face): New function.
6705 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
6706 (x_update_window_begin): No need to turn off the mouse
6707 highlight here.
6708 (show_mouse_face): Set the mouse_face_p flag of glyph rows
6709 depending on whether they contain glyphs highlighted in
6710 mouse-face.
6711 (x_fill_stretch_glyph_string): Consume runs of stretch
6712 glyphs instead of a single one.
6713 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
6714 with new argument list.
6715 (x_set_glyph_string_gc): Make sure the face's GC is valid.
6716 (x_append_glyph, x_append_composite_glyph)
6717 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
6718 changes in struct glyph starting 1999-12-27. See comments for
6719 xterm.c on 2000-07-05.
6720
178c5d9c
SS
67212000-07-14 Sam Steingold <sds@gnu.org>
6722
6723 * xfaces.c (realize_x_face): Fix the last patch:
6724 check `default_face' before dereferencing.
6725
6fe533f6
DL
67262000-07-14 Dave Love <fx@gnu.org>
6727
069f5950 6728 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 6729
dd7b81cf
KH
67302000-07-14 Kenichi Handa <handa@etl.go.jp>
6731
0693904a 6732 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 6733 default_face's fontset, not using the default fontset.
0693904a 6734
dd7b81cf
KH
6735 * coding.c (inhibit_iso_escape_detection): New variable.
6736 (syms_of_coding): Make it a Lisp variable.
6737 (detect_coding_iso2022): If inhibit_iso_escape_detection is
6738 nonzero, ignore ISO2022's escape sequence.
6739
d5aa31d8
GM
67402000-07-14 Gerd Moellmann <gerd@gnu.org>
6741
e5acf0ca
GM
6742 * alloca.c (malloc) [emacs]: Define as xmalloc.
6743
bd23a692
GM
6744 * xfns.c (Fx_show_tip): If frame parameters contain a position,
6745 use that instead of the mouse position. Add parameters DX and DY.
6746
6747 * dispextern.h (Fx_show_tip): Adjust number of parameters
6748 in prototype.
6749
9662da0b
GM
6750 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
6751 if HELP is a function, call it with OBJECT and POS as parameters
6752 to get the help to display.
6753 (gen_help_event, kbd_buffer_store_help_event): New functions.
6754 (kbd_buffer_get_event): Construct the Lisp help-event differently.
6755 (read_char): Call show_help_echo with new parameters.
6756
178c5d9c 6757 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
6758 Add prototypes.
6759
6760 * xterm.c (help_echo_object, help_echo_pos): New variables.
6761 (note_mode_line_highlight): Store additional information about the
6762 help-echo in help_echo_object and help_echo_pos. Check both
6763 `local-map' and `keymap' properties for changing the cursor
6764 (note_mouse_highlight): Store additional information about the
6765 help-echo in help_echo_object and help_echo_pos.
6766 (note_tool_bar_highlight): Set help_echo_object to nil and
6767 help_echo_pos to -1.
6768 (XTread_socket): Use gen_help_event instead of filling
6769 input_events manually.
6770 (syms_of_xterm): Staticpro help_echo_object.
6771
6772 * xmenu.c (menu_highlight_callback): Use
6773 kbd_buffer_store_help_event instead of setting up and input_event
6774 structure manually.
6775
6776 * xdisp.c (eval_form): GCPRO argument sexpr.
6777 (call_function): New function.
6778 (handle_single_display_prop): Use call_function and FUNCTIONP
6779 instead of checking whether if font_height is a symbol and
6780 using eval_form.
6781
6782 * eval.c (internal_condition_case_2): New function.
6783
6784 * lisp.h (FUNCTIONP): New macro.
6785 (internal_condition_case_2, call_function): Add prototypes.
6786
d5aa31d8
GM
6787 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
6788 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
6789 Always set `arg' member of input_events.
6790 (construct_menu_click): Unused function removed.
6791
6792 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
6793
6794 * w32term.c (construct_mouse_click, construct_mouse_wheel)
6795 (construct_drag_n_drop, x_scroll_bar_handle_click)
6796 (w32_read_socket): Always set `arg' member of input_events.
6797
6798 * keyboard.c (show_help_echo): Use eval_form. Add comment.
6799
6800 * lisp.h (eval_form): Add prototype.
6801
6802 * xdisp.c (eval_form): Make it externally visible.
6803
0f1a9b23
GM
68042000-07-13 Gerd Moellmann <gerd@gnu.org>
6805
6806 * xterm.c (x_handle_tool_bar_click): Store the frame in the
6807 frame_or_window slot of TOOL_BAR_EVENT input events instead of
6808 consing. For prefix events, store the frame in the `arg' slot of
6809 the event, otherwise store the key there.
6810 (XTread_socket): Instead of consing, use the frame_or_window slot
6811 of HELP_EVENTs for the frame, and the `arg' slot for the help
6812 string.
6813
6814 * xmenu.c (menu_highlight_callback): Store help string in the
6815 `arg' member of the input event; don't cons.
6816 (menubar_selection_callback): Use the `arg' slot of input events
6817 to queue additional information, instead of consing.
6818
6819 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
6820
6821 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
6822 TOOL_BAR_EVENTs.
6823 (w32_read_socket): Adapt to changes in HELP_EVENTs.
6824
6825 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
6826 input events to queue additional information, instead of consing.
6827
6828 * keyboard.c (kbd_buffer_gcpro): Renamed from
6829 kbd_buffer_frame_or_window. Now used for all Lisp objects
6830 referenced from the input queue.
6831 (kbd_buffer_store_event): Always use structure assignment for
6832 copying input events. Record all Lisp objects referenced from
6833 events in kbd_buffer_gcpro.
6834 (kbd_buffer_get_event): Construct Lisp `help-echo' events
6835 differently from input events. Test for prefix menu_bar_events
6836 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
6837 event in kbd_buffer_gcpro to nil.
6838 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
6839 frame_or_window is equal to its arg member as prefix events.
6840 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
6841 used by an input event to nil.
6842 (init_keyboard): Use two times the size of the input queue
6843 for kbd_buffer_gcpro.
6844 (syms_of_keyboard): Likewise.
6845
6846 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
6847 USER_SIGNAL_EVENT.
6848
6849 * termhooks.h (struct input_event): Add member `arg'.
6850 (MENU_BAR_EVENT): Renamed from menu_bar_event.
6851 (USER_SIGNAL_EVENT): Renamed from user_signal.
6852
6853 * xfaces.c (ASET): Remove definition.
6854
6855 * lisp.h (AREF, ASET, ASIZE): New macros.
6856
6857 * fontset.c (AREF, ASIZE): Remove definitions.
6858
6859 * fns.c (AREF): Remove definition.
178c5d9c 6860
0f1a9b23
GM
6861 * composite.c (AREF): Remove definition.
6862
712eaef2
GM
68632000-07-12 Gerd Moellmann <gerd@gnu.org>
6864
d8ee7803
GM
6865 * dispnew.c (redraw_overlapped_rows): Add missing local.
6866 (scrolling_window): Remove debug code.
6867
712eaef2
GM
6868 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
6869 Before scrolling, turn off a mouse-highlight in the window
6870 being scrolled.
6871
6872 * xterm.c (x_update_window_end): Add parameter
6873 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
6874 redisplay in XTframe_up_to_date.
6875 (x_clear_mouse_face): New function.
6876 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
6877
6878 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
6879 current glyph row.
6880 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
6881 it when any row is written to that contains glyphs highlighted in
6882 mouse-face.
6883 (update_window): Call the window update end hook with new
6884 parameter MOUSE_FACE_OVERWRITTEN_P.
6885 (direct_output_for_insert): Give up if row contains mouse-face.
6886
6887 * dispextern.h (struct redisplay_interface): Add parameter
6888 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
6889 (clear_mouse_face): New function pointer member.
6890
02010917
SM
68912000-07-11 Stefan Monnier <monnier@cs.yale.edu>
6892
6893 * syntax.c (back_comment): Use one switch rather than a few `if's.
6894 Obey open_paren_in_column_0_is_defun_start.
6895 When reverting to the `slow' method, try to nicely handle the case
6896 of nested comments by checking that the comment-starter we found
6897 does indeed match the comment-ender.
6898 (scan_sexps_forward, scan_sexps_forward):
6899 Ignore excessive opening parenthesis rather than throwing an error.
6900
d76c03ea
GM
69012000-07-11 Gerd Moellmann <gerd@gnu.org>
6902
6903 * doc.c (Fsubstitute_command_keys): Handle case that a GC
6904 in Fwhere_is_internal or get_keymap_1 relocates string contents.
6905
6906 * dispnew.c (direct_output_forward_char): Give up if currently
6907 displaying a message instead of the minibuffer contents.
6908
6909 * xterm.c (x_update_window_begin): No need to turn off the mouse
6910 highlight here.
6911 (show_mouse_face): Set the mouse_face_p flag of glyph rows
6912 depending on whether they contain glyphs highlighted in
6913 mouse-face.
6914
6915 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
6916 compare the mouse_face_p flags of both rows.
6917
6918 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
6919
d55ead18
EZ
69202000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
6921
6922 * keyboard.c (show_help_echo): Accept additional parameter
6923 ok_to_overwrite_keystroke_echo.
6924 (read_char): Call show_help_echo with a zero
6925 ok_to_overwrite_keystroke_echo argument.
6926 * keyboard.h (show_help_echo): Update prototype of
6927 show_help_echo.
6928 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
6929 ok_to_overwrite_keystroke_echo argument.
6930 * w32menu.c (w32_menu_display_help): Call show_help_echo with
6931 non-zero ok_to_overwrite_keystroke_echo argument.
6932
df75b1a3
GM
69332000-07-10 Gerd Moellmann <gerd@gnu.org>
6934
4b92c49a
GM
6935 * xdisp.c (try_window_id): If changes are all below what is
6936 displayed in the window, and point is in the window, we still
6937 might have to find point on the display.
6938
6939 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
6940 glyphs instead of a single one.
6941 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
6942 with new argument list.
6943 (x_set_glyph_string_gc): Make sure the face's GC is valid.
6944
df75b1a3
GM
6945 * keymap.c (get_keymap_1): Add comment that this function can GC.
6946 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
6947 comment that functions can GC.
6948 (Fset_keymap_parent): GCPRO arg KEYMAP.
6949
4314cf3e
EZ
69502000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
6951
6952 * msdos.c (XMenuActivate): After exiting the menu, restore the
6953 echo area message and erase it.
6954
ab49ce15
KH
69552000-07-10 Kenichi Handa <handa@etl.go.jp>
6956
6957 * fontset.c (Ffontset_info): Make the return value more compatible
6958 with that of Emacs 20.
6959
090a072f
GM
69602000-07-07 Gerd Moellmann <gerd@gnu.org>
6961
6962 * eval.c (Fsignal): Handle case that backtrace_list is null.
6963
f92de4a6
KH
69642000-07-07 Kenichi Handa <handa@etl.go.jp>
6965
6966 * ccl.c (Fccl_execute): Typo fixed.
6967
dd8888a1
GM
69682000-07-06 Gerd Moellmann <gerd@gnu.org>
6969
e5c81191 6970 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 6971
dd8888a1
GM
6972 * window.c (Fwindow_list): Reverse list at the end.
6973 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
6974 means allow windows on OWINDOW's frame, only.
6975 (window_loop): Simplified; use Fwindow_list.
6976
6977 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
6978
485266d0
GM
69792000-07-05 Gerd Moellmann <gerd@gnu.org>
6980
6981 * xterm.c (XTread_socket): Increment handling_signal at the start,
6982 decrement it at the end.
6983
6984 * eval.c (handling_signal): New variable.
6985 (Fsignal): Abort if handling_signal is non-zero.
6986
6987 * lisp.h (handling_signal): External declaration.
178c5d9c 6988
485266d0
GM
6989 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
6990
80fcd514
KR
69912000-07-05 Ken Raeburn <raeburn@gnu.org>
6992
6993 Sound support for NetBSD through "Linux emulation" support:
6994 * config.in (HAVE_SOUNDCARD_H): Undef.
6995 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
6996 * Makefile.in (LIBSOUND): New variable.
6997 (LIBES): Include it.
6998 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
6999 <soundcard.h>.
7000 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
7001 elsewhere.
7002 (vox_open): Use DEFAULT_SOUND_DEVICE.
7003 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
7004
d5c5cddd
GM
70052000-07-05 Gerd Moellmann <gerd@gnu.org>
7006
7007 * print.c (print_error_message): If Vsignaling_function is set,
7008 show it in *Messages*.
7009
7010 * lisp.h (Vsignaling_function): External declaration.
7011
7012 * eval.c (Vsignaling_function): New variable.
7013 (Fsignal): Compute it.
7014 (syms_of_eval): Staticpro it.
7015
65171e3a
DL
70162000-07-05 Dave Love <fx@gnu.org>
7017
7018 * syswait.h: Use the autoconf recommended approach. Old code
7019 #if'd out in case we need to revert.
7020
178c5d9c 7021 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 7022
e2c46326
AI
70232000-07-05 Andrew Innes <andrewi@gnu.org>
7024
7025 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
7026 when non-NULL instead of __morecore, to take account of buffer
7027 memory. This also solves a problem with spurious memory warnings
7028 on Windows.
7029
7030 * ralloc.c: Make real_morecore non-static.
7031
7032 * eval.c (internal_condition_case): Comment out abort if
7033 interrupt_input_blocked is not zero.
7034
7035 * makefile.nt: Add support for `bootstrap' and related targets.
7036 Include minimal debug info in emacs.exe in release build.
7037 Remove all dependencies on lisp.h, and fixup some others.
7038
7039 * w32.c (init_environment): Install code from 20.7 for providing
7040 default values for environment variables, based on the
7041 executable's own location.
7042 (map_w32_filename): Handle filenames that are longer than
7043 MAX_PATH.
7044 (sys_socket): Install socket inheritance bug fix from 20.7.
7045
7046 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
7047 here via blockinput.h).
7048
a027a91b
SM
70492000-07-05 Stefan Monnier <monnier@cs.yale.edu>
7050
e4b31601
SM
7051 * w32menu.c (w32_menu_display_help):
7052 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
7053
7054 * keyboard.h (show_help_echo): Declare.
7055
7056 * keyboard.c (show_help_echo): New function, extracted from read_char.
7057 Feval its `msg' argument if it's a cons cell.
7058 (read_char): Use it.
4cf8d9d5 7059 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 7060
178c5d9c 7061 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 7062 (note_tool_bar_highlight, XTread_socket):
178c5d9c 7063 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
7064 (dos_rawgetc):
7065 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
7066 (note_tool_bar_highlight, w32_read_socket):
7067 Do not gratuitously ignore non-string `help-echo' properties.
7068
88d75730
GM
70692000-07-05 Gerd Moellmann <gerd@gnu.org>
7070
969f7e79
GM
7071 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
7072
71201b00
GM
7073 * window.c (delete_all_subwindows): Reset Vwindow_list.
7074
88d75730
GM
7075 * xterm.c (x_append_glyph, x_append_composite_glyph)
7076 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
7077 changes in struct glyph starting 1999-12-27. Some bit-fields of
7078 struct glyph were not set, which made glyphs unequal when compared
7079 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
7080 effects were the result. This also depended on the contents of
7081 memory returned by xmalloc. If flickering happens again, activate
7082 the code in clear_glyph_row that's in #if 0. If the flickering is
7083 gone with that, chances are that it is caused by something
7084 similar.
7085
7086 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 7087
88d75730
GM
7088 * dispextern.h: Add some comments.
7089
7090 * window.c (add_window_to_list): Add parameter LIST.
7091 (window_list): Order list so that, for each frame, windows are
7092 in canonical order, and so that frames appear in the list in
7093 the order given by Vframe_list.
7094 (next_window): Reverse the handling of NEXT_P.
7095
53654733
GM
70962000-07-04 Gerd Moellmann <gerd@gnu.org>
7097
87efd256
GM
7098 * window.c (Vwindow_list): New variable.
7099 (make_window, delete_window): Set Vwindow_list to nil.
7100 (check_window_containing): New function.
7101 (window_from_coordinates): Rewritten.
7102 (add_window_to_list, window_list, candidate_window_p)
7103 (decode_next_window_args, next_window): New functions.
7104 (Fnext_window, Fprevious_window): Rewritten in terms of
7105 next_window.
7106 (Fwindow_list): New function.
7107 (Fother_window): Cleaned up.
7108 (foreach_window): Add a longer "variable argument list". Let
7109 callback function return 0 to indicate that cycling over windows
7110 should stop.
7111 (foreach_window_1): Likewise.
7112 (freeze_window_start): Return int.
7113 (init_window): New function.
7114 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
7115
7116 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
7117 input_event with bzero.
7118 (main): Call init_window.
7119
53654733
GM
7120 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
7121 a menu filter.
7122
4a8c194f
KH
71232000-07-04 Kenichi Handa <handa@etl.go.jp>
7124
7125 * composite.h (make_composition_value_copy): Extern it.
7126
7127 * composite.c (make_composition_value_copy): New function.
7128
7129 * editfns.c (Fformat): While copying text properties, make each
7130 composition property value a copy.
7131
7132 * fns.c (concat): While copying text properties, make each
7133 composition property value a copy.
7134
831a6cb0
GM
71352000-07-03 Gerd Moellmann <gerd@gnu.org>
7136
2f516940
GM
7137 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
7138
178c5d9c 7139 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
7140 marked already.
7141
831a6cb0
GM
7142 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
7143 include those frames as candidates which have their focus
7144 redirected to the minibuffer frame.
7145
d9c4f922
SM
71462000-07-03 Stefan Monnier <monnier@cs.yale.edu>
7147
7148 * fns.c (Fputhash): Return `value' rather than nil.
7149
3780bc22
GM
71502000-06-30 Gerd Moellmann <gerd@gnu.org>
7151
97d176db
GM
7152 * frame.c (next_frame): Don't check focus redirection in case
7153 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
7154 unless their focus is redirected, which contradicts the
7155 specification of next-frame, and leads to infinite loops in
7156 certain situations when cycling through windows with next-window.
7157
dca9961d
KH
71582000-06-30 Kenichi Handa <handa@etl.go.jp>
7159
7160 * coding.c (code_convert_region): Even if the length of text is
7161 zero, try to convert it if coding->type is coding_type_ccl.
7162 (decode_coding_string, encode_coding_string): Likewise.
7163
d5483ab1
GM
71642000-06-28 Gerd Moellmann <gerd@gnu.org>
7165
af5c25e1 7166 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 7167 the display if windows_or_buffers_changed.
af5c25e1
GM
7168
7169 * dispnew.c (struct row_entry): New structure.
7170 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
7171 (row_table_size, old_lines, new_lines, old_lines_size)
7172 (new_lines_size, run_pool, runs_size, runs): New variables.
7173 (add_row_entry): New function.
7174 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 7175 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
7176 holding them in local variables. Use a larger hash table whose
7177 size depends on glyph matrix sizes. Don't use bzero to clear the
7178 hash table; instead, clear used slots only.
7179
7180 * fns.c (next_almost_prime): Make it externally visible.
7181
7182 * lisp.h (next_almost_prime): Add prototype.
7183
d5483ab1
GM
7184 * s/isc4-0.h (sigunblock): Define.
7185
7186 * s/sco5.h (sigunblock): Define.
7187
93e40f40
DL
71882000-06-27 Dave Love <fx@gnu.org>
7189
7190 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
7191 (moved to osf5-0.h).
7192 [!NOT_C_CODE]: Protect string.h stuff.
7193
7194 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
7195 (sys_siglist, NSIG): Definitions moved here from osf1.h.
7196
3c4b7685
GM
71972000-06-27 Gerd Moellmann <gerd@gnu.org>
7198
97d176db 7199 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
7200 below the last line from the needed window height.
7201
32cad0aa
SM
72022000-06-26 Stefan Monnier <monnier@cs.yale.edu>
7203
7204 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
7205 (Fwidget_get): Use it.
7206 (syms_of_fns): Defsubr it.
7207
2c69ced2
GM
72082000-06-26 Gerd Moellmann <gerd@gnu.org>
7209
178c5d9c 7210 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
7211 display info for XIM.
7212 (xim_open_dpy): Likewise.
7213 (xim_close_dpy): Don't free the display info's XIM.
7214
7215 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
7216
7217 * config.in (USE_XIM): New define.
7218
3fc720e4
GM
7219 * keymap.c (get_keyelt): For menu-items containing a `:filter
7220 FILTER', apply FILTER to the menu-item's definition to get the
7221 real definition to use.
7222
7223 * lisp.h (QCfilter): External declaration.
7224
2c69ced2
GM
7225 * xfns.c (Fimage_size): New function.
7226 (syms_of_xfns): Defsubr it.
7227
f978b2a2
AS
72282000-06-26 Andreas Schwab <schwab@suse.de>
7229
7230 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
7231 Fstring_as_unibyte.
7232
94cc7892
DL
72332000-06-25 Dave Love <fx@gnu.org>
7234
7235 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
7236 tgetnum.
7237
7238 * Makefile.in (blockinput.h): Depend on atimer.h.
7239 (atimer.h): Depend on systime.h.
7240
7241 * blockinput.h: Protect against multiple inclusion. Include
7242 atimer.h.
7243
7244 * atimer.h: Protect against multiple inclusion. Include
7245 systime.h.
7246
7247 * lisp.h (swap_in_global_binding): Declare.
7248
b8c24556
KR
72492000-06-24 Ken Raeburn <raeburn@gnu.org>
7250
7251 * process.c (Fopen_network_stream): Turn off atimers for duration
7252 of call to connect. (Patch from Gerd.)
7253
8cf8560b
DL
72542000-06-23 Dave Love <fx@gnu.org>
7255
511c7541
DL
7256 * ralloc.c: Maybe include unistd.h
7257
8cf8560b
DL
7258 * emacs.c (setgrp): Undefine before defining.
7259 (malloc_warning, set_time_zone_rule, index): Prototype.
7260
7261 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
7262 HAVE_STRUCT_TIMEZONE.
7263
7264 * s/osf1.h: Move string.h hack here from alpha.h and make it
7265 conditional.
7266 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
7267 _XOPEN_SOURCE.
7268 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
7269 (SOCKLEN_TYPE): Don't define.
7270
7271 * m/alpha.h: Remove string.h hack.
7272
7273 * s/osf5-0.h: New file.
7274
7275 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
7276 include time.h, done by systime.h.
7277 [__FreeBSD__]: Remove redundant includes.
7278
3fc720e4 7279 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
7280 (delete_temp_file): Return Qnil to avoid warning.
7281
7282 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
7283
7284 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
7285 HAVE_X_WINDOWS.
7286
7287 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
7288
7289 * composite.h (compose_text): Declare.
7290
7291 * xterm.c: Don't include sys/types.h unconditionally. Don't
7292 protect its inclusion with !USG (following xmenu.c).
7293
ea055732
GM
72942000-06-23 Gerd Moellmann <gerd@gnu.org>
7295
7296 * xfns.c (x_create_tip_frame): Initialize frame's colors like
7297 in x_create_frame.
7298
74b01b80
EZ
72992000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
7300
7301 * coding.c (decode_eol_post_ccl): Special handling for undecided
7302 and inconsistent EOL types.
7303
64f3a166
GM
73042000-06-22 Gerd Moellmann <gerd@gnu.org>
7305
16cf31f7
GM
7306 * xrdb.c (x_load_resources): Add default resource for scroll bar's
7307 trough color and main window's background color.
7308
178c5d9c 7309 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
7310 differently.
7311
7312 * xterm.h (Xt_app_con): External declaration.
7313
7314 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 7315
486a103d
GM
7316 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
7317
64f3a166
GM
7318 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
7319 (handle_invisible_prop): Record the start of invisible text in
7320 it->add_overlay_start.
7321 (struct overlay_entry): Add member `overlay'.
7322 (handle_overlay_change): Simplify.
7323 (next_overlay_string): After having processed overlay strings at the
7324 end of the buffer, record that fact in
7325 it->overlay_strings_at_end_processed_p.
7326 (compare_overlay_entries): If before- and after-strings come
7327 from the same overlay, let before-strings come first.
7328 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
7329 (load_overlay_strings): Take it->add_overlay_start into account
7330 when adding overlay strings.
7331
7332 * dispextern.h (struct it): Add member add_overlay_start.
7333
bb746ea6
DL
73342000-06-22 Dave Love <fx@gnu.org>
7335
7336 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
7337
7338 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
7339
a8f573f3
KH
73402000-06-22 Kenichi Handa <handa@etl.go.jp>
7341
7342 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
7343 is greater than 0.
7344
9f2bbc92
DL
73452000-06-21 Dave Love <fx@gnu.org>
7346
178c5d9c 7347 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 7348
3ee5041c
SM
73492000-06-21 Stefan Monnier <monnier@cs.yale.edu>
7350
7351 * syntax.c (back_comment): Simplify string-parity counting (with
7352 the added benefit of handling multiple string-styles as long as
7353 they are not intertwined).
7354 Jump to the slow code as soon as a comment starter is found in
7355 a "string_lossage" position. Fixes the case: " /* " /* " */.
7356
4c343001
DL
73572000-06-21 Dave Love <fx@gnu.org>
7358
7359 * Makefile.in: Use GETLOADAVG_LIBS.
7360
7361 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
7362 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
7363
e6365855
SM
73642000-06-20 Stefan Monnier <monnier@cs.yale.edu>
7365
7366 * syntax.c (describe_syntax): Recognize the `n'estable bit.
7367 (Fforward_comment, scan_lists):
7368 Check the comstyle of single-char comment-starters.
7369 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
7370 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
7371 Check the comstyle of single-char comment-starters.
7372 Clarify control-flow around the Scomment case.
e6365855 7373
5700d2cc
DL
73742000-06-20 Dave Love <fx@gnu.org>
7375
d355bd8a
SM
7376 * fns.c (make_hash_table, maybe_resize_hash_table):
7377 Cast arg of next_almost_prime.
5700d2cc 7378
178c5d9c 7379 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
7380
7381 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
7382 and unistd.h.
7383
4a27bdfb
GM
73842000-06-20 Gerd Moellmann <gerd@gnu.org>
7385
a61d762c
GM
7386 * keyboard.c (adjust_point_for_property): Check if display
7387 property should be treated as intangible by looking at its
7388 value.
7389
178c5d9c 7390 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
7391 (display_prop_intangible_p): New functions.
7392
7393 * dispextern.h (display_prop_intangible_p): Add prototype.
7394
7395 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 7396
4a27bdfb
GM
7397 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
7398 argument to sigprocmask.
7399
7400 * s/sco5.h (sigblock): Redefined to pass a pointer as second
7401 argument to sigprocmask.
7402
7403 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
7404 sigprocmask_set, and pass a pointer to it to sigprocmask.
7405
7406 * sysdep.c (sigprocmask_set): New variable.
7407
7408 * fileio.c (make_temp_name): Don't use `%s' in string passed to
7409 report_file_error.
7410
427ec082
SS
74112000-06-20 Sam Steingold <sds@gnu.org>
7412
7413 * xrdb.c: Don't declare xmalloc, xrealloc.
7414
8972fe79 74152000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
7416
7417 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
7418 (re_comp): Cast gettext return value to avoid complaints when
7419 !HAVE_LIBINTL.
7420
074b6efe
DL
74212000-06-20 Dave Love <fx@gnu.org>
7422
f85c008a
DL
7423 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
7424 HAVE_GETTIMEOFDAY.
7425
5700d2cc 7426 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 7427
d355bd8a 7428 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
7429
7430 * m/alpha.h: Don't declare xmalloc, xrealloc.
7431
0af4f205
DL
7432 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
7433
7434 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
7435
7436 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
7437
7438 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
7439 HAVE_GETWD.
7440
074b6efe
DL
7441 * keyboard.h (poll_for_input_1): Declare.
7442
7443 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
7444
7445 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
7446
7447 * doprnt.c: Don't declare xmalloc, xrealloc.
7448
7449 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
7450 (getenv, ctime, getwd): Removed.
7451 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
7452
7453 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
7454 x_set_tool_bar_lines.
7455
7456 * config.in: Add HAVE_GETWD. Move some definitions above
7457 machine/system includes.
7458
68a5e97b
KH
74592000-06-20 Kenichi Handa <handa@etl.go.jp>
7460
95417e1e
KH
7461 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
7462
68a5e97b
KH
7463 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
7464 contain information about ENCODING.
7465
7466 * fontset.c (FONTSET_ASCII): Use the first element of char table
7467 for an ASCII font, not defalt slot.
7468 (fontset_ref_via_base): If FONTSET doesn't contain information for
7469 C, try the default fontset.
7470 (make_fontset): Don't copy the default fontset.
7471 (fontset_font_pattern): Likewise.
7472 (accumulate_font_info): If ELT is nil, use the corresponding
7473 element in the default fontset.
7474
3b4fa1b2
DL
74752000-06-19 Dave Love <fx@gnu.org>
7476
943e731c
DL
7477 * syntax.c (Fparse_partial_sexp): Doc fix.
7478
7479 * regex.h: Test PROTOTYPES as well as __STDC__.
7480
3b4fa1b2
DL
7481 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
7482 errno, strerror. Put text after #endif in comment.
7483
7484 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
7485 pcc).
7486
7487 * xterm.c (x_frame_of_widget): Likewise.
7488
cdf0357b
GM
74892000-06-19 Gerd Moellmann <gerd@gnu.org>
7490
7491 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
7492 to Vfundamental_mode_abbrev_table.
7493
7494 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
7495 bogus objects are marked. This slows down GC by ~80 percent, but
7496 it might be worth trying when debugging GC-related problems.
7497 This feature requires conservative stack marking to be enabled.
7498
7499 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
7500 returns XLookupChars, reset `modifiers' to zero.
7501
998e9f8c
DL
75022000-06-19 Dave Love <fx@gnu.org>
7503
7504 * mktime.c: Unprotoized.
7505
18e21ce8 75062000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
7507
7508 * data.c (set_internal): If variable is frame-local,
7509 store the new value immediately into the frame parameter alist.
7510
140c4ac6
KR
75112000-06-19 Ken Raeburn <raeburn@gnu.org>
7512
14358466
KR
7513 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
7514 in the custom handler pointer.
7515
140c4ac6
KR
7516 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
7517 value, or checks for CHAR_META can fail when Lisp_Object is a
7518 union type.
7519 * keymap.c (get_keyelt): Likewise.
7520
10d7bf84
KH
75212000-06-19 Kenichi Handa <handa@etl.go.jp>
7522
7523 * ccl.h (struct ccl_program): New member eol_type.
7524 (struct ccl_spec): New member cr_carryover.
7525
7526 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
7527 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
7528
7529 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
7530 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
7531 (decode_eol_post_ccl): New function.
7532 (decode_coding): Don't detect EOL format here for CCL based coding
7533 systems.
7534 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
7535 decode_eol_post_ccl after running the CCL program.
7536 (code_convert_region): Don't detect EOL format here for CCL based
7537 coding systems.
7538 (decode_coding_string): Likewise.
7539
52e386c2
KR
75402000-06-18 Ken Raeburn <raeburn@gnu.org>
7541
7542 * charset.c (update_charset_table): Use XINT on "iso_final_char"
7543 when treating it as an integer.
7544
7545 * coding.h (encode_coding_string): Declare.
7546
7547 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
7548 it as an integer.
7549
7550 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
7551 "xkeymap" to avoid shadowing the "enum map_type" value that needs
7552 to be passed to get_local_map.
7553
7554 * sound.c (Fplay_sound): Don't call make_number on
7555 Frun_hook_with_args count argument.
7556
7557 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
7558 for lisp objects in X event structure data field, when lisp
7559 objects are represented with unions.
7560 (x_scroll_bar_to_input_event): Ditto.
7561
b357b9d4
KR
75622000-06-16 Ken Raeburn <raeburn@gnu.org>
7563
7564 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
7565 termination of string. Fix sense of test whether
7566 Vline_number_display_limit is an integer.
b357b9d4 7567
a871441d
GM
75682000-06-16 Gerd Moellmann <gerd@gnu.org>
7569
a9021acd
GM
7570 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
7571 only if HAVE_X_WINDOWS.
7572
6344985d
GM
7573 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
7574 of titles.
7575
427ec082 7576 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
7577 out of bounds.
7578
228b083e
EZ
75792000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
7580
7581 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
7582 of its headers.
7583
c25b53a2
KH
75842000-06-15 Kenichi Handa <handa@etl.go.jp>
7585
7586 * coding.c (decode_coding_emacs_mule): Always set src_base at the
7587 start of the while loop.
7588
a6981b11
GM
75892000-06-15 Gerd Moellmann <gerd@gnu.org>
7590
e9924e52
GM
7591 * atimer.c (alarm_signal_handler): Add forward declaration.
7592
a6981b11
GM
7593 * data.c (set_internal): Remove debug code.
7594
25fa6deb
GM
75952000-06-14 Gerd Moellmann <gerd@gnu.org>
7596
dce6b995
GM
7597 * Makefile.in (bootstrap-temacs): Add `-I../src'.
7598
9f817ea4
GM
7599 * unexec.c (toplevel) [COFF]: Include coff.h.
7600
7601 * s/lynxos.h: New file.
7602
7603 * keymap.c (Fsingle_key_description): Enclose function key and
7604 event symbol names in angle brackets.
7605
8a4e3c0c
GM
7606 * xdisp.c (setup_echo_area_for_printing): Call
7607 message_log_maybe_newline if message_buf_print is not set.
7608
7609 * print.c (printchar, strout): Don't check message_buf_print
427ec082 7610 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
7611 function does something useful even when message_buf_print is
7612 already set.
7613
25fa6deb
GM
7614 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
7615 variables.
7616 (ensure_echo_area_buffers): Initialize echo buffer's
7617 truncate lines setting to nil.
7618 (with_echo_area_buffer): Don't set the echo buffer's truncate
7619 lines setting here.
8a4e3c0c 7620 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
7621 of message_truncate_lines.
7622 (resize_mini_window): Handle case that lines are truncated.
7623 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
7624 message-truncate-lines.
7625
7626 * keyboard.c (read_char): Bind message-truncate-lines to t
7627 while displaying a help-echo.
7628
7629 * lisp.h (Qmessage_truncate_lines): External declaration.
7630
163dcff3
GM
76312000-06-13 Gerd Moellmann <gerd@gnu.org>
7632
1681ead6
GM
7633 * xdisp.c (Vline_number_display_limit): Renamed from
7634 line_number_display_limit.
7635 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
7636 Extend documentation string. Initialize
7637 Vline_number_display_limit to nil meaning no limit.
7638 (decode_mode_spec): Use Vline_number_display_limit with its new
7639 meaning.
7640
163dcff3
GM
7641 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
7642
18e21ce8 76432000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
7644
7645 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 7646
163dcff3
GM
7647 * xfns.c (x_set_frame_parameters): Comment fix.
7648
7649 * frame.c (store_frame_param): Call swap_in_global_binding if the
7650 variable's current binding was chosen based on this frame.
7651
7652 * data.c (swap_in_global_binding): New function.
7653
a704139d
EZ
76542000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
7655
7656 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
7657 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
7658
9b6610db
EZ
76592000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
7660
7661 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
7662
c68833d2
JR
76632000-06-12 Jason Rumney <jasonr@gnu.org>
7664
7665 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
7666
7667 * w32.h (EMACS_W32_H): Renamed from _NT_H_
7668
7669 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
7670
7671 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
7672
ed1056b3
GM
76732000-06-12 Gerd Moellmann <gerd@gnu.org>
7674
7675 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
7676 (syms_of_xfaces): Defsubr Sdump_colors.
7677 (x_free_colors): Don't treat b&w specially on default visual.
7678 (x_free_dpy_colors): New function.
7679 (free_face_colors): Don't check visual class; it's done
7680 in x_free_colors.
7681
7682 * xterm.c (x_frame_of_widget): New function.
7683 (x_alloc_nearest_color_for_widget): Use it.
7684 (x_copy_dpy_color): New function.
7685 (x_destroy_window): Free various colors.
7686
5050a2ef
KH
76872000-06-12 Kenichi Handa <handa@etl.go.jp>
7688
7689 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
7690
7691 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
7692
7693 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
7694
7695 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
7696
7697 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
7698
fb1b041d
DL
76992000-06-11 Dave Love <fx@gnu.org>
7700
7701 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
7702
ff96b5f4
EZ
77032000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
7704
7705 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
7706
db8eeecd
GM
77072000-06-11 Gerd Moellmann <gerd@gnu.org>
7708
ed1056b3 7709 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
7710 to `XEvent *'.
7711
49b71c5f
KH
77122000-06-10 Kenichi Handa <handa@etl.go.jp>
7713
c479bd55
KH
7714 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
7715 (regex_compile): Fix the code for handling the case of single byte
7716 char and multibyte char being mixed in a range within [...].
7717
ff6a65c2
KH
7718 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
7719 and dst_multibyte members of coding.
7720
49b71c5f
KH
7721 * charset.c (update_charset_table): Update the table
7722 bytes_by_char_head.
7723 (init_charset_once): Initialize elements of bytes_by_char_head to
7724 1 except for leading codes for private charases.
7725
7726 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
7727 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
7728 sequence.
7729
9e80b57d
KR
77302000-06-09 Ken Raeburn <raeburn@gnu.org>
7731
7732 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
7733 access the data it doesn't point to.
7734
f83fe4b4
GM
77352000-06-08 Gerd Moellmann <gerd@gnu.org>
7736
7737 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 7738 will be translated to a switch-frame event when reading the
f83fe4b4
GM
7739 event queue. This is necessary because Emacs otherwise won't
7740 perform a switch-frame to a new frame until some other event, for
7741 example a keystroke event, forces it to do so. This has various
7742 effects, one visible being that the cursor of a frame created with
7743 C-x 5 2 or switched to with a window manager key binding like
7744 A-TAB stays hollow because selected_window isn't on the newly
7745 focused frame until the switch-frame is performed.
7746
7747 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
7748 generating a switch-frame event if necessary.
7749
7750 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
7751
7752 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
7753 it's an integer.
7754
0890801b
KH
77552000-06-08 Kenichi Handa <handa@etl.go.jp>
7756
7757 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
7758 charset.
7759
173cbca8
GM
77602000-06-07 Gerd Moellmann <gerd@gnu.org>
7761
3091c2a6
GM
7762 * window.c (displayed_window_lines): Take empty lines at
7763 the bottom of a window into account.
427ec082 7764
f38952fe
GM
7765 * window.c (displayed_window_lines): New function.
7766 (Fmove_to_window_line): Use displayed_window_lines to determine
7767 the number of lines to move, instead of using the window's height.
7768
7769 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
7770 to stop reading, even if the form read sets point to a different
7771 value when evaluated.
7772
427ec082 7773 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
7774 put the cursor.
7775
6ba6c818
KH
77762000-06-07 Kenichi Handa <handa@etl.go.jp>
7777
7778 * fileio.c (e_write): Free composition data if stored in
7779 coding->cmp_data.
7780
5f1aea9a
GM
77812000-06-06 Gerd Moellmann <gerd@gnu.org>
7782
666852af
GM
7783 * xdisp.c (display_line): Set row's and iterator's
7784 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
7785 Set cursor even if row ends in the middle of a character.
7786 (dump_glyph_row): Print values of new flags.
7787 (redisplay_window) <cursor movement in unchanged window>: When
7788 point has been moved forward, and PT is at the end of the cursor
7789 row, don't place the cursor in the next row if the cursor row ends
7790 in the middle of a character or at ZV.
7791
7792 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
7793 (struct glyph_row): Add starts_in_middle_of_char_p and
7794 ends_in_middle_of_char_p.
7795 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
7796 ends_in_middle_of_char_p flag.
7797 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
7798
d13f3e2e
GM
7799 * term.c (append_glyph): Revert change of 2000-06-06.
7800
7801 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
7802 padding glyph not fitting on line as whole character not
7803 fitting on line.
7804
5f1aea9a
GM
7805 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
7806 this isn't true for images with `:ascent 100'.
7807
10cda9b0
KH
78082000-06-06 Kenichi Handa <handa@etl.go.jp>
7809
ed00559d
KH
7810 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
7811 as modified if it is originally unmodified.
7812
10cda9b0
KH
7813 * term.c (encode_terminal_code): Change the way to check if
7814 terminal coding does any conversion.
7815 (append_glyph): Set glyph->pixel_width correctly.
7816
7817 * xdisp.c (display_line): While checking line continuation, pay
7818 attention to a padding glyph.
7819
1969fae2
GM
78202000-06-05 Gerd Moellmann <gerd@gnu.org>
7821
7822 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
7823
162ccef4
DL
78242000-06-05 Dave Love <fx@gnu.org>
7825
f19f32dd
DL
7826 * xdisp.c: Include fontset.h.
7827
7828 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
7829
7830 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
7831
7832 * dispnew.c: Conditionally include term.h.
7833
7834 * coding.h: Declare code_convert_string_norecord.
7835
7836 * frame.h (struct frame): Use volatile unconditionally.
7837
7838 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
7839
7840 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
7841
7842 * systime.h: Protect against multiple inclusion.
7843 (timezone) [USG5_4]: Define as time_t.
7844
7845 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
7846 (Foptimize_char_table, make_temp_name): Declare.
7847
7848 * Makefile.in (xdisp.o): Depend on fontset.h.
7849
7850 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
7851
7852 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
7853 (Foptimize_char_table, make_temp_name): Declare.
7854
427ec082 7855 * s/irix4-0.h:
162ccef4
DL
7856 * s/irix5-0.h:
7857 * s/netbsd.h: Don't define autoconfiscated MATHERR.
7858
2082fe81
DL
78592000-06-02 Dave Love <fx@gnu.org>
7860
7861 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
7862
dcf671d2
GM
78632000-06-02 Gerd Moellmann <gerd@gnu.org>
7864
7865 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 7866 result face, set flags in that face indicating that colors may not
dcf671d2
GM
7867 be freed.
7868
7869 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
7870 glyph, use the ASCII NUL character to determine the face.
7871
d42122a3
DL
78722000-06-02 Dave Love <fx@gnu.org>
7873
7874 * sysdep.c: Conditionally include stdlib.h, unistd.h.
7875 (VFORK_RETURN_TYPE): Remove.
427ec082 7876
d42122a3
DL
7877 * config.in: Add NO_MATHERR.
7878
dd432f16
DL
78792000-06-01 Dave Love <fx@gnu.org>
7880
90aa4ea8
DL
7881 * cmds.c (internal_self_insert): Don't check
7882 Vbefore_change_function, Vafter_change_function.
7883
7884 * insdel.c (signal_before_change, signal_after_change): Likewise.
7885
7886 * buffer.c (Vbefore_change_function, Vafter_change_function):
7887 Variables and their initializations deleted.
7888
2330c9d4
DL
7889 * callint.c (Fcall_interactively): Doc fix.
7890
dd432f16
DL
7891 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
7892
bf9e8804
DL
78932000-05-31 Dave Love <fx@gnu.org>
7894
7895 * textprop.c: Revert last change -- duplicated.
7896
3694b4ab
GM
78972000-05-31 Gerd Moellmann <gerd@gnu.org>
7898
7899 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
7900 in #if 0.
7901
7902 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
7903
f14156cd
JR
79042000-05-31 Jason Rumney <jasonr@gnu.org>
7905
8119aab8
JR
7906 * search.c (Fre_search_forward, Fre_search_backward)
7907 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
7908
f14156cd
JR
7909 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
7910
4aab9be3
JR
79112000-05-30 Jason Rumney <jasonr@gnu.org>
7912
7913 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
7914 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
7915
7916 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
7917 member.
7918
7919 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
7920 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
7921 expand a nil default_filename.
7922
7923 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
7924 pointer to glyph_to_pixel_coords, not a frame.
7925
7926 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
7927 coding.h to dependencies.
7928
7929 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
7930
7931 * w32console.c (glyph_to_pixel_coords): Change first parameter to
7932 window pointer to be consistent with w32term.c and xterm.c.
7933
7934 * w32fns.c: Format and doc changes to bring closer to xfns.c.
7935 (VIETNAMESE_CHARSET): Define if not defined in system headers.
7936 (Qline_spacing, Qcenter): New variables.
7937 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
7938 (x_set_line_spacing): New function.
7939 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
7940 macros.
7941 (x_specified_cursor_type): New function.
7942 (x_set_cursor_type): Use it.
7943 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
7944 and icon strings.
7945 (validate_x_resource_name, x_get_resource_string): Measure lengths
7946 of external strings in bytes.
7947 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
7948 GetTextExtentPoint32 with NULL title.
7949 (Fx_create_frame): Initialize Qline_spacing.
7950 (w32_load_system_font): Initialize font->double_byte_p.
7951 (x_to_w32_charset): Use Vw32_charset_info_alist.
7952 (Image, busy cursor, tooltip functions): Merged changes from
7953 xfns.c. Not yet functional on Windows.
7954
7955 * w32gui.h (W32FontStruct): Add double_byte_p member.
7956
7957 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
7958 (emacs_button_translation): Use it.
7959 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
7960 in `mask' to be set.
7961
7962 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
7963 menu strings.
7964
7965 * w32term.c: Format and doc changes to bring closer to xterm.c.
7966 (w32_char_font_type): New enum.
7967 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
7968 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
7969 (w32_encode_char): New function.
7970 (x_encode_char): Removed.
7971 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
7972 x_encode_char and w32_font_is_double_byte.
7973 (x_produce_image_glyph): Use image_ascent.
7974 (x_produce_glyphs): Use new version of w32_per_char_metric and
7975 handle NULL return value. Allow extra line spacing.
7976 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
7977 (w32_get_glyph_overhangs): Remove unicode_p param. Use
7978 w32_font_type member of glyph instead.
7979 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
7980 (fast_find_position): Make sure not to consider rows not visible
7981 in the window.
7982 (w32_read_socket) [WM_MENUSELECT]: Cannot call
7983 w32_menu_display_help with input blocked, as it can abort.
7984 (x_display_and_set_cursor): Choose cursor depending
7985 on buffer-local value of cursor_type.
7986 (x_draw_bar_cursor): Add parameter WIDTH.
7987
7988 * w32term.h (CP_DEFAULT): Define.
7989 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
7990
10fc3187
GM
79912000-05-30 Gerd Moellmann <gerd@gnu.org>
7992
7993 * search.c (Fre_search_forward, Fre_search_backward)
7994 (Fposix_search_backward, Fposix_search_forward): Doc fix.
7995
d0555360
KH
79962000-05-30 Kenichi Handa <handa@etl.go.jp>
7997
7998 * coding.c (detect_coding_iso2022): Fix code for checking
7999 CODING_CATEGORY_MASK_ISO_8_2.
8000
f1ad044f
SM
80012000-05-29 Stefan Monnier <monnier@cs.yale.edu>
8002
8003 * regex.c (PREFETCH_NOLIMIT): New function.
8004 (re_match_2_internal): Use it and adjust the end_match_2 logic.
8005
84ec3b4b
GM
80062000-05-29 Gerd Moellmann <gerd@gnu.org>
8007
66254a13
GM
8008 * syntax.c (find_defun_start): Move test for
8009 open_paren_in_column_0_is_defun_start outside of the loop.
8010
49e70dec
GM
8011 * xdisp.c (redisplay_window): Really switch buffers when
8012 displaying mode lines, and temporarily set selected_frame to the
8013 frame of the window that's redisplayed.
8014
84ec3b4b
GM
8015 * xfaces.c (free_realized_faces): Block/unblock input.
8016 (free_realized_multibyte_face): Ditto.
8017
869a3a14
DL
80182000-05-29 Dave Love <fx@gnu.org>
8019
8020 * textprop.c (Qkeymap): New variable.
8021 (syms_of_textprop): Intern it.
8022
8023 * keymap.c: Include intervals.h.
8024 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
8025
8026 * Makefile.in (keymap.o): Depend on intervals.h.
8027
8028 * keyboard.c (menu_bar_items, tool_bar_items)
8029 (Fexecute_extended_command): Deal with `keymap' property.
8030 (read_key_sequence): Track map from `keymap' property as well as
8031 `local_map'.
8032
8033 * intervals.c (get_local_map): Extra arg to allow looking for
8034 `keymap' too.
8035
8036 * intervals.h (map_property): New enum.
8037 (get_local_map): Extra arg using it.
8038 (Qkeymap): Declare.
8039
84ec3b4b 8040 * lisp.h (get_local_map): Don't declare here.
869a3a14 8041
89d0c844
KH
80422000-05-29 Kenichi Handa <handa@etl.go.jp>
8043
8044 * Makefile.in (callproc.o): Depend on composite.h.
8045
8046 * callproc.c: Include composite.h.
8047 (Fcall_process): Handle composition correctly.
8048
8049 * coding.h (coding_allocate_composition_data): Extern it.
8050 (coding_restore_composition): Likewise.
8051
8052 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
8053 yet allocated, finish decoding with result
8054 CODING_FINISH_INSUFFICIENT_CMP.
8055 (coding_allocate_composition_data): Make it non-static.
8056 (coding_restore_composition): Likewise.
8057
797a084a
EZ
80582000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
8059
8060 * charset.c (syms_of_charset): Revert last change.
8061
cf872af5
EZ
80622000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
8063
8064 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
8065 charsets as unibyte, with 1-column screen width. Sent by Kenichi
8066 Handa.
cf872af5 8067
5b1ae051
EZ
80682000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
8069
8070 * charset.c (syms_of_charset): Set width of character sets
8071 eight-bit-control and eight-bit-graphic to 1 column.
8072
34ec9ebe
GM
80732000-05-26 Gerd Moellmann <gerd@gnu.org>
8074
8075 * config.in (HAVE_SPEED_T): New define.
8076
8077 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
8078 `extern speed_t'.
8079
dd854dc2
DL
80802000-05-26 Dave Love <fx@gnu.org>
8081
8082 * coding.c (shrink_decoding_region): Initialize eol_conversion.
8083
8084 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
8085 (Fsubr_arity): New function.
8086 (syms_of_data): Install them.
8087
ba9f8f95
KH
80882000-05-26 Kenichi Handa <handa@etl.go.jp>
8089
0f3e0672
KH
8090 * charset.c (init_charset_once): Set the table bytes_by_char_head
8091 correctly.
8092
cebefb44
KH
8093 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
8094 the default fontset to what Emacs uses by default.
0f3e0672
KH
8095 (check_registry_encoding): This function deleted.
8096 (Fset_fontset_font): Remove the adhoc condition for the default
8097 fontset. Allow cons in FONTNAME.
cebefb44 8098
0f3e0672
KH
8099 * fns.c (map_char_table): Ignore char-table entries for
8100 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 8101
7a18af49
KR
81022000-05-25 Ken Raeburn <raeburn@gnu.org>
8103
8104 * emacs.c (main): Initialize keyboard syms before initializing
8105 window code, so face names are available.
8106
d2af47df
SM
81072000-05-25 Stefan Monnier <monnier@cs.yale.edu>
8108
8109 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
8110 of an anchor at the beginning of a shy-group.
8111
fc6a6a4e
GM
81122000-05-25 Gerd Moellmann <gerd@gnu.org>
8113
8114 * xdisp.c (handle_invisible_prop): Don't try to skip over
8115 invisible text if end of text is already reached.
8116
005f0d35
DL
81172000-05-25 Dave Love <fx@gnu.org>
8118
02513cdd
DL
8119 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
8120
005f0d35
DL
8121 * coding.c (encode_eol): Add null statement after label.
8122
89f6ca4e
EZ
81232000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
8124
8125 * w16select.c (Fw16_set_clipboard_data): Fix the change from
8126 2000-05-20.
8127
a4e1759e
KH
81282000-05-25 Kenichi Handa <handa@etl.go.jp>
8129
8130 * ccl.c (ccl_driver): Fix previous change.
8131
eacfd7fe
KH
81322000-05-25 Kenichi Handa <handa@etl.go.jp>
8133
46ab33a9
KH
8134 * coding.c (run_pre_post_conversion_on_str): Set point to the
8135 beginning of buffer before calling coding->post_read_conversion.
8136 (decode_coding_string): Give correct args to
8137 run_pre_post_conversion_on_str.
8138 (encode_coding_string): Likewise.
8139
eacfd7fe
KH
8140 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
8141 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
8142 eight-bit-graphic correctly.
8143
f8569325
DL
81442000-05-24 Kenichi HANDA <handa@etl.go.jp>
8145
8146 * fileio.c (Finsert_file_contents): Even if a file is not found,
8147 execute codes for setting up coding system. Call
8148 after-insert-file-functions unconditionally.
8149
04545643
GM
81502000-05-24 Gerd Moellmann <gerd@gnu.org>
8151
8152 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
8153 BSD_PGRPS are not defined.
8154
747d90ea
KH
81552000-05-24 Kenichi Handa <handa@etl.go.jp>
8156
8157 * charset.c (update_charset_table): Accept nil in LONG_NAME and
8158 DESCRIPTION.
8159 (syms_of_charset): Avoid building same strings.
8160
716e3b88
GM
81612000-05-23 Gerd Moellmann <gerd@gnu.org>
8162
8163 * lread.c (Fload): Add a comment about the meaning of
8164 Vuser_init_file being t.
8165
8166 * puresize.h (BASE_PURESIZE): Increase to 675000.
8167
8168 * s/gnu-linux.h (setpgrp): Don't define it here because this
8169 prevents compilation on GNU/Linux systems with glib 2.2.
8170
8171 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
8172 as setpgid.
427ec082 8173
9aeb39fa
EZ
81742000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
8175
8176 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
8177 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
8178 version.
8179 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
8180
29ced61b
KH
81812000-05-23 Kenichi Handa <handa@etl.go.jp>
8182
0574a2ed
KH
8183 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
8184 unconditionally.
8185
3d80f24d
KH
8186 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
8187
8188 * term.c (encode_terminal_code): Set coding->src_multibyte
8189 properly.
8190
29ced61b
KH
8191 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
8192
d7e00792
KH
81932000-05-22 Kenichi Handa <handa@etl.go.jp>
8194
c9d80d38
KH
8195 * keyboard.c (read_char): Allow character codes 128..255 to be
8196 handled by input-method-function.
8197
d7e00792
KH
8198 * insdel.c (adjust_markers_for_replace): Fix previous change.
8199 (adjust_after_replace): If PREV_TEXT is nil, call
8200 adjust_markers_for_insert, not adjust_markers_for_replace.
8201
087121cc 82022000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 8203
087121cc
GM
8204 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
8205 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
8206 [HAVE_GRANDPT]: Define.
8207 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
8208
8209 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
8210 like SYSV_PTYS.
8211
8212 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
8213
8214 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
8215
c9671f81
KH
82162000-05-20 Kenichi Handa <handa@etl.go.jp>
8217
8218 The following changes are to handle 8-bit characters in a
8219 multibyte buffer/string without facing with byte combining
8220 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
8221 eight-bit-graphic (for 0xA0..0xFF) are introduced.
8222
8223 * Makefile.in (fns.o): Depend on charset.h.
8224
8225 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
8226 convert it to unibyte.
8227 (make_string): Use parse_str_as_multibyte, not chars_in_text.
8228
8229 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
8230 apparent char boundary.
8231 (Fset_buffer_multibyte): Convert 8-bit characters in the range
8232 0x80..0x9F to/from multibyte form.
8233
8234 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
8235 to unibyte.
8236
8237 * callproc.c (Fcall_process): Always encode an argument string if
8238 it is multibyte. Setup src_multibyte and dst_multibyte members of
8239 process_coding properly.
ce75fd23 8240
c9671f81
KH
8241 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
8242 SPLIT_NON_ASCII_CHAR.
8243
8244 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
8245 as is.
8246 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
8247
8248 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
8249 variables.
8250 (SPLIT_CHARACTER_SEQ): This macro deleted.
8251 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
8252 valid.
8253 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
8254 and eight-bit-graphic.
8255 (char_to_string): Likewise. Signal an error for too large
8256 character code.
8257 (char_printable_p): Return 0 for 8-bit characters.
8258 (update_charset_table): Update iso_charset_table only when a final
8259 character is non-negative.
8260 (find_charset_in_text): Renamed from find_charset_in_str.
8261 Arguments and return value changed. Callers changed.
8262 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
8263 be -1 if CHARSET is used only internally.
8264 (Fmake_char_internal): Handle new charsets; eight-bit-control and
8265 eight-bit-graphic.
8266 (Fcharset_after): Simplified.
8267 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
8268 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
8269 (multibyte_chars_in_text): Simplified by assuming there's no
8270 invalid multibyte sequence.
8271 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
8272 str_as_unibyte): New functions.
8273 (Fstring): Simpified by assuming that byte combining never
8274 happens.
8275 (init_charset_once): Initialization for
8276 LEADING_CODE_8_BIT_CONTROL.
8277 (syms_of_charset): Intern and staticpro Qeight_bit_control and
8278 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
8279 eight-bit-control and eight-bit-graphic.
8280
8281 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
8282 CHARSET_8_BIT_GRAPHIC): New macros.
8283 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
8284 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
8285 (CHARSET_REVERSE_CHARSET): Likewise.
8286 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
8287 eight-bit-graphic.
8288 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
8289 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
8290 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
8291 encounter an invalid multibyte sequence.
8292 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
8293 sequence is always valid.
8294 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
8295 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
8296 macros.
8297 (CHAR_STRING): For 8-bit characters, call char_to_string.
8298 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
8299 multibyte sequence is always valid.
8300 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
8301 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
8302 str_as_unibyte): Extern them.
8303 (BCOPY_SHORT): Fix a bug.
8304 (CHAR_LEN): This macro deleted. Callers changed to use
8305 CHAR_BYTES.
8306 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
8307 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
8308 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
8309
bd4bde7f 8310 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
8311 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
8312 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
8313 EMIT_BYTES): New macros.
8314 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
8315 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
8316 macros deleted.
8317 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
8318 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
8319 check the validity of multibyte sequence.
8320 (decode_coding_emacs_mule): New function.
8321 (encode_coding_emacs_mule): New macro.
8322 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
8323 the source.
8324 (DECODE_ISO_CHARACTER): Just return a character code.
8325 (DECODE_COMPOSITION_START): Set coding->result instead of result.
8326 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
8327 EMIT_CHAR to produced decoded characters. Exit the loop only by
8328 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
8329 block here.
8330 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
8331 only position codes for an invalid character.
8332 (encode_designation_at_bol): Return new destination pointer. 5th
8333 arg DSTP is changed to DST.
8334 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
8335 from the source by ONE_MORE_CHAR. Don't handle the case of last
8336 block here.
8337 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
8338 macros deleted.
8339 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
8340 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
8341 TWO_MORE_BYTES to fetch a byte from the source.
8342 (encode_eol): Pay attention to coding->src_multibyte.
8343 (detect_coding, detect_eol): Preserve members src_multibyte and
8344 dst_multibyte.
8345 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
8346 (encoding_buffer_size): Set magnification to 3 for all coding
8347 systems that require encoding.
8348 (ccl_coding_driver): For decoding, be sure that the result is
8349 valid multibyte sequence.
8350 (decode_coding): Initialize coding->errors and coding->result.
8351 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
8352 and raw-text, always call decode_eol. Handle the case of last
8353 block here. If not coding->dst_multibyte, convert the resulting
8354 sequence to unibyte.
8355 (encode_coding): Initialize coding->errors and coding->result.
8356 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
8357 and raw-text, always call encode_eol. Handle the case of last
8358 block here.
8359 (shrink_decoding_region, shrink_encoding_region): Detect cases
8360 that we can't skip data more rigidly.
8361 (code_convert_region): Setup src_multibyte and dst_multibyte
8362 members of coding. For decoding, if the buffer is multibyte,
8363 convert the source sequence to unibyte in advance. For encoding,
8364 if the buffer is multibyte, convert the resulting sequence to
8365 multibyte afterward.
8366 (run_pre_post_conversion_on_str): New function.
8367 (code_convert_string): Deleted and divided into the following two.
8368 (decode_coding_string, encode_coding_string): New functions.
8369 (code_convert_string1, code_convert_string_norecord): Call one of
8370 above.
8371 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
8372 MAKE_NON_ASCII_CHAR.
8373 (Fset_terminal_coding_system_internal,
8374 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
8375 and dst_multibyte members.
8376 (init_coding_once): Initialize iso_code_class with new enum
8377 ISO_control_0 and ISO_control_1.
8378
8379 * coding.h (enum iso_code_class_type): Member ISO_control_code is
8380 devided into ISO_control_0 and ISO_control_1.
8381 (struct coding_system): New members src_multibyte, dst_multibyte,
8382 errors, and result. Delete member fake_multibyte.
8383 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
8384 nonzero.
8385 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
8386 nonzero.
8387
8388 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
8389 (Faset): Likewise.
8390
8391 * editfns.c (Fformat): Be sure to convert 8-bit characters to
8392 multibyte form.
8393 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
8394 combining occurs.
8395 (Ftranspose_region): Delete codes for handling byte combining.
8396
8397 * fileio.c (Finsert_file_contents): Setup src_multibyte and
8398 dst_multibyte members of coding. On handling REPLACE on unibyte
8399 buffer, convert the result of decode_coding to unibyte. On
8400 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 8401 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
8402 multibyteness of the source (buffer or string).
8403
8404 * fns.c (concat): Handle 8-bit characters correctly.
8405 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
8406 unibyte in the result.
8407 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
8408 valid multibyte form in the result.
8409 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
8410 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
8411 return -1, signal an error.
8412 (base64_encode_1): New arg MULTIBYTE. Get each character by
8413 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
8414 character is found, return -1.
8415 (Fbase64_decode_region): Delete codes for handling byte-combining.
8416 Treat each decoded byte as a unibyte character.
8417 (Fbase64_decode_string): Return unibyte string.
8418 (Fcompare_strings, concat, string_byte_to_char): Use
8419 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
8420 FETCH_STRING_CHAR_ADVANCE.
8421 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8422 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
8423
8424 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
8425 SPLIT_NON_ASCII_CHAR.
8426 (fontset_ref_via_base, fontset_set): Likewise
8427
8428 * insdel.c (adjust_markers_for_record_delete): Deleted.
8429 (adjust_markers_for_insert): Argument changed. Caller changed.
8430 (adjust_markers_for_replace): Likewise.
8431 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
8432 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
8433 (copy_text): Delete unused local varialbe c_save. For converting
8434 to multibyte, be sure to make all 8-bit characters in valid
8435 multibyte form.
8436 (count_size_as_multibyte): Handle 8-bit characters correctly.
8437 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
8438 adjust_after_replace, replace_range, del_range_2)
8439 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
8440 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
8441 adjust_after_replace, replace_range, del_range_2) Delete codes for
8442 handling byte combining.
8443 (adjust_before_replace): Deleted.
427ec082 8444
c9671f81
KH
8445 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
8446 SPLIT_NON_ASCII_CHAR.
8447 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
8448 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
8449 unconditionally.
8450 (Fkey_description): Likewise.
8451
8452 * lread.c (read1): On reading multibyte string, be sure to make
8453 all 8-bit chararacters in valid multibyte form.
8454 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8455
8456 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
8457 unconditionally.
8458
8459 * process.c (Fstart_process): GCPRO current_dir before calling
8460 Ffind_operation_coding_system. Encode arguments here.
8461 (create_process): Don't encode arguments here. Setup
8462 src_multibyte and dst_multibyte members of struct coding.
8463 (read_process_output): Setup src_multibyte and dst_multibyte
8464 members of struct coding. If the output is to multibyte buffer,
8465 always decode the output of the process. Adjust the
8466 representation of 8-bit characters to the multibyteness of the
8467 output.
8468 (send_process): Setup coding->src_multibyte according to the
8469 multibyteness of the source.
8470
8471 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
8472 unconditionally.
8473 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
8474 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
8475
8476 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
8477 CHAR_LEN.
8478
8479 * w16select.c (Fw16_set_clipboard_data): Setup members
8480 src_multibyte and dst_multibyte of coding. Adjusted for the
8481 change for find_charset_in_str.
8482 (Fw16_get_clipboard_data): Likewise.
8483
8484 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
8485 dst_multibyte of coding.
8486 (x_to_w32_font): Likewise.
8487
8488 * w32select.c (Fw32_set_clipboard_data): Setup members
8489 src_multibyte and dst_multibyte of coding. Adjusted for the
8490 change for find_charset_in_str.
8491 (Fw32_get_clipboard_data): Likewise.
8492
8493 * xdisp.c (get_next_display_element): Handle 8-bit characters
8494 correctly.
8495 (next_element_from_display_vector): Use CHAR_BYTES instead of
8496 CHAR_LEN.
8497 (disp_char_vector): Use SPLIT_CHAR instead of
8498 SPLIT_NON_ASCII_CHAR.
8499
8500 * xselect.c (selection_data_to_lisp_data): Setup members
8501 src_multibyte and dst_multibyte of coding. Adjusted for the
8502 change for find_charset_in_str.
8503 (lisp_data_to_selection_data): Likewise.
8504
5f64c9e0
GM
85052000-05-19 Gerd Moellmann <gerd@gnu.org>
8506
2b63d473
GM
8507 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
8508 buffer.
8509
5f64c9e0
GM
8510 * dispextern.h (Vimage_types): Add extern declaration.
8511
8512 * xdisp.c (Vimage_types): Moved here from xfns.c.
8513 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
8514
8515 * xfns.c (Vimages_types): Moved to xdisp.c.
8516 (syms_of_xfns): Move `image-types' to xdisp.c.
8517
8518 * w32fns.c (Vimage_types): Removed.
8519 (syms_of_w32fns): Remove `image-types'.
8520
813086ea
KH
85212000-05-18 Kenichi Handa <handa@etl.go.jp>
8522
8523 * fns.c (map_char_table): Pay attention to character number of
8524 charset. Check the validity of charset at the first level. For
8525 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
8526 the default value.
8527
8528 * fontset.c: Include "buffer.h".
8529 (fs_load_font): If the face has fontset, record the face ID in
8530 that fontset.
8531 (Finternal_char_font): New function.
8532 (accumulate_font_info): New function.
8533 (Ffontset_info): Rewritten for the new fontset implementation.
8534 (syms_of_fontset): Register Vdefault_fontset in the first element
8535 of Vfontset_table. Include Vdefault_fontset in
8536 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
8537 function.
8538
bdaebbf0
DL
85392000-05-16 Dave Love <fx@gnu.org>
8540
8541 * m/iris5d.h: Deleted -- unused.
8542
cb613bb8
GM
85432000-05-16 Gerd Moellmann <gerd@gnu.org>
8544
b15f3b77
GM
8545 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
8546 `invalid' instead of `illegal'.
8547
8548 * indent.c (Fmove_to_column): When ending within a tab, insert
8549 spaces first so that markers at the end of the tab get adjusted.
8550
835c1b36
GM
8551 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
8552 buffer list that wasn't selected in that frame.
8553
cb613bb8
GM
8554 * filelock.c (get_boot_time): To obtain an 8 char file name, which
8555 is needed on mescaline, use a 2 char prefix, and call
8556 make_temp_name with second arg non-zero.
8557
8558 * fileio.c (make_temp_name): New function, extracted from
8559 Fmake_temp_name.
8560 (Fmake_temp_name): Use it.
8561
f685bea9
EZ
85622000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
8563
8564 * window.c (coordinates_in_window): Subtract 1 when computing
8565 right_x.
8566
a1b8d58b
GM
85672000-05-15 Gerd Moellmann <gerd@gnu.org>
8568
8569 * Makefile.in (lisp): Add env.elc.
8570
8571 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
8572
a265079f
GM
85732000-05-12 Gerd Moellmann <gerd@gnu.org>
8574
8575 * search.c (Freplace_match): Handle case of `\N' in the
8576 replacement when there's no group N.
8577
da4496b6
GM
85782000-05-11 Gerd Moellmann <gerd@gnu.org>
8579
0ace421a
GM
8580 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
8581 of the message to message_dolog.
8582
1172eb8d
GM
8583 * keyboard.c (read_char): Don't clear current message for help
8584 events; let the code handling help events handle this. Change
8585 code detecting help events that should be ignored.
8586
da4496b6
GM
8587 * xdisp.c (handle_single_display_prop): Don't try to set PT if
8588 we're interating over a string.
8589
0623e40f
DL
85902000-05-09 Dave Love <fx@gnu.org>
8591
8592 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
8593 that offset before writing. Move gcpro region past call of
8594 Ffile_regular_p.
8595
bae2503b
DL
85962000-05-04 Dave Love <fx@gnu.org>
8597
8598 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
8599
ec82fb2f
GM
86002000-05-04 Gerd Moellmann <gerd@gnu.org>
8601
8602 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
8603 of inserted characters when BUF equals the current buffer, and PT
8604 is in front of or equal to FROM.
8605
cbf18892
GM
86062000-05-03 Gerd Moellmann <gerd@gnu.org>
8607
4ff40dd0
GM
8608 * xdisp.c (handle_single_display_prop): If display property value
8609 is invalid, or something not supported on the frame, restore
8610 iterator's position to what it was initially. Make sure to return
8611 0 for invalid and unsupported property values.
8612
cbf18892
GM
8613 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
8614 that x_per_char_metric returns null.
8615
1b0672c3
GM
86162000-05-02 Gerd Moellmann <gerd@gnu.org>
8617
576da55d
GM
8618 * xterm.h (struct face): Add forward declaration.
8619 (struct image): Ditto.
8620 (image_ascent): Add prototype.
8621
8622 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
8623 (x_draw_image_relief, x_draw_image_foreground_1): Call function
8624 image_ascent instead of using IMAGE_ASCENT.
8625
8626 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
8627 (IMAGE_ASCENT): Removed.
8628
8629 * xfns.c (Qcenter): New variable.
8630 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
8631 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
8632 (image_ascent): New function.
8633 (lookup_image): Recognize `:ascent center'.
8634 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
8635 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
8636 (xbm_load): Don't set image's ascent here.
8637 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
8638 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
8639 check ascent values here.
8640 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
8641 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
8642 (syms_of_xfns): Initialize Qcenter.
8643
1b0672c3
GM
8644 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
8645 to the limits, increase the limits.
8646
0d7811ed
KH
86472000-05-01 Kenichi Handa <handa@etl.go.jp>
8648
8649 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
8650 Check Vfont_encoding_alist against the full name of the opened
8651 font.
8652
a943a5ca
GM
86532000-04-28 Gerd Moellmann <gerd@gnu.org>
8654
8655 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
8656 taller than the window.
8657
5dba1e29
KH
86582000-04-28 Kenichi Handa <handa@etl.go.jp>
8659
8660 * xfaces.c (realize_x_face): Fix the argument of the second
8661 xassert. BASE_FACE may not be a face for ASCII.
8662
353964e3
GM
86632000-04-27 Gerd Moellmann <gerd@gnu.org>
8664
c76e04a8
GM
8665 * print.c (print_object): Treat print-length < 0 as nil.
8666
8667 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
8668
8669 * s/freebsd.h (TERMCAP_OBJ): Removed.
8670 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
8671
8672 * lread.c (read1): Don't treat period followed by certain
8673 characters as symbol start.
8674
8675 * xfns.c (slurp_file): New function.
8676 (xbm_image_p): Handle case of in-memory XBM files.
8677 (xbm_scan): Rewritten to work on memory buffers instead of files.
8678 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
8679 Work on memory buffers instead of files. If DATA is null test
8680 if buffer looks like an in-memory XBM file.
8681 (xbm_load_image): Renamed from xbm_load_image_file. Work on
8682 memory buffers instead of files.
8683 (xbm_file_p): New function.
8684 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
8685
353964e3
GM
8686 * lread.c (end_of_file_error): New function.
8687 (read1): Call it instead of signaling `end-of-file' directly.
8688
427ec082 8689 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
8690 with Fprinc instead of Fprin1.
8691
24d744ac
KR
86922000-04-26 Ken Raeburn <raeburn@gnu.org>
8693
8694 * window.c (freeze_window_start): Check that minibuffer scroll
8695 window isn't nil before extracting the window structure pointer
8696 from it.
8697
8698 * undo.c (record_delete): If we hit the end of the undo list, stop
8699 picking elements apart.
8700
7464346d
GM
87012000-04-26 Gerd Moellmann <gerd@gnu.org>
8702
8703 * xdisp.c (display_line): If lines are continued, restore
8704 iterator's ascent/descent information to the values before the
8705 first glyph not fitting on the line.
8706
612839b6
GM
87072000-04-25 Gerd Moellmann <gerd@gnu.org>
8708
8709 * xdisp.c (try_window_id) <all changes above window start>: Adjust
8710 positions in glyph matrix. Don't compute new window end
8711 positions.
8712
8713 * dispnew.c (increment_matrix_positions): Renamed from
8714 increment_glyph_matrix_buffer_positions.
8715 (increment_row_positions): Renamed from
8716 increment_glyph_row_buffer_positions.
8717
8718 * dispextern.h: Change names of renamed functions from dispnew.c
8719 in prototypes.
8720
cc181e95
GM
87212000-04-24 Gerd Moellmann <gerd@gnu.org>
8722
abfcc168
GM
8723 * fileio.c (Fdo_auto_save): Create directories for auto-save
8724 list file if necessary.
8725
cc181e95
GM
8726 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
8727 from buffer or frame.
8728 (automatic_hscrolling_p): New variable.
8729 (hscroll_windows): Scroll windows horizontally only if automatic
8730 hscrolling is allowed.
8731 (syms_of_xdisp): New variable `automatic-hscrolling'.
8732
8733 * frame.h (struct frame): Add member extra_line_spacing.
8734
8735 * xfns.c (x_set_line_spacing): New function.
8736 (Fx_create_frame): Set line spacing from resources.
8737 (Qline_spacing): New variable.
8738 (syms_of_xfns): Initialize Qline_spacing.
427ec082 8739
cc181e95
GM
8740 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
8741
8742 * buffer.c (init_buffer_once): Handle extra_line_spacing.
8743 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 8744 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
8745 extra_line_spacing from default value.
8746 (init_buffer_once): Initialize default value of extra_line_spacing.
8747
8748 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
8749 and extra3.
8750
8751 * xterm.c (x_produce_glyphs): Remove reference to struct it's
8752 prompt_width. Add extra line spacing.
8753
8754 * term.c (produce_glyphs): Remove reference to struct it's
8755 prompt_width.
8756
8757 * dispextern.h (struct it): Remove member prompt_width, add
8758 extra_line_spacing.
8759
58827478
GM
87602000-04-22 Gerd Moellmann <gerd@gnu.org>
8761
8762 * dispnew.c (update_frame_line): When writing a whole line, make
8763 sure cursor is in the right row afterwards, otherwise a use of
8764 capability `ch' in cmgoto might leave the cursor in the row below.
8765
25a87f42
GM
87662000-04-21 Gerd Moellmann <gerd@gnu.org>
8767
8768 * lisp.h (struct Lisp_Buffer_Cons): Remove.
8769
8770 * keyboard.c (timer_check): Fix typo in comment.
8771
54edf5c2
KH
87722000-04-21 Kenichi Handa <handa@etl.go.jp>
8773
8774 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
8775 name change: ch -> character.
8776
3a64eef5
GM
87772000-04-20 Gerd Moellmann <gerd@gnu.org>
8778
8779 * keyboard.c (echo_message_buffer): New variable.
8780 (echo_now): Set echo_message_buffer to the echo area buffer used
8781 to display the echo.
8782 (cancel_echoing): Reset echo_message_buffer to nil.
8783 (read_char): Code rewritten that handles canceling an echo or
8784 echoing a dash, respectively.
8785
8786 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
8787 directory doesn't exist.
8788
6142fdcb
DL
87892000-04-19 Dave Love <fx@gnu.org>
8790
8791 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
8792 (concat): Don't allow numeric args.
8793 (Fconcat): Doc change.
6142fdcb 8794
ac6b5352
SM
87952000-04-19 Stefan Monnier <monnier@cs.yale.edu>
8796
8797 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
8798 instead define end_match(1|2) more carefully.
8799 Use GET_CHAR_BEFORE_2 for `begline'.
8800
cb9215e4
GM
88012000-04-19 Gerd Moellmann <gerd@gnu.org>
8802
5e3dac3f
GM
8803 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
8804 on 64-bit systems where NULL is defined as `0'.
8805
8806 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
8807 the `variable argument list' to make it work on Alpha.
8808
cb9215e4
GM
8809 * m/alpha.h (_LP64) [!_LP64]: Define.
8810 (ORDINARY_LINK): Define for NetBSD.
8811
8812 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 8813
f532dca0
DL
88142000-04-19 Dave Love <fx@gnu.org>
8815
c750667e
DL
8816 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
8817 change.
8818
8819 * Makefile.in (LIBS): Don't use.
8820 (GETLOADAVG_OBJ): Define again.
8821 (otherobj): Add GETLOADAVG_OBJ.
8822
f532dca0
DL
8823 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
8824
1c7e22fd
GM
88252000-04-18 Gerd Moellmann <gerd@gnu.org>
8826
f6d3257b
GM
8827 * lread.c (read_filtered_event): Cancel and start busy cursor.
8828
427ec082 8829 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
8830 that the per-character metrics may be null.
8831
e10f64e7
GM
88322000-04-17 Gerd Moellmann <gerd@gnu.org>
8833
0daee095
GM
8834 * buffer.c (clone_per_buffer_values): New function.
8835 (Fmake_indirect_buffer): Add optional argument CLONE. Call
8836 clone_per_buffer_values if CLONE is not nil.
8837
e10f64e7
GM
8838 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
8839
38687d43
DL
88402000-04-16 Dave Love <fx@gnu.org>
8841
8842 * Makefile.in: Remove obsolete localcpp stuff.
8843 (GETLOADAVG_OBJ): Don't define.
8844 (obj): Move LIBOBJS...
8845 (otherobj): ... to here.
8846 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
8847 whitespace-only lines after the continuation (Irix).
8848
c21c7262
GM
88492000-04-14 Gerd Moellmann <gerd@gnu.org>
8850
8851 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
8852
8853 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
8854
314767c0
DL
88552000-04-14 Dave Love <fx@gnu.org>
8856
8857 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
8858 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
8859 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
8860 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
8861 NLIST_STRUCT.
8862
8863 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
8864 autoconfiscated HAVE_GETLOADAVG.
8865
8866 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
8867 BROKEN_MKTIME.
8868
a2522dca
GM
88692000-04-14 Gerd Moellmann <gerd@gnu.org>
8870
8871 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
8872 (fill_in_lock_file_name): Avoid existing files that aren't
8873 links.
8874
33744b5d
DL
88752000-04-14 Dave Love <fx@gnu.org>
8876
c21c7262 8877 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
8878 (INTERVAL_SRC): Convert to make variable.
8879 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
8880 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
8881 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
8882 add LIBOBJS.
8883 (SOME_MACHINE_OBJECTS): Remove interval stuff.
8884 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
8885 (shortlisp): Add facemenu, float-sup, frame.
8886 (SOME_MACHINE_LISP): Remove them from here.
8887 (LIBES): Change unused LDLIBS to autoconf LIBS.
8888
8889 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
8890
9d3d5916
KH
88912000-04-14 Kenichi Handa <handa@etl.go.jp>
8892
8893 * composite.c (update_compositions): If FROM and TO are not in a
8894 valid range, do nothing.
8895
198e3c7a
GM
88962000-04-13 Gerd Moellmann <gerd@gnu.org>
8897
8898 * tparam.c (tparam1): Abort when encountering an unknown
8899 `%'-specifier.
8900
8901 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
8902 terminfo.o.
8903
8904 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
8905 as TERMCAP_OBJ.
8906
055a28c9
EZ
89072000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
8908
8909 * fileio.c (a_write): Remove redundant semi-colons.
8910 (e_write): Return -1 if failed to write all the data.
8911 This fixes the changes made at 1999-12-15.
8912
f5c75033
DL
89132000-04-12 Dave Love <fx@gnu.org>
8914
8915 * fns.c (mapcar1): Test for null vals to support mapc.
8916 (Fmapc): New function.
8917
0c3cfc51
EZ
89182000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
8919
8920 * msdos.c (NUM_MOUSE_BUTTONS): Define.
8921 (IT_frame_up_to_date): Support the buffer local value of
8922 cursor-type, if defined.
8923
33465a31
DL
89242000-04-10 Dave Love <fx@gnu.org>
8925
8926 * editfns.c (preceding-char, following-char): Doc fix.
8927
6ed56568
KR
89282000-04-10 Ken Raeburn <raeburn@gnu.org>
8929
8930 * Makefile.in (temacs): Revert 2000-03-12 change.
8931
7cf80d4e
JR
89322000-04-10 Jason Rumney <jasonr@gnu.org>
8933
8934 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
8935
34f3f342
GM
89362000-04-10 Gerd Moellmann <gerd@gnu.org>
8937
1a1b1895
GM
8938 * xdisp.c (setup_echo_area_for_printing): Choose an echo
8939 area buffer, if it's not set up yet.
8940
34f3f342
GM
8941 * indent.c (compute_motion): Set immediate_quit.
8942
be0dbdab
GM
89432000-04-09 Gerd Moellmann <gerd@gnu.org>
8944
c45be9ac
GM
8945 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
8946 variable.
8947 (realize_tty_face): Suppress boldness if colors are the inverse of
8948 the default colors, and tty_suppress_bold_inverse_default_colors_p
8949 is set.
8950 (Ftty_suppress_bold_inverse_default_colors): New function.
8951 (syms_of_xfaces): Defsubr it.
8952
be0dbdab
GM
8953 * buffer.c (Frestore_buffer_modified_p): New function.
8954 (syms_of_buffer): Defsubr it.
8955
e8413c3b
KR
89562000-04-08 Ken Raeburn <raeburn@gnu.org>
8957
87f67317
KR
8958 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
8959 charset id (int) argument, not a charset (Lisp_Object).
8960
e8413c3b
KR
8961 * coding.h (code_convert_string): Declare.
8962 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
8963 object, as the fourth argument to code_convert_string.
8964
8965 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
8966 value.
8967 (Fset_fontset_font): Use EQ to compare lisp objects.
8968
7c752c80
KR
89692000-04-05 Ken Raeburn <raeburn@gnu.org>
8970
c0333abc
KR
8971 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
8972 a pointer that looks like a lisp object.
8973 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
8974 zero, instead see whether it's an integer object, since they can't
8975 have intervals.
8976 (GET_INTERVAL_OBJECT): Simply assign to the destination.
8977
7c752c80
KR
8978 * dispnew.c (allocate_matrices_for_frame_redisplay,
8979 direct_output_forward_char): Use X(U)INT and make_number as needed
8980 to convert between (unsigned) int values and lisp integers.
8981 * keyboard.c (read_key_sequence): Likewise.
8982 * lread.c (substitute_object_recurse): Likewise.
8983 * fns.c (concat, hash_lookup, hash_remove): Likewise.
8984 * minibuf.c (do_completion, Fminibuffer_complete_word,
8985 Fminibuffer_completion_help): Likewise.
8986 * term.c (produce_special_glyphs): Likewise.
8987
8988 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
8989 * print.c (print_preprocess, print_object): Likewise.
8990
8991 * search.c (compile_pattern): Use NILP when checking for nil.
8992
74e49b38
KR
8993 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
8994 __OPTIMIZE__]: Provide a GNU C macro version that handles
8995 lisp-object unions.
8996 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
8997 field, to better cope with ENABLE_CHECKING and calls that modify a
8998 Lisp_Object using its old value.
8999
685e5ed2
GM
90002000-04-04 Gerd Moellmann <gerd@gnu.org>
9001
c407c570
GM
9002 * window.c (compare_window_configurations): Signal an error
9003 if parameters C1 or C2 aren't window configurations.
9004
685e5ed2
GM
9005 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
9006 AFTER_POTENTIAL_GC calls around calls to functions that can
9007 signal an error and thus invoke the debugger.
9008
587a49ab
GM
90092000-04-03 Gerd Moellmann <gerd@gnu.org>
9010
62f20204
GM
9011 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
9012 an error if decoding fails.
9013
587a49ab
GM
9014 * keyboard.c (lispy_mouse_names): Variable removed.
9015 (Vlispy_mouse_stem): New variable.
9016 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
9017 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
9018 for any mouse button number. Increase size of mouse_syms and
9019 button_down_location as needed. Call modify_event_symbol with
9020 different arguments.
9021 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
9022 Call modify_event_symbol with different arguments.
9023 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
9024 for any button number. Call modify_event_symbol with different
9025 arguments.
9026 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
9027 Accept a string for NAME_ALIST_OR_STEM.
9028
9029 * lisp.h (larger_vector): Add prototype.
9030
9031 * fns.c (larger_vector): Make externally visible.
9032
9033 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
9034
2d1675e4
SM
90352000-04-02 Stefan Monnier <monnier@cs.yale.edu>
9036
9037 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
9038 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
9039 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
9040 we are between str1 and str2.
9041 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
9042 (PATFETCH): Use `TRANSLATE'.
9043 (PATFETCH_RAW): Fetch multibyte char if applicable.
9044 (PATUNFETCH): Remove.
9045 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
9046 When writing a char, write it directly into the pattern buffer rather
9047 than going needlessly through a temp char-array.
9048 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
9049 multibyte magic and remove the useless `#ifdef emacs'.
9050 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
9051 buffer.
9052
9053 * regex.h (struct re_pattern_buffer): Make field `multibyte'
9054 conditional on `emacs'.
9055
9056 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
9057
cc2d8c6b
KR
90582000-04-01 Ken Raeburn <raeburn@gnu.org>
9059
9060 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
9061 non-union-type versions of XMARK and friends here, because XMARK
9062 and friends won't work on an integer field if NO_UNION_TYPE is not
9063 defined.
9064 (make_number): Define as a function if it's not defined as a
9065 macro.
9066
09654086
KR
9067 * composite.c (run_composite_function): Use NILP when checking for
9068 nil.
9069 (syms_of_composite): Delete local var NARGS, pass an int as first
9070 argument to Fmake_hash_table.
9071
2387b382
KR
9072 * editfns.c (text_property_stickiness): Use NILP to test
9073 Lisp_Object boolean value.
9074 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
9075 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
9076 problems reading from and changing the same lisp value in an
9077 XSETSTRING call.
9078
27660e89
GM
90792000-04-01 Gerd Moellmann <gerd@gnu.org>
9080
9081 * term.c (TN_no_color_video): New variable.
9082 (term_init): Intitialize TN_no_color_video.
9083 (enum no_color_bit): New enumeration.
9084 (MAY_USE_WITH_COLORS_P): New macro.
9085 (turn_on_face): Use it to determine if attributes may be used
9086 combined with colors.
9087
3578db3c
KR
90882000-04-01 Ken Raeburn <raeburn@gnu.org>
9089
9090 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
9091 with int lvalues via casts; instead, just yield lisp object
9092 lvalues.
9093 (enlarge_window): Variable sizep now points to Lisp_Object. Use
9094 proper accessor macros.
9095 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
9096 (grow_mini_window): Fix typo getting int value of root->height.
9097
6fc556fd
KR
9098 * xdisp.c (compute_string_pos): Fix order of arguments to
9099 string_pos_nchars_ahead.
9100 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
9101 count arg to variable-arg routines like Frun_hook_with_args and
9102 Fformat.
587a49ab
GM
9103 (back_to_previous_visible_line_start)
9104 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
9105 fixed-arg routines like Fget_char_property and Fmake_string.
9106 (reconsider_clip_changes): Use XINT when comparing integer lisp
9107 objects, or passing them as int arguments.
587a49ab
GM
9108 (mark_window_display_accurate, insert_left_trunc_glyphs)
9109 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
9110 storing or passing integer values as lisp objects.
9111 (set_cursor_from_row, highlight_trailing_whitespace): Use
9112 INTEGERP, not implicit test against zero, for glyph object.
9113 (try_window_id): Don't use make_number when we want an int value.
9114
9115 * xfaces.c (xlfd_symbolic_value): Make last argument a
9116 Lisp_Object, to be consistent with callers.
9117 (Fbitmap_spec_p): Use XINT to get numeric value of height.
9118 (lface_hash): Apply XFASTINT to lisp values before folding in.
9119
9120 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
9121 fill in window width and height. Pass an int, not a lisp object,
9122 as first arg to Finsert.
9123
6e7b2457
GM
91242000-04-01 Gerd Moellmann <gerd@gnu.org>
9125
610d841e
GM
9126 * xfaces.c (realize_basic_faces): Block input while realizing
9127 the faces.
9128
6e7b2457
GM
9129 * keyboard.c (lispy_mouse_names): Add additional mouse names.
9130
9131 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
9132
aa110c0c
GM
91332000-03-31 Gerd Moellmann <gerd@gnu.org>
9134
9135 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 9136 or ASCII, handle case that per-char metric is null.
aa110c0c 9137
8801a864
KR
91382000-03-30 Ken Raeburn <raeburn@gnu.org>
9139
c6129d7e
KR
9140 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
9141
8801a864
KR
9142 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
9143 XSUBR, XBUFFER): Verify correct object type before returning
9144 pointer, using eassert.
9145 * frame.h (XFRAME): Likewise.
9146
9147 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
9148 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
9149 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
9150 type.
9151 * data.c (set_internal): Likewise.
9152 * dispextern.h (WINDOW_WANTS_MODELINE_P,
9153 WINDOW_WANTS_HEADER_LINE_P): Likewise.
9154 * fileio.c (auto_save_1): Likewise.
9155 * insdel.c (check_markers): Likewise.
9156 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
9157 * undo.c (record_insert): Likewise.
9158 * vmsproc.c (child_sig): Likewise.
9159 * window.c (unshow_buffer, window_loop): Likewise.
9160 * xterm.c (x_erase_phys_cursor): Likewise.
9161
8e7af858
GM
91622000-03-30 Gerd Moellmann <gerd@gnu.org>
9163
9164 * xfns.c (free_image_cache): Free the cache structure itself
9165 last, after all its members have been freed.
9166
9167 * lisp.h (xstrdup): Add prototype.
9168
9169 * alloc.c (xstrdup): Moved here from xfaces.c.
9170 (allocating_for_lisp): Variable removed.
9171 (lisp_malloc): Block input around the calls to malloc and
9172 mem_insert.
9173
9174 * xfaces.c (realize_tty_face): Use find_symbol_value instead
9175 of Fsymbol_value.
9176 (xstrdup): Moved to alloc.c.
9177
e0b8c689
KR
91782000-03-29 Ken Raeburn <raeburn@gnu.org>
9179
b96f9fb7
KR
9180 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
9181
9182 * emacs.c (main): Fix sense of no-loadup test.
9183
e0b8c689
KR
9184 * config.in (ENABLE_CHECKING): Undef.
9185
9186 * lisp.h (struct interval): Replace "parent" field with a union of
9187 interval pointer and Lisp_Object; add new bitfield to use as
9188 discriminant. Change other flag fields to bitfields.
9189 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
9190 is defined and the supplied test fails, print a message and
9191 abort.
9192 (eassert): New macro. Use CHECK to provide an assert-like
9193 facility.
9194
9195 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
9196 pointers; abort if the value looks like a lisp object.
9197 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
9198 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
9199 Modify for new interval parent definition.
9200
9201 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
9202 UNMARK_BALANCE_INTERVALS): Update references that need an
9203 addressable lisp object in the interval structure.
9204 (die): New function.
9205 (suppress_checking): New variable.
9206
9207 * intervals.c (interval_start_pos): Just return 0 if there's no
9208 parent object.
9209
f83c5440
GM
92102000-03-29 Gerd Moellmann <gerd@gnu.org>
9211
9212 * lread.c (read1): Accept `.' (period) as symbol start like in CL
9213 and earlier Emacs versions.
9214
9215 * keyboard.c (Ftop_level): Cancel busy-cursor.
9216
9217 * eval.c (call_debugger): Cancel busy-cursor.
9218
fdce64ff
KH
92192000-03-29 Kenichi Handa <handa@etl.go.jp>
9220
9221 * search.c (Freplace_match): Adjust multibyteness of the current
9222 buffer and NEWTEXT. Free allocated memory before signaling an
9223 error.
9224
f6a3f532
SM
92252000-03-28 Stefan Monnier <monnier@cs.yale.edu>
9226
9227 * regex.c (analyse_first): New function obtained by ripping out most
9228 of re_compile_fastmap and generalizing it a little bit so that it
9229 can also just return whether a given (sub)pattern can match the empty
9230 string or not.
9231 (regex_compile): Use `analyse_first' to decide whether the loop-check
9232 needs to be done or not for *, +, *? and +? (the loop check is costly
9233 for non-greedy repetition).
9234 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
9235
e9b309ac
DL
92362000-03-28 Dave Love <fx@gnu.org>
9237
bb15bd9a
DL
9238 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
9239 alpha.
9240
e9b309ac
DL
9241 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
9242
ed0767d8
SM
92432000-03-27 Stefan Monnier <monnier@cs.yale.edu>
9244
9245 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
9246 an expression.
9247 (enum re_opcode_t): Update description of succeed_n.
9248 (PATFETCH): Always define.
9249 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
9250 operators, char classes, shy-groups and intervals).
9251 Optimize special cases of intervals so as to only use succeed_n and
9252 jump_n when really needed.
9253 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
9254 that we don't have to handle the special cases any more.
9255 Simplify on_failure_jump handling as well.
9256
e11e7e46
JR
92572000-03-28 Jason Rumney <jasonr@gnu.org>
9258
9259 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
9260
88faab89
GM
92612000-03-27 Gerd Moellmann <gerd@gnu.org>
9262
182ff242
GM
9263 * s/freebsd.h (GC_SETJMP_WORKS): Define.
9264
9265 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 9266
182ff242
GM
9267 * alloc.c (mark_maybe_object): New function.
9268 (mark_memory): Use it.
9269 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
9270 (setjmp_tested_p, longjmp_done): New variables.
9271 (test_setjmp): New function.
9272 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
9273 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
9274
c1005d06
GM
9275 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
9276 to DEC_TEXT_POS and INC_TEXT_POS.
9277
9278 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
9279 with parameter MULTIBYTE_P.
9280
427ec082 9281 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
9282 MULTIBYTE_P.
9283
7439e5b9 9284 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
9285 buffers because it looks for multibyte character byte sequences
9286 which don't exist in unibyte text.
7439e5b9 9287
d9c545da
GM
9288 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
9289
11fd416e 9290 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
9291 [DEBUG_X_COLORS]: New functions.
9292 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
9293
9294 * xfns.c (x_set_cursor_color): Get color reference counts right.
9295
9296 * xterm.c (x_copy_color): New function.
9297 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
9298
9299 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
9300 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
9301 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
9302 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
9303 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
9304 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
9305 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
9306 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
9307 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
9308 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
9309
11fd416e
GM
9310 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
9311 names for handling per-buffer variables.
d9c545da
GM
9312
9313 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
9314 instead of MAX_BUFFER_LOCAL_VARS.
9315 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
9316
9317 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
9318
88faab89
GM
9319 * xfns.c (x_specified_cursor_type): New function.
9320 (x_set_cursor_type): Use it.
9321
9322 * buffer.h (struct buffer): Add cursor_type.
9323
d80f42b7
SM
93242000-03-26 Stefan Monnier <monnier@cs.yale.edu>
9325
9326 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 9327 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 9328 opcode.
d80f42b7
SM
9329 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
9330 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
9331 executing it as well as when popping it off the stack to find infinite
9332 loops in non-greedy repetition operators.
9333
89e80928
GM
93342000-03-26 Gerd Moellmann <gerd@gnu.org>
9335
3d4ff2dd
GM
9336 * doc.c (Qfunction_documentation): New variable.
9337 (syms_of_doc): Initialize Qfunction_documentation.
9338 (Fdocumentation): If FUNCTION is a symbol with non-nil
9339 `function-documentation' property, return a documentation derived
9340 from that.
9341
bd96bd79
GM
9342 * buffer.c (syms_of_buffer): Add default-cursor-type.
9343 (init_buffer_once): Don't let cursor_type have a local value
9344 in every buffer.
9345
19d1bc27
GM
9346 * xterm.c (x_display_and_set_cursor): Choose cursor depending
9347 on buffer-local value of cursor_type.
9348 (x_draw_bar_cursor): Add parameter WIDTH.
9349
9350 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
9351 (init_buffer_once): Set default cursor_type value to t.
9352 Mark cursor_type as local everywhere.
9353 (syms_of_buffer): New per-buffer variable cursor-type.
9354
89e80928
GM
9355 * buffer.h (struct buffer): Remove member local_var_flags,
9356 add local_flags.
9357 (MAX_BUFFER_LOCAL_VARS): New macro.
9358 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
9359 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
9360 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
9361 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
9362
9363 * print.c (print_object): Use new macros for per-buffer
9364 variables.
9365
9366 * category.c (Fset_category_table): Use new macros for per-buffer
9367 variables.
9368
9369 * buffer.c (buffer_permanent_local_flags): Make a char array.
9370 (max_buffer_local_idx): New variable.
9371 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
9372 for new handling of per-buffer variables.
9373 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
9374 (init_buffer_once): Initialize per-buffer vars differently.
9375 Set max_buffer_local_idx.
9376
9377 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
9378 variables.
9379
9380 * lread.c (defvar_per_buffer): Use new macros for per-buffer
9381 variables.
9382
9383 * data.c (do_symval_forwarding, store_symval_forwarding)
9384 (find_symbol_value, set_internal, default_value, Fset_default)
9385 (Fkill_local_variable, Flocal_variable_p): Use new macros for
9386 per-buffer variables.
9387
9388 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
9389
9a0dd3dc
GM
93902000-03-24 Gerd Moellmann <gerd@gnu.org>
9391
b68c375f
GM
9392 * xterm.c (x_term_init): Unblock input around call1 of
9393 Qvendor_specific_keysyms.
9394
9a0dd3dc
GM
9395 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
9396 (find_defun_start): Consider an open parenthesis in column 0
9397 a defun start only if open_paren_in_column_0_is_defun_start is set.
9398 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
9399
7973e637
SM
94002000-03-24 Stefan Monnier <monnier@cs.yale.edu>
9401
9402 * eval.c (Fautoload): Add entry in load-history (if after dump).
9403 * lread.c (load-history): Update docstring.
9404
39210e90
GM
94052000-03-24 Gerd Moellmann <gerd@gnu.org>
9406
9407 * indent.c (Fvertical_motion): Always use the current buffer.
9408 Temporarily change the window's buffer, if necessary.
9409
72db3ab5
GM
94102000-03-23 Gerd Moellmann <gerd@gnu.org>
9411
9412 * xterm.c (fast_find_position): Make sure not to consider rows
9413 not visible in the window.
9414
990b2375
SM
94152000-03-22 Stefan Monnier <monnier@cs.yale.edu>
9416
9417 * regex.c (enum syntaxcode): Provide default for non-Emacs.
9418 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
9419
ff4df011
JR
94202000-03-22 Jason Rumney <jasonr@gnu.org>
9421
9422 * w32menu.c (single_submenu): Set help string to NULL if none.
9423 (w32_menu_show): Set help string correctly.
9424 (add-menu-item): Set help string in MIIM_DATA for menu item.
9425 Load SetMenuItemInfoA explicitly.
9426 (w32_menu_display_help): New function.
427ec082 9427
ff4df011
JR
9428 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
9429 (QCdata): Moved to xdisp.c.
9430
9431 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
9432 (Vw32_charset_to_codepage_alist): Removed.
9433 (Vw32_charset_info_alist): New variable.
9434 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
9435 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
9436 greek, hebrew, thai, johab, mac, unicode]): New symbols.
9437 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
9438 with TODO comment.
9439 (w32_codepage_for_font): Use Vw32_charset_info_alist.
9440 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
9441 Define Vw32_charset_info_alist and w32_charset symbols.
9442
94432000-03-22 Jason Rumney <jasonr@gnu.org>
9444
9445 * makefile.nt (w32bdf.obj): Update dependencies.
9446
9447 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
9448
9449 * w32fns.c: Include fontset.h after dispextern.h.
9450 (Fx_create_frame): Do not create fontset.
9451 (w32_load_system_font): Doc fix.
9452 (Fx_close_connection): Free full_name if it is not shared.
9453
9454 * w32term.c: Include fontset.h after dispextern.h.
9455 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
9456 updated.
9457 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
9458 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
9459 (w32_font_is_double_byte): New function, needs body.
9460 (x_append_glyph): Set glyph->glyph_not_available_p.
9461 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
9462 it->charset. If it->multibyte_p is zero and it->c is a multibyte
9463 character, convert it to a unibyte character.
9464 (struct glyph_string): Delete member `charset'.
9465 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
9466 calculating it is found.
9467 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
9468 the case that per char metric is not available correctly.
9469 (x_fill_glyph_string): Handle the case that the specific glyph is
9470 not available correctly.
9471 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
9472 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
9473 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
9474 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
9475 fontset. Don't call FS_LOAD_FONT.
9476
439d5cb4
KR
94772000-03-22 Ken Raeburn <raeburn@gnu.org>
9478
9479 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
9480 (INT_LISPLIKE): New macro.
9481 (NULL_INTERVAL_P): Use it.
9482 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
9483 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
9484 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
9485
9486 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
9487 explicit references to "parent" field of struct interval and
9488 associated unclean type conversions.
9489 * intervals.c (create_root_interval, root_interval, rotate_right,
9490 rotate_left, balance_possible_root_interval, split_interval_right,
9491 split_interval_left, interval_start_pos, find_interval,
9492 next_interval, previous_interval, update_interval,
9493 adjust_intervals_for_insertion, delete_node, delete_interval,
9494 adjust_intervals_for_deletion, merge_interval_right,
9495 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
9496 copy_intervals_to_string): Likewise.
9497 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
9498 Likewise.
9499 * syntax.c (update_syntax_table): Likewise.
9500
9501 * intervals.c (reproduce_tree_obj): New function, like
9502 reproduce_tree but takes a Lisp_Object for the parent. Declare
9503 with prototype.
9504 (graft_intervals_into_buffer): Use it when appropriate.
9505 (reproduce_tree): Declare with prototype.
9506 (balance_possible_root_interval): Check that the parent is a lisp
9507 object before trying to examine its type.
9508
ee1c5b21
GM
95092000-03-22 Gerd Moellmann <gerd@gnu.org>
9510
9511 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
9512 as strings only if both are known to be strings.
9513
9514 * s/openbsd.h (LIBS_TERMCAP): Undef.
9515
1fb352e0
SM
95162000-03-21 Stefan Monnier <monnier@cs.yale.edu>
9517
9518 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
9519 definitions for non-Emacs compilation.
9520 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
9521 outside of `#ifdef emacs'.
9522 (print_partial_compiled_pattern): Update.
9523 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
9524 (re_compile_fastmap): Merge handling of charset and charset_not (for
9525 emacs and non-emacs compilation as well).
9526 Similarly for (not)categoryspec and (not)syntaxspec.
9527 Don't use the fastmap when reaching `anychar' since the added
9528 complexity is not justified.
9529 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
9530 and (not)syntaxspec. Merge (not)categoryspec.
9531
fdaa1f77
KH
95322000-03-22 Kenichi Handa <handa@etl.go.jp>
9533
ff1a0d8e
KH
9534 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
9535 FACE_FOR_CHAR): Define them differently for the configuration of
9536 --without-x.
fdaa1f77 9537
d152fb46
DL
95382000-03-21 Dave Love <fx@gnu.org>
9539
9540 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
9541 doc string.
9542
d2cafc8c
GM
95432000-03-21 Gerd Moellmann <gerd@gnu.org>
9544
9545 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
9546 (lface_fully_specified_p): Don't check contents of
9547 LFACE_FONT_INDEX because that attribute is optional.
9548 (realize_x_face): Remove now unwarranted xassert.
9549
9111d4b5
KH
95502000-03-21 Kenichi HANDA <handa@etl.go.jp>
9551
9552 The following changes are to make font selection based on
9553 characters, not charset. In addition, they recover fontset
9554 facilities while utilizing the new font selection mechanism.
9555
6c4bfdc0
KH
9556 * Makefile.in (fontset.o): Depend on dispextern.h.
9557
9558 * alloc.c (mark_face_cache): Don't mark face->registry.
9559
9111d4b5
KH
9560 * dispextern.h (struct glyph): New member glyph_not_available_p.
9561 Use 22 bits for face_id.
9562 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
9563 (struct face): Delete member registry, new member ascii_face.
9564 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
9565 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
9566 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
9567 (struct it): Delete member charset, new member
9568 glyph_not_available_p.
9569
9570 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
9571 (struct fontset_info, struct fontset_data): Structs removed.
9572 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
9573 Vglobale_fontset_alist, font_idx_temp): Externs removed.
9574 (fs_load_font, fs_query_fontset): Adjusted for new argument.
9575 (fs_free_face_fontset, fontset_font_pattern,
9576 face_suitable_for_char_p, face_for_char,
9577 make_fontset_for_ascii_face): Extern them.
9578 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
9579 (FS_LOAD_FACE_FONT): New macro.
9580
9581 * fontset.c: All codes rewritten or adjusted for the change of
9582 fontset implementation. Now fontset is represented by char table.
9583 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
9584 removed.
9585 (my_strcasecmp): Function removed.
9586 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
9587 variables.
9588 (AREF, ASIZE): New macros.
9589 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
9590 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
9591 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
9592 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
9593 fontset_id_valid_p, font_family_registry, fontset_name,
9594 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
9595 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
9596 New functions.
9597 (fs_load_font): New arg FACE. Caller changed.
9598 (fs_query_fontset): Argument changed. Caller changed.
9599 (Fquery_fontset): call fs_query_fontset.
9600 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
9601 Functions removed.
9602 (clear_fontset_elements, check_registry_encoding,
9603 check_fontset_name): New functions.
9604 (syms_of_fontset): Set char-table-extra-slots property of fontset
9605 to 3. Staticpro and initialize Vfontset_table and
9606 Vdefault_fontset. Defsubr fontset_font and fontset_list.
9607
9608 * frame.h (struct frame): Member `fontset_data' removed.
9609 (FRAME_FONTSET_DATA): Macro removed.
9610
9611 * frame.c (make_frame): Don't allocate f->fontset_data.
9612 (Fdelete_frame): Don't free f->fontset_data.
9613
6c4bfdc0
KH
9614 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
9615
9111d4b5
KH
9616 * xdisp.c (charset_at_position): Function removed.
9617 (init_iterator): Don't set member charset of struct `it'.
9618 (handle_face_prop, reseat_to_string, set_iterator_to_next,
9619 next_element_from_display_vector, insert_left_trunc_glyphs):
9620 Likewise.
9621 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
9622 FACE_FOR_CHARSET.
9623 (get_next_display_element, append_space,
9624 extend_face_to_end_of_line): Likewise.
9625
9626 * xfaces.c (Qx_charset_registry, Vface_default_registry):
9627 Variables removed.
9628 (clear_font_table, frame_update_line_height, load_face_font):
9629 Adjusted for the change of fontset implementation.
9630 (load_face_fontset_font): Function removed.
9631 (pixel_point_size): New function.
9632 (font_list): Argument type changed. Caller changed.
9633 (LFACE_FONT): New macro.
9634 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
9635 (set_lface_from_font_name): Type of arg FONTNAME is changed to
9636 Lisp_Object. Determine the font name by actually loading a font
9637 by the specified pattern. Set LFACE_FONT (lface) to the specified
9638 pattern. Even if a font is not found, don't try alternatives.
9639 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
9640 (set_font_frame_param): If `font' is specified in lface, use it.
9641 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
9642 (lface_same_font_attributes_p): Likewise.
9643 (make_realized_face): Arguent changed. Caller changed. Set
9644 face->ascii_face to face itself.
9645 (free_realized_face): Free face->fontset if face is for ASCII.
9646 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
9647 deduce_unibyte_registry, x_charset_registry): Functions removed.
9648 (free_realized_multibyte_face): New function.
9649 (lookup_face, lookup_named_face, lookup_derived_face): Argument
9650 changed. Caller changed.
9651 (try_font_list): Argument type changed.
9652 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
9653 (choose_face_font): Argument changed. Handle fontset properly.
9654 (choose_face_fontset_font): Function removed.
9655 (realize_default_face, realize_named_face): Don't remove the
9656 former face here.
9657 (realize_face): Argument changed. Caller changed. Remove face
9658 with the arg former_face_id in advance. Load font for the new
9659 face.
9660 (realize_x_face): Argument changed. Caller changed. For a
9661 multibyte character, share fontset with base_face. For a single
9662 byte character, make a new realized fontset. Don't load a font
9663 here.
9664 (realize_tty_face): Argument changed. Caller changed.
9665 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
9666 (face_at_buffer_position): Don't check multibyte_p for returning
9667 DEFAULT_FACE_ID.
9668 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
9669 FACE_SUITABLE_FOR_CHARSET_P.
9670 (syms_of_xfaces): Remove code for Qx_charset_registry and
9671 Vface_default_registry.
9672
6c4bfdc0
KH
9673 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
9674 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
9675 (x_per_char_metric): Don't try FONT->default_char. Even if
9676 pcm->width is zero, glyph bits may exist.
9677 (x_encode_char): Always initialize char2b->byte1.
9678 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
9679 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
9680 changed.
9681 (x_append_glyph): Set glyph->glyph_not_available_p.
9682 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
9683 it->charset. Handle the case that per char metric is not
9684 available. If it->multibyte_p is zero and it->c is a multibyte
9685 character, convert it to a unibyte character.
9686 (struct glyph_string): Delete member `charset'.
9687 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
9688 the case that per char metric is not available correctly.
9689 (x_fill_glyph_string): Handle the case that the specific glyph is
9690 not available correctly.
9691 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
9692 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
9693 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
9694 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
9695 fontset. Don't call FS_LOAD_FONT.
9696
9697 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
9698 (x_create_tip_frame): Likewise.
9699 (Fx_close_connection): Free full_name of font_info.
9700
9701 * fns.c (optimize_sub_char_table): New function.
9702 (Foptimize_char_table): New function.
9703 (syms_of_fns): Defsubr Soptimize_char_table.
9704
b33dd3b0
GM
97052000-03-20 Gerd Moellmann <gerd@gnu.org>
9706
9707 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
9708 only if buffer is displayed in some window.
9709
9710 * xdisp.c (handle_single_display_prop): Initialize local `value'.
9711 (try_window_reusing_current_matrix): Don't call scroll run
9712 function if run's current and desired position are the same;
9713 this prevents cursor flickering.
9714
4e8a9132
SM
97152000-03-19 Stefan Monnier <monnier@cs.yale.edu>
9716
9717 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
9718
9719 * regex.c (RE_STRING_CHAR): New macro.
9720 (GET_CHAR_AFER_2): Remove.
9721 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
9722 (enum re_opcode_t): Remove on_failure_jump_exclusive.
9723 (print_partial_compiled_pattern, re_compile_fastmap)
9724 (re_match_2_internal): Remove on_failure_jump_exclusive.
9725 (regex_compile): Turn optimizable P+ loops into PP*, so that the
9726 optimization only need to work for * (ie. can use of_keep_string_jump).
9727 Remove the special case for .*\n since it is now covered by the general
9728 optimization.
9729 (re_search_2): Don't bother with `room'.
9730 (skip_one_char): New function.
9731 (skip_noops): Simplify since `memory' is not needed any more.
9732 (mutually_exclusive_p): Restructure slightly to use `switch' and
9733 add handling for "all" remaining cases.
9734 (re_match_2_internal): Change on_failure_jump_smart to use
9735 on_failure_keep_string_jump (and redirect the end-of-loop jump)
9736 rather than on_failure_jump_exclusive.
9737
2136fdd4
GM
97382000-03-19 Gerd Moellmann <gerd@gnu.org>
9739
9740 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
9741 number of bits per RGB because it's everywhere used as the depth
9742 of the visual.
9743
9744 * term.c (calculate_costs): Remove code dealing with X frames.
9745
18e21ce8 97462000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
9747
9748 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
9749
d7b511c4
GM
97502000-03-18 Gerd Moellmann <gerd@gnu.org>
9751
9752 * lread.c (read_integer): Unread the last char not consumed.
9753
16b5d424
GM
97542000-03-17 Gerd Moellmann <gerd@gnu.org>
9755
9756 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 9757 which are in the process of being deleted.
16b5d424 9758
1fa28578
GM
97592000-03-16 Gerd Moellmann <gerd@gnu.org>
9760
83488cce
GM
9761 * Makefile.in (mostlyclean): Add `*.core'.
9762 (clean): Add `bootstrap-emacs'.
9763
1fa28578
GM
9764 * lread.c (read_integer): New function.
9765 (read1): Support read syntax #o, #x, #b, #r.
9766
99633e97
SM
97672000-03-15 Stefan Monnier <monnier@cs.yale.edu>
9768
1fa28578
GM
9769 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
9770 make sure POINTER_TO_OFFSET gives the same value before and after
9771 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
9772 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
9773 (debug): Now only active if > 0 rather than if != 0.
9774 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
9775 (print_partial_compiled_pattern): Add missing `succeed' case. Use
9776 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
9777 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
9778 (store_op1, store_op2, insert_op1, insert_op2)
9779 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
9780 (group_in_compile_stack): Move to after its arg's types are
9781 declared and add a prototype.
99633e97 9782 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
9783 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
9784 wrapper.
99633e97 9785 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
9786 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
9787 indentation of the greedy-op and shy-group code.
99633e97
SM
9788 (at_(beg|end)line_loc_p): Fix argument's types.
9789 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
9790 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
9791 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
9792 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
9793 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
9794 QUIT unconditionally.
99633e97 9795
699238d9
GM
97962000-03-15 Gerd Moellmann <gerd@gnu.org>
9797
9798 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
9799 a sole completion.
9800
9801 * process.c (send_process): Add a hint that the function
9802 can call Lisp code to its comment.
9803
9804 * lread.c (load_dangerous_libraries): New variable.
9805 (Vbytecomp_version_regexp): New variable.
9806 (safe_to_load_p): New function.
9807 (Fload): Handle files not compiled with Emacs specially.
9808 (syms_of_lread): New Lisp variable load-dangerous-libraries.
9809
34e23e5a
GM
98102000-03-14 Gerd Moellmann <gerd@gnu.org>
9811
9c763cca
GM
9812 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
9813
9814 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
9815 support functions only if HAVE_X11R6_XIM is defined.
9816 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
9817
9818 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
9819
9820 * xfns.c (X_I18N_INHIBITED): Don't define.
9821 (create_frame_xic): Remove conditional compilation on
9822 X_I18N_INHIBITED.
9823 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
9824
9825 * config.in (HAVE_X_I18N): Moved here from xterm.h.
9826 (HAVE_X11R6_XIM): Define.
9827
9828 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
9829
34e23e5a
GM
9830 * xterm.c (x_term_init): Add support for X resource `synchronous'.
9831 If set, call XSynchronize.
9832
66f0296e
SM
98332000-03-13 Stefan Monnier <monnier@cs.yale.edu>
9834
34e23e5a
GM
9835 * regex.c: Declare a new type `re_char' used throughout the code
9836 for the string char type. It's `const unsigned char' to match the
9837 rest of Emacs. Consistently make sure all pointers to strings use
9838 it and make sure all pointers into the pattern use `unsigned
9839 char'.
66f0296e 9840 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
9841 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
9842 code duplication.
66f0296e
SM
9843
9844 * charset.h (GET_CHAR_AFTER_2): Remove.
9845 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
9846
854a025c
KR
98472000-03-12 Ken Raeburn <raeburn@gnu.org>
9848
9849 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
9850 variable before the invocation of YMF_PASS_LDFLAGS, in case both
9851 of them try to use backquotes.
9852
b9d2c7e2
DL
98532000-03-12 Dave Love <fx@gnu.org>
9854
9855 * unexelf.c: Restore changes of 1999-10-19.
9856 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
9857 fix its type and alignment; copy it from current process.
9858
5e5dff44
GM
98592000-03-12 Gerd Moellmann <gerd@gnu.org>
9860
9b2f3c38
GM
9861 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
9862 has been found. Fix bug not computing timer's predecessor.
9863
427ec082 9864 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
9865 file name.
9866
e1cff360
GM
9867 * window.c (Fsave_window_excursion): Doc fix.
9868
5e5dff44
GM
9869 * xfns.c (x_defined_color): Rewritten to use
9870 x_allocate_nearest_color.
9871
e411ce4b
EZ
98722000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
9873
9874 * msdos.c (vga_installed): New function, code moved from
9875 dos_set_window_size.
9876 (Qbar, Qcursor_type, outside_cursor): New variables.
9877 (syms_of_msdos): Intern and staticpro them.
9878 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
9879 shape used outside Emacs when called for the first time.
9880 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
9881 cursor shape used outside Emacs.
9882 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
9883 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
9884 type has changed.
9885 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
9886 parameters specify the cursor. Make qreverse a global
9887 variable (renamed to Qreverse).
9888
80460654
GM
98892000-03-09 Gerd Moellmann <gerd@gnu.org>
9890
9891 * fns.c (Fy_or_n_p): Cancel busy-cursor.
9892
95cd4c40
SM
98932000-03-08 Stefan Monnier <monnier@cs.yale.edu>
9894
9895 This is a big redesign of failure-stack and register handling, prompted
9896 by bugs revealed when trying to add shy-groups. Overall, what happened
9897 is that loops are now structured a little differently, groups can be
9898 shy and the code is a little simpler.
9899
9900 * regex.h: Update the copyright.
9901 (RE_SHY_GROUPS): New value.
9902 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
9903 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
9904
80460654
GM
9905 * regex.c (enum re_opcode_t): Remove jump_past_alt,
9906 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
9907 on_failure_jump_(exclusive, loop and smart). Also fix the comment
9908 for (start|stop)_memory since they now only take one argument (the
9909 second has becomes unnecessary).
9910 (print_partial_compiled_pattern): Adjust for changes in
9911 re_opcode_t.
9912 (print_compiled_pattern): Use %ld to printf long ints and flush to
9913 make debugging a little easier.
95cd4c40
SM
9914 (union fail_stack_elt): Make the integer unsigned.
9915 (struct fail_stack_type): Add a `frame' element.
9916 (INIT_FAIL_STACK): Init `frame' as well.
9917 (POP_PATTERN_OP): New macro for re_compile_fastmap.
9918 (DEBUG_PUSH, DEBUG_POP): Remove.
9919 (NUM_REG_ITEMS): Remove.
9920 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
9921 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
9922 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 9923 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
9924 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
9925 macros.
9926 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
9927 address pushed is not the destination of the jump but the source
9928 of it instead.
95cd4c40
SM
9929 (NUM_FAILURE_ITEMS): Remove.
9930 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
9931 registers before the actual failure point). Don't hardcode any
9932 meaning for str==NULL anymore.
95cd4c40 9933 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
9934 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
9935 Remove.
95cd4c40
SM
9936 (REG_UNSET_VALUE): Use NULL (why not?).
9937 (compile_range): Remove declaration since it doesn't exist.
9938 (struct compile_stack_elt_t): Remove inner_group_offset.
9939 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
9940 (regex_grow_registers): Remove dead code.
9941 (FIXUP_ALT_JUMP): New macro.
80460654
GM
9942 (regex_compile): Add shy-groups Change loops to use
9943 on_failure_jump_smart&jump instead of
9944 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
9945 initial (dummy_failure_)jump. Remove c1_base (looks like unused
9946 variable to me). Use `jump' instead of `jump_past_alt' and don't
9947 bother with push_dummy_failure in alternatives since it is now
9948 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
9949 emacs' for (re)allocating the stack.
9950 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
9951 from loop when bufp->can_be_null rather than jumping to `done'.
9952 Avoid jumping backwards so as to ensure termination. Use
9953 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
9954 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 9955 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
9956 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
9957 improve mutually_exclusive_p to handle ".+\n".
9958 (lowest_active_reg, highest_active_reg,
9959 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
9960 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
9961 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
9962 variables. Push register (in `start_memory') on the stack rather
9963 than storing it in old_reg(start|end). Remove the cycle detection
9964 from `stop_memory', replaced by the use of on_failure_jump_loop
9965 for greedy loops. Add code for the new on_failure_jump_<foo>.
9966 Remove ad-hoc code in `on_failure_jump' to push more registers in
9967 the case of a loop. Take out code from `maybe_pop_jump' into
9968 separate functions and adapt it to the semantics of
9969 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
9970 and push_dummy_failure. Remove dummy_failure handling and
9971 handling of `failures to jump to on_failure_jump' (this last one
9972 was already dead code, it seems).
9973 (group_match_null_string_p, alt_match_null_string_p)
9974 (common_op_match_null_string_p): Remove.
95cd4c40 9975
7397acc4
DL
99762000-03-08 Dave Love <fx@gnu.org>
9977
9978 * config.in: Don't depend on __STDC__ for volatile.
9979 Add POINTER_TYPE, PTR, PROTOTYPES.
9980
9981 * hftctl.c, strftime.c: Use PROTOTYPES.
9982 * eval.c (find_handler_clause): Likewise.
9983
9984 * mem-limits.h: Use POINTER_TYPE.
9985
9986 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
9987 (memory_warnings): Declare using POINTER_TYPE.
9988
5e91ff9e
GM
99892000-03-08 Gerd Moellmann <gerd@gnu.org>
9990
feab4fba
GM
9991 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
9992
25edb08f
GM
9993 * xdisp.c (display_echo_area): Temporarily inhibit garbage
9994 collection.
9995
5e91ff9e
GM
9996 * xfns.c: Remove obsolete code in #if 0.
9997 (Fx_focus_frame): New function.
9998
a735b7e1
KH
99992000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
10000
10001 * coding.c (coding_category_name): Add coding-category-utf-8,
10002 coding-category-utf-16-be, coding-category-utf-16-le.
10003 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
10004 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
10005 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
10006 (detect_coding_utf_8): New function.
10007 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
10008 UTF_16_LOW_SURROGATE_P): New macros.
10009 (detect_coding_utf_16): New function
10010 (detect_coding_mask): When priorities are specified, skip any
10011 categories that have `nil' coding-system. Fix bug of returning
10012 wrong mask when PRIORITIES is specified and detect_coding_XXX()
10013 returns a mask not set in PRIORITIES.
10014 (detect_eol_type_in_2_octet_form): New function.
10015 (detect_eol): selects detect_eol_type_XXX to call according to
10016 cooding->category_idx.
10017 (detect_coding_system): Remove `nil' coding-system in the result.
10018 (Fupdate_coding_systems_internal): Update all coding-categories.
10019
10020 * coding.h (CODING_CATEGORY_IDX_UTF_8,
10021 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
10022 macros.
10023 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
10024 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
10025 CODING_CATEGORY_IDX_UTF_16_LE.
10026 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
10027 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
10028 (CODING_CATEGORY_MASK_ANY): Include the above macros.
10029 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
10030
9994cc69
GM
100312000-03-07 Gerd Moellmann <gerd@gnu.org>
10032
e9b4e5ff
GM
10033 * doc.c (Fdocumentation_property): If value is not a string,
10034 and doesn't refer to etc/DOC, evaluate it to obtain a string.
10035
f7daf1e1
GM
10036 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
10037 close the display with XtCloseDisplay. This caused a bus error
10038 on OpenWindows.
10039
9994cc69
GM
10040 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
10041 complete but not unique.
10042
4336c705
GM
100432000-03-06 Gerd Moellmann <gerd@gnu.org>
10044
18bb0684
GM
10045 * process.c (send_process): Remove local variable `procname' that
10046 might become invalid when a GC happens. Instead, access the
10047 process name slot directly.
10048
4336c705
GM
10049 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
10050 orig_height if set.
10051
10052 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
10053 orig_height if set.
10054
515d0d0e
EZ
100552000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
10056
10057 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
10058 glyph matrices have been freed.
10059
100b3cbb
GM
100602000-03-05 Gerd Moellmann <gerd@gnu.org>
10061
50df5e5a 10062 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 10063 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
10064
10065 * xfns.c (QCdata): Moved to xdisp.c.
10066
10067 * xdisp.c (QCdata): Moved here from xfns.c.
10068 (syms_of_xdisp): Initialize QCdata.
10069
10070 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
10071
10072 * window.c (coordinates_in_window): Use
10073 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
10074 FRAME_INTERNAL_BORDER_WIDTH.
10075
100b3cbb 10076 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 10077 it is obviously invalid.
100b3cbb
GM
10078
10079 * xterm.c (x_term_init): Create a colormap if not using the
10080 default visual.
10081
10082 * xterm.h (select_visual): Change prototype.
10083
10084 * xfns.c (select_visual): Rewritten. Recognize user-specified
10085 visual classes.
10086 (visual_classes): New variable.
10087
64d739c4
GM
100882000-03-04 Gerd Moellmann <gerd@gnu.org>
10089
10090 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
10091 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
10092 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
10093 (x_decode_color): Don't handle allocation of white and black
10094 specially.
10095 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
10096 XtNcolormap resources.
10097 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
10098 (Fx_create_frame): Initialize color members of x_output structure.
10099 (xpm_load): Pass colormap to XPM lib.
10100
10101 * xfaces.c (x_free_colors): Access colormap of frame using
10102 FRAME_X_COLORMAP. Be paranoid about freeing black and white
10103 when default colormap is used.
10104
10105 * xterm.c (x_term_init): Set Colormap member of x_display_info
10106 structure. Copy colormap if resource `privateColormap' is
10107 specified (PseudoColor only).
10108 (x_setup_relief_color): Access colormap of frame using
10109 FRAME_X_COLORMAP.
10110
10111 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
10112 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
10113
c3cee013
JR
101142000-03-04 Jason Rumney <jasonr@gnu.org>
10115
10116 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
10117 other non-platform-specific equivalents.
64d739c4 10118 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
10119 specific functions and macros as their w32 equivalents where
10120 non-platform-specifics are not available.
10121 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
10122 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
10123 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
10124 (frame_update_line_height): Use macros to access f->output_data.
10125 (defined_color): Remove FIXME comments; fixed.
10126 (x_face_list_fonts, prepare_face_for_display): Put X specifics
10127 into #ifdef blocks. Add WINDOWSNT blocks.
10128 (Fx_list_fonts): Use macros for accessing font data.
10129 (set_lface_from_font_name): Different default fonts for X and
10130 WINDOWSNT.
10131 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
10132 scalable for backward compatibility.
64d739c4 10133 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
10134 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
10135
64d739c4 10136 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
10137 syms_of_w32faces.
10138
10139 * makefile.nt (w32faces.obj): Remove.
10140 (xfaces.obj): Add.
10141
807cc41c
JR
101422000-03-03 Jason Rumney <jasonr@gnu.org>
10143
10144 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
10145 correct parameters.
10146
0007072a
KR
101472000-03-03 Ken Raeburn <raeburn@gnu.org>
10148
10149 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
10150 standard ELF definitions here if the system header does not.
10151
71a6ba55
GM
101522000-03-03 Gerd Moellmann <gerd@gnu.org>
10153
10154 * xterm.c (PER_CHAR_METRIC): Removed.
10155 (x_per_char_metric_1, x_default_char): New functions.
10156 (x_per_char_metric): If font's default char is invalid, return
10157 metrics of a suitably chosen usable default char.
10158 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
10159 char, replace occurrences of unprintable chars with a suitably
10160 chosen usable default char.
71a6ba55 10161
900fa1f1
GM
101622000-03-02 Gerd Moellmann <gerd@gnu.org>
10163
42f55fe0
GM
10164 * xterm.c (note_mouse_highlight): Return quickly if frame's
10165 glyph matrices have been freed.
10166
10167 * dispnew.c (free_glyphs): Block input while freeing matrices.
10168
900fa1f1
GM
10169 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
10170
10171 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
10172 x_free_colors.
10173
10174 * dispextern.h (x_free_colors): Add prototype.
10175
10176 * xfaces.c (x_free_colors): New function.
10177 (unload_color, free_face_colors): Use it.
10178
2f950292
EZ
101792000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
10180
10181 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
10182
10183 * window.c [MSDOS]: Include msdos.h.
10184
54d04320
DL
101852000-03-02 Dave Love <fx@gnu.org>
10186
10187 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
10188
10189 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
10190 set C_OPTIMIZE_SWITCH for gcc.
10191
0ba93ac4
KH
101922000-03-02 Kenichi Handa <handa@etl.go.jp>
10193
10194 * coding.c (coding_save_composition): Be sure to allocate
10195 composition data area in coding even if there's no composition in
10196 the current run.
10197
a2bc11d4
JR
101982000-03-01 Jason Rumney <jasonr@gnu.org>
10199
10200 * w32term.c: Equivalent changes to those made to xterm.c on
10201 2000-02-25 and 2000-02-24.
10202
10203 * w32fns.c: Equivalent changes to those made to xfns.c on
10204 2000-02-25 and 2000-02-21.
10205
10206 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
10207 correct line-end convention is followed.
10208
10209 * w32menu.c [HAVE_BOXES]: Remove #undef.
10210 (single_keymap_panes): Remove code for simulating checkmarks.
10211 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
10212 Remove code for drawing simulated checkmarks.
10213 (w32_menu_show): make unibyte help string correctly.
10214 (add_menu_item): draw standard Windows checkmarks. Draw radio
10215 buttons as radio buttons if possible.
10216
72d19d75
GM
102172000-03-01 Gerd Moellmann <gerd@gnu.org>
10218
2df636f4
GM
10219 * sysdep.c (start_of_text): Don't define this function for NetBSD
10220 with ELF.
10221
427ec082 10222 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
10223 Don't define.
10224 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
10225 (LINKER): Don't undef if __NetBSD__ is defined.
10226
10227 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
10228
10229 * fileio.c [__NetBSD__]: Define `unix'.
10230
72d19d75
GM
10231 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
10232
ed4d0512
GM
102332000-02-29 Gerd Moellmann <gerd@gnu.org>
10234
50b1039f
GM
10235 * atimer.c (start_atimer): Don't abort when timers are stopped.
10236 (append_atimer_lists): New function.
10237 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
10238 arbitrary lists of stopped and running atimers.
10239
ed4d0512
GM
10240 * atimer.c (cancel_atimer): Handle canceling an atimer when
10241 some timers are stopped.
10242
10243 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
10244 after canceling it.
10245
10246 * fns.c (maybe_resize_hash_table): Handle case of new size
10247 coming out as being the same as old size.
10248
387023ee
JR
102492000-02-27 Jason Rumney <jasonr@gnu.org>
10250
10251 * makefile.nt: Add atimer.h to dependencies.
10252 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
10253 * w32console.c: Only disable window system features for dispextern.h
10254 (initialize_w32_display): Build a display info for the console.
10255 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
10256 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
10257 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
10258 as 2 button mice.
10259 * w32gui.h (struct W32FontStruct): Revert last change after change
10260 to xdisp.c.
10261 * w32menu.c (single_submenu): Set up help string.
10262 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
10263 (w32_dialog_show): Set up help string.
10264 * w32term.c (w32_display_info_for_display): Remove unused function.
10265 (w32_draw_bitmap): Use pre-built bitmaps.
10266 (w32_initialize_display_info): New function to initialize parts of
10267 display info that are common to both GUI and console frames.
10268 (w32_term_init): Use w32_initialize_display_info. Do not set
10269 Vw32_num_mouse_buttons here, as it is not called for console
10270 frames. Build bitmaps for indicating truncated lines etc.
10271 (x_delete_display): Destroy pre-built bitmaps.
10272 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
10273 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
10274
4516715a
DL
102752000-02-27 Dave Love <fx@gnu.org>
10276
10277 * lisp.h: Add a bunch of prototypes.
10278
171ca836
KH
102792000-02-26 Kenichi Handa <handa@etl.go.jp>
10280
10281 * keyboard.c (read_char): Set `usec' correctly.
10282
4013921d
KH
102832000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
10284
10285 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
10286 `lambda', set reg[RRR] to the map index.
10287 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
10288 reg[RRR] to 0. Otherwise, set it to -1.
10289
9244a058
GM
102902000-02-25 Gerd Moellmann <gerd@gnu.org>
10291
2df636f4 10292 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 10293
18e21ce8 102942000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 10295
f43d79c1
GM
10296 * fileio.c (Ffile_symlink_p): If result starts with a `/'
10297 and contains a `:', prepend `/:'.
10298
10299 * window.c (select_window_1): If selected_window is nil,
10300 don't "swap out" the buffer's point.
10301 (Fset_window_configuration): Set selected_window to nil
10302 before calling Fselect_window.
10303 (unshow_buffer): Don't set point in buffer from window's point
10304 if another more recently selected window also shows the buffer.
10305
bed0c171
GM
103062000-02-25 Gerd Moellmann <gerd@gnu.org>
10307
449c3c52
GM
10308 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
10309
f5b58615
GM
10310 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
10311 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
10312 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
10313 variables.
10314 (DEFAULT_BUSY_CURSOR_DELAY): New define.
10315 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
10316 (hide_busy_cursor): New functions.
10317 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
10318
10319 * minibuf.c (read_minibuf): Cancel busy-cursor.
10320
10321 * keyboard.c (command_loop_1): Call start_busy_cursor before
10322 Fcommand_execute and cancel_busy_cursor after it.
10323 (timer_check): Remove busy-cursor code.
10324 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
10325 cursor timer.
10326
10327 * process.c (wait_reading_process_input): Remove busy-cursor code.
10328
10329 * eval.c (Fsignal): Call cancel_busy_cursor instead of
10330 Fx_hide_busy_cursor.
10331
10332 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
10333 Remove prototyoes.
10334 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
10335
10336 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
10337
10338 * xterm.c (XTread_socket): Remove busy-cursor code.
10339
4eb8436f
GM
10340 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
10341 (build_frame_matrix_from_leaf_window): Put code handling
10342 glyph row's not being a slice of a frame row in #if 0.
10343 (sync_window_with_frame_matrix_rows): New function.
10344 (frame_row_to_window): New function.
10345 (mirror_line_dance): Handle copies between windows.
10346
3cb65b0e
GM
10347 * lread.c (Fload): Use `xfree' instead of `free'.
10348 (init_obarray): Use `xmalloc' instead of `malloc'.
10349
bed0c171
GM
10350 * window.c (Fset_window_buffer): Set WINDOW to the window
10351 after decoding.
2add4349
GM
10352 (coordinates_in_window): Take frame's internal border width
10353 into account.
bed0c171 10354
42088c12
GM
103552000-02-24 Gerd Moellmann <gerd@gnu.org>
10356
10357 * xterm.c (x_display_and_set_cursor): Display cursor of
10358 non-selected windows depending on the setting of
10359 cursor_in_non_selected_windows.
10360
10361 * xdisp.c (cursor_in_non_selected_windows): New variable.
10362 (syms_of_xdisp): DEFVAR_BOOL it.
10363
d1e103b2
GM
103642000-02-23 Gerd Moellmann <gerd@gnu.org>
10365
723e779c
GM
10366 * data.c (Fstring_to_number): If number is greater than what
10367 fits into an integer, return a float.
10368
d1e103b2
GM
10369 * eval.c (specbind): Remove references to
10370 keyword_symbols_constant_flag.
10371
10372 * data.c (keyword_symbols_constant_flag): Removed.
10373 (Fmakunbound, set_internal, syms_of_data): Remove references to
10374 keyword_symbols_constant_flag.
10375
10376 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
10377
214f877f
KH
103782000-02-23 Kenichi Handa <handa@etl.go.jp>
10379
10380 * syntax.c (multibyte_syntax_as_symbol): New variable.
10381 (syms_of_syntax): Declare it as a Lisp variable.
10382 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
10383 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
10384 nonzero, treat all multibyte characters as symbol.
42088c12 10385 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
10386 characters.
10387
130adcb7
EZ
103882000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
10389
3cb65b0e 10390 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 10391 a deleted frame.
130adcb7 10392
17cbbf95
GM
103932000-02-21 Gerd Moellmann <gerd@gnu.org>
10394
10395 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
10396
10397 * xfns.c (x_window_to_frame, x_any_window_to_frame)
10398 (x_non_menubar_window_to_frame): Check the busy-cursor window.
10399
beb0bc36
DL
104002000-02-21 Dave Love <fx@gnu.org>
10401
10402 * frame.c (Vmouse_position_function): New variable.
10403 (Fmouse_position): Use it.
10404 (syms_of_frame): Install it.
10405
10406 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
10407
1d92afcd
GM
104082000-02-20 Gerd Moellmann <gerd@gnu.org>
10409
10410 * fileio.c (Finsert_file_contents): Unbind the binding of
10411 standard-output done by temp_output_buffer_setup.
329eed9f
GM
10412
10413 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
10414 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
10415 (specbind, unbind_to): Handle most common case of non-constant
10416 symbol with trivial value specially.
10417
10418 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
10419
18e21ce8 104202000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
10421
10422 * data.c (Fmake_variable_buffer_local): Doc fix.
10423 Init found_for_buffer to 0.
10424 (Fmake_variable_frame_local): If the variable has already
10425 been buffer-local, set the check_frame field.
10426
1d4311c3
EZ
104272000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
10428
10429 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
10430 produced for CODING_MODE_LAST_BLOCK requires.
10431
2dc95ddd
DL
104322000-02-18 Dave Love <fx@gnu.org>
10433
10434 * keyboard.c (echo_keystrokes): Remove declaration.
10435 (Vecho_keystrokes) New variable.
10436 (read_char, record_menu_key, read_key_sequence): Use it to allow
10437 use of float value.
10438 (syms_of_keyboard): Change Vecho_keystrokes declaration.
10439
10440 * lread.c: Undef feature selection macros before defining.
10441
f0930f35
GM
104422000-02-18 Gerd Moellmann <gerd@gnu.org>
10443
10444 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
10445 for symbols other than the symbol in question.
10446
e3d4de90
DL
104472000-02-17 Dave Love <fx@gnu.org>
10448
10449 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
10450
0b378936
GM
104512000-02-17 Gerd Moellmann <gerd@gnu.org>
10452
d621caf7
GM
10453 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
10454
0b378936
GM
10455 * alloc.c (enum mem_type): Compile unconditionally.
10456
3b451f74
EZ
104572000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
10458
10459 * xfaces.c (tty_defined_color): Don't return faulire indication
10460 for unspecified-fg and unspecified-bg pseudo-colors.
10461
10689a01
GM
104622000-02-17 Gerd Moellmann <gerd@gnu.org>
10463
1216f5e4
GM
10464 * alloc.c (mark_object): Don't mark symbol names in pure space.
10465 (gc_sweep): Don't unmark symbol names in pure space.
10466
10467 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
10468 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
10469 [GC_MARK_STACK]: New defines.
427ec082 10470 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
10471 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
10472
10473 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
10474
10475 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
10476 allocate_buffer instead of xmalloc.
10477
10478 * alloc.c (toplevel): Include setjmp.h.
10479 (PURE_POINTER_P): New define.
10480 (enum mem_type) [GC_MARK_STACK]: New enumeration.
10481 (Vdead) [GC_MARK_STACK]: New variable.
10482 (lisp_malloc): Add parameter TYPE, call mem_insert if
10483 GC_MARK_STACK is defined.
10484 (allocate_buffer): New function.
427ec082 10485 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
10486 (free_float) [GC_MARK_STACK]: Set type to Vdead.
10487 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
10488 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
10489 (MEM_NIL) [GC_MARK_STACK]: New define.
10490 (struct mem_node) [GC_MARK_STACK]: New structure.
10491 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
10492 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
10493 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
10494 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
10495 (mark_stack) [GC_MARK_STACK]: New functions.
10496 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
10497 (clear_marks): Removed.
10498 (gc_sweep): Set free conses' car, free floats' type, free
10499 symbols' function to Vdead. Use lisp_free to free buffers.
10500 (init_alloc_once): Initialize Vdead.
10501 (survives_gc_p): Return non-zero for pure objects.
10502
10503 * alloc.c: Add comments throughout the file.
10504
2503c8b1
GM
10505 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
10506 that unblocks alarms.
10507
8389e1e2
GM
10508 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
10509 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
10510 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
10511
10689a01 10512 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 10513
bfc17d18
KH
105142000-02-17 Kenichi Handa <handa@etl.go.jp>
10515
4a09dee0
KH
10516 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
10517 avoid infinite error signaling. Allocate sufficient memory for
10518 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 10519
2b927d02
SM
105202000-02-17 Stefan Monnier <monnier@cs.yale.edu>
10521
10522 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
10523 depends on the previous behavior.
10524
b49cb764
GM
105252000-02-16 Gerd Moellmann <gerd@gnu.org>
10526
10527 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
10528
99e95407
GM
105292000-02-15 Gerd Moellmann <gerd@gnu.org>
10530
10531 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
10532
10533 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 10534 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
10535 write(2).
10536
6ffd3cf7
RS
105372000-02-15 Richard M. Stallman <rms@gnu.org>
10538
10539 * data.c (set_internal): Don't make variable buffer-local
10540 if within a let-binding for the same buffer.
10541 (let_shadows_buffer_binding_p): New function.
10542
10543 * eval.c (specbind): For buffer-local value,
10544 record the current buffer also.
10545 (unbind_to): Cope with that change.
10546
cad53475
GM
105472000-02-15 Gerd Moellmann <gerd@gnu.org>
10548
10549 * window.c (Fsave_window_excursion): Doc fix.
10550
1aa963c8
SM
105512000-02-15 Stefan Monnier <monnier@cs.yale.edu>
10552
10553 * syntax.c (back_comment): Make sure we only consider comment-starters
10554 of the relevant style and return -1 in case of a failure to find the
10555 beginning of the comment.
10556 (Fforward_comment): If back_comment fails, go back to the position just
10557 after the comment-end.
10558 (scan_lists): Add comment describing a very minor bug.
10559
b9b84fd3
SM
105602000-02-14 Stefan Monnier <monnier@cs.yale.edu>
10561
10562 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
10563 `completion-regexp-list' in the docstring.
10564
3a28db80
DL
105652000-02-14 Dave Love <fx@gnu.org>
10566
10567 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
10568
fb4a568d
SM
105692000-02-14 Stefan Monnier <monnier@cs.yale.edu>
10570
10571 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
10572 to Emacs' syntax. Also fix the comment about set/not-set meanings
10573 since Emacs syntax is not the value 0 any more.
10574 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
10575 since it's now part of RE_SYNTAX_EMACS.
10576
1063ebb5
DL
105772000-02-12 Dave Love <fx@gnu.org>
10578
10579 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
10580 Alpha.
10581
fb07a302
GM
105822000-02-12 Gerd Moellmann <gerd@gnu.org>
10583
10584 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
10585
aaf2320c
DL
105862000-02-12 Dave Love <fx@gnu.org>
10587
10588 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
10589
10590 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
10591 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
10592 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
10593
10594 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
10595
10596 * s/nextstep.h: Don't define HAVE_ALLOCA.
10597
10598 * config.in: Add vfork bits.
10599
eedf8bde
GM
106002000-02-12 Gerd Moellmann <gerd@gnu.org>
10601
10602 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
10603 unwind function to undo the effect of stopping atimers.
10604
10605 * keyboard.c (bind_polling_period): Stop all timers except
10606 poll_timer.
10607
10608 * atimer.c (stopped_atimers): New variable.
10609 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
10610 New functions.
10611
10612 * atimer.h (stop_other_atimers, run_all_atimers)
10613 (unwind_stop_other_atimers): Add function prototypes.
427ec082 10614
eedf8bde
GM
10615 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
10616
8476c2f8
KR
106172000-02-11 Ken Raeburn <raeburn@gnu.org>
10618
10619 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
10620 library may depend on jpeg.
10621 (atimer.o): Depends on atimer.c.
10622
0e85e4a3
KH
106232000-02-11 Kenichi Handa <handa@etl.go.jp>
10624
10625 * insdel.c (del_range_1): Call update_compositions.
10626 (del_range_both): Call update_compositions just once..
10627
97fa0cc8
DL
106282000-02-10 Dave Love <fx@gnu.org>
10629
10630 * xfns.c (create_frame_xic): Fix initialization of automatic
10631 aggregates for pcc.
10632
25566a3c
KH
106332000-02-09 Kenichi Handa <handa@etl.go.jp>
10634
10635 * ccl.c (CCL_MAKE_CHAR): New macro.
10636 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
10637 registers by CCL_MAKE_CHAR before calling translate_char.
10638 <CCL_TranslateCharacterConstTbl> Likewise.
10639
69da54ba
DL
106402000-02-08 Dave Love <fx@gnu.org>
10641
10642 * lread.c (__EXTENSIONS__): Define.
10643
f7136ee8
GM
106442000-02-08 Gerd Moellmann <gerd@gnu.org>
10645
10646 * puresize.h (BASE_PURESIZE): Increase to 650000.
10647
7768790b
EZ
106482000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
10649
10650 * msdos.c (XMenuActivate): Turn off the cursor after displaying
10651 the help message.
10652
38fd211b
EZ
106532000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
10654
10655 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
10656 md, mh, mb, mr, and me to the fake termcap entry.
10657
66e4690f
KR
106582000-02-06 Ken Raeburn <raeburn@gnu.org>
10659
10660 * sound.c (sound_cleanup): Don't call device close routine if the
10661 function pointer is null.
10662
a75dfea0
AI
106632000-02-06 Andrew Innes <andrewi@gnu.org>
10664
10665 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
10666 around image definitions and prototypes.
10667 (gamma_correct) [WINDOWSNT]: New prototype.
10668
10669 * w32term.c (x_make_frame_visible): Replace call to
10670 input_poll_signal with poll_for_input.
10671
10672 * window.c [WINDOWSNT]: Include w32term.h.
10673
10674 * xdisp.c [WINDOWSNT]: Include w32term.h.
10675
10676 * makefile.nt: Add dependencies on w32gui.h.
10677 (OBJ1): Include atimer.obj.
10678 ($(BLD)\atimer.obj): New dependency rule.
10679
10680 * w32.c (sigmask): New function (does nothing).
10681 (sigunblock): Ditto.
10682
10683 * frame.c [WINDOWSNT]: Include w32term.h.
10684
10685 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
10686
10687 * lread.c (syms_of_lread): Fix literal newlines.
10688
10689 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
10690 the string constant limit (2048 bytes) in MSVC.
10691 (main): Ditto.
10692
59ddecde
GM
106932000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
10694
10695 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
10696 area.
10697 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
10698 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
10699 dispatch the event.
10700
07590973
DL
107012000-02-04 Dave Love <fx@gnu.org>
10702
10703 * fileio.c: Remove some unused vars.
10704 (_GNU_SOURCE): Define (for euidaccess).
10705
10706 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
10707
10708 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
10709 gcpro1, gcpro2.
10710 (read_minibuf): Deal with allow_props correctly.
10711
649351f9
EZ
107122000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
10713
10714 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
10715
66e4690f 107162000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
10717
10718 * search.c (compile_pattern): If a cache entry has a nil regexp,
10719 fill in that entry instead of clobbering a previously cached
10720 string regexp.
10721
66e4690f 107222000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
10723
10724 * puresize.h (BASE_PURESIZE): Increase to 610000.
10725
d240a249
GM
107262000-02-02 Gerd Moellmann <gerd@gnu.org>
10727
10728 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
10729 can GC.
10730
ca91fb26
KH
107312000-02-02 Kenichi Handa <handa@etl.go.jp>
10732
25660570
KH
10733 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
10734 instead of incrementing ic directly.
10735 <CCL_WriteExprConst> Likewise.
10736 <ccl_set_expr>: Set ic to jump_address.
10737
ca91fb26
KH
10738 * fileio.c (e_write): Fix the handling of
10739 CODING_FINISH_INSUFFICIENT_SRC.
10740
2ede9689
DL
107412000-02-01 Dave Love <fx@gnu.org>
10742
10743 * editfns.c (Fpropertize): Doc fix.
10744
10745 * process.c (Fstart_process): Doc fix.
10746
10747 * eval.c: Fix various doc strings not to duplicate information
10748 from help-manyarg-func-alist.
10749
10750 * window.c (Fset_window_margins): Don't make interactive. Doc
10751 fix.
10752
10753 * doc.c (Vhelp_manyarg_func_alist): New variable.
10754 (Fdocumentation): Use it.
10755 (syms_of_doc): Define it.
10756
b6680a0e
GM
107572000-01-31 Gerd Moellmann <gerd@gnu.org>
10758
2cb750ba
GM
10759 * xterm.c (xim_open_dpy): Remove unused local variable.
10760
74e9213b
GM
10761 * emacs.c (USAGE): Use term `display options' instead of `X
10762 options'.
10763
10764 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
10765 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
10766
b6680a0e
GM
10767 * fns.c (sweep_weak_table): New function.
10768 (sweep_weak_hash_tables): Use it. Keep on marking until there
10769 is no more change.
10770
994c5afe
GM
107712000-01-30 Gerd Moellmann <gerd@gnu.org>
10772
10773 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
10774 that XTread_socket does not crash by trying to call XNoOp on a
10775 closed display.
427ec082 10776
f00276e3
JR
107772000-01-30 Jason Rumney <jasonr@gnu.org>
10778
10779 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
10780 Change selected_frame to SELECTED_FRAME ().
10781 (w32_console_mouse_position): Remove #ifndef MULE from around
10782 `insist' parameter.
10783
10784 * makefile.nt: Remove dosfns.obj.
10785
10786 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
10787
10788 * w32fns.c (w32_defined_color): Check for valid frame before
10789 applying gamma correction. Eliminate dependency on frame elsewhere.
10790 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
10791 (w32_to_x_font): Use resx and resy not height_in and width_in.
10792 (x_to_w32_font): Doc fix.
10793 (xlfd_strip_height): New function to strip and return font height.
10794 (w32_font_match): Compare height separately from rest of xlfd
10795 spec, using xlfd_strip_height.
10796
10797 * w32term.c (w32_term_init): Swap resx and height_in, resy and
10798 width_in. Use w32_defined_color in place of defined_color.
10799
10800 * w32faces.c: Merge more of DOS and X specifics in preparation for
10801 merge with xfaces.c.
10802 (defined_color): Remove FIXME comment.
10803 (tty_color_name): Provide w32-specific function.
10804 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
10805
10806 * w32console.c (turn_on_face, turn_off_face): Removed.
10807 (w32_face_attributes): New function.
10808 (Global_variables): Reduce scope where possible.
10809 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
10810 fill attribute.
10811 (hl_mode): Don't modify text attributes.
10812 (write_glyphs): Don't do anything if len <= 0. Use
10813 w32_face_attributes to get attributes for drawing. Write
10814 terminating codes using char_attr_normal.
10815 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
10816 (update_begin, update_end): Likewise.
10817 (vga_stdcolor_name): New function.
10818 (initialize_w32_display): Remove char_attr_reverse and char_attr.
10819 (Fset_screen_color): Remove char_attr_reverse.
10820
b08e8bb2
GM
108212000-01-29 Gerd Moellmann <gerd@gnu.org>
10822
10823 * xfns.c (xic_set_preeditarea): Take window parameter and
10824 window-relative pixel-positions.
10825
10826 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
10827 is its frame's selected window.
10828 (xim_instantiate_callback): Likewise.
10829
10830 * xfns.c (x_create_im): Removed.
10831 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
10832 (supported_xim_styles): Renamed from supported_styles.
10833 (best_xim_style): Renamed from best_style.
10834 (create_frame_xic): Renamed from xic_create_frame.
10835 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 10836
b08e8bb2
GM
108372000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
10838
10839 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
10840 our frames, call XFilterEvent with 2nd parameter `None'.
10841 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
10842 returning XBufferOverflow.
10843 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
10844 area.
10845 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
10846 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
10847 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
10848 (xim_initialize, xim_close)
10849 [HAVE_X_I18N && HAVE_X11R6]: New functions.
10850 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
10851 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
10852 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
10853
10854 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
10855 and `xim_styles'.
10856 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
10857 `xic_style' and `xic_xfs'.
10858 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
10859 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
10860 (FRAME_XIM): Removed.
10861
10862 * xfns.c (supported_styles): New variable.
10863 (DEFAULT_STYLE, DEFAULT_FONT): New macros
10864 (xic_create_xfontset, best_style, xic_create_frame)
10865 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
10866 (xic_set_xfontset): New functions.
10867
142e109c
DL
108682000-01-28 Dave Love <fx@gnu.org>
10869
10870 * s/irix6-5.h: Revert last change after change to irix5-0.h.
10871
10872 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
10873
b02786f9
GM
108742000-01-28 Gerd Moellmann <gerd@gnu.org>
10875
d060bc9f
GM
10876 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
10877 for *scratch* if it already existed.
10878
b02786f9
GM
10879 * emacs.c (USAGE): New macro.
10880 (main): Use it to display usage information.
10881
2c52d7e4
EZ
108822000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
10883
10884 Support for the menu-help feature:
10885
10886 * msdos.h: Change prototypes of XMenuAddSelection and
10887 XMenuActivate.
10888
10889 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
10890 part of the line to the termscript file.
10891 (IT_clear_to_end): Clear the entire line, not just its beginning.
10892 (menu_help_message, prev_menu_help_message): New variables.
10893 (IT_menu_make_room): Make room for the help_text member.
10894 (IT_menu_display): New argument disp_help; all callers changed.
10895 If disp_help is non-zero, store the help text of the active menu
10896 item in menu_help_message.
10897 (XMenuAddPane): Initialize the help_text member to NULL.
10898 (XMenuAddSelection): New argument help_text. Store it in the
10899 XMenu structure.
10900 (XMenuActivate): New argument help_callback. If the value of
10901 menu_help_message has changed since the last time, display the
10902 menu help message text while waiting for the mouse to move. Clear
10903 the echo area before exiting.
10904 (XMenuDestroy): Free the help_text member.
10905
ffe0bcd1
GM
109062000-01-27 Gerd Moellmann <gerd@gnu.org>
10907
10908 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
10909 XMenuAddSelection. Pass help callback to XMenuActivate.
10910 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
10911
50dbd23f
EZ
109122000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
10913
10914 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
10915 and EMACS_SET_USECS.
10916
f5941bf8
GM
109172000-01-26 Dave Love <fx@gnu.org>
10918
6c67ddee
DL
10919 * editfns.c (Fchar_after, Fchar_before): Doc fix.
10920
f5941bf8
GM
10921 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
10922 an error may be signalled.
10923
9e49c990
GM
109242000-01-26 Gerd Moellmann <gerd@gnu.org>
10925
fc3cb460
GM
10926 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
10927 LD_SWITCH_SYSTEM inherited from irix5-0.h.
10928
9e49c990
GM
10929 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
10930
d0c037d8
GM
109312000-01-25 Gerd Moellmann <gerd@gnu.org>
10932
10933 * charset.c (Fstring): If there is a multibyte char among
10934 the args, always return a multibyte string.
10935
e12489f9
GM
109362000-01-25 Gerd Moellmann <gerd@gnu.org>
10937
10938 * sysdep.c (sys_select): Turn atimers off and on instead of
10939 recording and restoring old alarm handler
10940
10941 * process.c (toplevel): Include atimer.h.
10942 (create_process_1): Rewritten.
10943 (create_process): Use atimers instead of alarm.
10944 (wait_reading_process_input) [hpux]: Turn atimers off instead
10945 of turning off SIGALRM.
10946 (wait_reading_process_input): Turn off atimers instead off
10947 calling stop_polling.
10948
10949 * emacs.c (main): Call init_atimer.
10950
10951 * keyboard.c (toplevel): Include systime.h and atimer.h.
10952 (polling_for_input): Removed because unused.
10953 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
10954 (poll_timer): New variable.
10955 (poll_for_input, poll_for_input_1): New functions.
10956 (start_polling, stop_polling): Rewritten.
10957
10958 * keyboard.h (polling_for_input): Removed.
427ec082 10959
e12489f9
GM
10960 * atimer.h, atimer.c: New files.
10961
10962 * Makefile.in (obj): Add atimer.o.
10963 (atimer.o): New target.
10964
10965 * blockinput.h (pending_atimers): Add extern declaration.
10966 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
10967
10968 * lisp.h (popup_activated_flag): Add extern declaration.
10969
10970 * xmenu.c (popup_activated_flag): Make externally visible.
10971 (popup_activate_callback) [USE_MOTIF]: Increment
10972 popup_activated_flag.
10973 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
10974
10975 * xterm.c (toplevel): Include atimer.h.
10976 (toolkit_scroll_bar_interaction): New variable.
10977 (Fxt_process_timeouts): Removed.
10978 (x_process_timeouts): New function.
10979 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
10980 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
10981 (x_make_frame_visible): Call poll_for_input_1 instead of
10982 input_poll_signal. Don't call alarm.
10983 (x_initialize): Install timer calling x_process_timeouts.
427ec082 10984
1e5279b9
DL
109852000-01-24 Dave Love <fx@gnu.org>
10986
6c67ddee 10987 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
10988 Don't use -cckr -- apparently not now necessary.
10989
edf6aeb8
EZ
109902000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
10991
10992 * msdos.c (IT_menu_display): Truncate long menu lines at the right
10993 screen boundary.
10994
9badad41
JR
109952000-01-23 Jason Rumney <jasonr@gnu.org>
10996
10997 * w32fns.c (w32_defined_color): Apply gamma correction before
10998 trying to map to the palette.
10999 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
11000 to w32_clear_rect.
11001
11002 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
11003 here. Callers changed to always pass real device context.
11004 (w32_draw_bitmap): Likewise.
11005 (w32_get_glyph_overhangs): Likewise.
11006 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
11007 one.
11008 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
11009 pfnSetScrollInfo and SetScrollRange.
11010 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
11011 back into MULE characters after decoding them.
11012 (x_get_glyph_face_and_encoding): Likewise.
11013 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
11014 GetCharABCWidthsW fails, since this is defined on Windows 9x.
11015 (x_produce_glyphs): Calculate per char metrics for a character
11016 that we know exists in default font when font_not_found_p is true.
11017
63bd786b
JR
110182000-01-22 Jason Rumney <jasonr@gnu.org>
11019
11020 * makefile.nt (intervals.obj, composite.obj): New modules.
11021 (composite.h): Added as dependency where appropriate.
11022
11023 * w32gui.h (XGCValue): New struct for emulating X GCs.
11024
11025 * w32term.h (XCharStruct): New struct for emulating X.
11026
11027 * w32console.c (turn_on_face, turn_off_face): New functions.
11028 (change_line_highlight): New prototype for new redisplay.
11029 (write_glyphs): Support multibyte text. Support faces.
11030
11031 * w32faces.c: Complete rewrite for new redisplay based on new
11032 xfaces.c.
11033
11034 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
11035 throughout. struct frame * in place of FRAME_PTR.
11036 Skeleton support for images, toolbars, tooltips from xfns.c.
11037 (Fx_create_frame): Use system default for default scroll bar
11038 width.
11039 (w32_get_arg): Renamed from x_get_arg.
11040 (Fx_file_dialog): New function.
11041 (w32_list_fonts): Check cache before asking system.
11042 (Vw32_enable_synthesized_fonts): New variable.
11043 (Vw32_enable_italics): Obsolete, removed.
11044
11045 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
11046 Use SELECTED_FRAME macro.
11047
11048 * w32menu.c: Add skeleton support for help strings on menus.
11049 (add_menu_item): Native checkbox and radio support added, but not
11050 yet enabled due to bugs.
11051 (push_menu_item): Add parameters type, selection and help.
11052 Callers updated.
11053 Formatting changes to reduce unnecessary diffs with xmenu.c.
11054
11055 * w32select.c (Fw32_set_clipboard_data): Update call to
11056 find_charset_in_str.
11057
11058 * w32term.c: Complete rewrite for new redisplay based on new
11059 xterm.c with necessary sections merged back in from old w32term.c.
11060
6ffd3cf7 110612000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
11062
11063 * data.c (set_internal): Further fix in same criterion.
11064
6ffd3cf7 110652000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
11066
11067 * data.c (set_internal): Fix the criteria for whether
11068 to swap out the old cached binding.
11069
60af03f1
DL
110702000-01-19 Dave Love <fx@gnu.org>
11071
11072 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
11073
f9be074f
KH
110742000-01-18 Kenichi Handa <handa@etl.go.jp>
11075
11076 * regex.c (re_compile_fastmap): While checking a range table for
11077 `charset', skip flag bits for a character class correctly.
11078
52b8dbf9
GM
110792000-01-17 Gerd Moellmann <gerd@gnu.org>
11080
d36100c9
GM
11081 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
11082
52b8dbf9
GM
11083 * xfns.c (x_window): Call lw_create_widget with new parameter
11084 list.
11085
11086 * widget.c (EmacsFrameSetCharSize): Change size of children first
11087 because of problems with main window geometry management under
11088 Lesstif.
11089
11090 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
11091 MENU_ITEMS_ITEM_.*.
11092 (MENU_ITEMS_ITEM_HELP): New enumerator.
11093 (push_menu_item): Add parameter HELP. Record help in menu_items.
11094 (single_menu_item, single_submenu, list_of_items): Call
11095 push_menu_item with new parameter.
11096 (single_submenu): Set help string in widget value.
11097 (menu_highlight_callback): New function.
11098 (set_frame_menubar): Call lw_create_widget with new
11099 parameter list.
11100 (xmenu_show, xdialog_show): Ditto.
11101
3139018f
GM
111022000-01-13 Gerd Moellmann <gerd@gnu.org>
11103
11104 * sound.c (Fplay_sound): Improve doc string.
11105
83c8f461
RS
111062000-01-11 Richard M. Stallman <rms@gnu.org>
11107
11108 * lisp.h (set_internal): Enter the new arg.
11109
11110 * eval.c (specbind): Record buffer-local variables specially,
11111 indicating which buffer's binding was saved.
11112 (unbind_to): Restore buffer-local variables specially
11113 in the proper buffer.
11114
11115 * data.c (set_internal): New arg BUF.
427ec082 11116
83c8f461
RS
11117 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
11118 * data.c (Fset): Pass new arg to set_internal.
11119 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 11120
1fab1775
GM
111212000-01-11 Gerd Moellmann <gerd@gnu.org>
11122
11123 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
11124 xprintsym.
11125
83c8f461 111262000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
11127
11128 * minibuf.c (Ftry_completion): Doc fix.
11129
7a85e4df
GM
111302000-01-11 Gerd Moellmann <gerd@gnu.org>
11131
11132 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
11133 vector, too.
11134
a970dae4
AS
111352000-01-11 Andreas Schwab <schwab@suse.de>
11136
11137 * coding.c (code_convert_region): Initialize total_skip.
11138
c65d14ee
DL
111392000-01-08 Dave Love <fx@gnu.org>
11140
11141 * eval.c (Fuser_variable_p): Check customizability too.
11142
834938d2
GM
111432000-01-07 Gerd Moellmann <gerd@gnu.org>
11144
11145 * minibuf.c (Fcompleting_read): Doc fix.
11146
e0303cd6
GM
111472000-01-05 Gerd Moellmann <gerd@gnu.org>
11148
8a26744b
GM
11149 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
11150 -L /usr/local/lib.
11151
e0303cd6
GM
11152 * xfns.c (x_create_im): New function to set IM and IC of a frame.
11153 Check that input style is supported before trying to create an
11154 IC for it.
11155 (x_window): Call x_create_im.
427ec082 11156
2e471eb5
GM
111572000-01-04 Gerd Moellmann <gerd@gnu.org>
11158
560a7bd2
GM
11159 * xfns.c (current_gif_memory_src): New variable.
11160 (gif_load): Record the address of the current memory source
11161 in current_gif_memory_src.
11162 (gif_read_from_memory): Use current_gif_memory_src.
11163
f9ee84a3
GM
11164 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
11165 macros statement form.
11166
d1299cde
GM
11167 * sound.c (struct sound): Renamed from struct sound_file.
11168 (struct sound): Add members `data' and `header_size'.
11169 (enum sound_attr): Add SOUND_DATA.
11170 (current_sound, current_sound_device): Variables renamed from
11171 sound_file and sound_device.
11172 (parse_sound): Parse :data.
11173 (parse_sound): Handle sound data in strings.
11174 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 11175 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
11176 needed header size.
11177 (wav_play, au_play): Play sounds from string data.
11178
2e471eb5
GM
11179 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
11180
11181 * lisp.h: Add prototype for allocate_string_data.
11182
11183 * alloc.c (Fgarbage_collect): Return number of live and free
11184 strings.
11185
11186 * alloc.c (mark_buffer): Remove code in #if 0.
11187 (gc_sweep): Ditto.
11188 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
11189 (strings_consed): New variable.
11190 (allocate_string): Set it.
11191 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
11192 (Fmemory_use_counts): Return strings_consed. Use Flist.
11193
11194 * alloc.c: General cleanup in comments etc. Remove conditional
11195 compilation for `standalone'.
11196
11197 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
11198
11199 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
11200 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
11201 (DONT_COPY_FLAG): Removed.
11202 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
11203 (struct sdata, struct sblock): New
11204 (struct string_block): Rewritten.
11205 (STRINGS_IN_STRING_BLOCK): New macro.
11206 (oldest_sblock, current_sblock, total_strings, total_free_strings)
11207 (large_sblocks, string_blocks, string_free_list): New variables.
11208 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
11209 (init_strings): Rewritten.
11210 (allocate_string, allocate_string_data, compact_small_strings)
11211 (free_large_strings, sweep_strings): New functions.
11212 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
11213 (struct string_block_head, current_string_block)
11214 (first_string_block, large_string_blocks, STRING_FULLSIZE)
11215 (STRING_PAD): Removed.
11216 (make_uninit_multibyte_string, make_pure_string): Rewritten.
11217 (Fgarbage_collect): Don't set mark bit in large strings.
11218 (mark_object): Mark strings differently. Mark symbol names
11219 differently.
11220 (survives_gc_p): Test marked strings differently.
427ec082 11221 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
11222 symbol names.
11223 (compact_strings): Removed.
11224
42608ba8
EZ
112252000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
11226
11227 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
11228 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
11229
e0a09e1a
KH
112302000-01-04 Kenichi Handa <handa@etl.go.jp>
11231
dd9f0750 11232 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 11233 in a non-empty buffer.
dd9f0750 11234
3c0f3b15 11235 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 11236
44cd3ae5
GM
112372000-01-03 Gerd Moellmann <gerd@gnu.org>
11238
11239 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
11240 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
11241
11242 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
11243
c182a70f
EZ
112442000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11245
11246 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
11247 need to test for MSDOS frames.
11248
24480d5b
EZ
112492000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11250
11251 * dosfns.c (unspecified_colors): Remove.
11252 (msdos_stdcolor_idx): Use global variables unspecified_fg and
11253 unspecified_bg.
11254 (msdos_stdcolor_name): Return strings for unspecified fore- and
11255 back-ground colors.
11256
11257 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 11258 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
11259 (tty_color_name): Return Lisp strings for unspecified fore- and
11260 back-ground colors.
11261 (Finternal_set_lisp_face_attribute): Remove the special treatment
11262 for Qunspecified_{f,b}g.
11263 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
11264 string.
11265
047f434a
GM
112662000-01-03 Gerd Moellmann <gerd@gnu.org>
11267
11268 * xdisp.c (reseat_at_next_visible_line_start): Position before
11269 newline only if ending up on a newline.
11270 (next_element_from_ellipsis): Return success. Handle case of
11271 displaying no ellipsis. Fix case of ellipsis defined in display
11272 table.
11273 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
11274 returns 0.
11275
d684c676
EZ
112762000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11277
11278 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
11279 (Fcolor_supported_p): Renamed from face-color-supported-p.
11280
5fe1d139
EZ
112812000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11282
11283 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
11284 list of colors renamed to tty-defined-color-alist.
11285 (tty_color_name): Pass the frame to tty-color-by-index.
11286 (realize_tty_face): tty-color-alist is now a function which
11287 accepts the frame as argument.
11288
11289 * term.c (Ftty_display_color_p): Accept an optional argument
11290 FRAME.
11291
816be8b8
EZ
112922000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11293
11294 * term.c (insert_glyphs): Pass glyph, not &glyph, to
11295 encode_terminal_code.
11296
b635321e
EZ
112972000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11298
11299 * dispnew.c (mode_line_string): Support termcap frames as well.
11300
9b784e96
GM
113012000-01-01 Gerd Moellmann <gerd@gnu.org>
11302
27189709
GM
11303 * syntax.c (Fforward_word): Undo previous change.
11304
11305 * editfns.c (Fconstrain_to_field): Don't constrain if
11306 inhibit-field-text-motion is non-nil.
11307 (Fline_beginning_position): Undo previous change.
11308 (Fline_end_position): Ditto.
11309
11310 * syntax.c (Fforward_word): Notice field boundaries only if
11311 inhibit-field-text-motion is nil.
11312
11313 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
11314
11315 * editfns.c (Vinhibit_field_text_motion): New variable.
11316 (inhibit-field-text-motion): New DEFVAR_LISP.
11317 (Fline_beginning_position, Fline_end_position): Notice field
11318 boundaries only if inhibit-field-text-motion is nil.
11319
45158a91
GM
11320 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
11321 All calls adjusted.
11322 (x_build_heuristic_mask): Likewise.
11323 (xbm_load_image_from_file): Change error output.
11324 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
11325 (gif_load, gs_load, x_kill_gs_process): Ditto.
11326
9b784e96
GM
11327 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
11328 color indices when accessing raster pixels.
63cec32f
GM
11329 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
11330 one of :file or :data.
11331 (enum pbm_keyword_index): Add PBM_DATA.
11332 (pbm_format): Add :data.
11333 (pbm_image_p): Allow either :file or :data.
11334 (pbm_read_file): New function.
11335 (pbm_scan_number): Rewritten to read from string.
11336 (pbm_load): Support :data.
9b784e96 11337
2cb085db 11338See ChangeLog.8 for earlier changes.
6922b018
KH
11339
11340;; Local Variables:
49b3bd82 11341;; coding: iso-2022-7bit
6922b018 11342;; End: