(COMPOSITION_VALID_P): Allow integers as cdrs of
[bpt/emacs.git] / src / ChangeLog
CommitLineData
869fb12c
GM
12001-04-06 Gerd Moellmann <gerd@gnu.org>
2
3 * xdisp.c (Qinhibit_eval_during_redisplay): Make it a Lisp_Object.
4
441bf856
GM
52001-04-05 Gerd Moellmann <gerd@gnu.org>
6
4d664b04
GM
7 * sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
8
a55e4e68
GM
9 * editfns.c (Fcurrent_time_zone): Accept spaces in timezone
10 names.
11
30ca89f5
GM
12 * xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
13 (syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
14
15 * xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
16 shell widget's position only if it is non-null.
17
18 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]: Set
19 f->output_data.x->widget to null after destroying it.
20
81a81c0f
GM
21 * fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
22 FILENAME to bring it in synch with the documentation.
23
441bf856
GM
24 * xfaces.c (realizing_basic_faces_p): Renamed from
25 realize_default_face_p.
26 (realize_basic_faces): Set/clear realizing_basic_faces_p.
27 (realize_default_face): Don't set the flag.
28
702a1e8e
GM
292001-04-04 Gerd Moellmann <gerd@gnu.org>
30
1013f4e3
GM
31 * lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
32
33 * keyboard.c (echoing, echo_message_buffer): Make externally
34 visible.
35
36 * xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
37 the buffer that was used for echoing.
38
702a1e8e
GM
39 * xfaces.c (best_matching_font): Remove unused parameter PATTERN.
40 (first_font_matching): Removed unused function.
41 (x_face_list_fonts): Remove unused parameter SCALABLE_P.
42 (may_use_scalable_font_p): Remove parameter FONT; rename
43 parameter NAME to FONT.
44 (x_face_list_fonts): Fix missing bounds check.
45 (realizing_default_face_p): New variable.
46 (realize_default_face): Set and clear that flag.
47 (x_face_list_fonts): When called during the realization of the
48 default face, and no matching fonts are found when ignoring
49 scalable fonts and fonts matching a regexp from
50 face-ignored-fonts, try without ignoring fonts.
51
f9dbcda4
GM
522001-04-03 Gerd Moellmann <gerd@gnu.org>
53
ad18ffb1
GM
54 * xfns.c (postprocess_image): New function.
55 (lookup_image): Call it for all image types except PostScript.
56 (x_kill_gs_process): Call postprocess_image.
57
f9dbcda4
GM
58 * xterm.c (x_use_underline_position_properties): New variable.
59 (x_draw_glyph_string): Use it.
60 (syms_of_xterm): DEFVAR_BOOL it.
61
651f03b6
GM
622001-04-02 Gerd Moellmann <gerd@gnu.org>
63
64 * xterm.c (x_alloc_nearest_color_1): New function.
65 (x_alloc_nearest_color): Use it.
66 (x_color_cells): Take a Display as argument, instead of a frame.
67 (cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
68 (cvt_string_to_pixel, cvt_pixel_dtor): New functions.
69 (x_initialize): Register cvt_string_to_pixel as resource converter
70 string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
71
73d75a62
GM
722001-03-30 Gerd Moellmann <gerd@gnu.org>
73
b2046df8
GM
74 * xdisp.c (get_overlay_strings): Set iterator's end_charpos.
75 (set_iterator_to_next): If a string from a display property ends,
76 consider the case that this might also be the end of an
77 overlay string having the display property.
78
12700f40
GM
79 * xdisp.c (handle_display_prop): Fix recognition of subproperty
80 lists.
b2046df8 81
87d8eba4
GM
82 * xdisp.c (reseat_to_string): Undo last change.
83
73d75a62
GM
84 * dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
85 matrix of a window when the header line changes, when
86 new rows are allocated, or when the width changes.
87
911a2406
EZ
882001-03-30 Eli Zaretskii <eliz@is.elta.co.il>
89
90 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last
91 change.
92
aea51abe
EZ
932001-03-29 Eli Zaretskii <eliz@is.elta.co.il>
94
95 * fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
96 deprecated.
97
176bc847
GM
982001-03-29 Gerd Moellmann <gerd@gnu.org>
99
ed31fabf
GM
100 * data.c (Fsubr_interactive_form): New function.
101 (syms_of_data): Defsubr it.
102
176bc847
GM
103 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
104 (live_float_p, live_misc_p): Return 1 only if the offset of the
105 pointer in its block is >= 0.
106
e59d0e9d
GM
1072001-03-28 Paul Eggert <eggert@twinsun.com>
108
109 * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
110 microseconds calcuation. Avoid double-rounding problem.
111 In doc string, warn that the result is approximate.
112
f827b862
GM
1132001-03-28 Gerd Moellmann <gerd@gnu.org>
114
30a3f61c
GM
115 * eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
116 bind `inhibit-eval-during-redisplay' to t.
117
118 * lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
119
120 * xdisp.c (inhibit_eval_during_redisplay)
121 (Qinhibit_eval_during_redisplay): New variables.
122 (safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
123 don't eval, return nil instead.
124 (syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
125 Initialize Qinhibit_eval_during_redisplay.
126
e719f5ae
GM
127 * xdisp.c (reseat_to_string): If STRING is multibyte, set
128 the iterator's multibyte_p flag.
129
deb2613a
GM
130 * xfaces.c (realize_basic_faces): Decrement menu_face_change_count
131 instead of setting it to zero; it's incremented for each frame
132 where the menu face is changed.
133
44655e77
GM
134 * xterm.c (x_draw_relief_rect): Extend left shadow to the
135 bottom; change bottom shadow accordingly.
136
a02f1be0
GM
137 * xterm.c (expose_window_tree, expose_frame): Don't compute
138 intersections here.
139 (expose_window): Do it here instead.
140 (x_draw_glyph_string): Fix a computation of the underline
141 position.
142
f827b862
GM
143 * bytecode.c (BYTE_CODE_QUIT): New macro.
144 (Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
145
4bde0ebb
GM
1462001-03-27 Gerd Moellmann <gerd@gnu.org>
147
607ec83c
GM
148 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
149 Give up if matrix starts in an ellipsis.
150 (init_from_display_pos): Do nothing if POS doesn't specify
151 a dpvec_index but the iterator has such a position.
152
0245398f
GM
153 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
154
aba25348
GM
155 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
156 x/y position is (0, 0) after destroying the menu bar, restore
157 its original position.
158
4bde0ebb
GM
159 * xdisp.c (in_ellipses_for_invisible_text_p): New function.
160 (init_from_display_pos): Use it.
161 (try_window_reusing_current_matrix): Don't use cursor_row_p.
162
8cdb267e
GM
1632001-03-26 Gerd Moellmann <gerd@gnu.org>
164
165 * xdisp.c (try_window_id): Undo last change.
166
9948db79
EZ
1672001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
168
169 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
170
171 * buffer.c (syms_of_buffer): Doc fix.
172
2eddf899
GM
1732001-03-26 Gerd Moellmann <gerd@gnu.org>
174
175 * xfaces.c (x_update_menu_appearance): Use local variable
176 popup_path for setting font resources.
177
6c145d35
EZ
1782001-03-25 Eli Zaretskii <eliz@is.elta.co.il>
179
6a65b1b5
EZ
180 * frame.c (Fframe_list): Don't reference tip_frame if
181 HAVE_WINDOW_SYSTEM is not defined.
182
6c145d35
EZ
183 * emacs.c (main): Update the copyright year. From Werner LEMBERG
184 <wl@gnu.org>.
185
d74c1900
GM
1862001-03-25 Gerd Moellmann <gerd@gnu.org>
187
20fbd925
GM
188 * xdisp.c (init_from_display_pos): Test invisible property
189 with TEXT_PROP_MEANS_INVISIBLE instead of NILP.
190
927c5b3b
GM
191 * xdisp.c (redisplay_internal) <update one window>: Make sure
192 last_arrow_position and last_arrow_string are set.
193
d74c1900
GM
194 * frame.c (Fframe_list): Don't return a tooltip frame.
195
091f8878
GM
1962001-03-23 Gerd Moellmann <gerd@gnu.org>
197
43c09969
GM
198 * xdisp.c (mark_window_display_accurate_1): New function,
199 extracted from mark_window_display_accurate. Compute
200 BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED,
201 BUF_BEG_UNCHANGED, BUF_END_UNCHANGED.
202 (mark_window_display_accurate): Use it.
203 (redisplay_internal): Use it for the selected window.
204 (redisplay_internal): Avoid duplicate mark_window_display_accurate
205 for the selected frame.
206
ac90c44f
GM
207 * xdisp.c Use make_number, for readability.
208 (try_window_id): Disable rows below the window end.
209 (try_window_reusing_current_matrix): Use cursor_row_p.
210 (try_window_reusing_current_matrix) <scrolling up>: Fix disabling
211 of rows.
212 (init_from_display_pos): If POS specifies a position in a display
213 vector, maybe get the iterator set up for that ellipsis.
43c09969 214
091f8878
GM
215 * xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
216
991786dd
EZ
2172001-03-23 Eli Zaretskii <eliz@is.elta.co.il>
218
219 * xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
220
6c29b43c
GM
2212001-03-23 Gerd Moellmann <gerd@gnu.org>
222
223 * xfaces.c (x_update_menu_appearance): Use a different path
224 for Lucid popup menus.
225
d8731202
SM
2262001-03-22 Stefan Monnier <monnier@cs.yale.edu>
227
228 * xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
229
230 * xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
231 (string_buffer_position): Use `make_number'.
232
f61a541b
GM
2332001-03-22 Gerd Moellmann <gerd@gnu.org>
234
3c9e997b
GM
235 * xfaces.c (x_update_menu_appearance): Renamed from
236 x_set_menu_face_resources. Use different resources for popups.
237
238 * lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
239 (GC_CHECK_STRING_BYTES): Don't define.
240
364cd450
GM
241 * xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
242 Removed, together with subroutines.
243 (x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
d8731202 244 (realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
364cd450 245
d8731202
SM
246 * dispextern.h (x_set_menu_resources_from_menu_face):
247 Remove prototype.
364cd450 248
d8731202 249 * xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
364cd450
GM
250 Remove calls to x_set_menu_resources_from_menu_face.
251
d8731202
SM
252 * xfaces.c (xm_set_menu_resources_from_menu_face):
253 Remove #ifndef LESSTIF_VERSION.
f61a541b
GM
254
255 * xmenu.c: Include widget.h.
256 (single_submenu): Return int. Some cleanup.
257 (set_frame_menubar): Call x_set_menu_resources_from_menu_face.
258
140330de
GM
2592001-03-21 Gerd Moellmann <gerd@gnu.org>
260
261 * xterm.c (x_update_window_end): Handle overwritten mouse face
262 also for tool bar windows.
263 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
264 DRAW is DRAW_IMAGE_RAISED.
265
1741905c
GM
2662001-03-20 Gerd Moellmann <gerd@gnu.org>
267
fa88947e
GM
268 * print.c (syms_of_print): Doc fixes.
269
1741905c
GM
270 * fns.c (Fmd5): Doc fix.
271
ade0bee1
GM
2722001-03-19 Gerd Moellmann <gerd@gnu.org>
273
357e7376
GM
274 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
275 Clear area of the frame not occupied by the scroll bar.
276
c2c097cc
GM
277 * xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
278 tip frame's root window buffer to *tip* right after creating
279 the frame.
280
ade0bee1
GM
281 * xdisp.c (highlight_trailing_whitespace): Glyphs whose object
282 is an integer don't have to be for space characters.
283
88c6e37e
GM
2842001-03-16 Gerd Moellmann <gerd@gnu.org>
285
286 * indent.c (current_column, current_column_1, Fmove_to_column)
287 (compute_motion): Handle characters from display vectors
288 differently.
289
c62eed76
KH
2902001-03-15 Kenichi Handa <handa@etl.go.jp>
291
292 * xterm.c (x_draw_glyph_string): Draw relief (if any) before
293 drawing glyph string.
294
c899e7e6
GM
2952001-03-15 Gerd Moellmann <gerd@gnu.org>
296
d0bbfc99
GM
297 * keyboard.c (timer_check): Preserve the value of deactivate-mark.
298 (command_loop_1): Undo last change.
299
03d1a189
GM
300 * xterm.c (fast_find_position): Return the correct vpos.
301
c899e7e6
GM
302 * data.c (store_symval_forwarding): Add parameter BUF. If BUF is
303 non-null, set a per-buffer value in BUF instead of the current
304 buffer.
305 (swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
306 Call store_symval_forwarding with BUF null.
307 (set_internal): Call store_symval_forwarding with the BUF
308 parameter passed to set_internal. Formerly, the value was always
309 set in the current buffer; the buffer recorded in specbind for
310 this case wasn't used.
311 (arith_driver): Reindent.
312
313 * buffer.c (swap_out_buffer_local_variables): Call
314 store_symval_forwarding with BUF null.
315
316 * lisp.h (store_symval_forwarding): Change prototype.
317
318 * eval.c (specbind): Call store_symval_forwarding with BUF null.
319
57ac7c81
GM
3202001-03-14 Gerd Moellmann <gerd@gnu.org>
321
697617d9
GM
322 * frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
323 FOR_DELETION. Avoid resizing the mini-window of the selected
324 frame if FOR_DELETION is set.
325 (Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
326 (Fmake_frame_invisible): Change calls to do_switch_frame for new
327 signature.
328
329 * window.c (Fset_window_configuration): Change call to
330 do_switch_frame to new format.
331
332 * keyboard.c (quit_throw_to_read_char): Change call to
333 do_switch_frame to new format.
334
335 * lisp.h (do_switch_frame): Change prototype.
336
819dce0f
GM
337 * frame.c (Fframe_parameters): In the `buffer-list' frame
338 parameter, store the buffer list of FRAME, not the list of the
339 selected frame.
340
57ac7c81
GM
341 * xterm.c (x_draw_glyph_string_box): Don't draw a full-width
342 box just because the glyph row's full_width_p flag is set.
343
65008712
GM
3442001-03-14 Eli Zaretskii <eliz@is.elta.co.il>
345
346 * xdisp.c (highlight_trailing_whitespace): On character terminals,
347 skip the padding blanks inserted in extend_face_to_end_of_line,
348 before checking for trailing whitespace.
349
159cf431
GM
3502001-03-13 Gerd Moellmann <gerd@gnu.org>
351
19b2bb80
GM
352 * xmenu.c (popup_activate_callback, popup_deactivate_callback):
353 Remove special handling for LessTif/Motif.
354 (toplevel): Don't include Xm/Xm.h.
355
afcdc0a1
GM
356 * xterm.c (XTread_socket) <LeaveNotify, EnterNotify>: Remove
357 workaround code for LessTif; it doesn't work anymore.
358
2564ea1b 359 * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
57ac7c81 360 Xm/ScrollBarP.h.
afcdc0a1 361
23442ae4
GM
362 * xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]: Don't
363 access private scroll bar data; it's no longer necessary with
364 contemporary LessTif.
365
9faaaa52
GM
366 * xfaces.c (xm_set_menu_resources_from_menu_face): Change
367 #if 0 to #ifndef LESSTIF_VERSION.
368
159cf431
GM
369 * xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
370 removing button grabs.
371
c6f7429a
KH
3722001-03-13 Kenichi Handa <handa@etl.go.jp>
373
cb82d767
KH
374 * fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
375 and clip-large-size-font as obsolete.
376
c6f7429a
KH
377 * lread.c (read_multibyte): Check the validity of multibyte
378 sequence. If invalid, return the first byte.
379
760cefb5
GM
3802001-03-12 Gerd Moellmann <gerd@gnu.org>
381
382 * keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
383 before running the command; timer functions or process
384 filters may have set it.
385
5141f9d0
EZ
3862001-03-12 Eli Zaretskii <eliz@is.elta.co.il>
387
388 * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
389 Doc fix.
390
b6a15240
GM
3912001-03-12 Gerd Moellmann <gerd@gnu.org>
392
393 * xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
394 to sprintf.
395
95522746
GM
3962001-03-09 Gerd Moellmann <gerd@gnu.org>
397
db14cfc5
GM
398 * dispextern.h (string_buffer_position): Add prototype.
399
400 * xdisp.c (string_buffer_position, display_prop_string_p)
401 (single_display_prop_string_p): New functions.
402
403 * xterm.c (note_mouse_highlight): If there's no help-echo on
404 a string, look at the buffer text ``under'' it.
405
406 * keyboard.c (make_lispy_event): Add string info to the event,
407 analogous to what's done on mode lines.
408 (read_key_sequence): For a click on a string, consider `local-map'
409 and `keymap' of that string.
410
3cfd8357
GM
411 * keyboard.c (make_lispy_event, make_lispy_movement): Adjust
412 calls to buffer_posn_from_coords to new format.
413
414 * dispextern.h (buffer_posn_from_coords): Adjust prototype.
415
416 * dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
417 POS; return void.
418
95522746
GM
419 * fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
420 flags argument to emacs_open; it seems to conflict with O_EXCL.
421
898a399d
KH
4222001-03-09 Kenichi Handa <handa@etl.go.jp>
423
28cd4910
KH
424 * composite.h (struct composition): Change types of members;
425 glyph_len to unsigned, width to unsigned short.
898a399d 426
4cdf6a6c
AI
4272001-03-08 Andrew Innes <andrewi@gnu.org>
428
429 * w32menu.c (add_menu_item): Fix problems with using ownerdraw for
430 menu titles.
431
129004d3
GM
4322001-03-08 Gerd Moellmann <gerd@gnu.org>
433
221dd3e7
GM
434 * xdisp.c (handle_display_prop): Use it->w->buffer as object,
435 instead of nil.
436
5de7c6f2
GM
437 * xterm.c (note_mouse_highlight): Handle mouse-face and
438 help-echo in strings.
439 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
440 (fast_find_string_pos): New function.
441
442 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
443 (display_string): Call face_at_string_position with new
444 parameter.
445
446 * xfaces.c (face_at_string_position): Add parameter MOUSE_P.
447 Handle `mouse-face'.
448
449 * dispextern.h (face_at_string_position): Change prototype.
450
e1fbabaf
GM
451 * dired.c (directory_files_internal): Handle EAGAIN more
452 efficiently.
453
129004d3
GM
454 * keyboard.c (make_lispy_event): Avoid generating drag events
455 if the mouse hasn't actually moved to another buffer position.
456
80c8ab8c
DL
4572001-03-08 Dave Love <fx@gnu.org>
458
129004d3 459 * eval.c (syms_of_eval) <debug-on-error>: Doc fix.
80c8ab8c 460
989521fd
GM
4612001-03-08 Gerd Moellmann <gerd@gnu.org>
462
463 * process.c (Fset_process_window_size): Fix a typo.
464
bb5c338d
KH
4652001-03-08 Kenichi Handa <handa@etl.go.jp>
466
467 * coding.c (detect_coding_sjis): Do more rigid check.
468 (detect_coding_big5): Likewise.
469 (decode_coding_sjis_big5): Likewise.
470 (Fdetect_coding_region): Call detect_coding_system with tailing
471 anchor byte `\0' for more rigid detection.
a1b12fe9
KH
472 (detect_coding_mask): Fix the incorrect handling of arg
473 MULTIBYTEP.
bb5c338d
KH
474 (Fdetect_coding_string): Likewise.
475
8b8f9197
SM
4762001-03-07 Stefan Monnier <monnier@cs.yale.edu>
477
478 * bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
479 a string before extracting its data.
480
3bdf2660
GM
4812001-03-07 Gerd Moellmann <gerd@gnu.org>
482
483 * window.c (Frecenter): Rewrite code handling negative values
484 of ARG on graphical frames.
485
4862001-03-07 Eli Zaretskii <a34785@is.elta.co.il>
487
488 * window.c (displayed_window_lines): If W->start is outside the
489 accessible portion of the buffer, call start_display with BEGV or
490 ZV instead of W->start.
491
471f86b9
GM
4922001-03-07 Gerd Moellmann <gerd@gnu.org>
493
2ab62c6c
GM
494 * buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
495
471f86b9
GM
496 * process.c (Fset_process_filter): Don't crash if the input
497 file descriptor of PROCESS is closed.
498 (Fset_process_window_size): Likewise.
499
101922c3
GM
5002001-03-06 Kenichi Handa <handa@etl.go.jp>
501
502 * xterm.c (XTflash): Make the timeout of select shorter, and call
503 select repeatedly until the desired time expires.
504
45d051a7
GM
5052001-03-06 Gerd Moellmann <gerd@gnu.org>
506
507 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
508
509 * xfns.c (Fx_create_frame): Clear Vwindow_list.
510
511 * lisp.h (Vwindow_list): Declare extern.
512
8f372c46
EZ
5132001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
514
515 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
516
f16a7aa5
GM
5172001-03-06 Gerd Moellmann <gerd@gnu.org>
518
157ae273
GM
519 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
520 to detect a case where we have to highlight a different region
521 despite not having left the currently highlighted region.
522 Set mouse_face_overlay in the x_display_info.
45d051a7 523 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
157ae273
GM
524
525 * xterm.h (struct x_display_info): Add mouse_face_overlay.
526
527 * buffer.c (mouse_face_overlay_overlaps): New function.
528
529 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
530 (Qmouse_face): Declare extern.
531
f16a7aa5
GM
532 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
533 if face_change_count is non-zero.
534
827afcac
KH
5352001-03-06 Kenichi Handa <handa@etl.go.jp>
536
537 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
538 that the source is unibyte.
539
14c7242e
DL
5402001-03-05 Dave Love <fx@gnu.org>
541
827afcac 542 * xterm.c (XTmouse_position): Fix typo.
14c7242e 543
c28b847b
GM
5442001-03-05 Gerd Moellmann <gerd@gnu.org>
545
546 * minibuf.c (read_minibuf): Clean up the binding stack if
547 called noninteractively.
548
b86644f2
KH
5492001-03-05 Kenichi Handa <handa@etl.go.jp>
550
551 * coding.c (syms_of_coding): Docstring modified.
552
203682cc 5532001-03-05 Kenichi Handa <handa@etl.go.jp>
b86644f2
KH
554
555 * charset.c (char_to_string): If a single byte char has modifier
556 bits that can't be reflected to the character code, ignore them
45d051a7 557 instead of signaling an error.
b86644f2 558
e30bd7b7
EZ
5592001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
560
561 * s/msdos.h: Update copyright notice.
562
563 * dosfns.h: Update copyright notice.
564
565 * dosfns.c: Update copyright notice.
566
567 * msdos.c: Update copyright notice.
568
b52b65bd
GM
5692001-03-02 Gerd Moellmann <gerd@gnu.org>
570
571 * xterm.c (glyph_rect): New function.
572 (XTmouse_position): Use it to raise the threshold for mouse
573 movement event generation.
574
53c4b1e6
EZ
5752001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
576
577 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
578 specifies (reverse . t), reverse the initial screen colors.
579 (IT_set_frame_parameters): If the property is foreground-color,
580 but we are reversing the colors, set bg_set, not fg_set. Likewise
581 for setting background-color and reversing: set fg_set. Set
582 unspecified-fg and unspecified-bg correctly when (reverse . t) is
583 in effect.
584
585 * xfaces.c (Finternal_set_lisp_face_attribute)
586 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
587 parameters alist.
588
f964b4d7
GM
5892001-03-02 Gerd Moellmann <gerd@gnu.org>
590
ef53d75e
GM
591 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
592 to a single slash in the middle of file names.
593
cda0f4da
GM
594 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
595 Accept only alphanumeric time zone names.
596
f964b4d7
GM
597 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
598 or width area.
599 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
600 a widget to zero height.
601
c3c45f65
GM
6022001-03-01 Gerd Moellmann <gerd@gnu.org>
603
604 * window.c (Fwindow_end): Call move_it_past_eol only if
605 ending up on a partially visible line.
606
028d739a
DL
6072001-03-01 Dave Love <fx@gnu.org>
608
609 * ccl.c (Fccl_execute): Doc fix.
610
57c5889c
GM
6112001-03-01 Gerd Moellmann <gerd@gnu.org>
612
35f59f6b
GM
613 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
614 of the tool bar before calling x_figure_window_size.
615
f84ff02c
GM
616 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
617 NULL after destroying it, otherwise XTread_socket can access a
618 destroyed widget when input is unblocked.
619
8b8f9197 620 * xfns.c (x_set_foreground_color): Set the background of the cursor GC.
420f628c 621
57c5889c
GM
622 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
623 same name as before, although there was a change in fontsets.
624
224227d1
KR
6252001-02-28 Ken Raeburn <raeburn@gnu.org>
626
4560730a
KR
627 * lisp.h (Fframe_parameter): Declare.
628
224227d1 629 * window.c (set_window_buffer): Field vscroll is an int, not a
57c5889c 630 Lisp_Object.
224227d1 631
ece93c02
GM
6322001-02-28 Gerd Moellmann <gerd@gnu.org>
633
11ef99b9
GM
634 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
635 NULL instead.
636
637 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
638 NULL instead.
639
ece93c02
GM
640 * alloc.c (toplevel): Include process.h.
641 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
642 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
643 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
644 (allocate_vector, allocate_hash_table, allocate_window)
645 (allocate_frame, allocate_process, allocate_other_vector): New
646 functions.
647 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
648 (mark_maybe_pointer): New function.
649 (mark_memory): Also mark Lisp data to which only pointers
650 remain and not Lisp_Objects.
651 (min_heap_address, max_heap_address): New variables.
652 (mem_find): Return MEM_NIL if START is below min_heap_address or
653 above max_heap_address.
654 (mem_insert): Compute min_heap_address and max_heap_address.
655
656 * process.c (make_process): Use allocate_process.
657
658 * frame.c (make_frame): Use allocate_frame.
659
660 * window.c (make_window, make_dummy_parent): Use allocate_window.
661 (Fcurrent_window_configuration): Use allocate_other_vector.
662
663 * lisp.h (allocate_vectorlike): Remove prototype.
664 (allocate_vector, allocate_other_vector, allocate_frame)
665 (allocate_window, allocate_process, allocate_hash_table):
666 Add prototypes.
667
668 * fns.c (Fdelete, larger_vector): Use allocate_vector.
669 (make_hash_table, copy_hash_table): Use allocate_hash_table.
670
063af457
KH
6712001-02-27 Kenichi Handa <handa@etl.go.jp>
672
673 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
674 treat the produced bytes as a valid multibyte sequence.
675
676 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
677 (ccl_driver) <CCL_WriteMultibyteChar2>: Use
678 CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
679 <ccl_finish>: Set ccl->eight_bit_control properly.
680
681 * ccl.h (struct ccl_program): New member eight_bit_control.
682
f58c6494
SM
6832001-02-26 Stefan Monnier <monnier@cs.yale.edu>
684
685 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
686 accessible_keymaps_char_table.
687 (accessible_keymaps_char_table): Obey `is_metized'.
688 (where_is_internal, Fwhere_is_internal): Don't confuse int and
689 Lisp_Object.
690
c596c392
GM
6912001-02-26 Gerd Moellmann <gerd@gnu.org>
692
693 * dispnew.c: Check HAVE_TERM_H before including term.h.
694
425de386
AI
6952001-02-24 Andrew Innes <andrewi@gnu.org>
696
697 * makefile.w32-in: Update copyright notice.
698
2ba11bbd
SM
6992001-02-24 Stefan Monnier <monnier@cs.yale.edu>
700
701 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
702
66c56ed1
KH
7032001-02-24 Kenichi Handa <handa@etl.go.jp>
704
4c1593ce
KH
705 * Makefile.in (lisp): Add international/utf-8.elc.
706
66c56ed1
KH
707 * fontset.c (Fnew_fontset): Fix handling of the case that an
708 element of FONTLIST is a cons of family and registry.
709
796ead7e
JR
7102001-02-23 Jason Rumney <jasonr@gnu.org>
711
712 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
713 to height unconditionally.
714
715 * w32term.c (x_set_glyph_string_background_width): Extend the
716 background face to the end of the drawing area in the text area,
717 only.
718 (x_insert_glyphs): Call window_box_left to obtain the left
719 x-coordinate of the area to shift.
720
721 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
722 safe_run_hooks.
723
f6839838
AI
7242001-02-22 Andrew Innes <andrewi@gnu.org>
725
726 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header
727 files.
728 ($(BLD)\dispnew.obj):
729 ($(BLD)\editfns.obj):
730 ($(BLD)\fileio.obj):
731 ($(BLD)\filelock.obj):
732 ($(BLD)\keyboard.obj):
733 ($(BLD)\w32proc.obj):
734 ($(BLD)\process.obj):
735 ($(BLD)\sysdep.obj): Ditto.
736
737 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
738 header files.
739 ($(BLD)/dispnew.$(O)):
740 ($(BLD)/editfns.$(O)):
741 ($(BLD)/fileio.$(O)):
742 ($(BLD)/filelock.$(O)):
743 ($(BLD)/keyboard.$(O)):
744 ($(BLD)/w32proc.$(O)):
745 ($(BLD)/process.$(O)):
746 ($(BLD)/sysdep.$(O)): Ditto.
747
c224f70b
GM
7482001-02-22 Gerd Moellmann <gerd@gnu.org>
749
51695746
GM
750 * xdisp.c (forward_to_next_line_start): When taking the shortcut
751 at the start of the function, check that the \n in it->c is
752 from the iterator's current position.
753
a61b7058
GM
754 * xdisp.c (handle_single_display_prop): Add parameter
755 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
756 properties which replace the display of text with something else.
757 (handle_display_prop): Call handle_single_display_prop with
758 additional argument saying if we already replaced text display
759 with something else. Use AREF.
760 (with_echo_area_buffer_unwind_data, display_menu_bar)
761 (decode_mode_spec_coding): Use AREF and ASIZE.
762
3473f362
GM
763 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
764 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
765 * vmstime.h: Files removed.
766
2bb58df3
GM
767 * unexencap.c, unexfx2800.c: Files removed.
768
c224f70b
GM
769 * dispnew.c (direct_output_for_insert): Give up if we are showing
770 a message or just cleared the message because we might need to
771 resize the echo area window or display an empty echo area.
772
ffc9ff0c
GM
7732001-02-21 Gerd Moellmann <gerd@gnu.org>
774
0528abe1
GM
775 * xdisp.c (redisplay_internal): Do the
776 mark_window_display_accurate after all windows have been
777 redisplayed because this call resets flags in buffers which are
778 needed for proper redisplay.
779
ffc9ff0c
GM
780 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c: Use
781 display_hourglass_p, start_hourglass, cancel_hourglass instead of
782 the old names.
783
784 * w32term.h (struct x_output): Rename busy_cursor to
785 hourglass_cursor, busy_window to hourglass_window, busy_p to
786 hourglass_p.
787
788 * msdos.h (struct x_output): Rename busy_window to
789 hourglass_window, busy_p to hourglass_p.
790
791 * xterm.h (struct x_output): Rename busy_cursor to
792 hourglass_cursor, busy_window to hourglass_window, busy_p to
793 hourglass_p.
794
795 * xfns.c: Rename everything containing *busy_cursor* and similar
796 to *hourglass*.
797 (syms_of_w32fns): Rename x-busy-pointer-shape to
798 x-hourglass-pointer-shape, display-busy-cursor to
799 display-hourglass, busy-cursor-delay to hourglass-delay.
800
801 * w32fns.c: Rename everything containing *busy_cursor* and similar
802 to *hourglass*.
803 (syms_of_w32fns): Rename x-busy-pointer-shape to
804 x-hourglass-pointer-shape, display-busy-cursor to
805 display-hourglass, busy-cursor-delay to hourglass-delay.
806
807 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
808 of its busy_p flag.
809
810 * dispextern.h (start_hourglass, cancel_hourglass)
811 (display_hourglass_p): Renamed from *busy_cursor*.
812
ab2c5f0a
GM
8132001-02-20 Gerd Moellmann <gerd@gnu.org>
814
d17e49a8
GM
815 * keyboard.c (read_char): When an event from unread-command-events
816 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
817
fa97adf6
GM
818 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
819 equal to the current buffer.
820
ab2c5f0a
GM
821 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
822 nil, otherwise we're left with truncate_lines t when a message
823 is printed with message-truncate-lines bound to t.
824
aeac019e
GM
8252001-02-19 Gerd Moellmann <gerd@gnu.org>
826
c8bc6f65
GM
827 * window.c (Fmove_to_window_line): Undo last change.
828 (displayed_window_lines): Call line_bottom_y to determine
829 the line's bottom position.
830
831 * dispextern.h (line_bottom_y): Add prototype.
832
833 * xdisp.c (line_bottom_y): New function extracted from
834 pos_visible_p.
835 (pos_visible_p): Use it.
836
980a2d69
GM
837 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
838 set redisplaying_p to 0 here instead of in Frecursive_edit.
839 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
840 set redisplaying_p.
841
184d2372
GM
842 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
843 New variables.
844 (syms_of_xdisp): Initialize new variables.
845 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
846 Specbind `inhibit-menubar-update' when updating the menu bar.
847
65048e97
GM
848 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
849 safe_run_hooks.
850
851 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
852 safe_run_hooks.
853
a57c4026
GM
854 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
855 is null.
856
aeac019e
GM
857 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
858 to the start of the file.
859
76846b31
GM
8602001-02-16 Gerd Moellmann <gerd@gnu.org>
861
f3f053f3 862 * window.c (set_window_buffer): Fix last change.
25237df5 863
f3f053f3
GM
864 * window.c (set_window_buffer): Set window's vscroll to 0.
865
dad75588
GM
866 * window.c (coordinates_in_window): Increase width of area
867 where the vertical line can be dragged.
868
c220b753
GM
869 * xterm.c (x_set_glyph_string_background_width): Extend the
870 background face to the end of the drawing area in the text
871 area, only.
872
c56b1c1b
GM
873 * xdisp.c (handle_single_display_prop): Set iterator's position
874 to where the `display' property starts, like for images.
875 (dump_glyph): New function.
876 (dump_glyph_row): Use it. Dump info about marginal areas.
877
878 * dispnew.c (direct_output_for_insert): Recognize more cases where
879 glyphs can be written instead of being inserted.
880
881 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
882 the left x-coordinate of the area to shift.
883
76846b31
GM
884 * dired.c (directory_files_internal): Set result list to nil
885 before retrying.
886
0fc71a77
KH
8872001-02-15 Kenichi Handa <handa@etl.go.jp>
888
889 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
890 invalid multibyte sequence, treat *SRC as a character of
891 eight-bit-graphic.
892
25078b54
EZ
8932001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
894
895 * textprop.c (Fset_text_properties): Doc fix.
896
8399f8a0
GM
8972001-02-15 Gerd Moellmann <gerd@gnu.org>
898
899 * dispnew.c (update_text_area): Undo change of 2001-01-12.
900
9a2a6f73
DL
9012001-02-14 Dave Love <fx@gnu.org>
902
903 * coding.c: Doc and message fixes.
904
bf853fee
AI
9052001-02-14 Andrew Innes <andrewi@gnu.org>
906
907 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
908 Emacs frame above the screen size.
909
78c663d8
GM
9102001-02-14 Gerd Moellmann <gerd@gnu.org>
911
912 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
913
7cc9f69f
GM
9142001-02-13 Gerd Moellmann <gerd@gnu.org>
915
0a411995
GM
916 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
917 case that TO ends up beyond ZV after running before-change-functions.
918
5ddc1b75
GM
919 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
920 the selected window if it is showing the buffer in question.
921
7cc9f69f
GM
922 * dired.c (directory_files_internal): Initialize errno.
923 (toplevel): Include errno.h.
924
2e6621ca
GM
9252001-02-13 Kenichi Handa <handa@etl.go.jp>
926
927 * xfaces.c (best_matching_font): New parameter width_ratio.
928 Multiply avgwidth by width_ratio.
929 (choose_face_font): Call best_matching_font with width_ratio
930 calculated from the column width of C.
931
60222d69
AI
9322001-02-12 Andrew Innes <andrewi@gnu.org>
933
934 The following changes are to draw box lines inside characters area
935 if line-width is negative.
936
937 * w32term.c (x_produce_image_glyph): Pay attention to the case that
938 face->box_line_width is negative.
939 (x_produce_stretch_glyph): Likewise.
940 (x_produce_glyphs): Likewise.
941 (x_estimate_mode_line_height): Likewise.
942 (x_draw_glyph_string_background): Likewise.
943 (x_draw_glyph_string_foreground): Likewise.
944 (x_draw_composite_glyph_string_foreground): Likewise.
945 (x_draw_glyph_string_box): Likewise.
946 (x_draw_image_foreground): Likewise.
947 (x_draw_image_relief): Likewise.
948 (x_draw_image_foreground_1): Likewise.
949 (x_draw_image_glyph_string): Likewise.
950
9804b846
KH
9512001-02-09 Kenichi Handa <handa@etl.go.jp>
952
953 The following changes are to draw box lines inside characters area
954 if line-width is negative.
955
956 * xterm.c (x_produce_image_glyph): Pay attention to the case that
957 face->box_line_width is negative.
958 (x_produce_stretch_glyph): Likewise.
959 (x_produce_glyphs): Likewise.
960 (x_estimate_mode_line_height): Likewise.
961 (x_draw_glyph_string_background): Likewise.
962 (x_draw_glyph_string_foreground): Likewise.
963 (x_draw_composite_glyph_string_foreground): Likewise.
964 (x_draw_glyph_string_box): Likewise.
965 (x_draw_image_foreground): Likewise.
966 (x_draw_image_relief): Likewise.
967 (x_draw_image_foreground_1): Likewise.
968 (x_draw_image_glyph_string): Likewise.
969
970 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
971 and :line-width can be negative.
972 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be
973 negative.
974
49be9f70
JR
9752001-02-09 Jason Rumney <jasonr@gnu.org>
976
977 * w32term.c (w32_encode_char): Treat eight bit graphic and control
978 characters the same as ASCII and latin-1.
979 (x_display_and_set_cursor): Check for the focus frame's selected
980 window instead of selected_window.
981 (x_after_update_window_line): Don't clear if frame's internal
982 border width is zero.
983 (x_new_font): Don't change a tooltip's size.
984 (w32_initialize): Set char_ins_del_ok to 1.
985
986 * w32fns.c (Fx_show_tip): Fix calls to make_number.
987 (x_set_font): If font hasn't changed, avoid recomputing
988 faces and other things.
989 (x_set_tool_bar_lines): Do nothing if frame is
990 minibuffer-only,
991 (Fx_create_frame): Add the tool bar height to the frame
992 height.
993 (x_create_tip_frame): Prevent changing the tooltip's
994 background color by specifying a color for the default font
995 in .Xdefaults.
996 (Qcancel_timer): New variable.
997 (syms_of_w32fns): Initialize and staticpro it.
998 (Fx_hide_tip, Fx_show_tip): Use it.
999 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
1000 the timer.
1001 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
1002
1003 * w32.c (init_environment): Duplicate local string before putenv.
1004
555e35d2
SZ
10052001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
1006
1007 * charset.c (Fstring): A typo.
1008
19c92c94
KH
10092001-02-09 Kenichi Handa <handa@etl.go.jp>
1010
e47a1c33
KH
1011 * charset.c (Fstring): If all arguments are less than 256, return
1012 a unibyte string.
1013
1014 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
1015 return a unibyte string.
1016
19c92c94
KH
1017 * coding.c (code_convert_region): After detecting a coding, if
1018 nothing found, set coding->composing to COMPOSITION_NO.
1019 (decode_coding_string): Likewise.
1020
d8e675f5
SM
10212001-02-08 Stefan Monnier <monnier@cs.yale.edu>
1022
1023 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
1024 to avoid overflow.
1025
bd503487
KH
10262001-02-07 Kenichi Handa <handa@etl.go.jp>
1027
1028 * charset.c (parse_str_to_multibyte): New function.
1029
1030 * charset.h (parse_str_to_multibyte): Extern it.
1031
1032 * print.c (print_string): If we are going to print a unibyte
1033 string into a multibyte buffer, convert the string to multibyte by
1034 str_to_multibyte.
1035
a8370d72
AI
10362001-02-06 Andrew Innes <andrewi@gnu.org>
1037
1038 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
1039 been created. It seems we can get sent window messages such as
1040 WM_ERASEBKGND before we properly update a frame.
1041
c363a1d6
GM
10422001-02-06 Gerd Moellmann <gerd@gnu.org>
1043
1044 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
1045 Avoid some unnecessary cursor positioning.
1046
a08332c0
GM
10472001-02-05 Gerd Moellmann <gerd@gnu.org>
1048
1049 * xfaces.c (split_font_name): Compute numeric value of
1050 XLFD_AVGWIDTH.
1051 (LFACE_AVGWIDTH): New macro.
1052 (LFACEP): Use AREF.
1053 (check_lface_attrs): Check LFACE_AVGWIDTH.
1054 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
1055 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
1056 (merge_face_vectors): Check LFACE_AVGWIDTH.
1057 (Finternal_make_lisp_face): Use AREF.
1058 (xm_set_menu_resources_from_menu_face)
1059 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
1060 (Finternal_lisp_face_empty_p): Use AREF.
1061 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
1062 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
1063 Compare average widths..
1064 (best_matching_font): Arrange for comparing average widths.
1065
1066 * dispextern.h (enum lface_attribute_index): Add
1067 LFACE_AVGWIDTH_INDEX (invisible from Lisp).
1068
5cb3c8d4
DL
10692001-02-05 Dave Love <fx@gnu.org>
1070
1071 * puresize.h: Revert last change following loadup.el change.
1072
193fba87
AI
10732001-02-05 Andrew Innes <andrewi@gnu.org>
1074
1075 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
1076 invocation of temacs, to work with Windows 2000.
1077 (bootstrap-emacs): Ditto.
1078
e16f52ce
GM
10792001-02-05 Gerd Moellmann <gerd@gnu.org>
1080
7a58ab59
GM
1081 * xterm.c (x_display_and_set_cursor): Check for the focus
1082 frame's selected window instead of selected_window.
1083
e89aaabd
GM
1084 * xdisp.c (try_scrolling): If point is in the line below the
1085 window, make sure to move the iterator at least a canonical
1086 char height down.
1087
e16f52ce
GM
1088 * window.c (Fmove_to_window_line): Don't add 1 if window is
1089 vscrolled.
1090
789ce875
KH
10912001-02-05 Kenichi Handa <handa@etl.go.jp>
1092
1093 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not. If
1094 invalid, execute CCL_INVALID_CMD.
1095 (ccl_driver): If the CCL program is terminated because of
1096 CCL_STAT_INVALID_CMD, copy the remaining source data to the
1097 destination instead of throwing them away.
1098
20b28f82
GM
10992001-02-02 Gerd Moellmann <gerd@gnu.org>
1100
79fb38c0
GM
1101 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
1102 faces and other things.
1103
20b28f82
GM
1104 * xdisp.c (get_next_display_element): Fix case of empty
1105 display table entry.
1106
5a72551e
EZ
11072001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
1108
eb24d0bf
EZ
1109 * editfns.c (Fconstrain_to_field): Doc fix.
1110
6a3f48c7
EZ
1111 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
1112 into `thoroughly', to make it consistent with the doc string.
1113
5a72551e
EZ
1114 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
1115
01acdb05
GM
11162001-02-01 Gerd Moellmann <gerd@gnu.org>
1117
0353b28f
GM
1118 * search.c (search_buffer): Call set_search_regs with a byte
1119 position, not a character position.
1120
01acdb05
GM
1121 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
1122 minibuffer-only,
1123
e86b5133
EZ
11242001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
1125
1126 * frame.c (Fmodify_frame_parameters): Doc fix.
1127
7442878f
GM
11282001-01-31 Gerd Moellmann <gerd@gnu.org>
1129
01acdb05
GM
1130 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
1131 identifier which is not reserved by Standard C.
1132
7442878f
GM
1133 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
1134
1135 * window.c (enum window_part): New enumeration.
1136 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
1137 Qright_bitmap_area.
1138 (coordinates_in_window): Return an enumerator from enum
1139 window_part. Fix handling of right scroll bar.
1140 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
1141 `right-fringe' instead of `left-bitmap-area' and
1142 `right-bitmap-area'. Use enumerators from enum window_part
1143 instead of hard-coded integers.
1144 (check_window_containing, window_from_coordinates): Use
1145 enumerators from enum window_part instead of hard-coded integers.
1146 (syms_of_window): Replace Qleft_bitmap_area and
1147 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
1148
7c132cba
EZ
11492001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
1150
1151 * editfns.c (Fformat_time_string): Doc fix.
1152
c359dd9e
SM
11532001-01-31 Stefan Monnier <monnier@cs.yale.edu>
1154
1155 * keymap.c (Fwhere_is_internal): Use the first valid binding
1156 if no ascii binding is found (when firstonly is t).
1157
ce070307
GM
11582001-01-31 Gerd Moellmann <gerd@gnu.org>
1159
b4f30ec5
GM
1160 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
1161 instead of Finteractive_p.
1162
1163 * lisp.h (interactive_p): Add prototype.
1164
1165 * eval.c (interactive_p): New function.
1166 (Finteractive_p): Use it.
1167
ce070307
GM
1168 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
1169
f57b6e64
DL
11702001-01-31 Dave Love <fx@gnu.org>
1171
d61c7afe
DL
1172 * .gdbinit (hook-run): Define to run xreload.
1173
f57b6e64
DL
1174 * textprop.c (Fset_text_properties): Fix newline in doc string.
1175
eef93f99
GM
11762001-01-30 Gerd Moellmann <gerd@gnu.org>
1177
1178 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp): Use
1179 DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
1180
1181 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
1182 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
1183 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
1184
1185 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
1186 height.
1187
d9c1f6f9
DL
11882001-01-30 Dave Love <fx@gnu.org>
1189
1190 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
1191 AFTER_POTENTIAL_GC.
1192
e8f044a0
GM
11932001-01-29 Gerd Moellmann <gerd@gnu.org>
1194
1195 * bytecode.c (Fbyte_code) <Bcurrent_column>: Add
1196 BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
1197
8e1db7b3
EZ
11982001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
1199
1200 * textprop.c (Fset_text_properties): Doc fix.
1201
4eefd9d2
GM
12022001-01-29 Gerd Moellmann <gerd@gnu.org>
1203
1204 * xdisp.c (forward_to_next_line_start): Remove xassert.
1205
fccb8288
EZ
12062001-01-29 Jason Rumney <jasonr@gnu.org>
1207
4eefd9d2 1208 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
fccb8288
EZ
1209 returning without releasing it.
1210
76581eab
KH
12112001-01-29 Kenichi Handa <handa@etl.go.jp>
1212
1213 * w32fns.c (w32_font_match): Allocate three more bytes to regex
1214 for '^', '$', and '\0'.
1215
83a96b4d
AC
12162001-01-28 Andrew Choi <akochoi@i-cable.com>
1217
5604ec34
AC
1218 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
1219 regex for '^', '$', and '\0'.
1220
83a96b4d
AC
1221 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
1222 only if current_sblock has been initialized.
1223
1224 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
1225 terminal frame even if it is the only visible frame.
1226
c09a6440
KH
12272001-01-28 Kenichi Handa <handa@etl.go.jp>
1228
1229 * fontset.c (font_family_registry): Even if FONTNAME conform to
1230 XLFD, if it specifies other fields than family and registry,
1231 return FONTANME. New argument FORCE if nonzero cancel that
1232 feature.
1233 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
1234 a signle byte character. Don't set FAMILY part to nil here. It
1235 is handled by the caller choose_face_font.
1236 (Fnew_fontset): Call font_family_registry with FORCE 0.
1237 (Fset_fontset_font): Likewise.
1238
4dcd74e6
GM
12392001-01-27 Gerd Moellmann <gerd@gnu.org>
1240
1241 * xdisp.c (display_line): Don't treat a newline as fitting
1242 on the line.
1243
d2906bf8
GM
12442001-01-26 Gerd Moellmann <gerd@gnu.org>
1245
0130fe1a
GM
1246 * window.c (size_window): Set the window's orig_top to nil when
1247 changing heights, so that a future shrink_mini_window won't
1248 restore a bogus height.
1249
550f0e6a
GM
1250 * frame.c (do_switch_frame): If selected frame has a mini-window,
1251 resize that to exact size.
1252
b7b20fbd
GM
1253 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
1254
a47b7816
GM
1255 * xdisp.c (display_line): Simplify check for glyphs fitting
1256 entirely in the line.
1257
d2906bf8
GM
1258 * xfns.c (xic_style): New variable.
1259 (create_frame_xic): Move static variable to global scope for
550f0e6a 1260 the case that `static' gets defined away.
d2906bf8 1261
73df2b1e
KH
12622001-01-26 Kenichi Handa <handa@etl.go.jp>
1263
1264 * coding.c (decode_coding): Set a flag for inhibiting
1265 inconsistent eol.
1266 (code_convert_region): Always set saved_coding_symbol.
1267 (decode_coding_string): Likewise. Update coding->symbol when we
1268 encounter a inconsistent eol by the same way as
1269 code_convert_region.
1270
6613cfc4
GM
12712001-01-25 Gerd Moellmann <gerd@gnu.org>
1272
c5e6e06b
GM
1273 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
1274 XClearArea.
1275
1276 * xterm.c (x_after_update_window_line): Don't clear if frame's
1277 internal border width is zero.
1278 (x_clear_area): New function.
1279 (x_after_update_window_line, x_clear_end_of_line)
1280 (x_scroll_bar_create, x_scroll_bar_set_handle)
1281 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
1282 instead of XClearArea.
1283
1284 * xterm.h (x_clear_area): Add prototype.
1285
6613cfc4
GM
1286 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
1287 which doesn't seem necessary anymore with Lesstif 0.92.
1288
650cc6cc
DL
12892001-01-25 Dave Love <fx@gnu.org>
1290
34ac3367
DL
1291 * puresize.h (BASE_PURESIZE): Up to 720000.
1292
650cc6cc
DL
1293 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
1294
5e37dc22
GM
12952001-01-25 Gerd Moellmann <gerd@gnu.org>
1296
e1e441f9
GM
1297 * xdisp.c (echo_area_display): Don't call redisplay_internal
1298 when Emacs is shutting down. We can't run hooks etc. that
1299 would be necessary to do a redisplay.
1300
5e37dc22
GM
1301 * lread.c (read_integer): Use type EMACS_INT instead of int.
1302
0fb94c7f
EZ
13032001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
1304
1305 * ccl.c (ccl_driver): Fix last change.
1306
e3778624
KH
13072001-01-25 Kenichi Handa <handa@etl.go.jp>
1308
1309 * ccl.h (sturct ccl_program): New member suppress_error.
1310
bb264518 1311 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
e3778624
KH
1312 insert error message to the output.
1313 (setup_ccl_program): Initialize ccl->suppress_error to 0.
1314
1315 * coding.h (struct coding_system): New member suppress_error.
1316
1317 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
1318 (Fset_terminal_coding_system_internal): Set the member
1319 suppress_error to 1.
1320 (Fset_safe_terminal_coding_system_internal): Likewise.
1321
245ed2b1
SM
13222001-01-24 Stefan Monnier <monnier@cs.yale.edu>
1323
1324 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
1325 as if it was a `charset'.
1326
f9aaedb6
GM
13272001-01-24 Gerd Moellmann <gerd@gnu.org>
1328
1329 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
1330 value in where_is_cache; the next lookup in the cache returns
1331 something bogus if we do.
1332
c3902c3e
EZ
13332001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
1334
1335 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
1336 if HAVE_WINDOW_SYSTEM isn't defined.
1337
3497f73e
GM
13382001-01-24 Gerd Moellmann <gerd@gnu.org>
1339
e7e41584
GM
1340 * fns.c (sweep_weak_table): Fix code taking items out of
1341 the hash collision chain. Some cleanup.
1342
3497f73e
GM
1343 * xterm.c (x_new_font): Don't change a tooltip's size.
1344
1345 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
1346 background color by specifying a color for the default font
1347 in .Xdefaults.
1348
3d48e687
KH
13492001-01-24 Kenichi Handa <handa@etl.go.jp>
1350
96531b20
KH
1351 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
1352 a workaround for SunOS 4's cc.
1353 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
1354 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
1355 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
1356 statement.
3d48e687 1357
a30629d2
GM
13582001-01-23 Gerd Moellmann <gerd@gnu.org>
1359
1360 * xterm.c (x_set_window_size_1): New function extracted from
1361 x_set_window_size.
1362 (x_set_window_size): Use it.
1363 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
1364 doesn't have a widget, like tooltips.
1365
5a43decf
EZ
13662001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
1367
1368 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc
1369 fix.
1370
b0e98867
KH
13712001-01-23 Kenichi Handa <handa@etl.go.jp>
1372
1373 * fns.c (Fset_char_table_default): Fix to make sub char-table
1374 correctly.
1375
50606b4c
GM
13762001-01-22 Gerd Moellmann <gerd@gnu.org>
1377
cb2ddc53 1378 * xdisp.c (build_desired_tool_bar_string): Make sure we have
a30629d2 1379 a desired tool bar string, even if there are no tool bar
cb2ddc53
GM
1380 items.
1381
57c28064
GM
1382 * xdisp.c (Ftool_bar_lines_needed): New function.
1383 (syms_of_xdisp): Defsubr it.
1384
50606b4c
GM
1385 * editfns.c (Fformat): Don't extend text properties from arguments
1386 to padding chars in the result.
1387
2f169c38
EZ
13882001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
1389
1390 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
1391
0f32f023
AI
13922001-01-20 Andrew Innes <andrewi@gnu.org>
1393
1394 * w32term.c (w32_ring_bell): Only support visible bell on w32
1395 frames.
1396 (w32_initialize): Don't set term hooks that aren't actually needed
1397 in windowed mode.
1398
1399 * xfaces.c (realize_default_face):
1400 (realize_face):
1401 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
1402
1403 * xdisp.c (handle_single_display_prop): Remove references to
1404 FRAME_W32_CONSOLE_P.
1405
1406 * dispnew.c (Fredraw_frame): Remove reference to
1407 FRAME_W32_CONSOLE_P.
1408
1409 * frame.h (output_method): Remove output_w32_console method.
1410 (FRAME_W32_CONSOLE_P): Remove macro.
1411
1412 * frame.c (Qw32_console): Remove variable.
1413 (Fframep): Remove references to it.
1414 (syms_of_frame): Ditto.
1415 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
1416
1417 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
1418 redefinition.
1419
7173eada
KH
14202001-01-20 Kenichi Handa <handa@etl.go.jp>
1421
1422 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
1423
755b45ce
AI
14242001-01-19 Andrew Innes <andrewi@gnu.org>
1425
1426 * w32.c (init_environment): Add a version-independent site-lisp
1427 directory to EMACSLOADPATH, after the version dependent one.
1428
0a949811
GM
14292001-01-19 Gerd Moellmann <gerd@gnu.org>
1430
8501998a
GM
1431 * editfns.c (Fbuffer_substring): Doc fix.
1432
0a949811
GM
1433 * xdisp.c (message_dolog, message2, message2_nolog): Rename
1434 parameter LEN to NBYTES.
1435
e6ebcbbe
KH
14362001-01-19 Kenichi Handa <handa@etl.go.jp>
1437
200ecca2
KH
1438 * charset.c (strwidth): Use c_string_width.
1439 (c_string_width): New function.
1440 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
1441 Caller changed.
1442
1443 * charset.h (c_string_width, lisp_string_width): Extern them.
1444
1445 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
1446
e6ebcbbe
KH
1447 * indent.c (check_composition): Check validity of composition.
1448
200ecca2
KH
1449 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
1450 characters by calling c_string_width.
1451 (x_consider_frame_title): Get byte length of frame tile string
1452 correctly.
1453 (display_mode_element): Pay attention to width of non-ASCII
1454 characters by calling strwidth.
1455
8692ca92
GM
14562001-01-18 Gerd Moellmann <gerd@gnu.org>
1457
8962e303
GM
1458 * xfns.c (Qcancel_timer): New variable.
1459 (syms_of_xfns): Initialize and staticpro it.
1460 (Fx_hide_tip, Fx_show_tip): Use it.
1461 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
1462 the timer.
1463 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
1464
91523be9
GM
1465 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
1466
1467 * window.h (WINDOW_LIVE_P): New macro.
1468
b0b7ed0e
GM
1469 * window.c (window_size_fixed): New variable.
1470 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
1471 the doc string.
1472
06bccf8e
GM
1473 * eval.c (specbind): If binding a per-buffer variable which
1474 doesn't have a buffer-local value in the current buffer, change
1475 the global value by changing the value of the symbol bound in all
1476 buffers not having their own value, to make it consistent with
1477 what happens with other buffer-local variables.
1478
8692ca92
GM
1479 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
1480
1481 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
1482 when searching for a newline.
1483
bb3a3b50
KH
14842001-01-18 Kenichi Handa <handa@etl.go.jp>
1485
1486 * xdisp.c (display_string): Fix previous change.
1487
c2cc16fa
JR
14882001-01-18 Jason Rumney <jasonr@gnu.org>
1489
1490 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
1491 GLYPH_DEBUG is defined.
1492 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
1493 true for images with `:ascent 100'.
1494 (x_set_mouse_face_gc): If the last used mouse face has gone in the
1495 meantime, use face MOUSE_FACE_ID.
1496 If first glyph isn't a character glyph, use the ASCII NUL
1497 character to determine the face.
1498 (expose_area): Do not treat left margin specially.
1499 (note_mode_line_highlight): If no local_map, check global keymap.
1500 (note_mouse_highlight): Initialize overlay.
1501 (clear_mouse_face): Don't return if tip_frame is
1502 non-nil.
1503 (show_scroll_bars): Remove unused function.
1504 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
1505 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
1506 Clip to row.
1507 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be
1508 nil.
1509 (x_free_frame_resources): Unload relief colors.
1510
9c11f79e
GM
15112001-01-17 Gerd Moellmann <gerd@gnu.org>
1512
3aec8722
GM
1513 * xdisp.c (forward_to_next_line_start): Avoid calling
1514 get_next_display_element when the newline is already found. This
1515 may change the iterator's position, when its current position is
1516 equal to the iterator's stop_charpos.
1517
f3ffc2c3
GM
1518 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
1519 zero, use this method only at the end of a line.
1520
a86110a8
GM
1521 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
1522 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
1523 if SCALABLE_FONTS_P is set.
1524
d26d6fd9
GM
1525 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
1526 so that scalable fonts are included.
1527
9c11f79e
GM
1528 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
1529 In the cache, use a key containing the information if scalable
1530 fonts are included.
1531 (x_load_font): Adapt to change of keys in the font cache.
1532
15332001-01-17 Kim F. Storm <storm@filanet.dk>
1534
d26d6fd9
GM
1535 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
1536 XListFonts to take advantage of font caching.
1537
9c11f79e
GM
1538 * xterm.c (x_list_fonts): Ensure caching font information when
1539 called for a null frame, which is the case frequently when Emacs
1540 starts.
1541
51446987
GM
15422001-01-17 Gerd Moellmann <gerd@gnu.org>
1543
f864120f
GM
1544 * xfns.c (QCconversion): Replaces QCalgorithm.
1545
1546 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
1547
1548 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
1549 of :algorithm.
1550
e37d1417
GM
1551 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
1552 not everything could be displayed.
1553
51446987
GM
1554 * line.h, x-list-font.c: Files removed because unused.
1555
9ad4f3e5
AI
15562001-01-17 Andrew Innes <andrewi@gnu.org>
1557
1558 * dired.c (directory_files_internal): Convert result from readdir
1559 to a unibyte string initially, to avoid possible misinterpretation
1560 of some bytes as the internal form of Emacs characters.
1561
2eda09b5
KH
15622001-01-17 Kenichi Handa <handa@etl.go.jp>
1563
1564 * fns.c (concat): Be sure to avoid putting the same `composition'
1565 property on the adjacent regions.
1566
826f3788
GM
15672001-01-16 Gerd Moellmann <gerd@gnu.org>
1568
f251459d
GM
1569 * window.c (Fset_window_hscroll): Don't set window's min_hscroll
1570 here.
1571 (Fscroll_right, Fscroll_left): Set it here instead, if called
1572 interactively.
1573
d57b83b3
GM
1574 * buffer.c (Fset_buffer_modified_p): Set buffer's
1575 prevent_redisplay_optimizations_p flag.
1576
826f3788
GM
1577 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
1578 * sysdep.c, vmsproc.c, xselect.c: Call
1579 redisplay_preserve_echo_area with additional arg.
1580
1581 * dispextern.h, lisp.h (redisplay_preserve_echo_area): Change
1582 prototype.
1583
1584 * xdisp.c (redisplay_preserve_echo_area): Add parameter
1585 FROM_WHERE, for debugging.
1586
261d788b
KH
15872001-01-16 Kenichi Handa <handa@etl.go.jp>
1588
1589 * ccl.c (Fregister_ccl_program): Handle the return value of
1590 resolve_symbol_ccl_program correctly.
bda6b481
KH
1591 (CCL_Extension): Fix typo (originally CCL_Extention). Caller
1592 changed.
261d788b 1593
bccee4f2
GM
15942001-01-15 Gerd Moellmann <gerd@gnu.org>
1595
e4ded23c
GM
1596 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
1597 has gone in the meantime, use face MOUSE_FACE_ID.
1598
ae24cb3b
GM
1599 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: If
1600 x_display_info_for_display returns null, don't try to close
1601 the display; we didn't open it.
1602
bccee4f2
GM
1603 * dispnew.c (save_or_restore_current_matrices): Function removed.
1604 (save_current_matrix, restore_current_matrix): New functions.
1605 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
1606 restore the frame's current matrix. Due to the glyph pointer
1607 setup done in adjust_glyph_matrix, there is no easy way to make
1608 saving the current matrix in the desired matrix generally correct,
1609 so don't try it.
1610
ebeccffa
KH
16112001-01-15 Kenichi Handa <handa@etl.go.jp>
1612
1613 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
1614 truncation glyphs.
1615 (display_line): Optimize for wide characters.
e4ded23c 1616 (display_string): Don't try to display a multi-column character
ebeccffa
KH
1617 partially. On ttys, produce more than one truncation glyph for
1618 multi-column characters that don't fit on the line.
1619
64388126
KH
16202001-01-13 Kenichi Handa <handa@etl.go.jp>
1621
1622 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]: Define
1623 it instead of WORDS_BIGENDIAN. Caller changed.
1624
8edb0a6f
JR
16252001-01-13 Jason Rumney <jasonr@gnu.org>
1626
1627 * w32fns.c (Fimage_size, image_ascent, lookup_image)
1628 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
1629 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1630 (tiff_format, gif_format, gs_format): Adapt to change of image
1631 margins.
1632
1633 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
1634 (x_draw_image_relief, x_draw_image_foreground_1)
1635 (x_draw_image_glyph_string): Adapt to change of image margins.
1636
1637 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
1638 variables.
1639
1640 * w32bdf.c (search_file_line, get_cached_font_char)
1641 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
1642
1643 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
1644
1645 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
1646 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
1647 (Fw32_send_sys_command): Remove unused variables.
1648 (w32_msg_pump): Add parentheses.
1649
1650 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
1651 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
1652 Add parentheses.
1653
4956d1ef
GM
16542001-01-12 Gerd Moellmann <gerd@gnu.org>
1655
b30623be
GM
1656 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
1657 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
1658 being a pair of margins.
1659 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
1660 to DEFVAR_LISP. Extend doc.
1661
1662 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
1663 margins.
1664 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
1665 pair of integers `(X . Y)', use X for the horizontal and Y for the
1666 vertical margin.
1667 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
1668 (parse_image_spec): Check it.
1669 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1670 (tiff_format, gif_format, gs_format): Use
1671 IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
1672
1673 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1674 (x_draw_image_relief, x_draw_image_foreground_1)
1675 (x_draw_image_glyph_string): Adapt to the change of image margins.
1676
1677 * dispextern.h (struct image): Replace member `margin' with
1678 `hmargin' and `vmargin'.
1679
4554cc79
GM
1680 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
1681 and GLYPHS.
1682
1683 * dispnew.c (update_text_area): Put code which decrements the
1684 stop position when the row's face extends to the end of the
3bffc665 1685 line in #if 0.
4554cc79 1686
3cccce8d
GM
1687 * xfns.c (x_set_mouse_color): Fix color allocation.
1688
4956d1ef
GM
1689 * keyboard.c: Call get_local_map with new argument list.
1690
1691 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
1692
1693 * intervals.h (enum map_property): Removed.
1694 (get_local_map): Change prototype.
1695
1696 * keymap.c: Call get_local_map with new argument list.
1697 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
1698
2c2ff7f2
GM
16992001-01-11 Gerd Moellmann <gerd@gnu.org>
1700
a23887b9
GM
1701 * xdisp.c (build_desired_tool_bar_string): Correct the computation
1702 of the size needed for the tool bar string. For the last image,
1703 use a `display' property that reaches to the end of the string.
1704
a7ee2d2e
GM
1705 * xselect.c (selection_request_dpyinfo): New variable.
1706 (x_handle_selection_request): Set it.
1707 (x_selection_request_lisp_error): Don't call
1708 x_decline_selection_request if selection request's display has
1709 been closed.
1710
2c2ff7f2
GM
1711 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]: Do
1712 the unregister_colors before calling XFreeColors.
1713
457b792c
GM
17142001-01-10 Dave Love <fx@gnu.org>
1715
1716 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
1717 ${SOME_MACHINE_LISP}, not ${lisp}.
1718
c1efd260
GM
17192001-01-10 Gerd Moellmann <gerd@gnu.org>
1720
a98b5ed9 1721 * xdisp.c (display_line): On ttys, produce more than one
4554cc79 1722 truncation glyph for multi-column characters that don't fit on the
a98b5ed9
GM
1723 line.
1724
ac95a621
GM
1725 * xselect.c (x_reply_selection_request): Add a comment.
1726
c1efd260
GM
1727 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
1728 XkbGetNames instead of XkbGetKeyboard.
1729
1bfb1345
DL
17302001-01-10 Dave Love <fx@gnu.org>
1731
1732 * sysdep.c (random): Revert the declaration.
1733
38119822
GM
17342001-01-09 Gerd Moellmann <gerd@gnu.org>
1735
35f464a7
GM
1736 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]: Call
1737 function string_bytes.
1738 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
1739
1740 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
1741 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
1742 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
1743 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
1744 the current sblock.
1745 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
1746 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
1747 after sweeping strings, and at the end.
1748 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
1749
38119822
GM
1750 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
1751 ensure that pop_message is called.
1752
1753 * keyboard.c (Fexecute_extended_command): Use a
1754 record_unwind_protect to ensure that pop_message is called.
1755
1756 * lisp.h (push_message_unwind): Add prototype.
1757
1758 * xdisp.c (push_message_unwind): New function.
1759
1760 * fileio.c (do_auto_save_unwind): Do the pop_message here
1761 instead of in Fdo_auto_save.
1762 (Fdo_auto_save): Don't call pop_message.
1763
f47a9ec4
KR
17642001-01-08 Ken Raeburn <raeburn@gnu.org>
1765
1766 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
1767 in inner block.
1768
a758f97d
GM
17692001-01-08 Gerd Moellmann <gerd@gnu.org>
1770
6d0afc03
GM
1771 * window.c (window_scroll_pixel_based): Adjust glyph matrices
1772 when increasing window's vscroll.
1773
a758f97d
GM
1774 * macros.c (Qkbd_macro_termination_hook): New variable.
1775 (syms_of_macros): Initialize and staticpro it.
1776 (pop_kbd_macro): Run kbd-macro-termination-hook.
1777
1778 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
1779
1bfb1345 17802001-01-07 Dave Love <fx@gnu.org>
64d4ec0f
DL
1781
1782 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
1783 arglist, for documentation's sake.
1784
0dac6924
AI
17852001-01-06 Andrew Innes <andrewi@gnu.org>
1786
1787 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
1788 of *.pdb.
1789
8182406a
AI
17902001-01-05 Andrew Innes <andrewi@gnu.org>
1791
1792 * term.c (update_end): Don't check updating_frame; for some reason
1793 this can be 0 sometimes, such as after dismissing a popup menu,
1794 and isn't necessary given the explicit frame argument.
1795
3828218c
GM
17962001-01-05 Gerd Moellmann <gerd@gnu.org>
1797
1798 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
1799 on some systems, and an unsigned long on others, like FreeBSD 4.1.
1800
2f5ded21
GM
18012001-01-04 Gerd Moellmann <gerd@gnu.org>
1802
1803 * xterm.c (clear_mouse_face): Don't return if tip_frame is
1804 non-nil.
1805
1806 * xfns.c (x_create_tip_frame): Preserve the value of
1807 face_change_count around the creation of the tip frame.
1808
1809 * xfns.c (last_show_tip_args): New variable.
1810 (compute_tip_xy): New function.
1811 (Fx_show_tip): Reuse an existing tip frame, if possible.
1812 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
1813
dfad65fa
DL
18142001-01-04 Dave Love <fx@gnu.org>
1815
64d4ec0f
DL
1816 * editfns.c (Fformat): Doc fix.
1817
dfad65fa
DL
1818 * systime.h (set_file_times): Prototype.
1819
1820 * widget.h (EmacsFrameSetCharSize_): Prototype.
1821
1822 * sysdep.c (random, srandom): Declare explicitly.
1823
1824 * dispextern.h (move_it_vertically_backward): Declare.
1825
85fe3b5e
GM
18262001-01-04 Gerd Moellmann <gerd@gnu.org>
1827
0f2ac578
GM
1828 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
1829 like in Fx_create_frame.
1830
482cca61
GM
1831 * xfaces.c (set_font_frame_param): Don't do anything for
1832 non-graphical frames.
1833
85fe3b5e
GM
1834 * window.c (Fdelete_other_windows): Set window's window_end_valid
1835 to nil when changing the window's start. Don't change the
1836 window's start when its top position hasn't changed. If we do,
1837 this will set the window's optional_new_start, which act's like a
1838 force_start during redisplay with C-x 1 M-> under particular
1839 circumstances (see report from Per Starback to emacs-pretest-bug
1840 from 2000-12-13.).
1841
3e99d3b4
GM
18422001-01-03 Gerd Moellmann <gerd@gnu.org>
1843
a77dc1ec
GM
1844 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
1845 short cut at the start of the function. Add an assertion.
1846 (reseat_at_next_visible_line_start): Add an assertion.
1847
2f3cad6c
GM
1848 * window.c (Frecenter): When changing the window start, set the
1849 window's window_end_valid to nil.
1850 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
1851
1852 * dispextern.h (move_it_past_eol): Add prototype.
1853
1854 * xdisp.c (move_it_past_eol): New function.
1855
3e99d3b4
GM
1856 * window.c (Fwindow_end): Doc fix.
1857
18582001-01-03 Dave Love <fx@gnu.org>
1859
1860 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3
1861 kluge.
1862
bafb434c
GM
18632001-01-03 Gerd Moellmann <gerd@gnu.org>
1864
1865 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
1866 the enabled_p flag of the glyph row at window_end_vpos to 0.
1867 (handle_single_display_prop): Fix last change.
1868
5297fb00
RS
18692001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
1870
1871 * window.c (Frecenter): Doc fix.
1872
13d6a61c
AI
18732001-01-02 Andrew Innes <andrewi@gnu.org>
1874
1875 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
1876
1877 * frame.h (output_method): Add output_w32_console method.
1878 (FRAME_W32_CONSOLE_P): New macro.
1879
1880 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
1881 use output_w32_console method.
1882 (Qw32_console): New Lisp_Object.
1883 (Fframep): Return it.
1884 (syms_of_frame): Init it.
1885 (Fframe_parameters): Report w32console as font for w32_console
1886 frames.
1887
1888 * xfaces.c (realize_default_face): Set face foreground and
1889 background to unspecified for w32_console frames.
1890 (realize_face): Realize face cache for w32_console frames.
1891 (realize_tty_face): Accept w32_console frames.
1892
1893 * xdisp.c (handle_single_display_prop): Return if frame is
1894 w32_console.
1895 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
1896 necessary, even if running interactively.
1897
1898 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
1899 w32_console frames.
1900
1901 * w32term.c (x_update_begin):
1902 (x_update_end):
1903 (x_clear_frame):
1904 (x_ins_del_lines):
1905 (x_change_line_highlight):
1906 (x_delete_glyphs):
1907 (w32_ring_bell):
1908 (x_update_begin):
1909 (x_update_end):
1910 (w32_reassert_line_highlight):
1911 (w32_frame_rehighlight):
1912 (w32_frame_raise_lower): Do nothing if not w32 frame.
1913
1914 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
1915
1916 * w32fns.c (Fx_display_color_cells): Determine correct value, when
1917 system doesn't tell us directly.
1918 (Fx_display_visual_class): Implement properly.
1919
d6bb0c0d
GM
19202001-01-02 Gerd Moellmann <gerd@gnu.org>
1921
1922 * window.c (Frecenter): Handle centering in graphical frames
1923 specially. Centering on the basis of line counts doesn't work
1924 reliably with variable-height lines.
1925
315f5865
EZ
19262001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
1927
1928 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
1929 and al[].
1930
1931 * composite.c (run_composition_function): Remove unused variable
1932 `val'.
1933 (update_compositions): Remove unused variable `hook'.
1934
1935 * intervals.c (get_local_map): Remove unused variable `tem'.
1936
1937 * doprnt.c (doprnt1): Remove unused variable `size'.
1938
1939 * fns.c (Flength): Remove unused variable `tail'.
1940 (Fdelete): Remove unused variable `size'.
1941
1942 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
1943 and `gcpro2'.
1944
1945 * doc.c (Fsnarf_documentation): Remove unused variables `fun' and
1946 `tem'.
1947
1948 * data.c (find_symbol_value): Remove extra 3rd argument in the
1949 call to swap_in_symval_forwarding.
1950
1951 * undo.c (Fprimitive_undo): Remove unused block-scope variable
1952 `end'.
1953
1954 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
1955 (trivial_regexp_p): Remove unused variable `c'.
1956 (boyer_moore): Remove unused variable `k'.
1957
1958 * indent.c (current_column): Remove unused variable `stopchar'.
1959 (Fcompute_motion): Remove unused variable `contin'.
1960
1961 * casefiddle.c (casify_object): Remove unused variable `tolen'.
1962
1963 * dired.c (directory_files_internal): Fix a typo in a comment.
1964 Remove an unused variable `handler'.
1965 (file_name_completion): Remove unused function-scope variable
1966 `dp'.
1967 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
1968 on BSD4_2.
1969
1970 * fileio.c (e_write): Remove unused variable
1971 `require_encoding_p'.
1972
1973 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
1974 and `buf'.
1975 (Fmarker_insertion_type): Remove unused variable `buf'.
1976
1977 * insdel.c (make_gap): Remove unused variable `result'.
1978
1979 * keyboard.c (record_char): Remove unused function-scope variable
1980 `help'.
1981 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
1982 (menu_bar_items): Remove unused function-scope variable `tem'.
1983
1984 * fontset.c (fontset_ref): Remove unused variable `i'.
1985 (fontset_set): Remove unused variables `j' and `tmp'.
1986 (make_fontset): Remove unused variables `i', `j', `elt' and
1987 `base_elt'.
1988 (make_fontset_for_ascii_face): Remove unused variable `name'.
1989 (fs_load_font): Remove unused variable `font_idx'.
1990 (fs_query_fontset): Remove unused function-local variable
1991 `fontset'.
1992 (list_fontsets): Remove unused variable `tail'.
1993 (Fnew_fontset): Remove unused variables `family' and `registry'.
1994 (accumulate_font_info): Remove unused variable `tmp'.
1995 (Ffontset_font): Remove unused variable `id'.
1996 (syms_of_fontset): Remove unused variable `i'.
1997
1998 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
1999 to x_term_init.
2000 (lookup_image): Remove unused variable `file'.
2001 (xbm_load): Remove unused variables `bitmap_data', `height', and
2002 `width'. Remove function-local variable `i', leave the
2003 block-local one.
2004 (gif_load): Remove unused variable `inc'.
2005
2006 * xterm.c (XTread_socket): Remove unused variables `p' and
2007 `pend'.
2008 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
2009 leave only the one in the inner block.
2010
2011 * xfaces.c (face_fontset, realize_default_face): Remove unused
2012 variable `fontset'.
2013 (face_at_buffer_position): Remove unused variable `multibyte_p'.
2014
2015 * term.c (encode_terminal_code): Remove unused variable `c'.
2016
2017 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
2018 char *' instead of `char *'.
2019
2020 * category.c (Fcategory_docstring): Remove unused variable `doc'.
2021 (Fget_unused_category): Remove unused variable
2022 `docstring_vector'.
2023 (Fchar_category_set): Remove unused variables `val', `charset',
2024 `c1' and `c2'.
2025
2026 * coding.c (detect_coding_iso2022, setup_coding_system): Remove
2027 unused variable `i'.
2028 (detect_coding_mask): Remove unused variable `idx'.
2029 (detect_coding): Remove unused variable `i'.
2030 (ccl_coding_driver): Remove unused variable `result'.
2031 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
2032 (decode_coding_string): Remove unused variables `to' and
2033 `gcpro1'.
2034 (encode_coding_string): Remove unused variables `gcpro1' and
2035 `saved_coding_symbol'.
2036 (Ffind_coding_systems_region_internal): Remove function-local
2037 variable args[], leave only the block-local one.
2038 (code_convert_region1): Remove unused variable `len'.
2039
2040 * charset.c (char_printable_p): Remove unused variable `chars'.
2041 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
2042 (str_to_multibyte): Remove unused variable `c'.
2043
2044 * window.c (size_window): Remove block-local variable `min_size'.
2045
2046 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
2047 `header_line_height'.
2048 (append_space, extend_face_to_end_of_line): Declare `saved_what'
2049 enum display_element_type.
2050
1a8a9daf
GM
20512001-01-02 Gerd Moellmann <gerd@gnu.org>
2052
6dde6abc
GM
2053 * xterm.c (x_connection_closed): Catch X errors around all
2054 statements that call X. Save away the error message in a local
2055 copy.
2056
1883b2c6
GM
2057 * xterm.c (x_connection_closed): Set handling_signal to 0 at
2058 the start.
2059
a13be207
GM
2060 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
2061 in or at the start of invisible text.
2062
1a8a9daf
GM
2063 * dispnew.c (update_window): Don't check_current_matrix_flags.
2064
3608c0f9
JR
20652001-01-01 Jason Rumney <jasonr@gnu.org>
2066
2067 * w32fns.c (x_figure_window_size): Do not allow new_height and
2068 new_width of frame to override specified values.
2069
abb1acc4
KH
20702000-12-30 Kenichi Handa <handa@etl.go.jp>
2071
d279f620
KH
2072 * composite.c (find_composition): Fix a code for searching
2073 backward.
abb1acc4 2074
762a68ec
GM
20752000-12-29 Gerd Moellmann <gerd@gnu.org>
2076
9c8b8382
GM
2077 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New
2078 function.
2079 (update_window) [GLYPH_DEBUG]: Call it.
2080 (scrolling_window): Prevent including current rows which are below
2081 what's displayed in the window.
2082
2083 * xdisp.c (try_window_reusing_current_matrix)
2084 <new start <= old start>: Disable rows in the current matrix
2085 which are below the window after scrolling.
2086
762a68ec
GM
2087 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
2088 is zero. It's not worth the complexity.
2089 (invisible_text_between_p): Put in #if 0 because unused.
2090
2d5912c1
GM
20912000-12-28 Gerd Moellmann <gerd@gnu.org>
2092
46f6a258
GM
2093 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
2094 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
2095
89f93679
GM
2096 * keyboard.c (echo_char): If C is an integer, always call
2097 push_key_description. Former code could signal an invalid
2098 character error.
2099
2100 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
2101 If set, print multibyte text.
2102 (Fsingle_key_description): Call push_key_description with
2103 FORCE_MULTIBYTE set.
2104 (describe_buffer_bindings): Likewise.
2105
2106 * lisp.h (push_key_description): Add prototype.
2107
c06017fb
GM
2108 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
2109 around the call to redisplay_internal.
2110
f1d2ce7f
GM
2111 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
2112
2d5912c1
GM
2113 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
2114
9371f831
KH
21152000-12-28 Kenichi Handa <handa@etl.go.jp>
2116
2117 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
2118 (ccl_driver): New local variable `extra_bytes'.
2119
2120 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
2121
2122 * coding.c (setup_coding_system): Initialize
2123 coding->spec.ccl.eight_bit_carryover.
2124 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
2125
0c80628a
KH
21262000-12-28 Kenichi Handa <handa@etl.go.jp>
2127
2128 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
2129 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
2130 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
2131 (decode_composition_emacs_mule): New function.
2132 (decode_coding_emacs_mule): Decode composition sequence by calling
2133 decode_composition_emacs_mule.
2134 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
2135 (encode_coding_emacs_mule): Changed from macro to function. If
2d5912c1 2136 a text contains compositions, encode them correctly.
0c80628a
KH
2137 (setup_coding_system): Set coding->commong_flags for emacs-mule so
2138 that decoding and encoding are required.
2139
3e32cc27
GM
21402000-12-27 Gerd Moellmann <gerd@gnu.org>
2141
5e25feee
GM
2142 * xfaces.c (PT_PER_INCH): New macro.
2143 (xlfd_point_size): Compute real point size from font's pixel size.
2144 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
2145 instead of 72.
2146
892d8fcd
GM
2147 * .gdbinit: Comment out the line pointing to the Lesstif source
2148 directory.
2149
12c8b416
GM
2150 * window.c (Frecenter): Use displayed_window_lines instead
2151 of window_internal_height.
2152
6061fbf0
GM
2153 * xterm.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
2157 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
2158 instead of x-toolkit-scroll-bars-p.
2159 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
2160
3e32cc27
GM
2161 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
2162 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
2163 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]: New
2164 variables.
2165 (add_window_display_history, add_frame_display_history)
2166 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
2167 (build_frame_matrix_from_leaf_window): Remove unused code.
2168 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
2169 redisplay history.
2170 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
2171 (update_window) [GLYPH_DEBUG]: Likewise.
2172 (syms_of_display): Defsubr dump-redisplay-history.
2173
31798cfe
GM
21742000-12-23 Gerd Moellmann <gerd@gnu.org>
2175
f717c2ba
GM
2176 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
2177 the end of the prompt. Set echo_after_prompt to the offset
2178 of echoptr in echobuf.
2179
aeb2b8fc
GM
2180 * xdisp.c (init_from_display_pos): Pop until the iterator's
2181 stack is empty; there may be frames for stretch or images
2182 on the stack.
2183
31798cfe
GM
2184 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
2185 (save_or_restore_current_matrix): New function for the same
2186 purpose, but more efficient.
2187 (adjust_frame_glyphs_for_frame_redisplay): Use it.
2188
f8156156
EZ
21892000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
2190
2191 * xdisp.c (syms_of_xdisp): Fix last change.
2192
bdd6d4e8
GM
21932000-12-23 Gerd Moellmann <gerd@gnu.org>
2194
2195 * xdisp.c (syms_of_xdisp): Doc fix.
2196
2197 * xdisp.c (redisplay_window): Remove label restore_buffers;
2198 use finish_scroll_bars instead to make sure that scroll bars
2199 are redeemed. If we don't do this, flickering can result from
2200 scroll bars being destroyed and recreated.
2201
9436cdf9
JR
22022000-12-22 Jason Rumney <jasonr@gnu.org>
2203
2204 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
2205 in the wrong colors when the foreground is not black.
2206 (expose_window): Don't redraw the window that's currently being
2207 updated.
2208
951f9df5
GM
22092000-12-22 Gerd Moellmann <gerd@gnu.org>
2210
856ff7a7
GM
2211 * window.c (size_window): When setting the window's too_small_ok
2212 flag, compare old size with minimum size depending on WIDTH_P,
2213 don't compare with window_min_width.
2214
951f9df5
GM
2215 * window.c (delete_window): Simplify somewhat.
2216 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
2217 freeing window matrices. The flag windows_or_buffers_changed is
2218 set, so the next redisplay will consider all windows; this should
2219 suffice.
2220
886bc933
KH
22212000-12-22 Kenichi Handa <handa@etl.go.jp>
2222
2223 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
2224
2225 * ccl.h (struct ccl_program): New member cr_consumed.
2226
2227 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
2228 (CCL_READ_CHAR): Handle EOL conversion here.
2229 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
2230
177f4e88
GM
22312000-12-21 Gerd Moellmann <gerd@gnu.org>
2232
6ba384dc
GM
2233 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg
2234 GLYPHS.
2235
2236 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
2237 otherwise tabs of different size compare equal.
2238
2239 * callint.c (Fcall_interactively): Prevent a compiler warning.
2240
2241 * print.c (print_unwind): Return nil.
2242 (PRINTDECLARE): Initialize all local variables.
2243 (print_preprocess): Add a default case.
2244
8e15274f
GM
2245 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
2246
2247 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
2248
177f4e88
GM
2249 * window.c (delete_window, Fsplit_window)
2250 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
2251
2252 * dispextern.h (ensure_frame_matrix): Function declaration removed.
2253
2254 * dispnew.c (ensure_frame_matrix): Removed.
2255 (save_frame_matrix, restore_frame_matrix): New functions.
2256 (adjust_frame_glyphs_for_frame_redisplay): Use them.
2257
2258 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
2259 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
2260
99012074
AI
22612000-12-21 Andrew Innes <andrewi@gnu.org>
2262
2263 * w32term.c (x_update_begin): Regenerate the palette here, rather
2264 than for each window.
2265
2266 * w32xfns.c (select_palette): Avoid calling SelectPalette if
2267 palette is NULL, since this corrupts memory! Also get
2268 display_info reference from frame.
2269
29ef7d2d
JR
22702000-12-21 Jason Rumney <jasonr@gnu.org>
2271
2272 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
2273
2274 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
2275 to avoid returning without releasing it.
3e27fa1f 2276
3f9d67a6
KH
22772000-12-21 Kenichi Handa <handa@etl.go.jp>
2278
587fc3f9
KH
2279 * keymap.c (push_key_description): Don't convert eight-bit-control
2280 and eight-bit-graphic to multibyte character.
2281
3f9d67a6
KH
2282 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
2283 generic character and CODE1 is nil, return the smallest character
2284 in CHARSET.
2285
774ba8c9
DL
22862000-12-20 Dave Love <fx@gnu.org>
2287
2288 * s/osf5-0.h (NSIG): Don't redefine.
2289
88416888
SM
22902000-12-20 Stefan Monnier <monnier@cs.yale.edu>
2291
2292 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
2293 excluding menu-bar and tool-bar.
2294 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
2295 (menu_item_p): Remove.
2296 (where_is_internal_1): Don't ignore menu-items.
2297
a6426c6f
GM
22982000-12-20 Gerd Moellmann <gerd@gnu.org>
2299
03ff8aab
GM
2300 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
2301 into account.
2302
2303 * window.c (make_window): Initialize window's min_hscroll.
2304 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
2305 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
2306 to zero.
2307 (struct saved_window): New member min_hscroll.
2308 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
2309 (Fset_window_configuration): Set window's min_hscroll.
2310 (save_window_save): Save window's min_hscroll.
2311 (compare_window_configurations): Compare min_hscroll values.
2312
2313 * window.h (struct window): New member min_hscroll.
2314
2315 * keyboard.c (echo_prompt): Prevent a compiler warning.
2316
8de4aaf8
GM
2317 * xdisp.c (try_cursor_movement): Fix last change. The real
2318 condition is that PT is at the end of the row, and should
2319 be displayed at the start of the next row.
2320
3f7e3031
GM
2321 * xdisp.c (try_cursor_movement): If we end on a partially
2322 visible line, end we already decided to scroll, return -1.
2323
a6426c6f
GM
2324 * dispextern.h (ensure_frame_matrix): Add prototype.
2325
2326 * window.c (delete_window, Fsplit_window)
2327 (Fset_window_configuration): Call ensure_frame_matrix.
2328
2329 * dispnew.c (fake_current_matrices, ensure_frame_matrix): New
2330 functions.
2331 (adjust_frame_glyphs_for_frame_redisplay): If display has been
2332 completed, call fake_current_matrices instead of marking frame
2333 garbaged.
2334
57fa2774
JR
23352000-12-20 Jason Rumney <jasonr@gnu.org>
2336
2337 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
2338
d925df90
EZ
23392000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
2340
2341 * fns.c (Frequire): Doc fix.
2342
7b93a85b
GM
23432000-12-19 Gerd Moellmann <gerd@gnu.org>
2344
71d4497a
GM
2345 * window.c (window_scroll_pixel_based): Don't use
2346 move_it_vertically.
2347
c74e645b
GM
2348 * dispnew.c (direct_output_for_insert): Fix check for mini-window
2349 currently displaying a message.
2350
7b93a85b
GM
2351 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
2352 xterm.h.
2353 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
2354
90d97e64
AI
23552000-12-18 Andrew Innes <andrewi@gnu.org>
2356
2357 * w32.c (w32_strerror): New function.
2358
2359 * w32.h (w32_strerror): New extern.
2360
2361 * w32fns.c (Fw32_shell_execute): Use it.
2362
91c9e6ce
GM
23632000-12-18 Gerd Moellmann <gerd@gnu.org>
2364
2365 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
2366
6f4745e2
EZ
23672000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
2368
2369 * msdos.c (IT_set_face): Obey inverse_video.
2370
c9e088ce
KH
23712000-12-18 Kenichi Handa <handa@etl.go.jp>
2372
2373 * dired.c (directory_files_internal): Always return decoded filenames.
2374
c3695f5f
GM
23752000-12-18 Gerd Moellmann <gerd@gnu.org>
2376
52d8e4ff
GM
2377 * xterm.c (x_connection_closed): Prevent being called recursively
2378 because of an error condition in XtCloseDisplay.
2379
62be9979
GM
2380 * xdisp.c (init_iterator): If noninteractive, and the frame's
2381 face cache is null, make one.
2382
5f7a1890
GM
2383 * xfns.c (show_busy_cursor): Check for live frames more
2384 thoroughly.
2385
c3695f5f
GM
2386 * process.c (wait_reading_process_input): Check for pending
2387 input when running timers.
2388
78555fbe
EZ
23892000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
2390
2391 * msdos.c (IT_write_glyphs): Compute the glyph face from
2392 str->face_id.
2393
b2b36264
KH
23942000-12-18 Kenichi Handa <handa@etl.go.jp>
2395
2396 * process.c (read_process_output): Don't run a filter if the code
2397 decoder produces nothing but carryover.
2398
9c543fbf
AI
23992000-12-17 Andrew Innes <andrewi@gnu.org>
2400
2401 * w32.c (sys_rename): Only check errno against EEXIST, and not
2402 EACCES, when determining whether rename failed because the target
2403 exists. This was resulting in indefinite looping on Windows 9x if
2404 the source file was locked by another process.
2405
2406 * w32fns.c (Ffile_system_info): New function.
2407 (syms_of_w32fns): Defsubr it.
2408
10c2b5a8
GM
24092000-12-17 Gerd Moellmann <gerd@gnu.org>
2410
b0228ace
GM
2411 * window.c (coordinates_in_window): Fix computation for
2412 position on vertical line between mode lines.
2413
10c2b5a8
GM
2414 * xfns.c (unwind_create_frame): Return t if frame was deleted.
2415 Don't alter tip_frame or tip_window.
2416 (unwind_create_tip_frame): Set tip_frame to nil only if frame
2417 was deleted.
2418
c844a81a
GM
2419 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
2420 Don't alter tip_frame or tip_window.
2421 (unwind_create_tip_frame): Set tip_frame to nil only if frame
2422 was deleted.
2423
6c825f8e
EZ
24242000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
2425
2426 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
2427 be consistent with the doc string. Reported by NAKAJIMA Mikio
2428 <minakaji@osaka.email.ne.jp>.
2429
af4bb4c8
KH
24302000-12-16 Kenichi Handa <handa@etl.go.jp>
2431
2432 * xfaces.c (Vface_ignored_fonts): New variable.
2433 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
2434 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
2435
8062e53a
GM
24362000-12-15 Gerd Moellmann <gerd@gnu.org>
2437
e87b8809
GM
2438 * dispnew.c (update_window): Detect pending input every nth line
2439 updated, i.e. do it depending on real work done, and not on the
2440 vpos of the line.
2441
2442 * xterm.c (expose_window): Don't redraw the window that's
2443 currently being updated.
2444
a6768cc5
GM
2445 * window.c (Fset_window_point): Remove test for
2446 cursor_in_non_selected_windows.
2447
4ea7fdca
GM
2448 * lread.c (read1): Recognize end of file after `\\'.
2449
8062e53a
GM
2450 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
2451 not unwind_create_frame.
2452
bb7959c1
GM
24532000-12-15 Dave Love <fx@gnu.org>
2454
2455 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
2456 bcopy & al.
2457
2458 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
2459
ced04c42
KH
24602000-12-15 Kenichi Handa <handa@etl.go.jp>
2461
c5443913
KH
2462 * coding.c (setup_coding_system): Clear all members of the struct
2463 coding_system at first.
bc137305
KH
2464 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
2465 argument.
2466 (code_convert_region): Don't override coding->src_multibyte and
2467 coding->dst_multibyte.
c5443913 2468
ced04c42
KH
2469 * fns.c (Fmd5): Docstring improved.
2470
c2d7f289
MB
24712000-12-15 Miles Bader <miles@gnu.org>
2472
2473 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
2474 are actually marked as mode-lines; otherwise use
2475 estimate_mode_line_height.
2476
9d7d9263
GM
24772000-12-14 Gerd Moellmann <gerd@gnu.org>
2478
2479 * editfns.c (Fformat): Prevent a buffer overrun when the format
2480 specifies a precision.
2481
7cf0153a
EZ
24822000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
2483
2484 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
2485 argument is outside the range [2..3].
2486
1de0f662
AI
24872000-12-14 Andrew Innes <andrewi@gnu.org>
2488
2489 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
2490 nothing to do. Bind inhibit-quit.
2491 (tip_frame): Make it a Lisp_Object.
2492 (x_create_tip_frame): Set tip_frame after it has been added to
2493 Vframe_list.
2494 (Fx_show_tip): Don't set tip_frame here.
2495 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New
2496 variables.
2497 (unwind_create_frame, unwind_create_tip_frame): New functions.
2498 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
2499 while a frame is only partially constructed.
2500
2501 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
2502 (x_free_frame_resources): New function.
2503 (x_destroy_window): Use it.
2504
02387dcc
GM
25052000-12-14 Gerd Moellmann <gerd@gnu.org>
2506
2507 * xfns.c (Fx_backspace_delete_keys_p): New function.
2508 (syms_of_xfns): Defsubr it.
2509
2510 * config.in (HAVE_XKBGETKEYBOARD): Add.
2511
0544ef49
KH
25122000-12-14 Kenichi Handa <handa@etl.go.jp>
2513
98d62747
KH
2514 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
2515 Always store string in multibyte representation in echobuf.
2516 (echo_char): Always store string in multibyte representation in
2517 echobuf.
2518 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
2519 (read_key_sequence): Adjusted for the change of echo_prompt.
2520
a20193cd
KH
2521 * fns.c (Fmd5): Docstring improved.
2522
191b83b6
KH
2523 * lisp.h (detect_coding_system): Prototype adjusted.
2524
0544ef49
KH
2525 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
2526 (detect_coding_emacs_mule, detect_coding_iso2022,)
2527 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
2528 (detect_coding_utf_16, detect_coding_ccl): Make them static. New
2529 argument MULTIBYTEP. Callers changed.
2530 (detect_coding_mask, detect_coding_system): New argument
2531 MULTIBYTEP. Callers changed.
1da1bb05
KH
2532 (decode_coding_string): Set coding->src_multibyte and
2533 coding->dst_multibyte before calling detect_coding and detect_eol.
2534 Update them after some coding system is detected.
2535
d5b3eb1b
SM
25362000-12-13 Stefan Monnier <monnier@cs.yale.edu>
2537
2538 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
2539
2540 * keyboard.c (menu_bar_items, tool_bar_items):
2541 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
2542
f7f8bb69
GM
25432000-12-13 Gerd Moellmann <gerd@gnu.org>
2544
19f71add
GM
2545 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
2546 New variables.
2547 (unwind_create_frame, unwind_create_tip_frame): New functions.
2548 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
2549 while a frame is only partially constructed.
2550
2551 * xterm.h (x_free_frame_resources): Declare.
2552
2553 * xterm.c (x_free_frame_resources): New function.
2554 (x_destroy_window): Use it.
2555
e10da507
GM
2556 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
2557 don't interrupt the update for pending input initially, i.e.
2558 update at least some lines.
2559
2560 * keyboard.c (do_mouse_tracking): Make externally visible.
2561
d5b3eb1b 2562 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
f7f8bb69
GM
2563
2564 * xfns.c (gray_bitmap_bits): Declare `char *'.
2565
90aa2856
GM
25662000-12-12 Gerd Moellmann <gerd@gnu.org>
2567
2568 * xdisp.c (display_tool_bar_line): Make sure that tool bar
2569 lines start with a relief line.
2570
a308c9cd
DL
25712000-12-12 Dave Love <fx@gnu.org>
2572
2573 * window.c (Fdisplay_buffer): Doc fix.
2574 (Fwindow_list): Remove unused var.
2575
2576 * buffer.h (mmap_set_vars): Declare.
2577
2578 * window.h (Fset_window_point): Declare.
2579
d575011f
EZ
25802000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
2581
bf6282d2 2582 * msdos.c (fast_find_position): Don't overstep the last window row.
d575011f
EZ
2583 (IT_note_mouse_highlight): Initialize portion to -1. Remove
2584 unused variable `area'. When looking for a row under (X,Y), give
2585 up if some of the previous rows is not enabled.
2586
ecf4d726
GM
25872000-12-12 Gerd Moellmann <gerd@gnu.org>
2588
2ebf6139
GM
2589 * window.c (Fset_window_point): If displaying cursors in windows
2590 other than the selected window, make sure redisplay updates
2591 other windows to show the new value of point in the window.
2592
2593 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
2594
bfdb75ee
GM
2595 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
2596 the buffer is the sole visible buffer when in the mini-buffer.
2597
4fdbd809
GM
2598 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
2599 Bind `inhibit-read-only' to t.
2600 (unwind_with_echo_area_buffer): Use AREF.
2601
c0006262
GM
2602 * xfns.c (Fx_hide_tip): Simplified.
2603
e9a59cad
GM
2604 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use
2605 GC_MAKE_GCPROS_NOOPS instead of `1'.
2606
ecf4d726
GM
2607 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
2608
e5959a9a
GM
26092000-12-11 Gerd Moellmann <gerd@gnu.org>
2610
a3642e49
GM
2611 * xfns.c (Fx_hide_tip): Fix last change.
2612
44b5a125
GM
2613 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
2614 nothing to do. Bind inhibit-quit.
2615 (tip_frame): Make it a Lisp_Object.
2616 (x_create_tip_frame): Set tip_frame after it has been added to
2617 Vframe_list.
2618 (Fx_show_tip): Don't set tip_frame here.
2619
2620 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
2621
2622 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
2623 Lisp_Object.
2624
2625 * dispextern.h: Change external declaration of tip_frame.
2626
d990421f
GM
2627 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
2628 return an empty string.
2629
4db87380
GM
2630 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
2631 of the window's update_mode_line flag, since the former is set by
2632 force-mode-line-update, not the latter. This makes
2633 column-number-mode slightly faster.
2634
e5959a9a
GM
2635 * xdisp.c (try_window_id) <all changes above window start>:
2636 Set the cursor.
2637
169fe44e
GM
26382000-12-11 Paul Eggert <eggert@twinsun.com>
2639
2640 * config.in (HAVE_FTELLO): Remove.
2641 (HAVE_FSEEKO): Add.
2642 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
2643 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
2644 HAVE_FTELLO.
2645 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
2646 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
2647
59ec59ae
MB
26482000-12-11 Miles Bader <miles@gnu.org>
2649
2650 * window.c (displayed_window_lines): Don't round up when
2651 converting empty space at bottom to lines.
ff904dd6
MB
2652 Handle non-newline-terminated final lines properly.
2653 (Fwindow_text_height): New function (used to be in lisp).
2654 (syms_of_window): Initialize it.
59ec59ae 2655
42ebfa31
SM
26562000-12-09 Stefan Monnier <monnier@cs.yale.edu>
2657
2658 * syntax.c (scan_lists): Check that the right quote char has the
2659 right Sstring syntax when jumping over strings.
2660 (init_syntax_once): Use Smax rather than 13.
2661
5cdb3cf3
MB
26622000-12-09 Miles Bader <miles@gnu.org>
2663
2664 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
2665 with PARTIALLY, inverting the sense.
2666 (window_scroll_pixel_based): Scroll partially visible lines into
2667 place if we hit the beginning or end of the buffer.
a12167c5
MB
2668 (displayed_window_lines): Don't include partially visible lines.
2669 (Fmove_to_window_line): Skip past any partially visible first line.
5cdb3cf3 2670
842b2a94
GM
26712000-12-08 Gerd Moellmann <gerd@gnu.org>
2672
2673 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
2674
2675 * tparam.c (tparam1): Change the way buffers are reallocated to be
2676 portable and less obfuscated.
2677
2678 * termcap.c (tgetent): Change the way buffers are reallocated to
2679 be portable and less obfuscated.
2680
2681 * macros.c (store_kbd_macro_char): Change the way buffers are
2682 reallocated to be portable and less obfuscated.
2683
2684 * lread.c (read1): Change the way buffers are reallocated to be
2685 portable and less obfuscated.
2686
2687 * doc.c (Fsubstitute_command_keys): Change the way buffers
2688 are reallocated so that it is portable.
2689
137cad7c
EZ
26902000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
2691
2692 * dosfns.c (Ffile_system_info): New function.
2693 (syms_of_dosfns): Defsubr it.
2694
5c7f629c
SM
26952000-12-07 Stefan Monnier <monnier@cs.yale.edu>
2696
2697 * alloc.c (gc_sweep): Add comment.
2698
959e647d
GM
26992000-12-07 Gerd Moellmann <gerd@gnu.org>
2700
28fcb7dc
GM
2701 * sound.c (vox_configure): Change order of ioctls. Don't
2702 set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
2703 Ignore errors when changing volume.
2704 (vox_close): Don't reset the device.
2705
926b7e5e
GM
2706 * process.c (read_process_output): Make sure the process marker's
2707 position is valid when the process buffer is changed in
2708 after-change functions. W3 does that.
2709
959e647d
GM
2710 * xfns.c (x_free_gcs): New function.
2711
2712 * xterm.h (x_free_gcs): Add prototype.
2713
2714 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
2715 freeing GCs here.
2716
2717 * xterm.c (x_destroy_window): Call x_free_gcs so that
2718 resources of non-toolkit X windows will be freed.
2719
478ea067
AI
27202000-12-07 Andrew Innes <andrewi@gnu.org>
2721
2722 * w32fns.c (xlfd_charset_of_font): Fix last change.
2723
fbee3231
DL
27242000-12-06 Dave Love <fx@gnu.org>
2725
67292061
DL
2726 * md5.h (__P): Don't define -- it comes from config.h.
2727
fbee3231
DL
2728 * strftime.c: Change some #if foo to #ifdef foo.
2729
4ee87dbb
AI
27302000-12-06 Andrew Innes <andrewi@gnu.org>
2731
2732 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
2733
2734 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname
2735 argument.
2736 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
2737 (w32_list_fonts): Don't choke if pattern doesn't specify a
2738 codepage.
2739
9765b4a4
GM
27402000-12-06 Gerd Moellmann <gerd@gnu.org>
2741
d285b373
GM
2742 * alloc.c (gc_sweep): Prevent symbols read during loadup
2743 from being freed.
2744
384333ee
GM
2745 * xdisp.c (underlying_face_id): New function.
2746 (handle_face_prop, face_before_or_after_it_pos): Use it
2747 to determine the face ``under'' a string. Let strings inherit
2748 the face of the buffer under them.
2749
2750 * xfaces.c (face_at_string_position): Update function comment.
2751
d4b72d58
GM
2752 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
2753 matrix if the window's left position has changed; we need to
2754 redraw it in this case.
2755
2756 * dispextern.h (struct glyph_matrix): Add member window_left_x.
2757
e1d05387
GM
2758 * window.c (coordinates_in_window): Check mouse on mode-line or
2759 header-line first.
2760
eb1b0c74
GM
2761 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
2762 advertized by the function documentation.
2763
d94d636f
GM
2764 * window.c (syms_of_window): Doc fix.
2765
3887b449
GM
2766 * sound.c (vox_configure): Set volume for left and right channel.
2767 (sound_cleanup): Return nil.
2768
efc8f57a
GM
2769 * xdisp.c (move_it_by_lines): Fix paren typo.
2770
9765b4a4
GM
2771 * xterm.c (x_load_font): Don't use the font's max_bounds for
2772 computing the height of the font. If max_bounds' ascent or
2773 descent are greater than the font's ascent or descent, this means
2774 glyphs overlap, which should be handled now by redisplay.
2775
6529ed87
GM
2776 * window.c (Veven_window_heights): New variable.
2777 (syms_of_window): DEFVAR_LISP it.
2778 (Fdisplay_buffer): Check Veven_window_heights before evening the
2779 window heights.
2780
0eb2ecde
MB
27812000-12-06 Miles Bader <miles@gnu.org>
2782
2783 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
2784 update `default-frame-alist' instead of setting no frame parameters.
2785
03d7a167
KH
27862000-12-06 Kenichi Handa <handa@etl.go.jp>
2787
2788 * composite.c (update_compositions): Fix typo (use the correct
2789 variable).
2790
5f8803c2
JR
27912000-12-05 Jason Rumney <jasonr@gnu.org>
2792
2793 * md5.h: Remove underscores from function declarations.
2794 (__attribute__, __alignof__) [!__GNUC__]: Define.
2795
2796 * md5.c: Delay include of md5.h until after namespace cleaning.
2797
c28a075b
JR
2798 * makefile.w32-in (fns.o): Depend on md5.h
2799 (md5.o): New target.
2800 (sunfns.o): Remove.
2801
2802 * makefile.nt: Likewise.
2803
ff3c7056
JR
28042000-12-05 Jason Rumney <jasonr@altavista.net>
2805
2806 * w32term.c (expose_area): Complete last change.
2807
0c21eeeb
KR
28082000-12-05 Ken Raeburn <raeburn@gnu.org>
2809
2810 * minibuf.c: Include intervals.h.
2811
f201d732
JR
28122000-12-05 Jason Rumney <jasonr@gnu.org>
2813
2814 * w32term.c (x_produce_glyphs): If a font for a component of
2815 a composition is not found, use 1 pixel dot ascent and 0 dot
2816 descent value to avoid displaying terribly tall empty boxes.
2817 (expose_area): Pass x-coordinate relative to the exposed
2818 area to x_draw_glyphs instead of a window-relative coordinate.
2819
21999ab9
GM
28202000-12-05 Gerd Moellmann <gerd@gnu.org>
2821
4d2036e4
GM
2822 * xdisp.c (next_element_from_ellipsis): Save face before selective
2823 display in saved_face_id, and set face_before_selective_p.
2824 (reseat_1): Reset face_before_selective_p.
2825 (append_space, extend_face_to_end_of_line): If iterator's
2826 face_before_selective_p is set, use the face from saved_face_id.
2827 (extend_face_to_end_of_line): For tty frames, make sure to
2828 use the right face id when producing spaces at the end of
2829 the line.
2830
2831 * dispextern.h (struct it): Add face_before_selective_p.
2832
52be17cc
GM
2833 * keyboard.c (record_char): Don't record identical help-echo
2834 events in recent_keys.
2835
8a4f36cc
GM
2836 * xterm.c [USE_X_TOOLKIT]: Close the display.
2837 (xim_close_dpy): Handle case that the display has been closed.
2838
57d6e381
GM
2839 * xterm.c (x_destroy_window): Reset the frame's X window after
2840 destroying it.
2841
21999ab9
GM
2842 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
2843 variable window_width.
2844 (line_draw_cost): Fix code skipping over spaces at the end of the
2845 line when must_write_spaces is not set.
2846 (scrolling_window): Fix code inserting runs in list of all runs.
2847
91372bb7
KH
28482000-12-05 Kenichi Handa <handa@etl.go.jp>
2849
2850 * coding.c (setup_coding_system): Be sure to initialize
2851 coding->category_idx.
2852
6c083b4c
GM
28532000-12-04 Gerd Moellmann <gerd@gnu.org>
2854
0c68ce6f
GM
2855 * xterm.c (PER_CHAR_METRIC): Removed because not used.
2856
6452929e
GM
2857 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
2858 area to x_draw_glyphs instead of a window-relative coordinate.
2859
d7f31e22
GM
2860 * fileio.c (auto_save_error): Add parameter ERROR. Show the
2861 error in the message.
2862
ae18aa3b
GM
2863 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
2864 timer after having read a key. It's not good for code reading
2865 several keys in a loop, like an input method.
2866
caa15ef7
GM
2867 * fileio.c (Finsert_file_contents): When VISIT is t, don't
2868 record undo information for format-decode.
2869
2870 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
2871 current buffer is read-only, not if it isn't.
2872
6c083b4c
GM
2873 * keyboard.c (record_char): Record `help-echo' input events
2874 in recent_keys only if they display some help. Don't record
2875 `help-echo' events as macro char.
2876
caa15ef7
GM
28772000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2878
2879 * editfns.c (save_excursion_restore): Don't move point
2880 in another window if it is showing the wrong buffer.
2881 Avoid the call to Fwindow_live_p, for speed.
2882
5a13529b
KH
28832000-12-04 Kenichi Handa <handa@etl.go.jp>
2884
e225faa7
KH
2885 * xfaces.c (struct font_name): New member registry_priority.
2886 (split_font_name): Initialize the above member to zero.
2887 (concat_font_list): New function.
2888 (font_list): Include fonts of all alternative registries.
2889 (FONT_POINT_SIZE_QUANTUM): New macro.
2890 (better_font_p): Ignore point size difference less than
2891 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
2892
e89648b4
KH
2893 * xterm.c (x_produce_glyphs): If a font for a component of
2894 a composition is not found, use 1 pixel dot ascent and 0 dot
2895 descent value to avoid displaying terribly tall empty boxes.
2896
5a13529b
KH
2897 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
2898
d7935eb6
KR
28992000-12-03 Ken Raeburn <raeburn@gnu.org>
2900
2901 * coding.h (code_convert_string1): Declare.
2902
2903 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
2904
2905 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name):
2906 Declare.
2907
0dd5e255
JR
29082000-12-02 Jason Rumney <jasonr@gnu.org>
2909
2910 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
2911 correctly for single byte character case.
2912 (w32_per_char_metric): Do not try to make any assumptions about
2913 the metrics of BDF fonts.
250cfece
JR
2914 (x_estimate_mode_line_height): If `mode-line' face
2915 hasn't a font, use that of the frame, as drawing glyphs
2916 does.
2917 (note_mouse_highlight): Change the cursor shape on the vertical
2918 border between windows [not enabled].
2919
2920 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
2921
2922 * w32fns.c (Fx_create_frame): Reintroduce the call to
2923 face-set-after-frame-defaults.
2924 (Vx_window_horizontal_drag_shape): New variable.
2925 (syms_of_xfns): DEFVAR_LISP it.
2926 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
2927 enabled].
0dd5e255 2928
b5d8d2ca
GM
29292000-12-02 Simon Josefsson <simon@josefsson.org>
2930
2931 * fns.c (Fmd5): Use a different logic to decide the coding system
2932 to use.
2933
2934 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
2935
fbb87147
EZ
29362000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
2937
2938 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is
2939 NULL.
2940
447e9da0
GM
29412000-12-01 Gerd Moellmann <gerd@gnu.org>
2942
7708ced0
GM
2943 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
2944 height for YNegative.
2945 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
2946 height; also see comment there.
2947
447e9da0
GM
2948 * window.c (coordinates_in_window): Handle computations for
2949 positions on the vertical bar and fringes differently for
2950 window-system frames. Consider some pixels near the vertical bar
2951 as on the bar if the frame doesn't have vertical scroll bars.
2952 Associate positions between mode or header lines with the
2953 right window, the left one.
2954
86d1db20
JR
29552000-12-01 Jason Rumney <jasonr@gnu.org>
2956
2957 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
2958
2959 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
2960 invalid frame.
2961
a1d58e5b
GM
29622000-12-01 Gerd Moellmann <gerd@gnu.org>
2963
2964 * window.c (struct saved_window): Add members orig_top and
2965 orig_height.
2966 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
2967 (save_window_save, Fset_window_configuration): Save/restore
2968 window's orig_top and orig_height.
2969
89c609af
JR
29702000-12-01 Jason Rumney <jasonr@gnu.org>
2971
4d177746 2972 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
86d1db20 2973
89c609af
JR
2974 * w32fns.c (x_set_cursor_color): Fix last change.
2975
eccc05db
GM
29762000-11-30 Gerd Moellmann <gerd@gnu.org>
2977
31b6671b
GM
2978 * xdisp.c (echo_area_display): If cursor is in the echo area, make
2979 sure that the next redisplay displays the minibuffer, so that
2980 the cursor will be replaced with what the minibuffer wants.
2981
eccc05db
GM
2982 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
2983 #ifndef instead of using #if.
2984 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
2985 USE_TOOLKIT_SCROLL_BARS is defined.
2986
162de750
JR
29872000-11-30 Jason Rumney <jasonr@gnu.org>
2988
2989 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
2990 x_display_cursor.
2991
693c4692
GM
29922000-11-30 Gerd Moellmann <gerd@gnu.org>
2993
2994 * fns.c (Fmd5): Doc fix.
2995
b5d8d2ca 29962000-11-30 Simon Josefsson <simon@josefsson.org>
edfb795e
GM
2997
2998 * fns.c (Fmd5): New function.
2999 (syms_of_fns): Defsubr md5.
3000
3001 * Makefile.in (obj): Add md5.o
3002
b02cd40b
GM
30032000-11-30 Gerd Moellmann <gerd@gnu.org>
3004
edfb795e
GM
3005 * md5.h, md5.c: New files, taken from glibc.
3006
df3aedcf
GM
3007 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
3008
b02cd40b
GM
3009 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
3010 hasn't a font, use that of the frame, as drawing glyphs
3011 does.
3012
8b5176cd
SM
30132000-11-29 Stefan Monnier <monnier@cs.yale.edu>
3014
3015 * eval.c (Frun_hooks): Allow 0 arguments.
3016
346598f1
GM
30172000-11-29 Gerd Moellmann <gerd@gnu.org>
3018
f9396e03
GM
3019 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
3020 is over the menu bar widget, say it's not on the frame.
3021
4a967a9b
GM
3022 * xfns.c (Fx_create_frame): Reintroduce the call to
3023 face-set-after-frame-defaults.
3024
346598f1
GM
3025 * eval.c (Fsignal): Reset handling_signal.
3026
222456a1
JR
30272000-11-28 Jason Rumney <jasonr@gnu.org>
3028
3029 * w32menu.c (add_menu_item): Reset menu item text when changing
3030 type to radio button.
3031
8049ddc0
GM
30322000-11-28 Gerd Moellmann <gerd@gnu.org>
3033
346598f1 3034 * xselect.c: Update copyright.
f4f4ee4d 3035
bebe4a2c
GM
3036 * window.c (coordinates_in_window): If on a mode or header line,
3037 but sufficiently close to its start, return ``on vertical
3038 border''. This gives us a way to drag windows horizontally when
3039 using toolkit scroll bars.
3040
3041 * xterm.c (note_mouse_highlight): Change the cursor shape
3042 on the vertical border between windows.
3043
3044 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
3045
3046 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
3047 (syms_of_xfns): DEFVAR_LISP it.
3048 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
3049
8d2c2642
GM
3050 * textprop.c (text_read_only): New function.
3051 (verify_interval_modification): Use it instead of signaling
3052 `text-read-only'. This makes it easier to catch this error
3053 with a breakpoint.:
3054
8049ddc0
GM
3055 * xdisp.c (forward_to_next_line_start): Check for newlines,
3056 not end of line, which includes CR.
3057
5a2bae6c
KH
30582000-11-28 Kenichi Handa <handa@etl.go.jp>
3059
3060 * coding.c (Ffind_coding_systems_region_internal): Be sure to
3061 include no-conversion.
3062
ae31f84d
JR
30632000-11-27 Jason Rumney <jasonr@gnu.org>
3064
3065 * w32fns.c (w32_load_system_font): Always mark font as double byte
3066 if codepage is unicode.
3067
67f1cf4c
GM
30682000-11-27 Gerd Moellmann <gerd@gnu.org>
3069
4a74d071
GM
3070 * xdisp.c (forward_to_next_line_start): If already on a newline,
3071 just consume it to avoid unintended skipping over invisible text
3072 below.
3073
902ae620
GM
3074 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
3075 `vertical-line', `mode-line' and `header-line' events.
3076
3077 * xdisp.c (try_window_id): Avoid starting to display in the middle
67f1cf4c
GM
3078 of a character, a TAB for instance. This is easier than to set
3079 up the iterator exactly, and it's not a frequent case, so the
3080 additional effort wouldn't really pay off.
3081
c1e279c2
AC
30822000-11-26 Andrew Choi <akochoi@i-cable.com>
3083
67f1cf4c 3084 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
c1e279c2
AC
3085 init_window_once.
3086
a609568a
JR
30872000-11-25 Jason Rumney <jasonr@gnu.org>
3088
48b21762
JR
3089 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]: Args
3090 to window_from_coordinates should be pixel coordinates.
3091
a609568a
JR
3092 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
3093 redisplay handles them properly.
3094
a658d039
MB
30952000-11-25 Miles Bader <miles@gnu.org>
3096
3097 * indent.c (compute_motion): Keep pos_byte in sync with pos.
3098
d3416cca
JR
30992000-11-24 Jason Rumney <jasonr@gnu.org>
3100
3101 * w32.c (init_environment): Set LANG environment variable based on
3102 locale settings, if not set.
3103
3104 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
3105 making tool bar smaller. When clearing the frame, also
3106 clear current matrices. Clear frame when tool bar disappears.
3107 Don't use more lines for the tool-bar than is available.
3108 (x_change_window_heights): New function.
3109
ba193890
GM
31102000-11-24 Gerd Moellmann <gerd@gnu.org>
3111
2be8f184
GM
3112 * xdisp.c (init_from_display_pos): If POS says we're already after
3113 an overlay string ending at POS, make sure to pop the iterator
3114 because it will be in front of that overlay string. When POS is
3115 ZV, we've thereby also ``processed'' overlay strings at ZV.
3116
ba193890
GM
3117 * xfaces.c (lface_from_face_name): Function comment fix.
3118
1862a24e
MB
31192000-11-24 Miles Bader <miles@gnu.org>
3120
3121 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
3122 apply `mode-line-inverse-video' -- zero means force display using
3123 the default face, non-zero means display using the specialized face.
3124 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
3125
f07fa1b8
KH
31262000-11-23 Kenichi Handa <handa@etl.go.jp>
3127
3128 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
3129 hard coded `4'.
3130
2bcdf662
EZ
31312000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
3132
3133 * coding.c (decode_coding_emacs_mule): Fix the case of
3134 CODING_EOL_LF, which used uninitialized value of c.
3135
ba8299ff
SM
31362000-11-23 Stefan Monnier <monnier@cs.yale.edu>
3137
3138 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
3139
f4117c4d
GM
31402000-11-22 Gerd Moellmann <gerd@gnu.org>
3141
03e757c1
GM
3142 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
3143 buffer object.
3144
f4117c4d
GM
3145 * frame.h (struct frame): Replace desired_tool_bar_items,
3146 current_tool_bar_items, n_desired_tool_bar_items,
cc362d76 3147 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
f4117c4d
GM
3148
3149 * frame.c (make_frame): Change initialization of tool bar
3150 items accordingly.
3151
3152 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
cc362d76 3153 Change references to members deleted from struct frame to use the
f4117c4d
GM
3154 new ones.
3155
3156 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
cc362d76 3157 references to members deleted from struct frame to use the new
f4117c4d
GM
3158 ones.
3159
3160 * dispnew.c (update_frame): Do nothing with frame's tool bar
3161 items.
3162
3163 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
3164
3165 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
cc362d76 3166 (note_tool_bar_highlight): Change references to members deleted
f4117c4d
GM
3167 from struct frame to use the new ones.
3168
f8e2f3f2
MB
31692000-11-23 Miles Bader <miles@gnu.org>
3170
3171 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
3172 the face's inverse-video attribute, rather than overriding it.
3173
60e8e0a5
GM
31742000-11-22 Gerd Moellmann <gerd@gnu.org>
3175
3176 * xfns.c (x_set_tool_bar_lines): Clear internal border when
3177 making tool bar smaller.
3178
92dd1b29
DL
31792000-11-22 Dave Love <fx@gnu.org>
3180
3181 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
3182
e672fdce
MB
31832000-11-22 Miles Bader <miles@gnu.org>
3184
3a17d6cc
MB
3185 * keyboard.c (Vminibuffer_message_timeout): New variable.
3186 (command_loop_1): Use it to determine message timeout.
3187 (syms_of_keyboard): Initialize it.
3188
60e8e0a5 3189 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
e672fdce 3190
e9655d81
KH
31912000-11-22 Kenichi Handa <handa@etl.go.jp>
3192
3193 * sysdep.c: Move the code for declaring h_errno after #include
3194 <netdb.h>.
3195
77270fac
GM
31962000-11-21 Gerd Moellmann <gerd@gnu.org>
3197
cd913aae
GM
3198 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
3199 the menu bar when the tooltip is unmapped.
3200
77270fac
GM
3201 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
3202 sole visible buffer when we're currently in the mini-buffer, and
3203 give up if so.
3204
556635d6
JR
32052000-11-21 Jason Rumney <jasonr@gnu.org>
3206
3207 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
3208 put on the clipboard.
3209 (Fw32_get_clipboard_data): Compare data on clipboard with saved
3210 copy of what Emacs last put there. If they are the same, do not
3211 use the clipboard copy to avoid losing data due to coding
3212 conversions.
3213
5b7bde64
MB
32142000-11-22 Miles Bader <miles@gnu.org>
3215
3216 * minibuf.c (Vminibuffer_prompt_properties): New variable.
3217 (syms_of_minibuf): Initialize it.
3218 (read_minibuf): Add properties from Vminibuffer_prompt_properties
3219 to prompt, don't make read-only.
3220
ff23e1dd
GM
32212000-11-21 Gerd Moellmann <gerd@gnu.org>
3222
3c64f287
GM
3223 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>: Add
3224 BEFORE/AFTER_POTENTIAL_GC.
3225
7aaf4388
GM
3226 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
3227
f5f47add 3228 * buffer.c (mmap_free_1): Avoid a compiler warning.
1a15cca0 3229
ff23e1dd
GM
3230 * term.c, cm.c: Don't try to include termcap.h; see comment there.
3231
37c35586
KH
32322000-11-21 Kenichi Handa <handa@etl.go.jp>
3233
3234 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
3235 ... #endif scope.
3236
ff9ab414
GM
32372000-11-20 Gerd Moellmann <gerd@gnu.org>
3238
c51d2b5e
GM
3239 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
3240 screen supports it.
3241
29a01b72
GM
3242 * s/gnu-linux.h: Don't use `#cpu'.
3243
09dfdf85
GM
3244 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
3245 not defined in mman.h.
3246
ff9ab414
GM
3247 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New
3248 variables.
3249 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
3250 and store an index in the XClientMessageEvent. Storing a
3251 Lisp_Object or pointer can fail on a 64 bit system, since X only
3252 transfers 32 bits.
3253 (x_scroll_bar_to_input_event): Get the window from
3254 scroll_bar_windows.
3255
81459ac9
DL
32562000-11-20 Dave Love <fx@gnu.org>
3257
3258 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
3259
56c13ae6
GM
32602000-11-20 Gerd Moellmann <gerd@gnu.org>
3261
3262 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
3263
495a6df3
KH
32642000-11-20 Kenichi Handa <handa@etl.go.jp>
3265
2bcf3714
KH
3266 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
3267 by WIDTH.
3268
495a6df3
KH
3269 * alloc.c (make_string): Fix previous change. Be sure to make
3270 unibyte string correctly.
3271
6d950f4c
GM
32722000-11-19 Gerd Moellmann <gerd@gnu.org>
3273
39b39373
GM
3274 * window.c (Fwindow_list): Change parameter list to be XEmacs
3275 compatible.
3276 (window_list_1): New function.
3277 (window_loop): Use it instead of Fwindow_list.
3278
b95b34e5
GM
3279 * sysdep.c (emacs_ospeed): New variable.
3280 (toplevel): Don't declare ospeed extern.
3281 (init_baud_rate): Use emacs_ospeed instead of ospeed.
3282
3283 * termcap.c (ospeed): Remove.
3284 (tputs) [!emacs]: Remove unused code.
3285 (tgetent): Avoid a compiler warning.
3286
e83dc917
GM
3287 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
3288 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
b95b34e5 3289 SCROLL_BAR_X_WIDGET with additional argument DPY.
e83dc917
GM
3290
3291 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
3292 removed.
3293 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
3294 Take the X display as additional argument.
3295 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
3296 `Widget' is a pointer type that's not easily stored in Lisp_Object
3297 form in a portable way.
3298
6d950f4c
GM
3299 * dispnew.c (update_text_area): Fix last change.
3300
e47306e6
GM
33012000-11-18 Gerd Moellmann <gerd@gnu.org>
3302
fb3cd89b
GM
3303 * xdisp.c: Use BINDING_STACK_SIZE throughout.
3304
3305 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
3306 clear current matrices.
3307
edaa9aed
GM
3308 * buffer.c (mmap_enlarge): Don't print a message on stderr
3309 if mapping new memory at the end of the existing region fails.
3310
e47306e6
GM
3311 * dispnew.c (update_text_area): Don't skip over equal glyphs
3312 when the last current glyph overlaps the glyph to its right.
3313
509633e3
MB
33142000-11-18 Miles Bader <miles@gnu.org>
3315
3316 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
3317 lines that *end* with "..." too (that's the most common case!).
3318
d392e9c5
GM
33192000-11-18 Gerd Moellmann <gerd@gnu.org>
3320
67988445
GM
3321 * xdisp.c (resize_mini_window): Temporarily change to the
3322 mini-window's buffer if necessary.
1bfdbe43 3323
d392e9c5
GM
3324 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
3325 the tooltip obscures less text under it.
3326
33272000-11-17 Gerd Moellmann <gerd@gnu.org>
3328
3329 * puresize.h (BASE_PURESIZE): Increase to 700000.
3330
92bb977f
JR
33312000-11-18 Jason Rumney <jasonr@gnu.org>
3332
3333 * w32term.c (w32_draw_bitmap): Use face to set colors.
3334
26fbf20b
DL
33352000-11-17 Dave Love <fx@gnu.org>
3336
3337 * lread.c (Fload): Fix #ifdef for pcc.
3338
100b593b
GM
33392000-11-17 Gerd Moellmann <gerd@gnu.org>
3340
3341 * xdisp.c (pos_visible_p): Compute the default character height
3342 differently.
3343
a288d0d1
GM
33442000-11-16 Gerd Moellmann <gerd@gnu.org>
3345
cac94de6
GM
3346 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
3347 knowing the line's height; use the default font's height in that
3348 case.
3349
a288d0d1
GM
3350 * xfaces.c (weight_table): Add `demi' with the same meaning as
3351 `demibold'.
3352
981fb6f6
KH
33532000-11-16 Kenichi Handa <handa@etl.go.jp>
3354
2cca872d 3355 * dispnew.c (null_row): New global static variable.
981fb6f6
KH
3356 (clear_glyph_row): Delete local static variable null_row.
3357
e5fa381b
JR
33582000-11-15 Jason Rumney <jasonr@gnu.org>
3359
3360 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
3361 (w32_alloc_lighter_color): Use new brightness calculations from
3362 xterm.c. Scale delta to be in the range expected by W32.
3363 (w32_draw_relief_rect): Use frame relief colors.
3364
8e42f043
GM
33652000-11-15 Gerd Moellmann <gerd@gnu.org>
3366
6d133d1f
GM
3367 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
3368 (Qinhibit_default_face_x_resources): New variable.
3369 (syms_of_frame): Initialize it.
3370 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
3371
3372 * xdisp.c (pos_visible_p): Improve function comment.
3373
3374 * lisp.h (BINDING_STACK_SIZE): New macro.
3375
8e42f043
GM
3376 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
3377 reading the directory if readdir returns null and errno is EAGAIN
3378 or EINTR.
3379
e8c87124
SM
33802000-11-14 Stefan Monnier <monnier@cs.yale.edu>
3381
3382 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
3383 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
3384 Set amount_to_scroll to max of dx and scroll_step so that
3385 scroll-conservatively doesn't defeat scroll-step>1.
3386 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
3387 scroll-conservatively for line-at-a-time scrolling.
3388
5f0c971d
GM
33892000-11-14 Gerd Moellmann <gerd@gnu.org>
3390
3391 * window.c (Fpos_visible_in_window_p): Call pos_visible with
3392 extra argument.
3393
3394 * xdisp.c (current_mode_line_height, current_header_line_height):
3395 New variables.
3396 (init_xdisp): Initialize them.
3397 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
3398 and use exact mode line heights if it is set.
3399
3400 * lisp.h (pos_visible_p): Change prototype.
3401
3402 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
3403 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
3404 and current_header_line_height first.
3405 (current_mode_line_height, current_header_line_height): Declare
3406 extern.
3407
d7361edf
MB
34082000-11-14 Miles Bader <miles@lsi.nec.co.jp>
3409
3410 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
3411 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
3412 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
3413
ee5e440a
MB
34142000-11-14 Miles Bader <miles@gnu.org>
3415
3416 * xterm.c (x_alloc_lighter_color): Include an additive component
3417 too for dark colors, because FACTOR isn't enough.
3418 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
3419 New macros.
3420
5ca020fc
GM
34212000-11-13 Gerd Moellmann <gerd@gnu.org>
3422
3423 * keyboard.c (show_help_echo): Call message3_nolog with number of
3424 bytes in the help string as 2nd parameter, instead of the number
3425 of characters.
3426
9d348294
MB
34272000-11-13 Miles Bader <miles@gnu.org>
3428
3429 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
3430 (Fload): Use new openp return protocol.
3431 Don't try to use Vload_source_file_function to load .elc files.
3432 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
3433 openp return protocol.
3434 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
3435
1729bb9a
KH
34362000-11-11 Kenichi Handa <handa@etl.go.jp>
3437
4e677396
KH
3438 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
3439
3440 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
3441 Defined these macros.
3442 (NLIST_STRUCT): Avoid re-defining it.
3443
1729bb9a
KH
3444 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
3445 -I/usr/contrib/X11R6/include.
3446 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
3447
a82fe213
JR
34482000-11-10 Jason Rumney <jasonr@gnu.org>
3449
3450 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
3451
3452 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
3453 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
3454
3455 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
3456 (Qw32_charset_vietnamese): New symbol.
3457 (xlfd_charset_of_font): New function.
3458 (w32_load_system_font): Use it.
3459 (x_to_w32_charset): Use Fassoc to find charset info. Special case
3460 when Vw32_charset_info_alist is nil to ensure default face always
3461 has font. Use Fcar and Fcdr for safety.
3462 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
3463 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
3464 pseudo-codepages for special cases.
3465 (w32_to_x_font): New parameter to allow charset portion to be
3466 specified where there is many to one mapping. Callers changed.
3467 (w32_list_fonts): Avoid listing fonts that won't display.
3468
52d89894
GM
34692000-11-10 Gerd Moellmann <gerd@gnu.org>
3470
3471 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
3472 (font_list_1): Renamed from font_list.
3473 (font_list): New function, trying alternative registries from
3474 Vface_alternative_font_registry_alist.
3475 (Finternal_set_alternative_font_registry_alist): New function.
3476 (syms_of_xfaces): Initialize and Staticpro
3477 Vface_alternative_font_registry_alist. Defsubr
3478 Finternal_set_alternative_font_registry_alist.
3479
651cd3da
KR
34802000-11-09 Ken Raeburn <raeburn@gnu.org>
3481
3482 * lisp.h (Flooking_at): Declare.
3483
388ac098
GM
34842000-11-09 Gerd Moellmann <gerd@gnu.org>
3485
778fbc46
GM
3486 * dired.c (directory_files_internal): Fix a braino.
3487
388ac098
GM
3488 * dired.c (directory_files_internal): Add missing GCPRO's.
3489 Some cleanup.
3490
ecaedde1
GM
34912000-11-08 Gerd Moellmann <gerd@gnu.org>
3492
f7eb32aa
GM
3493 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
3494 (resize_mini_window): Return quickly if Vresize_mini_window is
3495 nil. Don't return if Vmax_mini_window_height is nil.
3496
3497 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
3498 (syms_of_xdisp): Initialize them.
3499 (resize_mini_window): Act according to the setting of
3500 Vresize_mini_window.
3501 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
3502
ecaedde1
GM
3503 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
3504 scroll bar widget after configuring it, so that it will appear at
3505 the right position from the start.
3506 (XTredeem_scroll_bar): Cleaned up.
3507
3747ef2c
KH
35082000-11-08 Kenichi Handa <handa@etl.go.jp>
3509
3510 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
5d16e624 3511 font is taller than the frame line, we don't have to bias the
3747ef2c
KH
3512 division by two.
3513
3514 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
3515
03391420
DL
35162000-11-07 Dave Love <fx@gnu.org>
3517
7758f1c1 3518 * config.in (HAVE_MKSTEMP): Add.
03391420
DL
3519
3520 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
3521
b5de343d
GM
35222000-11-07 Gerd Moellmann <gerd@gnu.org>
3523
acad3c0b
GM
3524 * window.c (Fset_window_configuration): Don't try to preserve
3525 point in the current buffer, if that buffer is displayed in more
3526 than one window.
3527
b5de343d
GM
3528 * xfaces.c (lookup_named_face): If default face isn't realized,
3529 try to realize it. Return -1 if not successful.
3530 (Fx_list_fonts): Handle case that face cannot be determined.
3531 (Fface_font): Likewise.
3532
cdb1fe49
GM
35332000-11-06 Gerd Moellmann <gerd@gnu.org>
3534
3535 * window.c (displayed_window_lines): Detect partially
3536 visible lines at the bottom correctly.
3537
d3a67486
SM
35382000-11-06 Stefan Monnier <monnier@cs.yale.edu>
3539
3540 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
3541 when ensuring we don't do visit in indirect buffer.
3542
ff8dd5d5
KH
35432000-11-06 Kenichi Handa <handa@etl.go.jp>
3544
3545 * composite.h (compose_chars_in_text): Add prototype.
3546
3547 * composite.c (Vcomposition_function_table): New variable.
3548 (Qcomposition_function_table): New variable.
3549 (run_composition_function): Call
3550 Vcompose_chars_after_function with three arguments.
3551 (compose_chars_in_text): New function.
3552 (syms_of_composite): Modified the doc-string of
3553 Vcompose_chars_after_function. Declare composition-function-table
3554 as a lisp variable, and initialize it.
3555
3556 * xfns.c (x_encode_text): Suppress producing escape sequences for
3557 composition.
3558
3559 * xselect.c: Include composite.h.
3560 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
3561
d1145f85
AI
35622000-11-05 Andrew Innes <andrewi@gnu.org>
3563
3564 * w32term.c (x_produce_glyphs): Fix typo in enum name.
3565
3566 * sysdep.c (read_input_waiting): Remove extraneous argument to
3567 read_socket_hook.
3568
3569 * w32fns.c (Fx_server_version): Include w32_build_number in the
3570 return list.
3571
3572 * w32heap.c (w32_build_number): New variable.
3573 (cache_system_info): Set it.
3574
3575 * w32heap.h (w32_build_number): Add extern.
3576
3577 * emacs.c (syms_of_emacs): Update docstring for
3578 system-configuration, to reflect the actual usage on MS-Windows.
3579
e85ee976
GM
35802000-10-31 Gerd Moellmann <gerd@gnu.org>
3581
26dcb81b
GM
3582 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
3583 process idle timers while waiting for another event.
3584
0a894bad
GM
3585 * dispnew.c (update_frame_line): Handle case where spaces in
3586 the default face are colored.
3587
e85ee976
GM
3588 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
3589 window height hasn't changed.
3590
01b220b6
JR
35912000-10-31 Jason Rumney <jasonr@gnu.org>
3592
3593 * w32term.c (x_produce_glyphs): Handle composite characters.
3594 (x_draw_glyph_string_foreground)
3595 (x_draw_composite_glyph_string_foreground): Restore old font.
3596
4e6b7204
MB
35972000-10-31 Miles Bader <miles@lsi.nec.co.jp>
3598
3599 * minibuf.c (read_minibuf): Reset the undo history just before
3600 starting the recursive-edit.
3601
d4358b37
GM
36022000-10-30 Gerd Moellmann <gerd@gnu.org>
3603
563f68f1
GM
3604 * xfaces.c (menu_face_change_count): New variable.
3605 (Finternal_set_lisp_face_attribute): Increment it for changes
3606 of the `menu' face.
3607 (realize_basic_faces): Reflect changes in the `menu' faces
3608 in menu bars.
3609
82e274d1
GM
3610 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
3611 dy obtained from the iterator's y-position after moving from
3612 scroll_margin_pos to PT; see comment there.
3613
0dbf9fd2
GM
3614 * xdisp.c (safe_eval_handler): Call add_to_log.
3615
906b3b14
GM
3616 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
3617 is not a symbol or string.
3618
d4358b37
GM
3619 * xdisp.c (echo_area_display): Don't perform a display update from
3620 inside redisplay. The update will happen anyway at the end of
3621 redisplay, and it can confuse redisplay (GC messages while
3622 redisplaying, for instance.)
3623
70c825df
SM
36242000-10-30 Stefan Monnier <monnier@cs.yale.edu>
3625
cf9b4b0b
SM
3626 * xrdb.c (x_load_resources): Use the class name in the defaults.
3627
70c825df
SM
3628 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
3629 (regex_compile): Catch bogus \(\1\).
3630
a1d34b1e
GM
36312000-10-30 Gerd Moellmann <gerd@gnu.org>
3632
cae71efe
GM
3633 * xterm.c (x_alloc_nearest_color): Fix last change to compare
3634 RGB values.
3635
35efe0a1
GM
3636 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
3637 we have a color cache, check that the cached color equals the
3638 allocated color. If not, clear the color cache.
3639
1d3baf74
GM
3640 * window.c (displayed_window_lines): Change buffers if necessary.
3641 Fix computation of displayed lines.
3642
a1d34b1e
GM
3643 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
3644 update_menu_bindings to DEFVAR_BOOL.
3645
70737ea9
KH
36462000-10-30 Kenichi Handa <handa@etl.go.jp>
3647
70c825df 3648 * search.c (Fset_match_data): Be sure to make search_regs always sane.
80406070 3649
fa0cb51d
KH
3650 * puresize.h (BASE_PURESIZE): Increase to 680000.
3651
70737ea9
KH
3652 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
3653
0e4c08e8
JR
36542000-10-29 Jason Rumney <jasonr@gnu.org>
3655
3656 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
3657
3658 * w32term.c (w32_bdf_per_char_metric): Negate descent.
3659 (w32_cache_char_metrics): Handle possibility that 'x' does not
3660 exist in a BDF font.
3661 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
3662
3663 * w32bdf.h (bdffont): Add nchars.
3664
3665 * w32bdf.c (set_bdf_font_info): Set it.
3666 (w32_BDF_TextOut): Swap byte order of double byte characters.
3667 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
3668
45b84006
EZ
36692000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
3670
3671 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
3672 don't override the colors in frame's param_alist, unless they are
3673 unspecified.
3674
3675 * term.c (reassert_line_highlight): If inverse_video is non-zero,
3676 reverse the effect of the highlight flag.
3677
caf9deee
KR
36782000-10-27 Ken Raeburn <raeburn@gnu.org>
3679
3680 * window.h (Fwindow_live_p): Declare.
3681
ae0b9b46
KR
3682 * undo.c (record_delete): Check that last_undo_buffer is really a
3683 buffer before applying XBUFFER to it.
3684
3685 * keymap.c (where_is_internal): Pass lisp object, not integer, to
3686 Faref.
3687
02067692
SM
36882000-10-27 Stefan Monnier <monnier@cs.yale.edu>
3689
3690 * lisp.h (KEYMAPP): New macro.
3691 (get_keymap): Remove.
3692 (get_keymap_1): Rename get_keymap.
3693
3694 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
3695
3696 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
3697
3698 * xmenu.c (single_submenu): Use KEYMAPP.
3699 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
3700 Use KEYMAPP rather than Fkeymapp.
3701
3702 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
3703
3704 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
3705 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
3706 Use KEYMAPP rather than Fkeymapp.
3707 (single_submenu): Use KEYMAPP.
3708 (w32_menu_show, w32_dialog_show): Use TRUE.
3709
3710 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
3711
3712 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
3713 (Fkeymapp): Use KEYMAPP.
3714 (get_keymap): Rename from get_keymap_1. Remove old def.
3715 Return t when autoload=0 and error=0 and the keymap needs autoloading.
3716 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
3717 (Fminor_mode_key_binding): Don't raise an error if the binding
3718 is not a keymap.
3719 (Fuse_global_map, Fuse_local_map): Allow autoloading.
3720 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
3721
3722 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
3723 Allow Vspecial_event_map to be autoloaded.
3724 (menu_bar_items): Fetch the keymap rather than using keymapp.
3725 (menu_bar_one_keymap): No need to follow func-indirect any more.
3726 (parse_menu_item): get_keymap_1 -> get_keymap.
3727 (tool_bar_items): Fetch the keymap rather than using keymapp.
3728 (read_key_sequence): Use KEYMAPP.
3729
3730 * intervals.c (get_local_map): Use get_keymap rather than following
3731 function-indirections explicitly.
3732
3733 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
3734
f9d80af3
JR
37352000-10-27 Jason Rumney <jasonr@gnu.org>
3736
3737 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
3738 point, as Windows has oversized fonts.
3739
3740 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
3741
a3ba27da
GM
37422000-10-27 Gerd Moellmann <gerd@gnu.org>
3743
3744 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
3745 (freehook, reallochook): Handle null pointer arguments.
3746 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
3747
aa3b80cc
SM
37482000-10-27 Stefan Monnier <monnier@cs.yale.edu>
3749
3750 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
3751 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
3752 Giving in to popular pressure to shut up the compiler with casts.
3753
e24e84cc
GM
37542000-10-27 Gerd Moellmann <gerd@gnu.org>
3755
3756 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
3757 signed value, and use a default value computed from the font's
3758 maximum descent.
3759
05ea7ef2
MB
37602000-10-27 Miles Bader <miles@lsi.nec.co.jp>
3761
3762 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
3763 that specify a negative underline position can still use underlines.
3764
3765 * window.c (Fpos_visible_in_window_p): Make POS default to
3766 WINDOW's point, not the current buffer's point.
3767
0b95284b
DL
37682000-10-26 Dave Love <fx@gnu.org>
3769
3770 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
3771 when it's necessary.
3772
6c5b90af
GM
37732000-10-26 Gerd Moellmann <gerd@gnu.org>
3774
8b6d9dc9
GM
3775 * window.c (size_window): Compute size difference from sum of old
3776 child window sizes instead of from parent's size.
3777
6bc92b2e
GM
3778 * xdisp.c (pos_visible_p): Change current buffer if necessary.
3779 Handle obscured lines at the top of the window.
3780
3781 * frame.c (Fdelete_frame): Doc fix. Move running the hook
3782 down after the last error condition check.
3783
6c5b90af
GM
3784 * frame.c (Fdelete_frame): Run delete-frame-hook.
3785
42f92d4d
KH
37862000-10-26 Kenichi Handa <handa@etl.go.jp>
3787
3788 * coding.c (decode_coding): Fix previous change (check also
3789 CODING_MODE_LAST_BLOCK).
3790
d97151cb
SM
37912000-10-25 Stefan Monnier <monnier@cs.yale.edu>
3792
e7efc503
SM
3793 * regex.c: More `unsigned char' -> `re_char' changes.
3794 Also change several `int' into `re_wchar_t'.
3795 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
3796 (PUSH_FAILURE_POINTER): Don't cast any more.
3797 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
3798 We want GCC to complain, since this piece of code makes
3799 re_match non-reentrant, which *should* be fixed.
3800 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
3801 (EXTEND_BUFFER): Use RETALLOC.
3802 (SET_LIST_BIT): Don't cast.
3803 (re_wchar_t): New type.
3804 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
3805 that those two functions will always properly return.
3806 (IMMEDIATE_QUIT_CHECK): Cast to void.
3807 (analyse_first): Use recursion rather than an explicit stack.
3808 (re_compile_fastmap): Can't fail anymore.
3809 (re_search_2): Don't check re_compile_fastmap for failure.
3810 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
3811 Now also sets the new value (passed in a new argument).
3812 (re_match_2_internal): Use it.
3813 Also, use a new var `reg' of type size_t when looping through regs
3814 rather than reuse the inappropriate `mcnt'.
3815
d97151cb
SM
3816 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
3817 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
3818 (where_is_internal): Renamed from Fwhere_is_internal.
3819 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
3820 (Fwhere_is_internal): New function wrapping where_is_internal.
3821 (where_is_internal_1): Handle the case where we're filling the cache.
3822 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
3823
d5789b65
MB
38242000-10-25 Miles Bader <miles@gnu.org>
3825
3826 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
3827
4ecda532
GM
38282000-10-25 Gerd Moellmann <gerd@gnu.org>
3829
3830 * window.c (pos_fully_visible_p): Removed.
3831 (Fpos_visible_in_window_p): Use pos_visible_p to determine
3832 if position is visible and/or fully visible.
3833
3834 * lisp.h (pos_visible_p): Add prototype.
3835
3836 * xdisp.c (pos_visible_p): New function.
3837
68c3a137
KH
38382000-10-25 Kenichi Handa <handa@etl.go.jp>
3839
3840 * process.c (send_process): If OBJECT is t, it means that the data
3841 is from C string, but we should encode it. Before calling
3842 setup_raw_text_coding_system, be sure to flush out data by the
3843 previous coding system.
3844
7ae1c032
MB
38452000-10-25 Miles Bader <miles@lsi.nec.co.jp>
3846
ff4dcd4b
MB
3847 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
3848 assignment of startpos to prev when startpos == pos.
3849
7ae1c032
MB
3850 * editfns.c (find_field): Set the field stickiness correctly from
3851 overlay fields. Use renamed `text_property_stickiness'.
3852 (text_property_stickiness): Renamed from `char_property_stickiness'.
ebe2a441 3853 Only check text properties, not overlays.
7ae1c032
MB
3854 * textprop.c (get_char_property_and_overlay): New function.
3855 (Fget_char_property): Use it.
3856 * intervals.h (get_char_property_and_overlay): Add declaration.
3857
49801145
SM
38582000-10-25 Stefan Monnier <monnier@cs.yale.edu>
3859
3860 * keymap.c: Use AREF, ASET and ASIZE macros.
3861 (Fmake_sparse_keymap): Docstring fix.
3862 (synkey): Remove.
3863 (shadow_lookup): Move up.
3864 Handle the case where lookup-key returns an integer.
3865 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
3866 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
3867 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
3868 Simplify/rewrite the keymap-finding code.
3869 Add check for command shadowing, using shadow_lookup.
3870
39e776cd
SM
38712000-10-24 Stefan Monnier <monnier@cs.yale.edu>
3872
3873 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
3874 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
3875 a symbol.
3876
2488aba5
AI
38772000-10-24 Andrew Innes <andrewi@gnu.org>
3878
3879 * dired.c (directory_files_internal_unwind): New function.
3880 (directory_files_internal): Use it to ensure closedir is called
3881 even if expand-file-name or file-attributes throw, eg. because of
3882 a user interrupt. Also enable immediate_quit while calling
3883 re_search, so that matching can be interrupted as well.
3884
b94fdf61
AI
38852000-10-24 Andrew Innes <andrewi@gnu.org>
3886
3887 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
3888 NT-Emacs only.
3889 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
3890 so that re_search functions only quit when callers expect them to.
3891
38922000-10-24 Kenichi Handa <handa@etl.go.jp>
3893
3894 * regex.c (regex_compile): Change the way of handling a range from
3895 a char less than 256 to a char not less than 256.
3896
1946f901
GM
38972000-10-24 Gerd Moellmann <gerd@gnu.org>
3898
7ae2f10f
GM
3899 * window.c (size_window): Prevent setting window's width or
3900 height to a negative value (esp. with XSETFASTINT).
3901
5dcab13e
GM
3902 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
3903 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
3904 (protect_malloc_state) [GC_MALLOC_CHECK &&
3905 GC_PROTECT_MALLOC_STATE]: New function.
3906 (PROTECT_MALLOC_STATE): New macro.
3907 (__malloc_initialize, morecore, _malloc_internal)
3908 (_free_internal) _realloc_internal): Use it to make _heapinfo
3909 read-only outside of gmalloc.
3910
63e1b552
GM
3911 * keymap.c: Update copyright.
3912
1946f901
GM
3913 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
3914 a symbol.
3915
4fa09beb
GM
39162000-10-24 Colin Walters <walters@cis.ohio-state.edu>
3917
3918 * filelock.c (unlock_all_files): Use unlock_file to expand each
3919 buffer's file_truename before trying remove its lock file.
3920
23afac01
EZ
39212000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
3922
3923 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
3924 or CRLF, decode EOLs.
3925
04448b95
KH
39262000-10-24 Kenichi Handa <handa@etl.go.jp>
3927
3928 * window.c (Fdisplay_buffer): Fix doc.
3929
3090a5a5
JR
39302000-10-23 Jason Rumney <jasonr@gnu.org>
3931
3932 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
3933 ASCII font of default fontset on Windows.
3934
3935 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
3936 xterm.c comment below).
3937
3938 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
3939
a83fee2c
GM
39402000-10-23 Gerd Moellmann <gerd@gnu.org>
3941
3942 * xterm.c (x_connection_closed): Reset handling_signal.
3943
3944 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing
3945 null.
3946
6ffdb539
MB
39472000-10-23 Miles Bader <miles@gnu.org>
3948
3949 * window.c (window_scroll_pixel_based, window_scroll_line_based):
3950 Pass nil for FULLY argument to Fpos_visible_in_window_p to
3951 maintain old behavior.
3952 * minibuf.c (Fminibuffer_complete): Likewise.
3953
7f1c969b
MB
39542000-10-23 Miles Bader <miles@lsi.nec.co.jp>
3955
3956 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
3957 that when a font can't be exactly centered, it errs up rather than
3958 down.
3959
23afac01 39602000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
8ec118cd
SZ
3961
3962 * fns.c (Fbase64_decode_string): The decoded result should be
3963 unibyte.
3964
1a578e9b
AC
39652000-10-23 Andrew Choi <akochoi@i-cable.com>
3966
3967 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
3968
3969 * dispnew.c [macintosh]: Include macterm.h.
a83fee2c 3970 (init_display) [macintosh]: Initialization for window system.
1a578e9b
AC
3971
3972 * emacs.c (main) [macintosh]: Call syms_of_textprop,
3973 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
3974 syms_of_search, x_term_init, and init_keyboard before calling
3975 init_window_once. Also, call syms_of_xmenu.
3976
3977 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
3978 default fontset to Monaco.
3979
3980 * frame.c [macintosh]: Include macterm.h. Remove declarations of
3981 NewMacWindow and DisposeMacWindow.
3982 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
3983 instead of calling NewMacWindow and setting fields of
3984 f->output_data.mac directly. Call init_frame_faces.
3985 (Fdelete_frame) [macintosh]: Remove unused code.
3986 (Fmodify_frame_parameters) [macintosh]: Call
3987 x_set_frame_parameters instead of mac_set_frame_parameters.
3988
3989 * frame.h [macintosh]: Define menu_bar_lines field in struct
3990 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
3991
3992 * keyboard.c [macintosh]: Include macterm.h.
3993 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
3994 and menu_bar_activate_event type events as for X and NT.
3995 (make_lispy_event) [macintosh]: Construct lisp events of type
3996 MENU_BAR_EVENT as for X and NT.
3997
3998 * sysdep.c [macintosh]: Remove declaration for sys_signal.
3999 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
4000 (sys_subshell) [macintosh]: Remove definition entirely.
4001 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
4002 Vwindow_system_version here. Remove initialization of
4003 Vx_bitmap_file_path.
4004 (read_input_waiting): Correct the number of parameters passed to
4005 read_socket_hook.
4006 Move all Macintosh functions to mac/mac.c.
4007
4008 * term.c [macintosh]: Include macterm.h.
4009
4010 * window.c [macintosh]: Include macterm.h.
4011
4012 * xdisp.c [macintosh]: Include macterm.h. Declare
4013 set_frame_menubar and pending_menu_activation.
4014 (echo_area_display) [macintosh]: Do not return if terminal frame
4015 is the selected frame.
4016 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
4017 Allow only the selected frame to set menu bar.
4018 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
4019 calling FRAME_EXTERNAL_MENU_BAR (f).
4020 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
4021
4022 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
4023 and check_x. Declare XCreateGC. Define x_create_gc and
4024 x_free_gc. Initialize font_sort_order.
4025 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
4026 but call x_list_fonts instead of w32_list_fonts.
4027 (Finternal_face_x_get_resource) [macintosh]: Do not call
4028 display_x_get_resource.
4029 (prepare_face_for_display) [macintosh]: Set xgcv.font.
4030 (realize_x_face) [macintosh]: Load the font if it is specified in
4031 ATTRS.
4032 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed
4033 to Qt.
4034
1ffbabe3
SM
40352000-10-22 Stefan Monnier <monnier@cs.yale.edu>
4036
4037 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
4038 is nil: since we go to the end of submap anyway, we'd end up
4039 setting nil to nil.
4040 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
4041 doesn't obey autoload.
4042
bed43f1d
EZ
40432000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
4044
1ffbabe3 4045 * msdos.c (dos_set_window_size): Update screen dimension variables.
bed43f1d 4046
ea4233a7
JR
40472000-10-21 Jason Rumney <jasonr@gnu.org>
4048
4049 * w32term.c (w32_cache_char_metrics): Double check that font is
4050 really fixed pitch before trusting tmPitchAndFamily.
4051
f3d3c491
AI
40522000-10-21 Andrew Innes <andrewi@gnu.org>
4053
4054 * w32gui.h (w32_char_font_type): Move enum from w32term.c
4055
4056 * w32term.h: Extern decl for w32_cache_char_metrics.
4057
4058 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
4059
4060 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
4061 (w32_unload_font): Free per_char array if present.
4062
4063 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
4064 cached information in emulated XFontStruct to handle common cases
4065 quickly. Do not allocate XCharStruct for return.
4066 (w32_native_per_char_metric): New function.
4067 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
4068 allocating one.
4069 (x_produce_glyphs): Don't get an HDC. Change calls to
4070 w32_per_char_metric to match arg change above. Remove calls to
4071 free results.
4072 (w32_get_glyph_overhangs): Ditto.
4073 (w32_cache_char_metrics): New function.
4074
4075 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
4076 ($(BLD)/casefiddle.$(O)): Remove compile command.
4077 ($(BLD)/gmalloc.$(O)): Remove compile command.
4078 ($(BLD)/dispnew.obj):
4079 ($(BLD)/keyboard.obj):
4080 ($(BLD)/w32inevt.obj):
4081 ($(BLD)/w32bdf.obj):
4082 ($(BLD)/alloc.obj):
4083 ($(BLD)/buffer.obj):
4084 ($(BLD)/editfns.obj):
4085 ($(BLD)/emacs.obj):
4086 ($(BLD)/fileio.obj):
4087 ($(BLD)/fns.obj):
4088 ($(BLD)/indent.obj):
4089 ($(BLD)/insdel.obj):
4090 ($(BLD)/intervals.obj):
4091 ($(BLD)/minibuf.obj):
4092 ($(BLD)/print.obj):
4093 ($(BLD)/scroll.obj):
4094 ($(BLD)/sysdep.obj):
4095 ($(BLD)/textprop.obj):
4096 ($(BLD)/widget.obj):
4097 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
4098 ($(BLD)/term.obj): Add dependency on dispextern.h.
4099
4100 * makefile.nt ($(BLD)\dispnew.obj):
4101 ($(BLD)\keyboard.obj):
4102 ($(BLD)\w32inevt.obj):
4103 ($(BLD)\w32bdf.obj):
4104 ($(BLD)\alloc.obj):
4105 ($(BLD)\buffer.obj):
4106 ($(BLD)\editfns.obj):
4107 ($(BLD)\emacs.obj):
4108 ($(BLD)\fileio.obj):
4109 ($(BLD)\fns.obj):
4110 ($(BLD)\indent.obj):
4111 ($(BLD)\insdel.obj):
4112 ($(BLD)\intervals.obj):
4113 ($(BLD)\minibuf.obj):
4114 ($(BLD)\print.obj):
4115 ($(BLD)\scroll.obj):
4116 ($(BLD)\sysdep.obj):
4117 ($(BLD)\textprop.obj):
4118 ($(BLD)\widget.obj):
4119 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
4120 ($(BLD)\term.obj): Add dependency on dispextern.h
4121
18ad4821
EZ
41222000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
4123
4124 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
4125 with an additional argument of Qt.
4126
de54681a
MB
41272000-10-21 Miles Bader <miles@gnu.org>
4128
4129 * window.c (pos_fully_visible_in_window_p): New function.
4130 (Fpos_visible_in_window_p): Add FULLY argument.
4131 Use pos_fully_visible_in_window_p.
4132 (window_scroll_pixel_based, window_scroll_line_based): Update
4133 calls to Fpos_visible_in_window_p.
4134 * lisp.h (Fpos_visible_in_window_p): Update prototype
4135
13c844fb
GM
41362000-10-20 Gerd Moellmann <gerd@gnu.org>
4137
4138 * alloc.c (toplevel): Conditionalize compilation of mem_*
4139 functions differently.
4140
d9506268
JR
41412000-10-20 Jason Rumney <jasonr@gnu.org>
4142
4143 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
4144 mem_init where it used to be. mem_z etc not defined otherwise.
4145
8094989b
GM
41462000-10-20 Gerd Moellmann <gerd@gnu.org>
4147
4148 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
4149 GC_MALLOC_CHECK.
4150 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
4151 structure definition and related variabled to the top of the file.
4152 Include this code when GC_MALLOC_CHECK is defined.
4153 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
4154 register/unregister allocated region.
4155 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
4156 which isn't allocated.
4157 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
4158 something which is already in use.
4159 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
4160 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
4161 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
4162 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
4163
4164 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
4165 _malloc_internal instead of malloc.
4166 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
4167 of free.
4168
ea456eb4
AI
41692000-10-20 Andrew Innes <andrewi@gnu.org>
4170
4171 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
4172 Windows.
4173 (my_strftime) <macro>: Don't use macro arg list when redefining as
4174 _strftime_copytm.
4175 (my_strftime) <function>: Supply 0 as ut argument.
4176
e64c3a75
JR
41772000-10-19 Jason Rumney <jasonr@altavista.net>
4178
4179 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
4180 including dispextern.h, as it stops faces from working.
4181
4182 * w32fns.c (Fx_create_frame): Don't bother calling
4183 face-set-after-frame-default since the caller does it for us
4184 anyway. Clean up calls to x_get_arg to be consistent with X.
4185
4186 * w32term.c (x_produce_glyphs): Handle
4187 unibyte_display_via_language_environment correctly.
4188 (w32_draw_box_rect): Fix the calculation of width and height.
4189
4190 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
4191 as it has stopped working.
4192 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
4193 menu-bar.
4194
17401c97
GM
41952000-10-19 Gerd Moellmann <gerd@gnu.org>
4196
4197 * eval.c (skip_debugger): Prevent a compiler warning.
4198 (Fcondition_case): Likewise.
4199 (Fbacktrace_frame): Use a null interactive spec.
4200
773272d8
KH
42012000-10-19 Kenichi Handa <handa@etl.go.jp>
4202
4203 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
4204
a42943e9
GM
42052000-10-18 Gerd Moellmann <gerd@gnu.org>
4206
e50517d9
GM
4207 * strftime.c: Sync with glibc, file version 1.78.
4208 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
4209 should no longer be used according to ISO 8601.
4210
9035a35a
GM
4211 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
4212 no map for meta_prefix_char, don't try to use it as a keymap.
4213 Instead, if T_OK is non-zero, look up a default binding, if any,
4214 otherwise, if T_OK is zero, return nil.
4215
a42943e9
GM
4216 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
4217 (x_to_xcolors, png_load): Use x_query_color.
4218
4219 * xterm.c (x_color_cells, x_query_colors, x_query_color): New
4220 functions.
4221 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
4222 which can be slow.
4223 (x_copy_color, x_alloc_lighter_color): Likewise.
4224
4225 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
4226 (x_query_color, x_query_colors): Add prototype.
4227
4228 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
4229 check_string_bytes only if not noninteractive, increase count to 50.
4230
00de2987
MB
42312000-10-18 Miles Bader <miles@lsi.nec.co.jp>
4232
4233 * insdel.c (adjust_markers_for_delete): Handle before-insertion
4234 markers correctly.
4235
54918e2b
GM
42362000-10-17 Gerd Moellmann <gerd@gnu.org>
4237
1f0b3fd2
GM
4238 * alloc.c (pure_bytes_used): Renamed from pureptr.
4239 (ALIGN): New macro.
4240 (pure_alloc): New function.
4241 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
4242 Use it.
4243 (Fpurecopy): Use PURE_POINTER_P.
4244
68c5d1db
GM
4245 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
4246 PT has moved backward.
4247
9a038881
GM
4248 * xdisp.c (cursor_row_p): Take continued lines into account.
4249
361b097f
GM
4250 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
4251 string's size_byte.
4252 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
4253 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
4254 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
4255 string allocated.
4256
54918e2b
GM
4257 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
4258 of selective display off while searching for the next line start.
4259
03ed0806
KH
42602000-10-17 Kenichi Handa <handa@etl.go.jp>
4261
4262 * Makefile.in (term.o): Depend on dispextern.h.
4263
7e05cdaf
SM
42642000-10-16 Stefan Monnier <monnier@cs.yale.edu>
4265
4266 * keymap.c (keymap_memberp): Ensure that nil is not a member.
4267
a6801fd1
GM
42682000-10-16 Gerd Moellmann <gerd@gnu.org>
4269
483de32b
GM
4270 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
4271 the iterator at the beginning, so that they can be set later on,
4272 for instance in reseat_at_next_visible_line_start, without being
4273 overwritten.
4274
a6801fd1
GM
4275 * xfns.c (pbm_format): Add :foreground and :background keywords.
4276 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
483de32b 4277 (xbm_load): Recognize foreground and background color
a6801fd1
GM
4278 specifications.
4279
dbf1fcc1
EZ
42802000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
4281
4282 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
4283
4284 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern
4285 declaration.
4286
4287 * msdos.c (IT_set_face): Compare highlighted face with the default
4288 face, and invert colors if these faces' colors are identical.
4289 (Fmsdos_remember_default_colors): Don't swap foreground and
4290 background colors in initial_colors[].
4291 (IT_set_frame_parameters): Don't swap frame's foreground and
4292 background pixels. If ALIST includes "(reverse . t)", swap
4293 foreground-color and background-color properties in frame's
4294 param_alist. If the original frame's param_alist doesn't specify
4295 the colors, store unspecified-fg and unspecified-bg, reversed if
4296 required.
4297
4298 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
4299 the colors are unspecified and reversed, reverse fore- and back-
4300 ground in the returned value.
4301 (Fframe_parameter): Ditto.
4302
b41fe2c3
GM
43032000-10-16 Gerd Moellmann <gerd@gnu.org>
4304
3a6b59d9
GM
4305 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
4306 get_last_unchanged_at_beg_row.
4307 (find_first_unchanged_at_end_row): Renamed from
4308 get_first_unchanged_at_end_row.
4309 (find_first_unchanged_at_end_row): Convert assertions to
4310 unconditional tests which abort. When looking for a row in
4311 unchanged text, don't go further back than first_text_row.
4312
b41fe2c3
GM
4313 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
4314 Don't add in the last line's height when deciding if the new
4315 position is below the scroll margin.
9d1af64f 4316
b41fe2c3 43172000-10-16 Miles Bader <miles@gnu.org>
f657bbf6
MB
4318
4319 * editfns.c (Fconstrain_to_field): Check carefully for field
4320 boundaries if either OLD_POS or NEW_POS has a non-nil field
4321 property, even if they're the same.
4322
c412cb7b
KH
43232000-10-16 Kenichi Handa <handa@etl.go.jp>
4324
4325 * xterm.c (x_draw_box_rect): Fix the calculation of width and
4326 height for XFillRectangle.
4327
5586f3eb
SM
43282000-10-15 Stefan Monnier <monnier@cs.yale.edu>
4329
4330 * syntax.c (Fstring_to_syntax): New function extracted from
4331 Fmodify_syntax_entry.
4332 (Fmodify_syntax_entry): Use it and document the ! and | fences.
4333 (skip_chars, Fforward_comment): Remove unused variables.
4334 (syms_of_syntax): Add defsubr for string-to-syntax.
4335 (describe_syntax): Add code for comment and string fences.
4336
db785038
SM
43372000-10-14 Stefan Monnier <monnier@cs.yale.edu>
4338
4339 * keymap.c (access_keymap): Add AUTOLOAD parameter.
4340 Do the meta->esc mapping. Call get_keyelt before returning.
4341 Start scanning from the second element (the first is always `keymap')
4342 to make it easier to detect when we reach a parent map.
4343 Handle the case of inheriting from a symbol whose function is a map.
4344 (Fkeymap_parent): Also handle the `inherit from symbol' case.
4345 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
4346 (get_keyelt, Flookup_key): Update call to access_keymap.
4347 Remove the meta->esc mappings.
4348 (define_as_prefix): Delete old disabled code.
4349 (menu_item_p): New function.
4350 (where_is_internal_1): Skip over the few remaining menu items.
4351 * lisp.h (access_keymap): Update prototype.
4352 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
4353 Update call to access_keymap.
4354 (follow_key, read_key_sequence): Update calls to access_keymap.
4355 Remove the meta->esc mappings.
4356
cafafe0b
GM
43572000-10-13 Gerd Moellmann <gerd@gnu.org>
4358
a2e2a7f6
GM
4359 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
4360 with additional argument.
4361
cafafe0b
GM
4362 * xdisp.c (cursor_row_p): New function.
4363 (try_cursor_movement, display_line): Use it.
4364
4365 * xdisp.c (append_space): Also save/restore iterator's current
4366 character and its length.
4367
4368 * xdisp.c (init_from_display_pos): Add an assertion.
4369 (handle_stop): Don't set iterator's add_overlay_start.
4370 (handle_invisible_prop): Likewise.
4371 (load_overlay_strings): If text under an overlay is invisible,
4372 take both before- and after-strings into account when the iterator
4373 is positioned either at the start or at the end of the overlay.
4374 (forward_to_next_line_start): Rewritten.
4375 (reseat_at_next_visible_line_start): Rewritten.
4376 (set_iterator_to_next): Add parameter RESEAT_P.
4377
4378 * dispextern.h (struct it): Remove member add_overlay_start.
4379 (set_iterator_to_next): Change prototype.
4380
c744452b
KH
43812000-10-13 Kenichi Handa <handa@etl.go.jp>
4382
4383 * coding.c (code_convert_region): Be sure to initialize
4384 coding->category_idx.
e4a3f4e1
KH
4385 (decode_coding_string): Set coding->src_multibyte and
4386 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
4387 (encode_coding_string): Set coding->src_multibyte and
4388 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
c744452b 4389
321fd26f
SM
43902000-10-12 Stefan Monnier <monnier@cs.yale.edu>
4391
4392 * xfns.c (Fx_create_frame): Don't bother calling
4393 face-set-after-frame-default since the caller does it for us anyway.
4394
76832439
EZ
43952000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
4396
4397 * window.c (coordinates_in_window): Fix detection of vertical line
4398 on character terminals.
4399
2483cf58
GM
44002000-10-12 Gerd Moellmann <gerd@gnu.org>
4401
4402 * editfns.c (save_excursion_save): Additionally record the
4403 selected window.
4404 (save_excursion_restore): If buffer was visible in a window, and a
4405 different window was selected, and the old selected window is
4406 still live, restore point in that window.
4407
eb991b25
KH
44082000-10-12 Kenichi Handa <handa@etl.go.jp>
4409
8a0eba09
KH
4410 * xterm.c (x_produce_glyphs): Handle
4411 unibyte_display_via_language_environment correctly.
4412
20401fcc
KH
4413 * regex.c (regex_compile): Change the way of handling a range from
4414 unibyte char to multibyte char.
4415
4416 * syntax.c (skip_chars): Change the way of handling a range from
4417 unibyte char to multibyte char.
4418
eb991b25
KH
4419 * process.c (read_process_output): Cancel previous change.
4420
365dd325
EZ
44212000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
4422
c1b096cb
EZ
4423 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
4424
365dd325
EZ
4425 * charset.c (Ffind_charset_string): Doc fix.
4426 (Ffind_charset_region): Doc fix.
4427
eb483c2b
KH
44282000-10-11 Kenichi Handa <handa@mule.m17n.org>
4429
4430 * process.c (read_process_output): Fix previous change. Adjust
4431 multibyteness of text to insert in a buffer by
df3c11b9 4432 string_make_unibyte/multibyte instead of
eb483c2b
KH
4433 Fstring_as_unibyte/multibyte.
4434
b40bfb99
AS
44352000-10-10 Andreas Schwab <schwab@suse.de>
4436
4437 * alloc.c (mark_object): Remove all workarounds installed on
4438 1993-08-08.
4439
caff31d4
KH
44402000-10-10 Kenichi Handa <handa@etl.go.jp>
4441
4442 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before
4443 returning.
4444 (base64_encode_1): Make it work for a text of multibyte form.
4445 (Fbase64_decode_region): Allocate sufficient memory for multibyte
4446 case. Don't call str_to_multibyte because base64_decode_1
4447 produces correct multibyte form for eight-bit codes.
4448 (Fbase64_decode_string): Adjusted for the change of
4449 base64_decode_1.
4450 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
4451 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
4452 codes.
4453
4454 * charset.h (CHAR_STRING): Optimized for single byte characters.
4455
cba026ef
AS
44562000-10-09 Andreas Schwab <schwab@suse.de>
4457
4458 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
4459 -1 after socket is closed, to fall through to error processing.
4460
1e21fe48
EZ
44612000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
4462
4463 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
365dd325 4464 variables. If ALIST includes foreground-color or
1e21fe48
EZ
4465 background-color, change also the colors of the default face for
4466 this frame.
4467
a640322e
EZ
44682000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
4469
4470 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
4471 them extern (they are defined on xfaces.c).
4472 (syms_of_msdos): Don't intern and don't staticpro
4473 Qbackground_color and Qforeground_color.
4474
a115794c
EZ
44752000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
4476
4477 * frame.c (Fframe_parameter): For non-windowed frames, if
4478 f->param_alist says foreground or background color is unspecified,
4479 call tty_color_name to return the color name computed from the
4480 frame's current colors.
4481
f5533b63
DL
44822000-10-06 Dave Love <fx@gnu.org>
4483
4484 * terminfo.c (ospeed): Don't declare.
4485
4486 * sysdep.c: Don't include string.h.
4487 (h_errno): Declare conditional also on TRY_AGAIN.
4488
4489 * charset.c (Ffind_charset_string): Doc fix.
4490
4491 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
4492 (Fbase64_decode_region, Fbase64_decode_string): More explicit
4493 error messages.
4494
2b06561a
DL
44952000-10-05 Dave Love <fx@gnu.org>
4496
4497 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
4498 position like menu-bar.
4499
ca839c85
GM
45002000-10-05 Gerd Moellmann <gerd@gnu.org>
4501
4502 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
4503
4504 * xdisp.c (handle_single_display_prop): Use safe_call1.
4505 (safe_call): Renamed from call_function.
4506 (safe_call1): New function.
4507 (handle_fontified_prop): Use safe_call1 instead of call1.
4508 (safe_eval): Renamed from eval_form.
4509 (safe_eval_handler): Renamed from eval_handler.
4510 (handle_single_display_prop, display_mode_element): Use safe_eval
4511 instead of eval_form.
4512
4513 * xfaces.c (merge_face_heights): Use safe_call instead of
4514 call_function.
4515
4516 * keyboard.c (show_help_echo): Use safe_call instead of
4517 call_function; use safe_eval instead of eval_form.
4518
4519 * lisp.h (safe_call): Renamed from call_function.
4520 (safe_eval): Renamed from eval_form.
4521 (safe_call1): Add prototype.
4522
a3489ece
MB
45232000-10-05 Miles Bader <miles@lsi.nec.co.jp>
4524
4525 * xfns.c (image_ascent): Rearrange ascent calculation for the
4526 has-a-font case.
4527
35810b6f
SM
45282000-10-04 Stefan Monnier <monnier@cs.yale.edu>
4529
4530 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
4531 (where_is_internal_1): Don't bother ignoring menu-items any more.
4532
3dc78168
GM
45332000-10-04 Gerd Moellmann <gerd@gnu.org>
4534
4535 * keyboard.c (update_menu_bindings): New variable.
4536 (parse_menu_item): Use AREF. If update_menu_bindings
4537 is 0, don't update menu bindings.
4538 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
4539
1efc2bb9
EZ
45402000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
4541
4542 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
4543 to `mark_object'.
4544
3f679f55
SM
45452000-10-02 Stefan Monnier <monnier@cs.yale.edu>
4546
4547 * syntax.c (forw_comment): Match nestedness of ender/starter.
4548 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
4549 (prev_char_comstart_first): Remove.
4550 (back_comment): Check two-char comment markers more carefully
4551 to better handle overlapping cases like *//* or /* */* */ ...
4552 Match nestedness of ender/starter.
4553
2021ab61
DL
45542000-10-02 Dave Love <fx@gnu.org>
4555
4556 * config.in (HAVE_GAI_STRERROR): Add undef.
4557
4558 * process.c (Fopen_network_stream): Use it.
4559
4560 * m/alpha.h (NO_REMAP): Don't define.
4561
64e6cc18
GM
45622000-10-02 Gerd Moellmann <gerd@gnu.org>
4563
4564 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
4565 return with a string converted to an integer or vice versa when
4566 Vmocklisp_arguments is t.
4567 (Fsignal): Likewise. The function can return for `quit'.
4568 (struct gcpro): Declare member `var' to point to a volatile
4569 Lisp_Object.
4570
4571 * eval.c (error): Prevent compiler warning.
4572
b1904cd9
SM
45732000-09-30 Stefan Monnier <monnier@cs.yale.edu>
4574
4575 * keymap.c (keymap_memberp): New function.
4576 (Fset_keymap_parent): Use it.
4577 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
4578 Use keymap_memberp to avoid creating cycles.
4579 (access_keymap): Use KEYMAPP.
4580
71c9ec51
GM
45812000-09-30 Gerd Moellmann <gerd@gnu.org>
4582
4583 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
64e6cc18
GM
4584 gai_strerror. Make sure xerrno is set if connect fails. Improve
4585 error recovery.
71c9ec51 4586
c70c6b58
JR
45872000-09-29 Jason Rumney <jasonr@gnu.org>
4588
4589 * w32term.c (w32_char_font_type, w32_encode_char)
4590 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
4591 (w32_bdf_per_char_metric): New function.
4592 (w32_per_char_metric): Use it.
4593 (x_draw_glyph_string_background): Always draw background for BDF
4594 glyphs.
4595
4596 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
4597 GDI object which is a scarce resource.
4598
4599 * w32bdf.c (search_file_line): Fix skipping of whitespace.
4600 (get_quoted_string): Fix limit on memchr search.
4601 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
4602 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
4603 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
4604 (get_cached_font_char, cache_char_offset): Use macro
4605 BDF_CODEPOINT_RANGE_COVER_P.
4606 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
4607 (clear_cached_bitmap_slots): New function.
4608 (GET_HEX_VALUE): G-Z, g-z are not hex.
4609 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
4610 (get_bitmap_with_cache): Use new cache implementation.
4611 (create_offscreen_bitmap): New function.
4612 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
4613
4614 * w32term.c (x_produce_glyphs): If the distance from the current
4615 position to the next tab stop is less than a canonical character
4616 width, use the tab stop after that.
4617 (x_draw_glyphs): Handle case START and END are out of bounds more
4618 carefully.
4619 (x_clear_mouse_face): Block/unblock input.
4620 (x_display_and_set_cursor): Don't show a hollow box cursor for
4621 buffers whose cursor_type is nil.
4622
fe01239f
GM
46232000-09-29 Gerd Moellmann <gerd@gnu.org>
4624
4625 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar
4626 disappears.
4627
4628 * dispextern.h (updating_frame): Declare extern.
4629
e7c52f1f
AS
46302000-09-29 Andreas Schwab <schwab@suse.de>
4631
4632 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
4633
de6e1f7c
GM
46342000-09-29 Gerd Moellmann <gerd@gnu.org>
4635
25126faa
GM
4636 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
4637 use its function definition.
4638 (tool_bar_items): Likewise.
4639
de6e1f7c
GM
4640 * lisp.h (fatal): Declare NO_RETURN.
4641
454ee39b
KH
46422000-09-29 Kenichi Handa <handa@etl.go.jp>
4643
4644 * keymap.c: Remove the line "#undef NULL".
4645
96301c5f
GM
46462000-09-28 Gerd Moellmann <gerd@gnu.org>
4647
4648 * xterm.c (x_make_frame_visible): Try harder to make the frame
4649 visible.
4650
efffeeb4
DL
46512000-09-28 Dave Love <fx@gnu.org>
4652
ecb8b666
DL
4653 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
4654
dc3cd20f
DL
4655 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
4656
4657 * .gdbinit (xreload): Note its need on GNU/Linux.
4658
efffeeb4
DL
4659 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
4660 r_alloc, r_alloc_free.
4661
8610d903
KH
46622000-09-28 Kenichi Handa <handa@etl.go.jp>
4663
4664 * syntax.c (skip_chars): Handle negation correctly.
4665
8901d1ac
GM
46662000-09-27 Gerd Moellmann <gerd@gnu.org>
4667
6f22f1ad
GM
4668 * xfaces.c (realize_default_face): Call set_lface_from_font_name
4669 with non-zero FORCE_P argument.
4670
8901d1ac
GM
4671 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
4672 Add assertions.
4673
4674 * xdisp.c (window_box_height): Add an assertion.
4675
4676 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
4677 tool-bar than is available.
4678 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
4679
36f1966f
DL
46802000-09-27 Dave Love <fx@gnu.org>
4681
efffeeb4 4682 * s/irix6-5.h: Now works 64-bit. Tidied.
36f1966f 4683
31d929e5
GM
46842000-09-26 Gerd Moellmann <gerd@gnu.org>
4685
c98863bf
GM
4686 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
4687 instead of BITS_PER_INT.
4688 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
4689 EMACS_UINT, respectively.
4690 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
4691
4692 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
4693
4694 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
4695
77072ab1
GM
4696 * window.c (freeze_window_starts): Construct last argument for
4697 foreach_window differently.
4698
4699 * xfns.c (x_decode_color): Don't return a Lisp_Object.
4700
4701 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
4702 EMACS_UINT instead of `int' and `unsigned int'.
4703 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
4704
4705 * frame.h (struct frame): Make the `nothing' member of union
4706 output_data an EMACS_INT.
4707
31d929e5
GM
4708 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug
4709 hunting.
4710 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
4711 size in the sdata structure.
4712 (SDATA_NBYTES, SDATA_DATA): New macros.
4713 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
4714 differently for the different layout of the sdata structure.
4715 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
4716 in sdata.
4717 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
4718 Check that size recorded in the string size and size recorded in
4719 the sdata structure agree.
4720
3e60b029
DL
47212000-09-25 Dave Love <fx@gnu.org>
4722
4723 * buffer.c: Include stdio.h.
4724
4725 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
4726
4727 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
4728
4729 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
4730 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as
4731 size_t.
4732 (__malloc_extra_blocks): Declare as __malloc_size_t.
4733
8ff16b4e
GM
47342000-09-25 Gerd Moellmann <gerd@gnu.org>
4735
755a2ccd
GM
4736 * alloc.c (mark_image): Use GC_NILP instead of NILP.
4737
d8b4516f
GM
4738 * keyboard.c (show_help_echo): Set help_echo_showing_p.
4739 (read_char): If help-echo is showing, preserve the echo area
4740 when redisplaying.
4741
4742 * xdisp.c (help_echo_showing_p): New variable.
4743 (set_message): Reset it to 0.
4744 (init_xdisp): Initialize help_echo_showing_p.
4745
4746 * dispextern.h (help_echo_showing_p): Declare extern.
4747
4748 * config.in: Fix typo in __GNUC_MINOR__.
4749
4750 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
4751
b11af2dd
GM
4752 * s/freebsd.h (POSIX_SIGNALS): Define.
4753
8ff16b4e
GM
4754 * xterm.c (x_clear_mouse_face): Block/unblock input.
4755
844eb643
DL
47562000-09-24 Dave Love <fx@gnu.org>
4757
4758 * fns.c (base64_encode_1): Fix last change.
4759
b30ab1b3
GM
47602000-09-22 Gerd Moellmann <gerd@gnu.org>
4761
4762 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
4763
4764 * xdisp.c (try_window_reusing_current_matrix): More fixes
4765 for the case window has a header-line.
4766
c6cbe5f0
DL
47672000-09-22 Dave Love <fx@gnu.org>
4768
4c7c1f3f
DL
4769 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
4770 a doc string.
4771
4772 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
4773
c6cbe5f0
DL
4774 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
4775
550a625e
GM
47762000-09-21 Gerd Moellmann <gerd@gnu.org>
4777
4c7c1f3f 4778 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
fca99116
GM
4779 for GCC >= 2.5.
4780
4781 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error): Declare
4782 NO_RETURN.
4783
80d26f99
GM
4784 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
4785 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
4786 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
4787 warnings.
4788
4789 * marker.c (byte_char_debug_check): Return void.
4790
623a0aae
GM
4791 * xfns.c (Fx_create_frame): Set default frame parameter value
4792 for tool-bar-lines to 1.
4793
4794 * dispnew.c (scrolling_window): Compare y-positions of rows
4795 equal at the start. Some simplification.
4796
4797 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
4798 reused rows' y-position in the case window has a header-line, and
4799 new window start is greater than old window start.
4800
42ac0ae5
GM
4801 * process.c (process_sent_to): New variable.
4802 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
4803 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
4804 Declare more parameters volatile.
4805
550a625e
GM
4806 * lread.c (Vrecursive_load_depth_limit): New variable.
4807 (Fload): Check recursive loads whose recursion depth exceeds
4808 Vrecursive_load_depth_limit.
4809 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
4810
8320414c
GM
48112000-09-20 Gerd Moellmann <gerd@gnu.org>
4812
f46c275e
GM
4813 * fileio.c (Fread_file_name): Doc fix.
4814
4815 * editfns.c (Fmessage_or_box): Doc fix.
4816
4817 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
4818
b7e11c5b
GM
4819 * xfns.c (xbm_scan): Allow C-style comments.
4820
8320414c
GM
4821 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
4822 symbols are specified, add color translations to the cache.
4823 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New
4824 functions.
4825 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
4826 xpm_cache_color.
4827 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
4828 structures to xpm_init_color_cache.
4829
da1608d9
GM
48302000-09-19 Gerd Moellmann <gerd@gnu.org>
4831
4832 * dispnew.c (update_window_line): Make sure to always draw
4833 mode-lines.
4834
6badfa25
AI
48352000-09-19 Andrew Innes <andrewi@gnu.org>
4836
4837 * makefile.nt (bootstrap-emacs): Don't change directory.
4838
3a5f42bb
KH
48392000-09-19 Kenichi Handa <handa@etl.go.jp>
4840
1b7649bd
KH
4841 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
4842
3a5f42bb
KH
4843 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
4844 If output buffer is too small, signal an appropriated error.
4845
9f83cf0b
DL
48462000-09-18 Dave Love <fx@gnu.org>
4847
4848 * keyboard.c (menu_bar_items, tool_bar_items)
4849 (current_active_maps): Remove redundant get_local_map call.
4850
28c7826c
GM
48512000-09-18 Gerd Moellmann <gerd@gnu.org>
4852
5cefa566
GM
4853 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
4854 cursor for buffers whose cursor_type is nil.
4855
6fed3546
GM
4856 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
4857 a feature to implement that is already implemented.
4858 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
4859 warnings.
4860
4861 * xfns.c (x_clear_image_1): New function.
4862 (x_clear_image): Use it.
4863 (x_from_xcolors): Use x_clear_image_1; don't free the image's
4864 mask.
4865
05b1f851
GM
4866 * dispnew.c (update_window): Move test for invisible lines
4867 at the top to update_window_line.
4868 (update_window_line): Handle invisible lines here.
4869
f4779de9
GM
4870 * xfns.c (clear_image_cache): Clear current matrices of all
4871 frames sharing an image cache. Block input while freeing
4872 images. Fix timestamp comparison.
4873 (x_clear_image): Also free the mask.
4874
28c7826c
GM
4875 * xfns.c (lookup_image): Block input while loading the image so
4876 that we won't get interrupted in a state where the image isn't yet
4877 set up completely.
4878 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
4879 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
4880 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
4881 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock
4882 input.
4883
b7412313
GM
48842000-09-16 Gerd Moellmann <gerd@gnu.org>
4885
4886 * dispnew.c (update_window): Make sure to make desired rows
4887 current even if they are completely invisible at the top
4888 of a window.
4889
47e351a3
GM
48902000-09-15 Gerd Moellmann <gerd@gnu.org>
4891
7f8f1edc
GM
4892 * xfns.c (lookup_image): Build mask before applying an algorithm.
4893 Recognize algorithm `disabled'.
4894 (cross_disabled_images): New variable.
4895 (COLOR_INTENSITY): New macro.
4896 (x_detect_edges): Use COLOR_INTENSITY.
4897 (x_disable_image): New function.
4898 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
4899
4900 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
4901 disabled state, don't apply an image transformation algorithm if
4902 the user specified an image for the disabled state. Use
28c7826c 4903 `:algorithm disabled' for creating a disabled item's image if the
7f8f1edc
GM
4904 user hasn't specified an image.
4905
ebb8f116
GM
4906 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
4907 allocation functions with the XPM lib.
4908 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
4909 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
4910 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
4911 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
4912 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New
4913 functions.
4914 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
4915 functions, if possible, because these handle color allocation
4916 failure more gracefully.
4917 (Fimage_mask_p): New function.
4918
47e351a3
GM
4919 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
4920 (Qedge_detection, Qheuristic): New symbols.
4921 (syms_of_xfns): Initialize new symbols.
4922 (lookup_image): Handle `:mask X', `:algorithm emboss', and
4923 `algorithm (edge-detection ...)'.
4924 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
4925 (tiff_format, gif_format, gs_format): Add `:mask'.
4926 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
4927 (GIF_MASK, GS_MASK): New enumerators.
4928 (x_laplace_read_row, x_laplace_write_row): Functions removed.
4929 (emboss_matrix, laplace_matrix): New variables.
4930 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
4931 (x_edge_detection): New functions.
4932 (x_laplace): Rewritten in terms of x_detect_edges.
4933 (x_build_heuristic_mask): If image has a mask, free it.
4934
fe83b953
AI
49352000-09-14 Andrew Innes <andrewi@gnu.org>
4936
4937 * makefile.w32-in: Revert to Unix line endings.
4938
3021e816
AI
49392000-09-14 Andrew Innes <andrewi@gnu.org>
4940
4941 * makefile.w32-in: Standardize indentation somewhat.
4942 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
4943 cater for differences between shells.
4944
4945 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
4946
2a32b5ea
GM
49472000-09-14 Gerd Moellmann <gerd@gnu.org>
4948
4949 * xterm.c (x_produce_glyphs): If the distance from the current
4950 position to the next tab stop is less than a canonical character
4951 width, use the tab stop after that.
4952
b4331e96
DL
49532000-09-14 Dave Love <fx@gnu.org>
4954
4955 * buffer.c (alloc_buffer_text): Fix xmalloc call.
4956
ef9e4345
GM
49572000-09-14 Gerd Moellmann <gerd@gnu.org>
4958
085536c2
GM
4959 * xdisp.c (handle_fontified_prop): While running fontification
4960 functions, bind `fontification-functions' and
4961 `after-change-functions' to nil.
4962
ef9e4345
GM
4963 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
4964 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
4965
4966 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
4967
4968 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
4969 USE_MMAP_FOR_BUFFERS.
4970
4971 * insdel.c (make_gap): Use enlarge_buffer_text.
4972
4973 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
4974 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
4975 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
4976 from former r_alloc_* functions in ralloc.c.
4977 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New
4978 variables.
4979 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
4980 (mmap_init) [REL_ALLOC_MMAP]: New function.
4981 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
4982 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
4983 BUFFER_FREE.
4984
4985 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
4986 (enlarge_buffer_text): Add prototype.
4987
4988 * ralloc.c: Remove everything having to do with the use of mmap.
4989
f8608968
GM
49902000-09-13 Gerd Moellmann <gerd@gnu.org>
4991
2a494b2d
GM
4992 * sound.c (Fplay_sound): Doc fix.
4993
8c907a56
GM
4994 * keyboard.c: Avoid some more compiler warnings.
4995 (parse_tool_bar_item): Ignore cached key bindings.
4996
f8608968
GM
4997 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
4998 and allocation of Lisp data.
4999
6ab70e9a
GM
50002000-09-12 Gerd Moellmann <gerd@gnu.org>
5001
d12d0a9b
GM
5002 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
5003 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
5004 defaults first.
5005
6ab70e9a
GM
5006 * lread.c (Fload): Put code checking for recursive loads in #if 0.
5007
63c36c3c
KH
50082000-09-12 Miyashita Hisashi <himi@meadowy.org>
5009
5010 * ccl.c: Comment fixed.
5011 (MAX_MAP_SET_LEVEL): Increased to 30.
5012 (PUSH_MAPPING_STACK): Enclose with do-while block.
5013 (POP_MAPPING_STACK): Likewise.
5014 (stack_idx_of_map_multiple): New variable.
5015 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
5016 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
5017 call the corresponding CCL program by
5018 CCL_CALL_FOR_MAP_INSTRUCTION.
5019 (ccl_driver) <CCL_MapSingle>: Likewise.
5020 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
5021 with the case where looking up process reaches to the end of
5022 map-set, and call CCL programs as the above change.
5023
7ee3bd7b
GM
50242000-09-11 Gerd Moellmann <gerd@gnu.org>
5025
8ec8a5ec
GM
5026 * xfns.c (png_load, jpeg_load): Declare some variables volatile
5027 that might be clobbered by longjmp.
5028 (check_x_display_info, x_decode_color, create_frame_xic)
5029 (Fx_display_backing_store, Fx_display_visual_class)
5030 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler
5031 warnings.
5032
f74b0705
GM
5033 * lread.c (init_lread): Set Vloads_in_progress to nil.
5034 (Fload): Show list of recursively loaded files, when signaling an
5035 error.
5036
7ee3bd7b
GM
5037 * lread.c (Vloads_in_progress): New variable.
5038 (record_load_unwind): New function.
5039 (Fload): Check for recursive loads.
5040 (syms_of_lread): Initialize Vloads_in_progress.
5041 (read_integer, read1): Avoid some compiler warnings.
5042
5043 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
5044 compiler warnings.
5045
974e1e5b
MB
50462000-09-11 Miles Bader <miles@gnu.org>
5047
5048 * editfns.c (Fbuffer_string): Doc fix.
5049
9824c4e3
GM
50502000-09-10 Gerd Moellmann <gerd@gnu.org>
5051
5052 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
5053
6a72fdd1
KR
50542000-09-09 Ken Raeburn <raeburn@gnu.org>
5055
5056 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
5057 whether to include other header files.
5058
28e6fb66
GM
50592000-09-09 Gerd Moellmann <gerd@gnu.org>
5060
5061 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
9824c4e3 5062 by Fmemq as a boolean.
28e6fb66 5063
7f8b6551
SM
50642000-09-08 Stefan Monnier <monnier@cs.yale.edu>
5065
5066 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
5067
a8710abf
GM
50682000-09-08 Gerd Moellmann <gerd@gnu.org>
5069
d1a02881
GM
5070 * ralloc.c (mmap_fd): Remove initializer which can make it
5071 read-only in a dumped Emacs.
5072 (mmap_fd_1): New variable.
5073 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
5074 restore it from there.
5075 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
5076 unconditionally so that mmap_fd can be initialized there.
5077 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
5078 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
5079 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
5080
c454aac1
GM
5081 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
5082
5083 * xdisp.c (dump_glyph_row): Fix printf format string.
5084 (display_line, move_it_in_display_line_to): Avoid compiler
5085 warnings.
5086
fc653ef2
GM
5087 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
5088
3015eec0
GM
5089 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
5090 inheritance.
5091
bfe0ee88
GM
5092 * xdisp.c (try_window_id): When trying to locate cursor in
5093 unchanged rows at the top, handle the case that we can't find it.
5094
a8710abf
GM
5095 * xterm.c (x_draw_glyphs): Handle case START and END are out
5096 of bounds more carefully.
5097
6b7d4ae4
DL
50982000-09-08 Dave Love <fx@gnu.org>
5099
423193c5
DL
5100 * s/sol2.h (REL_ALLOC_MMAP): Define.
5101 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
5102
5103 * ralloc.c: Don't include string.h (redundant).
5104 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
5105 [!MAP_ANON]: Include fcntl.h.
5106 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
5107 (r_alloc, r_re_alloc, r_alloc_free)
5108 (mmap_enlarge, mmap_set_vars): Use it.
5109 (r_alloc_init_fd): New function.
5110 (__morecore) [SYSTEM_MALLOC]: Don't declare.
5111 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
5112 malloc type.
5113
5114 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
5115 Remove vm-limit.o.
5116
6b7d4ae4
DL
5117 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
5118 change to __NetBSD__.
5119
44d31981
KH
51202000-09-08 Kenichi Handa <handa@etl.go.jp>
5121
5122 * search.c (compile_pattern): Check the multibyteness of cached
5123 string and PATTERN.
5124
aad40737
MB
51252000-09-08 Miles Bader <miles@gnu.org>
5126
5127 * xfaces.c (default_face_vector): Function removed.
5128 (Finternal_merge_in_global_face): Restore old global/local
5129 attribute override order. Use inline loop instead of calling
5130 default_face_vector.
5131
91a211b5
GM
51322000-09-07 Gerd Moellmann <gerd@gnu.org>
5133
5134 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
5135 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
5136 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
5137 where necessary, in case POINTER_TYPE is `void'.
5138
03419440
EZ
51392000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
5140
5141 * frame.c (make_terminal_frame): Initialize frame foreground and
5142 background colors to unspecified, for the initial instance of an
5143 MSDOS frame.
5144
f46f845b
GM
51452000-09-07 Gerd Moellmann <gerd@gnu.org>
5146
24f76fbf
GM
5147 * ralloc.c (mmap_find): Fix overlap computation.
5148 (mmap_enlarge): Compute nbytes before trying to find an
5149 overlapping region.
5150
f46f845b
GM
5151 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
5152 instead of `!='.
5153
5154 * lread.c (syms_of_lread): Change value of regexp
5155 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
5156
5157 * xmenu.c (xdialog_show): When looking up the selection in
5158 menu_items, take `quote' boundaries into account; this corresponds
5159 to a nil ITEM in x-popup-dialog.
5160
3c014385
KH
51612000-09-07 Kenichi Handa <handa@etl.go.jp>
5162
fd6f711b
KH
5163 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
5164 not 0x81.
5165 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
5166
3c014385 5167 * coding.c (encode_coding_sjis_big5): Use translation table for
ed254191
KH
5168 encoding, not decoding. Fix the handling of latin-jisx0201.
5169 Check for the charset katakana-jisx0201 too.
3c014385 5170 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
f46f845b 5171 (detect_coding_sjis): Check the byte sequence more rigidly.
3c014385 5172
0da3ecef
GM
51732000-09-07 Gerd Moellmann <gerd@gnu.org>
5174
ab0ee409
GM
5175 * xfaces.c (Vparam_value_alist): New variable.
5176 (syms_of_xfaces): Initialize it.
5177 (Finternal_set_lisp_face_attribute): Avoid more consing.
5178
5179 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
5180 specially.
5181 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
5182 (Qbackground_mode): New variable.
5183 (syms_of_frame_1): Initialize Qbackground_mode.
5184
5185 * lisp.h (Qdisplay): Declare extern.
1091dd67 5186
0da3ecef
GM
5187 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
5188 change face on all frames, and change the default for new frames.
5189
b14654b9
DL
51902000-09-07 Dave Love <fx@gnu.org>
5191
5192 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
5193
d24fd56f
KH
51942000-09-07 Kenichi Handa <handa@etl.go.jp>
5195
794f3670
KH
5196 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
5197
0fddd0dc
KH
5198 * charset.c: Include composite.h
5199 (lisp_string_width): New function.
5200 (Fstring_width): Call lisp_string_width instead of strwidth.
5201
5202 * Makefile.in (charset.o): Depends on composite.h.
5203
d24fd56f
KH
5204 * process.c (read_process_output): Before inserting the decoded
5205 text in the buffer, adjust the multibyteness.
5206
fa0b693c
GM
52072000-09-06 Gerd Moellmann <gerd@gnu.org>
5208
73b77ee5
GM
5209 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
5210 buffer's text buffer is null, map new memory.
5211
0a58f946
GM
5212 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
5213 POINTER_TYPE and size_t.
5214 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
5215 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
5216 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
5217 [REL_ALLOC_MMAP]: New macros.
5218 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
5219 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
5220 [REL_ALLOC_MMAP]: New functions.
5221
5222 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
5223 before and after unexec.
5224
5225 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
5226 text buffers if necessary.
5227
5228 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
5229 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
5230 in prototypes.
5231
fa0b693c
GM
5232 * config.in (HAVE_MMAP): Add #undef.
5233
877055f6
GM
52342000-09-05 Gerd Moellmann <gerd@gnu.org>
5235
08ba3862
GM
5236 * frame.c (Qdisplay_type): New variable.
5237 (syms_of_frame_1): Initialize it.
5238 (Fframe_parameter): New function that avoids consing.
5239 (syms_of_frame): Defsubr it.
5240
66ffe51c
GM
5241 * buffer.c (Fother_buffer): Consider buffers as invisible when
5242 they are displayed in a window on an invisible frame.
5243
877055f6
GM
5244 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
5245 get-largest-window always return nil.
5246
bb970e67
GM
52472000-09-04 Gerd Moellmann <gerd@gnu.org>
5248
5249 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
5250 variable; recognize Emacs 19 elc files.
5251
7a3d0e0e
MB
52522000-09-04 Miles Bader <miles@gnu.org>
5253
5254 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
5255 before initially popping up the menu, so the menu doesn't flash
5256 when the face settings are significantly different from the
5257 defaults.
5258
14473664
SM
52592000-09-04 Stefan Monnier <monnier@cs.yale.edu>
5260
5261 * regex.c (WIDE_CHAR_SUPPORT): New macro.
5262 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
5263 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
5264 (BIT_UNIBYTE): Remove.
5265 (re_match_2_internal): Delete corresponding code and streamline the
5266 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
5267 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
5268 (re_wctype_t): New type.
5269 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
5270 (regex_compile): Use them and fix handling of overly long char classes.
5271
c1174479
AI
52722000-09-03 Andrew Innes <andrewi@gnu.org>
5273
f8803e97
AI
5274 * makefile.w32-in: Change to DOS line endings.
5275
c1174479
AI
5276 * s/ms-w32.h (ORDINARY_LINK): New define.
5277
5278 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
5279 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
5280
5281 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
5282 (distclean): Delete them here instead.
5283
44ef7cf6
AI
5284 * w32proc.c (compare_env): Convert to uppercase for comparison,
5285 not lowercase, to match how the native Windows shell works.
5286
49b3bd82
JR
52872000-09-03 Jason Rumney <jasonr@gnu.org>
5288
5289 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
5290 CVS changes the line-ends when checking in/out on DOS/Windows.
5291
5292 * makefile.nt (emacs): Do not change directory to run temacs, as
5293 the load-path is set relative to current directory.
5294
a3d35a39
MB
52952000-09-03 Miles Bader <miles@gnu.org>
5296
5297 * xterm.c (x_alloc_lighter_color_for_widget): New function.
5298
d276b0cf
GM
52992000-09-02 Gerd Moellmann <gerd@gnu.org>
5300
715e84c9
GM
5301 * xdisp.c (redisplay_mode_lines): New function.
5302 (display_mode_lines): Return number of mode lines displayed.
5303 (echo_area_display): Use redisplay_mode_lines to draw garbaged
5304 mode lines. Don't temporarily bind redisplay-dont-pause to t.
5305
8892f40b
GM
5306 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
5307 string.h and strings.h.
5308 (index) [HAVE_INDEX]: Add prototype.
5309
d276b0cf
GM
5310 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
5311 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
5312
5313 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
5314 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
5315
38404229
GM
53162000-09-01 Gerd Moellmann <gerd@gnu.org>
5317
5318 * lread.c (read1): Accept `?' as symbol constituent, for
5319 compatiblity with XEmacs.
5320
c0f9ea08
SM
53212000-08-31 Stefan Monnier <monnier@cs.yale.edu>
5322
5323 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
5324 (struct re_pattern_buffer): Remove newline_anchor.
5325 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
5326 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
5327 (re_max_failures, fail_stack): Use size_t rather than unsigned.
5328 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
5329 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
5330 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
5331 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
5332 Get rid of references to newline_anchor.
5333 (regcomp): Allocate and precompute a fastmap.
5334
8c0f83fe
GM
53352000-08-31 Gerd Moellmann <gerd@gnu.org>
5336
5337 * lread.c (openp): GCPRO local variable `filename'.
5338
4bb91c68
SM
53392000-08-30 Stefan Monnier <monnier@cs.yale.edu>
5340
5341 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
5342
5343 * regex.c: Merge some changes from GNU libc. Add prototypes.
5344 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
5345 Use memcmp and memcpy instead of bcopy and bcmp.
5346 (init_syntax_once): Use ISALNUM.
5347 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
5348 (REG_UNSET_VALUE): Remove. Use NULL instead.
5349 (REG_UNSET, re_match_2_internal): Use NULL.
5350 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
5351 New macros.
5352 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
5353 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
5354 (regex_compile): In handle_interval, return an error rather than try to
5355 unfetch the interval if we can't find the closing brace.
5356 Obey the RE_NO_GNU_OPS syntax bit.
5357 (TOLOWER): New macro.
5358 (regcomp): Use it.
5359 (regexec): Allocate regs.start and regs.end as one block.
5360
5226a931
GM
53612000-08-30 Gerd Moellmann <gerd@gnu.org>
5362
868dd24b
GM
5363 * xdisp.c (echo_area_display): Check display_completed instead
5364 of calling detect_input_pending.
5365
5366 * dispnew.c (update_frame): Only set display_completed here; move
5367 the update_begin and update_end calls here from update_frame_1.
5368 (update_frame_1): Don't set display_completed here, don't call
5369 update_begin/update_end.
5370
5226a931
GM
5371 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
5372 instead of store_frame_param.
5373
2a8bd25f
GM
53742000-08-29 Gerd Moellmann <gerd@gnu.org>
5375
5376 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
5377 desired window matrix hasn't been displayed, use the current row
5378 instead. Make sure that only those frame rows are updated for
5379 which there exists a corresponding enabled desired row.
5380
ba3478d9
MB
53812000-08-29 Miles Bader <miles@gnu.org>
5382
5383 * xfaces.c (default_face_vector): New function.
5384 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
5385
87d0f685
GM
53862000-08-29 Gerd Moellmann <gerd@gnu.org>
5387
5388 * lread.c (openp): Prevent temporary string passed to
5389 Ffile_readable_p from being garbage collected.
5390
6fa86045
DL
53912000-08-28 Dave Love <fx@gnu.org>
5392
5393 * keymap.c (store_in_keymap): Add `static' to declaration.
5394
bb17930d
GM
53952000-08-28 Gerd Moellmann <gerd@gnu.org>
5396
5397 * emacs.c, callint.c, doc.c, editfns.c
5398 (toplevel) [HAVE_STRING_H]: Include string.h.
5399 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
5400 (index): Remove prototypes which might conflict with non-standard
5401 definitions of index/strchr.
5402
5403 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
5404 (rindex): Define only if !HAVE_RINDEX.
5405
5406 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
5407
5408 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
5409
87188200
MB
54102000-08-28 Miles Bader <miles@gnu.org>
5411
5412 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
5413 made inconsistent by a font-related attribute in FROM.
5414 (merge_face_inheritance): Add function comment.
5415
41a68aef
KH
54162000-08-28 Kenichi Handa <handa@etl.go.jp>
5417
5418 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
5419 the 4th arg (PREV_EVENT) Qt to suppress input method.
5420
f7c436c1
SM
54212000-08-27 Stefan Monnier <monnier@cs.yale.edu>
5422
0b32bf0e
SM
5423 * regex.c: Indent cpp directives and remove parens after `defined'.
5424 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
5425 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
5426 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
5427 (re_compile_pattern): Use size_t for length.
5428 (init_syntax_once): Move to a better place.
5429 * regex.h: Merge changes from GNU libc. Indent cpp directives.
5430 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
5431
f7c436c1
SM
5432 * syntax.c (back_comment): Detect cases where a comment-starter is
5433 actually inside another comment as in: /* a // b */ c // d \n.
5434 Make it clear that `comstart_pos' is unused for nested comments.
5435
5436 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
5437 (KEYMAPP): New macro.
5438 (Fkeymap_parent, Fset_keymap_parent): Use it.
5439 (fix_submap_inheritance): Mark it static.
5440 (define_as_prefix, describe_buffer_bindings, describe_command)
5441 (describe_translation, describe_map): Complete prototypes.
5442
5443 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
5444
5445 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
5446 to better match the key-lookup behavior.
5447
6288c62f
GM
54482000-08-27 Gerd Moellmann <gerd@gnu.org>
5449
5450 * xfaces.c (lface_fully_specified_p): Handle :inherit.
5451 (Finternal_set_lisp_face_attribute): Fix typo in error message.
5452
e931344e
EZ
54532000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
5454
5455 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
5456 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
5457 (xterm.o): Depend on coding.h
5458
d10dfeef
KH
54592000-08-26 Kenichi Handa <handa@etl.go.jp>
5460
5461 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
5462 the corresponding '#endif'.
5463
2d73e8d3
MB
54642000-08-26 Miles Bader <miles@gnu.org>
5465
5466 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
5467 * xfaces.c (QCinherit): New variable.
5468 (syms_of_xfaces): Initialize it.
5469 (LFACE_INHERIT): New macro.
5470 (Finternal_get_lisp_face_attribute)
5471 (merge_face_vector_with_property)
5472 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
5473 (check_lface_attrs): Allow new types of face height. Check
5474 inherit attribute.
5475 (CYCLE_CHECK): New macro.
5476 (merge_face_inheritance): New function.
5477 (merge_face_vectors): Merge inherited faces too. Add F and
5478 CYCLE_CHECK arguments.
5479 (merge_face_vector_with_property, Finternal_merge_in_global_face)
5480 (lookup_named_face, lookup_derived_face, realize_named_face)
5481 (face_at_string_position, face_at_buffer_position): Supply
5482 new F and CYCLE_CHECK arguments to merge_face_vectors.
5483 (merge_face_heights): New function.
5484 (merge_face_vectors, merge_face_vector_with_property)
5485 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
5486 handle relative face heights.
5487 (lface_same_font_attributes_p): Compare heights using EQ.
5488
6ce974d4
KH
54892000-08-26 Kenichi Handa <handa@etl.go.jp>
5490
5491 * charset.c (char_to_string): Check the character validity.
5492 (char_valid_p): If C is not less than MAX_CHAR, be sure to return
5493 0.
5494
dc1e502d
SM
54952000-08-25 Stefan Monnier <monnier@cs.yale.edu>
5496
5497 * regex.c (PUSH_FAILURE_COUNT): New macro.
5498 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
5499 Handle popping of a register's or a counter's data.
5500 (POP_FAILURE_POINT): Use the new name.
5501 (re_match_2_internal): Push counter data on the stack for succeed_n,
5502 jump_n and set_number_at and remove misleading dead code in succeed_n.
5503
bd9d0f3f
GM
55042000-08-25 Gerd Moellmann <gerd@gnu.org>
5505
5506 * xdisp.c (redisplay_internal): If considering all windows on all
5507 frames, update the display for each frame as soon as possible,
5508 instead of first building all desired matrices for all frames, and
5509 then updating them all.
5510 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
5511
aa5b8e15
GM
55122000-08-24 Gerd Moellmann <gerd@gnu.org>
5513
17494071
GM
5514 * bytecode.c (mark_byte_stack): Add a comment.
5515
aa5b8e15
GM
5516 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
5517 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
5518 a graphical frame.
5519
c543db81
KH
55202000-08-24 Kenichi Handa <handa@etl.go.jp>
5521
d246d5f5
KH
5522 * minibuf.c (do_completion): Always use compare-string, not
5523 string-equal because the latter doesn't pay attention to
5524 multibyteness of strings.
5525
c543db81
KH
5526 * process.c (create_process): Don't setup raw-text coding here.
5527 (Fopen_network_stream): Don't set coding->src_multibyte and
5528 coding->dst_multibyte here.
5529 (read_process_output): For process filter, return unibyte string
5530 if default-enable-multibyte-characters is nil.
5531 (send_process): If OBJECT is multibyte text, be sure to encoded it
5532 by the specified coding system for the process. Otherwise, setup
5533 raw-text coding.
5534 (init_process): Don't initialize default-process-coding-system
5535 here.
5536
9b47cfe0
EZ
55372000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
5538
5539 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
5540 <scroll-down-aggressively>: Likewise.
5541
f5a36960
KH
55422000-08-23 Kenichi Handa <handa@etl.go.jp>
5543
5544 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
5545 zero. Set coding->produced_char correctly.
5546
69a7ffa7
AI
55472000-08-22 Andrew Innes <andrewi@gnu.org>
5548
5549 * makefile.w32-in: New file.
5550
5551 * unexw32.c (unexec): Ignore old_name, and use the actual location
5552 of the current executable instead. Base new_name on this.
5553
5554 * w32proc.c (create_child): Remove reference to security
5555 descriptor, which isn't needed and doesn't compile with mingw32.
5556
5557 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5558 up dllimport attributes.
5559 (x_update_window_end): Update prototype.
5560
5561 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
5562 extern, which screws up dllimport attributes.
5563
5564 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5565 up dllimport attributes.
5566
5567 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
5568 screws up dllimport attributes.
5569
5570 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5571 up dllimport attributes.
5572 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
5573 screws up dllimport attributes.
5574
5575 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5576 up dllimport attributes.
5577
5578 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
5579 screws up dllimport attributes.
5580
5581 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
5582 screws up dllimport attributes.
5583
5584 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5585 up dllimport attributes.
5586
5587 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
5588 unnecessary extern, which screws up dllimport attributes.
5589 (main): Ditto.
5590
5591 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5592 up dllimport attributes.
5593
5594 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
5595 unnecessary extern, which screws up dllimport attributes.
5596
5597 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
5598 screws up dllimport attributes.
5599
5600 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5601 up dllimport attributes.
5602
5603 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
5604
5605 * w32bdf.c (search_file_line):
5606 (set_bdf_font_info):
5607 (seek_char):
5608 (w32_get_bdf_glyph):
5609 (w32_BDF_to_x_font): Fix compile warnings.
5610
5611 * w32menu.c: Include keyboard.h before frame.h. Fix compile
5612 warnings.
5613
5614 * w32select.c: Include keyboard.h before frame.h.
5615
5616 * w32fns.c (max): Define macro.
5617 (JOHAB_CHARSET): Define if not known.
5618 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
5619 (Fx_show_tip): Synch with X version.
5620
5621 * w32xfns.c: Include keyboard.h before frame.h.
5622
5623 * w32fns.c: Include keyboard.h before frame.h.
5624
5625 * w32term.c: Include keyboard.h before frame.h.
5626
5627 * fontset.c: Include keyboard.h before frame.h.
5628
5629 * w32inevt.c: Include keyboard.h before frame.h.
5630 (MOUSE_MOVED): Define if not known.
5631
5632 * minibuf.c: Include keyboard.h before frame.h.
5633
5634 * keyboard.c: Include keyboard.h before frame.h.
5635
5636 * indent.c: Include keyboard.h before frame.h.
5637
5638 * dispnew.c: Include keyboard.h before frame.h.
5639
5640 * buffer.c: Include keyboard.h before frame.h.
5641
5642 * alloc.c: Include keyboard.h before frame.h.
5643
5644 * print.c: Include keyboard.h before frame.h.
5645
5646 * process.c: Include keyboard.h before frame.h.
5647
5648 * scroll.c: Include keyboard.h before frame.h.
5649
5650 * sysdep.c: Include keyboard.h before frame.h.
5651
5652 * term.c: Include keyboard.h before frame.h.
5653
5654 * window.c: Include keyboard.h before frame.h.
5655
5656 * xdisp.c: Include keyboard.h before frame.h.
5657 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
5658
5659 * frame.c: Include keyboard.h before frame.h.
5660
5661 * w32heap.h: Undefine min, max.
5662
5663 * w32gui.h: Undefine min, max.
5664
5665 * unexw32.c: Change PUCHAR to PCHAR.
5666 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
5667 (relocate_offset):
5668 (get_section_info):
5669 (copy_executable_and_dump_data): Remove unnecessary static defs.
5670 (copy_executable_and_dump_data): Fix compile warnings.
5671
5672 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
5673
5674 * w32console.c (min): Define macro.
5675 (clear_frame, write_glyphs): Fix compile warning.
5676
5677 * w32proc.c (compare_env):
5678 (find_child_console): Fix compile warning.
5679
5680 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
5681 sys_errlist instead of _sys_errlist.
5682 (get_emacs_configuration_options): New function.
5683
5684 * s/ms-w32.h (sys_nerr): Provide default definition.
5685 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
5686 name with _ prepended.
5687 (NSIG): Define if not known.
5688 (get_emacs_configuration): Provide extern declaration.
5689 (get_emacs_configuration_options): Provide extern declaration.
5690 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
5691
5692 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
5693 (map_w32_filename):
5694 (read_unc_volume): Fix compile warning.
5695
5696 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
5697 definitions from being used.
5698
5699 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
5700
5701 * w32.c (unc_volume_file_attributes):
5702 (open_unc_volume): Make arg const.
5703
5704 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
5705 (read_input_waiting): Remove excess parameter.
5706
5707 * w32.c (init_environment): Call _access.
5708 (check_windows_init_file): Call _close.
5709 (init_user_info): Call _putenv.
5710 (init_environment): Call _putenv and _strdup.
5711 (init_ntproc): Reset volume info cache on startup.
5712
5713 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
5714 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
5715 cannot override the CRT malloc.
5716
5717 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
5718 (LINK_FLAGS): Append to original value of LINK_FLAGS.
5719
5720 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
5721 unless we are linking with a static CRT.
5722 (RVA_TO_PTR): Cast result to unsigned char*.
5723
5724 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
5725 (add_volume_info): Use xstrdup.
5726
25060080
SM
57272000-08-22 Stefan Monnier <monnier@cs.yale.edu>
5728
5729 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
5730 (do_completion, Fminibuffer_complete_word): Use it.
5731 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
5732 var so it can take non-boolean values.
5733
6917e6bb
GM
57342000-08-21 Gerd Moellmann <gerd@gnu.org>
5735
acb7cc89
GM
5736 * editfns.c (find_field): Formatting changes.
5737 (toplevel): Some old-style function forward declarations
5738 changed to prototypes, some new protypes added, some functions
5739 made static.
5740
5741 * lisp.h (set_time_zone_rule): Add prototype.
5742 (use_dialog_box): External declaration.
5743
0bbfdc25
GM
5744 * keyboard.c (gen_help_event): Add parameter SIZE.
5745 (kbd_buffer_events_waiting): Slightly rewritten.
5746 (clear_event): New function.
5747 (kbd_buffer_get_event): Use it, and clear the input_events of
5748 HELP_EVENTs.
5749 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
5750 don't fill the newly created array with nils.
5751 (toplevel): Convert some old-style function forward declarations
5752 to prototypes.
5753
5754 * keyboard.h (gen_help_event): Change prototype.
5755
5756 * xterm.c (XTread_socket): Change calls to gen_help_event.
5757
5758 * w32term.c (w32_read_socket): Change calls to gen_help_event.
5759
6917e6bb
GM
5760 * eval.c (Fmacroexpand): Doc fix.
5761
e5cd3d11
JR
57622000-08-20 Jason Rumney <jasonr@gnu.org>
5763
5764 * w32term.h (x_display_info_for_display): Remove as this function
5765 does not exist on W32.
5766
5767 * w32term.c (help_echo_window): New variable.
5768 (syms_of_w32term): staticpro it.
5769 (note_mode_line_highlight): Set it.
5770 (XTextExtents16): Removed as there is no equivalent on W32.
5771 (x_compute_glyph_string_overhangs): Incomplete body removed, as
5772 the X way of doing this will not work for W32.
5773 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
5774 (x_draw_image_foreground): Avoid drawing outside of the clip area
5775 when image doesn't have a mask.
5776 (note_mouse_highlight): Process overlays in the right order of
5777 priority. Set help_echo_window.
5778 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
5779 because that's more visible for large images.
5780
5781 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
5782 name to single_keymap_panes.
5783 (w32_menu_show): Set wv->title when dealing with titles.
5784 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
5785
6e69ab8c
MB
57862000-08-21 Miles Bader <miles@gnu.org>
5787
5788 * minibuf.c (do_completion): Try again if we rewrite the input
5789 string, but no completion was done, so that any completion message
5790 will be correct.
5791
511bd4eb
GM
57922000-08-20 Gerd Moellmann <gerd@gnu.org>
5793
5794 * xfaces.c (lface_equal_p): Compare strings differently.
5795 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
5796 (realize_tty_face): Use them.
5797 (syms_of_xfaces): Initialize new variables.
5798 (map_tty_color): New function, extracted from realize_tty_face.
5799 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
5800 foreground or background color, store the new color name in the
5801 realized face; previous code trying to do this had no effect.
5802 (realize_tty_face): Use map_tty_color.
5803 (Fclear_face_cache): Set face_change_count and ensure thorough
5804 redisplay.
5805
1433385f
GM
58062000-08-19 Gerd Moellmann <gerd@gnu.org>
5807
511bd4eb
GM
5808 * undo.c (record_first_change, record_marker_adjustment): Don't
5809 use XBUFFER on last_undo_buffer which might not be a buffer.
1433385f 5810
419ac0a2
KH
58112000-08-18 Kenichi Handa <handa@etl.go.jp>
5812
5813 * coding.c (decode_coding_string): Set members consumed,
5814 consumed_char, produced, produced_char of *coding correctly. If
5815 decode_coding doesn't consume any byte, don't try anymore.
5816 (encode_coding_string): Likewise.
5817
7eb9e30d
GM
58182000-08-18 Gerd Moellmann <gerd@gnu.org>
5819
511bd4eb
GM
5820 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
5821 conditional have void type, for Standard C compilers.
7eb9e30d
GM
5822
5823 * xdisp.c (redisplay_internal): Compare windows for equality with
5824 EQ, instead of applying XWINDOW to something that might not
5825 be a window.
5826
dd34a735
KH
58272000-08-18 Kenichi Handa <handa@etl.go.jp>
5828
5829 * fontset.c (Finternal_char_font): Search only the selected frame
5830 for a window of the current buffer.
5831
385ff9e3
GM
58322000-08-18 Gerd Moellmann <gerd@gnu.org>
5833
511bd4eb 5834 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
01cce3e7
GM
5835 Lisp_Objects.
5836
385ff9e3
GM
5837 * keyboard.c (kbd_buffer_get_event): Handle the case that the
5838 second half of a HELP_EVENT is found at the start of kbd_buffer.
5839
d6abb4c7
MB
58402000-08-18 Miles Bader <miles@gnu.org>
5841
4618074a
MB
5842 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
5843
d6abb4c7
MB
5844 * editfns.c (save_restriction_save): Rewrite to use markers.
5845 (save_restriction_restore): Rewrite to understand new form of data
5846 saved by save_restriction_save.
5847 (Fsave_restriction): Remove cautionary note in doc-string.
5848
a7b28523
GM
58492000-08-17 Gerd Moellmann <gerd@gnu.org>
5850
5851 * fileio.c (build_annotations): Add a comment explaining the
5852 return value of format-annotate-function. Replace a spurious call
5853 to Flength with a CONSP test. Call format-annotate-function with
5854 a fifth arg specifying how many times the function is been called
5855 in a row, to let it choose temporary buffers appropriately.
5856
03c9ed77
DL
58572000-08-17 Dave Love <fx@gnu.org>
5858
5859 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
5860 declare make_temp_name twice.
5861
5862 * lread.c: Prototype readevalloop, load_unwind,
5863 load_descriptor_unwind.
5864 (unreadpure): Give it an arg.
5865
5866 * unexalpha.c: Prototype fatal_unexec, mark_x,
5867 update_dynamic_symbols. Declare unexec as void.
5868
5869 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
5870 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
5871
5872 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
5873 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on
5874 DOUG_LEA_MALLOC.
5875
5876 * alloca.c: Use #error.
5877 [POINTER_TYPE]: Use it.
5878
5879 * eval.c (Fdefvar): Doc fix.
5880
5881 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
5882 INITIALIZE_INTERVAL.
5883
5884 * buffer.h: Avoid DECLARE_INTERVALS.
5885
5886 * config.in: Add size_t.
5887
aae41d97
EZ
58882000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
5889
5890 * w16select.c (set_clipboard_data): If there's not enough memory
5891 to put text into clipboard, return 1, as Fw16_set_clipboard_data
5892 expects. In case of other failures, return 3.
5893 (system_error_msg): New error message.
5894 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
5895 system_error_msg.
5896
65aa5e85
GM
58972000-08-16 Gerd Moellmann <gerd@gnu.org>
5898
5899 * term.c (write_glyphs): Also turn off inverse video after turning
5900 off other appearances in case TS_exit_attribute_mode is not equal
5901 to TS_end_standout_mode.
5902 (insert_glyphs): Turn inverse video on/off for each run of glyphs
5903 with the same face.
5904 (turn_off_face): Reset standout_mode only if
5905 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
5906 is equal to TS_end_standout_mode.
5907
ece23901
KH
59082000-08-16 Kenichi Handa <handa@etl.go.jp>
5909
9d7bcb2e
KH
5910 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
5911 sequence at the end of the source block.
5912
ece23901
KH
5913 * ccl.c (Fccl_program_p): Docstring modified.
5914 (Fccl_execute): Likewise.
5915 (Fccl_execute_on_string): Likewise.
5916
5e30eaa2
EZ
59172000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
5918
5919 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
5920
290602fd
KH
59212000-08-16 Kenichi Handa <handa@etl.go.jp>
5922
5923 The following changes are mainly to fix bugs of
5924 encode/decode-coding-string failing if encoding/decoding return
5925 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
5926 variable conversion_buffer.
5927
5928 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
5929 decrement dst_end to avoid buffer overflow in the later call of
5930 string_as_multibyte
5931
5932 * coding.h (conversion_buffer_size, conversion_buffer)
5933 (get_conversion_buffer): Extern deleted.
5934
5935 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
5936 (conversion_buffer, conversion_buffer_size): Variables deleted.
5937 (get_conversion_buffer): Function deleted.
5938 (struct conversion_buffer): New structure.
5939 (MAX_ALLOCA): New macro.
5940 (allocate_conversion_buffer): New macro.
5941 (extend_conversion_buffer, free_conversion_buffer): New functions.
5942 (ccl_coding_driver): Set coding->result.
5943 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
5944 this is the last block of source.
5945 (encode_coding): Likewise. Handle the source block as the last
5946 one only when the whole source text is consumed.
5947 (decode_coding_string): Handle the case that the output buffer is
5948 too small to decode the whole source text. Use
5949 allocate_conversion_buffer, extend_conversion_buffer and
5950 free_conversion_buffer, not get_conversion_buffer.
5951 (encode_coding_string): Likewise.
5952 (init_coding): Function deleted.
5953 (init_coding_once): Delete code to initialize
5954 conversion_buffer_size.
5955
5956 * emacs.c (main): Don't call init_coding.
5957
5958 * msdos.c (IT_write_glyphs): Use a locally declared
5959 conversion_buffer.
5960
5961 * term.c (write_glyphs): Use a locally declared conversion_buffer.
5962 (insert_glyphs): Likewise.
5963
5964 * w32console.c (write_glyphs): Use a locally declared
5965 conversion_buffer.
5966
b9f80d41
EZ
59672000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
5968
5969 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
5970 member of display_info is NULL.
5971
32dc52f7
GM
59722000-08-15 Gerd Moellmann <gerd@gnu.org>
5973
58ed0d3b
GM
5974 * alloc.c (compact_small_strings): Use safe_bcopy, add an
5975 assertion.
5976
32dc52f7 5977 * term.c (turn_off_face): Reset standout_mode when resetting
58ed0d3b 5978 appearances with capability `me'.
32dc52f7
GM
5979 (write_glyphs): Switch on inverse video before each face change.
5980
4eb22d33
DL
59812000-08-14 Dave Love <fx@gnu.org>
5982
5983 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
5984 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
5985 (lisp_free): Declare and make static.
5986
5987 * window.c: Fix embedded comment.
5988 (syms_of_window): Fix doc string.
5989
90cbf47e
GM
59902000-08-14 Gerd Moellmann <gerd@gnu.org>
5991
5992 * keymap.c (push_key_description): If C without modifiers is < 32,
5993 make sure to print `C-' before `M-', like in the manual.
5994
440fc135
GM
59952000-08-11 Gerd Moellmann <gerd@gnu.org>
5996
5997 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
5998 since they aren't relocated anymore.
5999 (sxhash_string): Make sure returned hash code fits in a Lisp
6000 integer.
6001
6002 * xdisp.c (try_cursor_movement): Fix handling of cursor in
6003 partially visible line which is smaller than the window's
6004 height.
6005
6e264fad
KH
60062000-08-11 Kenichi Handa <handa@etl.go.jp>
6007
6008 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
6009 the multibyte form of eight-bit-control characters.
6010 (Fccl_execute_on_string): Initialize ccl->multibyte.
6011
6012 * ccl.h (struct ccl_program): New member multibyte.
6013
6014 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
6015
c371f69a
KH
60162000-08-11 Kenichi Handa <handa@etl.go.jp>
6017
6018 * regex.c (regex_compile) <normal_char>: Pay attention to
6019 multibyteness.
6020 (analyse_first) <exactn>: Setup fastmap correctly for
6021 eight-bit-control characters.
6022
60232000-08-11 Kenichi Handa <handa@etl.go.jp>
6024
6025 * termhooks.h (enum event_kind): New member
6026 multibyte_char_keystroke.
6027
6028 * keyboard.c (make_lispy_event): Handle the new event type
6029 multibyte_char_keystroke.
6030
6031 * xterm.c: Include coding.h.
6032 (XTread_socket): Work around a bug of XmbLookupString. If the
6033 input is from XIM, decode it according to the current locale. In
6034 that case, generate multibyte_char_keystroke events.
6035
b8ddbe71
KH
60362000-08-11 Kenichi Handa <handa@etl.go.jp>
6037
6038 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
6039 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
6040
47589c8c
GM
60412000-08-10 Gerd Moellmann <gerd@gnu.org>
6042
6043 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
6044 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
6045 (move_it_in_display_line_to): Record iterator's ascent and descent
6046 before producing glyphs, and restore them when we know the glyph
6047 doesn't fit on the line.
6048 (move_it_to): Restructured so that it's easier to debug. If
6049 moving to a vpos, and not moving to an x or character position,
6050 stop as soon as the specified vpos is reached; don't move further
6051 into that line because that might change the computed line height.
6052 (try_cursor_movement): New function, extracted from the cursor
6053 movement branch of redisplay_window. If ending on a partially
6054 visible line, don't try to scroll if the cursor line is taller
6055 than the window.
6056 (redisplay_window): Use try_cursor_movement.
6057
6058 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
6059 because that function doesn't cope with variable-height lines.
6060
6061 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
6062 box cursor because that's better visible for large images.
6063
c51bacd6
MB
60642000-08-10 Miles Bader <miles@gnu.org>
6065
6066 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
6067
bea56df7
GM
60682000-08-10 Gerd Moellmann <gerd@gnu.org>
6069
6070 * xdisp.c (Vmessages_buffer_name): New variable.
6071 (message_dolog): Use it.
6072 (syms_of_xdisp): Initialize it.
6073
99cd7364
EZ
60742000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
6075
6076 * msdos.c (IT_note_mouse_highlight): Update the calls to
6077 overlays_at.
6078 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
6079 redundant now that keyboard.h is included.
6080
7d093d56
EZ
60812000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
6082
6083 * keyboard.c (kbd_buffer_events_waiting): New function.
6084
6085 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
6086
6087 * msdos.c: Include keyboard.h.
6088 (XMenuActivate): Empty no_event events from the event buffer. If
6089 no events are left after that, call clear_input_pending.
6090 (mouse_clear_clicks): New function, code moved from mouse_init.
6091 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
6092 mouse driver to ``forget'' any past clicks.
6093
6094 * Makefile.in (msdos.o): Depend on keyboard.h.
6095
41e757a6
GM
60962000-08-09 Gerd Moellmann <gerd@gnu.org>
6097
8e7bd231
GM
6098 * lisp.h (input_pending): External declaration.
6099
6100 * dispextern.h (Qredisplay_dont_pause): Declare extern.
6101
6102 * xdisp.c (echo_area_display): Display thoroughly if input is
6103 pending. Bind redisplay-dont-pause to t during the redisplay.
6104 in case input is pending.
6105
6106 * dispnew.c (Qredisplay_dont_pause): New variable.
6107 (syms_of_display): Initialize and staticpro it.
6108 (update_frame_1): Don't interrupt the display for pending input if
6109 redisplay_dont_pause is set.
6110
43028b7e
GM
6111 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
6112
41e757a6
GM
6113 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
6114
2f2174fa
KH
61152000-08-09 Miles Bader <miles@lsi.nec.co.jp>
6116
6117 * callproc.c (Fcall_process): Terminate the unwind-protect around
6118 the post-read-conversion of coding system.
6119
0a6fd67e
MB
6120 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
6121 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
6122 * buffer.h (overlays_at): Update prototype.
6123 * xdisp.c (next_overlay_change): Update call to overlays_at.
6124 * xfaces.c (face_at_buffer_position): Likewise.
6125 * textprop.c (Fget_char_property): Likewise.
6126 * xterm.c (note_mouse_highlight): Likewise.
6127
0c80756e
MB
6128 * minibuf.c (do_completion): Don't consider a simple change of
6129 case as `completion'.
6130
975f250a
KR
61312000-08-08 Ken Raeburn <raeburn@gnu.org>
6132
b347b3fd
KR
6133 * keyboard.c (syms_of_keyboard): Initialize
6134 last_point_position_buffer.
6135 * undo.c (record_delete): Make sure last_point_position_buffer is
6136 a buffer before comparing pointers.
6137
6138 * coding.h (decode_coding_string): Declare.
6139
6140 * intervals.h (Fprevious_single_char_property_change): Declare.
6141
6142 * textprop.c (Fprevious_single_char_property_change): Don't do
6143 arithmetic directly on lisp objects.
6144
25ad1371 6145 * editfns.c (find_field): Use EQ, not ==, to compare Lisp
b347b3fd
KR
6146 objects.
6147
6148 * keyboard.h (menu_item_eval_property): Declare.
6149
6150 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
6151 reuse as buffer name, instead of recreating (and discarding) every
6152 time a message is logged.
6153 (with_echo_area_buffer): Make callback arg A2 a lisp object.
25ad1371
GM
6154 (current_message_1, truncate_message_1, set_message_1)
6155 (display_echo_area_1, resize_mini_window_1): Signatures changed.
6156 (current_message, truncate_echo_area, display_echo_area)
6157 (resize_echo_area_axactly): Changed calls.
b347b3fd 6158
975f250a 6159 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
25ad1371 6160 Lisp object.
975f250a 6161 (Ffind_coding_systems_region_internal): First argument to Fappend
25ad1371 6162 must be an integer, not a Lisp object.
975f250a 6163
46dc9912
KH
61642000-08-08 Kenichi Handa <handa@etl.go.jp>
6165
6166 * charset.c (Fchar_width): Doc fix.
6167
9f6d1a6c
GM
61682000-08-08 Gerd Moellmann <gerd@gnu.org>
6169
6170 * charset.c (Fstring_width): Doc fix.
6171
ff3d9573
GM
61722000-08-07 Gerd Moellmann <gerd@gnu.org>
6173
41e757a6 6174 * xdisp.c (start_display): When starting display on a continuation
49ad1d99
GM
6175 line, clear ascent and descent members of the iterator structure;
6176 the height of the continued line does not affect the height of the
6177 continuation line.
6178 (make_cursor_line_fully_visible): Do nothing if cursor is on a
6179 line taller than the window.
6180 (redisplay_window) <forced window start>: Handle case that the
6181 middle of the window is not found in any row.
6182 (dump_glyph_row): Show more information.
6183 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
6184 first text line in a glyph matrix.
6185
6186 * xterm.c (x_draw_image_foreground): Avoid drawing outside
6187 of the clip area when image doesn't have a mask.
6188
70fc58b3
GM
6189 * fns.c (sweep_weak_table): Fix survival conditions for
6190 key-or-value and key-and-value weakness.
6191
6192 * .gdbinit (xhashtable): New command.
6193
ac0e96ee
GM
6194 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
6195 tables out of the list of all weak hash tables.
6196
ff3d9573
GM
6197 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
6198 a new buffer is created, make sure echo_area_buffer[] references
6199 the new buffer.
6200
e0d8827b
EZ
62012000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
6202
6203 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
6204 the doc string.
6205
c6f35378
KH
62062000-08-07 Kenichi Handa <handa@etl.go.jp>
6207
6208 * syntax.c (skip_chars): Fix previous change. Make the handling
6209 of unibyte string consistent with that of regex search.
6210
1fd4c450
GM
62112000-08-05 Gerd Moellmann <gerd@gnu.org>
6212
e49aa397
GM
6213 * xmenu.c (popup_get_selection): Use xfree instead of free.
6214
6215 * fileio.c (Finsert_file_contents): Use xfree instead of free.
6216
6217 * editfns.c (Ftranspose_regions): Use xfree instead of free.
6218
6219 * callproc.c (child_setup): Use xfree instead of free.
6220
6221 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
6222 instead of malloc.
6223 (run_mac_command, closedir): Use `xfree' instead of `free'.
6224
6225 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
6226
6227 * eval.c (error): Use xfree instead of free.
6228
1fd4c450
GM
6229 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
6230
6231 * fns.c: Replace `illegal' with `invalid'.
e49aa397 6232 (Fmake_hash_table, make_hash_table): Allow table size of 0.
1fd4c450 6233
82d497fc
KH
62342000-08-05 Kenichi Handa <handa@etl.go.jp>
6235
6236 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
6237 conversion.
6238
59f953a2
NF
62392000-08-04 Noah Friedman <friedman@splode.com>
6240
6241 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
6242 docstring.
6243
688351f2
GM
62442000-08-04 Gerd Moellmann <gerd@gnu.org>
6245
6246 * syntax.c (skip_chars): Fix typo in error message.
6247
2dad51cc
AS
62482000-08-04 Andreas Schwab <schwab@suse.de>
6249
6250 * m/ia64.h: Moved from s/ia64.h.
6251
99bb2c60
KH
62522000-08-04 Kenichi Handa <handa@etl.go.jp>
6253
082a1df2
KH
6254 * process.c (read_process_output): Big simplification. Handle
6255 composition and post-read-conversion of coding system correctly.
6256 (send_process): Handle composition correctly.
6257
6258 * callproc.c (Fcall_process): Handle post-read-conversion of
6259 coding system if any.
6260
99bb2c60
KH
6261 * coding.c (decode_coding_iso2022): More strict check for handling
6262 single shifting.
082a1df2
KH
6263 (coding_restore_composition): Pay attention to the case that
6264 cmp_data is not set properly (because of invalid code in the
6265 source text).
6266 (run_pre_post_conversion_on_str): Include text properties in the
6267 resulting string.
6268 (decode_coding_string): Set members of coding correctly.
99bb2c60 6269
f4988be7
GM
62702000-08-03 Gerd Moellmann <gerd@gnu.org>
6271
6272 * s/ia64.h: New file.
6273
6274 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
6275 Use NULL instead of 0 at the end of variable argument list of
6276 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
6277 sizeof (int) < sizeof (void *).
6278
6279 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
6280 of variable argument lists of XtVaGetValues and XtVaSetValues.
6281
6282 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
6283 variable argument lists of XtVaGetValues and XtVaSetValues.
6284
ead53494
GM
62852000-08-02 Gerd Moellmann <gerd@gnu.org>
6286
6287 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
6288 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
6289
6290 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
6291 prototype.
6292
6293 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
6294 in call to Fsingle_key_description.
6295
6296 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
6297 Callers changed.
6298
62992000-08-02 Colin Walters <walters@cis.ohio-state.edu>
6300
6301 * window.c (display_buffer_reuse_frames): New variable.
6302 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
6303 frames displaying BUFFER.
6304 (syms_of_window): Define Lisp variable
6305 display-buffer-reuse-frames.
6306
10b0f752
MB
63072000-08-01 Miles Bader <miles@gnu.org>
6308
6309 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
6310 when to constrain NEW_POS (they were pretty screwed up before).
6311
16425c4a
EZ
63122000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
6313
6314 * msdos.c (run_msdos_command): Save and restore the master
6315 environment, for the case that child_setup signals an error.
6316 When mirroring slashes in DOS shell commands, don't fail when
6317 argv[2] has embedded blanks.
da288c14
EZ
6318 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
6319 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
6320 (dos_ttraw): Call mouse_setup_buttons.
16425c4a
EZ
6321
6322 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
6323 using alloca; free it after run_msdos_command returns.
6324
27f73852
DL
63252000-07-27 Dave Love <fx@gnu.org>
6326
6327 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't
6328 define.
6329 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently
6330 working.
6331
6332 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
6333
c0261b5e
EZ
63342000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
6335
6336 * editfns.c (lisp_time_argument): Fix last change.
6337
b548072f
GM
63382000-07-27 Gerd Moellmann <gerd@gnu.org>
6339
3ab82477
GM
6340 * fns.c (Fdelete): Make it work on vectors and strings in addition
6341 to lists.
6342
b548072f
GM
6343 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
6344 (syms_of_fns): Initialize new variables.
6345 (sweep_weak_table): Handle weakness `key-or-value' and
6346 `key-and-value'.
6347 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
6348 weakness, with t meaning the same as `key-and-value'.
6349
91ae8751
KH
63502000-07-27 Kenichi Handa <handa@etl.go.jp>
6351
6352 * coding.h (struct coding_system): Member safe_charset deleted.
6353
6354 * coding.c (Qsafe_charsets): This variable deleted.
6355 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system): New
6356 variables.
6357 (coding_safe_chars): New function.
6358 (CODING_SAFE_CHAR_P): New macro.
6359 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
6360 checking safe_charsets member of the coding system. Caller
6361 changed.
6362 (detect_coding_iso2022): New local variable safe_chars.
6363 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
6364 safe_charsets member of the coding system.
6365 (decode_coding_iso2022): New local variable safe_chars.
6366 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
6367 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
6368 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
6369 (ENCODE_UNSAFE_CHARACTER): New macro.
6370 (encode_coding_iso2022): New local variable safe_chars. Check
6371 unsafe chars.
6372 (setup_coding_system): Delete the code to initialize
6373 coding->safe_charses
6374 (intersection, find_safe_codings): New functions.
6375 (Ffind_coding_systems_region_internal): New function.
6376 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
6377 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
6378 variable and initialize it.
6379
6380 * fns.c (char_table_ref_and_index): New function.
6381
6382 * lisp.h (char_table_ref_and_index): Add prototype.
6383
34a7a267
SS
63842000-07-26 Sam Steingold <sds@gnu.org>
6385
6386 * editfns.c (lisp_time_argument): Added third argument `usec'.
3ab82477 6387 (Ffloat_time): New built-in Lisp function.
34a7a267 6388
a95cb10a
GM
63892000-07-26 Gerd Moellmann <gerd@gnu.org>
6390
3353ef5a
GM
6391 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
6392 for the character code.
6393
6394 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
6395 GNU/Linux.
6396
a95cb10a
GM
6397 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
6398 if called for a popup menu.
6399 (xmenu_show): Store help string in widget values.
6400
b4a12321
DL
64012000-07-26 Dave Love <fx@gnu.org>
6402
6403 * syswait.h: Move some definitions.
6404 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
6405 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
6406 perspicuous definitions.
6407 (WTERMSIG): Fix bit pattern used.
6408
13f5ad37
KH
64092000-07-26 Kenichi Handa <handa@etl.go.jp>
6410
6411 * print.c (print_object): If vector printing is truncated, print
6412 "..." to indicate it as well as the case of list printing.
6413
070fe99c
GM
64142000-07-25 Gerd Moellmann <gerd@gnu.org>
6415
969065c3
GM
6416 * xdisp.c (next_element_from_display_vector): Improve comments.
6417
6418 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
6419 for the character code, and the rest for the face id as in 20.x.
6420 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
6421
6422 * window.c (window_display_table): Cleaned up.
6423
070fe99c
GM
6424 * syntax.c (Fforward_word): Add last arg nil in call of
6425 Fconstrain_to_field.
6426
bad77ef7
EZ
64272000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
6428
969065c3 6429 * fileio.c (Frename_file) [DOS_NT]: If the file names are
bad77ef7
EZ
6430 identical but for the letter-case, don't call
6431 barf_or_query_if_file_exists.
6432
c28da489
MB
64332000-07-25 Miles Bader <miles@gnu.org>
6434
6435 * editfns.c (find_field): Honor special `boundary' fields.
6436 (Qboundary): New variables.
6437 (syms_of_editfns): Initialize Qboundary.
6438 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
6439 Use scan_buffer instead of find_before_next_newline, because it
6440 allows us to detect the boundary case where there's a newline at
6441 the search limit.
6442 * lisp.h (Fconstrain_to_field): Update external declaration.
6443
e3c31fd5
GM
64442000-07-24 Gerd Moellmann <gerd@gnu.org>
6445
6446 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
6447 if that is nil.
c28da489 6448
c66c29a2
DL
64492000-07-24 Dave Love <fx@gnu.org>
6450
6451 * s/sunos4-0.h, s/sol2.h:
6452 (LIBS_TERMCAP): Move from m/sparc.h.
6453
6454 * m/sparc.h (TERMINFO): Moved to system files (probably only
6455 relevant for sunos4 judging by its vintage).
6456 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
6457 __arch64__.
6458
fbe0a958
EZ
64592000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
6460
6461 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
6462 name to single_keymap_panes.
6463
7d88e5c9
AS
64642000-07-24 Andreas Schwab <schwab@suse.de>
6465
6466 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
6467
e024b101
GM
64682000-07-24 Gerd Moellmann <gerd@gnu.org>
6469
6470 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
6471 parameters instead of using int parameters. Expect FN to accept
6472 EMACS_INT parameters.
6473 (display_echo_area, resize_echo_area_axactly, current_message)
6474 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
6475 with new argument list.
6476 (resize_mini_window_1): New callback function.
6477 (current_message_1, truncate_message_1, set_message_1): Change
6478 parameter lists to the new format expected by
6479 with_echo_area_buffer.
6480
25c1a9ce
KH
64812000-07-24 Kenichi Handa <handa@etl.go.jp>
6482
6483 * fontset.c (fontset_ref): Remove INLINE declaration.
6484 (fontset_ref_via_base): Likewise.
6485 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
6486 to downcase.
6487
7f987ac0
EZ
64882000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
6489
6490 * msdos.c (IT_note_mouse_highlight): Process overlays in the
6491 correct order of priority. If help echo was found in an overlay,
6492 use that overlay as the object in which the help echo was found.
6493
e2db3069
MB
64942000-07-22 Miles Bader <miles@gnu.org>
6495
6496 * textprop.c (Fprevious_single_char_property_change): The initial
6497 property value should be from the position preceding POSITION, not
6498 following it.
6499
5e3203e4
EZ
65002000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
6501
6502 * coding.c (syms_of_coding): Doc fix for
6503 inhibit-iso-escape-detection.
6504
62145073
GM
65052000-07-21 Gerd Moellmann <gerd@gnu.org>
6506
c20aeb83
GM
6507 * xterm.c (note_mouse_highlight): Process overlays in the right
6508 order of priority.
34a7a267 6509
743934db
GM
6510 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
6511
6512 * xterm.c (note_mouse_highlight): If help-echo was found in an
6513 overlay, use that overlay as the object in which the help was
6514 found.
6515
d1dc7e43 6516 * window.c (foreach_window_1): Fix typo reversing an if-condition.
34a7a267 6517
62145073
GM
6518 * window.c (foreach_window): Instead of a fake variable argument
6519 list, take one USER_DATA argument.
6520 (foreach_window_1): Likewise, and call callback functions with two
6521 args, the window and USER_DATA.
6522 (struct check_window_data): New struct.
6523 (check_window_containing): Use it.
6524 (window_from_coordinates): Set up a struct check_window_data for
6525 foreach_window.
6526 (add_window_to_list, freeze_window_start): Change parameters
6527 according to new calling convention.
6528
6529 * window.h (foreach_window): Change prototype.
6530
6531 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
6532
65332000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
6534
6535 * xmenu.c (menu_help_callback): Call show_help_echo with
6536 additional arguments OBJECT and POS.
6537
11270583
KH
65382000-07-21 Kenichi Handa <handa@etl.go.jp>
6539
07b14857
KH
6540 * data.c (Faset): Allow storing any multibyte character in a
6541 string. Convert unibyte string to multibyte if necessary.
6542
11270583
KH
6543 * xfns.c (x_encode_text): New function.
6544 (x_set_name): Use x_encode_text.
6545 (x_set_title): Likewise.
6546
6547 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
6548
6549 * xterm.h (x_encode_text): Add prototype.
6550
bc75b4fd
DL
65512000-07-20 Dave Love <fx@gnu.org>
6552
6553 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
6554 xfree, not free.
6555
48c14970
EZ
65562000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
6557
6558 * msdos.c (help_echo_window): New variable.
6559 (syms_of_msdos): Initialize and staticpro it.
6560 (IT_note_mode_line_highlight): Set help_echo_window.
6561 (IT_note_mouse_highlight): Ditto.
6562 (dos_rawgetc): Store help_echo_window in the second event produced
6563 for HELP_EVENTs.
6564
6565 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
6566 Record the object that generated the help echo and the position of
6567 that object in help_echo_object and help_echo_pos. Record that
6568 some glyphs in a row are displayed in mouse-face.
6569 (IT_update_begin): Don't clear mouse highlight unless one of the
6570 enabled glyph rows is marked as being displayed in mouse-face.
6571 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
6572 and position recorded in help_echo_object and help_echo_pos to the
6573 event queue.
6574 (IT_menu_display): Accept a new argument PN: the pane number of
6575 the current menu pane. Record the pane number and the item
6576 number of the item which has associated help string.
6577 (XMenuActivate): Update the prototype for help_callback in
6578 function declaration. Call IT_menu_display with the current menu
6579 pane number as an additional argument. Call help_callback with
6580 two additional arguments: the pane number and the item number of
6581 the menu item associated with the help text.
6582 (help_echo_object, help_echo_pos): New variables.
6583 (syms_of_msdos): Initialize them and staticpro help_echo_object.
6584
6585 * msdos.h (XMenuActivate): Update prototype.
6586
4279296d
GM
65872000-07-19 Gerd Moellmann <gerd@gnu.org>
6588
47db06aa
GM
6589 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
6590 Add some more prototypes.
6591
6592 * xterm.c, xterm.h: Add some more prototypes.
6593
6594 * lisp.h (Fnext_single_char_property_change): Add prototype.
6595
6596 * dispnew.c (direct_output_for_insert): Remove confusing
6597 outer local variable mouse_face_overwritten_p.
6598 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
6599
4279296d
GM
6600 * alloc.c (allocate_string_data): Don't copy old string contents.
6601
670acd62
KH
66022000-07-19 Kenichi Handa <handa@etl.go.jp>
6603
6604 * coding.c (code_convert_region): Delete text properties before
6605 shrinking the conversion region.
6606
7cea38bc
GM
66072000-07-18 Gerd Moellmann <gerd@gnu.org>
6608
dc1cac59
GM
6609 * dispnew.c (update_text_area): Write the whole row if it
6610 has mouse-face in it.
6611
85a8aca9
GM
6612 * xfaces.c (face-alternative-font-family-alist): Remove
6613 DEFVAR_LISP; staticpro instead.
6614
34a7a267 6615 * xmenu.c (menu_help_callback): Call show_help_echo with
7cea38bc
GM
6616 new arguments.
6617
6618 * keyboard.c (show_help_echo): Add parameter WINDOW.
6619 (read_char): Call show_help_echo with window extracted from Lisp
6620 help event.
6621 (gen_help_event): Add parameter WINDOW.
6622
6623 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
6624
6625 * xterm.c (help_echo_window): New variable.
6626 (note_mouse_highlight, note_tool_bar_highlight): Set
6627 help_echo_window.
6628 (XTread_socket): Pass help_echo_window to gen_help_event.
6629 (syms_of_xterm): Initialize and staticpro help_echo_window.
6630
f8276b77
DL
66312000-07-18 Dave Love <fx@gnu.org>
6632
6633 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
6634 systime.h.
6635
088831a6
GM
66362000-07-18 Gerd Moellmann <gerd@gnu.org>
6637
3d6cd763
GM
6638 * alloc.c (allocate_string_data): If string had already data
6639 assigned, copy old contents to new string data.
6640
6641 * coding.c (syms_of_coding): Fix typo in spelling of variable
6642 `inhibit-iso-escape-detection'.
6643
088831a6
GM
6644 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
6645
6646 * Makefile.in: Add dependencies on dispextern.h.
6647 (alloca.o): Don't define malloc and define EMACS_FREE instead of
6648 `free'; both can conflict with system header files.
6649
bc8a8d55
KH
66502000-07-18 Kenichi Handa <handa@etl.go.jp>
6651
6652 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
6653 undefined.
6654
069f5950
DL
66552000-07-18 Dave Love <fx@gnu.org>
6656
6657 * window.c (Fwindow_list): Declare arg `window'.
6658
aa96c820
KH
66592000-07-18 Kenichi Handa <handa@etl.go.jp>
6660
6661 * coding.c (setup_coding_system): Don't override the explicitly
6662 specified designations.
6663
06be8d32
MB
66642000-07-15 Miles Bader <miles@gnu.org>
6665
6666 * editfns.c (char_property_eq, char_property_stickiness): Renamed
6667 from `text_property_eq' and `text_property_stickiness', respectively.
6668 (find_field, Fconstrain_to_field, char_property_eq)
6669 (char_property_stickiness): Changed to call char-property functions
6670 instead of text-property-only ones.
6671
6672 * textprop.c (Fnext_single_char_property_change): Made a subr (was
6673 `next_single_char_property_change'). Do more error checking, and
6674 cleanup limit behavior.
6675 (Fprevious_single_char_property_change): New function.
6676 (syms_of_textprop): Initialize new subrs.
6677
6678 * xdisp.c (display_prop_end, invisible_text_between_p):
6679 Call Fnext_single_char_property_change instead of
6680 next_single_char_property_change.
6681
3fddcdc3
JR
66822000-07-15 Jason Rumney <jasonr@gnu.org>
6683
6684 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
6685 after menu is finished with.
6686 (add_menu_item): Only consider wv->title as a menu title.
6687 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
6688
6689 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
6690 null title.
6691 (FONT_REGEXP): Remove unused macro, and its sub-components.
6692 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
6693
6694 * w32term.c (help_echo_object, help_echo_pos): New variables.
6695 (note_mode_line_highlight): Store additional information about the
6696 help-echo in help_echo_object and help_echo_pos. Check both
6697 `local-map' and `keymap' properties for changing the cursor
6698 (note_mouse_highlight): Store additional information about the
6699 help-echo in help_echo_object and help_echo_pos.
6700 (note_tool_bar_highlight): Set help_echo_object to nil and
6701 help_echo_pos to -1.
6702 (w32_read_socket): Use gen_help_event instead of filling
6703 input_events manually.
6704 (syms_of_w32term): Staticpro help_echo_object.
6705 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
6706 set, arrange for a mouse-highlight redisplay in
6707 XTframe_up_to_date.
6708 (x_clear_mouse_face): New function.
6709 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
6710 (x_update_window_begin): No need to turn off the mouse
6711 highlight here.
6712 (show_mouse_face): Set the mouse_face_p flag of glyph rows
6713 depending on whether they contain glyphs highlighted in
6714 mouse-face.
6715 (x_fill_stretch_glyph_string): Consume runs of stretch
6716 glyphs instead of a single one.
6717 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
6718 with new argument list.
6719 (x_set_glyph_string_gc): Make sure the face's GC is valid.
6720 (x_append_glyph, x_append_composite_glyph)
6721 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
6722 changes in struct glyph starting 1999-12-27. See comments for
6723 xterm.c on 2000-07-05.
6724
178c5d9c
SS
67252000-07-14 Sam Steingold <sds@gnu.org>
6726
6727 * xfaces.c (realize_x_face): Fix the last patch:
6728 check `default_face' before dereferencing.
6729
6fe533f6
DL
67302000-07-14 Dave Love <fx@gnu.org>
6731
069f5950 6732 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 6733
dd7b81cf
KH
67342000-07-14 Kenichi Handa <handa@etl.go.jp>
6735
0693904a 6736 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 6737 default_face's fontset, not using the default fontset.
0693904a 6738
dd7b81cf
KH
6739 * coding.c (inhibit_iso_escape_detection): New variable.
6740 (syms_of_coding): Make it a Lisp variable.
6741 (detect_coding_iso2022): If inhibit_iso_escape_detection is
6742 nonzero, ignore ISO2022's escape sequence.
6743
d5aa31d8
GM
67442000-07-14 Gerd Moellmann <gerd@gnu.org>
6745
e5acf0ca
GM
6746 * alloca.c (malloc) [emacs]: Define as xmalloc.
6747
bd23a692
GM
6748 * xfns.c (Fx_show_tip): If frame parameters contain a position,
6749 use that instead of the mouse position. Add parameters DX and DY.
6750
6751 * dispextern.h (Fx_show_tip): Adjust number of parameters
6752 in prototype.
6753
9662da0b
GM
6754 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
6755 if HELP is a function, call it with OBJECT and POS as parameters
6756 to get the help to display.
6757 (gen_help_event, kbd_buffer_store_help_event): New functions.
6758 (kbd_buffer_get_event): Construct the Lisp help-event differently.
6759 (read_char): Call show_help_echo with new parameters.
6760
178c5d9c 6761 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
6762 Add prototypes.
6763
6764 * xterm.c (help_echo_object, help_echo_pos): New variables.
6765 (note_mode_line_highlight): Store additional information about the
6766 help-echo in help_echo_object and help_echo_pos. Check both
6767 `local-map' and `keymap' properties for changing the cursor
6768 (note_mouse_highlight): Store additional information about the
6769 help-echo in help_echo_object and help_echo_pos.
6770 (note_tool_bar_highlight): Set help_echo_object to nil and
6771 help_echo_pos to -1.
6772 (XTread_socket): Use gen_help_event instead of filling
6773 input_events manually.
6774 (syms_of_xterm): Staticpro help_echo_object.
6775
6776 * xmenu.c (menu_highlight_callback): Use
6777 kbd_buffer_store_help_event instead of setting up and input_event
6778 structure manually.
6779
6780 * xdisp.c (eval_form): GCPRO argument sexpr.
6781 (call_function): New function.
6782 (handle_single_display_prop): Use call_function and FUNCTIONP
6783 instead of checking whether if font_height is a symbol and
6784 using eval_form.
6785
6786 * eval.c (internal_condition_case_2): New function.
6787
6788 * lisp.h (FUNCTIONP): New macro.
6789 (internal_condition_case_2, call_function): Add prototypes.
6790
d5aa31d8
GM
6791 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
6792 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
6793 Always set `arg' member of input_events.
6794 (construct_menu_click): Unused function removed.
6795
6796 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
6797
6798 * w32term.c (construct_mouse_click, construct_mouse_wheel)
6799 (construct_drag_n_drop, x_scroll_bar_handle_click)
6800 (w32_read_socket): Always set `arg' member of input_events.
6801
6802 * keyboard.c (show_help_echo): Use eval_form. Add comment.
6803
6804 * lisp.h (eval_form): Add prototype.
6805
6806 * xdisp.c (eval_form): Make it externally visible.
6807
0f1a9b23
GM
68082000-07-13 Gerd Moellmann <gerd@gnu.org>
6809
6810 * xterm.c (x_handle_tool_bar_click): Store the frame in the
6811 frame_or_window slot of TOOL_BAR_EVENT input events instead of
6812 consing. For prefix events, store the frame in the `arg' slot of
6813 the event, otherwise store the key there.
6814 (XTread_socket): Instead of consing, use the frame_or_window slot
6815 of HELP_EVENTs for the frame, and the `arg' slot for the help
6816 string.
6817
6818 * xmenu.c (menu_highlight_callback): Store help string in the
6819 `arg' member of the input event; don't cons.
6820 (menubar_selection_callback): Use the `arg' slot of input events
6821 to queue additional information, instead of consing.
6822
6823 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
6824
6825 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
6826 TOOL_BAR_EVENTs.
6827 (w32_read_socket): Adapt to changes in HELP_EVENTs.
6828
6829 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
6830 input events to queue additional information, instead of consing.
6831
6832 * keyboard.c (kbd_buffer_gcpro): Renamed from
6833 kbd_buffer_frame_or_window. Now used for all Lisp objects
6834 referenced from the input queue.
6835 (kbd_buffer_store_event): Always use structure assignment for
6836 copying input events. Record all Lisp objects referenced from
6837 events in kbd_buffer_gcpro.
6838 (kbd_buffer_get_event): Construct Lisp `help-echo' events
6839 differently from input events. Test for prefix menu_bar_events
6840 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
6841 event in kbd_buffer_gcpro to nil.
6842 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
6843 frame_or_window is equal to its arg member as prefix events.
6844 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
6845 used by an input event to nil.
6846 (init_keyboard): Use two times the size of the input queue
6847 for kbd_buffer_gcpro.
6848 (syms_of_keyboard): Likewise.
6849
6850 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
6851 USER_SIGNAL_EVENT.
6852
6853 * termhooks.h (struct input_event): Add member `arg'.
6854 (MENU_BAR_EVENT): Renamed from menu_bar_event.
6855 (USER_SIGNAL_EVENT): Renamed from user_signal.
6856
6857 * xfaces.c (ASET): Remove definition.
6858
6859 * lisp.h (AREF, ASET, ASIZE): New macros.
6860
6861 * fontset.c (AREF, ASIZE): Remove definitions.
6862
6863 * fns.c (AREF): Remove definition.
178c5d9c 6864
0f1a9b23
GM
6865 * composite.c (AREF): Remove definition.
6866
712eaef2
GM
68672000-07-12 Gerd Moellmann <gerd@gnu.org>
6868
d8ee7803
GM
6869 * dispnew.c (redraw_overlapped_rows): Add missing local.
6870 (scrolling_window): Remove debug code.
6871
712eaef2
GM
6872 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
6873 Before scrolling, turn off a mouse-highlight in the window
6874 being scrolled.
6875
6876 * xterm.c (x_update_window_end): Add parameter
6877 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
6878 redisplay in XTframe_up_to_date.
6879 (x_clear_mouse_face): New function.
6880 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
6881
6882 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
6883 current glyph row.
6884 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
6885 it when any row is written to that contains glyphs highlighted in
6886 mouse-face.
6887 (update_window): Call the window update end hook with new
6888 parameter MOUSE_FACE_OVERWRITTEN_P.
6889 (direct_output_for_insert): Give up if row contains mouse-face.
6890
6891 * dispextern.h (struct redisplay_interface): Add parameter
6892 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
6893 (clear_mouse_face): New function pointer member.
6894
02010917
SM
68952000-07-11 Stefan Monnier <monnier@cs.yale.edu>
6896
6897 * syntax.c (back_comment): Use one switch rather than a few `if's.
6898 Obey open_paren_in_column_0_is_defun_start.
6899 When reverting to the `slow' method, try to nicely handle the case
6900 of nested comments by checking that the comment-starter we found
6901 does indeed match the comment-ender.
6902 (scan_sexps_forward, scan_sexps_forward):
6903 Ignore excessive opening parenthesis rather than throwing an error.
6904
d76c03ea
GM
69052000-07-11 Gerd Moellmann <gerd@gnu.org>
6906
6907 * doc.c (Fsubstitute_command_keys): Handle case that a GC
6908 in Fwhere_is_internal or get_keymap_1 relocates string contents.
6909
6910 * dispnew.c (direct_output_forward_char): Give up if currently
6911 displaying a message instead of the minibuffer contents.
6912
6913 * xterm.c (x_update_window_begin): No need to turn off the mouse
6914 highlight here.
6915 (show_mouse_face): Set the mouse_face_p flag of glyph rows
6916 depending on whether they contain glyphs highlighted in
6917 mouse-face.
6918
6919 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
6920 compare the mouse_face_p flags of both rows.
6921
6922 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
6923
d55ead18
EZ
69242000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
6925
6926 * keyboard.c (show_help_echo): Accept additional parameter
6927 ok_to_overwrite_keystroke_echo.
6928 (read_char): Call show_help_echo with a zero
6929 ok_to_overwrite_keystroke_echo argument.
6930 * keyboard.h (show_help_echo): Update prototype of
6931 show_help_echo.
6932 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
6933 ok_to_overwrite_keystroke_echo argument.
6934 * w32menu.c (w32_menu_display_help): Call show_help_echo with
6935 non-zero ok_to_overwrite_keystroke_echo argument.
6936
df75b1a3
GM
69372000-07-10 Gerd Moellmann <gerd@gnu.org>
6938
4b92c49a
GM
6939 * xdisp.c (try_window_id): If changes are all below what is
6940 displayed in the window, and point is in the window, we still
6941 might have to find point on the display.
6942
6943 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
6944 glyphs instead of a single one.
6945 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
6946 with new argument list.
6947 (x_set_glyph_string_gc): Make sure the face's GC is valid.
6948
df75b1a3
GM
6949 * keymap.c (get_keymap_1): Add comment that this function can GC.
6950 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
6951 comment that functions can GC.
6952 (Fset_keymap_parent): GCPRO arg KEYMAP.
6953
4314cf3e
EZ
69542000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
6955
6956 * msdos.c (XMenuActivate): After exiting the menu, restore the
6957 echo area message and erase it.
6958
ab49ce15
KH
69592000-07-10 Kenichi Handa <handa@etl.go.jp>
6960
6961 * fontset.c (Ffontset_info): Make the return value more compatible
6962 with that of Emacs 20.
6963
090a072f
GM
69642000-07-07 Gerd Moellmann <gerd@gnu.org>
6965
6966 * eval.c (Fsignal): Handle case that backtrace_list is null.
6967
f92de4a6
KH
69682000-07-07 Kenichi Handa <handa@etl.go.jp>
6969
6970 * ccl.c (Fccl_execute): Typo fixed.
6971
dd8888a1
GM
69722000-07-06 Gerd Moellmann <gerd@gnu.org>
6973
e5c81191 6974 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 6975
dd8888a1
GM
6976 * window.c (Fwindow_list): Reverse list at the end.
6977 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
6978 means allow windows on OWINDOW's frame, only.
6979 (window_loop): Simplified; use Fwindow_list.
6980
6981 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
6982
485266d0
GM
69832000-07-05 Gerd Moellmann <gerd@gnu.org>
6984
6985 * xterm.c (XTread_socket): Increment handling_signal at the start,
6986 decrement it at the end.
6987
6988 * eval.c (handling_signal): New variable.
6989 (Fsignal): Abort if handling_signal is non-zero.
6990
6991 * lisp.h (handling_signal): External declaration.
178c5d9c 6992
485266d0
GM
6993 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
6994
80fcd514
KR
69952000-07-05 Ken Raeburn <raeburn@gnu.org>
6996
6997 Sound support for NetBSD through "Linux emulation" support:
6998 * config.in (HAVE_SOUNDCARD_H): Undef.
6999 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
7000 * Makefile.in (LIBSOUND): New variable.
7001 (LIBES): Include it.
7002 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
7003 <soundcard.h>.
7004 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
7005 elsewhere.
7006 (vox_open): Use DEFAULT_SOUND_DEVICE.
7007 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
7008
d5c5cddd
GM
70092000-07-05 Gerd Moellmann <gerd@gnu.org>
7010
7011 * print.c (print_error_message): If Vsignaling_function is set,
7012 show it in *Messages*.
7013
7014 * lisp.h (Vsignaling_function): External declaration.
7015
7016 * eval.c (Vsignaling_function): New variable.
7017 (Fsignal): Compute it.
7018 (syms_of_eval): Staticpro it.
7019
65171e3a
DL
70202000-07-05 Dave Love <fx@gnu.org>
7021
7022 * syswait.h: Use the autoconf recommended approach. Old code
7023 #if'd out in case we need to revert.
7024
178c5d9c 7025 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 7026
e2c46326
AI
70272000-07-05 Andrew Innes <andrewi@gnu.org>
7028
7029 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
7030 when non-NULL instead of __morecore, to take account of buffer
7031 memory. This also solves a problem with spurious memory warnings
7032 on Windows.
7033
7034 * ralloc.c: Make real_morecore non-static.
7035
7036 * eval.c (internal_condition_case): Comment out abort if
7037 interrupt_input_blocked is not zero.
7038
7039 * makefile.nt: Add support for `bootstrap' and related targets.
7040 Include minimal debug info in emacs.exe in release build.
7041 Remove all dependencies on lisp.h, and fixup some others.
7042
7043 * w32.c (init_environment): Install code from 20.7 for providing
7044 default values for environment variables, based on the
7045 executable's own location.
7046 (map_w32_filename): Handle filenames that are longer than
7047 MAX_PATH.
7048 (sys_socket): Install socket inheritance bug fix from 20.7.
7049
7050 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
7051 here via blockinput.h).
7052
a027a91b
SM
70532000-07-05 Stefan Monnier <monnier@cs.yale.edu>
7054
e4b31601
SM
7055 * w32menu.c (w32_menu_display_help):
7056 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
7057
7058 * keyboard.h (show_help_echo): Declare.
7059
7060 * keyboard.c (show_help_echo): New function, extracted from read_char.
7061 Feval its `msg' argument if it's a cons cell.
7062 (read_char): Use it.
4cf8d9d5 7063 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 7064
178c5d9c 7065 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 7066 (note_tool_bar_highlight, XTread_socket):
178c5d9c 7067 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
7068 (dos_rawgetc):
7069 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
7070 (note_tool_bar_highlight, w32_read_socket):
7071 Do not gratuitously ignore non-string `help-echo' properties.
7072
88d75730
GM
70732000-07-05 Gerd Moellmann <gerd@gnu.org>
7074
969f7e79
GM
7075 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
7076
71201b00
GM
7077 * window.c (delete_all_subwindows): Reset Vwindow_list.
7078
88d75730
GM
7079 * xterm.c (x_append_glyph, x_append_composite_glyph)
7080 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
7081 changes in struct glyph starting 1999-12-27. Some bit-fields of
7082 struct glyph were not set, which made glyphs unequal when compared
7083 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
7084 effects were the result. This also depended on the contents of
7085 memory returned by xmalloc. If flickering happens again, activate
7086 the code in clear_glyph_row that's in #if 0. If the flickering is
7087 gone with that, chances are that it is caused by something
7088 similar.
7089
7090 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 7091
88d75730
GM
7092 * dispextern.h: Add some comments.
7093
7094 * window.c (add_window_to_list): Add parameter LIST.
7095 (window_list): Order list so that, for each frame, windows are
7096 in canonical order, and so that frames appear in the list in
7097 the order given by Vframe_list.
7098 (next_window): Reverse the handling of NEXT_P.
7099
53654733
GM
71002000-07-04 Gerd Moellmann <gerd@gnu.org>
7101
87efd256
GM
7102 * window.c (Vwindow_list): New variable.
7103 (make_window, delete_window): Set Vwindow_list to nil.
7104 (check_window_containing): New function.
7105 (window_from_coordinates): Rewritten.
7106 (add_window_to_list, window_list, candidate_window_p)
7107 (decode_next_window_args, next_window): New functions.
7108 (Fnext_window, Fprevious_window): Rewritten in terms of
7109 next_window.
7110 (Fwindow_list): New function.
7111 (Fother_window): Cleaned up.
7112 (foreach_window): Add a longer "variable argument list". Let
7113 callback function return 0 to indicate that cycling over windows
7114 should stop.
7115 (foreach_window_1): Likewise.
7116 (freeze_window_start): Return int.
7117 (init_window): New function.
7118 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
7119
7120 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
7121 input_event with bzero.
7122 (main): Call init_window.
7123
53654733
GM
7124 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
7125 a menu filter.
7126
4a8c194f
KH
71272000-07-04 Kenichi Handa <handa@etl.go.jp>
7128
7129 * composite.h (make_composition_value_copy): Extern it.
7130
7131 * composite.c (make_composition_value_copy): New function.
7132
7133 * editfns.c (Fformat): While copying text properties, make each
7134 composition property value a copy.
7135
7136 * fns.c (concat): While copying text properties, make each
7137 composition property value a copy.
7138
831a6cb0
GM
71392000-07-03 Gerd Moellmann <gerd@gnu.org>
7140
2f516940
GM
7141 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
7142
178c5d9c 7143 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
7144 marked already.
7145
831a6cb0
GM
7146 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
7147 include those frames as candidates which have their focus
7148 redirected to the minibuffer frame.
7149
d9c4f922
SM
71502000-07-03 Stefan Monnier <monnier@cs.yale.edu>
7151
7152 * fns.c (Fputhash): Return `value' rather than nil.
7153
3780bc22
GM
71542000-06-30 Gerd Moellmann <gerd@gnu.org>
7155
97d176db
GM
7156 * frame.c (next_frame): Don't check focus redirection in case
7157 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
7158 unless their focus is redirected, which contradicts the
7159 specification of next-frame, and leads to infinite loops in
7160 certain situations when cycling through windows with next-window.
7161
dca9961d
KH
71622000-06-30 Kenichi Handa <handa@etl.go.jp>
7163
7164 * coding.c (code_convert_region): Even if the length of text is
7165 zero, try to convert it if coding->type is coding_type_ccl.
7166 (decode_coding_string, encode_coding_string): Likewise.
7167
d5483ab1
GM
71682000-06-28 Gerd Moellmann <gerd@gnu.org>
7169
af5c25e1 7170 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 7171 the display if windows_or_buffers_changed.
af5c25e1
GM
7172
7173 * dispnew.c (struct row_entry): New structure.
7174 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
7175 (row_table_size, old_lines, new_lines, old_lines_size)
7176 (new_lines_size, run_pool, runs_size, runs): New variables.
7177 (add_row_entry): New function.
7178 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 7179 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
7180 holding them in local variables. Use a larger hash table whose
7181 size depends on glyph matrix sizes. Don't use bzero to clear the
7182 hash table; instead, clear used slots only.
7183
7184 * fns.c (next_almost_prime): Make it externally visible.
7185
7186 * lisp.h (next_almost_prime): Add prototype.
7187
d5483ab1
GM
7188 * s/isc4-0.h (sigunblock): Define.
7189
7190 * s/sco5.h (sigunblock): Define.
7191
93e40f40
DL
71922000-06-27 Dave Love <fx@gnu.org>
7193
7194 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
7195 (moved to osf5-0.h).
7196 [!NOT_C_CODE]: Protect string.h stuff.
7197
7198 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
7199 (sys_siglist, NSIG): Definitions moved here from osf1.h.
7200
3c4b7685
GM
72012000-06-27 Gerd Moellmann <gerd@gnu.org>
7202
97d176db 7203 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
7204 below the last line from the needed window height.
7205
32cad0aa
SM
72062000-06-26 Stefan Monnier <monnier@cs.yale.edu>
7207
7208 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
7209 (Fwidget_get): Use it.
7210 (syms_of_fns): Defsubr it.
7211
2c69ced2
GM
72122000-06-26 Gerd Moellmann <gerd@gnu.org>
7213
178c5d9c 7214 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
7215 display info for XIM.
7216 (xim_open_dpy): Likewise.
7217 (xim_close_dpy): Don't free the display info's XIM.
7218
7219 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
7220
7221 * config.in (USE_XIM): New define.
7222
3fc720e4
GM
7223 * keymap.c (get_keyelt): For menu-items containing a `:filter
7224 FILTER', apply FILTER to the menu-item's definition to get the
7225 real definition to use.
7226
7227 * lisp.h (QCfilter): External declaration.
7228
2c69ced2
GM
7229 * xfns.c (Fimage_size): New function.
7230 (syms_of_xfns): Defsubr it.
7231
f978b2a2
AS
72322000-06-26 Andreas Schwab <schwab@suse.de>
7233
7234 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
7235 Fstring_as_unibyte.
7236
94cc7892
DL
72372000-06-25 Dave Love <fx@gnu.org>
7238
7239 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
7240 tgetnum.
7241
7242 * Makefile.in (blockinput.h): Depend on atimer.h.
7243 (atimer.h): Depend on systime.h.
7244
7245 * blockinput.h: Protect against multiple inclusion. Include
7246 atimer.h.
7247
7248 * atimer.h: Protect against multiple inclusion. Include
7249 systime.h.
7250
7251 * lisp.h (swap_in_global_binding): Declare.
7252
b8c24556
KR
72532000-06-24 Ken Raeburn <raeburn@gnu.org>
7254
7255 * process.c (Fopen_network_stream): Turn off atimers for duration
7256 of call to connect. (Patch from Gerd.)
7257
8cf8560b
DL
72582000-06-23 Dave Love <fx@gnu.org>
7259
511c7541
DL
7260 * ralloc.c: Maybe include unistd.h
7261
8cf8560b
DL
7262 * emacs.c (setgrp): Undefine before defining.
7263 (malloc_warning, set_time_zone_rule, index): Prototype.
7264
7265 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
7266 HAVE_STRUCT_TIMEZONE.
7267
7268 * s/osf1.h: Move string.h hack here from alpha.h and make it
7269 conditional.
7270 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
7271 _XOPEN_SOURCE.
7272 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
7273 (SOCKLEN_TYPE): Don't define.
7274
7275 * m/alpha.h: Remove string.h hack.
7276
7277 * s/osf5-0.h: New file.
7278
7279 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
7280 include time.h, done by systime.h.
7281 [__FreeBSD__]: Remove redundant includes.
7282
3fc720e4 7283 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
7284 (delete_temp_file): Return Qnil to avoid warning.
7285
7286 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
7287
7288 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
7289 HAVE_X_WINDOWS.
7290
7291 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
7292
7293 * composite.h (compose_text): Declare.
7294
7295 * xterm.c: Don't include sys/types.h unconditionally. Don't
7296 protect its inclusion with !USG (following xmenu.c).
7297
ea055732
GM
72982000-06-23 Gerd Moellmann <gerd@gnu.org>
7299
7300 * xfns.c (x_create_tip_frame): Initialize frame's colors like
7301 in x_create_frame.
7302
74b01b80
EZ
73032000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
7304
7305 * coding.c (decode_eol_post_ccl): Special handling for undecided
7306 and inconsistent EOL types.
7307
64f3a166
GM
73082000-06-22 Gerd Moellmann <gerd@gnu.org>
7309
16cf31f7
GM
7310 * xrdb.c (x_load_resources): Add default resource for scroll bar's
7311 trough color and main window's background color.
7312
178c5d9c 7313 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
7314 differently.
7315
7316 * xterm.h (Xt_app_con): External declaration.
7317
7318 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 7319
486a103d
GM
7320 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
7321
64f3a166
GM
7322 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
7323 (handle_invisible_prop): Record the start of invisible text in
7324 it->add_overlay_start.
7325 (struct overlay_entry): Add member `overlay'.
7326 (handle_overlay_change): Simplify.
7327 (next_overlay_string): After having processed overlay strings at the
7328 end of the buffer, record that fact in
7329 it->overlay_strings_at_end_processed_p.
7330 (compare_overlay_entries): If before- and after-strings come
7331 from the same overlay, let before-strings come first.
7332 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
7333 (load_overlay_strings): Take it->add_overlay_start into account
7334 when adding overlay strings.
7335
7336 * dispextern.h (struct it): Add member add_overlay_start.
7337
bb746ea6
DL
73382000-06-22 Dave Love <fx@gnu.org>
7339
7340 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
7341
7342 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
7343
a8f573f3
KH
73442000-06-22 Kenichi Handa <handa@etl.go.jp>
7345
7346 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
7347 is greater than 0.
7348
9f2bbc92
DL
73492000-06-21 Dave Love <fx@gnu.org>
7350
178c5d9c 7351 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 7352
3ee5041c
SM
73532000-06-21 Stefan Monnier <monnier@cs.yale.edu>
7354
7355 * syntax.c (back_comment): Simplify string-parity counting (with
7356 the added benefit of handling multiple string-styles as long as
7357 they are not intertwined).
7358 Jump to the slow code as soon as a comment starter is found in
7359 a "string_lossage" position. Fixes the case: " /* " /* " */.
7360
4c343001
DL
73612000-06-21 Dave Love <fx@gnu.org>
7362
7363 * Makefile.in: Use GETLOADAVG_LIBS.
7364
7365 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
7366 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
7367
e6365855
SM
73682000-06-20 Stefan Monnier <monnier@cs.yale.edu>
7369
7370 * syntax.c (describe_syntax): Recognize the `n'estable bit.
7371 (Fforward_comment, scan_lists):
7372 Check the comstyle of single-char comment-starters.
7373 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
7374 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
7375 Check the comstyle of single-char comment-starters.
7376 Clarify control-flow around the Scomment case.
e6365855 7377
5700d2cc
DL
73782000-06-20 Dave Love <fx@gnu.org>
7379
d355bd8a
SM
7380 * fns.c (make_hash_table, maybe_resize_hash_table):
7381 Cast arg of next_almost_prime.
5700d2cc 7382
178c5d9c 7383 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
7384
7385 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
7386 and unistd.h.
7387
4a27bdfb
GM
73882000-06-20 Gerd Moellmann <gerd@gnu.org>
7389
a61d762c
GM
7390 * keyboard.c (adjust_point_for_property): Check if display
7391 property should be treated as intangible by looking at its
7392 value.
7393
178c5d9c 7394 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
7395 (display_prop_intangible_p): New functions.
7396
7397 * dispextern.h (display_prop_intangible_p): Add prototype.
7398
7399 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 7400
4a27bdfb
GM
7401 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
7402 argument to sigprocmask.
7403
7404 * s/sco5.h (sigblock): Redefined to pass a pointer as second
7405 argument to sigprocmask.
7406
7407 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
7408 sigprocmask_set, and pass a pointer to it to sigprocmask.
7409
7410 * sysdep.c (sigprocmask_set): New variable.
7411
7412 * fileio.c (make_temp_name): Don't use `%s' in string passed to
7413 report_file_error.
7414
427ec082
SS
74152000-06-20 Sam Steingold <sds@gnu.org>
7416
7417 * xrdb.c: Don't declare xmalloc, xrealloc.
7418
8972fe79 74192000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
7420
7421 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
7422 (re_comp): Cast gettext return value to avoid complaints when
7423 !HAVE_LIBINTL.
7424
074b6efe
DL
74252000-06-20 Dave Love <fx@gnu.org>
7426
f85c008a
DL
7427 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
7428 HAVE_GETTIMEOFDAY.
7429
5700d2cc 7430 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 7431
d355bd8a 7432 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
7433
7434 * m/alpha.h: Don't declare xmalloc, xrealloc.
7435
0af4f205
DL
7436 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
7437
7438 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
7439
7440 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
7441
7442 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
7443 HAVE_GETWD.
7444
074b6efe
DL
7445 * keyboard.h (poll_for_input_1): Declare.
7446
7447 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
7448
7449 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
7450
7451 * doprnt.c: Don't declare xmalloc, xrealloc.
7452
7453 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
7454 (getenv, ctime, getwd): Removed.
7455 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
7456
7457 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
7458 x_set_tool_bar_lines.
7459
7460 * config.in: Add HAVE_GETWD. Move some definitions above
7461 machine/system includes.
7462
68a5e97b
KH
74632000-06-20 Kenichi Handa <handa@etl.go.jp>
7464
95417e1e
KH
7465 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
7466
68a5e97b
KH
7467 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
7468 contain information about ENCODING.
7469
7470 * fontset.c (FONTSET_ASCII): Use the first element of char table
7471 for an ASCII font, not defalt slot.
7472 (fontset_ref_via_base): If FONTSET doesn't contain information for
7473 C, try the default fontset.
7474 (make_fontset): Don't copy the default fontset.
7475 (fontset_font_pattern): Likewise.
7476 (accumulate_font_info): If ELT is nil, use the corresponding
7477 element in the default fontset.
7478
3b4fa1b2
DL
74792000-06-19 Dave Love <fx@gnu.org>
7480
943e731c
DL
7481 * syntax.c (Fparse_partial_sexp): Doc fix.
7482
7483 * regex.h: Test PROTOTYPES as well as __STDC__.
7484
3b4fa1b2
DL
7485 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
7486 errno, strerror. Put text after #endif in comment.
7487
7488 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
7489 pcc).
7490
7491 * xterm.c (x_frame_of_widget): Likewise.
7492
cdf0357b
GM
74932000-06-19 Gerd Moellmann <gerd@gnu.org>
7494
7495 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
7496 to Vfundamental_mode_abbrev_table.
7497
7498 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
7499 bogus objects are marked. This slows down GC by ~80 percent, but
7500 it might be worth trying when debugging GC-related problems.
7501 This feature requires conservative stack marking to be enabled.
7502
7503 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
7504 returns XLookupChars, reset `modifiers' to zero.
7505
998e9f8c
DL
75062000-06-19 Dave Love <fx@gnu.org>
7507
7508 * mktime.c: Unprotoized.
7509
18e21ce8 75102000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
7511
7512 * data.c (set_internal): If variable is frame-local,
7513 store the new value immediately into the frame parameter alist.
7514
140c4ac6
KR
75152000-06-19 Ken Raeburn <raeburn@gnu.org>
7516
14358466
KR
7517 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
7518 in the custom handler pointer.
7519
140c4ac6
KR
7520 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
7521 value, or checks for CHAR_META can fail when Lisp_Object is a
7522 union type.
7523 * keymap.c (get_keyelt): Likewise.
7524
10d7bf84
KH
75252000-06-19 Kenichi Handa <handa@etl.go.jp>
7526
7527 * ccl.h (struct ccl_program): New member eol_type.
7528 (struct ccl_spec): New member cr_carryover.
7529
7530 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
7531 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
7532
7533 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
7534 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
7535 (decode_eol_post_ccl): New function.
7536 (decode_coding): Don't detect EOL format here for CCL based coding
7537 systems.
7538 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
7539 decode_eol_post_ccl after running the CCL program.
7540 (code_convert_region): Don't detect EOL format here for CCL based
7541 coding systems.
7542 (decode_coding_string): Likewise.
7543
52e386c2
KR
75442000-06-18 Ken Raeburn <raeburn@gnu.org>
7545
7546 * charset.c (update_charset_table): Use XINT on "iso_final_char"
7547 when treating it as an integer.
7548
7549 * coding.h (encode_coding_string): Declare.
7550
7551 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
7552 it as an integer.
7553
7554 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
7555 "xkeymap" to avoid shadowing the "enum map_type" value that needs
7556 to be passed to get_local_map.
7557
7558 * sound.c (Fplay_sound): Don't call make_number on
7559 Frun_hook_with_args count argument.
7560
7561 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
7562 for lisp objects in X event structure data field, when lisp
7563 objects are represented with unions.
7564 (x_scroll_bar_to_input_event): Ditto.
7565
b357b9d4
KR
75662000-06-16 Ken Raeburn <raeburn@gnu.org>
7567
7568 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
7569 termination of string. Fix sense of test whether
7570 Vline_number_display_limit is an integer.
b357b9d4 7571
a871441d
GM
75722000-06-16 Gerd Moellmann <gerd@gnu.org>
7573
a9021acd
GM
7574 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
7575 only if HAVE_X_WINDOWS.
7576
6344985d
GM
7577 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
7578 of titles.
7579
427ec082 7580 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
7581 out of bounds.
7582
228b083e
EZ
75832000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
7584
7585 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
7586 of its headers.
7587
c25b53a2
KH
75882000-06-15 Kenichi Handa <handa@etl.go.jp>
7589
7590 * coding.c (decode_coding_emacs_mule): Always set src_base at the
7591 start of the while loop.
7592
a6981b11
GM
75932000-06-15 Gerd Moellmann <gerd@gnu.org>
7594
e9924e52
GM
7595 * atimer.c (alarm_signal_handler): Add forward declaration.
7596
a6981b11
GM
7597 * data.c (set_internal): Remove debug code.
7598
25fa6deb
GM
75992000-06-14 Gerd Moellmann <gerd@gnu.org>
7600
dce6b995
GM
7601 * Makefile.in (bootstrap-temacs): Add `-I../src'.
7602
9f817ea4
GM
7603 * unexec.c (toplevel) [COFF]: Include coff.h.
7604
7605 * s/lynxos.h: New file.
7606
7607 * keymap.c (Fsingle_key_description): Enclose function key and
7608 event symbol names in angle brackets.
7609
8a4e3c0c
GM
7610 * xdisp.c (setup_echo_area_for_printing): Call
7611 message_log_maybe_newline if message_buf_print is not set.
7612
7613 * print.c (printchar, strout): Don't check message_buf_print
427ec082 7614 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
7615 function does something useful even when message_buf_print is
7616 already set.
7617
25fa6deb
GM
7618 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
7619 variables.
7620 (ensure_echo_area_buffers): Initialize echo buffer's
7621 truncate lines setting to nil.
7622 (with_echo_area_buffer): Don't set the echo buffer's truncate
7623 lines setting here.
8a4e3c0c 7624 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
7625 of message_truncate_lines.
7626 (resize_mini_window): Handle case that lines are truncated.
7627 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
7628 message-truncate-lines.
7629
7630 * keyboard.c (read_char): Bind message-truncate-lines to t
7631 while displaying a help-echo.
7632
7633 * lisp.h (Qmessage_truncate_lines): External declaration.
7634
163dcff3
GM
76352000-06-13 Gerd Moellmann <gerd@gnu.org>
7636
1681ead6
GM
7637 * xdisp.c (Vline_number_display_limit): Renamed from
7638 line_number_display_limit.
7639 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
7640 Extend documentation string. Initialize
7641 Vline_number_display_limit to nil meaning no limit.
7642 (decode_mode_spec): Use Vline_number_display_limit with its new
7643 meaning.
7644
163dcff3
GM
7645 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
7646
18e21ce8 76472000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
7648
7649 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 7650
163dcff3
GM
7651 * xfns.c (x_set_frame_parameters): Comment fix.
7652
7653 * frame.c (store_frame_param): Call swap_in_global_binding if the
7654 variable's current binding was chosen based on this frame.
7655
7656 * data.c (swap_in_global_binding): New function.
7657
a704139d
EZ
76582000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
7659
7660 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
7661 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
7662
9b6610db
EZ
76632000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
7664
7665 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
7666
c68833d2
JR
76672000-06-12 Jason Rumney <jasonr@gnu.org>
7668
7669 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
7670
7671 * w32.h (EMACS_W32_H): Renamed from _NT_H_
7672
7673 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
7674
7675 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
7676
ed1056b3
GM
76772000-06-12 Gerd Moellmann <gerd@gnu.org>
7678
7679 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
7680 (syms_of_xfaces): Defsubr Sdump_colors.
7681 (x_free_colors): Don't treat b&w specially on default visual.
7682 (x_free_dpy_colors): New function.
7683 (free_face_colors): Don't check visual class; it's done
7684 in x_free_colors.
7685
7686 * xterm.c (x_frame_of_widget): New function.
7687 (x_alloc_nearest_color_for_widget): Use it.
7688 (x_copy_dpy_color): New function.
7689 (x_destroy_window): Free various colors.
7690
5050a2ef
KH
76912000-06-12 Kenichi Handa <handa@etl.go.jp>
7692
7693 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
7694
7695 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
7696
7697 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
7698
7699 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
7700
7701 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
7702
fb1b041d
DL
77032000-06-11 Dave Love <fx@gnu.org>
7704
7705 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
7706
ff96b5f4
EZ
77072000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
7708
7709 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
7710
db8eeecd
GM
77112000-06-11 Gerd Moellmann <gerd@gnu.org>
7712
ed1056b3 7713 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
7714 to `XEvent *'.
7715
49b71c5f
KH
77162000-06-10 Kenichi Handa <handa@etl.go.jp>
7717
c479bd55
KH
7718 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
7719 (regex_compile): Fix the code for handling the case of single byte
7720 char and multibyte char being mixed in a range within [...].
7721
ff6a65c2
KH
7722 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
7723 and dst_multibyte members of coding.
7724
49b71c5f
KH
7725 * charset.c (update_charset_table): Update the table
7726 bytes_by_char_head.
7727 (init_charset_once): Initialize elements of bytes_by_char_head to
7728 1 except for leading codes for private charases.
7729
7730 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
7731 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
7732 sequence.
7733
9e80b57d
KR
77342000-06-09 Ken Raeburn <raeburn@gnu.org>
7735
7736 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
7737 access the data it doesn't point to.
7738
f83fe4b4
GM
77392000-06-08 Gerd Moellmann <gerd@gnu.org>
7740
7741 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 7742 will be translated to a switch-frame event when reading the
f83fe4b4
GM
7743 event queue. This is necessary because Emacs otherwise won't
7744 perform a switch-frame to a new frame until some other event, for
7745 example a keystroke event, forces it to do so. This has various
7746 effects, one visible being that the cursor of a frame created with
7747 C-x 5 2 or switched to with a window manager key binding like
7748 A-TAB stays hollow because selected_window isn't on the newly
7749 focused frame until the switch-frame is performed.
7750
7751 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
7752 generating a switch-frame event if necessary.
7753
7754 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
7755
7756 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
7757 it's an integer.
7758
0890801b
KH
77592000-06-08 Kenichi Handa <handa@etl.go.jp>
7760
7761 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
7762 charset.
7763
173cbca8
GM
77642000-06-07 Gerd Moellmann <gerd@gnu.org>
7765
3091c2a6
GM
7766 * window.c (displayed_window_lines): Take empty lines at
7767 the bottom of a window into account.
427ec082 7768
f38952fe
GM
7769 * window.c (displayed_window_lines): New function.
7770 (Fmove_to_window_line): Use displayed_window_lines to determine
7771 the number of lines to move, instead of using the window's height.
7772
7773 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
7774 to stop reading, even if the form read sets point to a different
7775 value when evaluated.
7776
427ec082 7777 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
7778 put the cursor.
7779
6ba6c818
KH
77802000-06-07 Kenichi Handa <handa@etl.go.jp>
7781
7782 * fileio.c (e_write): Free composition data if stored in
7783 coding->cmp_data.
7784
5f1aea9a
GM
77852000-06-06 Gerd Moellmann <gerd@gnu.org>
7786
666852af
GM
7787 * xdisp.c (display_line): Set row's and iterator's
7788 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
7789 Set cursor even if row ends in the middle of a character.
7790 (dump_glyph_row): Print values of new flags.
7791 (redisplay_window) <cursor movement in unchanged window>: When
7792 point has been moved forward, and PT is at the end of the cursor
7793 row, don't place the cursor in the next row if the cursor row ends
7794 in the middle of a character or at ZV.
7795
7796 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
7797 (struct glyph_row): Add starts_in_middle_of_char_p and
7798 ends_in_middle_of_char_p.
7799 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
7800 ends_in_middle_of_char_p flag.
7801 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
7802
d13f3e2e
GM
7803 * term.c (append_glyph): Revert change of 2000-06-06.
7804
7805 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
7806 padding glyph not fitting on line as whole character not
7807 fitting on line.
7808
5f1aea9a
GM
7809 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
7810 this isn't true for images with `:ascent 100'.
7811
10cda9b0
KH
78122000-06-06 Kenichi Handa <handa@etl.go.jp>
7813
ed00559d
KH
7814 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
7815 as modified if it is originally unmodified.
7816
10cda9b0
KH
7817 * term.c (encode_terminal_code): Change the way to check if
7818 terminal coding does any conversion.
7819 (append_glyph): Set glyph->pixel_width correctly.
7820
7821 * xdisp.c (display_line): While checking line continuation, pay
7822 attention to a padding glyph.
7823
1969fae2
GM
78242000-06-05 Gerd Moellmann <gerd@gnu.org>
7825
7826 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
7827
162ccef4
DL
78282000-06-05 Dave Love <fx@gnu.org>
7829
f19f32dd
DL
7830 * xdisp.c: Include fontset.h.
7831
7832 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
7833
7834 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
7835
7836 * dispnew.c: Conditionally include term.h.
7837
7838 * coding.h: Declare code_convert_string_norecord.
7839
7840 * frame.h (struct frame): Use volatile unconditionally.
7841
7842 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
7843
7844 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
7845
7846 * systime.h: Protect against multiple inclusion.
7847 (timezone) [USG5_4]: Define as time_t.
7848
7849 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
7850 (Foptimize_char_table, make_temp_name): Declare.
7851
7852 * Makefile.in (xdisp.o): Depend on fontset.h.
7853
7854 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
7855
7856 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
7857 (Foptimize_char_table, make_temp_name): Declare.
7858
427ec082 7859 * s/irix4-0.h:
162ccef4
DL
7860 * s/irix5-0.h:
7861 * s/netbsd.h: Don't define autoconfiscated MATHERR.
7862
2082fe81
DL
78632000-06-02 Dave Love <fx@gnu.org>
7864
7865 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
7866
dcf671d2
GM
78672000-06-02 Gerd Moellmann <gerd@gnu.org>
7868
7869 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 7870 result face, set flags in that face indicating that colors may not
dcf671d2
GM
7871 be freed.
7872
7873 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
7874 glyph, use the ASCII NUL character to determine the face.
7875
d42122a3
DL
78762000-06-02 Dave Love <fx@gnu.org>
7877
7878 * sysdep.c: Conditionally include stdlib.h, unistd.h.
7879 (VFORK_RETURN_TYPE): Remove.
427ec082 7880
d42122a3
DL
7881 * config.in: Add NO_MATHERR.
7882
dd432f16
DL
78832000-06-01 Dave Love <fx@gnu.org>
7884
90aa4ea8
DL
7885 * cmds.c (internal_self_insert): Don't check
7886 Vbefore_change_function, Vafter_change_function.
7887
7888 * insdel.c (signal_before_change, signal_after_change): Likewise.
7889
7890 * buffer.c (Vbefore_change_function, Vafter_change_function):
7891 Variables and their initializations deleted.
7892
2330c9d4
DL
7893 * callint.c (Fcall_interactively): Doc fix.
7894
dd432f16
DL
7895 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
7896
bf9e8804
DL
78972000-05-31 Dave Love <fx@gnu.org>
7898
7899 * textprop.c: Revert last change -- duplicated.
7900
3694b4ab
GM
79012000-05-31 Gerd Moellmann <gerd@gnu.org>
7902
7903 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
7904 in #if 0.
7905
7906 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
7907
f14156cd
JR
79082000-05-31 Jason Rumney <jasonr@gnu.org>
7909
8119aab8
JR
7910 * search.c (Fre_search_forward, Fre_search_backward)
7911 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
7912
f14156cd
JR
7913 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
7914
4aab9be3
JR
79152000-05-30 Jason Rumney <jasonr@gnu.org>
7916
7917 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
7918 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
7919
7920 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
7921 member.
7922
7923 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
7924 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
7925 expand a nil default_filename.
7926
7927 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
7928 pointer to glyph_to_pixel_coords, not a frame.
7929
7930 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
7931 coding.h to dependencies.
7932
7933 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
7934
7935 * w32console.c (glyph_to_pixel_coords): Change first parameter to
7936 window pointer to be consistent with w32term.c and xterm.c.
7937
7938 * w32fns.c: Format and doc changes to bring closer to xfns.c.
7939 (VIETNAMESE_CHARSET): Define if not defined in system headers.
7940 (Qline_spacing, Qcenter): New variables.
7941 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
7942 (x_set_line_spacing): New function.
7943 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
7944 macros.
7945 (x_specified_cursor_type): New function.
7946 (x_set_cursor_type): Use it.
7947 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
7948 and icon strings.
7949 (validate_x_resource_name, x_get_resource_string): Measure lengths
7950 of external strings in bytes.
7951 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
7952 GetTextExtentPoint32 with NULL title.
7953 (Fx_create_frame): Initialize Qline_spacing.
7954 (w32_load_system_font): Initialize font->double_byte_p.
7955 (x_to_w32_charset): Use Vw32_charset_info_alist.
7956 (Image, busy cursor, tooltip functions): Merged changes from
7957 xfns.c. Not yet functional on Windows.
7958
7959 * w32gui.h (W32FontStruct): Add double_byte_p member.
7960
7961 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
7962 (emacs_button_translation): Use it.
7963 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
7964 in `mask' to be set.
7965
7966 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
7967 menu strings.
7968
7969 * w32term.c: Format and doc changes to bring closer to xterm.c.
7970 (w32_char_font_type): New enum.
7971 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
7972 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
7973 (w32_encode_char): New function.
7974 (x_encode_char): Removed.
7975 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
7976 x_encode_char and w32_font_is_double_byte.
7977 (x_produce_image_glyph): Use image_ascent.
7978 (x_produce_glyphs): Use new version of w32_per_char_metric and
7979 handle NULL return value. Allow extra line spacing.
7980 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
7981 (w32_get_glyph_overhangs): Remove unicode_p param. Use
7982 w32_font_type member of glyph instead.
7983 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
7984 (fast_find_position): Make sure not to consider rows not visible
7985 in the window.
7986 (w32_read_socket) [WM_MENUSELECT]: Cannot call
7987 w32_menu_display_help with input blocked, as it can abort.
7988 (x_display_and_set_cursor): Choose cursor depending
7989 on buffer-local value of cursor_type.
7990 (x_draw_bar_cursor): Add parameter WIDTH.
7991
7992 * w32term.h (CP_DEFAULT): Define.
7993 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
7994
10fc3187
GM
79952000-05-30 Gerd Moellmann <gerd@gnu.org>
7996
7997 * search.c (Fre_search_forward, Fre_search_backward)
7998 (Fposix_search_backward, Fposix_search_forward): Doc fix.
7999
d0555360
KH
80002000-05-30 Kenichi Handa <handa@etl.go.jp>
8001
8002 * coding.c (detect_coding_iso2022): Fix code for checking
8003 CODING_CATEGORY_MASK_ISO_8_2.
8004
f1ad044f
SM
80052000-05-29 Stefan Monnier <monnier@cs.yale.edu>
8006
8007 * regex.c (PREFETCH_NOLIMIT): New function.
8008 (re_match_2_internal): Use it and adjust the end_match_2 logic.
8009
84ec3b4b
GM
80102000-05-29 Gerd Moellmann <gerd@gnu.org>
8011
66254a13
GM
8012 * syntax.c (find_defun_start): Move test for
8013 open_paren_in_column_0_is_defun_start outside of the loop.
8014
49e70dec
GM
8015 * xdisp.c (redisplay_window): Really switch buffers when
8016 displaying mode lines, and temporarily set selected_frame to the
8017 frame of the window that's redisplayed.
8018
84ec3b4b
GM
8019 * xfaces.c (free_realized_faces): Block/unblock input.
8020 (free_realized_multibyte_face): Ditto.
8021
869a3a14
DL
80222000-05-29 Dave Love <fx@gnu.org>
8023
8024 * textprop.c (Qkeymap): New variable.
8025 (syms_of_textprop): Intern it.
8026
8027 * keymap.c: Include intervals.h.
8028 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
8029
8030 * Makefile.in (keymap.o): Depend on intervals.h.
8031
8032 * keyboard.c (menu_bar_items, tool_bar_items)
8033 (Fexecute_extended_command): Deal with `keymap' property.
8034 (read_key_sequence): Track map from `keymap' property as well as
8035 `local_map'.
8036
8037 * intervals.c (get_local_map): Extra arg to allow looking for
8038 `keymap' too.
8039
8040 * intervals.h (map_property): New enum.
8041 (get_local_map): Extra arg using it.
8042 (Qkeymap): Declare.
8043
84ec3b4b 8044 * lisp.h (get_local_map): Don't declare here.
869a3a14 8045
89d0c844
KH
80462000-05-29 Kenichi Handa <handa@etl.go.jp>
8047
8048 * Makefile.in (callproc.o): Depend on composite.h.
8049
8050 * callproc.c: Include composite.h.
8051 (Fcall_process): Handle composition correctly.
8052
8053 * coding.h (coding_allocate_composition_data): Extern it.
8054 (coding_restore_composition): Likewise.
8055
8056 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
8057 yet allocated, finish decoding with result
8058 CODING_FINISH_INSUFFICIENT_CMP.
8059 (coding_allocate_composition_data): Make it non-static.
8060 (coding_restore_composition): Likewise.
8061
797a084a
EZ
80622000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
8063
8064 * charset.c (syms_of_charset): Revert last change.
8065
cf872af5
EZ
80662000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
8067
8068 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
8069 charsets as unibyte, with 1-column screen width. Sent by Kenichi
8070 Handa.
cf872af5 8071
5b1ae051
EZ
80722000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
8073
8074 * charset.c (syms_of_charset): Set width of character sets
8075 eight-bit-control and eight-bit-graphic to 1 column.
8076
34ec9ebe
GM
80772000-05-26 Gerd Moellmann <gerd@gnu.org>
8078
8079 * config.in (HAVE_SPEED_T): New define.
8080
8081 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
8082 `extern speed_t'.
8083
dd854dc2
DL
80842000-05-26 Dave Love <fx@gnu.org>
8085
8086 * coding.c (shrink_decoding_region): Initialize eol_conversion.
8087
8088 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
8089 (Fsubr_arity): New function.
8090 (syms_of_data): Install them.
8091
ba9f8f95
KH
80922000-05-26 Kenichi Handa <handa@etl.go.jp>
8093
0f3e0672
KH
8094 * charset.c (init_charset_once): Set the table bytes_by_char_head
8095 correctly.
8096
cebefb44
KH
8097 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
8098 the default fontset to what Emacs uses by default.
0f3e0672
KH
8099 (check_registry_encoding): This function deleted.
8100 (Fset_fontset_font): Remove the adhoc condition for the default
8101 fontset. Allow cons in FONTNAME.
cebefb44 8102
0f3e0672
KH
8103 * fns.c (map_char_table): Ignore char-table entries for
8104 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 8105
7a18af49
KR
81062000-05-25 Ken Raeburn <raeburn@gnu.org>
8107
8108 * emacs.c (main): Initialize keyboard syms before initializing
8109 window code, so face names are available.
8110
d2af47df
SM
81112000-05-25 Stefan Monnier <monnier@cs.yale.edu>
8112
8113 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
8114 of an anchor at the beginning of a shy-group.
8115
fc6a6a4e
GM
81162000-05-25 Gerd Moellmann <gerd@gnu.org>
8117
8118 * xdisp.c (handle_invisible_prop): Don't try to skip over
8119 invisible text if end of text is already reached.
8120
005f0d35
DL
81212000-05-25 Dave Love <fx@gnu.org>
8122
02513cdd
DL
8123 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
8124
005f0d35
DL
8125 * coding.c (encode_eol): Add null statement after label.
8126
89f6ca4e
EZ
81272000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
8128
8129 * w16select.c (Fw16_set_clipboard_data): Fix the change from
8130 2000-05-20.
8131
a4e1759e
KH
81322000-05-25 Kenichi Handa <handa@etl.go.jp>
8133
8134 * ccl.c (ccl_driver): Fix previous change.
8135
eacfd7fe
KH
81362000-05-25 Kenichi Handa <handa@etl.go.jp>
8137
46ab33a9
KH
8138 * coding.c (run_pre_post_conversion_on_str): Set point to the
8139 beginning of buffer before calling coding->post_read_conversion.
8140 (decode_coding_string): Give correct args to
8141 run_pre_post_conversion_on_str.
8142 (encode_coding_string): Likewise.
8143
eacfd7fe
KH
8144 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
8145 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
8146 eight-bit-graphic correctly.
8147
f8569325
DL
81482000-05-24 Kenichi HANDA <handa@etl.go.jp>
8149
8150 * fileio.c (Finsert_file_contents): Even if a file is not found,
8151 execute codes for setting up coding system. Call
8152 after-insert-file-functions unconditionally.
8153
04545643
GM
81542000-05-24 Gerd Moellmann <gerd@gnu.org>
8155
8156 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
8157 BSD_PGRPS are not defined.
8158
747d90ea
KH
81592000-05-24 Kenichi Handa <handa@etl.go.jp>
8160
8161 * charset.c (update_charset_table): Accept nil in LONG_NAME and
8162 DESCRIPTION.
8163 (syms_of_charset): Avoid building same strings.
8164
716e3b88
GM
81652000-05-23 Gerd Moellmann <gerd@gnu.org>
8166
8167 * lread.c (Fload): Add a comment about the meaning of
8168 Vuser_init_file being t.
8169
8170 * puresize.h (BASE_PURESIZE): Increase to 675000.
8171
8172 * s/gnu-linux.h (setpgrp): Don't define it here because this
8173 prevents compilation on GNU/Linux systems with glib 2.2.
8174
8175 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
8176 as setpgid.
427ec082 8177
9aeb39fa
EZ
81782000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
8179
8180 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
8181 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
8182 version.
8183 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
8184
29ced61b
KH
81852000-05-23 Kenichi Handa <handa@etl.go.jp>
8186
0574a2ed
KH
8187 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
8188 unconditionally.
8189
3d80f24d
KH
8190 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
8191
8192 * term.c (encode_terminal_code): Set coding->src_multibyte
8193 properly.
8194
29ced61b
KH
8195 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
8196
d7e00792
KH
81972000-05-22 Kenichi Handa <handa@etl.go.jp>
8198
c9d80d38
KH
8199 * keyboard.c (read_char): Allow character codes 128..255 to be
8200 handled by input-method-function.
8201
d7e00792
KH
8202 * insdel.c (adjust_markers_for_replace): Fix previous change.
8203 (adjust_after_replace): If PREV_TEXT is nil, call
8204 adjust_markers_for_insert, not adjust_markers_for_replace.
8205
087121cc 82062000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 8207
087121cc
GM
8208 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
8209 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
8210 [HAVE_GRANDPT]: Define.
8211 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
8212
8213 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
8214 like SYSV_PTYS.
8215
8216 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
8217
8218 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
8219
c9671f81
KH
82202000-05-20 Kenichi Handa <handa@etl.go.jp>
8221
8222 The following changes are to handle 8-bit characters in a
8223 multibyte buffer/string without facing with byte combining
8224 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
8225 eight-bit-graphic (for 0xA0..0xFF) are introduced.
8226
8227 * Makefile.in (fns.o): Depend on charset.h.
8228
8229 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
8230 convert it to unibyte.
8231 (make_string): Use parse_str_as_multibyte, not chars_in_text.
8232
8233 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
8234 apparent char boundary.
8235 (Fset_buffer_multibyte): Convert 8-bit characters in the range
8236 0x80..0x9F to/from multibyte form.
8237
8238 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
8239 to unibyte.
8240
8241 * callproc.c (Fcall_process): Always encode an argument string if
8242 it is multibyte. Setup src_multibyte and dst_multibyte members of
8243 process_coding properly.
ce75fd23 8244
c9671f81
KH
8245 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
8246 SPLIT_NON_ASCII_CHAR.
8247
8248 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
8249 as is.
8250 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
8251
8252 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
8253 variables.
8254 (SPLIT_CHARACTER_SEQ): This macro deleted.
8255 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
8256 valid.
8257 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
8258 and eight-bit-graphic.
8259 (char_to_string): Likewise. Signal an error for too large
8260 character code.
8261 (char_printable_p): Return 0 for 8-bit characters.
8262 (update_charset_table): Update iso_charset_table only when a final
8263 character is non-negative.
8264 (find_charset_in_text): Renamed from find_charset_in_str.
8265 Arguments and return value changed. Callers changed.
8266 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
8267 be -1 if CHARSET is used only internally.
8268 (Fmake_char_internal): Handle new charsets; eight-bit-control and
8269 eight-bit-graphic.
8270 (Fcharset_after): Simplified.
8271 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
8272 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
8273 (multibyte_chars_in_text): Simplified by assuming there's no
8274 invalid multibyte sequence.
8275 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
8276 str_as_unibyte): New functions.
8277 (Fstring): Simpified by assuming that byte combining never
8278 happens.
8279 (init_charset_once): Initialization for
8280 LEADING_CODE_8_BIT_CONTROL.
8281 (syms_of_charset): Intern and staticpro Qeight_bit_control and
8282 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
8283 eight-bit-control and eight-bit-graphic.
8284
8285 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
8286 CHARSET_8_BIT_GRAPHIC): New macros.
8287 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
8288 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
8289 (CHARSET_REVERSE_CHARSET): Likewise.
8290 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
8291 eight-bit-graphic.
8292 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
8293 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
8294 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
8295 encounter an invalid multibyte sequence.
8296 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
8297 sequence is always valid.
8298 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
8299 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
8300 macros.
8301 (CHAR_STRING): For 8-bit characters, call char_to_string.
8302 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
8303 multibyte sequence is always valid.
8304 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
8305 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
8306 str_as_unibyte): Extern them.
8307 (BCOPY_SHORT): Fix a bug.
8308 (CHAR_LEN): This macro deleted. Callers changed to use
8309 CHAR_BYTES.
8310 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
8311 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
8312 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
8313
bd4bde7f 8314 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
8315 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
8316 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
8317 EMIT_BYTES): New macros.
8318 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
8319 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
8320 macros deleted.
8321 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
8322 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
8323 check the validity of multibyte sequence.
8324 (decode_coding_emacs_mule): New function.
8325 (encode_coding_emacs_mule): New macro.
8326 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
8327 the source.
8328 (DECODE_ISO_CHARACTER): Just return a character code.
8329 (DECODE_COMPOSITION_START): Set coding->result instead of result.
8330 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
8331 EMIT_CHAR to produced decoded characters. Exit the loop only by
8332 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
8333 block here.
8334 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
8335 only position codes for an invalid character.
8336 (encode_designation_at_bol): Return new destination pointer. 5th
8337 arg DSTP is changed to DST.
8338 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
8339 from the source by ONE_MORE_CHAR. Don't handle the case of last
8340 block here.
8341 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
8342 macros deleted.
8343 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
8344 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
8345 TWO_MORE_BYTES to fetch a byte from the source.
8346 (encode_eol): Pay attention to coding->src_multibyte.
8347 (detect_coding, detect_eol): Preserve members src_multibyte and
8348 dst_multibyte.
8349 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
8350 (encoding_buffer_size): Set magnification to 3 for all coding
8351 systems that require encoding.
8352 (ccl_coding_driver): For decoding, be sure that the result is
8353 valid multibyte sequence.
8354 (decode_coding): Initialize coding->errors and coding->result.
8355 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
8356 and raw-text, always call decode_eol. Handle the case of last
8357 block here. If not coding->dst_multibyte, convert the resulting
8358 sequence to unibyte.
8359 (encode_coding): Initialize coding->errors and coding->result.
8360 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
8361 and raw-text, always call encode_eol. Handle the case of last
8362 block here.
8363 (shrink_decoding_region, shrink_encoding_region): Detect cases
8364 that we can't skip data more rigidly.
8365 (code_convert_region): Setup src_multibyte and dst_multibyte
8366 members of coding. For decoding, if the buffer is multibyte,
8367 convert the source sequence to unibyte in advance. For encoding,
8368 if the buffer is multibyte, convert the resulting sequence to
8369 multibyte afterward.
8370 (run_pre_post_conversion_on_str): New function.
8371 (code_convert_string): Deleted and divided into the following two.
8372 (decode_coding_string, encode_coding_string): New functions.
8373 (code_convert_string1, code_convert_string_norecord): Call one of
8374 above.
8375 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
8376 MAKE_NON_ASCII_CHAR.
8377 (Fset_terminal_coding_system_internal,
8378 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
8379 and dst_multibyte members.
8380 (init_coding_once): Initialize iso_code_class with new enum
8381 ISO_control_0 and ISO_control_1.
8382
8383 * coding.h (enum iso_code_class_type): Member ISO_control_code is
8384 devided into ISO_control_0 and ISO_control_1.
8385 (struct coding_system): New members src_multibyte, dst_multibyte,
8386 errors, and result. Delete member fake_multibyte.
8387 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
8388 nonzero.
8389 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
8390 nonzero.
8391
8392 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
8393 (Faset): Likewise.
8394
8395 * editfns.c (Fformat): Be sure to convert 8-bit characters to
8396 multibyte form.
8397 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
8398 combining occurs.
8399 (Ftranspose_region): Delete codes for handling byte combining.
8400
8401 * fileio.c (Finsert_file_contents): Setup src_multibyte and
8402 dst_multibyte members of coding. On handling REPLACE on unibyte
8403 buffer, convert the result of decode_coding to unibyte. On
8404 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 8405 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
8406 multibyteness of the source (buffer or string).
8407
8408 * fns.c (concat): Handle 8-bit characters correctly.
8409 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
8410 unibyte in the result.
8411 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
8412 valid multibyte form in the result.
8413 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
8414 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
8415 return -1, signal an error.
8416 (base64_encode_1): New arg MULTIBYTE. Get each character by
8417 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
8418 character is found, return -1.
8419 (Fbase64_decode_region): Delete codes for handling byte-combining.
8420 Treat each decoded byte as a unibyte character.
8421 (Fbase64_decode_string): Return unibyte string.
8422 (Fcompare_strings, concat, string_byte_to_char): Use
8423 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
8424 FETCH_STRING_CHAR_ADVANCE.
8425 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8426 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
8427
8428 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
8429 SPLIT_NON_ASCII_CHAR.
8430 (fontset_ref_via_base, fontset_set): Likewise
8431
8432 * insdel.c (adjust_markers_for_record_delete): Deleted.
8433 (adjust_markers_for_insert): Argument changed. Caller changed.
8434 (adjust_markers_for_replace): Likewise.
8435 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
8436 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
8437 (copy_text): Delete unused local varialbe c_save. For converting
8438 to multibyte, be sure to make all 8-bit characters in valid
8439 multibyte form.
8440 (count_size_as_multibyte): Handle 8-bit characters correctly.
8441 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
8442 adjust_after_replace, replace_range, del_range_2)
8443 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
8444 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
8445 adjust_after_replace, replace_range, del_range_2) Delete codes for
8446 handling byte combining.
8447 (adjust_before_replace): Deleted.
427ec082 8448
c9671f81
KH
8449 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
8450 SPLIT_NON_ASCII_CHAR.
8451 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
8452 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
8453 unconditionally.
8454 (Fkey_description): Likewise.
8455
8456 * lread.c (read1): On reading multibyte string, be sure to make
8457 all 8-bit chararacters in valid multibyte form.
8458 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8459
8460 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
8461 unconditionally.
8462
8463 * process.c (Fstart_process): GCPRO current_dir before calling
8464 Ffind_operation_coding_system. Encode arguments here.
8465 (create_process): Don't encode arguments here. Setup
8466 src_multibyte and dst_multibyte members of struct coding.
8467 (read_process_output): Setup src_multibyte and dst_multibyte
8468 members of struct coding. If the output is to multibyte buffer,
8469 always decode the output of the process. Adjust the
8470 representation of 8-bit characters to the multibyteness of the
8471 output.
8472 (send_process): Setup coding->src_multibyte according to the
8473 multibyteness of the source.
8474
8475 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
8476 unconditionally.
8477 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
8478 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
8479
8480 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
8481 CHAR_LEN.
8482
8483 * w16select.c (Fw16_set_clipboard_data): Setup members
8484 src_multibyte and dst_multibyte of coding. Adjusted for the
8485 change for find_charset_in_str.
8486 (Fw16_get_clipboard_data): Likewise.
8487
8488 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
8489 dst_multibyte of coding.
8490 (x_to_w32_font): Likewise.
8491
8492 * w32select.c (Fw32_set_clipboard_data): Setup members
8493 src_multibyte and dst_multibyte of coding. Adjusted for the
8494 change for find_charset_in_str.
8495 (Fw32_get_clipboard_data): Likewise.
8496
8497 * xdisp.c (get_next_display_element): Handle 8-bit characters
8498 correctly.
8499 (next_element_from_display_vector): Use CHAR_BYTES instead of
8500 CHAR_LEN.
8501 (disp_char_vector): Use SPLIT_CHAR instead of
8502 SPLIT_NON_ASCII_CHAR.
8503
8504 * xselect.c (selection_data_to_lisp_data): Setup members
8505 src_multibyte and dst_multibyte of coding. Adjusted for the
8506 change for find_charset_in_str.
8507 (lisp_data_to_selection_data): Likewise.
8508
5f64c9e0
GM
85092000-05-19 Gerd Moellmann <gerd@gnu.org>
8510
2b63d473
GM
8511 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
8512 buffer.
8513
5f64c9e0
GM
8514 * dispextern.h (Vimage_types): Add extern declaration.
8515
8516 * xdisp.c (Vimage_types): Moved here from xfns.c.
8517 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
8518
8519 * xfns.c (Vimages_types): Moved to xdisp.c.
8520 (syms_of_xfns): Move `image-types' to xdisp.c.
8521
8522 * w32fns.c (Vimage_types): Removed.
8523 (syms_of_w32fns): Remove `image-types'.
8524
813086ea
KH
85252000-05-18 Kenichi Handa <handa@etl.go.jp>
8526
8527 * fns.c (map_char_table): Pay attention to character number of
8528 charset. Check the validity of charset at the first level. For
8529 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
8530 the default value.
8531
8532 * fontset.c: Include "buffer.h".
8533 (fs_load_font): If the face has fontset, record the face ID in
8534 that fontset.
8535 (Finternal_char_font): New function.
8536 (accumulate_font_info): New function.
8537 (Ffontset_info): Rewritten for the new fontset implementation.
8538 (syms_of_fontset): Register Vdefault_fontset in the first element
8539 of Vfontset_table. Include Vdefault_fontset in
8540 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
8541 function.
8542
bdaebbf0
DL
85432000-05-16 Dave Love <fx@gnu.org>
8544
8545 * m/iris5d.h: Deleted -- unused.
8546
cb613bb8
GM
85472000-05-16 Gerd Moellmann <gerd@gnu.org>
8548
b15f3b77
GM
8549 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
8550 `invalid' instead of `illegal'.
8551
8552 * indent.c (Fmove_to_column): When ending within a tab, insert
8553 spaces first so that markers at the end of the tab get adjusted.
8554
835c1b36
GM
8555 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
8556 buffer list that wasn't selected in that frame.
8557
cb613bb8
GM
8558 * filelock.c (get_boot_time): To obtain an 8 char file name, which
8559 is needed on mescaline, use a 2 char prefix, and call
8560 make_temp_name with second arg non-zero.
8561
8562 * fileio.c (make_temp_name): New function, extracted from
8563 Fmake_temp_name.
8564 (Fmake_temp_name): Use it.
8565
f685bea9
EZ
85662000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
8567
8568 * window.c (coordinates_in_window): Subtract 1 when computing
8569 right_x.
8570
a1b8d58b
GM
85712000-05-15 Gerd Moellmann <gerd@gnu.org>
8572
8573 * Makefile.in (lisp): Add env.elc.
8574
8575 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
8576
a265079f
GM
85772000-05-12 Gerd Moellmann <gerd@gnu.org>
8578
8579 * search.c (Freplace_match): Handle case of `\N' in the
8580 replacement when there's no group N.
8581
da4496b6
GM
85822000-05-11 Gerd Moellmann <gerd@gnu.org>
8583
0ace421a
GM
8584 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
8585 of the message to message_dolog.
8586
1172eb8d
GM
8587 * keyboard.c (read_char): Don't clear current message for help
8588 events; let the code handling help events handle this. Change
8589 code detecting help events that should be ignored.
8590
da4496b6
GM
8591 * xdisp.c (handle_single_display_prop): Don't try to set PT if
8592 we're interating over a string.
8593
0623e40f
DL
85942000-05-09 Dave Love <fx@gnu.org>
8595
8596 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
8597 that offset before writing. Move gcpro region past call of
8598 Ffile_regular_p.
8599
bae2503b
DL
86002000-05-04 Dave Love <fx@gnu.org>
8601
8602 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
8603
ec82fb2f
GM
86042000-05-04 Gerd Moellmann <gerd@gnu.org>
8605
8606 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
8607 of inserted characters when BUF equals the current buffer, and PT
8608 is in front of or equal to FROM.
8609
cbf18892
GM
86102000-05-03 Gerd Moellmann <gerd@gnu.org>
8611
4ff40dd0
GM
8612 * xdisp.c (handle_single_display_prop): If display property value
8613 is invalid, or something not supported on the frame, restore
8614 iterator's position to what it was initially. Make sure to return
8615 0 for invalid and unsupported property values.
8616
cbf18892
GM
8617 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
8618 that x_per_char_metric returns null.
8619
1b0672c3
GM
86202000-05-02 Gerd Moellmann <gerd@gnu.org>
8621
576da55d
GM
8622 * xterm.h (struct face): Add forward declaration.
8623 (struct image): Ditto.
8624 (image_ascent): Add prototype.
8625
8626 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
8627 (x_draw_image_relief, x_draw_image_foreground_1): Call function
8628 image_ascent instead of using IMAGE_ASCENT.
8629
8630 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
8631 (IMAGE_ASCENT): Removed.
8632
8633 * xfns.c (Qcenter): New variable.
8634 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
8635 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
8636 (image_ascent): New function.
8637 (lookup_image): Recognize `:ascent center'.
8638 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
8639 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
8640 (xbm_load): Don't set image's ascent here.
8641 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
8642 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
8643 check ascent values here.
8644 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
8645 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
8646 (syms_of_xfns): Initialize Qcenter.
8647
1b0672c3
GM
8648 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
8649 to the limits, increase the limits.
8650
0d7811ed
KH
86512000-05-01 Kenichi Handa <handa@etl.go.jp>
8652
8653 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
8654 Check Vfont_encoding_alist against the full name of the opened
8655 font.
8656
a943a5ca
GM
86572000-04-28 Gerd Moellmann <gerd@gnu.org>
8658
8659 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
8660 taller than the window.
8661
5dba1e29
KH
86622000-04-28 Kenichi Handa <handa@etl.go.jp>
8663
8664 * xfaces.c (realize_x_face): Fix the argument of the second
8665 xassert. BASE_FACE may not be a face for ASCII.
8666
353964e3
GM
86672000-04-27 Gerd Moellmann <gerd@gnu.org>
8668
c76e04a8
GM
8669 * print.c (print_object): Treat print-length < 0 as nil.
8670
8671 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
8672
8673 * s/freebsd.h (TERMCAP_OBJ): Removed.
8674 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
8675
8676 * lread.c (read1): Don't treat period followed by certain
8677 characters as symbol start.
8678
8679 * xfns.c (slurp_file): New function.
8680 (xbm_image_p): Handle case of in-memory XBM files.
8681 (xbm_scan): Rewritten to work on memory buffers instead of files.
8682 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
8683 Work on memory buffers instead of files. If DATA is null test
8684 if buffer looks like an in-memory XBM file.
8685 (xbm_load_image): Renamed from xbm_load_image_file. Work on
8686 memory buffers instead of files.
8687 (xbm_file_p): New function.
8688 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
8689
353964e3
GM
8690 * lread.c (end_of_file_error): New function.
8691 (read1): Call it instead of signaling `end-of-file' directly.
8692
427ec082 8693 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
8694 with Fprinc instead of Fprin1.
8695
24d744ac
KR
86962000-04-26 Ken Raeburn <raeburn@gnu.org>
8697
8698 * window.c (freeze_window_start): Check that minibuffer scroll
8699 window isn't nil before extracting the window structure pointer
8700 from it.
8701
8702 * undo.c (record_delete): If we hit the end of the undo list, stop
8703 picking elements apart.
8704
7464346d
GM
87052000-04-26 Gerd Moellmann <gerd@gnu.org>
8706
8707 * xdisp.c (display_line): If lines are continued, restore
8708 iterator's ascent/descent information to the values before the
8709 first glyph not fitting on the line.
8710
612839b6
GM
87112000-04-25 Gerd Moellmann <gerd@gnu.org>
8712
8713 * xdisp.c (try_window_id) <all changes above window start>: Adjust
8714 positions in glyph matrix. Don't compute new window end
8715 positions.
8716
8717 * dispnew.c (increment_matrix_positions): Renamed from
8718 increment_glyph_matrix_buffer_positions.
8719 (increment_row_positions): Renamed from
8720 increment_glyph_row_buffer_positions.
8721
8722 * dispextern.h: Change names of renamed functions from dispnew.c
8723 in prototypes.
8724
cc181e95
GM
87252000-04-24 Gerd Moellmann <gerd@gnu.org>
8726
abfcc168
GM
8727 * fileio.c (Fdo_auto_save): Create directories for auto-save
8728 list file if necessary.
8729
cc181e95
GM
8730 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
8731 from buffer or frame.
8732 (automatic_hscrolling_p): New variable.
8733 (hscroll_windows): Scroll windows horizontally only if automatic
8734 hscrolling is allowed.
8735 (syms_of_xdisp): New variable `automatic-hscrolling'.
8736
8737 * frame.h (struct frame): Add member extra_line_spacing.
8738
8739 * xfns.c (x_set_line_spacing): New function.
8740 (Fx_create_frame): Set line spacing from resources.
8741 (Qline_spacing): New variable.
8742 (syms_of_xfns): Initialize Qline_spacing.
427ec082 8743
cc181e95
GM
8744 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
8745
8746 * buffer.c (init_buffer_once): Handle extra_line_spacing.
8747 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 8748 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
8749 extra_line_spacing from default value.
8750 (init_buffer_once): Initialize default value of extra_line_spacing.
8751
8752 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
8753 and extra3.
8754
8755 * xterm.c (x_produce_glyphs): Remove reference to struct it's
8756 prompt_width. Add extra line spacing.
8757
8758 * term.c (produce_glyphs): Remove reference to struct it's
8759 prompt_width.
8760
8761 * dispextern.h (struct it): Remove member prompt_width, add
8762 extra_line_spacing.
8763
58827478
GM
87642000-04-22 Gerd Moellmann <gerd@gnu.org>
8765
8766 * dispnew.c (update_frame_line): When writing a whole line, make
8767 sure cursor is in the right row afterwards, otherwise a use of
8768 capability `ch' in cmgoto might leave the cursor in the row below.
8769
25a87f42
GM
87702000-04-21 Gerd Moellmann <gerd@gnu.org>
8771
8772 * lisp.h (struct Lisp_Buffer_Cons): Remove.
8773
8774 * keyboard.c (timer_check): Fix typo in comment.
8775
54edf5c2
KH
87762000-04-21 Kenichi Handa <handa@etl.go.jp>
8777
8778 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
8779 name change: ch -> character.
8780
3a64eef5
GM
87812000-04-20 Gerd Moellmann <gerd@gnu.org>
8782
8783 * keyboard.c (echo_message_buffer): New variable.
8784 (echo_now): Set echo_message_buffer to the echo area buffer used
8785 to display the echo.
8786 (cancel_echoing): Reset echo_message_buffer to nil.
8787 (read_char): Code rewritten that handles canceling an echo or
8788 echoing a dash, respectively.
8789
8790 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
8791 directory doesn't exist.
8792
6142fdcb
DL
87932000-04-19 Dave Love <fx@gnu.org>
8794
8795 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
8796 (concat): Don't allow numeric args.
8797 (Fconcat): Doc change.
6142fdcb 8798
ac6b5352
SM
87992000-04-19 Stefan Monnier <monnier@cs.yale.edu>
8800
8801 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
8802 instead define end_match(1|2) more carefully.
8803 Use GET_CHAR_BEFORE_2 for `begline'.
8804
cb9215e4
GM
88052000-04-19 Gerd Moellmann <gerd@gnu.org>
8806
5e3dac3f
GM
8807 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
8808 on 64-bit systems where NULL is defined as `0'.
8809
8810 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
8811 the `variable argument list' to make it work on Alpha.
8812
cb9215e4
GM
8813 * m/alpha.h (_LP64) [!_LP64]: Define.
8814 (ORDINARY_LINK): Define for NetBSD.
8815
8816 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 8817
f532dca0
DL
88182000-04-19 Dave Love <fx@gnu.org>
8819
c750667e
DL
8820 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
8821 change.
8822
8823 * Makefile.in (LIBS): Don't use.
8824 (GETLOADAVG_OBJ): Define again.
8825 (otherobj): Add GETLOADAVG_OBJ.
8826
f532dca0
DL
8827 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
8828
1c7e22fd
GM
88292000-04-18 Gerd Moellmann <gerd@gnu.org>
8830
f6d3257b
GM
8831 * lread.c (read_filtered_event): Cancel and start busy cursor.
8832
427ec082 8833 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
8834 that the per-character metrics may be null.
8835
e10f64e7
GM
88362000-04-17 Gerd Moellmann <gerd@gnu.org>
8837
0daee095
GM
8838 * buffer.c (clone_per_buffer_values): New function.
8839 (Fmake_indirect_buffer): Add optional argument CLONE. Call
8840 clone_per_buffer_values if CLONE is not nil.
8841
e10f64e7
GM
8842 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
8843
38687d43
DL
88442000-04-16 Dave Love <fx@gnu.org>
8845
8846 * Makefile.in: Remove obsolete localcpp stuff.
8847 (GETLOADAVG_OBJ): Don't define.
8848 (obj): Move LIBOBJS...
8849 (otherobj): ... to here.
8850 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
8851 whitespace-only lines after the continuation (Irix).
8852
c21c7262
GM
88532000-04-14 Gerd Moellmann <gerd@gnu.org>
8854
8855 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
8856
8857 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
8858
314767c0
DL
88592000-04-14 Dave Love <fx@gnu.org>
8860
8861 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
8862 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
8863 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
8864 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
8865 NLIST_STRUCT.
8866
8867 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
8868 autoconfiscated HAVE_GETLOADAVG.
8869
8870 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
8871 BROKEN_MKTIME.
8872
a2522dca
GM
88732000-04-14 Gerd Moellmann <gerd@gnu.org>
8874
8875 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
8876 (fill_in_lock_file_name): Avoid existing files that aren't
8877 links.
8878
33744b5d
DL
88792000-04-14 Dave Love <fx@gnu.org>
8880
c21c7262 8881 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
8882 (INTERVAL_SRC): Convert to make variable.
8883 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
8884 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
8885 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
8886 add LIBOBJS.
8887 (SOME_MACHINE_OBJECTS): Remove interval stuff.
8888 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
8889 (shortlisp): Add facemenu, float-sup, frame.
8890 (SOME_MACHINE_LISP): Remove them from here.
8891 (LIBES): Change unused LDLIBS to autoconf LIBS.
8892
8893 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
8894
9d3d5916
KH
88952000-04-14 Kenichi Handa <handa@etl.go.jp>
8896
8897 * composite.c (update_compositions): If FROM and TO are not in a
8898 valid range, do nothing.
8899
198e3c7a
GM
89002000-04-13 Gerd Moellmann <gerd@gnu.org>
8901
8902 * tparam.c (tparam1): Abort when encountering an unknown
8903 `%'-specifier.
8904
8905 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
8906 terminfo.o.
8907
8908 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
8909 as TERMCAP_OBJ.
8910
055a28c9
EZ
89112000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
8912
8913 * fileio.c (a_write): Remove redundant semi-colons.
8914 (e_write): Return -1 if failed to write all the data.
8915 This fixes the changes made at 1999-12-15.
8916
f5c75033
DL
89172000-04-12 Dave Love <fx@gnu.org>
8918
8919 * fns.c (mapcar1): Test for null vals to support mapc.
8920 (Fmapc): New function.
8921
0c3cfc51
EZ
89222000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
8923
8924 * msdos.c (NUM_MOUSE_BUTTONS): Define.
8925 (IT_frame_up_to_date): Support the buffer local value of
8926 cursor-type, if defined.
8927
33465a31
DL
89282000-04-10 Dave Love <fx@gnu.org>
8929
8930 * editfns.c (preceding-char, following-char): Doc fix.
8931
6ed56568
KR
89322000-04-10 Ken Raeburn <raeburn@gnu.org>
8933
8934 * Makefile.in (temacs): Revert 2000-03-12 change.
8935
7cf80d4e
JR
89362000-04-10 Jason Rumney <jasonr@gnu.org>
8937
8938 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
8939
34f3f342
GM
89402000-04-10 Gerd Moellmann <gerd@gnu.org>
8941
1a1b1895
GM
8942 * xdisp.c (setup_echo_area_for_printing): Choose an echo
8943 area buffer, if it's not set up yet.
8944
34f3f342
GM
8945 * indent.c (compute_motion): Set immediate_quit.
8946
be0dbdab
GM
89472000-04-09 Gerd Moellmann <gerd@gnu.org>
8948
c45be9ac
GM
8949 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
8950 variable.
8951 (realize_tty_face): Suppress boldness if colors are the inverse of
8952 the default colors, and tty_suppress_bold_inverse_default_colors_p
8953 is set.
8954 (Ftty_suppress_bold_inverse_default_colors): New function.
8955 (syms_of_xfaces): Defsubr it.
8956
be0dbdab
GM
8957 * buffer.c (Frestore_buffer_modified_p): New function.
8958 (syms_of_buffer): Defsubr it.
8959
e8413c3b
KR
89602000-04-08 Ken Raeburn <raeburn@gnu.org>
8961
87f67317
KR
8962 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
8963 charset id (int) argument, not a charset (Lisp_Object).
8964
e8413c3b
KR
8965 * coding.h (code_convert_string): Declare.
8966 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
8967 object, as the fourth argument to code_convert_string.
8968
8969 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
8970 value.
8971 (Fset_fontset_font): Use EQ to compare lisp objects.
8972
7c752c80
KR
89732000-04-05 Ken Raeburn <raeburn@gnu.org>
8974
c0333abc
KR
8975 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
8976 a pointer that looks like a lisp object.
8977 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
8978 zero, instead see whether it's an integer object, since they can't
8979 have intervals.
8980 (GET_INTERVAL_OBJECT): Simply assign to the destination.
8981
7c752c80
KR
8982 * dispnew.c (allocate_matrices_for_frame_redisplay,
8983 direct_output_forward_char): Use X(U)INT and make_number as needed
8984 to convert between (unsigned) int values and lisp integers.
8985 * keyboard.c (read_key_sequence): Likewise.
8986 * lread.c (substitute_object_recurse): Likewise.
8987 * fns.c (concat, hash_lookup, hash_remove): Likewise.
8988 * minibuf.c (do_completion, Fminibuffer_complete_word,
8989 Fminibuffer_completion_help): Likewise.
8990 * term.c (produce_special_glyphs): Likewise.
8991
8992 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
8993 * print.c (print_preprocess, print_object): Likewise.
8994
8995 * search.c (compile_pattern): Use NILP when checking for nil.
8996
74e49b38
KR
8997 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
8998 __OPTIMIZE__]: Provide a GNU C macro version that handles
8999 lisp-object unions.
9000 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
9001 field, to better cope with ENABLE_CHECKING and calls that modify a
9002 Lisp_Object using its old value.
9003
685e5ed2
GM
90042000-04-04 Gerd Moellmann <gerd@gnu.org>
9005
c407c570
GM
9006 * window.c (compare_window_configurations): Signal an error
9007 if parameters C1 or C2 aren't window configurations.
9008
685e5ed2
GM
9009 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
9010 AFTER_POTENTIAL_GC calls around calls to functions that can
9011 signal an error and thus invoke the debugger.
9012
587a49ab
GM
90132000-04-03 Gerd Moellmann <gerd@gnu.org>
9014
62f20204
GM
9015 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
9016 an error if decoding fails.
9017
587a49ab
GM
9018 * keyboard.c (lispy_mouse_names): Variable removed.
9019 (Vlispy_mouse_stem): New variable.
9020 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
9021 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
9022 for any mouse button number. Increase size of mouse_syms and
9023 button_down_location as needed. Call modify_event_symbol with
9024 different arguments.
9025 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
9026 Call modify_event_symbol with different arguments.
9027 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
9028 for any button number. Call modify_event_symbol with different
9029 arguments.
9030 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
9031 Accept a string for NAME_ALIST_OR_STEM.
9032
9033 * lisp.h (larger_vector): Add prototype.
9034
9035 * fns.c (larger_vector): Make externally visible.
9036
9037 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
9038
2d1675e4
SM
90392000-04-02 Stefan Monnier <monnier@cs.yale.edu>
9040
9041 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
9042 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
9043 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
9044 we are between str1 and str2.
9045 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
9046 (PATFETCH): Use `TRANSLATE'.
9047 (PATFETCH_RAW): Fetch multibyte char if applicable.
9048 (PATUNFETCH): Remove.
9049 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
9050 When writing a char, write it directly into the pattern buffer rather
9051 than going needlessly through a temp char-array.
9052 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
9053 multibyte magic and remove the useless `#ifdef emacs'.
9054 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
9055 buffer.
9056
9057 * regex.h (struct re_pattern_buffer): Make field `multibyte'
9058 conditional on `emacs'.
9059
9060 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
9061
cc2d8c6b
KR
90622000-04-01 Ken Raeburn <raeburn@gnu.org>
9063
9064 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
9065 non-union-type versions of XMARK and friends here, because XMARK
9066 and friends won't work on an integer field if NO_UNION_TYPE is not
9067 defined.
9068 (make_number): Define as a function if it's not defined as a
9069 macro.
9070
09654086
KR
9071 * composite.c (run_composite_function): Use NILP when checking for
9072 nil.
9073 (syms_of_composite): Delete local var NARGS, pass an int as first
9074 argument to Fmake_hash_table.
9075
2387b382
KR
9076 * editfns.c (text_property_stickiness): Use NILP to test
9077 Lisp_Object boolean value.
9078 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
9079 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
9080 problems reading from and changing the same lisp value in an
9081 XSETSTRING call.
9082
27660e89
GM
90832000-04-01 Gerd Moellmann <gerd@gnu.org>
9084
9085 * term.c (TN_no_color_video): New variable.
9086 (term_init): Intitialize TN_no_color_video.
9087 (enum no_color_bit): New enumeration.
9088 (MAY_USE_WITH_COLORS_P): New macro.
9089 (turn_on_face): Use it to determine if attributes may be used
9090 combined with colors.
9091
3578db3c
KR
90922000-04-01 Ken Raeburn <raeburn@gnu.org>
9093
9094 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
9095 with int lvalues via casts; instead, just yield lisp object
9096 lvalues.
9097 (enlarge_window): Variable sizep now points to Lisp_Object. Use
9098 proper accessor macros.
9099 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
9100 (grow_mini_window): Fix typo getting int value of root->height.
9101
6fc556fd
KR
9102 * xdisp.c (compute_string_pos): Fix order of arguments to
9103 string_pos_nchars_ahead.
9104 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
9105 count arg to variable-arg routines like Frun_hook_with_args and
9106 Fformat.
587a49ab
GM
9107 (back_to_previous_visible_line_start)
9108 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
9109 fixed-arg routines like Fget_char_property and Fmake_string.
9110 (reconsider_clip_changes): Use XINT when comparing integer lisp
9111 objects, or passing them as int arguments.
587a49ab
GM
9112 (mark_window_display_accurate, insert_left_trunc_glyphs)
9113 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
9114 storing or passing integer values as lisp objects.
9115 (set_cursor_from_row, highlight_trailing_whitespace): Use
9116 INTEGERP, not implicit test against zero, for glyph object.
9117 (try_window_id): Don't use make_number when we want an int value.
9118
9119 * xfaces.c (xlfd_symbolic_value): Make last argument a
9120 Lisp_Object, to be consistent with callers.
9121 (Fbitmap_spec_p): Use XINT to get numeric value of height.
9122 (lface_hash): Apply XFASTINT to lisp values before folding in.
9123
9124 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
9125 fill in window width and height. Pass an int, not a lisp object,
9126 as first arg to Finsert.
9127
6e7b2457
GM
91282000-04-01 Gerd Moellmann <gerd@gnu.org>
9129
610d841e
GM
9130 * xfaces.c (realize_basic_faces): Block input while realizing
9131 the faces.
9132
6e7b2457
GM
9133 * keyboard.c (lispy_mouse_names): Add additional mouse names.
9134
9135 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
9136
aa110c0c
GM
91372000-03-31 Gerd Moellmann <gerd@gnu.org>
9138
9139 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 9140 or ASCII, handle case that per-char metric is null.
aa110c0c 9141
8801a864
KR
91422000-03-30 Ken Raeburn <raeburn@gnu.org>
9143
c6129d7e
KR
9144 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
9145
8801a864
KR
9146 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
9147 XSUBR, XBUFFER): Verify correct object type before returning
9148 pointer, using eassert.
9149 * frame.h (XFRAME): Likewise.
9150
9151 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
9152 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
9153 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
9154 type.
9155 * data.c (set_internal): Likewise.
9156 * dispextern.h (WINDOW_WANTS_MODELINE_P,
9157 WINDOW_WANTS_HEADER_LINE_P): Likewise.
9158 * fileio.c (auto_save_1): Likewise.
9159 * insdel.c (check_markers): Likewise.
9160 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
9161 * undo.c (record_insert): Likewise.
9162 * vmsproc.c (child_sig): Likewise.
9163 * window.c (unshow_buffer, window_loop): Likewise.
9164 * xterm.c (x_erase_phys_cursor): Likewise.
9165
8e7af858
GM
91662000-03-30 Gerd Moellmann <gerd@gnu.org>
9167
9168 * xfns.c (free_image_cache): Free the cache structure itself
9169 last, after all its members have been freed.
9170
9171 * lisp.h (xstrdup): Add prototype.
9172
9173 * alloc.c (xstrdup): Moved here from xfaces.c.
9174 (allocating_for_lisp): Variable removed.
9175 (lisp_malloc): Block input around the calls to malloc and
9176 mem_insert.
9177
9178 * xfaces.c (realize_tty_face): Use find_symbol_value instead
9179 of Fsymbol_value.
9180 (xstrdup): Moved to alloc.c.
9181
e0b8c689
KR
91822000-03-29 Ken Raeburn <raeburn@gnu.org>
9183
b96f9fb7
KR
9184 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
9185
9186 * emacs.c (main): Fix sense of no-loadup test.
9187
e0b8c689
KR
9188 * config.in (ENABLE_CHECKING): Undef.
9189
9190 * lisp.h (struct interval): Replace "parent" field with a union of
9191 interval pointer and Lisp_Object; add new bitfield to use as
9192 discriminant. Change other flag fields to bitfields.
9193 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
9194 is defined and the supplied test fails, print a message and
9195 abort.
9196 (eassert): New macro. Use CHECK to provide an assert-like
9197 facility.
9198
9199 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
9200 pointers; abort if the value looks like a lisp object.
9201 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
9202 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
9203 Modify for new interval parent definition.
9204
9205 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
9206 UNMARK_BALANCE_INTERVALS): Update references that need an
9207 addressable lisp object in the interval structure.
9208 (die): New function.
9209 (suppress_checking): New variable.
9210
9211 * intervals.c (interval_start_pos): Just return 0 if there's no
9212 parent object.
9213
f83c5440
GM
92142000-03-29 Gerd Moellmann <gerd@gnu.org>
9215
9216 * lread.c (read1): Accept `.' (period) as symbol start like in CL
9217 and earlier Emacs versions.
9218
9219 * keyboard.c (Ftop_level): Cancel busy-cursor.
9220
9221 * eval.c (call_debugger): Cancel busy-cursor.
9222
fdce64ff
KH
92232000-03-29 Kenichi Handa <handa@etl.go.jp>
9224
9225 * search.c (Freplace_match): Adjust multibyteness of the current
9226 buffer and NEWTEXT. Free allocated memory before signaling an
9227 error.
9228
f6a3f532
SM
92292000-03-28 Stefan Monnier <monnier@cs.yale.edu>
9230
9231 * regex.c (analyse_first): New function obtained by ripping out most
9232 of re_compile_fastmap and generalizing it a little bit so that it
9233 can also just return whether a given (sub)pattern can match the empty
9234 string or not.
9235 (regex_compile): Use `analyse_first' to decide whether the loop-check
9236 needs to be done or not for *, +, *? and +? (the loop check is costly
9237 for non-greedy repetition).
9238 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
9239
e9b309ac
DL
92402000-03-28 Dave Love <fx@gnu.org>
9241
bb15bd9a
DL
9242 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
9243 alpha.
9244
e9b309ac
DL
9245 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
9246
ed0767d8
SM
92472000-03-27 Stefan Monnier <monnier@cs.yale.edu>
9248
9249 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
9250 an expression.
9251 (enum re_opcode_t): Update description of succeed_n.
9252 (PATFETCH): Always define.
9253 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
9254 operators, char classes, shy-groups and intervals).
9255 Optimize special cases of intervals so as to only use succeed_n and
9256 jump_n when really needed.
9257 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
9258 that we don't have to handle the special cases any more.
9259 Simplify on_failure_jump handling as well.
9260
e11e7e46
JR
92612000-03-28 Jason Rumney <jasonr@gnu.org>
9262
9263 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
9264
88faab89
GM
92652000-03-27 Gerd Moellmann <gerd@gnu.org>
9266
182ff242
GM
9267 * s/freebsd.h (GC_SETJMP_WORKS): Define.
9268
9269 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 9270
182ff242
GM
9271 * alloc.c (mark_maybe_object): New function.
9272 (mark_memory): Use it.
9273 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
9274 (setjmp_tested_p, longjmp_done): New variables.
9275 (test_setjmp): New function.
9276 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
9277 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
9278
c1005d06
GM
9279 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
9280 to DEC_TEXT_POS and INC_TEXT_POS.
9281
9282 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
9283 with parameter MULTIBYTE_P.
9284
427ec082 9285 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
9286 MULTIBYTE_P.
9287
7439e5b9 9288 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
9289 buffers because it looks for multibyte character byte sequences
9290 which don't exist in unibyte text.
7439e5b9 9291
d9c545da
GM
9292 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
9293
11fd416e 9294 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
9295 [DEBUG_X_COLORS]: New functions.
9296 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
9297
9298 * xfns.c (x_set_cursor_color): Get color reference counts right.
9299
9300 * xterm.c (x_copy_color): New function.
9301 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
9302
9303 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
9304 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
9305 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
9306 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
9307 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
9308 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
9309 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
9310 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
9311 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
9312 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
9313
11fd416e
GM
9314 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
9315 names for handling per-buffer variables.
d9c545da
GM
9316
9317 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
9318 instead of MAX_BUFFER_LOCAL_VARS.
9319 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
9320
9321 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
9322
88faab89
GM
9323 * xfns.c (x_specified_cursor_type): New function.
9324 (x_set_cursor_type): Use it.
9325
9326 * buffer.h (struct buffer): Add cursor_type.
9327
d80f42b7
SM
93282000-03-26 Stefan Monnier <monnier@cs.yale.edu>
9329
9330 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 9331 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 9332 opcode.
d80f42b7
SM
9333 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
9334 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
9335 executing it as well as when popping it off the stack to find infinite
9336 loops in non-greedy repetition operators.
9337
89e80928
GM
93382000-03-26 Gerd Moellmann <gerd@gnu.org>
9339
3d4ff2dd
GM
9340 * doc.c (Qfunction_documentation): New variable.
9341 (syms_of_doc): Initialize Qfunction_documentation.
9342 (Fdocumentation): If FUNCTION is a symbol with non-nil
9343 `function-documentation' property, return a documentation derived
9344 from that.
9345
bd96bd79
GM
9346 * buffer.c (syms_of_buffer): Add default-cursor-type.
9347 (init_buffer_once): Don't let cursor_type have a local value
9348 in every buffer.
9349
19d1bc27
GM
9350 * xterm.c (x_display_and_set_cursor): Choose cursor depending
9351 on buffer-local value of cursor_type.
9352 (x_draw_bar_cursor): Add parameter WIDTH.
9353
9354 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
9355 (init_buffer_once): Set default cursor_type value to t.
9356 Mark cursor_type as local everywhere.
9357 (syms_of_buffer): New per-buffer variable cursor-type.
9358
89e80928
GM
9359 * buffer.h (struct buffer): Remove member local_var_flags,
9360 add local_flags.
9361 (MAX_BUFFER_LOCAL_VARS): New macro.
9362 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
9363 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
9364 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
9365 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
9366
9367 * print.c (print_object): Use new macros for per-buffer
9368 variables.
9369
9370 * category.c (Fset_category_table): Use new macros for per-buffer
9371 variables.
9372
9373 * buffer.c (buffer_permanent_local_flags): Make a char array.
9374 (max_buffer_local_idx): New variable.
9375 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
9376 for new handling of per-buffer variables.
9377 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
9378 (init_buffer_once): Initialize per-buffer vars differently.
9379 Set max_buffer_local_idx.
9380
9381 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
9382 variables.
9383
9384 * lread.c (defvar_per_buffer): Use new macros for per-buffer
9385 variables.
9386
9387 * data.c (do_symval_forwarding, store_symval_forwarding)
9388 (find_symbol_value, set_internal, default_value, Fset_default)
9389 (Fkill_local_variable, Flocal_variable_p): Use new macros for
9390 per-buffer variables.
9391
9392 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
9393
9a0dd3dc
GM
93942000-03-24 Gerd Moellmann <gerd@gnu.org>
9395
b68c375f
GM
9396 * xterm.c (x_term_init): Unblock input around call1 of
9397 Qvendor_specific_keysyms.
9398
9a0dd3dc
GM
9399 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
9400 (find_defun_start): Consider an open parenthesis in column 0
9401 a defun start only if open_paren_in_column_0_is_defun_start is set.
9402 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
9403
7973e637
SM
94042000-03-24 Stefan Monnier <monnier@cs.yale.edu>
9405
9406 * eval.c (Fautoload): Add entry in load-history (if after dump).
9407 * lread.c (load-history): Update docstring.
9408
39210e90
GM
94092000-03-24 Gerd Moellmann <gerd@gnu.org>
9410
9411 * indent.c (Fvertical_motion): Always use the current buffer.
9412 Temporarily change the window's buffer, if necessary.
9413
72db3ab5
GM
94142000-03-23 Gerd Moellmann <gerd@gnu.org>
9415
9416 * xterm.c (fast_find_position): Make sure not to consider rows
9417 not visible in the window.
9418
990b2375
SM
94192000-03-22 Stefan Monnier <monnier@cs.yale.edu>
9420
9421 * regex.c (enum syntaxcode): Provide default for non-Emacs.
9422 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
9423
ff4df011
JR
94242000-03-22 Jason Rumney <jasonr@gnu.org>
9425
9426 * w32menu.c (single_submenu): Set help string to NULL if none.
9427 (w32_menu_show): Set help string correctly.
9428 (add-menu-item): Set help string in MIIM_DATA for menu item.
9429 Load SetMenuItemInfoA explicitly.
9430 (w32_menu_display_help): New function.
427ec082 9431
ff4df011
JR
9432 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
9433 (QCdata): Moved to xdisp.c.
9434
9435 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
9436 (Vw32_charset_to_codepage_alist): Removed.
9437 (Vw32_charset_info_alist): New variable.
9438 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
9439 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
9440 greek, hebrew, thai, johab, mac, unicode]): New symbols.
9441 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
9442 with TODO comment.
9443 (w32_codepage_for_font): Use Vw32_charset_info_alist.
9444 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
9445 Define Vw32_charset_info_alist and w32_charset symbols.
9446
94472000-03-22 Jason Rumney <jasonr@gnu.org>
9448
9449 * makefile.nt (w32bdf.obj): Update dependencies.
9450
9451 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
9452
9453 * w32fns.c: Include fontset.h after dispextern.h.
9454 (Fx_create_frame): Do not create fontset.
9455 (w32_load_system_font): Doc fix.
9456 (Fx_close_connection): Free full_name if it is not shared.
9457
9458 * w32term.c: Include fontset.h after dispextern.h.
9459 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
9460 updated.
9461 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
9462 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
9463 (w32_font_is_double_byte): New function, needs body.
9464 (x_append_glyph): Set glyph->glyph_not_available_p.
9465 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
9466 it->charset. If it->multibyte_p is zero and it->c is a multibyte
9467 character, convert it to a unibyte character.
9468 (struct glyph_string): Delete member `charset'.
9469 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
9470 calculating it is found.
9471 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
9472 the case that per char metric is not available correctly.
9473 (x_fill_glyph_string): Handle the case that the specific glyph is
9474 not available correctly.
9475 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
9476 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
9477 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
9478 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
9479 fontset. Don't call FS_LOAD_FONT.
9480
439d5cb4
KR
94812000-03-22 Ken Raeburn <raeburn@gnu.org>
9482
9483 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
9484 (INT_LISPLIKE): New macro.
9485 (NULL_INTERVAL_P): Use it.
9486 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
9487 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
9488 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
9489
9490 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
9491 explicit references to "parent" field of struct interval and
9492 associated unclean type conversions.
9493 * intervals.c (create_root_interval, root_interval, rotate_right,
9494 rotate_left, balance_possible_root_interval, split_interval_right,
9495 split_interval_left, interval_start_pos, find_interval,
9496 next_interval, previous_interval, update_interval,
9497 adjust_intervals_for_insertion, delete_node, delete_interval,
9498 adjust_intervals_for_deletion, merge_interval_right,
9499 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
9500 copy_intervals_to_string): Likewise.
9501 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
9502 Likewise.
9503 * syntax.c (update_syntax_table): Likewise.
9504
9505 * intervals.c (reproduce_tree_obj): New function, like
9506 reproduce_tree but takes a Lisp_Object for the parent. Declare
9507 with prototype.
9508 (graft_intervals_into_buffer): Use it when appropriate.
9509 (reproduce_tree): Declare with prototype.
9510 (balance_possible_root_interval): Check that the parent is a lisp
9511 object before trying to examine its type.
9512
ee1c5b21
GM
95132000-03-22 Gerd Moellmann <gerd@gnu.org>
9514
9515 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
9516 as strings only if both are known to be strings.
9517
9518 * s/openbsd.h (LIBS_TERMCAP): Undef.
9519
1fb352e0
SM
95202000-03-21 Stefan Monnier <monnier@cs.yale.edu>
9521
9522 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
9523 definitions for non-Emacs compilation.
9524 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
9525 outside of `#ifdef emacs'.
9526 (print_partial_compiled_pattern): Update.
9527 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
9528 (re_compile_fastmap): Merge handling of charset and charset_not (for
9529 emacs and non-emacs compilation as well).
9530 Similarly for (not)categoryspec and (not)syntaxspec.
9531 Don't use the fastmap when reaching `anychar' since the added
9532 complexity is not justified.
9533 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
9534 and (not)syntaxspec. Merge (not)categoryspec.
9535
fdaa1f77
KH
95362000-03-22 Kenichi Handa <handa@etl.go.jp>
9537
ff1a0d8e
KH
9538 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
9539 FACE_FOR_CHAR): Define them differently for the configuration of
9540 --without-x.
fdaa1f77 9541
d152fb46
DL
95422000-03-21 Dave Love <fx@gnu.org>
9543
9544 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
9545 doc string.
9546
d2cafc8c
GM
95472000-03-21 Gerd Moellmann <gerd@gnu.org>
9548
9549 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
9550 (lface_fully_specified_p): Don't check contents of
9551 LFACE_FONT_INDEX because that attribute is optional.
9552 (realize_x_face): Remove now unwarranted xassert.
9553
9111d4b5
KH
95542000-03-21 Kenichi HANDA <handa@etl.go.jp>
9555
9556 The following changes are to make font selection based on
9557 characters, not charset. In addition, they recover fontset
9558 facilities while utilizing the new font selection mechanism.
9559
6c4bfdc0
KH
9560 * Makefile.in (fontset.o): Depend on dispextern.h.
9561
9562 * alloc.c (mark_face_cache): Don't mark face->registry.
9563
9111d4b5
KH
9564 * dispextern.h (struct glyph): New member glyph_not_available_p.
9565 Use 22 bits for face_id.
9566 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
9567 (struct face): Delete member registry, new member ascii_face.
9568 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
9569 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
9570 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
9571 (struct it): Delete member charset, new member
9572 glyph_not_available_p.
9573
9574 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
9575 (struct fontset_info, struct fontset_data): Structs removed.
9576 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
9577 Vglobale_fontset_alist, font_idx_temp): Externs removed.
9578 (fs_load_font, fs_query_fontset): Adjusted for new argument.
9579 (fs_free_face_fontset, fontset_font_pattern,
9580 face_suitable_for_char_p, face_for_char,
9581 make_fontset_for_ascii_face): Extern them.
9582 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
9583 (FS_LOAD_FACE_FONT): New macro.
9584
9585 * fontset.c: All codes rewritten or adjusted for the change of
9586 fontset implementation. Now fontset is represented by char table.
9587 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
9588 removed.
9589 (my_strcasecmp): Function removed.
9590 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
9591 variables.
9592 (AREF, ASIZE): New macros.
9593 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
9594 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
9595 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
9596 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
9597 fontset_id_valid_p, font_family_registry, fontset_name,
9598 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
9599 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
9600 New functions.
9601 (fs_load_font): New arg FACE. Caller changed.
9602 (fs_query_fontset): Argument changed. Caller changed.
9603 (Fquery_fontset): call fs_query_fontset.
9604 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
9605 Functions removed.
9606 (clear_fontset_elements, check_registry_encoding,
9607 check_fontset_name): New functions.
9608 (syms_of_fontset): Set char-table-extra-slots property of fontset
9609 to 3. Staticpro and initialize Vfontset_table and
9610 Vdefault_fontset. Defsubr fontset_font and fontset_list.
9611
9612 * frame.h (struct frame): Member `fontset_data' removed.
9613 (FRAME_FONTSET_DATA): Macro removed.
9614
9615 * frame.c (make_frame): Don't allocate f->fontset_data.
9616 (Fdelete_frame): Don't free f->fontset_data.
9617
6c4bfdc0
KH
9618 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
9619
9111d4b5
KH
9620 * xdisp.c (charset_at_position): Function removed.
9621 (init_iterator): Don't set member charset of struct `it'.
9622 (handle_face_prop, reseat_to_string, set_iterator_to_next,
9623 next_element_from_display_vector, insert_left_trunc_glyphs):
9624 Likewise.
9625 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
9626 FACE_FOR_CHARSET.
9627 (get_next_display_element, append_space,
9628 extend_face_to_end_of_line): Likewise.
9629
9630 * xfaces.c (Qx_charset_registry, Vface_default_registry):
9631 Variables removed.
9632 (clear_font_table, frame_update_line_height, load_face_font):
9633 Adjusted for the change of fontset implementation.
9634 (load_face_fontset_font): Function removed.
9635 (pixel_point_size): New function.
9636 (font_list): Argument type changed. Caller changed.
9637 (LFACE_FONT): New macro.
9638 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
9639 (set_lface_from_font_name): Type of arg FONTNAME is changed to
9640 Lisp_Object. Determine the font name by actually loading a font
9641 by the specified pattern. Set LFACE_FONT (lface) to the specified
9642 pattern. Even if a font is not found, don't try alternatives.
9643 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
9644 (set_font_frame_param): If `font' is specified in lface, use it.
9645 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
9646 (lface_same_font_attributes_p): Likewise.
9647 (make_realized_face): Arguent changed. Caller changed. Set
9648 face->ascii_face to face itself.
9649 (free_realized_face): Free face->fontset if face is for ASCII.
9650 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
9651 deduce_unibyte_registry, x_charset_registry): Functions removed.
9652 (free_realized_multibyte_face): New function.
9653 (lookup_face, lookup_named_face, lookup_derived_face): Argument
9654 changed. Caller changed.
9655 (try_font_list): Argument type changed.
9656 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
9657 (choose_face_font): Argument changed. Handle fontset properly.
9658 (choose_face_fontset_font): Function removed.
9659 (realize_default_face, realize_named_face): Don't remove the
9660 former face here.
9661 (realize_face): Argument changed. Caller changed. Remove face
9662 with the arg former_face_id in advance. Load font for the new
9663 face.
9664 (realize_x_face): Argument changed. Caller changed. For a
9665 multibyte character, share fontset with base_face. For a single
9666 byte character, make a new realized fontset. Don't load a font
9667 here.
9668 (realize_tty_face): Argument changed. Caller changed.
9669 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
9670 (face_at_buffer_position): Don't check multibyte_p for returning
9671 DEFAULT_FACE_ID.
9672 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
9673 FACE_SUITABLE_FOR_CHARSET_P.
9674 (syms_of_xfaces): Remove code for Qx_charset_registry and
9675 Vface_default_registry.
9676
6c4bfdc0
KH
9677 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
9678 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
9679 (x_per_char_metric): Don't try FONT->default_char. Even if
9680 pcm->width is zero, glyph bits may exist.
9681 (x_encode_char): Always initialize char2b->byte1.
9682 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
9683 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
9684 changed.
9685 (x_append_glyph): Set glyph->glyph_not_available_p.
9686 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
9687 it->charset. Handle the case that per char metric is not
9688 available. If it->multibyte_p is zero and it->c is a multibyte
9689 character, convert it to a unibyte character.
9690 (struct glyph_string): Delete member `charset'.
9691 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
9692 the case that per char metric is not available correctly.
9693 (x_fill_glyph_string): Handle the case that the specific glyph is
9694 not available correctly.
9695 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
9696 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
9697 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
9698 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
9699 fontset. Don't call FS_LOAD_FONT.
9700
9701 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
9702 (x_create_tip_frame): Likewise.
9703 (Fx_close_connection): Free full_name of font_info.
9704
9705 * fns.c (optimize_sub_char_table): New function.
9706 (Foptimize_char_table): New function.
9707 (syms_of_fns): Defsubr Soptimize_char_table.
9708
b33dd3b0
GM
97092000-03-20 Gerd Moellmann <gerd@gnu.org>
9710
9711 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
9712 only if buffer is displayed in some window.
9713
9714 * xdisp.c (handle_single_display_prop): Initialize local `value'.
9715 (try_window_reusing_current_matrix): Don't call scroll run
9716 function if run's current and desired position are the same;
9717 this prevents cursor flickering.
9718
4e8a9132
SM
97192000-03-19 Stefan Monnier <monnier@cs.yale.edu>
9720
9721 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
9722
9723 * regex.c (RE_STRING_CHAR): New macro.
9724 (GET_CHAR_AFER_2): Remove.
9725 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
9726 (enum re_opcode_t): Remove on_failure_jump_exclusive.
9727 (print_partial_compiled_pattern, re_compile_fastmap)
9728 (re_match_2_internal): Remove on_failure_jump_exclusive.
9729 (regex_compile): Turn optimizable P+ loops into PP*, so that the
9730 optimization only need to work for * (ie. can use of_keep_string_jump).
9731 Remove the special case for .*\n since it is now covered by the general
9732 optimization.
9733 (re_search_2): Don't bother with `room'.
9734 (skip_one_char): New function.
9735 (skip_noops): Simplify since `memory' is not needed any more.
9736 (mutually_exclusive_p): Restructure slightly to use `switch' and
9737 add handling for "all" remaining cases.
9738 (re_match_2_internal): Change on_failure_jump_smart to use
9739 on_failure_keep_string_jump (and redirect the end-of-loop jump)
9740 rather than on_failure_jump_exclusive.
9741
2136fdd4
GM
97422000-03-19 Gerd Moellmann <gerd@gnu.org>
9743
9744 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
9745 number of bits per RGB because it's everywhere used as the depth
9746 of the visual.
9747
9748 * term.c (calculate_costs): Remove code dealing with X frames.
9749
18e21ce8 97502000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
9751
9752 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
9753
d7b511c4
GM
97542000-03-18 Gerd Moellmann <gerd@gnu.org>
9755
9756 * lread.c (read_integer): Unread the last char not consumed.
9757
16b5d424
GM
97582000-03-17 Gerd Moellmann <gerd@gnu.org>
9759
9760 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 9761 which are in the process of being deleted.
16b5d424 9762
1fa28578
GM
97632000-03-16 Gerd Moellmann <gerd@gnu.org>
9764
83488cce
GM
9765 * Makefile.in (mostlyclean): Add `*.core'.
9766 (clean): Add `bootstrap-emacs'.
9767
1fa28578
GM
9768 * lread.c (read_integer): New function.
9769 (read1): Support read syntax #o, #x, #b, #r.
9770
99633e97
SM
97712000-03-15 Stefan Monnier <monnier@cs.yale.edu>
9772
1fa28578
GM
9773 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
9774 make sure POINTER_TO_OFFSET gives the same value before and after
9775 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
9776 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
9777 (debug): Now only active if > 0 rather than if != 0.
9778 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
9779 (print_partial_compiled_pattern): Add missing `succeed' case. Use
9780 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
9781 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
9782 (store_op1, store_op2, insert_op1, insert_op2)
9783 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
9784 (group_in_compile_stack): Move to after its arg's types are
9785 declared and add a prototype.
99633e97 9786 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
9787 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
9788 wrapper.
99633e97 9789 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
9790 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
9791 indentation of the greedy-op and shy-group code.
99633e97
SM
9792 (at_(beg|end)line_loc_p): Fix argument's types.
9793 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
9794 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
9795 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
9796 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
9797 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
9798 QUIT unconditionally.
99633e97 9799
699238d9
GM
98002000-03-15 Gerd Moellmann <gerd@gnu.org>
9801
9802 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
9803 a sole completion.
9804
9805 * process.c (send_process): Add a hint that the function
9806 can call Lisp code to its comment.
9807
9808 * lread.c (load_dangerous_libraries): New variable.
9809 (Vbytecomp_version_regexp): New variable.
9810 (safe_to_load_p): New function.
9811 (Fload): Handle files not compiled with Emacs specially.
9812 (syms_of_lread): New Lisp variable load-dangerous-libraries.
9813
34e23e5a
GM
98142000-03-14 Gerd Moellmann <gerd@gnu.org>
9815
9c763cca
GM
9816 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
9817
9818 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
9819 support functions only if HAVE_X11R6_XIM is defined.
9820 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
9821
9822 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
9823
9824 * xfns.c (X_I18N_INHIBITED): Don't define.
9825 (create_frame_xic): Remove conditional compilation on
9826 X_I18N_INHIBITED.
9827 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
9828
9829 * config.in (HAVE_X_I18N): Moved here from xterm.h.
9830 (HAVE_X11R6_XIM): Define.
9831
9832 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
9833
34e23e5a
GM
9834 * xterm.c (x_term_init): Add support for X resource `synchronous'.
9835 If set, call XSynchronize.
9836
66f0296e
SM
98372000-03-13 Stefan Monnier <monnier@cs.yale.edu>
9838
34e23e5a
GM
9839 * regex.c: Declare a new type `re_char' used throughout the code
9840 for the string char type. It's `const unsigned char' to match the
9841 rest of Emacs. Consistently make sure all pointers to strings use
9842 it and make sure all pointers into the pattern use `unsigned
9843 char'.
66f0296e 9844 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
9845 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
9846 code duplication.
66f0296e
SM
9847
9848 * charset.h (GET_CHAR_AFTER_2): Remove.
9849 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
9850
854a025c
KR
98512000-03-12 Ken Raeburn <raeburn@gnu.org>
9852
9853 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
9854 variable before the invocation of YMF_PASS_LDFLAGS, in case both
9855 of them try to use backquotes.
9856
b9d2c7e2
DL
98572000-03-12 Dave Love <fx@gnu.org>
9858
9859 * unexelf.c: Restore changes of 1999-10-19.
9860 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
9861 fix its type and alignment; copy it from current process.
9862
5e5dff44
GM
98632000-03-12 Gerd Moellmann <gerd@gnu.org>
9864
9b2f3c38
GM
9865 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
9866 has been found. Fix bug not computing timer's predecessor.
9867
427ec082 9868 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
9869 file name.
9870
e1cff360
GM
9871 * window.c (Fsave_window_excursion): Doc fix.
9872
5e5dff44
GM
9873 * xfns.c (x_defined_color): Rewritten to use
9874 x_allocate_nearest_color.
9875
e411ce4b
EZ
98762000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
9877
9878 * msdos.c (vga_installed): New function, code moved from
9879 dos_set_window_size.
9880 (Qbar, Qcursor_type, outside_cursor): New variables.
9881 (syms_of_msdos): Intern and staticpro them.
9882 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
9883 shape used outside Emacs when called for the first time.
9884 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
9885 cursor shape used outside Emacs.
9886 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
9887 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
9888 type has changed.
9889 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
9890 parameters specify the cursor. Make qreverse a global
9891 variable (renamed to Qreverse).
9892
80460654
GM
98932000-03-09 Gerd Moellmann <gerd@gnu.org>
9894
9895 * fns.c (Fy_or_n_p): Cancel busy-cursor.
9896
95cd4c40
SM
98972000-03-08 Stefan Monnier <monnier@cs.yale.edu>
9898
9899 This is a big redesign of failure-stack and register handling, prompted
9900 by bugs revealed when trying to add shy-groups. Overall, what happened
9901 is that loops are now structured a little differently, groups can be
9902 shy and the code is a little simpler.
9903
9904 * regex.h: Update the copyright.
9905 (RE_SHY_GROUPS): New value.
9906 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
9907 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
9908
80460654
GM
9909 * regex.c (enum re_opcode_t): Remove jump_past_alt,
9910 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
9911 on_failure_jump_(exclusive, loop and smart). Also fix the comment
9912 for (start|stop)_memory since they now only take one argument (the
9913 second has becomes unnecessary).
9914 (print_partial_compiled_pattern): Adjust for changes in
9915 re_opcode_t.
9916 (print_compiled_pattern): Use %ld to printf long ints and flush to
9917 make debugging a little easier.
95cd4c40
SM
9918 (union fail_stack_elt): Make the integer unsigned.
9919 (struct fail_stack_type): Add a `frame' element.
9920 (INIT_FAIL_STACK): Init `frame' as well.
9921 (POP_PATTERN_OP): New macro for re_compile_fastmap.
9922 (DEBUG_PUSH, DEBUG_POP): Remove.
9923 (NUM_REG_ITEMS): Remove.
9924 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
9925 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
9926 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 9927 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
9928 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
9929 macros.
9930 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
9931 address pushed is not the destination of the jump but the source
9932 of it instead.
95cd4c40
SM
9933 (NUM_FAILURE_ITEMS): Remove.
9934 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
9935 registers before the actual failure point). Don't hardcode any
9936 meaning for str==NULL anymore.
95cd4c40 9937 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
9938 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
9939 Remove.
95cd4c40
SM
9940 (REG_UNSET_VALUE): Use NULL (why not?).
9941 (compile_range): Remove declaration since it doesn't exist.
9942 (struct compile_stack_elt_t): Remove inner_group_offset.
9943 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
9944 (regex_grow_registers): Remove dead code.
9945 (FIXUP_ALT_JUMP): New macro.
80460654
GM
9946 (regex_compile): Add shy-groups Change loops to use
9947 on_failure_jump_smart&jump instead of
9948 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
9949 initial (dummy_failure_)jump. Remove c1_base (looks like unused
9950 variable to me). Use `jump' instead of `jump_past_alt' and don't
9951 bother with push_dummy_failure in alternatives since it is now
9952 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
9953 emacs' for (re)allocating the stack.
9954 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
9955 from loop when bufp->can_be_null rather than jumping to `done'.
9956 Avoid jumping backwards so as to ensure termination. Use
9957 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
9958 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 9959 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
9960 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
9961 improve mutually_exclusive_p to handle ".+\n".
9962 (lowest_active_reg, highest_active_reg,
9963 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
9964 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
9965 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
9966 variables. Push register (in `start_memory') on the stack rather
9967 than storing it in old_reg(start|end). Remove the cycle detection
9968 from `stop_memory', replaced by the use of on_failure_jump_loop
9969 for greedy loops. Add code for the new on_failure_jump_<foo>.
9970 Remove ad-hoc code in `on_failure_jump' to push more registers in
9971 the case of a loop. Take out code from `maybe_pop_jump' into
9972 separate functions and adapt it to the semantics of
9973 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
9974 and push_dummy_failure. Remove dummy_failure handling and
9975 handling of `failures to jump to on_failure_jump' (this last one
9976 was already dead code, it seems).
9977 (group_match_null_string_p, alt_match_null_string_p)
9978 (common_op_match_null_string_p): Remove.
95cd4c40 9979
7397acc4
DL
99802000-03-08 Dave Love <fx@gnu.org>
9981
9982 * config.in: Don't depend on __STDC__ for volatile.
9983 Add POINTER_TYPE, PTR, PROTOTYPES.
9984
9985 * hftctl.c, strftime.c: Use PROTOTYPES.
9986 * eval.c (find_handler_clause): Likewise.
9987
9988 * mem-limits.h: Use POINTER_TYPE.
9989
9990 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
9991 (memory_warnings): Declare using POINTER_TYPE.
9992
5e91ff9e
GM
99932000-03-08 Gerd Moellmann <gerd@gnu.org>
9994
feab4fba
GM
9995 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
9996
25edb08f
GM
9997 * xdisp.c (display_echo_area): Temporarily inhibit garbage
9998 collection.
9999
5e91ff9e
GM
10000 * xfns.c: Remove obsolete code in #if 0.
10001 (Fx_focus_frame): New function.
10002
a735b7e1
KH
100032000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
10004
10005 * coding.c (coding_category_name): Add coding-category-utf-8,
10006 coding-category-utf-16-be, coding-category-utf-16-le.
10007 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
10008 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
10009 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
10010 (detect_coding_utf_8): New function.
10011 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
10012 UTF_16_LOW_SURROGATE_P): New macros.
10013 (detect_coding_utf_16): New function
10014 (detect_coding_mask): When priorities are specified, skip any
10015 categories that have `nil' coding-system. Fix bug of returning
10016 wrong mask when PRIORITIES is specified and detect_coding_XXX()
10017 returns a mask not set in PRIORITIES.
10018 (detect_eol_type_in_2_octet_form): New function.
10019 (detect_eol): selects detect_eol_type_XXX to call according to
10020 cooding->category_idx.
10021 (detect_coding_system): Remove `nil' coding-system in the result.
10022 (Fupdate_coding_systems_internal): Update all coding-categories.
10023
10024 * coding.h (CODING_CATEGORY_IDX_UTF_8,
10025 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
10026 macros.
10027 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
10028 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
10029 CODING_CATEGORY_IDX_UTF_16_LE.
10030 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
10031 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
10032 (CODING_CATEGORY_MASK_ANY): Include the above macros.
10033 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
10034
9994cc69
GM
100352000-03-07 Gerd Moellmann <gerd@gnu.org>
10036
e9b4e5ff
GM
10037 * doc.c (Fdocumentation_property): If value is not a string,
10038 and doesn't refer to etc/DOC, evaluate it to obtain a string.
10039
f7daf1e1
GM
10040 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
10041 close the display with XtCloseDisplay. This caused a bus error
10042 on OpenWindows.
10043
9994cc69
GM
10044 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
10045 complete but not unique.
10046
4336c705
GM
100472000-03-06 Gerd Moellmann <gerd@gnu.org>
10048
18bb0684
GM
10049 * process.c (send_process): Remove local variable `procname' that
10050 might become invalid when a GC happens. Instead, access the
10051 process name slot directly.
10052
4336c705
GM
10053 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
10054 orig_height if set.
10055
10056 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
10057 orig_height if set.
10058
515d0d0e
EZ
100592000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
10060
10061 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
10062 glyph matrices have been freed.
10063
100b3cbb
GM
100642000-03-05 Gerd Moellmann <gerd@gnu.org>
10065
50df5e5a 10066 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 10067 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
10068
10069 * xfns.c (QCdata): Moved to xdisp.c.
10070
10071 * xdisp.c (QCdata): Moved here from xfns.c.
10072 (syms_of_xdisp): Initialize QCdata.
10073
10074 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
10075
10076 * window.c (coordinates_in_window): Use
10077 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
10078 FRAME_INTERNAL_BORDER_WIDTH.
10079
100b3cbb 10080 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 10081 it is obviously invalid.
100b3cbb
GM
10082
10083 * xterm.c (x_term_init): Create a colormap if not using the
10084 default visual.
10085
10086 * xterm.h (select_visual): Change prototype.
10087
10088 * xfns.c (select_visual): Rewritten. Recognize user-specified
10089 visual classes.
10090 (visual_classes): New variable.
10091
64d739c4
GM
100922000-03-04 Gerd Moellmann <gerd@gnu.org>
10093
10094 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
10095 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
10096 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
10097 (x_decode_color): Don't handle allocation of white and black
10098 specially.
10099 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
10100 XtNcolormap resources.
10101 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
10102 (Fx_create_frame): Initialize color members of x_output structure.
10103 (xpm_load): Pass colormap to XPM lib.
10104
10105 * xfaces.c (x_free_colors): Access colormap of frame using
10106 FRAME_X_COLORMAP. Be paranoid about freeing black and white
10107 when default colormap is used.
10108
10109 * xterm.c (x_term_init): Set Colormap member of x_display_info
10110 structure. Copy colormap if resource `privateColormap' is
10111 specified (PseudoColor only).
10112 (x_setup_relief_color): Access colormap of frame using
10113 FRAME_X_COLORMAP.
10114
10115 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
10116 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
10117
c3cee013
JR
101182000-03-04 Jason Rumney <jasonr@gnu.org>
10119
10120 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
10121 other non-platform-specific equivalents.
64d739c4 10122 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
10123 specific functions and macros as their w32 equivalents where
10124 non-platform-specifics are not available.
10125 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
10126 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
10127 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
10128 (frame_update_line_height): Use macros to access f->output_data.
10129 (defined_color): Remove FIXME comments; fixed.
10130 (x_face_list_fonts, prepare_face_for_display): Put X specifics
10131 into #ifdef blocks. Add WINDOWSNT blocks.
10132 (Fx_list_fonts): Use macros for accessing font data.
10133 (set_lface_from_font_name): Different default fonts for X and
10134 WINDOWSNT.
10135 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
10136 scalable for backward compatibility.
64d739c4 10137 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
10138 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
10139
64d739c4 10140 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
10141 syms_of_w32faces.
10142
10143 * makefile.nt (w32faces.obj): Remove.
10144 (xfaces.obj): Add.
10145
807cc41c
JR
101462000-03-03 Jason Rumney <jasonr@gnu.org>
10147
10148 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
10149 correct parameters.
10150
0007072a
KR
101512000-03-03 Ken Raeburn <raeburn@gnu.org>
10152
10153 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
10154 standard ELF definitions here if the system header does not.
10155
71a6ba55
GM
101562000-03-03 Gerd Moellmann <gerd@gnu.org>
10157
10158 * xterm.c (PER_CHAR_METRIC): Removed.
10159 (x_per_char_metric_1, x_default_char): New functions.
10160 (x_per_char_metric): If font's default char is invalid, return
10161 metrics of a suitably chosen usable default char.
10162 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
10163 char, replace occurrences of unprintable chars with a suitably
10164 chosen usable default char.
71a6ba55 10165
900fa1f1
GM
101662000-03-02 Gerd Moellmann <gerd@gnu.org>
10167
42f55fe0
GM
10168 * xterm.c (note_mouse_highlight): Return quickly if frame's
10169 glyph matrices have been freed.
10170
10171 * dispnew.c (free_glyphs): Block input while freeing matrices.
10172
900fa1f1
GM
10173 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
10174
10175 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
10176 x_free_colors.
10177
10178 * dispextern.h (x_free_colors): Add prototype.
10179
10180 * xfaces.c (x_free_colors): New function.
10181 (unload_color, free_face_colors): Use it.
10182
2f950292
EZ
101832000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
10184
10185 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
10186
10187 * window.c [MSDOS]: Include msdos.h.
10188
54d04320
DL
101892000-03-02 Dave Love <fx@gnu.org>
10190
10191 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
10192
10193 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
10194 set C_OPTIMIZE_SWITCH for gcc.
10195
0ba93ac4
KH
101962000-03-02 Kenichi Handa <handa@etl.go.jp>
10197
10198 * coding.c (coding_save_composition): Be sure to allocate
10199 composition data area in coding even if there's no composition in
10200 the current run.
10201
a2bc11d4
JR
102022000-03-01 Jason Rumney <jasonr@gnu.org>
10203
10204 * w32term.c: Equivalent changes to those made to xterm.c on
10205 2000-02-25 and 2000-02-24.
10206
10207 * w32fns.c: Equivalent changes to those made to xfns.c on
10208 2000-02-25 and 2000-02-21.
10209
10210 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
10211 correct line-end convention is followed.
10212
10213 * w32menu.c [HAVE_BOXES]: Remove #undef.
10214 (single_keymap_panes): Remove code for simulating checkmarks.
10215 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
10216 Remove code for drawing simulated checkmarks.
10217 (w32_menu_show): make unibyte help string correctly.
10218 (add_menu_item): draw standard Windows checkmarks. Draw radio
10219 buttons as radio buttons if possible.
10220
72d19d75
GM
102212000-03-01 Gerd Moellmann <gerd@gnu.org>
10222
2df636f4
GM
10223 * sysdep.c (start_of_text): Don't define this function for NetBSD
10224 with ELF.
10225
427ec082 10226 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
10227 Don't define.
10228 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
10229 (LINKER): Don't undef if __NetBSD__ is defined.
10230
10231 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
10232
10233 * fileio.c [__NetBSD__]: Define `unix'.
10234
72d19d75
GM
10235 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
10236
ed4d0512
GM
102372000-02-29 Gerd Moellmann <gerd@gnu.org>
10238
50b1039f
GM
10239 * atimer.c (start_atimer): Don't abort when timers are stopped.
10240 (append_atimer_lists): New function.
10241 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
10242 arbitrary lists of stopped and running atimers.
10243
ed4d0512
GM
10244 * atimer.c (cancel_atimer): Handle canceling an atimer when
10245 some timers are stopped.
10246
10247 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
10248 after canceling it.
10249
10250 * fns.c (maybe_resize_hash_table): Handle case of new size
10251 coming out as being the same as old size.
10252
387023ee
JR
102532000-02-27 Jason Rumney <jasonr@gnu.org>
10254
10255 * makefile.nt: Add atimer.h to dependencies.
10256 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
10257 * w32console.c: Only disable window system features for dispextern.h
10258 (initialize_w32_display): Build a display info for the console.
10259 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
10260 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
10261 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
10262 as 2 button mice.
10263 * w32gui.h (struct W32FontStruct): Revert last change after change
10264 to xdisp.c.
10265 * w32menu.c (single_submenu): Set up help string.
10266 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
10267 (w32_dialog_show): Set up help string.
10268 * w32term.c (w32_display_info_for_display): Remove unused function.
10269 (w32_draw_bitmap): Use pre-built bitmaps.
10270 (w32_initialize_display_info): New function to initialize parts of
10271 display info that are common to both GUI and console frames.
10272 (w32_term_init): Use w32_initialize_display_info. Do not set
10273 Vw32_num_mouse_buttons here, as it is not called for console
10274 frames. Build bitmaps for indicating truncated lines etc.
10275 (x_delete_display): Destroy pre-built bitmaps.
10276 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
10277 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
10278
4516715a
DL
102792000-02-27 Dave Love <fx@gnu.org>
10280
10281 * lisp.h: Add a bunch of prototypes.
10282
171ca836
KH
102832000-02-26 Kenichi Handa <handa@etl.go.jp>
10284
10285 * keyboard.c (read_char): Set `usec' correctly.
10286
4013921d
KH
102872000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
10288
10289 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
10290 `lambda', set reg[RRR] to the map index.
10291 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
10292 reg[RRR] to 0. Otherwise, set it to -1.
10293
9244a058
GM
102942000-02-25 Gerd Moellmann <gerd@gnu.org>
10295
2df636f4 10296 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 10297
18e21ce8 102982000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 10299
f43d79c1
GM
10300 * fileio.c (Ffile_symlink_p): If result starts with a `/'
10301 and contains a `:', prepend `/:'.
10302
10303 * window.c (select_window_1): If selected_window is nil,
10304 don't "swap out" the buffer's point.
10305 (Fset_window_configuration): Set selected_window to nil
10306 before calling Fselect_window.
10307 (unshow_buffer): Don't set point in buffer from window's point
10308 if another more recently selected window also shows the buffer.
10309
bed0c171
GM
103102000-02-25 Gerd Moellmann <gerd@gnu.org>
10311
449c3c52
GM
10312 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
10313
f5b58615
GM
10314 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
10315 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
10316 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
10317 variables.
10318 (DEFAULT_BUSY_CURSOR_DELAY): New define.
10319 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
10320 (hide_busy_cursor): New functions.
10321 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
10322
10323 * minibuf.c (read_minibuf): Cancel busy-cursor.
10324
10325 * keyboard.c (command_loop_1): Call start_busy_cursor before
10326 Fcommand_execute and cancel_busy_cursor after it.
10327 (timer_check): Remove busy-cursor code.
10328 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
10329 cursor timer.
10330
10331 * process.c (wait_reading_process_input): Remove busy-cursor code.
10332
10333 * eval.c (Fsignal): Call cancel_busy_cursor instead of
10334 Fx_hide_busy_cursor.
10335
10336 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
10337 Remove prototyoes.
10338 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
10339
10340 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
10341
10342 * xterm.c (XTread_socket): Remove busy-cursor code.
10343
4eb8436f
GM
10344 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
10345 (build_frame_matrix_from_leaf_window): Put code handling
10346 glyph row's not being a slice of a frame row in #if 0.
10347 (sync_window_with_frame_matrix_rows): New function.
10348 (frame_row_to_window): New function.
10349 (mirror_line_dance): Handle copies between windows.
10350
3cb65b0e
GM
10351 * lread.c (Fload): Use `xfree' instead of `free'.
10352 (init_obarray): Use `xmalloc' instead of `malloc'.
10353
bed0c171
GM
10354 * window.c (Fset_window_buffer): Set WINDOW to the window
10355 after decoding.
2add4349
GM
10356 (coordinates_in_window): Take frame's internal border width
10357 into account.
bed0c171 10358
42088c12
GM
103592000-02-24 Gerd Moellmann <gerd@gnu.org>
10360
10361 * xterm.c (x_display_and_set_cursor): Display cursor of
10362 non-selected windows depending on the setting of
10363 cursor_in_non_selected_windows.
10364
10365 * xdisp.c (cursor_in_non_selected_windows): New variable.
10366 (syms_of_xdisp): DEFVAR_BOOL it.
10367
d1e103b2
GM
103682000-02-23 Gerd Moellmann <gerd@gnu.org>
10369
723e779c
GM
10370 * data.c (Fstring_to_number): If number is greater than what
10371 fits into an integer, return a float.
10372
d1e103b2
GM
10373 * eval.c (specbind): Remove references to
10374 keyword_symbols_constant_flag.
10375
10376 * data.c (keyword_symbols_constant_flag): Removed.
10377 (Fmakunbound, set_internal, syms_of_data): Remove references to
10378 keyword_symbols_constant_flag.
10379
10380 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
10381
214f877f
KH
103822000-02-23 Kenichi Handa <handa@etl.go.jp>
10383
10384 * syntax.c (multibyte_syntax_as_symbol): New variable.
10385 (syms_of_syntax): Declare it as a Lisp variable.
10386 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
10387 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
10388 nonzero, treat all multibyte characters as symbol.
42088c12 10389 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
10390 characters.
10391
130adcb7
EZ
103922000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
10393
3cb65b0e 10394 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 10395 a deleted frame.
130adcb7 10396
17cbbf95
GM
103972000-02-21 Gerd Moellmann <gerd@gnu.org>
10398
10399 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
10400
10401 * xfns.c (x_window_to_frame, x_any_window_to_frame)
10402 (x_non_menubar_window_to_frame): Check the busy-cursor window.
10403
beb0bc36
DL
104042000-02-21 Dave Love <fx@gnu.org>
10405
10406 * frame.c (Vmouse_position_function): New variable.
10407 (Fmouse_position): Use it.
10408 (syms_of_frame): Install it.
10409
10410 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
10411
1d92afcd
GM
104122000-02-20 Gerd Moellmann <gerd@gnu.org>
10413
10414 * fileio.c (Finsert_file_contents): Unbind the binding of
10415 standard-output done by temp_output_buffer_setup.
329eed9f
GM
10416
10417 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
10418 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
10419 (specbind, unbind_to): Handle most common case of non-constant
10420 symbol with trivial value specially.
10421
10422 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
10423
18e21ce8 104242000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
10425
10426 * data.c (Fmake_variable_buffer_local): Doc fix.
10427 Init found_for_buffer to 0.
10428 (Fmake_variable_frame_local): If the variable has already
10429 been buffer-local, set the check_frame field.
10430
1d4311c3
EZ
104312000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
10432
10433 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
10434 produced for CODING_MODE_LAST_BLOCK requires.
10435
2dc95ddd
DL
104362000-02-18 Dave Love <fx@gnu.org>
10437
10438 * keyboard.c (echo_keystrokes): Remove declaration.
10439 (Vecho_keystrokes) New variable.
10440 (read_char, record_menu_key, read_key_sequence): Use it to allow
10441 use of float value.
10442 (syms_of_keyboard): Change Vecho_keystrokes declaration.
10443
10444 * lread.c: Undef feature selection macros before defining.
10445
f0930f35
GM
104462000-02-18 Gerd Moellmann <gerd@gnu.org>
10447
10448 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
10449 for symbols other than the symbol in question.
10450
e3d4de90
DL
104512000-02-17 Dave Love <fx@gnu.org>
10452
10453 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
10454
0b378936
GM
104552000-02-17 Gerd Moellmann <gerd@gnu.org>
10456
d621caf7
GM
10457 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
10458
0b378936
GM
10459 * alloc.c (enum mem_type): Compile unconditionally.
10460
3b451f74
EZ
104612000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
10462
10463 * xfaces.c (tty_defined_color): Don't return faulire indication
10464 for unspecified-fg and unspecified-bg pseudo-colors.
10465
10689a01
GM
104662000-02-17 Gerd Moellmann <gerd@gnu.org>
10467
1216f5e4
GM
10468 * alloc.c (mark_object): Don't mark symbol names in pure space.
10469 (gc_sweep): Don't unmark symbol names in pure space.
10470
10471 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
10472 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
10473 [GC_MARK_STACK]: New defines.
427ec082 10474 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
10475 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
10476
10477 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
10478
10479 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
10480 allocate_buffer instead of xmalloc.
10481
10482 * alloc.c (toplevel): Include setjmp.h.
10483 (PURE_POINTER_P): New define.
10484 (enum mem_type) [GC_MARK_STACK]: New enumeration.
10485 (Vdead) [GC_MARK_STACK]: New variable.
10486 (lisp_malloc): Add parameter TYPE, call mem_insert if
10487 GC_MARK_STACK is defined.
10488 (allocate_buffer): New function.
427ec082 10489 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
10490 (free_float) [GC_MARK_STACK]: Set type to Vdead.
10491 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
10492 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
10493 (MEM_NIL) [GC_MARK_STACK]: New define.
10494 (struct mem_node) [GC_MARK_STACK]: New structure.
10495 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
10496 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
10497 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
10498 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
10499 (mark_stack) [GC_MARK_STACK]: New functions.
10500 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
10501 (clear_marks): Removed.
10502 (gc_sweep): Set free conses' car, free floats' type, free
10503 symbols' function to Vdead. Use lisp_free to free buffers.
10504 (init_alloc_once): Initialize Vdead.
10505 (survives_gc_p): Return non-zero for pure objects.
10506
10507 * alloc.c: Add comments throughout the file.
10508
2503c8b1
GM
10509 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
10510 that unblocks alarms.
10511
8389e1e2
GM
10512 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
10513 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
10514 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
10515
10689a01 10516 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 10517
bfc17d18
KH
105182000-02-17 Kenichi Handa <handa@etl.go.jp>
10519
4a09dee0
KH
10520 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
10521 avoid infinite error signaling. Allocate sufficient memory for
10522 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 10523
2b927d02
SM
105242000-02-17 Stefan Monnier <monnier@cs.yale.edu>
10525
10526 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
10527 depends on the previous behavior.
10528
b49cb764
GM
105292000-02-16 Gerd Moellmann <gerd@gnu.org>
10530
10531 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
10532
99e95407
GM
105332000-02-15 Gerd Moellmann <gerd@gnu.org>
10534
10535 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
10536
10537 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 10538 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
10539 write(2).
10540
6ffd3cf7
RS
105412000-02-15 Richard M. Stallman <rms@gnu.org>
10542
10543 * data.c (set_internal): Don't make variable buffer-local
10544 if within a let-binding for the same buffer.
10545 (let_shadows_buffer_binding_p): New function.
10546
10547 * eval.c (specbind): For buffer-local value,
10548 record the current buffer also.
10549 (unbind_to): Cope with that change.
10550
cad53475
GM
105512000-02-15 Gerd Moellmann <gerd@gnu.org>
10552
10553 * window.c (Fsave_window_excursion): Doc fix.
10554
1aa963c8
SM
105552000-02-15 Stefan Monnier <monnier@cs.yale.edu>
10556
10557 * syntax.c (back_comment): Make sure we only consider comment-starters
10558 of the relevant style and return -1 in case of a failure to find the
10559 beginning of the comment.
10560 (Fforward_comment): If back_comment fails, go back to the position just
10561 after the comment-end.
10562 (scan_lists): Add comment describing a very minor bug.
10563
b9b84fd3
SM
105642000-02-14 Stefan Monnier <monnier@cs.yale.edu>
10565
10566 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
10567 `completion-regexp-list' in the docstring.
10568
3a28db80
DL
105692000-02-14 Dave Love <fx@gnu.org>
10570
10571 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
10572
fb4a568d
SM
105732000-02-14 Stefan Monnier <monnier@cs.yale.edu>
10574
10575 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
10576 to Emacs' syntax. Also fix the comment about set/not-set meanings
10577 since Emacs syntax is not the value 0 any more.
10578 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
10579 since it's now part of RE_SYNTAX_EMACS.
10580
1063ebb5
DL
105812000-02-12 Dave Love <fx@gnu.org>
10582
10583 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
10584 Alpha.
10585
fb07a302
GM
105862000-02-12 Gerd Moellmann <gerd@gnu.org>
10587
10588 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
10589
aaf2320c
DL
105902000-02-12 Dave Love <fx@gnu.org>
10591
10592 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
10593
10594 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
10595 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
10596 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
10597
10598 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
10599
10600 * s/nextstep.h: Don't define HAVE_ALLOCA.
10601
10602 * config.in: Add vfork bits.
10603
eedf8bde
GM
106042000-02-12 Gerd Moellmann <gerd@gnu.org>
10605
10606 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
10607 unwind function to undo the effect of stopping atimers.
10608
10609 * keyboard.c (bind_polling_period): Stop all timers except
10610 poll_timer.
10611
10612 * atimer.c (stopped_atimers): New variable.
10613 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
10614 New functions.
10615
10616 * atimer.h (stop_other_atimers, run_all_atimers)
10617 (unwind_stop_other_atimers): Add function prototypes.
427ec082 10618
eedf8bde
GM
10619 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
10620
8476c2f8
KR
106212000-02-11 Ken Raeburn <raeburn@gnu.org>
10622
10623 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
10624 library may depend on jpeg.
10625 (atimer.o): Depends on atimer.c.
10626
0e85e4a3
KH
106272000-02-11 Kenichi Handa <handa@etl.go.jp>
10628
10629 * insdel.c (del_range_1): Call update_compositions.
10630 (del_range_both): Call update_compositions just once..
10631
97fa0cc8
DL
106322000-02-10 Dave Love <fx@gnu.org>
10633
10634 * xfns.c (create_frame_xic): Fix initialization of automatic
10635 aggregates for pcc.
10636
25566a3c
KH
106372000-02-09 Kenichi Handa <handa@etl.go.jp>
10638
10639 * ccl.c (CCL_MAKE_CHAR): New macro.
10640 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
10641 registers by CCL_MAKE_CHAR before calling translate_char.
10642 <CCL_TranslateCharacterConstTbl> Likewise.
10643
69da54ba
DL
106442000-02-08 Dave Love <fx@gnu.org>
10645
10646 * lread.c (__EXTENSIONS__): Define.
10647
f7136ee8
GM
106482000-02-08 Gerd Moellmann <gerd@gnu.org>
10649
10650 * puresize.h (BASE_PURESIZE): Increase to 650000.
10651
7768790b
EZ
106522000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
10653
10654 * msdos.c (XMenuActivate): Turn off the cursor after displaying
10655 the help message.
10656
38fd211b
EZ
106572000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
10658
10659 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
10660 md, mh, mb, mr, and me to the fake termcap entry.
10661
66e4690f
KR
106622000-02-06 Ken Raeburn <raeburn@gnu.org>
10663
10664 * sound.c (sound_cleanup): Don't call device close routine if the
10665 function pointer is null.
10666
a75dfea0
AI
106672000-02-06 Andrew Innes <andrewi@gnu.org>
10668
10669 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
10670 around image definitions and prototypes.
10671 (gamma_correct) [WINDOWSNT]: New prototype.
10672
10673 * w32term.c (x_make_frame_visible): Replace call to
10674 input_poll_signal with poll_for_input.
10675
10676 * window.c [WINDOWSNT]: Include w32term.h.
10677
10678 * xdisp.c [WINDOWSNT]: Include w32term.h.
10679
10680 * makefile.nt: Add dependencies on w32gui.h.
10681 (OBJ1): Include atimer.obj.
10682 ($(BLD)\atimer.obj): New dependency rule.
10683
10684 * w32.c (sigmask): New function (does nothing).
10685 (sigunblock): Ditto.
10686
10687 * frame.c [WINDOWSNT]: Include w32term.h.
10688
10689 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
10690
10691 * lread.c (syms_of_lread): Fix literal newlines.
10692
10693 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
10694 the string constant limit (2048 bytes) in MSVC.
10695 (main): Ditto.
10696
59ddecde
GM
106972000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
10698
10699 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
10700 area.
10701 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
10702 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
10703 dispatch the event.
10704
07590973
DL
107052000-02-04 Dave Love <fx@gnu.org>
10706
10707 * fileio.c: Remove some unused vars.
10708 (_GNU_SOURCE): Define (for euidaccess).
10709
10710 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
10711
10712 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
10713 gcpro1, gcpro2.
10714 (read_minibuf): Deal with allow_props correctly.
10715
649351f9
EZ
107162000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
10717
10718 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
10719
66e4690f 107202000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
10721
10722 * search.c (compile_pattern): If a cache entry has a nil regexp,
10723 fill in that entry instead of clobbering a previously cached
10724 string regexp.
10725
66e4690f 107262000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
10727
10728 * puresize.h (BASE_PURESIZE): Increase to 610000.
10729
d240a249
GM
107302000-02-02 Gerd Moellmann <gerd@gnu.org>
10731
10732 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
10733 can GC.
10734
ca91fb26
KH
107352000-02-02 Kenichi Handa <handa@etl.go.jp>
10736
25660570
KH
10737 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
10738 instead of incrementing ic directly.
10739 <CCL_WriteExprConst> Likewise.
10740 <ccl_set_expr>: Set ic to jump_address.
10741
ca91fb26
KH
10742 * fileio.c (e_write): Fix the handling of
10743 CODING_FINISH_INSUFFICIENT_SRC.
10744
2ede9689
DL
107452000-02-01 Dave Love <fx@gnu.org>
10746
10747 * editfns.c (Fpropertize): Doc fix.
10748
10749 * process.c (Fstart_process): Doc fix.
10750
10751 * eval.c: Fix various doc strings not to duplicate information
10752 from help-manyarg-func-alist.
10753
10754 * window.c (Fset_window_margins): Don't make interactive. Doc
10755 fix.
10756
10757 * doc.c (Vhelp_manyarg_func_alist): New variable.
10758 (Fdocumentation): Use it.
10759 (syms_of_doc): Define it.
10760
b6680a0e
GM
107612000-01-31 Gerd Moellmann <gerd@gnu.org>
10762
2cb750ba
GM
10763 * xterm.c (xim_open_dpy): Remove unused local variable.
10764
74e9213b
GM
10765 * emacs.c (USAGE): Use term `display options' instead of `X
10766 options'.
10767
10768 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
10769 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
10770
b6680a0e
GM
10771 * fns.c (sweep_weak_table): New function.
10772 (sweep_weak_hash_tables): Use it. Keep on marking until there
10773 is no more change.
10774
994c5afe
GM
107752000-01-30 Gerd Moellmann <gerd@gnu.org>
10776
10777 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
10778 that XTread_socket does not crash by trying to call XNoOp on a
10779 closed display.
427ec082 10780
f00276e3
JR
107812000-01-30 Jason Rumney <jasonr@gnu.org>
10782
10783 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
10784 Change selected_frame to SELECTED_FRAME ().
10785 (w32_console_mouse_position): Remove #ifndef MULE from around
10786 `insist' parameter.
10787
10788 * makefile.nt: Remove dosfns.obj.
10789
10790 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
10791
10792 * w32fns.c (w32_defined_color): Check for valid frame before
10793 applying gamma correction. Eliminate dependency on frame elsewhere.
10794 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
10795 (w32_to_x_font): Use resx and resy not height_in and width_in.
10796 (x_to_w32_font): Doc fix.
10797 (xlfd_strip_height): New function to strip and return font height.
10798 (w32_font_match): Compare height separately from rest of xlfd
10799 spec, using xlfd_strip_height.
10800
10801 * w32term.c (w32_term_init): Swap resx and height_in, resy and
10802 width_in. Use w32_defined_color in place of defined_color.
10803
10804 * w32faces.c: Merge more of DOS and X specifics in preparation for
10805 merge with xfaces.c.
10806 (defined_color): Remove FIXME comment.
10807 (tty_color_name): Provide w32-specific function.
10808 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
10809
10810 * w32console.c (turn_on_face, turn_off_face): Removed.
10811 (w32_face_attributes): New function.
10812 (Global_variables): Reduce scope where possible.
10813 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
10814 fill attribute.
10815 (hl_mode): Don't modify text attributes.
10816 (write_glyphs): Don't do anything if len <= 0. Use
10817 w32_face_attributes to get attributes for drawing. Write
10818 terminating codes using char_attr_normal.
10819 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
10820 (update_begin, update_end): Likewise.
10821 (vga_stdcolor_name): New function.
10822 (initialize_w32_display): Remove char_attr_reverse and char_attr.
10823 (Fset_screen_color): Remove char_attr_reverse.
10824
b08e8bb2
GM
108252000-01-29 Gerd Moellmann <gerd@gnu.org>
10826
10827 * xfns.c (xic_set_preeditarea): Take window parameter and
10828 window-relative pixel-positions.
10829
10830 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
10831 is its frame's selected window.
10832 (xim_instantiate_callback): Likewise.
10833
10834 * xfns.c (x_create_im): Removed.
10835 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
10836 (supported_xim_styles): Renamed from supported_styles.
10837 (best_xim_style): Renamed from best_style.
10838 (create_frame_xic): Renamed from xic_create_frame.
10839 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 10840
b08e8bb2
GM
108412000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
10842
10843 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
10844 our frames, call XFilterEvent with 2nd parameter `None'.
10845 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
10846 returning XBufferOverflow.
10847 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
10848 area.
10849 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
10850 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
10851 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
10852 (xim_initialize, xim_close)
10853 [HAVE_X_I18N && HAVE_X11R6]: New functions.
10854 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
10855 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
10856 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
10857
10858 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
10859 and `xim_styles'.
10860 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
10861 `xic_style' and `xic_xfs'.
10862 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
10863 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
10864 (FRAME_XIM): Removed.
10865
10866 * xfns.c (supported_styles): New variable.
10867 (DEFAULT_STYLE, DEFAULT_FONT): New macros
10868 (xic_create_xfontset, best_style, xic_create_frame)
10869 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
10870 (xic_set_xfontset): New functions.
10871
142e109c
DL
108722000-01-28 Dave Love <fx@gnu.org>
10873
10874 * s/irix6-5.h: Revert last change after change to irix5-0.h.
10875
10876 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
10877
b02786f9
GM
108782000-01-28 Gerd Moellmann <gerd@gnu.org>
10879
d060bc9f
GM
10880 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
10881 for *scratch* if it already existed.
10882
b02786f9
GM
10883 * emacs.c (USAGE): New macro.
10884 (main): Use it to display usage information.
10885
2c52d7e4
EZ
108862000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
10887
10888 Support for the menu-help feature:
10889
10890 * msdos.h: Change prototypes of XMenuAddSelection and
10891 XMenuActivate.
10892
10893 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
10894 part of the line to the termscript file.
10895 (IT_clear_to_end): Clear the entire line, not just its beginning.
10896 (menu_help_message, prev_menu_help_message): New variables.
10897 (IT_menu_make_room): Make room for the help_text member.
10898 (IT_menu_display): New argument disp_help; all callers changed.
10899 If disp_help is non-zero, store the help text of the active menu
10900 item in menu_help_message.
10901 (XMenuAddPane): Initialize the help_text member to NULL.
10902 (XMenuAddSelection): New argument help_text. Store it in the
10903 XMenu structure.
10904 (XMenuActivate): New argument help_callback. If the value of
10905 menu_help_message has changed since the last time, display the
10906 menu help message text while waiting for the mouse to move. Clear
10907 the echo area before exiting.
10908 (XMenuDestroy): Free the help_text member.
10909
ffe0bcd1
GM
109102000-01-27 Gerd Moellmann <gerd@gnu.org>
10911
10912 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
10913 XMenuAddSelection. Pass help callback to XMenuActivate.
10914 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
10915
50dbd23f
EZ
109162000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
10917
10918 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
10919 and EMACS_SET_USECS.
10920
f5941bf8
GM
109212000-01-26 Dave Love <fx@gnu.org>
10922
6c67ddee
DL
10923 * editfns.c (Fchar_after, Fchar_before): Doc fix.
10924
f5941bf8
GM
10925 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
10926 an error may be signalled.
10927
9e49c990
GM
109282000-01-26 Gerd Moellmann <gerd@gnu.org>
10929
fc3cb460
GM
10930 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
10931 LD_SWITCH_SYSTEM inherited from irix5-0.h.
10932
9e49c990
GM
10933 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
10934
d0c037d8
GM
109352000-01-25 Gerd Moellmann <gerd@gnu.org>
10936
10937 * charset.c (Fstring): If there is a multibyte char among
10938 the args, always return a multibyte string.
10939
e12489f9
GM
109402000-01-25 Gerd Moellmann <gerd@gnu.org>
10941
10942 * sysdep.c (sys_select): Turn atimers off and on instead of
10943 recording and restoring old alarm handler
10944
10945 * process.c (toplevel): Include atimer.h.
10946 (create_process_1): Rewritten.
10947 (create_process): Use atimers instead of alarm.
10948 (wait_reading_process_input) [hpux]: Turn atimers off instead
10949 of turning off SIGALRM.
10950 (wait_reading_process_input): Turn off atimers instead off
10951 calling stop_polling.
10952
10953 * emacs.c (main): Call init_atimer.
10954
10955 * keyboard.c (toplevel): Include systime.h and atimer.h.
10956 (polling_for_input): Removed because unused.
10957 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
10958 (poll_timer): New variable.
10959 (poll_for_input, poll_for_input_1): New functions.
10960 (start_polling, stop_polling): Rewritten.
10961
10962 * keyboard.h (polling_for_input): Removed.
427ec082 10963
e12489f9
GM
10964 * atimer.h, atimer.c: New files.
10965
10966 * Makefile.in (obj): Add atimer.o.
10967 (atimer.o): New target.
10968
10969 * blockinput.h (pending_atimers): Add extern declaration.
10970 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
10971
10972 * lisp.h (popup_activated_flag): Add extern declaration.
10973
10974 * xmenu.c (popup_activated_flag): Make externally visible.
10975 (popup_activate_callback) [USE_MOTIF]: Increment
10976 popup_activated_flag.
10977 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
10978
10979 * xterm.c (toplevel): Include atimer.h.
10980 (toolkit_scroll_bar_interaction): New variable.
10981 (Fxt_process_timeouts): Removed.
10982 (x_process_timeouts): New function.
10983 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
10984 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
10985 (x_make_frame_visible): Call poll_for_input_1 instead of
10986 input_poll_signal. Don't call alarm.
10987 (x_initialize): Install timer calling x_process_timeouts.
427ec082 10988
1e5279b9
DL
109892000-01-24 Dave Love <fx@gnu.org>
10990
6c67ddee 10991 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
10992 Don't use -cckr -- apparently not now necessary.
10993
edf6aeb8
EZ
109942000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
10995
10996 * msdos.c (IT_menu_display): Truncate long menu lines at the right
10997 screen boundary.
10998
9badad41
JR
109992000-01-23 Jason Rumney <jasonr@gnu.org>
11000
11001 * w32fns.c (w32_defined_color): Apply gamma correction before
11002 trying to map to the palette.
11003 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
11004 to w32_clear_rect.
11005
11006 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
11007 here. Callers changed to always pass real device context.
11008 (w32_draw_bitmap): Likewise.
11009 (w32_get_glyph_overhangs): Likewise.
11010 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
11011 one.
11012 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
11013 pfnSetScrollInfo and SetScrollRange.
11014 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
11015 back into MULE characters after decoding them.
11016 (x_get_glyph_face_and_encoding): Likewise.
11017 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
11018 GetCharABCWidthsW fails, since this is defined on Windows 9x.
11019 (x_produce_glyphs): Calculate per char metrics for a character
11020 that we know exists in default font when font_not_found_p is true.
11021
63bd786b
JR
110222000-01-22 Jason Rumney <jasonr@gnu.org>
11023
11024 * makefile.nt (intervals.obj, composite.obj): New modules.
11025 (composite.h): Added as dependency where appropriate.
11026
11027 * w32gui.h (XGCValue): New struct for emulating X GCs.
11028
11029 * w32term.h (XCharStruct): New struct for emulating X.
11030
11031 * w32console.c (turn_on_face, turn_off_face): New functions.
11032 (change_line_highlight): New prototype for new redisplay.
11033 (write_glyphs): Support multibyte text. Support faces.
11034
11035 * w32faces.c: Complete rewrite for new redisplay based on new
11036 xfaces.c.
11037
11038 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
11039 throughout. struct frame * in place of FRAME_PTR.
11040 Skeleton support for images, toolbars, tooltips from xfns.c.
11041 (Fx_create_frame): Use system default for default scroll bar
11042 width.
11043 (w32_get_arg): Renamed from x_get_arg.
11044 (Fx_file_dialog): New function.
11045 (w32_list_fonts): Check cache before asking system.
11046 (Vw32_enable_synthesized_fonts): New variable.
11047 (Vw32_enable_italics): Obsolete, removed.
11048
11049 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
11050 Use SELECTED_FRAME macro.
11051
11052 * w32menu.c: Add skeleton support for help strings on menus.
11053 (add_menu_item): Native checkbox and radio support added, but not
11054 yet enabled due to bugs.
11055 (push_menu_item): Add parameters type, selection and help.
11056 Callers updated.
11057 Formatting changes to reduce unnecessary diffs with xmenu.c.
11058
11059 * w32select.c (Fw32_set_clipboard_data): Update call to
11060 find_charset_in_str.
11061
11062 * w32term.c: Complete rewrite for new redisplay based on new
11063 xterm.c with necessary sections merged back in from old w32term.c.
11064
6ffd3cf7 110652000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
11066
11067 * data.c (set_internal): Further fix in same criterion.
11068
6ffd3cf7 110692000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
11070
11071 * data.c (set_internal): Fix the criteria for whether
11072 to swap out the old cached binding.
11073
60af03f1
DL
110742000-01-19 Dave Love <fx@gnu.org>
11075
11076 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
11077
f9be074f
KH
110782000-01-18 Kenichi Handa <handa@etl.go.jp>
11079
11080 * regex.c (re_compile_fastmap): While checking a range table for
11081 `charset', skip flag bits for a character class correctly.
11082
52b8dbf9
GM
110832000-01-17 Gerd Moellmann <gerd@gnu.org>
11084
d36100c9
GM
11085 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
11086
52b8dbf9
GM
11087 * xfns.c (x_window): Call lw_create_widget with new parameter
11088 list.
11089
11090 * widget.c (EmacsFrameSetCharSize): Change size of children first
11091 because of problems with main window geometry management under
11092 Lesstif.
11093
11094 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
11095 MENU_ITEMS_ITEM_.*.
11096 (MENU_ITEMS_ITEM_HELP): New enumerator.
11097 (push_menu_item): Add parameter HELP. Record help in menu_items.
11098 (single_menu_item, single_submenu, list_of_items): Call
11099 push_menu_item with new parameter.
11100 (single_submenu): Set help string in widget value.
11101 (menu_highlight_callback): New function.
11102 (set_frame_menubar): Call lw_create_widget with new
11103 parameter list.
11104 (xmenu_show, xdialog_show): Ditto.
11105
3139018f
GM
111062000-01-13 Gerd Moellmann <gerd@gnu.org>
11107
11108 * sound.c (Fplay_sound): Improve doc string.
11109
83c8f461
RS
111102000-01-11 Richard M. Stallman <rms@gnu.org>
11111
11112 * lisp.h (set_internal): Enter the new arg.
11113
11114 * eval.c (specbind): Record buffer-local variables specially,
11115 indicating which buffer's binding was saved.
11116 (unbind_to): Restore buffer-local variables specially
11117 in the proper buffer.
11118
11119 * data.c (set_internal): New arg BUF.
427ec082 11120
83c8f461
RS
11121 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
11122 * data.c (Fset): Pass new arg to set_internal.
11123 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 11124
1fab1775
GM
111252000-01-11 Gerd Moellmann <gerd@gnu.org>
11126
11127 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
11128 xprintsym.
11129
83c8f461 111302000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
11131
11132 * minibuf.c (Ftry_completion): Doc fix.
11133
7a85e4df
GM
111342000-01-11 Gerd Moellmann <gerd@gnu.org>
11135
11136 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
11137 vector, too.
11138
a970dae4
AS
111392000-01-11 Andreas Schwab <schwab@suse.de>
11140
11141 * coding.c (code_convert_region): Initialize total_skip.
11142
c65d14ee
DL
111432000-01-08 Dave Love <fx@gnu.org>
11144
11145 * eval.c (Fuser_variable_p): Check customizability too.
11146
834938d2
GM
111472000-01-07 Gerd Moellmann <gerd@gnu.org>
11148
11149 * minibuf.c (Fcompleting_read): Doc fix.
11150
e0303cd6
GM
111512000-01-05 Gerd Moellmann <gerd@gnu.org>
11152
8a26744b
GM
11153 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
11154 -L /usr/local/lib.
11155
e0303cd6
GM
11156 * xfns.c (x_create_im): New function to set IM and IC of a frame.
11157 Check that input style is supported before trying to create an
11158 IC for it.
11159 (x_window): Call x_create_im.
427ec082 11160
2e471eb5
GM
111612000-01-04 Gerd Moellmann <gerd@gnu.org>
11162
560a7bd2
GM
11163 * xfns.c (current_gif_memory_src): New variable.
11164 (gif_load): Record the address of the current memory source
11165 in current_gif_memory_src.
11166 (gif_read_from_memory): Use current_gif_memory_src.
11167
f9ee84a3
GM
11168 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
11169 macros statement form.
11170
d1299cde
GM
11171 * sound.c (struct sound): Renamed from struct sound_file.
11172 (struct sound): Add members `data' and `header_size'.
11173 (enum sound_attr): Add SOUND_DATA.
11174 (current_sound, current_sound_device): Variables renamed from
11175 sound_file and sound_device.
11176 (parse_sound): Parse :data.
11177 (parse_sound): Handle sound data in strings.
11178 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 11179 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
11180 needed header size.
11181 (wav_play, au_play): Play sounds from string data.
11182
2e471eb5
GM
11183 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
11184
11185 * lisp.h: Add prototype for allocate_string_data.
11186
11187 * alloc.c (Fgarbage_collect): Return number of live and free
11188 strings.
11189
11190 * alloc.c (mark_buffer): Remove code in #if 0.
11191 (gc_sweep): Ditto.
11192 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
11193 (strings_consed): New variable.
11194 (allocate_string): Set it.
11195 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
11196 (Fmemory_use_counts): Return strings_consed. Use Flist.
11197
11198 * alloc.c: General cleanup in comments etc. Remove conditional
11199 compilation for `standalone'.
11200
11201 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
11202
11203 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
11204 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
11205 (DONT_COPY_FLAG): Removed.
11206 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
11207 (struct sdata, struct sblock): New
11208 (struct string_block): Rewritten.
11209 (STRINGS_IN_STRING_BLOCK): New macro.
11210 (oldest_sblock, current_sblock, total_strings, total_free_strings)
11211 (large_sblocks, string_blocks, string_free_list): New variables.
11212 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
11213 (init_strings): Rewritten.
11214 (allocate_string, allocate_string_data, compact_small_strings)
11215 (free_large_strings, sweep_strings): New functions.
11216 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
11217 (struct string_block_head, current_string_block)
11218 (first_string_block, large_string_blocks, STRING_FULLSIZE)
11219 (STRING_PAD): Removed.
11220 (make_uninit_multibyte_string, make_pure_string): Rewritten.
11221 (Fgarbage_collect): Don't set mark bit in large strings.
11222 (mark_object): Mark strings differently. Mark symbol names
11223 differently.
11224 (survives_gc_p): Test marked strings differently.
427ec082 11225 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
11226 symbol names.
11227 (compact_strings): Removed.
11228
42608ba8
EZ
112292000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
11230
11231 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
11232 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
11233
e0a09e1a
KH
112342000-01-04 Kenichi Handa <handa@etl.go.jp>
11235
dd9f0750 11236 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 11237 in a non-empty buffer.
dd9f0750 11238
3c0f3b15 11239 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 11240
44cd3ae5
GM
112412000-01-03 Gerd Moellmann <gerd@gnu.org>
11242
11243 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
11244 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
11245
11246 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
11247
c182a70f
EZ
112482000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11249
11250 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
11251 need to test for MSDOS frames.
11252
24480d5b
EZ
112532000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11254
11255 * dosfns.c (unspecified_colors): Remove.
11256 (msdos_stdcolor_idx): Use global variables unspecified_fg and
11257 unspecified_bg.
11258 (msdos_stdcolor_name): Return strings for unspecified fore- and
11259 back-ground colors.
11260
11261 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 11262 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
11263 (tty_color_name): Return Lisp strings for unspecified fore- and
11264 back-ground colors.
11265 (Finternal_set_lisp_face_attribute): Remove the special treatment
11266 for Qunspecified_{f,b}g.
11267 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
11268 string.
11269
047f434a
GM
112702000-01-03 Gerd Moellmann <gerd@gnu.org>
11271
11272 * xdisp.c (reseat_at_next_visible_line_start): Position before
11273 newline only if ending up on a newline.
11274 (next_element_from_ellipsis): Return success. Handle case of
11275 displaying no ellipsis. Fix case of ellipsis defined in display
11276 table.
11277 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
11278 returns 0.
11279
d684c676
EZ
112802000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11281
11282 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
11283 (Fcolor_supported_p): Renamed from face-color-supported-p.
11284
5fe1d139
EZ
112852000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11286
11287 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
11288 list of colors renamed to tty-defined-color-alist.
11289 (tty_color_name): Pass the frame to tty-color-by-index.
11290 (realize_tty_face): tty-color-alist is now a function which
11291 accepts the frame as argument.
11292
11293 * term.c (Ftty_display_color_p): Accept an optional argument
11294 FRAME.
11295
816be8b8
EZ
112962000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11297
11298 * term.c (insert_glyphs): Pass glyph, not &glyph, to
11299 encode_terminal_code.
11300
b635321e
EZ
113012000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11302
11303 * dispnew.c (mode_line_string): Support termcap frames as well.
11304
9b784e96
GM
113052000-01-01 Gerd Moellmann <gerd@gnu.org>
11306
27189709
GM
11307 * syntax.c (Fforward_word): Undo previous change.
11308
11309 * editfns.c (Fconstrain_to_field): Don't constrain if
11310 inhibit-field-text-motion is non-nil.
11311 (Fline_beginning_position): Undo previous change.
11312 (Fline_end_position): Ditto.
11313
11314 * syntax.c (Fforward_word): Notice field boundaries only if
11315 inhibit-field-text-motion is nil.
11316
11317 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
11318
11319 * editfns.c (Vinhibit_field_text_motion): New variable.
11320 (inhibit-field-text-motion): New DEFVAR_LISP.
11321 (Fline_beginning_position, Fline_end_position): Notice field
11322 boundaries only if inhibit-field-text-motion is nil.
11323
45158a91
GM
11324 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
11325 All calls adjusted.
11326 (x_build_heuristic_mask): Likewise.
11327 (xbm_load_image_from_file): Change error output.
11328 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
11329 (gif_load, gs_load, x_kill_gs_process): Ditto.
11330
9b784e96
GM
11331 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
11332 color indices when accessing raster pixels.
63cec32f
GM
11333 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
11334 one of :file or :data.
11335 (enum pbm_keyword_index): Add PBM_DATA.
11336 (pbm_format): Add :data.
11337 (pbm_image_p): Allow either :file or :data.
11338 (pbm_read_file): New function.
11339 (pbm_scan_number): Rewritten to read from string.
11340 (pbm_load): Support :data.
9b784e96 11341
2cb085db 11342See ChangeLog.8 for earlier changes.
6922b018
KH
11343
11344;; Local Variables:
49b3bd82 11345;; coding: iso-2022-7bit
6922b018 11346;; End: