*** empty log message ***
[bpt/emacs.git] / src / ChangeLog
1 2001-05-07 Gerd Moellmann <gerd@gnu.org>
2
3 * keyboard.c (delete_kboard): Handle the case that selected_frame
4 has been deleted in the course of x_connection_closed.
5
6 2001-05-03 Eli Zaretskii <eliz@is.elta.co.il>
7
8 * xterm.c (XTread_socket) <Expose> [!USE_TOOLKIT_SCROLL_BARS]: Fix
9 the change from 2001-04-30.
10
11 2001-05-03 Gerd Moellmann <gerd@gnu.org>
12
13 * xfns.c (file_dialog_unmap_cb): New function.
14 (Fx_file_dialog): Use it as XmNunmapCallback to capture the case
15 where a dialog is closed via the window manager.
16
17 * xdisp.c (try_window_id): Cases of changes all in front of
18 the window start or all below the window end mostly rewritten.
19 (redisplay_window): Move the tests if try_window_id is
20 applicable to try_window_id.
21 (GIVE_UP): New macro.
22
23 2001-05-02 Gerd Moellmann <gerd@gnu.org>
24
25 * xterm.c (expose_window): Return int. If W is the window
26 currently being updated, mark the frame garbaged. Fix
27 computation of rows intersecting the exposed rectangle.
28 (expose_window_tree): Stop when expose_window returns 0.
29
30 * xterm.c (x_draw_stretch_glyph_string): Don't draw background
31 again if it has already been drawn.
32
33 2001-05-01 Stefan Monnier <monnier@cs.yale.edu>
34
35 * syntax.c (update_syntax_table): Check that oldi has the same
36 properties as old_prop before deciding not to invalidate.
37
38 2001-04-30 Gerd Moellmann <gerd@gnu.org>
39
40 * undo.c (Fprimitive_undo): In a writable buffer, enable undoing
41 read-only text that is so because of text properties.
42
43 * xterm.c (x_window_to_menu_bar) [USE_LUCID]: New function.
44 (XTread_socket) <Expose> [USE_LUCID]: Handle events for
45 windows that are components of a Lucid menu bar.
46
47 2001-04-27 Gerd Moellmann <gerd@gnu.org>
48
49 * term.c (turn_on_face): Fix reverse video handling on terminals
50 that don't support colors.
51
52 2001-04-26 Gerd Moellmann <gerd@gnu.org>
53
54 * editfns.c (save_excursion_restore): Don't use XBUFFER on
55 a non-buffer.
56
57 2001-04-25 Gerd Moellmann <gerd@gnu.org>
58
59 * term.c (toggle_highlight): New function.
60 (turn_on_face): Change handling of reverse video.
61
62 * process.c (wait_reading_process_input): Call
63 record_asynch_buffer_change only if a timer really changed
64 buffers.
65
66 * buffer.c (mouse_face_overlay_overlaps): Fix the computation
67 of the number of overlays to check.
68
69 * keyboard.c (command_loop_1): Redo change of 2001-03-12.
70
71 * xdisp.c (try_window_id): Fix a case where window_end_pos
72 and window_end_bytepos were not adjusted.
73
74 2001-04-23 Gerd Moellmann <gerd@gnu.org>
75
76 * xfaces.c (compute_char_face): If buffer is unibyte, set CH to
77 zero instead of -1.
78
79 2001-04-21 Eli Zaretskii <eliz@is.elta.co.il>
80
81 * process.c (wait_reading_process_input) [!subprocesses]:
82 Don't reference waiting_for_user_input_p, it's not defined in the
83 branch without async subprocesses support.
84
85 2001-04-19 Gerd Moellmann <gerd@gnu.org>
86
87 * keyboard.c (delete_kboard): Prevent a dangling reference
88 from current_kboard to KB, which is freed.
89
90 * process.c (wait_reading_process_input):
91 Call record_asynch_buffer_change after running timers, to make
92 read_key_sequence aware of buffer changes from under it.
93
94 2001-04-18 Gerd Moellmann <gerd@gnu.org>
95
96 * xfaces.c (Qscalable_fonts_allowed): New variable.
97 (realizing_basic_faces_p): Removed.
98 (x_face_list_fonts): Special handling for realizing_basic_faces_p
99 removed.
100 (realize_basic_faces): Specbind Qscalable_fonts_allowed to t.
101 (syms_of_xfaces): Initialize Qscalable_fonts_allowed. Change
102 default for scalable-fonts-allowed to t.
103
104 * fileio.c (Finsert_file_contents): If the file size returned from
105 stat is zero, set END to READ_BUF_SIZE. This makes sure we can
106 read from files on a procfs whose contents are generated dynamically.
107
108 2001-04-18 Eli Zaretskii <eliz@is.elta.co.il>
109
110 * gmalloc.c (__malloc_size_t) [__GNUC__]: If STDC_HEADERS is not
111 defined, include stddef.h and use __SIZE_TYPE__ instead of size_t.
112 (__memalign_hook): Make the two prototypes consistent.
113
114 2001-04-17 Gerd Moellmann <gerd@gnu.org>
115
116 * xdisp.c (redisplay_window): Make sure to clear the desired glyph
117 matrix of mini-windows.
118
119 2001-04-12 Stefan Monnier <monnier@cs.yale.edu>
120
121 * intervals.c (find_interval): Don't rebalance during signal handling.
122
123 2001-04-11 Gerd Moellmann <gerd@gnu.org>
124
125 * fns.c: Include blockinput.h.
126
127 * fns.c (Fplist_get): Don't QUIT if interrupt_input_blocked.
128
129 2001-04-10 Gerd Moellmann <gerd@gnu.org>
130
131 * fns.c (Fcompare_strings): Fix return values.
132
133 * window.c (window_scroll): Change the meaning of N to mean
134 N screen-fulls or N lines.
135 (window_scroll_pixel_based, window_scroll_line_based)
136 (scroll_command, Fscroll_other_window): Change accordingly.
137
138 * window.c (window_scroll_pixel_based, Frecenter):
139 Call window_box_height instead of using it.last_visible_y for the
140 height of the window.
141
142 * xdisp.c (redisplay_window) <recenter>: Call window_box_height
143 instead of using it.last_visible_y for the height of the window.
144
145 * w32proc.c (sys_spawnve): Quote more chars for Cygwin.
146
147 * w32.c (sys_open): Try to open file without _O_CREAT first, to be
148 able to write to hidden and system files. Make file handles
149 non-inheritable.
150
151 * fileio.c (Fcopy_file) [WINDOWSNT]: Use CopyFile.
152
153 2001-04-09 Gerd Moellmann <gerd@gnu.org>
154
155 * fns.c (Fplist_get, Fplist_put): Add QUITs.
156
157 * window.c (window_internal_height): Return 1 less if the
158 window has a header line.
159
160 * xdisp.c (try_window_id): When scrolling on a terminal, take
161 the change of window_internal_height into account.
162
163 2001-04-09 Eli Zaretskii <eliz@is.elta.co.il>
164
165 * gmalloc.c (align): If the argument SIZE would overflow
166 __malloc_ptrdiff_t, fail right away.
167
168 2001-04-06 Gerd Moellmann <gerd@gnu.org>
169
170 * xfns.c (compute_tip_xy): Add parameters WIDTH and HEIGHT.
171 Make sure the tooltip is completely visible.
172 (x_make_gc): Use FRAME_X_SCREEN_NUMBER.
173
174 * xterm.h (FRAME_X_SCREEN_NUMBER): New macro.
175
176 * xmenu.c (xmenu_show): Use FRAME_X_SCREEN_NUMBER.
177
178 2001-04-06 Dave Love <fx@gnu.org>
179
180 * composite.c (update_compositions) <check_mask & CHECK_HEAD>:
181 Fix test of `from'.
182
183 2001-04-06 Gerd Moellmann <gerd@gnu.org>
184
185 * composite.h (COMPOSITION_VALID_P): Allow integers as cdrs of PROP.
186
187 * xdisp.c (Qinhibit_eval_during_redisplay): Make it a Lisp_Object.
188
189 2001-04-05 Gerd Moellmann <gerd@gnu.org>
190
191 * sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
192
193 * editfns.c (Fcurrent_time_zone): Accept spaces in timezone names.
194
195 * xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
196 (syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
197
198 * xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
199 shell widget's position only if it is non-null.
200
201 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]:
202 Set f->output_data.x->widget to null after destroying it.
203
204 * fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
205 FILENAME to bring it in synch with the documentation.
206
207 * xfaces.c (realizing_basic_faces_p): Renamed from
208 realize_default_face_p.
209 (realize_basic_faces): Set/clear realizing_basic_faces_p.
210 (realize_default_face): Don't set the flag.
211
212 2001-04-04 Gerd Moellmann <gerd@gnu.org>
213
214 * lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
215
216 * keyboard.c (echoing, echo_message_buffer): Make externally visible.
217
218 * xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
219 the buffer that was used for echoing.
220
221 * xfaces.c (best_matching_font): Remove unused parameter PATTERN.
222 (first_font_matching): Removed unused function.
223 (x_face_list_fonts): Remove unused parameter SCALABLE_P.
224 (may_use_scalable_font_p): Remove parameter FONT; rename
225 parameter NAME to FONT.
226 (x_face_list_fonts): Fix missing bounds check.
227 (realizing_default_face_p): New variable.
228 (realize_default_face): Set and clear that flag.
229 (x_face_list_fonts): When called during the realization of the
230 default face, and no matching fonts are found when ignoring
231 scalable fonts and fonts matching a regexp from
232 face-ignored-fonts, try without ignoring fonts.
233
234 2001-04-03 Gerd Moellmann <gerd@gnu.org>
235
236 * xfns.c (postprocess_image): New function.
237 (lookup_image): Call it for all image types except PostScript.
238 (x_kill_gs_process): Call postprocess_image.
239
240 * xterm.c (x_use_underline_position_properties): New variable.
241 (x_draw_glyph_string): Use it.
242 (syms_of_xterm): DEFVAR_BOOL it.
243
244 2001-04-02 Gerd Moellmann <gerd@gnu.org>
245
246 * xterm.c (x_alloc_nearest_color_1): New function.
247 (x_alloc_nearest_color): Use it.
248 (x_color_cells): Take a Display as argument, instead of a frame.
249 (cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
250 (cvt_string_to_pixel, cvt_pixel_dtor): New functions.
251 (x_initialize): Register cvt_string_to_pixel as resource converter
252 string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
253
254 2001-03-30 Gerd Moellmann <gerd@gnu.org>
255
256 * xdisp.c (get_overlay_strings): Set iterator's end_charpos.
257 (set_iterator_to_next): If a string from a display property ends,
258 consider the case that this might also be the end of an
259 overlay string having the display property.
260
261 * xdisp.c (handle_display_prop): Fix recognition of subproperty lists.
262
263 * xdisp.c (reseat_to_string): Undo last change.
264
265 * dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
266 matrix of a window when the header line changes, when
267 new rows are allocated, or when the width changes.
268
269 2001-03-30 Eli Zaretskii <eliz@is.elta.co.il>
270
271 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last change.
272
273 2001-03-29 Eli Zaretskii <eliz@is.elta.co.il>
274
275 * fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
276 deprecated.
277
278 2001-03-29 Gerd Moellmann <gerd@gnu.org>
279
280 * data.c (Fsubr_interactive_form): New function.
281 (syms_of_data): Defsubr it.
282
283 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
284 (live_float_p, live_misc_p): Return 1 only if the offset of the
285 pointer in its block is >= 0.
286
287 2001-03-28 Paul Eggert <eggert@twinsun.com>
288
289 * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
290 microseconds calcuation. Avoid double-rounding problem.
291 In doc string, warn that the result is approximate.
292
293 2001-03-28 Gerd Moellmann <gerd@gnu.org>
294
295 * eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
296 bind `inhibit-eval-during-redisplay' to t.
297
298 * lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
299
300 * xdisp.c (inhibit_eval_during_redisplay)
301 (Qinhibit_eval_during_redisplay): New variables.
302 (safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
303 don't eval, return nil instead.
304 (syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
305 Initialize Qinhibit_eval_during_redisplay.
306
307 * xdisp.c (reseat_to_string): If STRING is multibyte, set
308 the iterator's multibyte_p flag.
309
310 * xfaces.c (realize_basic_faces): Decrement menu_face_change_count
311 instead of setting it to zero; it's incremented for each frame
312 where the menu face is changed.
313
314 * xterm.c (x_draw_relief_rect): Extend left shadow to the bottom;
315 change bottom shadow accordingly.
316
317 * xterm.c (expose_window_tree, expose_frame): Don't compute
318 intersections here.
319 (expose_window): Do it here instead.
320 (x_draw_glyph_string): Fix a computation of the underline position.
321
322 * bytecode.c (BYTE_CODE_QUIT): New macro.
323 (Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
324
325 2001-03-27 Gerd Moellmann <gerd@gnu.org>
326
327 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
328 Give up if matrix starts in an ellipsis.
329 (init_from_display_pos): Do nothing if POS doesn't specify
330 a dpvec_index but the iterator has such a position.
331
332 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
333
334 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
335 x/y position is (0, 0) after destroying the menu bar, restore
336 its original position.
337
338 * xdisp.c (in_ellipses_for_invisible_text_p): New function.
339 (init_from_display_pos): Use it.
340 (try_window_reusing_current_matrix): Don't use cursor_row_p.
341
342 2001-03-26 Gerd Moellmann <gerd@gnu.org>
343
344 * xdisp.c (try_window_id): Undo last change.
345
346 2001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
347
348 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
349
350 * buffer.c (syms_of_buffer): Doc fix.
351
352 2001-03-26 Gerd Moellmann <gerd@gnu.org>
353
354 * xfaces.c (x_update_menu_appearance): Use local variable
355 popup_path for setting font resources.
356
357 2001-03-25 Eli Zaretskii <eliz@is.elta.co.il>
358
359 * frame.c (Fframe_list): Don't reference tip_frame if
360 HAVE_WINDOW_SYSTEM is not defined.
361
362 * emacs.c (main): Update the copyright year. From Werner LEMBERG
363 <wl@gnu.org>.
364
365 2001-03-25 Gerd Moellmann <gerd@gnu.org>
366
367 * xdisp.c (init_from_display_pos): Test invisible property
368 with TEXT_PROP_MEANS_INVISIBLE instead of NILP.
369
370 * xdisp.c (redisplay_internal) <update one window>: Make sure
371 last_arrow_position and last_arrow_string are set.
372
373 * frame.c (Fframe_list): Don't return a tooltip frame.
374
375 2001-03-23 Gerd Moellmann <gerd@gnu.org>
376
377 * xdisp.c (mark_window_display_accurate_1): New function,
378 extracted from mark_window_display_accurate.
379 Compute BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED,
380 BUF_BEG_UNCHANGED, BUF_END_UNCHANGED.
381 (mark_window_display_accurate): Use it.
382 (redisplay_internal): Use it for the selected window.
383 (redisplay_internal): Avoid duplicate mark_window_display_accurate
384 for the selected frame.
385
386 * xdisp.c Use make_number, for readability.
387 (try_window_id): Disable rows below the window end.
388 (try_window_reusing_current_matrix): Use cursor_row_p.
389 (try_window_reusing_current_matrix) <scrolling up>: Fix disabling
390 of rows.
391 (init_from_display_pos): If POS specifies a position in a display
392 vector, maybe get the iterator set up for that ellipsis.
393
394 * xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
395
396 2001-03-23 Eli Zaretskii <eliz@is.elta.co.il>
397
398 * xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
399
400 2001-03-23 Gerd Moellmann <gerd@gnu.org>
401
402 * xfaces.c (x_update_menu_appearance): Use a different path
403 for Lucid popup menus.
404
405 2001-03-22 Stefan Monnier <monnier@cs.yale.edu>
406
407 * xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
408
409 * xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
410 (string_buffer_position): Use `make_number'.
411
412 2001-03-22 Gerd Moellmann <gerd@gnu.org>
413
414 * xfaces.c (x_update_menu_appearance): Renamed from
415 x_set_menu_face_resources. Use different resources for popups.
416
417 * lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
418 (GC_CHECK_STRING_BYTES): Don't define.
419
420 * xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
421 Removed, together with subroutines.
422 (x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
423 (realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
424
425 * dispextern.h (x_set_menu_resources_from_menu_face):
426 Remove prototype.
427
428 * xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
429 Remove calls to x_set_menu_resources_from_menu_face.
430
431 * xfaces.c (xm_set_menu_resources_from_menu_face):
432 Remove #ifndef LESSTIF_VERSION.
433
434 * xmenu.c: Include widget.h.
435 (single_submenu): Return int. Some cleanup.
436 (set_frame_menubar): Call x_set_menu_resources_from_menu_face.
437
438 2001-03-21 Gerd Moellmann <gerd@gnu.org>
439
440 * xterm.c (x_update_window_end): Handle overwritten mouse face
441 also for tool bar windows.
442 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
443 DRAW is DRAW_IMAGE_RAISED.
444
445 2001-03-20 Gerd Moellmann <gerd@gnu.org>
446
447 * print.c (syms_of_print): Doc fixes.
448
449 * fns.c (Fmd5): Doc fix.
450
451 2001-03-19 Gerd Moellmann <gerd@gnu.org>
452
453 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
454 Clear area of the frame not occupied by the scroll bar.
455
456 * xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
457 tip frame's root window buffer to *tip* right after creating
458 the frame.
459
460 * xdisp.c (highlight_trailing_whitespace): Glyphs whose object
461 is an integer don't have to be for space characters.
462
463 2001-03-16 Gerd Moellmann <gerd@gnu.org>
464
465 * indent.c (current_column, current_column_1, Fmove_to_column)
466 (compute_motion): Handle characters from display vectors differently.
467
468 2001-03-15 Kenichi Handa <handa@etl.go.jp>
469
470 * xterm.c (x_draw_glyph_string): Draw relief (if any) before
471 drawing glyph string.
472
473 2001-03-15 Gerd Moellmann <gerd@gnu.org>
474
475 * keyboard.c (timer_check): Preserve the value of deactivate-mark.
476 (command_loop_1): Undo last change.
477
478 * xterm.c (fast_find_position): Return the correct vpos.
479
480 * data.c (store_symval_forwarding): Add parameter BUF. If BUF is
481 non-null, set a per-buffer value in BUF instead of the current buffer.
482 (swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
483 Call store_symval_forwarding with BUF null.
484 (set_internal): Call store_symval_forwarding with the BUF
485 parameter passed to set_internal. Formerly, the value was always
486 set in the current buffer; the buffer recorded in specbind for
487 this case wasn't used.
488 (arith_driver): Reindent.
489
490 * buffer.c (swap_out_buffer_local_variables):
491 Call store_symval_forwarding with BUF null.
492
493 * lisp.h (store_symval_forwarding): Change prototype.
494
495 * eval.c (specbind): Call store_symval_forwarding with BUF null.
496
497 2001-03-14 Gerd Moellmann <gerd@gnu.org>
498
499 * frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
500 FOR_DELETION. Avoid resizing the mini-window of the selected
501 frame if FOR_DELETION is set.
502 (Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
503 (Fmake_frame_invisible): Change calls to do_switch_frame for new
504 signature.
505
506 * window.c (Fset_window_configuration): Change call to
507 do_switch_frame to new format.
508
509 * keyboard.c (quit_throw_to_read_char): Change call to
510 do_switch_frame to new format.
511
512 * lisp.h (do_switch_frame): Change prototype.
513
514 * frame.c (Fframe_parameters): In the `buffer-list' frame
515 parameter, store the buffer list of FRAME, not the list of the
516 selected frame.
517
518 * xterm.c (x_draw_glyph_string_box): Don't draw a full-width
519 box just because the glyph row's full_width_p flag is set.
520
521 2001-03-14 Eli Zaretskii <eliz@is.elta.co.il>
522
523 * xdisp.c (highlight_trailing_whitespace): On character terminals,
524 skip the padding blanks inserted in extend_face_to_end_of_line,
525 before checking for trailing whitespace.
526
527 2001-03-13 Gerd Moellmann <gerd@gnu.org>
528
529 * xmenu.c (popup_activate_callback, popup_deactivate_callback):
530 Remove special handling for LessTif/Motif.
531 (toplevel): Don't include Xm/Xm.h.
532
533 * xterm.c (XTread_socket) <LeaveNotify, EnterNotify>:
534 Remove workaround code for LessTif; it doesn't work anymore.
535
536 * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
537 Xm/ScrollBarP.h.
538
539 * xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]:
540 Don't access private scroll bar data; it's no longer necessary with
541 contemporary LessTif.
542
543 * xfaces.c (xm_set_menu_resources_from_menu_face):
544 Change #if 0 to #ifndef LESSTIF_VERSION.
545
546 * xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
547 removing button grabs.
548
549 2001-03-13 Kenichi Handa <handa@etl.go.jp>
550
551 * fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
552 and clip-large-size-font as obsolete.
553
554 * lread.c (read_multibyte): Check the validity of multibyte
555 sequence. If invalid, return the first byte.
556
557 2001-03-12 Gerd Moellmann <gerd@gnu.org>
558
559 * keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
560 before running the command; timer functions or process
561 filters may have set it.
562
563 2001-03-12 Eli Zaretskii <eliz@is.elta.co.il>
564
565 * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
566 Doc fix.
567
568 2001-03-12 Gerd Moellmann <gerd@gnu.org>
569
570 * xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
571 to sprintf.
572
573 2001-03-09 Gerd Moellmann <gerd@gnu.org>
574
575 * dispextern.h (string_buffer_position): Add prototype.
576
577 * xdisp.c (string_buffer_position, display_prop_string_p)
578 (single_display_prop_string_p): New functions.
579
580 * xterm.c (note_mouse_highlight): If there's no help-echo on
581 a string, look at the buffer text ``under'' it.
582
583 * keyboard.c (make_lispy_event): Add string info to the event,
584 analogous to what's done on mode lines.
585 (read_key_sequence): For a click on a string, consider `local-map'
586 and `keymap' of that string.
587
588 * keyboard.c (make_lispy_event, make_lispy_movement):
589 Adjust calls to buffer_posn_from_coords to new format.
590
591 * dispextern.h (buffer_posn_from_coords): Adjust prototype.
592
593 * dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
594 POS; return void.
595
596 * fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
597 flags argument to emacs_open; it seems to conflict with O_EXCL.
598
599 2001-03-09 Kenichi Handa <handa@etl.go.jp>
600
601 * composite.h (struct composition): Change types of members;
602 glyph_len to unsigned, width to unsigned short.
603
604 2001-03-08 Andrew Innes <andrewi@gnu.org>
605
606 * w32menu.c (add_menu_item): Fix problems with using ownerdraw for
607 menu titles.
608
609 2001-03-08 Gerd Moellmann <gerd@gnu.org>
610
611 * xdisp.c (handle_display_prop): Use it->w->buffer as object,
612 instead of nil.
613
614 * xterm.c (note_mouse_highlight): Handle mouse-face and
615 help-echo in strings.
616 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
617 (fast_find_string_pos): New function.
618
619 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
620 (display_string): Call face_at_string_position with new parameter.
621
622 * xfaces.c (face_at_string_position): Add parameter MOUSE_P.
623 Handle `mouse-face'.
624
625 * dispextern.h (face_at_string_position): Change prototype.
626
627 * dired.c (directory_files_internal): Handle EAGAIN more efficiently.
628
629 * keyboard.c (make_lispy_event): Avoid generating drag events
630 if the mouse hasn't actually moved to another buffer position.
631
632 2001-03-08 Dave Love <fx@gnu.org>
633
634 * eval.c (syms_of_eval) <debug-on-error>: Doc fix.
635
636 2001-03-08 Gerd Moellmann <gerd@gnu.org>
637
638 * process.c (Fset_process_window_size): Fix a typo.
639
640 2001-03-08 Kenichi Handa <handa@etl.go.jp>
641
642 * coding.c (detect_coding_sjis): Do more rigid check.
643 (detect_coding_big5): Likewise.
644 (decode_coding_sjis_big5): Likewise.
645 (Fdetect_coding_region): Call detect_coding_system with tailing
646 anchor byte `\0' for more rigid detection.
647 (detect_coding_mask): Fix the incorrect handling of arg MULTIBYTEP.
648 (Fdetect_coding_string): Likewise.
649
650 2001-03-07 Stefan Monnier <monnier@cs.yale.edu>
651
652 * bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
653 a string before extracting its data.
654
655 2001-03-07 Gerd Moellmann <gerd@gnu.org>
656
657 * window.c (Frecenter): Rewrite code handling negative values
658 of ARG on graphical frames.
659
660 2001-03-07 Eli Zaretskii <a34785@is.elta.co.il>
661
662 * window.c (displayed_window_lines): If W->start is outside the
663 accessible portion of the buffer, call start_display with BEGV or
664 ZV instead of W->start.
665
666 2001-03-07 Gerd Moellmann <gerd@gnu.org>
667
668 * buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
669
670 * process.c (Fset_process_filter): Don't crash if the input
671 file descriptor of PROCESS is closed.
672 (Fset_process_window_size): Likewise.
673
674 2001-03-06 Kenichi Handa <handa@etl.go.jp>
675
676 * xterm.c (XTflash): Make the timeout of select shorter, and call
677 select repeatedly until the desired time expires.
678
679 2001-03-06 Gerd Moellmann <gerd@gnu.org>
680
681 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
682
683 * xfns.c (Fx_create_frame): Clear Vwindow_list.
684
685 * lisp.h (Vwindow_list): Declare extern.
686
687 2001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
688
689 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
690
691 2001-03-06 Gerd Moellmann <gerd@gnu.org>
692
693 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
694 to detect a case where we have to highlight a different region
695 despite not having left the currently highlighted region.
696 Set mouse_face_overlay in the x_display_info.
697 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
698
699 * xterm.h (struct x_display_info): Add mouse_face_overlay.
700
701 * buffer.c (mouse_face_overlay_overlaps): New function.
702
703 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
704 (Qmouse_face): Declare extern.
705
706 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
707 if face_change_count is non-zero.
708
709 2001-03-06 Kenichi Handa <handa@etl.go.jp>
710
711 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
712 that the source is unibyte.
713
714 2001-03-05 Dave Love <fx@gnu.org>
715
716 * xterm.c (XTmouse_position): Fix typo.
717
718 2001-03-05 Gerd Moellmann <gerd@gnu.org>
719
720 * minibuf.c (read_minibuf): Clean up the binding stack if
721 called noninteractively.
722
723 2001-03-05 Kenichi Handa <handa@etl.go.jp>
724
725 * coding.c (syms_of_coding): Docstring modified.
726
727 2001-03-05 Kenichi Handa <handa@etl.go.jp>
728
729 * charset.c (char_to_string): If a single byte char has modifier
730 bits that can't be reflected to the character code, ignore them
731 instead of signaling an error.
732
733 2001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
734
735 * s/msdos.h: Update copyright notice.
736
737 * dosfns.h: Update copyright notice.
738
739 * dosfns.c: Update copyright notice.
740
741 * msdos.c: Update copyright notice.
742
743 2001-03-02 Gerd Moellmann <gerd@gnu.org>
744
745 * xterm.c (glyph_rect): New function.
746 (XTmouse_position): Use it to raise the threshold for mouse
747 movement event generation.
748
749 2001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
750
751 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
752 specifies (reverse . t), reverse the initial screen colors.
753 (IT_set_frame_parameters): If the property is foreground-color,
754 but we are reversing the colors, set bg_set, not fg_set.
755 Likewise for setting background-color and reversing: set fg_set.
756 Set unspecified-fg and unspecified-bg correctly when (reverse . t) is
757 in effect.
758
759 * xfaces.c (Finternal_set_lisp_face_attribute)
760 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
761 parameters alist.
762
763 2001-03-02 Gerd Moellmann <gerd@gnu.org>
764
765 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
766 to a single slash in the middle of file names.
767
768 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
769 Accept only alphanumeric time zone names.
770
771 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
772 or width area.
773 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
774 a widget to zero height.
775
776 2001-03-01 Gerd Moellmann <gerd@gnu.org>
777
778 * window.c (Fwindow_end): Call move_it_past_eol only if
779 ending up on a partially visible line.
780
781 2001-03-01 Dave Love <fx@gnu.org>
782
783 * ccl.c (Fccl_execute): Doc fix.
784
785 2001-03-01 Gerd Moellmann <gerd@gnu.org>
786
787 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
788 of the tool bar before calling x_figure_window_size.
789
790 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
791 NULL after destroying it, otherwise XTread_socket can access a
792 destroyed widget when input is unblocked.
793
794 * xfns.c (x_set_foreground_color): Set the background of the cursor GC.
795
796 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
797 same name as before, although there was a change in fontsets.
798
799 2001-02-28 Ken Raeburn <raeburn@gnu.org>
800
801 * lisp.h (Fframe_parameter): Declare.
802
803 * window.c (set_window_buffer): Field vscroll is an int, not a
804 Lisp_Object.
805
806 2001-02-28 Gerd Moellmann <gerd@gnu.org>
807
808 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
809 NULL instead.
810
811 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
812 NULL instead.
813
814 * alloc.c (toplevel): Include process.h.
815 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
816 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
817 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
818 (allocate_vector, allocate_hash_table, allocate_window)
819 (allocate_frame, allocate_process, allocate_other_vector):
820 New functions.
821 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
822 (mark_maybe_pointer): New function.
823 (mark_memory): Also mark Lisp data to which only pointers
824 remain and not Lisp_Objects.
825 (min_heap_address, max_heap_address): New variables.
826 (mem_find): Return MEM_NIL if START is below min_heap_address or
827 above max_heap_address.
828 (mem_insert): Compute min_heap_address and max_heap_address.
829
830 * process.c (make_process): Use allocate_process.
831
832 * frame.c (make_frame): Use allocate_frame.
833
834 * window.c (make_window, make_dummy_parent): Use allocate_window.
835 (Fcurrent_window_configuration): Use allocate_other_vector.
836
837 * lisp.h (allocate_vectorlike): Remove prototype.
838 (allocate_vector, allocate_other_vector, allocate_frame)
839 (allocate_window, allocate_process, allocate_hash_table):
840 Add prototypes.
841
842 * fns.c (Fdelete, larger_vector): Use allocate_vector.
843 (make_hash_table, copy_hash_table): Use allocate_hash_table.
844
845 2001-02-27 Kenichi Handa <handa@etl.go.jp>
846
847 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
848 treat the produced bytes as a valid multibyte sequence.
849
850 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
851 (ccl_driver) <CCL_WriteMultibyteChar2>:
852 Use CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
853 <ccl_finish>: Set ccl->eight_bit_control properly.
854
855 * ccl.h (struct ccl_program): New member eight_bit_control.
856
857 2001-02-26 Stefan Monnier <monnier@cs.yale.edu>
858
859 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
860 accessible_keymaps_char_table.
861 (accessible_keymaps_char_table): Obey `is_metized'.
862 (where_is_internal, Fwhere_is_internal): Don't confuse int and
863 Lisp_Object.
864
865 2001-02-26 Gerd Moellmann <gerd@gnu.org>
866
867 * dispnew.c: Check HAVE_TERM_H before including term.h.
868
869 2001-02-24 Andrew Innes <andrewi@gnu.org>
870
871 * makefile.w32-in: Update copyright notice.
872
873 2001-02-24 Stefan Monnier <monnier@cs.yale.edu>
874
875 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
876
877 2001-02-24 Kenichi Handa <handa@etl.go.jp>
878
879 * Makefile.in (lisp): Add international/utf-8.elc.
880
881 * fontset.c (Fnew_fontset): Fix handling of the case that an
882 element of FONTLIST is a cons of family and registry.
883
884 2001-02-23 Jason Rumney <jasonr@gnu.org>
885
886 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
887 to height unconditionally.
888
889 * w32term.c (x_set_glyph_string_background_width): Extend the
890 background face to the end of the drawing area in the text area, only.
891 (x_insert_glyphs): Call window_box_left to obtain the left
892 x-coordinate of the area to shift.
893
894 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
895 safe_run_hooks.
896
897 2001-02-22 Andrew Innes <andrewi@gnu.org>
898
899 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header files.
900 ($(BLD)\dispnew.obj):
901 ($(BLD)\editfns.obj):
902 ($(BLD)\fileio.obj):
903 ($(BLD)\filelock.obj):
904 ($(BLD)\keyboard.obj):
905 ($(BLD)\w32proc.obj):
906 ($(BLD)\process.obj):
907 ($(BLD)\sysdep.obj): Ditto.
908
909 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
910 header files.
911 ($(BLD)/dispnew.$(O)):
912 ($(BLD)/editfns.$(O)):
913 ($(BLD)/fileio.$(O)):
914 ($(BLD)/filelock.$(O)):
915 ($(BLD)/keyboard.$(O)):
916 ($(BLD)/w32proc.$(O)):
917 ($(BLD)/process.$(O)):
918 ($(BLD)/sysdep.$(O)): Ditto.
919
920 2001-02-22 Gerd Moellmann <gerd@gnu.org>
921
922 * xdisp.c (forward_to_next_line_start): When taking the shortcut
923 at the start of the function, check that the \n in it->c is
924 from the iterator's current position.
925
926 * xdisp.c (handle_single_display_prop): Add parameter
927 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
928 properties which replace the display of text with something else.
929 (handle_display_prop): Call handle_single_display_prop with
930 additional argument saying if we already replaced text display
931 with something else. Use AREF.
932 (with_echo_area_buffer_unwind_data, display_menu_bar)
933 (decode_mode_spec_coding): Use AREF and ASIZE.
934
935 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
936 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
937 * vmstime.h: Files removed.
938
939 * unexencap.c, unexfx2800.c: Files removed.
940
941 * dispnew.c (direct_output_for_insert): Give up if we are showing
942 a message or just cleared the message because we might need to
943 resize the echo area window or display an empty echo area.
944
945 2001-02-21 Gerd Moellmann <gerd@gnu.org>
946
947 * xdisp.c (redisplay_internal): Do the
948 mark_window_display_accurate after all windows have been
949 redisplayed because this call resets flags in buffers which are
950 needed for proper redisplay.
951
952 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c:
953 Use display_hourglass_p, start_hourglass, cancel_hourglass instead of
954 the old names.
955
956 * w32term.h (struct x_output): Rename busy_cursor to hourglass_cursor,
957 busy_window to hourglass_window, busy_p to hourglass_p.
958
959 * msdos.h (struct x_output): Rename busy_window to
960 hourglass_window, busy_p to hourglass_p.
961
962 * xterm.h (struct x_output): Rename busy_cursor to hourglass_cursor,
963 busy_window to hourglass_window, busy_p to hourglass_p.
964
965 * xfns.c: Rename everything containing *busy_cursor* and similar
966 to *hourglass*.
967 (syms_of_w32fns): Rename x-busy-pointer-shape to
968 x-hourglass-pointer-shape, display-busy-cursor to
969 display-hourglass, busy-cursor-delay to hourglass-delay.
970
971 * w32fns.c: Rename everything containing *busy_cursor* and similar
972 to *hourglass*.
973 (syms_of_w32fns): Rename x-busy-pointer-shape to
974 x-hourglass-pointer-shape, display-busy-cursor to
975 display-hourglass, busy-cursor-delay to hourglass-delay.
976
977 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
978 of its busy_p flag.
979
980 * dispextern.h (start_hourglass, cancel_hourglass)
981 (display_hourglass_p): Renamed from *busy_cursor*.
982
983 2001-02-20 Gerd Moellmann <gerd@gnu.org>
984
985 * keyboard.c (read_char): When an event from unread-command-events
986 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
987
988 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
989 equal to the current buffer.
990
991 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
992 nil, otherwise we're left with truncate_lines t when a message
993 is printed with message-truncate-lines bound to t.
994
995 2001-02-19 Gerd Moellmann <gerd@gnu.org>
996
997 * window.c (Fmove_to_window_line): Undo last change.
998 (displayed_window_lines): Call line_bottom_y to determine
999 the line's bottom position.
1000
1001 * dispextern.h (line_bottom_y): Add prototype.
1002
1003 * xdisp.c (line_bottom_y): New function extracted from pos_visible_p.
1004 (pos_visible_p): Use it.
1005
1006 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
1007 set redisplaying_p to 0 here instead of in Frecursive_edit.
1008 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
1009 set redisplaying_p.
1010
1011 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
1012 New variables.
1013 (syms_of_xdisp): Initialize new variables.
1014 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
1015 Specbind `inhibit-menubar-update' when updating the menu bar.
1016
1017 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
1018 safe_run_hooks.
1019
1020 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
1021 safe_run_hooks.
1022
1023 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
1024 is null.
1025
1026 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
1027 to the start of the file.
1028
1029 2001-02-16 Gerd Moellmann <gerd@gnu.org>
1030
1031 * window.c (set_window_buffer): Fix last change.
1032
1033 * window.c (set_window_buffer): Set window's vscroll to 0.
1034
1035 * window.c (coordinates_in_window): Increase width of area
1036 where the vertical line can be dragged.
1037
1038 * xterm.c (x_set_glyph_string_background_width): Extend the
1039 background face to the end of the drawing area in the text
1040 area, only.
1041
1042 * xdisp.c (handle_single_display_prop): Set iterator's position
1043 to where the `display' property starts, like for images.
1044 (dump_glyph): New function.
1045 (dump_glyph_row): Use it. Dump info about marginal areas.
1046
1047 * dispnew.c (direct_output_for_insert): Recognize more cases where
1048 glyphs can be written instead of being inserted.
1049
1050 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
1051 the left x-coordinate of the area to shift.
1052
1053 * dired.c (directory_files_internal): Set result list to nil
1054 before retrying.
1055
1056 2001-02-15 Kenichi Handa <handa@etl.go.jp>
1057
1058 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
1059 invalid multibyte sequence, treat *SRC as a character of
1060 eight-bit-graphic.
1061
1062 2001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
1063
1064 * textprop.c (Fset_text_properties): Doc fix.
1065
1066 2001-02-15 Gerd Moellmann <gerd@gnu.org>
1067
1068 * dispnew.c (update_text_area): Undo change of 2001-01-12.
1069
1070 2001-02-14 Dave Love <fx@gnu.org>
1071
1072 * coding.c: Doc and message fixes.
1073
1074 2001-02-14 Andrew Innes <andrewi@gnu.org>
1075
1076 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
1077 Emacs frame above the screen size.
1078
1079 2001-02-14 Gerd Moellmann <gerd@gnu.org>
1080
1081 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
1082
1083 2001-02-13 Gerd Moellmann <gerd@gnu.org>
1084
1085 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
1086 case that TO ends up beyond ZV after running before-change-functions.
1087
1088 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
1089 the selected window if it is showing the buffer in question.
1090
1091 * dired.c (directory_files_internal): Initialize errno.
1092 (toplevel): Include errno.h.
1093
1094 2001-02-13 Kenichi Handa <handa@etl.go.jp>
1095
1096 * xfaces.c (best_matching_font): New parameter width_ratio.
1097 Multiply avgwidth by width_ratio.
1098 (choose_face_font): Call best_matching_font with width_ratio
1099 calculated from the column width of C.
1100
1101 2001-02-12 Andrew Innes <andrewi@gnu.org>
1102
1103 The following changes are to draw box lines inside characters area
1104 if line-width is negative.
1105
1106 * w32term.c (x_produce_image_glyph): Pay attention to the case that
1107 face->box_line_width is negative.
1108 (x_produce_stretch_glyph): Likewise.
1109 (x_produce_glyphs): Likewise.
1110 (x_estimate_mode_line_height): Likewise.
1111 (x_draw_glyph_string_background): Likewise.
1112 (x_draw_glyph_string_foreground): Likewise.
1113 (x_draw_composite_glyph_string_foreground): Likewise.
1114 (x_draw_glyph_string_box): Likewise.
1115 (x_draw_image_foreground): Likewise.
1116 (x_draw_image_relief): Likewise.
1117 (x_draw_image_foreground_1): Likewise.
1118 (x_draw_image_glyph_string): Likewise.
1119
1120 2001-02-09 Kenichi Handa <handa@etl.go.jp>
1121
1122 The following changes are to draw box lines inside characters area
1123 if line-width is negative.
1124
1125 * xterm.c (x_produce_image_glyph): Pay attention to the case that
1126 face->box_line_width is negative.
1127 (x_produce_stretch_glyph): Likewise.
1128 (x_produce_glyphs): Likewise.
1129 (x_estimate_mode_line_height): Likewise.
1130 (x_draw_glyph_string_background): Likewise.
1131 (x_draw_glyph_string_foreground): Likewise.
1132 (x_draw_composite_glyph_string_foreground): Likewise.
1133 (x_draw_glyph_string_box): Likewise.
1134 (x_draw_image_foreground): Likewise.
1135 (x_draw_image_relief): Likewise.
1136 (x_draw_image_foreground_1): Likewise.
1137 (x_draw_image_glyph_string): Likewise.
1138
1139 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
1140 and :line-width can be negative.
1141 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be negative.
1142
1143 2001-02-09 Jason Rumney <jasonr@gnu.org>
1144
1145 * w32term.c (w32_encode_char): Treat eight bit graphic and control
1146 characters the same as ASCII and latin-1.
1147 (x_display_and_set_cursor): Check for the focus frame's selected
1148 window instead of selected_window.
1149 (x_after_update_window_line): Don't clear if frame's internal
1150 border width is zero.
1151 (x_new_font): Don't change a tooltip's size.
1152 (w32_initialize): Set char_ins_del_ok to 1.
1153
1154 * w32fns.c (Fx_show_tip): Fix calls to make_number.
1155 (x_set_font): If font hasn't changed, avoid recomputing
1156 faces and other things.
1157 (x_set_tool_bar_lines): Do nothing if frame is minibuffer-only,
1158 (Fx_create_frame): Add the tool bar height to the frame height.
1159 (x_create_tip_frame): Prevent changing the tooltip's
1160 background color by specifying a color for the default font
1161 in .Xdefaults.
1162 (Qcancel_timer): New variable.
1163 (syms_of_w32fns): Initialize and staticpro it.
1164 (Fx_hide_tip, Fx_show_tip): Use it.
1165 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
1166 the timer.
1167 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
1168
1169 * w32.c (init_environment): Duplicate local string before putenv.
1170
1171 2001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
1172
1173 * charset.c (Fstring): A typo.
1174
1175 2001-02-09 Kenichi Handa <handa@etl.go.jp>
1176
1177 * charset.c (Fstring): If all arguments are less than 256, return
1178 a unibyte string.
1179
1180 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
1181 return a unibyte string.
1182
1183 * coding.c (code_convert_region): After detecting a coding, if
1184 nothing found, set coding->composing to COMPOSITION_NO.
1185 (decode_coding_string): Likewise.
1186
1187 2001-02-08 Stefan Monnier <monnier@cs.yale.edu>
1188
1189 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
1190 to avoid overflow.
1191
1192 2001-02-07 Kenichi Handa <handa@etl.go.jp>
1193
1194 * charset.c (parse_str_to_multibyte): New function.
1195
1196 * charset.h (parse_str_to_multibyte): Extern it.
1197
1198 * print.c (print_string): If we are going to print a unibyte
1199 string into a multibyte buffer, convert the string to multibyte by
1200 str_to_multibyte.
1201
1202 2001-02-06 Andrew Innes <andrewi@gnu.org>
1203
1204 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
1205 been created. It seems we can get sent window messages such as
1206 WM_ERASEBKGND before we properly update a frame.
1207
1208 2001-02-06 Gerd Moellmann <gerd@gnu.org>
1209
1210 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
1211 Avoid some unnecessary cursor positioning.
1212
1213 2001-02-05 Gerd Moellmann <gerd@gnu.org>
1214
1215 * xfaces.c (split_font_name): Compute numeric value of XLFD_AVGWIDTH.
1216 (LFACE_AVGWIDTH): New macro.
1217 (LFACEP): Use AREF.
1218 (check_lface_attrs): Check LFACE_AVGWIDTH.
1219 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
1220 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
1221 (merge_face_vectors): Check LFACE_AVGWIDTH.
1222 (Finternal_make_lisp_face): Use AREF.
1223 (xm_set_menu_resources_from_menu_face)
1224 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
1225 (Finternal_lisp_face_empty_p): Use AREF.
1226 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
1227 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
1228 Compare average widths..
1229 (best_matching_font): Arrange for comparing average widths.
1230
1231 * dispextern.h (enum lface_attribute_index):
1232 Add LFACE_AVGWIDTH_INDEX (invisible from Lisp).
1233
1234 2001-02-05 Dave Love <fx@gnu.org>
1235
1236 * puresize.h: Revert last change following loadup.el change.
1237
1238 2001-02-05 Andrew Innes <andrewi@gnu.org>
1239
1240 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
1241 invocation of temacs, to work with Windows 2000.
1242 (bootstrap-emacs): Ditto.
1243
1244 2001-02-05 Gerd Moellmann <gerd@gnu.org>
1245
1246 * xterm.c (x_display_and_set_cursor): Check for the focus
1247 frame's selected window instead of selected_window.
1248
1249 * xdisp.c (try_scrolling): If point is in the line below the
1250 window, make sure to move the iterator at least a canonical
1251 char height down.
1252
1253 * window.c (Fmove_to_window_line): Don't add 1 if window is vscrolled.
1254
1255 2001-02-05 Kenichi Handa <handa@etl.go.jp>
1256
1257 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not.
1258 If invalid, execute CCL_INVALID_CMD.
1259 (ccl_driver): If the CCL program is terminated because of
1260 CCL_STAT_INVALID_CMD, copy the remaining source data to the
1261 destination instead of throwing them away.
1262
1263 2001-02-02 Gerd Moellmann <gerd@gnu.org>
1264
1265 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
1266 faces and other things.
1267
1268 * xdisp.c (get_next_display_element): Fix case of empty
1269 display table entry.
1270
1271 2001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
1272
1273 * editfns.c (Fconstrain_to_field): Doc fix.
1274
1275 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
1276 into `thoroughly', to make it consistent with the doc string.
1277
1278 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
1279
1280 2001-02-01 Gerd Moellmann <gerd@gnu.org>
1281
1282 * search.c (search_buffer): Call set_search_regs with a byte
1283 position, not a character position.
1284
1285 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
1286 minibuffer-only,
1287
1288 2001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
1289
1290 * frame.c (Fmodify_frame_parameters): Doc fix.
1291
1292 2001-01-31 Gerd Moellmann <gerd@gnu.org>
1293
1294 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
1295 identifier which is not reserved by Standard C.
1296
1297 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
1298
1299 * window.c (enum window_part): New enumeration.
1300 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
1301 Qright_bitmap_area.
1302 (coordinates_in_window): Return an enumerator from enum
1303 window_part. Fix handling of right scroll bar.
1304 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
1305 `right-fringe' instead of `left-bitmap-area' and
1306 `right-bitmap-area'. Use enumerators from enum window_part
1307 instead of hard-coded integers.
1308 (check_window_containing, window_from_coordinates):
1309 Use enumerators from enum window_part instead of hard-coded integers.
1310 (syms_of_window): Replace Qleft_bitmap_area and
1311 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
1312
1313 2001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
1314
1315 * editfns.c (Fformat_time_string): Doc fix.
1316
1317 2001-01-31 Stefan Monnier <monnier@cs.yale.edu>
1318
1319 * keymap.c (Fwhere_is_internal): Use the first valid binding
1320 if no ascii binding is found (when firstonly is t).
1321
1322 2001-01-31 Gerd Moellmann <gerd@gnu.org>
1323
1324 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
1325 instead of Finteractive_p.
1326
1327 * lisp.h (interactive_p): Add prototype.
1328
1329 * eval.c (interactive_p): New function.
1330 (Finteractive_p): Use it.
1331
1332 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
1333
1334 2001-01-31 Dave Love <fx@gnu.org>
1335
1336 * .gdbinit (hook-run): Define to run xreload.
1337
1338 * textprop.c (Fset_text_properties): Fix newline in doc string.
1339
1340 2001-01-30 Gerd Moellmann <gerd@gnu.org>
1341
1342 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp):
1343 Use DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
1344
1345 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
1346 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
1347 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
1348
1349 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
1350 height.
1351
1352 2001-01-30 Dave Love <fx@gnu.org>
1353
1354 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
1355 AFTER_POTENTIAL_GC.
1356
1357 2001-01-29 Gerd Moellmann <gerd@gnu.org>
1358
1359 * bytecode.c (Fbyte_code) <Bcurrent_column>:
1360 Add BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
1361
1362 2001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
1363
1364 * textprop.c (Fset_text_properties): Doc fix.
1365
1366 2001-01-29 Gerd Moellmann <gerd@gnu.org>
1367
1368 * xdisp.c (forward_to_next_line_start): Remove xassert.
1369
1370 2001-01-29 Jason Rumney <jasonr@gnu.org>
1371
1372 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
1373 returning without releasing it.
1374
1375 2001-01-29 Kenichi Handa <handa@etl.go.jp>
1376
1377 * w32fns.c (w32_font_match): Allocate three more bytes to regex
1378 for '^', '$', and '\0'.
1379
1380 2001-01-28 Andrew Choi <akochoi@i-cable.com>
1381
1382 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
1383 regex for '^', '$', and '\0'.
1384
1385 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
1386 only if current_sblock has been initialized.
1387
1388 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
1389 terminal frame even if it is the only visible frame.
1390
1391 2001-01-28 Kenichi Handa <handa@etl.go.jp>
1392
1393 * fontset.c (font_family_registry): Even if FONTNAME conform to
1394 XLFD, if it specifies other fields than family and registry,
1395 return FONTANME. New argument FORCE if nonzero cancel that feature.
1396 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
1397 a signle byte character. Don't set FAMILY part to nil here.
1398 It is handled by the caller choose_face_font.
1399 (Fnew_fontset): Call font_family_registry with FORCE 0.
1400 (Fset_fontset_font): Likewise.
1401
1402 2001-01-27 Gerd Moellmann <gerd@gnu.org>
1403
1404 * xdisp.c (display_line): Don't treat a newline as fitting
1405 on the line.
1406
1407 2001-01-26 Gerd Moellmann <gerd@gnu.org>
1408
1409 * window.c (size_window): Set the window's orig_top to nil when
1410 changing heights, so that a future shrink_mini_window won't
1411 restore a bogus height.
1412
1413 * frame.c (do_switch_frame): If selected frame has a mini-window,
1414 resize that to exact size.
1415
1416 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
1417
1418 * xdisp.c (display_line): Simplify check for glyphs fitting
1419 entirely in the line.
1420
1421 * xfns.c (xic_style): New variable.
1422 (create_frame_xic): Move static variable to global scope for
1423 the case that `static' gets defined away.
1424
1425 2001-01-26 Kenichi Handa <handa@etl.go.jp>
1426
1427 * coding.c (decode_coding): Set a flag for inhibiting
1428 inconsistent eol.
1429 (code_convert_region): Always set saved_coding_symbol.
1430 (decode_coding_string): Likewise. Update coding->symbol when we
1431 encounter a inconsistent eol by the same way as code_convert_region.
1432
1433 2001-01-25 Gerd Moellmann <gerd@gnu.org>
1434
1435 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
1436 XClearArea.
1437
1438 * xterm.c (x_after_update_window_line): Don't clear if frame's
1439 internal border width is zero.
1440 (x_clear_area): New function.
1441 (x_after_update_window_line, x_clear_end_of_line)
1442 (x_scroll_bar_create, x_scroll_bar_set_handle)
1443 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
1444 instead of XClearArea.
1445
1446 * xterm.h (x_clear_area): Add prototype.
1447
1448 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
1449 which doesn't seem necessary anymore with Lesstif 0.92.
1450
1451 2001-01-25 Dave Love <fx@gnu.org>
1452
1453 * puresize.h (BASE_PURESIZE): Up to 720000.
1454
1455 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
1456
1457 2001-01-25 Gerd Moellmann <gerd@gnu.org>
1458
1459 * xdisp.c (echo_area_display): Don't call redisplay_internal
1460 when Emacs is shutting down. We can't run hooks etc. that
1461 would be necessary to do a redisplay.
1462
1463 * lread.c (read_integer): Use type EMACS_INT instead of int.
1464
1465 2001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
1466
1467 * ccl.c (ccl_driver): Fix last change.
1468
1469 2001-01-25 Kenichi Handa <handa@etl.go.jp>
1470
1471 * ccl.h (sturct ccl_program): New member suppress_error.
1472
1473 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
1474 insert error message to the output.
1475 (setup_ccl_program): Initialize ccl->suppress_error to 0.
1476
1477 * coding.h (struct coding_system): New member suppress_error.
1478
1479 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
1480 (Fset_terminal_coding_system_internal): Set the member
1481 suppress_error to 1.
1482 (Fset_safe_terminal_coding_system_internal): Likewise.
1483
1484 2001-01-24 Stefan Monnier <monnier@cs.yale.edu>
1485
1486 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
1487 as if it was a `charset'.
1488
1489 2001-01-24 Gerd Moellmann <gerd@gnu.org>
1490
1491 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
1492 value in where_is_cache; the next lookup in the cache returns
1493 something bogus if we do.
1494
1495 2001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
1496
1497 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
1498 if HAVE_WINDOW_SYSTEM isn't defined.
1499
1500 2001-01-24 Gerd Moellmann <gerd@gnu.org>
1501
1502 * fns.c (sweep_weak_table): Fix code taking items out of
1503 the hash collision chain. Some cleanup.
1504
1505 * xterm.c (x_new_font): Don't change a tooltip's size.
1506
1507 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
1508 background color by specifying a color for the default font
1509 in .Xdefaults.
1510
1511 2001-01-24 Kenichi Handa <handa@etl.go.jp>
1512
1513 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
1514 a workaround for SunOS 4's cc.
1515 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
1516 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
1517 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
1518 statement.
1519
1520 2001-01-23 Gerd Moellmann <gerd@gnu.org>
1521
1522 * xterm.c (x_set_window_size_1): New function extracted from
1523 x_set_window_size.
1524 (x_set_window_size): Use it.
1525 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
1526 doesn't have a widget, like tooltips.
1527
1528 2001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
1529
1530 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
1531
1532 2001-01-23 Kenichi Handa <handa@etl.go.jp>
1533
1534 * fns.c (Fset_char_table_default): Fix to make sub char-table
1535 correctly.
1536
1537 2001-01-22 Gerd Moellmann <gerd@gnu.org>
1538
1539 * xdisp.c (build_desired_tool_bar_string): Make sure we have
1540 a desired tool bar string, even if there are no tool bar items.
1541
1542 * xdisp.c (Ftool_bar_lines_needed): New function.
1543 (syms_of_xdisp): Defsubr it.
1544
1545 * editfns.c (Fformat): Don't extend text properties from arguments
1546 to padding chars in the result.
1547
1548 2001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
1549
1550 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
1551
1552 2001-01-20 Andrew Innes <andrewi@gnu.org>
1553
1554 * w32term.c (w32_ring_bell): Only support visible bell on w32 frames.
1555 (w32_initialize): Don't set term hooks that aren't actually needed
1556 in windowed mode.
1557
1558 * xfaces.c (realize_default_face):
1559 (realize_face):
1560 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
1561
1562 * xdisp.c (handle_single_display_prop): Remove references to
1563 FRAME_W32_CONSOLE_P.
1564
1565 * dispnew.c (Fredraw_frame): Remove reference to FRAME_W32_CONSOLE_P.
1566
1567 * frame.h (output_method): Remove output_w32_console method.
1568 (FRAME_W32_CONSOLE_P): Remove macro.
1569
1570 * frame.c (Qw32_console): Remove variable.
1571 (Fframep): Remove references to it.
1572 (syms_of_frame): Ditto.
1573 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
1574
1575 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
1576 redefinition.
1577
1578 2001-01-20 Kenichi Handa <handa@etl.go.jp>
1579
1580 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
1581
1582 2001-01-19 Andrew Innes <andrewi@gnu.org>
1583
1584 * w32.c (init_environment): Add a version-independent site-lisp
1585 directory to EMACSLOADPATH, after the version dependent one.
1586
1587 2001-01-19 Gerd Moellmann <gerd@gnu.org>
1588
1589 * editfns.c (Fbuffer_substring): Doc fix.
1590
1591 * xdisp.c (message_dolog, message2, message2_nolog):
1592 Rename parameter LEN to NBYTES.
1593
1594 2001-01-19 Kenichi Handa <handa@etl.go.jp>
1595
1596 * charset.c (strwidth): Use c_string_width.
1597 (c_string_width): New function.
1598 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
1599 Caller changed.
1600
1601 * charset.h (c_string_width, lisp_string_width): Extern them.
1602
1603 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
1604
1605 * indent.c (check_composition): Check validity of composition.
1606
1607 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
1608 characters by calling c_string_width.
1609 (x_consider_frame_title): Get byte length of frame tile string
1610 correctly.
1611 (display_mode_element): Pay attention to width of non-ASCII
1612 characters by calling strwidth.
1613
1614 2001-01-18 Gerd Moellmann <gerd@gnu.org>
1615
1616 * xfns.c (Qcancel_timer): New variable.
1617 (syms_of_xfns): Initialize and staticpro it.
1618 (Fx_hide_tip, Fx_show_tip): Use it.
1619 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
1620 the timer.
1621 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
1622
1623 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
1624
1625 * window.h (WINDOW_LIVE_P): New macro.
1626
1627 * window.c (window_size_fixed): New variable.
1628 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
1629 the doc string.
1630
1631 * eval.c (specbind): If binding a per-buffer variable which
1632 doesn't have a buffer-local value in the current buffer, change
1633 the global value by changing the value of the symbol bound in all
1634 buffers not having their own value, to make it consistent with
1635 what happens with other buffer-local variables.
1636
1637 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
1638
1639 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
1640 when searching for a newline.
1641
1642 2001-01-18 Kenichi Handa <handa@etl.go.jp>
1643
1644 * xdisp.c (display_string): Fix previous change.
1645
1646 2001-01-18 Jason Rumney <jasonr@gnu.org>
1647
1648 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
1649 GLYPH_DEBUG is defined.
1650 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
1651 true for images with `:ascent 100'.
1652 (x_set_mouse_face_gc): If the last used mouse face has gone in the
1653 meantime, use face MOUSE_FACE_ID.
1654 If first glyph isn't a character glyph, use the ASCII NUL
1655 character to determine the face.
1656 (expose_area): Do not treat left margin specially.
1657 (note_mode_line_highlight): If no local_map, check global keymap.
1658 (note_mouse_highlight): Initialize overlay.
1659 (clear_mouse_face): Don't return if tip_frame is non-nil.
1660 (show_scroll_bars): Remove unused function.
1661 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
1662 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
1663 Clip to row.
1664 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be nil.
1665 (x_free_frame_resources): Unload relief colors.
1666
1667 2001-01-17 Gerd Moellmann <gerd@gnu.org>
1668
1669 * xdisp.c (forward_to_next_line_start): Avoid calling
1670 get_next_display_element when the newline is already found.
1671 This may change the iterator's position, when its current position is
1672 equal to the iterator's stop_charpos.
1673
1674 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
1675 zero, use this method only at the end of a line.
1676
1677 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
1678 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
1679 if SCALABLE_FONTS_P is set.
1680
1681 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
1682 so that scalable fonts are included.
1683
1684 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
1685 In the cache, use a key containing the information if scalable
1686 fonts are included.
1687 (x_load_font): Adapt to change of keys in the font cache.
1688
1689 2001-01-17 Kim F. Storm <storm@filanet.dk>
1690
1691 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
1692 XListFonts to take advantage of font caching.
1693
1694 * xterm.c (x_list_fonts): Ensure caching font information when
1695 called for a null frame, which is the case frequently when Emacs
1696 starts.
1697
1698 2001-01-17 Gerd Moellmann <gerd@gnu.org>
1699
1700 * xfns.c (QCconversion): Replaces QCalgorithm.
1701
1702 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
1703
1704 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
1705 of :algorithm.
1706
1707 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
1708 not everything could be displayed.
1709
1710 * line.h, x-list-font.c: Files removed because unused.
1711
1712 2001-01-17 Andrew Innes <andrewi@gnu.org>
1713
1714 * dired.c (directory_files_internal): Convert result from readdir
1715 to a unibyte string initially, to avoid possible misinterpretation
1716 of some bytes as the internal form of Emacs characters.
1717
1718 2001-01-17 Kenichi Handa <handa@etl.go.jp>
1719
1720 * fns.c (concat): Be sure to avoid putting the same `composition'
1721 property on the adjacent regions.
1722
1723 2001-01-16 Gerd Moellmann <gerd@gnu.org>
1724
1725 * window.c (Fset_window_hscroll): Don't set window's min_hscroll here.
1726 (Fscroll_right, Fscroll_left): Set it here instead, if called
1727 interactively.
1728
1729 * buffer.c (Fset_buffer_modified_p): Set buffer's
1730 prevent_redisplay_optimizations_p flag.
1731
1732 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
1733 * sysdep.c, vmsproc.c, xselect.c: Call redisplay_preserve_echo_area
1734 with additional arg.
1735
1736 * dispextern.h, lisp.h (redisplay_preserve_echo_area):
1737 Change prototype.
1738
1739 * xdisp.c (redisplay_preserve_echo_area): Add parameter
1740 FROM_WHERE, for debugging.
1741
1742 2001-01-16 Kenichi Handa <handa@etl.go.jp>
1743
1744 * ccl.c (Fregister_ccl_program): Handle the return value of
1745 resolve_symbol_ccl_program correctly.
1746 (CCL_Extension): Fix typo (originally CCL_Extention). Caller changed.
1747
1748 2001-01-15 Gerd Moellmann <gerd@gnu.org>
1749
1750 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
1751 has gone in the meantime, use face MOUSE_FACE_ID.
1752
1753 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]:
1754 If x_display_info_for_display returns null, don't try to close
1755 the display; we didn't open it.
1756
1757 * dispnew.c (save_or_restore_current_matrices): Function removed.
1758 (save_current_matrix, restore_current_matrix): New functions.
1759 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
1760 restore the frame's current matrix. Due to the glyph pointer
1761 setup done in adjust_glyph_matrix, there is no easy way to make
1762 saving the current matrix in the desired matrix generally correct,
1763 so don't try it.
1764
1765 2001-01-15 Kenichi Handa <handa@etl.go.jp>
1766
1767 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
1768 truncation glyphs.
1769 (display_line): Optimize for wide characters.
1770 (display_string): Don't try to display a multi-column character
1771 partially. On ttys, produce more than one truncation glyph for
1772 multi-column characters that don't fit on the line.
1773
1774 2001-01-13 Kenichi Handa <handa@etl.go.jp>
1775
1776 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]:
1777 Define it instead of WORDS_BIGENDIAN. Caller changed.
1778
1779 2001-01-13 Jason Rumney <jasonr@gnu.org>
1780
1781 * w32fns.c (Fimage_size, image_ascent, lookup_image)
1782 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
1783 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1784 (tiff_format, gif_format, gs_format): Adapt to change of image margins.
1785
1786 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
1787 (x_draw_image_relief, x_draw_image_foreground_1)
1788 (x_draw_image_glyph_string): Adapt to change of image margins.
1789
1790 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
1791 variables.
1792
1793 * w32bdf.c (search_file_line, get_cached_font_char)
1794 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
1795
1796 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
1797
1798 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
1799 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
1800 (Fw32_send_sys_command): Remove unused variables.
1801 (w32_msg_pump): Add parentheses.
1802
1803 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
1804 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
1805 Add parentheses.
1806
1807 2001-01-12 Gerd Moellmann <gerd@gnu.org>
1808
1809 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
1810 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
1811 being a pair of margins.
1812 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
1813 to DEFVAR_LISP. Extend doc.
1814
1815 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
1816 margins.
1817 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
1818 pair of integers `(X . Y)', use X for the horizontal and Y for the
1819 vertical margin.
1820 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
1821 (parse_image_spec): Check it.
1822 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1823 (tiff_format, gif_format, gs_format):
1824 Use IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
1825
1826 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1827 (x_draw_image_relief, x_draw_image_foreground_1)
1828 (x_draw_image_glyph_string): Adapt to the change of image margins.
1829
1830 * dispextern.h (struct image): Replace member `margin' with
1831 `hmargin' and `vmargin'.
1832
1833 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
1834 and GLYPHS.
1835
1836 * dispnew.c (update_text_area): Put code which decrements the
1837 stop position when the row's face extends to the end of the
1838 line in #if 0.
1839
1840 * xfns.c (x_set_mouse_color): Fix color allocation.
1841
1842 * keyboard.c: Call get_local_map with new argument list.
1843
1844 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
1845
1846 * intervals.h (enum map_property): Removed.
1847 (get_local_map): Change prototype.
1848
1849 * keymap.c: Call get_local_map with new argument list.
1850 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
1851
1852 2001-01-11 Gerd Moellmann <gerd@gnu.org>
1853
1854 * xdisp.c (build_desired_tool_bar_string): Correct the computation
1855 of the size needed for the tool bar string. For the last image,
1856 use a `display' property that reaches to the end of the string.
1857
1858 * xselect.c (selection_request_dpyinfo): New variable.
1859 (x_handle_selection_request): Set it.
1860 (x_selection_request_lisp_error): Don't call
1861 x_decline_selection_request if selection request's display has
1862 been closed.
1863
1864 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]:
1865 Do the unregister_colors before calling XFreeColors.
1866
1867 2001-01-10 Dave Love <fx@gnu.org>
1868
1869 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
1870 ${SOME_MACHINE_LISP}, not ${lisp}.
1871
1872 2001-01-10 Gerd Moellmann <gerd@gnu.org>
1873
1874 * xdisp.c (display_line): On ttys, produce more than one truncation
1875 glyph for multi-column characters that don't fit on the line.
1876
1877 * xselect.c (x_reply_selection_request): Add a comment.
1878
1879 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
1880 XkbGetNames instead of XkbGetKeyboard.
1881
1882 2001-01-10 Dave Love <fx@gnu.org>
1883
1884 * sysdep.c (random): Revert the declaration.
1885
1886 2001-01-09 Gerd Moellmann <gerd@gnu.org>
1887
1888 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]:
1889 Call function string_bytes.
1890 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
1891
1892 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
1893 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
1894 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
1895 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
1896 the current sblock.
1897 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
1898 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
1899 after sweeping strings, and at the end.
1900 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
1901
1902 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
1903 ensure that pop_message is called.
1904
1905 * keyboard.c (Fexecute_extended_command): Use a
1906 record_unwind_protect to ensure that pop_message is called.
1907
1908 * lisp.h (push_message_unwind): Add prototype.
1909
1910 * xdisp.c (push_message_unwind): New function.
1911
1912 * fileio.c (do_auto_save_unwind): Do the pop_message here
1913 instead of in Fdo_auto_save.
1914 (Fdo_auto_save): Don't call pop_message.
1915
1916 2001-01-08 Ken Raeburn <raeburn@gnu.org>
1917
1918 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
1919 in inner block.
1920
1921 2001-01-08 Gerd Moellmann <gerd@gnu.org>
1922
1923 * window.c (window_scroll_pixel_based): Adjust glyph matrices
1924 when increasing window's vscroll.
1925
1926 * macros.c (Qkbd_macro_termination_hook): New variable.
1927 (syms_of_macros): Initialize and staticpro it.
1928 (pop_kbd_macro): Run kbd-macro-termination-hook.
1929
1930 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
1931
1932 2001-01-07 Dave Love <fx@gnu.org>
1933
1934 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
1935 arglist, for documentation's sake.
1936
1937 2001-01-06 Andrew Innes <andrewi@gnu.org>
1938
1939 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
1940 of *.pdb.
1941
1942 2001-01-05 Andrew Innes <andrewi@gnu.org>
1943
1944 * term.c (update_end): Don't check updating_frame; for some reason
1945 this can be 0 sometimes, such as after dismissing a popup menu,
1946 and isn't necessary given the explicit frame argument.
1947
1948 2001-01-05 Gerd Moellmann <gerd@gnu.org>
1949
1950 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
1951 on some systems, and an unsigned long on others, like FreeBSD 4.1.
1952
1953 2001-01-04 Gerd Moellmann <gerd@gnu.org>
1954
1955 * xterm.c (clear_mouse_face): Don't return if tip_frame is non-nil.
1956
1957 * xfns.c (x_create_tip_frame): Preserve the value of
1958 face_change_count around the creation of the tip frame.
1959
1960 * xfns.c (last_show_tip_args): New variable.
1961 (compute_tip_xy): New function.
1962 (Fx_show_tip): Reuse an existing tip frame, if possible.
1963 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
1964
1965 2001-01-04 Dave Love <fx@gnu.org>
1966
1967 * editfns.c (Fformat): Doc fix.
1968
1969 * systime.h (set_file_times): Prototype.
1970
1971 * widget.h (EmacsFrameSetCharSize_): Prototype.
1972
1973 * sysdep.c (random, srandom): Declare explicitly.
1974
1975 * dispextern.h (move_it_vertically_backward): Declare.
1976
1977 2001-01-04 Gerd Moellmann <gerd@gnu.org>
1978
1979 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
1980 like in Fx_create_frame.
1981
1982 * xfaces.c (set_font_frame_param): Don't do anything for
1983 non-graphical frames.
1984
1985 * window.c (Fdelete_other_windows): Set window's window_end_valid
1986 to nil when changing the window's start. Don't change the
1987 window's start when its top position hasn't changed. If we do,
1988 this will set the window's optional_new_start, which act's like a
1989 force_start during redisplay with C-x 1 M-> under particular
1990 circumstances (see report from Per Starback to emacs-pretest-bug
1991 from 2000-12-13.).
1992
1993 2001-01-03 Gerd Moellmann <gerd@gnu.org>
1994
1995 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
1996 short cut at the start of the function. Add an assertion.
1997 (reseat_at_next_visible_line_start): Add an assertion.
1998
1999 * window.c (Frecenter): When changing the window start, set the
2000 window's window_end_valid to nil.
2001 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
2002
2003 * dispextern.h (move_it_past_eol): Add prototype.
2004
2005 * xdisp.c (move_it_past_eol): New function.
2006
2007 * window.c (Fwindow_end): Doc fix.
2008
2009 2001-01-03 Dave Love <fx@gnu.org>
2010
2011 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3 kluge.
2012
2013 2001-01-03 Gerd Moellmann <gerd@gnu.org>
2014
2015 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
2016 the enabled_p flag of the glyph row at window_end_vpos to 0.
2017 (handle_single_display_prop): Fix last change.
2018
2019 2001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2020
2021 * window.c (Frecenter): Doc fix.
2022
2023 2001-01-02 Andrew Innes <andrewi@gnu.org>
2024
2025 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
2026
2027 * frame.h (output_method): Add output_w32_console method.
2028 (FRAME_W32_CONSOLE_P): New macro.
2029
2030 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
2031 use output_w32_console method.
2032 (Qw32_console): New Lisp_Object.
2033 (Fframep): Return it.
2034 (syms_of_frame): Init it.
2035 (Fframe_parameters): Report w32console as font for w32_console frames.
2036
2037 * xfaces.c (realize_default_face): Set face foreground and
2038 background to unspecified for w32_console frames.
2039 (realize_face): Realize face cache for w32_console frames.
2040 (realize_tty_face): Accept w32_console frames.
2041
2042 * xdisp.c (handle_single_display_prop): Return if frame is w32_console.
2043 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
2044 necessary, even if running interactively.
2045
2046 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
2047 w32_console frames.
2048
2049 * w32term.c (x_update_begin):
2050 (x_update_end):
2051 (x_clear_frame):
2052 (x_ins_del_lines):
2053 (x_change_line_highlight):
2054 (x_delete_glyphs):
2055 (w32_ring_bell):
2056 (x_update_begin):
2057 (x_update_end):
2058 (w32_reassert_line_highlight):
2059 (w32_frame_rehighlight):
2060 (w32_frame_raise_lower): Do nothing if not w32 frame.
2061
2062 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
2063
2064 * w32fns.c (Fx_display_color_cells): Determine correct value, when
2065 system doesn't tell us directly.
2066 (Fx_display_visual_class): Implement properly.
2067
2068 2001-01-02 Gerd Moellmann <gerd@gnu.org>
2069
2070 * window.c (Frecenter): Handle centering in graphical frames
2071 specially. Centering on the basis of line counts doesn't work
2072 reliably with variable-height lines.
2073
2074 2001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
2075
2076 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
2077 and al[].
2078
2079 * composite.c (run_composition_function): Remove unused var `val'.
2080 (update_compositions): Remove unused variable `hook'.
2081
2082 * intervals.c (get_local_map): Remove unused variable `tem'.
2083
2084 * doprnt.c (doprnt1): Remove unused variable `size'.
2085
2086 * fns.c (Flength): Remove unused variable `tail'.
2087 (Fdelete): Remove unused variable `size'.
2088
2089 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
2090 and `gcpro2'.
2091
2092 * doc.c (Fsnarf_documentation): Remove unused vars `fun' and `tem'.
2093
2094 * data.c (find_symbol_value): Remove extra 3rd argument in the
2095 call to swap_in_symval_forwarding.
2096
2097 * undo.c (Fprimitive_undo): Remove unused block-scope variable `end'.
2098
2099 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
2100 (trivial_regexp_p): Remove unused variable `c'.
2101 (boyer_moore): Remove unused variable `k'.
2102
2103 * indent.c (current_column): Remove unused variable `stopchar'.
2104 (Fcompute_motion): Remove unused variable `contin'.
2105
2106 * casefiddle.c (casify_object): Remove unused variable `tolen'.
2107
2108 * dired.c (directory_files_internal): Fix a typo in a comment.
2109 Remove an unused variable `handler'.
2110 (file_name_completion): Remove unused function-scope variable `dp'.
2111 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
2112 on BSD4_2.
2113
2114 * fileio.c (e_write): Remove unused variable `require_encoding_p'.
2115
2116 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
2117 and `buf'.
2118 (Fmarker_insertion_type): Remove unused variable `buf'.
2119
2120 * insdel.c (make_gap): Remove unused variable `result'.
2121
2122 * keyboard.c (record_char): Remove unused function-scope var `help'.
2123 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
2124 (menu_bar_items): Remove unused function-scope variable `tem'.
2125
2126 * fontset.c (fontset_ref): Remove unused variable `i'.
2127 (fontset_set): Remove unused variables `j' and `tmp'.
2128 (make_fontset): Remove unused variables `i', `j', `elt' and `base_elt'.
2129 (make_fontset_for_ascii_face): Remove unused variable `name'.
2130 (fs_load_font): Remove unused variable `font_idx'.
2131 (fs_query_fontset): Remove unused function-local variable `fontset'.
2132 (list_fontsets): Remove unused variable `tail'.
2133 (Fnew_fontset): Remove unused variables `family' and `registry'.
2134 (accumulate_font_info): Remove unused variable `tmp'.
2135 (Ffontset_font): Remove unused variable `id'.
2136 (syms_of_fontset): Remove unused variable `i'.
2137
2138 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
2139 to x_term_init.
2140 (lookup_image): Remove unused variable `file'.
2141 (xbm_load): Remove unused variables `bitmap_data', `height', and
2142 `width'. Remove function-local variable `i', leave the
2143 block-local one.
2144 (gif_load): Remove unused variable `inc'.
2145
2146 * xterm.c (XTread_socket): Remove unused variables `p' and `pend'.
2147 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
2148 leave only the one in the inner block.
2149
2150 * xfaces.c (face_fontset, realize_default_face): Remove unused
2151 variable `fontset'.
2152 (face_at_buffer_position): Remove unused variable `multibyte_p'.
2153
2154 * term.c (encode_terminal_code): Remove unused variable `c'.
2155
2156 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
2157 char *' instead of `char *'.
2158
2159 * category.c (Fcategory_docstring): Remove unused variable `doc'.
2160 (Fget_unused_category): Remove unused variable `docstring_vector'.
2161 (Fchar_category_set): Remove unused variables `val', `charset',
2162 `c1' and `c2'.
2163
2164 * coding.c (detect_coding_iso2022, setup_coding_system):
2165 Remove unused variable `i'.
2166 (detect_coding_mask): Remove unused variable `idx'.
2167 (detect_coding): Remove unused variable `i'.
2168 (ccl_coding_driver): Remove unused variable `result'.
2169 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
2170 (decode_coding_string): Remove unused variables `to' and `gcpro1'.
2171 (encode_coding_string): Remove unused variables `gcpro1' and
2172 `saved_coding_symbol'.
2173 (Ffind_coding_systems_region_internal): Remove function-local
2174 variable args[], leave only the block-local one.
2175 (code_convert_region1): Remove unused variable `len'.
2176
2177 * charset.c (char_printable_p): Remove unused variable `chars'.
2178 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
2179 (str_to_multibyte): Remove unused variable `c'.
2180
2181 * window.c (size_window): Remove block-local variable `min_size'.
2182
2183 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
2184 `header_line_height'.
2185 (append_space, extend_face_to_end_of_line): Declare `saved_what'
2186 enum display_element_type.
2187
2188 2001-01-02 Gerd Moellmann <gerd@gnu.org>
2189
2190 * xterm.c (x_connection_closed): Catch X errors around all
2191 statements that call X. Save away the error message in a local copy.
2192
2193 * xterm.c (x_connection_closed): Set handling_signal to 0 at
2194 the start.
2195
2196 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
2197 in or at the start of invisible text.
2198
2199 * dispnew.c (update_window): Don't check_current_matrix_flags.
2200
2201 2001-01-01 Jason Rumney <jasonr@gnu.org>
2202
2203 * w32fns.c (x_figure_window_size): Do not allow new_height and
2204 new_width of frame to override specified values.
2205
2206 2000-12-30 Kenichi Handa <handa@etl.go.jp>
2207
2208 * composite.c (find_composition): Fix a code for searching backward.
2209
2210 2000-12-29 Gerd Moellmann <gerd@gnu.org>
2211
2212 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New function.
2213 (update_window) [GLYPH_DEBUG]: Call it.
2214 (scrolling_window): Prevent including current rows which are below
2215 what's displayed in the window.
2216
2217 * xdisp.c (try_window_reusing_current_matrix)
2218 <new start <= old start>: Disable rows in the current matrix
2219 which are below the window after scrolling.
2220
2221 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
2222 is zero. It's not worth the complexity.
2223 (invisible_text_between_p): Put in #if 0 because unused.
2224
2225 2000-12-28 Gerd Moellmann <gerd@gnu.org>
2226
2227 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
2228 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
2229
2230 * keyboard.c (echo_char): If C is an integer, always call
2231 push_key_description. Former code could signal an invalid
2232 character error.
2233
2234 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
2235 If set, print multibyte text.
2236 (Fsingle_key_description): Call push_key_description with
2237 FORCE_MULTIBYTE set.
2238 (describe_buffer_bindings): Likewise.
2239
2240 * lisp.h (push_key_description): Add prototype.
2241
2242 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
2243 around the call to redisplay_internal.
2244
2245 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
2246
2247 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
2248
2249 2000-12-28 Kenichi Handa <handa@etl.go.jp>
2250
2251 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
2252 (ccl_driver): New local variable `extra_bytes'.
2253
2254 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
2255
2256 * coding.c (setup_coding_system):
2257 Initialize coding->spec.ccl.eight_bit_carryover.
2258 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
2259
2260 2000-12-28 Kenichi Handa <handa@etl.go.jp>
2261
2262 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
2263 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
2264 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
2265 (decode_composition_emacs_mule): New function.
2266 (decode_coding_emacs_mule): Decode composition sequence by calling
2267 decode_composition_emacs_mule.
2268 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
2269 (encode_coding_emacs_mule): Changed from macro to function.
2270 If a text contains compositions, encode them correctly.
2271 (setup_coding_system): Set coding->commong_flags for emacs-mule so
2272 that decoding and encoding are required.
2273
2274 2000-12-27 Gerd Moellmann <gerd@gnu.org>
2275
2276 * xfaces.c (PT_PER_INCH): New macro.
2277 (xlfd_point_size): Compute real point size from font's pixel size.
2278 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
2279 instead of 72.
2280
2281 * .gdbinit: Comment out the line pointing to the Lesstif source
2282 directory.
2283
2284 * window.c (Frecenter): Use displayed_window_lines instead
2285 of window_internal_height.
2286
2287 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
2288 instead of x-toolkit-scroll-bars-p.
2289 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
2290
2291 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
2292 instead of x-toolkit-scroll-bars-p.
2293 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
2294
2295 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
2296 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
2297 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]:
2298 New variables.
2299 (add_window_display_history, add_frame_display_history)
2300 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
2301 (build_frame_matrix_from_leaf_window): Remove unused code.
2302 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
2303 redisplay history.
2304 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
2305 (update_window) [GLYPH_DEBUG]: Likewise.
2306 (syms_of_display): Defsubr dump-redisplay-history.
2307
2308 2000-12-23 Gerd Moellmann <gerd@gnu.org>
2309
2310 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
2311 the end of the prompt. Set echo_after_prompt to the offset
2312 of echoptr in echobuf.
2313
2314 * xdisp.c (init_from_display_pos): Pop until the iterator's
2315 stack is empty; there may be frames for stretch or images
2316 on the stack.
2317
2318 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
2319 (save_or_restore_current_matrix): New function for the same
2320 purpose, but more efficient.
2321 (adjust_frame_glyphs_for_frame_redisplay): Use it.
2322
2323 2000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
2324
2325 * xdisp.c (syms_of_xdisp): Fix last change.
2326
2327 2000-12-23 Gerd Moellmann <gerd@gnu.org>
2328
2329 * xdisp.c (syms_of_xdisp): Doc fix.
2330
2331 * xdisp.c (redisplay_window): Remove label restore_buffers;
2332 use finish_scroll_bars instead to make sure that scroll bars
2333 are redeemed. If we don't do this, flickering can result from
2334 scroll bars being destroyed and recreated.
2335
2336 2000-12-22 Jason Rumney <jasonr@gnu.org>
2337
2338 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
2339 in the wrong colors when the foreground is not black.
2340 (expose_window): Don't redraw the window that's currently being
2341 updated.
2342
2343 2000-12-22 Gerd Moellmann <gerd@gnu.org>
2344
2345 * window.c (size_window): When setting the window's too_small_ok
2346 flag, compare old size with minimum size depending on WIDTH_P,
2347 don't compare with window_min_width.
2348
2349 * window.c (delete_window): Simplify somewhat.
2350 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
2351 freeing window matrices. The flag windows_or_buffers_changed is
2352 set, so the next redisplay will consider all windows; this should
2353 suffice.
2354
2355 2000-12-22 Kenichi Handa <handa@etl.go.jp>
2356
2357 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
2358
2359 * ccl.h (struct ccl_program): New member cr_consumed.
2360
2361 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
2362 (CCL_READ_CHAR): Handle EOL conversion here.
2363 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
2364
2365 2000-12-21 Gerd Moellmann <gerd@gnu.org>
2366
2367 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg GLYPHS.
2368
2369 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
2370 otherwise tabs of different size compare equal.
2371
2372 * callint.c (Fcall_interactively): Prevent a compiler warning.
2373
2374 * print.c (print_unwind): Return nil.
2375 (PRINTDECLARE): Initialize all local variables.
2376 (print_preprocess): Add a default case.
2377
2378 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
2379
2380 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
2381
2382 * window.c (delete_window, Fsplit_window)
2383 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
2384
2385 * dispextern.h (ensure_frame_matrix): Function declaration removed.
2386
2387 * dispnew.c (ensure_frame_matrix): Removed.
2388 (save_frame_matrix, restore_frame_matrix): New functions.
2389 (adjust_frame_glyphs_for_frame_redisplay): Use them.
2390
2391 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
2392 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
2393
2394 2000-12-21 Andrew Innes <andrewi@gnu.org>
2395
2396 * w32term.c (x_update_begin): Regenerate the palette here, rather
2397 than for each window.
2398
2399 * w32xfns.c (select_palette): Avoid calling SelectPalette if
2400 palette is NULL, since this corrupts memory! Also get
2401 display_info reference from frame.
2402
2403 2000-12-21 Jason Rumney <jasonr@gnu.org>
2404
2405 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
2406
2407 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
2408 to avoid returning without releasing it.
2409
2410 2000-12-21 Kenichi Handa <handa@etl.go.jp>
2411
2412 * keymap.c (push_key_description): Don't convert eight-bit-control
2413 and eight-bit-graphic to multibyte character.
2414
2415 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
2416 generic character and CODE1 is nil, return the smallest character
2417 in CHARSET.
2418
2419 2000-12-20 Dave Love <fx@gnu.org>
2420
2421 * s/osf5-0.h (NSIG): Don't redefine.
2422
2423 2000-12-20 Stefan Monnier <monnier@cs.yale.edu>
2424
2425 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
2426 excluding menu-bar and tool-bar.
2427 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
2428 (menu_item_p): Remove.
2429 (where_is_internal_1): Don't ignore menu-items.
2430
2431 2000-12-20 Gerd Moellmann <gerd@gnu.org>
2432
2433 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
2434 into account.
2435
2436 * window.c (make_window): Initialize window's min_hscroll.
2437 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
2438 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
2439 to zero.
2440 (struct saved_window): New member min_hscroll.
2441 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
2442 (Fset_window_configuration): Set window's min_hscroll.
2443 (save_window_save): Save window's min_hscroll.
2444 (compare_window_configurations): Compare min_hscroll values.
2445
2446 * window.h (struct window): New member min_hscroll.
2447
2448 * keyboard.c (echo_prompt): Prevent a compiler warning.
2449
2450 * xdisp.c (try_cursor_movement): Fix last change. The real
2451 condition is that PT is at the end of the row, and should
2452 be displayed at the start of the next row.
2453
2454 * xdisp.c (try_cursor_movement): If we end on a partially
2455 visible line, end we already decided to scroll, return -1.
2456
2457 * dispextern.h (ensure_frame_matrix): Add prototype.
2458
2459 * window.c (delete_window, Fsplit_window)
2460 (Fset_window_configuration): Call ensure_frame_matrix.
2461
2462 * dispnew.c (fake_current_matrices, ensure_frame_matrix):
2463 New functions.
2464 (adjust_frame_glyphs_for_frame_redisplay): If display has been
2465 completed, call fake_current_matrices instead of marking frame
2466 garbaged.
2467
2468 2000-12-20 Jason Rumney <jasonr@gnu.org>
2469
2470 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
2471
2472 2000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
2473
2474 * fns.c (Frequire): Doc fix.
2475
2476 2000-12-19 Gerd Moellmann <gerd@gnu.org>
2477
2478 * window.c (window_scroll_pixel_based): Don't use move_it_vertically.
2479
2480 * dispnew.c (direct_output_for_insert): Fix check for mini-window
2481 currently displaying a message.
2482
2483 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
2484 xterm.h.
2485 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
2486
2487 2000-12-18 Andrew Innes <andrewi@gnu.org>
2488
2489 * w32.c (w32_strerror): New function.
2490
2491 * w32.h (w32_strerror): New extern.
2492
2493 * w32fns.c (Fw32_shell_execute): Use it.
2494
2495 2000-12-18 Gerd Moellmann <gerd@gnu.org>
2496
2497 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
2498
2499 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
2500
2501 * msdos.c (IT_set_face): Obey inverse_video.
2502
2503 2000-12-18 Kenichi Handa <handa@etl.go.jp>
2504
2505 * dired.c (directory_files_internal): Always return decoded filenames.
2506
2507 2000-12-18 Gerd Moellmann <gerd@gnu.org>
2508
2509 * xterm.c (x_connection_closed): Prevent being called recursively
2510 because of an error condition in XtCloseDisplay.
2511
2512 * xdisp.c (init_iterator): If noninteractive, and the frame's
2513 face cache is null, make one.
2514
2515 * xfns.c (show_busy_cursor): Check for live frames more thoroughly.
2516
2517 * process.c (wait_reading_process_input): Check for pending
2518 input when running timers.
2519
2520 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
2521
2522 * msdos.c (IT_write_glyphs): Compute the glyph face from str->face_id.
2523
2524 2000-12-18 Kenichi Handa <handa@etl.go.jp>
2525
2526 * process.c (read_process_output): Don't run a filter if the code
2527 decoder produces nothing but carryover.
2528
2529 2000-12-17 Andrew Innes <andrewi@gnu.org>
2530
2531 * w32.c (sys_rename): Only check errno against EEXIST, and not
2532 EACCES, when determining whether rename failed because the target
2533 exists. This was resulting in indefinite looping on Windows 9x if
2534 the source file was locked by another process.
2535
2536 * w32fns.c (Ffile_system_info): New function.
2537 (syms_of_w32fns): Defsubr it.
2538
2539 2000-12-17 Gerd Moellmann <gerd@gnu.org>
2540
2541 * window.c (coordinates_in_window): Fix computation for
2542 position on vertical line between mode lines.
2543
2544 * xfns.c (unwind_create_frame): Return t if frame was deleted.
2545 Don't alter tip_frame or tip_window.
2546 (unwind_create_tip_frame): Set tip_frame to nil only if frame
2547 was deleted.
2548
2549 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
2550 Don't alter tip_frame or tip_window.
2551 (unwind_create_tip_frame): Set tip_frame to nil only if frame
2552 was deleted.
2553
2554 2000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
2555
2556 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
2557 be consistent with the doc string. Reported by NAKAJIMA Mikio
2558 <minakaji@osaka.email.ne.jp>.
2559
2560 2000-12-16 Kenichi Handa <handa@etl.go.jp>
2561
2562 * xfaces.c (Vface_ignored_fonts): New variable.
2563 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
2564 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
2565
2566 2000-12-15 Gerd Moellmann <gerd@gnu.org>
2567
2568 * dispnew.c (update_window): Detect pending input every nth line
2569 updated, i.e. do it depending on real work done, and not on the
2570 vpos of the line.
2571
2572 * xterm.c (expose_window): Don't redraw the window that's
2573 currently being updated.
2574
2575 * window.c (Fset_window_point): Remove test for
2576 cursor_in_non_selected_windows.
2577
2578 * lread.c (read1): Recognize end of file after `\\'.
2579
2580 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
2581 not unwind_create_frame.
2582
2583 2000-12-15 Dave Love <fx@gnu.org>
2584
2585 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
2586 bcopy & al.
2587
2588 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
2589
2590 2000-12-15 Kenichi Handa <handa@etl.go.jp>
2591
2592 * coding.c (setup_coding_system): Clear all members of the struct
2593 coding_system at first.
2594 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
2595 argument.
2596 (code_convert_region): Don't override coding->src_multibyte and
2597 coding->dst_multibyte.
2598
2599 * fns.c (Fmd5): Docstring improved.
2600
2601 2000-12-15 Miles Bader <miles@gnu.org>
2602
2603 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
2604 are actually marked as mode-lines; otherwise use
2605 estimate_mode_line_height.
2606
2607 2000-12-14 Gerd Moellmann <gerd@gnu.org>
2608
2609 * editfns.c (Fformat): Prevent a buffer overrun when the format
2610 specifies a precision.
2611
2612 2000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
2613
2614 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
2615 argument is outside the range [2..3].
2616
2617 2000-12-14 Andrew Innes <andrewi@gnu.org>
2618
2619 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
2620 nothing to do. Bind inhibit-quit.
2621 (tip_frame): Make it a Lisp_Object.
2622 (x_create_tip_frame): Set tip_frame after it has been added to
2623 Vframe_list.
2624 (Fx_show_tip): Don't set tip_frame here.
2625 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New variables.
2626 (unwind_create_frame, unwind_create_tip_frame): New functions.
2627 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
2628 while a frame is only partially constructed.
2629
2630 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
2631 (x_free_frame_resources): New function.
2632 (x_destroy_window): Use it.
2633
2634 2000-12-14 Gerd Moellmann <gerd@gnu.org>
2635
2636 * xfns.c (Fx_backspace_delete_keys_p): New function.
2637 (syms_of_xfns): Defsubr it.
2638
2639 * config.in (HAVE_XKBGETKEYBOARD): Add.
2640
2641 2000-12-14 Kenichi Handa <handa@etl.go.jp>
2642
2643 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
2644 Always store string in multibyte representation in echobuf.
2645 (echo_char): Always store string in multibyte representation in
2646 echobuf.
2647 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
2648 (read_key_sequence): Adjusted for the change of echo_prompt.
2649
2650 * fns.c (Fmd5): Docstring improved.
2651
2652 * lisp.h (detect_coding_system): Prototype adjusted.
2653
2654 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
2655 (detect_coding_emacs_mule, detect_coding_iso2022,)
2656 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
2657 (detect_coding_utf_16, detect_coding_ccl): Make them static.
2658 New argument MULTIBYTEP. Callers changed.
2659 (detect_coding_mask, detect_coding_system): New argument
2660 MULTIBYTEP. Callers changed.
2661 (decode_coding_string): Set coding->src_multibyte and
2662 coding->dst_multibyte before calling detect_coding and detect_eol.
2663 Update them after some coding system is detected.
2664
2665 2000-12-13 Stefan Monnier <monnier@cs.yale.edu>
2666
2667 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
2668
2669 * keyboard.c (menu_bar_items, tool_bar_items):
2670 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
2671
2672 2000-12-13 Gerd Moellmann <gerd@gnu.org>
2673
2674 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
2675 New variables.
2676 (unwind_create_frame, unwind_create_tip_frame): New functions.
2677 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
2678 while a frame is only partially constructed.
2679
2680 * xterm.h (x_free_frame_resources): Declare.
2681
2682 * xterm.c (x_free_frame_resources): New function.
2683 (x_destroy_window): Use it.
2684
2685 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
2686 don't interrupt the update for pending input initially, i.e.
2687 update at least some lines.
2688
2689 * keyboard.c (do_mouse_tracking): Make externally visible.
2690
2691 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
2692
2693 * xfns.c (gray_bitmap_bits): Declare `char *'.
2694
2695 2000-12-12 Gerd Moellmann <gerd@gnu.org>
2696
2697 * xdisp.c (display_tool_bar_line): Make sure that tool bar
2698 lines start with a relief line.
2699
2700 2000-12-12 Dave Love <fx@gnu.org>
2701
2702 * window.c (Fdisplay_buffer): Doc fix.
2703 (Fwindow_list): Remove unused var.
2704
2705 * buffer.h (mmap_set_vars): Declare.
2706
2707 * window.h (Fset_window_point): Declare.
2708
2709 2000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
2710
2711 * msdos.c (fast_find_position): Don't overstep the last window row.
2712 (IT_note_mouse_highlight): Initialize portion to -1. Remove unused
2713 variable `area'. When looking for a row under (X,Y), give up if some
2714 of the previous rows is not enabled.
2715
2716 2000-12-12 Gerd Moellmann <gerd@gnu.org>
2717
2718 * window.c (Fset_window_point): If displaying cursors in windows
2719 other than the selected window, make sure redisplay updates
2720 other windows to show the new value of point in the window.
2721
2722 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
2723
2724 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
2725 the buffer is the sole visible buffer when in the mini-buffer.
2726
2727 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
2728 Bind `inhibit-read-only' to t.
2729 (unwind_with_echo_area_buffer): Use AREF.
2730
2731 * xfns.c (Fx_hide_tip): Simplified.
2732
2733 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use GC_MAKE_GCPROS_NOOPS
2734 instead of `1'.
2735
2736 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
2737
2738 2000-12-11 Gerd Moellmann <gerd@gnu.org>
2739
2740 * xfns.c (Fx_hide_tip): Fix last change.
2741
2742 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
2743 nothing to do. Bind inhibit-quit.
2744 (tip_frame): Make it a Lisp_Object.
2745 (x_create_tip_frame): Set tip_frame after it has been added to
2746 Vframe_list.
2747 (Fx_show_tip): Don't set tip_frame here.
2748
2749 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
2750
2751 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
2752 Lisp_Object.
2753
2754 * dispextern.h: Change external declaration of tip_frame.
2755
2756 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
2757 return an empty string.
2758
2759 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
2760 of the window's update_mode_line flag, since the former is set by
2761 force-mode-line-update, not the latter. This makes
2762 column-number-mode slightly faster.
2763
2764 * xdisp.c (try_window_id) <all changes above window start>:
2765 Set the cursor.
2766
2767 2000-12-11 Paul Eggert <eggert@twinsun.com>
2768
2769 * config.in (HAVE_FTELLO): Remove.
2770 (HAVE_FSEEKO): Add.
2771 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
2772 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
2773 HAVE_FTELLO.
2774 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
2775 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
2776
2777 2000-12-11 Miles Bader <miles@gnu.org>
2778
2779 * window.c (displayed_window_lines): Don't round up when
2780 converting empty space at bottom to lines.
2781 Handle non-newline-terminated final lines properly.
2782 (Fwindow_text_height): New function (used to be in lisp).
2783 (syms_of_window): Initialize it.
2784
2785 2000-12-09 Stefan Monnier <monnier@cs.yale.edu>
2786
2787 * syntax.c (scan_lists): Check that the right quote char has the
2788 right Sstring syntax when jumping over strings.
2789 (init_syntax_once): Use Smax rather than 13.
2790
2791 2000-12-09 Miles Bader <miles@gnu.org>
2792
2793 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
2794 with PARTIALLY, inverting the sense.
2795 (window_scroll_pixel_based): Scroll partially visible lines into
2796 place if we hit the beginning or end of the buffer.
2797 (displayed_window_lines): Don't include partially visible lines.
2798 (Fmove_to_window_line): Skip past any partially visible first line.
2799
2800 2000-12-08 Gerd Moellmann <gerd@gnu.org>
2801
2802 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
2803
2804 * tparam.c (tparam1): Change the way buffers are reallocated to be
2805 portable and less obfuscated.
2806
2807 * termcap.c (tgetent): Change the way buffers are reallocated to
2808 be portable and less obfuscated.
2809
2810 * macros.c (store_kbd_macro_char): Change the way buffers are
2811 reallocated to be portable and less obfuscated.
2812
2813 * lread.c (read1): Change the way buffers are reallocated to be
2814 portable and less obfuscated.
2815
2816 * doc.c (Fsubstitute_command_keys): Change the way buffers
2817 are reallocated so that it is portable.
2818
2819 2000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
2820
2821 * dosfns.c (Ffile_system_info): New function.
2822 (syms_of_dosfns): Defsubr it.
2823
2824 2000-12-07 Stefan Monnier <monnier@cs.yale.edu>
2825
2826 * alloc.c (gc_sweep): Add comment.
2827
2828 2000-12-07 Gerd Moellmann <gerd@gnu.org>
2829
2830 * sound.c (vox_configure): Change order of ioctls.
2831 Don't set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
2832 Ignore errors when changing volume.
2833 (vox_close): Don't reset the device.
2834
2835 * process.c (read_process_output): Make sure the process marker's
2836 position is valid when the process buffer is changed in
2837 after-change functions. W3 does that.
2838
2839 * xfns.c (x_free_gcs): New function.
2840
2841 * xterm.h (x_free_gcs): Add prototype.
2842
2843 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
2844 freeing GCs here.
2845
2846 * xterm.c (x_destroy_window): Call x_free_gcs so that
2847 resources of non-toolkit X windows will be freed.
2848
2849 2000-12-07 Andrew Innes <andrewi@gnu.org>
2850
2851 * w32fns.c (xlfd_charset_of_font): Fix last change.
2852
2853 2000-12-06 Dave Love <fx@gnu.org>
2854
2855 * md5.h (__P): Don't define -- it comes from config.h.
2856
2857 * strftime.c: Change some #if foo to #ifdef foo.
2858
2859 2000-12-06 Andrew Innes <andrewi@gnu.org>
2860
2861 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
2862
2863 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname argument.
2864 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
2865 (w32_list_fonts): Don't choke if pattern doesn't specify a codepage.
2866
2867 2000-12-06 Gerd Moellmann <gerd@gnu.org>
2868
2869 * alloc.c (gc_sweep): Prevent symbols read during loadup
2870 from being freed.
2871
2872 * xdisp.c (underlying_face_id): New function.
2873 (handle_face_prop, face_before_or_after_it_pos): Use it
2874 to determine the face ``under'' a string. Let strings inherit
2875 the face of the buffer under them.
2876
2877 * xfaces.c (face_at_string_position): Update function comment.
2878
2879 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
2880 matrix if the window's left position has changed; we need to
2881 redraw it in this case.
2882
2883 * dispextern.h (struct glyph_matrix): Add member window_left_x.
2884
2885 * window.c (coordinates_in_window): Check mouse on mode-line or
2886 header-line first.
2887
2888 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
2889 advertized by the function documentation.
2890
2891 * window.c (syms_of_window): Doc fix.
2892
2893 * sound.c (vox_configure): Set volume for left and right channel.
2894 (sound_cleanup): Return nil.
2895
2896 * xdisp.c (move_it_by_lines): Fix paren typo.
2897
2898 * xterm.c (x_load_font): Don't use the font's max_bounds for
2899 computing the height of the font. If max_bounds' ascent or
2900 descent are greater than the font's ascent or descent, this means
2901 glyphs overlap, which should be handled now by redisplay.
2902
2903 * window.c (Veven_window_heights): New variable.
2904 (syms_of_window): DEFVAR_LISP it.
2905 (Fdisplay_buffer): Check Veven_window_heights before evening the
2906 window heights.
2907
2908 2000-12-06 Miles Bader <miles@gnu.org>
2909
2910 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
2911 update `default-frame-alist' instead of setting no frame parameters.
2912
2913 2000-12-06 Kenichi Handa <handa@etl.go.jp>
2914
2915 * composite.c (update_compositions): Fix typo (use the correct
2916 variable).
2917
2918 2000-12-05 Jason Rumney <jasonr@gnu.org>
2919
2920 * md5.h: Remove underscores from function declarations.
2921 (__attribute__, __alignof__) [!__GNUC__]: Define.
2922
2923 * md5.c: Delay include of md5.h until after namespace cleaning.
2924
2925 * makefile.w32-in (fns.o): Depend on md5.h
2926 (md5.o): New target.
2927 (sunfns.o): Remove.
2928
2929 * makefile.nt: Likewise.
2930
2931 2000-12-05 Jason Rumney <jasonr@altavista.net>
2932
2933 * w32term.c (expose_area): Complete last change.
2934
2935 2000-12-05 Ken Raeburn <raeburn@gnu.org>
2936
2937 * minibuf.c: Include intervals.h.
2938
2939 2000-12-05 Jason Rumney <jasonr@gnu.org>
2940
2941 * w32term.c (x_produce_glyphs): If a font for a component of
2942 a composition is not found, use 1 pixel dot ascent and 0 dot
2943 descent value to avoid displaying terribly tall empty boxes.
2944 (expose_area): Pass x-coordinate relative to the exposed
2945 area to x_draw_glyphs instead of a window-relative coordinate.
2946
2947 2000-12-05 Gerd Moellmann <gerd@gnu.org>
2948
2949 * xdisp.c (next_element_from_ellipsis): Save face before selective
2950 display in saved_face_id, and set face_before_selective_p.
2951 (reseat_1): Reset face_before_selective_p.
2952 (append_space, extend_face_to_end_of_line): If iterator's
2953 face_before_selective_p is set, use the face from saved_face_id.
2954 (extend_face_to_end_of_line): For tty frames, make sure to
2955 use the right face id when producing spaces at the end of
2956 the line.
2957
2958 * dispextern.h (struct it): Add face_before_selective_p.
2959
2960 * keyboard.c (record_char): Don't record identical help-echo
2961 events in recent_keys.
2962
2963 * xterm.c [USE_X_TOOLKIT]: Close the display.
2964 (xim_close_dpy): Handle case that the display has been closed.
2965
2966 * xterm.c (x_destroy_window): Reset the frame's X window after
2967 destroying it.
2968
2969 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
2970 variable window_width.
2971 (line_draw_cost): Fix code skipping over spaces at the end of the
2972 line when must_write_spaces is not set.
2973 (scrolling_window): Fix code inserting runs in list of all runs.
2974
2975 2000-12-05 Kenichi Handa <handa@etl.go.jp>
2976
2977 * coding.c (setup_coding_system): Be sure to initialize
2978 coding->category_idx.
2979
2980 2000-12-04 Gerd Moellmann <gerd@gnu.org>
2981
2982 * xterm.c (PER_CHAR_METRIC): Removed because not used.
2983
2984 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
2985 area to x_draw_glyphs instead of a window-relative coordinate.
2986
2987 * fileio.c (auto_save_error): Add parameter ERROR. Show the
2988 error in the message.
2989
2990 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
2991 timer after having read a key. It's not good for code reading
2992 several keys in a loop, like an input method.
2993
2994 * fileio.c (Finsert_file_contents): When VISIT is t, don't
2995 record undo information for format-decode.
2996
2997 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
2998 current buffer is read-only, not if it isn't.
2999
3000 * keyboard.c (record_char): Record `help-echo' input events
3001 in recent_keys only if they display some help. Don't record
3002 `help-echo' events as macro char.
3003
3004 2000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3005
3006 * editfns.c (save_excursion_restore): Don't move point
3007 in another window if it is showing the wrong buffer.
3008 Avoid the call to Fwindow_live_p, for speed.
3009
3010 2000-12-04 Kenichi Handa <handa@etl.go.jp>
3011
3012 * xfaces.c (struct font_name): New member registry_priority.
3013 (split_font_name): Initialize the above member to zero.
3014 (concat_font_list): New function.
3015 (font_list): Include fonts of all alternative registries.
3016 (FONT_POINT_SIZE_QUANTUM): New macro.
3017 (better_font_p): Ignore point size difference less than
3018 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
3019
3020 * xterm.c (x_produce_glyphs): If a font for a component of
3021 a composition is not found, use 1 pixel dot ascent and 0 dot
3022 descent value to avoid displaying terribly tall empty boxes.
3023
3024 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
3025
3026 2000-12-03 Ken Raeburn <raeburn@gnu.org>
3027
3028 * coding.h (code_convert_string1): Declare.
3029
3030 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
3031
3032 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name): Declare.
3033
3034 2000-12-02 Jason Rumney <jasonr@gnu.org>
3035
3036 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
3037 correctly for single byte character case.
3038 (w32_per_char_metric): Do not try to make any assumptions about
3039 the metrics of BDF fonts.
3040 (x_estimate_mode_line_height): If `mode-line' face
3041 hasn't a font, use that of the frame, as drawing glyphs does.
3042 (note_mouse_highlight): Change the cursor shape on the vertical
3043 border between windows [not enabled].
3044
3045 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
3046
3047 * w32fns.c (Fx_create_frame): Reintroduce the call to
3048 face-set-after-frame-defaults.
3049 (Vx_window_horizontal_drag_shape): New variable.
3050 (syms_of_xfns): DEFVAR_LISP it.
3051 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
3052 enabled].
3053
3054 2000-12-02 Simon Josefsson <simon@josefsson.org>
3055
3056 * fns.c (Fmd5): Use a different logic to decide the coding system
3057 to use.
3058
3059 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
3060
3061 2000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
3062
3063 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is NULL.
3064
3065 2000-12-01 Gerd Moellmann <gerd@gnu.org>
3066
3067 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
3068 height for YNegative.
3069 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
3070 height; also see comment there.
3071
3072 * window.c (coordinates_in_window): Handle computations for
3073 positions on the vertical bar and fringes differently for
3074 window-system frames. Consider some pixels near the vertical bar
3075 as on the bar if the frame doesn't have vertical scroll bars.
3076 Associate positions between mode or header lines with the
3077 right window, the left one.
3078
3079 2000-12-01 Jason Rumney <jasonr@gnu.org>
3080
3081 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
3082
3083 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
3084 invalid frame.
3085
3086 2000-12-01 Gerd Moellmann <gerd@gnu.org>
3087
3088 * window.c (struct saved_window): Add members orig_top and orig_height.
3089 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
3090 (save_window_save, Fset_window_configuration): Save/restore
3091 window's orig_top and orig_height.
3092
3093 2000-12-01 Jason Rumney <jasonr@gnu.org>
3094
3095 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
3096
3097 * w32fns.c (x_set_cursor_color): Fix last change.
3098
3099 2000-11-30 Gerd Moellmann <gerd@gnu.org>
3100
3101 * xdisp.c (echo_area_display): If cursor is in the echo area, make
3102 sure that the next redisplay displays the minibuffer, so that
3103 the cursor will be replaced with what the minibuffer wants.
3104
3105 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
3106 #ifndef instead of using #if.
3107 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
3108 USE_TOOLKIT_SCROLL_BARS is defined.
3109
3110 2000-11-30 Jason Rumney <jasonr@gnu.org>
3111
3112 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
3113 x_display_cursor.
3114
3115 2000-11-30 Gerd Moellmann <gerd@gnu.org>
3116
3117 * fns.c (Fmd5): Doc fix.
3118
3119 2000-11-30 Simon Josefsson <simon@josefsson.org>
3120
3121 * fns.c (Fmd5): New function.
3122 (syms_of_fns): Defsubr md5.
3123
3124 * Makefile.in (obj): Add md5.o
3125
3126 2000-11-30 Gerd Moellmann <gerd@gnu.org>
3127
3128 * md5.h, md5.c: New files, taken from glibc.
3129
3130 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
3131
3132 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
3133 hasn't a font, use that of the frame, as drawing glyphs does.
3134
3135 2000-11-29 Stefan Monnier <monnier@cs.yale.edu>
3136
3137 * eval.c (Frun_hooks): Allow 0 arguments.
3138
3139 2000-11-29 Gerd Moellmann <gerd@gnu.org>
3140
3141 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
3142 is over the menu bar widget, say it's not on the frame.
3143
3144 * xfns.c (Fx_create_frame): Reintroduce the call to
3145 face-set-after-frame-defaults.
3146
3147 * eval.c (Fsignal): Reset handling_signal.
3148
3149 2000-11-28 Jason Rumney <jasonr@gnu.org>
3150
3151 * w32menu.c (add_menu_item): Reset menu item text when changing
3152 type to radio button.
3153
3154 2000-11-28 Gerd Moellmann <gerd@gnu.org>
3155
3156 * xselect.c: Update copyright.
3157
3158 * window.c (coordinates_in_window): If on a mode or header line,
3159 but sufficiently close to its start, return ``on vertical
3160 border''. This gives us a way to drag windows horizontally when
3161 using toolkit scroll bars.
3162
3163 * xterm.c (note_mouse_highlight): Change the cursor shape
3164 on the vertical border between windows.
3165
3166 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
3167
3168 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
3169 (syms_of_xfns): DEFVAR_LISP it.
3170 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
3171
3172 * textprop.c (text_read_only): New function.
3173 (verify_interval_modification): Use it instead of signaling
3174 `text-read-only'. This makes it easier to catch this error
3175 with a breakpoint.:
3176
3177 * xdisp.c (forward_to_next_line_start): Check for newlines,
3178 not end of line, which includes CR.
3179
3180 2000-11-28 Kenichi Handa <handa@etl.go.jp>
3181
3182 * coding.c (Ffind_coding_systems_region_internal): Be sure to
3183 include no-conversion.
3184
3185 2000-11-27 Jason Rumney <jasonr@gnu.org>
3186
3187 * w32fns.c (w32_load_system_font): Always mark font as double byte
3188 if codepage is unicode.
3189
3190 2000-11-27 Gerd Moellmann <gerd@gnu.org>
3191
3192 * xdisp.c (forward_to_next_line_start): If already on a newline,
3193 just consume it to avoid unintended skipping over invisible text below.
3194
3195 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
3196 `vertical-line', `mode-line' and `header-line' events.
3197
3198 * xdisp.c (try_window_id): Avoid starting to display in the middle
3199 of a character, a TAB for instance. This is easier than to set
3200 up the iterator exactly, and it's not a frequent case, so the
3201 additional effort wouldn't really pay off.
3202
3203 2000-11-26 Andrew Choi <akochoi@i-cable.com>
3204
3205 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
3206 init_window_once.
3207
3208 2000-11-25 Jason Rumney <jasonr@gnu.org>
3209
3210 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]:
3211 Args to window_from_coordinates should be pixel coordinates.
3212
3213 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
3214 redisplay handles them properly.
3215
3216 2000-11-25 Miles Bader <miles@gnu.org>
3217
3218 * indent.c (compute_motion): Keep pos_byte in sync with pos.
3219
3220 2000-11-24 Jason Rumney <jasonr@gnu.org>
3221
3222 * w32.c (init_environment): Set LANG environment variable based on
3223 locale settings, if not set.
3224
3225 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
3226 making tool bar smaller. When clearing the frame, also
3227 clear current matrices. Clear frame when tool bar disappears.
3228 Don't use more lines for the tool-bar than is available.
3229 (x_change_window_heights): New function.
3230
3231 2000-11-24 Gerd Moellmann <gerd@gnu.org>
3232
3233 * xdisp.c (init_from_display_pos): If POS says we're already after
3234 an overlay string ending at POS, make sure to pop the iterator
3235 because it will be in front of that overlay string. When POS is
3236 ZV, we've thereby also ``processed'' overlay strings at ZV.
3237
3238 * xfaces.c (lface_from_face_name): Function comment fix.
3239
3240 2000-11-24 Miles Bader <miles@gnu.org>
3241
3242 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
3243 apply `mode-line-inverse-video' -- zero means force display using
3244 the default face, non-zero means display using the specialized face.
3245 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
3246
3247 2000-11-23 Kenichi Handa <handa@etl.go.jp>
3248
3249 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
3250 hard coded `4'.
3251
3252 2000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
3253
3254 * coding.c (decode_coding_emacs_mule): Fix the case of
3255 CODING_EOL_LF, which used uninitialized value of c.
3256
3257 2000-11-23 Stefan Monnier <monnier@cs.yale.edu>
3258
3259 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
3260
3261 2000-11-22 Gerd Moellmann <gerd@gnu.org>
3262
3263 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
3264 buffer object.
3265
3266 * frame.h (struct frame): Replace desired_tool_bar_items,
3267 current_tool_bar_items, n_desired_tool_bar_items,
3268 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
3269
3270 * frame.c (make_frame): Change initialization of tool bar
3271 items accordingly.
3272
3273 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
3274 Change references to members deleted from struct frame to use the
3275 new ones.
3276
3277 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
3278 references to members deleted from struct frame to use the new ones.
3279
3280 * dispnew.c (update_frame): Do nothing with frame's tool bar items.
3281
3282 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
3283
3284 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
3285 (note_tool_bar_highlight): Change references to members deleted
3286 from struct frame to use the new ones.
3287
3288 2000-11-23 Miles Bader <miles@gnu.org>
3289
3290 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
3291 the face's inverse-video attribute, rather than overriding it.
3292
3293 2000-11-22 Gerd Moellmann <gerd@gnu.org>
3294
3295 * xfns.c (x_set_tool_bar_lines): Clear internal border when
3296 making tool bar smaller.
3297
3298 2000-11-22 Dave Love <fx@gnu.org>
3299
3300 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
3301
3302 2000-11-22 Miles Bader <miles@gnu.org>
3303
3304 * keyboard.c (Vminibuffer_message_timeout): New variable.
3305 (command_loop_1): Use it to determine message timeout.
3306 (syms_of_keyboard): Initialize it.
3307
3308 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
3309
3310 2000-11-22 Kenichi Handa <handa@etl.go.jp>
3311
3312 * sysdep.c: Move the code for declaring h_errno after #include
3313 <netdb.h>.
3314
3315 2000-11-21 Gerd Moellmann <gerd@gnu.org>
3316
3317 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
3318 the menu bar when the tooltip is unmapped.
3319
3320 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
3321 sole visible buffer when we're currently in the mini-buffer, and
3322 give up if so.
3323
3324 2000-11-21 Jason Rumney <jasonr@gnu.org>
3325
3326 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
3327 put on the clipboard.
3328 (Fw32_get_clipboard_data): Compare data on clipboard with saved
3329 copy of what Emacs last put there. If they are the same, do not
3330 use the clipboard copy to avoid losing data due to coding conversions.
3331
3332 2000-11-22 Miles Bader <miles@gnu.org>
3333
3334 * minibuf.c (Vminibuffer_prompt_properties): New variable.
3335 (syms_of_minibuf): Initialize it.
3336 (read_minibuf): Add properties from Vminibuffer_prompt_properties
3337 to prompt, don't make read-only.
3338
3339 2000-11-21 Gerd Moellmann <gerd@gnu.org>
3340
3341 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>:
3342 Add BEFORE/AFTER_POTENTIAL_GC.
3343
3344 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
3345
3346 * buffer.c (mmap_free_1): Avoid a compiler warning.
3347
3348 * term.c, cm.c: Don't try to include termcap.h; see comment there.
3349
3350 2000-11-21 Kenichi Handa <handa@etl.go.jp>
3351
3352 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
3353 ... #endif scope.
3354
3355 2000-11-20 Gerd Moellmann <gerd@gnu.org>
3356
3357 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
3358 screen supports it.
3359
3360 * s/gnu-linux.h: Don't use `#cpu'.
3361
3362 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
3363 not defined in mman.h.
3364
3365 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New variables.
3366 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
3367 and store an index in the XClientMessageEvent. Storing a
3368 Lisp_Object or pointer can fail on a 64 bit system, since X only
3369 transfers 32 bits.
3370 (x_scroll_bar_to_input_event): Get the window from scroll_bar_windows.
3371
3372 2000-11-20 Dave Love <fx@gnu.org>
3373
3374 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
3375
3376 2000-11-20 Gerd Moellmann <gerd@gnu.org>
3377
3378 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
3379
3380 2000-11-20 Kenichi Handa <handa@etl.go.jp>
3381
3382 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
3383 by WIDTH.
3384
3385 * alloc.c (make_string): Fix previous change. Be sure to make
3386 unibyte string correctly.
3387
3388 2000-11-19 Gerd Moellmann <gerd@gnu.org>
3389
3390 * window.c (Fwindow_list): Change parameter list to be XEmacs
3391 compatible.
3392 (window_list_1): New function.
3393 (window_loop): Use it instead of Fwindow_list.
3394
3395 * sysdep.c (emacs_ospeed): New variable.
3396 (toplevel): Don't declare ospeed extern.
3397 (init_baud_rate): Use emacs_ospeed instead of ospeed.
3398
3399 * termcap.c (ospeed): Remove.
3400 (tputs) [!emacs]: Remove unused code.
3401 (tgetent): Avoid a compiler warning.
3402
3403 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
3404 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
3405 SCROLL_BAR_X_WIDGET with additional argument DPY.
3406
3407 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
3408 removed.
3409 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
3410 Take the X display as additional argument.
3411 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
3412 `Widget' is a pointer type that's not easily stored in Lisp_Object
3413 form in a portable way.
3414
3415 * dispnew.c (update_text_area): Fix last change.
3416
3417 2000-11-18 Gerd Moellmann <gerd@gnu.org>
3418
3419 * xdisp.c: Use BINDING_STACK_SIZE throughout.
3420
3421 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
3422 clear current matrices.
3423
3424 * buffer.c (mmap_enlarge): Don't print a message on stderr
3425 if mapping new memory at the end of the existing region fails.
3426
3427 * dispnew.c (update_text_area): Don't skip over equal glyphs
3428 when the last current glyph overlaps the glyph to its right.
3429
3430 2000-11-18 Miles Bader <miles@gnu.org>
3431
3432 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
3433 lines that *end* with "..." too (that's the most common case!).
3434
3435 2000-11-18 Gerd Moellmann <gerd@gnu.org>
3436
3437 * xdisp.c (resize_mini_window): Temporarily change to the
3438 mini-window's buffer if necessary.
3439
3440 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
3441 the tooltip obscures less text under it.
3442
3443 2000-11-17 Gerd Moellmann <gerd@gnu.org>
3444
3445 * puresize.h (BASE_PURESIZE): Increase to 700000.
3446
3447 2000-11-18 Jason Rumney <jasonr@gnu.org>
3448
3449 * w32term.c (w32_draw_bitmap): Use face to set colors.
3450
3451 2000-11-17 Dave Love <fx@gnu.org>
3452
3453 * lread.c (Fload): Fix #ifdef for pcc.
3454
3455 2000-11-17 Gerd Moellmann <gerd@gnu.org>
3456
3457 * xdisp.c (pos_visible_p): Compute the default character height
3458 differently.
3459
3460 2000-11-16 Gerd Moellmann <gerd@gnu.org>
3461
3462 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
3463 knowing the line's height; use the default font's height in that case.
3464
3465 * xfaces.c (weight_table): Add `demi' with the same meaning as
3466 `demibold'.
3467
3468 2000-11-16 Kenichi Handa <handa@etl.go.jp>
3469
3470 * dispnew.c (null_row): New global static variable.
3471 (clear_glyph_row): Delete local static variable null_row.
3472
3473 2000-11-15 Jason Rumney <jasonr@gnu.org>
3474
3475 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
3476 (w32_alloc_lighter_color): Use new brightness calculations from
3477 xterm.c. Scale delta to be in the range expected by W32.
3478 (w32_draw_relief_rect): Use frame relief colors.
3479
3480 2000-11-15 Gerd Moellmann <gerd@gnu.org>
3481
3482 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
3483 (Qinhibit_default_face_x_resources): New variable.
3484 (syms_of_frame): Initialize it.
3485 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
3486
3487 * xdisp.c (pos_visible_p): Improve function comment.
3488
3489 * lisp.h (BINDING_STACK_SIZE): New macro.
3490
3491 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
3492 reading the directory if readdir returns null and errno is EAGAIN
3493 or EINTR.
3494
3495 2000-11-14 Stefan Monnier <monnier@cs.yale.edu>
3496
3497 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
3498 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
3499 Set amount_to_scroll to max of dx and scroll_step so that
3500 scroll-conservatively doesn't defeat scroll-step>1.
3501 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
3502 scroll-conservatively for line-at-a-time scrolling.
3503
3504 2000-11-14 Gerd Moellmann <gerd@gnu.org>
3505
3506 * window.c (Fpos_visible_in_window_p): Call pos_visible with
3507 extra argument.
3508
3509 * xdisp.c (current_mode_line_height, current_header_line_height):
3510 New variables.
3511 (init_xdisp): Initialize them.
3512 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
3513 and use exact mode line heights if it is set.
3514
3515 * lisp.h (pos_visible_p): Change prototype.
3516
3517 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
3518 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
3519 and current_header_line_height first.
3520 (current_mode_line_height, current_header_line_height):
3521 Declare extern.
3522
3523 2000-11-14 Miles Bader <miles@lsi.nec.co.jp>
3524
3525 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
3526 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
3527 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
3528
3529 2000-11-14 Miles Bader <miles@gnu.org>
3530
3531 * xterm.c (x_alloc_lighter_color): Include an additive component
3532 too for dark colors, because FACTOR isn't enough.
3533 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
3534 New macros.
3535
3536 2000-11-13 Gerd Moellmann <gerd@gnu.org>
3537
3538 * keyboard.c (show_help_echo): Call message3_nolog with number of
3539 bytes in the help string as 2nd parameter, instead of the number
3540 of characters.
3541
3542 2000-11-13 Miles Bader <miles@gnu.org>
3543
3544 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
3545 (Fload): Use new openp return protocol.
3546 Don't try to use Vload_source_file_function to load .elc files.
3547 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
3548 openp return protocol.
3549 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
3550
3551 2000-11-11 Kenichi Handa <handa@etl.go.jp>
3552
3553 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
3554
3555 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
3556 Defined these macros.
3557 (NLIST_STRUCT): Avoid re-defining it.
3558
3559 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
3560 -I/usr/contrib/X11R6/include.
3561 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
3562
3563 2000-11-10 Jason Rumney <jasonr@gnu.org>
3564
3565 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
3566
3567 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
3568 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
3569
3570 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
3571 (Qw32_charset_vietnamese): New symbol.
3572 (xlfd_charset_of_font): New function.
3573 (w32_load_system_font): Use it.
3574 (x_to_w32_charset): Use Fassoc to find charset info. Special case
3575 when Vw32_charset_info_alist is nil to ensure default face always
3576 has font. Use Fcar and Fcdr for safety.
3577 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
3578 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
3579 pseudo-codepages for special cases.
3580 (w32_to_x_font): New parameter to allow charset portion to be
3581 specified where there is many to one mapping. Callers changed.
3582 (w32_list_fonts): Avoid listing fonts that won't display.
3583
3584 2000-11-10 Gerd Moellmann <gerd@gnu.org>
3585
3586 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
3587 (font_list_1): Renamed from font_list.
3588 (font_list): New function, trying alternative registries from
3589 Vface_alternative_font_registry_alist.
3590 (Finternal_set_alternative_font_registry_alist): New function.
3591 (syms_of_xfaces): Initialize and Staticpro
3592 Vface_alternative_font_registry_alist.
3593 Defsubr Finternal_set_alternative_font_registry_alist.
3594
3595 2000-11-09 Ken Raeburn <raeburn@gnu.org>
3596
3597 * lisp.h (Flooking_at): Declare.
3598
3599 2000-11-09 Gerd Moellmann <gerd@gnu.org>
3600
3601 * dired.c (directory_files_internal): Fix a braino.
3602
3603 * dired.c (directory_files_internal): Add missing GCPRO's.
3604 Some cleanup.
3605
3606 2000-11-08 Gerd Moellmann <gerd@gnu.org>
3607
3608 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
3609 (resize_mini_window): Return quickly if Vresize_mini_window is
3610 nil. Don't return if Vmax_mini_window_height is nil.
3611
3612 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
3613 (syms_of_xdisp): Initialize them.
3614 (resize_mini_window): Act according to the setting of
3615 Vresize_mini_window.
3616 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
3617
3618 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
3619 scroll bar widget after configuring it, so that it will appear at
3620 the right position from the start.
3621 (XTredeem_scroll_bar): Cleaned up.
3622
3623 2000-11-08 Kenichi Handa <handa@etl.go.jp>
3624
3625 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
3626 font is taller than the frame line, we don't have to bias the
3627 division by two.
3628
3629 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
3630
3631 2000-11-07 Dave Love <fx@gnu.org>
3632
3633 * config.in (HAVE_MKSTEMP): Add.
3634
3635 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
3636
3637 2000-11-07 Gerd Moellmann <gerd@gnu.org>
3638
3639 * window.c (Fset_window_configuration): Don't try to preserve
3640 point in the current buffer, if that buffer is displayed in more
3641 than one window.
3642
3643 * xfaces.c (lookup_named_face): If default face isn't realized,
3644 try to realize it. Return -1 if not successful.
3645 (Fx_list_fonts): Handle case that face cannot be determined.
3646 (Fface_font): Likewise.
3647
3648 2000-11-06 Gerd Moellmann <gerd@gnu.org>
3649
3650 * window.c (displayed_window_lines): Detect partially
3651 visible lines at the bottom correctly.
3652
3653 2000-11-06 Stefan Monnier <monnier@cs.yale.edu>
3654
3655 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
3656 when ensuring we don't do visit in indirect buffer.
3657
3658 2000-11-06 Kenichi Handa <handa@etl.go.jp>
3659
3660 * composite.h (compose_chars_in_text): Add prototype.
3661
3662 * composite.c (Vcomposition_function_table): New variable.
3663 (Qcomposition_function_table): New variable.
3664 (run_composition_function): Call
3665 Vcompose_chars_after_function with three arguments.
3666 (compose_chars_in_text): New function.
3667 (syms_of_composite): Modified the doc-string of
3668 Vcompose_chars_after_function. Declare composition-function-table
3669 as a lisp variable, and initialize it.
3670
3671 * xfns.c (x_encode_text): Suppress producing escape sequences for
3672 composition.
3673
3674 * xselect.c: Include composite.h.
3675 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
3676
3677 2000-11-05 Andrew Innes <andrewi@gnu.org>
3678
3679 * w32term.c (x_produce_glyphs): Fix typo in enum name.
3680
3681 * sysdep.c (read_input_waiting): Remove extraneous argument to
3682 read_socket_hook.
3683
3684 * w32fns.c (Fx_server_version): Include w32_build_number in the
3685 return list.
3686
3687 * w32heap.c (w32_build_number): New variable.
3688 (cache_system_info): Set it.
3689
3690 * w32heap.h (w32_build_number): Add extern.
3691
3692 * emacs.c (syms_of_emacs): Update docstring for
3693 system-configuration, to reflect the actual usage on MS-Windows.
3694
3695 2000-10-31 Gerd Moellmann <gerd@gnu.org>
3696
3697 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
3698 process idle timers while waiting for another event.
3699
3700 * dispnew.c (update_frame_line): Handle case where spaces in
3701 the default face are colored.
3702
3703 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
3704 window height hasn't changed.
3705
3706 2000-10-31 Jason Rumney <jasonr@gnu.org>
3707
3708 * w32term.c (x_produce_glyphs): Handle composite characters.
3709 (x_draw_glyph_string_foreground)
3710 (x_draw_composite_glyph_string_foreground): Restore old font.
3711
3712 2000-10-31 Miles Bader <miles@lsi.nec.co.jp>
3713
3714 * minibuf.c (read_minibuf): Reset the undo history just before
3715 starting the recursive-edit.
3716
3717 2000-10-30 Gerd Moellmann <gerd@gnu.org>
3718
3719 * xfaces.c (menu_face_change_count): New variable.
3720 (Finternal_set_lisp_face_attribute): Increment it for changes
3721 of the `menu' face.
3722 (realize_basic_faces): Reflect changes in the `menu' faces
3723 in menu bars.
3724
3725 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
3726 dy obtained from the iterator's y-position after moving from
3727 scroll_margin_pos to PT; see comment there.
3728
3729 * xdisp.c (safe_eval_handler): Call add_to_log.
3730
3731 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
3732 is not a symbol or string.
3733
3734 * xdisp.c (echo_area_display): Don't perform a display update from
3735 inside redisplay. The update will happen anyway at the end of
3736 redisplay, and it can confuse redisplay (GC messages while
3737 redisplaying, for instance.)
3738
3739 2000-10-30 Stefan Monnier <monnier@cs.yale.edu>
3740
3741 * xrdb.c (x_load_resources): Use the class name in the defaults.
3742
3743 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
3744 (regex_compile): Catch bogus \(\1\).
3745
3746 2000-10-30 Gerd Moellmann <gerd@gnu.org>
3747
3748 * xterm.c (x_alloc_nearest_color): Fix last change to compare
3749 RGB values.
3750
3751 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
3752 we have a color cache, check that the cached color equals the
3753 allocated color. If not, clear the color cache.
3754
3755 * window.c (displayed_window_lines): Change buffers if necessary.
3756 Fix computation of displayed lines.
3757
3758 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
3759 update_menu_bindings to DEFVAR_BOOL.
3760
3761 2000-10-30 Kenichi Handa <handa@etl.go.jp>
3762
3763 * search.c (Fset_match_data): Be sure to make search_regs always sane.
3764
3765 * puresize.h (BASE_PURESIZE): Increase to 680000.
3766
3767 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
3768
3769 2000-10-29 Jason Rumney <jasonr@gnu.org>
3770
3771 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
3772
3773 * w32term.c (w32_bdf_per_char_metric): Negate descent.
3774 (w32_cache_char_metrics): Handle possibility that 'x' does not
3775 exist in a BDF font.
3776 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
3777
3778 * w32bdf.h (bdffont): Add nchars.
3779
3780 * w32bdf.c (set_bdf_font_info): Set it.
3781 (w32_BDF_TextOut): Swap byte order of double byte characters.
3782 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
3783
3784 2000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
3785
3786 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
3787 don't override the colors in frame's param_alist, unless they are
3788 unspecified.
3789
3790 * term.c (reassert_line_highlight): If inverse_video is non-zero,
3791 reverse the effect of the highlight flag.
3792
3793 2000-10-27 Ken Raeburn <raeburn@gnu.org>
3794
3795 * window.h (Fwindow_live_p): Declare.
3796
3797 * undo.c (record_delete): Check that last_undo_buffer is really a
3798 buffer before applying XBUFFER to it.
3799
3800 * keymap.c (where_is_internal): Pass lisp object, not integer, to
3801 Faref.
3802
3803 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
3804
3805 * lisp.h (KEYMAPP): New macro.
3806 (get_keymap): Remove.
3807 (get_keymap_1): Rename get_keymap.
3808
3809 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
3810
3811 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
3812
3813 * xmenu.c (single_submenu): Use KEYMAPP.
3814 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
3815 Use KEYMAPP rather than Fkeymapp.
3816
3817 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
3818
3819 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
3820 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
3821 Use KEYMAPP rather than Fkeymapp.
3822 (single_submenu): Use KEYMAPP.
3823 (w32_menu_show, w32_dialog_show): Use TRUE.
3824
3825 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
3826
3827 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
3828 (Fkeymapp): Use KEYMAPP.
3829 (get_keymap): Rename from get_keymap_1. Remove old def.
3830 Return t when autoload=0 and error=0 and the keymap needs autoloading.
3831 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
3832 (Fminor_mode_key_binding): Don't raise an error if the binding
3833 is not a keymap.
3834 (Fuse_global_map, Fuse_local_map): Allow autoloading.
3835 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
3836
3837 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
3838 Allow Vspecial_event_map to be autoloaded.
3839 (menu_bar_items): Fetch the keymap rather than using keymapp.
3840 (menu_bar_one_keymap): No need to follow func-indirect any more.
3841 (parse_menu_item): get_keymap_1 -> get_keymap.
3842 (tool_bar_items): Fetch the keymap rather than using keymapp.
3843 (read_key_sequence): Use KEYMAPP.
3844
3845 * intervals.c (get_local_map): Use get_keymap rather than following
3846 function-indirections explicitly.
3847
3848 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
3849
3850 2000-10-27 Jason Rumney <jasonr@gnu.org>
3851
3852 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
3853 point, as Windows has oversized fonts.
3854
3855 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
3856
3857 2000-10-27 Gerd Moellmann <gerd@gnu.org>
3858
3859 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
3860 (freehook, reallochook): Handle null pointer arguments.
3861 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
3862
3863 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
3864
3865 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
3866 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
3867 Giving in to popular pressure to shut up the compiler with casts.
3868
3869 2000-10-27 Gerd Moellmann <gerd@gnu.org>
3870
3871 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
3872 signed value, and use a default value computed from the font's
3873 maximum descent.
3874
3875 2000-10-27 Miles Bader <miles@lsi.nec.co.jp>
3876
3877 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
3878 that specify a negative underline position can still use underlines.
3879
3880 * window.c (Fpos_visible_in_window_p): Make POS default to
3881 WINDOW's point, not the current buffer's point.
3882
3883 2000-10-26 Dave Love <fx@gnu.org>
3884
3885 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
3886 when it's necessary.
3887
3888 2000-10-26 Gerd Moellmann <gerd@gnu.org>
3889
3890 * window.c (size_window): Compute size difference from sum of old
3891 child window sizes instead of from parent's size.
3892
3893 * xdisp.c (pos_visible_p): Change current buffer if necessary.
3894 Handle obscured lines at the top of the window.
3895
3896 * frame.c (Fdelete_frame): Doc fix. Move running the hook
3897 down after the last error condition check.
3898
3899 * frame.c (Fdelete_frame): Run delete-frame-hook.
3900
3901 2000-10-26 Kenichi Handa <handa@etl.go.jp>
3902
3903 * coding.c (decode_coding): Fix previous change (check also
3904 CODING_MODE_LAST_BLOCK).
3905
3906 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
3907
3908 * regex.c: More `unsigned char' -> `re_char' changes.
3909 Also change several `int' into `re_wchar_t'.
3910 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
3911 (PUSH_FAILURE_POINTER): Don't cast any more.
3912 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
3913 We want GCC to complain, since this piece of code makes
3914 re_match non-reentrant, which *should* be fixed.
3915 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
3916 (EXTEND_BUFFER): Use RETALLOC.
3917 (SET_LIST_BIT): Don't cast.
3918 (re_wchar_t): New type.
3919 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
3920 that those two functions will always properly return.
3921 (IMMEDIATE_QUIT_CHECK): Cast to void.
3922 (analyse_first): Use recursion rather than an explicit stack.
3923 (re_compile_fastmap): Can't fail anymore.
3924 (re_search_2): Don't check re_compile_fastmap for failure.
3925 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
3926 Now also sets the new value (passed in a new argument).
3927 (re_match_2_internal): Use it.
3928 Also, use a new var `reg' of type size_t when looping through regs
3929 rather than reuse the inappropriate `mcnt'.
3930
3931 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
3932 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
3933 (where_is_internal): Renamed from Fwhere_is_internal.
3934 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
3935 (Fwhere_is_internal): New function wrapping where_is_internal.
3936 (where_is_internal_1): Handle the case where we're filling the cache.
3937 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
3938
3939 2000-10-25 Miles Bader <miles@gnu.org>
3940
3941 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
3942
3943 2000-10-25 Gerd Moellmann <gerd@gnu.org>
3944
3945 * window.c (pos_fully_visible_p): Removed.
3946 (Fpos_visible_in_window_p): Use pos_visible_p to determine
3947 if position is visible and/or fully visible.
3948
3949 * lisp.h (pos_visible_p): Add prototype.
3950
3951 * xdisp.c (pos_visible_p): New function.
3952
3953 2000-10-25 Kenichi Handa <handa@etl.go.jp>
3954
3955 * process.c (send_process): If OBJECT is t, it means that the data
3956 is from C string, but we should encode it. Before calling
3957 setup_raw_text_coding_system, be sure to flush out data by the
3958 previous coding system.
3959
3960 2000-10-25 Miles Bader <miles@lsi.nec.co.jp>
3961
3962 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
3963 assignment of startpos to prev when startpos == pos.
3964
3965 * editfns.c (find_field): Set the field stickiness correctly from
3966 overlay fields. Use renamed `text_property_stickiness'.
3967 (text_property_stickiness): Renamed from `char_property_stickiness'.
3968 Only check text properties, not overlays.
3969 * textprop.c (get_char_property_and_overlay): New function.
3970 (Fget_char_property): Use it.
3971 * intervals.h (get_char_property_and_overlay): Add declaration.
3972
3973 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
3974
3975 * keymap.c: Use AREF, ASET and ASIZE macros.
3976 (Fmake_sparse_keymap): Docstring fix.
3977 (synkey): Remove.
3978 (shadow_lookup): Move up.
3979 Handle the case where lookup-key returns an integer.
3980 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
3981 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
3982 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
3983 Simplify/rewrite the keymap-finding code.
3984 Add check for command shadowing, using shadow_lookup.
3985
3986 2000-10-24 Stefan Monnier <monnier@cs.yale.edu>
3987
3988 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
3989 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
3990 a symbol.
3991
3992 2000-10-24 Andrew Innes <andrewi@gnu.org>
3993
3994 * dired.c (directory_files_internal_unwind): New function.
3995 (directory_files_internal): Use it to ensure closedir is called
3996 even if expand-file-name or file-attributes throw, eg. because of
3997 a user interrupt. Also enable immediate_quit while calling
3998 re_search, so that matching can be interrupted as well.
3999
4000 2000-10-24 Andrew Innes <andrewi@gnu.org>
4001
4002 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
4003 NT-Emacs only.
4004 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
4005 so that re_search functions only quit when callers expect them to.
4006
4007 2000-10-24 Kenichi Handa <handa@etl.go.jp>
4008
4009 * regex.c (regex_compile): Change the way of handling a range from
4010 a char less than 256 to a char not less than 256.
4011
4012 2000-10-24 Gerd Moellmann <gerd@gnu.org>
4013
4014 * window.c (size_window): Prevent setting window's width or
4015 height to a negative value (esp. with XSETFASTINT).
4016
4017 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
4018 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
4019 (protect_malloc_state) [GC_MALLOC_CHECK &&
4020 GC_PROTECT_MALLOC_STATE]: New function.
4021 (PROTECT_MALLOC_STATE): New macro.
4022 (__malloc_initialize, morecore, _malloc_internal)
4023 (_free_internal) _realloc_internal): Use it to make _heapinfo
4024 read-only outside of gmalloc.
4025
4026 * keymap.c: Update copyright.
4027
4028 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
4029 a symbol.
4030
4031 2000-10-24 Colin Walters <walters@cis.ohio-state.edu>
4032
4033 * filelock.c (unlock_all_files): Use unlock_file to expand each
4034 buffer's file_truename before trying remove its lock file.
4035
4036 2000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
4037
4038 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
4039 or CRLF, decode EOLs.
4040
4041 2000-10-24 Kenichi Handa <handa@etl.go.jp>
4042
4043 * window.c (Fdisplay_buffer): Fix doc.
4044
4045 2000-10-23 Jason Rumney <jasonr@gnu.org>
4046
4047 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
4048 ASCII font of default fontset on Windows.
4049
4050 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
4051 xterm.c comment below).
4052
4053 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
4054
4055 2000-10-23 Gerd Moellmann <gerd@gnu.org>
4056
4057 * xterm.c (x_connection_closed): Reset handling_signal.
4058
4059 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing null.
4060
4061 2000-10-23 Miles Bader <miles@gnu.org>
4062
4063 * window.c (window_scroll_pixel_based, window_scroll_line_based):
4064 Pass nil for FULLY argument to Fpos_visible_in_window_p to
4065 maintain old behavior.
4066 * minibuf.c (Fminibuffer_complete): Likewise.
4067
4068 2000-10-23 Miles Bader <miles@lsi.nec.co.jp>
4069
4070 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
4071 that when a font can't be exactly centered, it errs up rather than
4072 down.
4073
4074 2000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
4075
4076 * fns.c (Fbase64_decode_string): The decoded result should be unibyte.
4077
4078 2000-10-23 Andrew Choi <akochoi@i-cable.com>
4079
4080 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
4081
4082 * dispnew.c [macintosh]: Include macterm.h.
4083 (init_display) [macintosh]: Initialization for window system.
4084
4085 * emacs.c (main) [macintosh]: Call syms_of_textprop,
4086 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
4087 syms_of_search, x_term_init, and init_keyboard before calling
4088 init_window_once. Also, call syms_of_xmenu.
4089
4090 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
4091 default fontset to Monaco.
4092
4093 * frame.c [macintosh]: Include macterm.h. Remove declarations of
4094 NewMacWindow and DisposeMacWindow.
4095 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
4096 instead of calling NewMacWindow and setting fields of
4097 f->output_data.mac directly. Call init_frame_faces.
4098 (Fdelete_frame) [macintosh]: Remove unused code.
4099 (Fmodify_frame_parameters) [macintosh]: Call
4100 x_set_frame_parameters instead of mac_set_frame_parameters.
4101
4102 * frame.h [macintosh]: Define menu_bar_lines field in struct
4103 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
4104
4105 * keyboard.c [macintosh]: Include macterm.h.
4106 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
4107 and menu_bar_activate_event type events as for X and NT.
4108 (make_lispy_event) [macintosh]: Construct lisp events of type
4109 MENU_BAR_EVENT as for X and NT.
4110
4111 * sysdep.c [macintosh]: Remove declaration for sys_signal.
4112 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
4113 (sys_subshell) [macintosh]: Remove definition entirely.
4114 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
4115 Vwindow_system_version here. Remove initialization of
4116 Vx_bitmap_file_path.
4117 (read_input_waiting): Correct the number of parameters passed to
4118 read_socket_hook.
4119 Move all Macintosh functions to mac/mac.c.
4120
4121 * term.c [macintosh]: Include macterm.h.
4122
4123 * window.c [macintosh]: Include macterm.h.
4124
4125 * xdisp.c [macintosh]: Include macterm.h. Declare
4126 set_frame_menubar and pending_menu_activation.
4127 (echo_area_display) [macintosh]: Do not return if terminal frame
4128 is the selected frame.
4129 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
4130 Allow only the selected frame to set menu bar.
4131 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
4132 calling FRAME_EXTERNAL_MENU_BAR (f).
4133 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
4134
4135 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
4136 and check_x. Declare XCreateGC. Define x_create_gc and
4137 x_free_gc. Initialize font_sort_order.
4138 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
4139 but call x_list_fonts instead of w32_list_fonts.
4140 (Finternal_face_x_get_resource) [macintosh]: Do not call
4141 display_x_get_resource.
4142 (prepare_face_for_display) [macintosh]: Set xgcv.font.
4143 (realize_x_face) [macintosh]: Load the font if it is specified in
4144 ATTRS.
4145 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed to Qt.
4146
4147 2000-10-22 Stefan Monnier <monnier@cs.yale.edu>
4148
4149 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
4150 is nil: since we go to the end of submap anyway, we'd end up
4151 setting nil to nil.
4152 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
4153 doesn't obey autoload.
4154
4155 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
4156
4157 * msdos.c (dos_set_window_size): Update screen dimension variables.
4158
4159 2000-10-21 Jason Rumney <jasonr@gnu.org>
4160
4161 * w32term.c (w32_cache_char_metrics): Double check that font is
4162 really fixed pitch before trusting tmPitchAndFamily.
4163
4164 2000-10-21 Andrew Innes <andrewi@gnu.org>
4165
4166 * w32gui.h (w32_char_font_type): Move enum from w32term.c
4167
4168 * w32term.h: Extern decl for w32_cache_char_metrics.
4169
4170 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
4171
4172 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
4173 (w32_unload_font): Free per_char array if present.
4174
4175 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
4176 cached information in emulated XFontStruct to handle common cases
4177 quickly. Do not allocate XCharStruct for return.
4178 (w32_native_per_char_metric): New function.
4179 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
4180 allocating one.
4181 (x_produce_glyphs): Don't get an HDC. Change calls to
4182 w32_per_char_metric to match arg change above. Remove calls to
4183 free results.
4184 (w32_get_glyph_overhangs): Ditto.
4185 (w32_cache_char_metrics): New function.
4186
4187 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
4188 ($(BLD)/casefiddle.$(O)): Remove compile command.
4189 ($(BLD)/gmalloc.$(O)): Remove compile command.
4190 ($(BLD)/dispnew.obj):
4191 ($(BLD)/keyboard.obj):
4192 ($(BLD)/w32inevt.obj):
4193 ($(BLD)/w32bdf.obj):
4194 ($(BLD)/alloc.obj):
4195 ($(BLD)/buffer.obj):
4196 ($(BLD)/editfns.obj):
4197 ($(BLD)/emacs.obj):
4198 ($(BLD)/fileio.obj):
4199 ($(BLD)/fns.obj):
4200 ($(BLD)/indent.obj):
4201 ($(BLD)/insdel.obj):
4202 ($(BLD)/intervals.obj):
4203 ($(BLD)/minibuf.obj):
4204 ($(BLD)/print.obj):
4205 ($(BLD)/scroll.obj):
4206 ($(BLD)/sysdep.obj):
4207 ($(BLD)/textprop.obj):
4208 ($(BLD)/widget.obj):
4209 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
4210 ($(BLD)/term.obj): Add dependency on dispextern.h.
4211
4212 * makefile.nt ($(BLD)\dispnew.obj):
4213 ($(BLD)\keyboard.obj):
4214 ($(BLD)\w32inevt.obj):
4215 ($(BLD)\w32bdf.obj):
4216 ($(BLD)\alloc.obj):
4217 ($(BLD)\buffer.obj):
4218 ($(BLD)\editfns.obj):
4219 ($(BLD)\emacs.obj):
4220 ($(BLD)\fileio.obj):
4221 ($(BLD)\fns.obj):
4222 ($(BLD)\indent.obj):
4223 ($(BLD)\insdel.obj):
4224 ($(BLD)\intervals.obj):
4225 ($(BLD)\minibuf.obj):
4226 ($(BLD)\print.obj):
4227 ($(BLD)\scroll.obj):
4228 ($(BLD)\sysdep.obj):
4229 ($(BLD)\textprop.obj):
4230 ($(BLD)\widget.obj):
4231 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
4232 ($(BLD)\term.obj): Add dependency on dispextern.h
4233
4234 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
4235
4236 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
4237 with an additional argument of Qt.
4238
4239 2000-10-21 Miles Bader <miles@gnu.org>
4240
4241 * window.c (pos_fully_visible_in_window_p): New function.
4242 (Fpos_visible_in_window_p): Add FULLY argument.
4243 Use pos_fully_visible_in_window_p.
4244 (window_scroll_pixel_based, window_scroll_line_based): Update
4245 calls to Fpos_visible_in_window_p.
4246 * lisp.h (Fpos_visible_in_window_p): Update prototype
4247
4248 2000-10-20 Gerd Moellmann <gerd@gnu.org>
4249
4250 * alloc.c (toplevel): Conditionalize compilation of mem_*
4251 functions differently.
4252
4253 2000-10-20 Jason Rumney <jasonr@gnu.org>
4254
4255 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
4256 mem_init where it used to be. mem_z etc not defined otherwise.
4257
4258 2000-10-20 Gerd Moellmann <gerd@gnu.org>
4259
4260 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
4261 GC_MALLOC_CHECK.
4262 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
4263 structure definition and related variabled to the top of the file.
4264 Include this code when GC_MALLOC_CHECK is defined.
4265 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
4266 register/unregister allocated region.
4267 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
4268 which isn't allocated.
4269 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
4270 something which is already in use.
4271 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
4272 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
4273 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
4274 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
4275
4276 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
4277 _malloc_internal instead of malloc.
4278 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
4279 of free.
4280
4281 2000-10-20 Andrew Innes <andrewi@gnu.org>
4282
4283 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
4284 Windows.
4285 (my_strftime) <macro>: Don't use macro arg list when redefining as
4286 _strftime_copytm.
4287 (my_strftime) <function>: Supply 0 as ut argument.
4288
4289 2000-10-19 Jason Rumney <jasonr@altavista.net>
4290
4291 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
4292 including dispextern.h, as it stops faces from working.
4293
4294 * w32fns.c (Fx_create_frame): Don't bother calling
4295 face-set-after-frame-default since the caller does it for us
4296 anyway. Clean up calls to x_get_arg to be consistent with X.
4297
4298 * w32term.c (x_produce_glyphs): Handle
4299 unibyte_display_via_language_environment correctly.
4300 (w32_draw_box_rect): Fix the calculation of width and height.
4301
4302 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
4303 as it has stopped working.
4304 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
4305 menu-bar.
4306
4307 2000-10-19 Gerd Moellmann <gerd@gnu.org>
4308
4309 * eval.c (skip_debugger): Prevent a compiler warning.
4310 (Fcondition_case): Likewise.
4311 (Fbacktrace_frame): Use a null interactive spec.
4312
4313 2000-10-19 Kenichi Handa <handa@etl.go.jp>
4314
4315 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
4316
4317 2000-10-18 Gerd Moellmann <gerd@gnu.org>
4318
4319 * strftime.c: Sync with glibc, file version 1.78.
4320 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
4321 should no longer be used according to ISO 8601.
4322
4323 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
4324 no map for meta_prefix_char, don't try to use it as a keymap.
4325 Instead, if T_OK is non-zero, look up a default binding, if any,
4326 otherwise, if T_OK is zero, return nil.
4327
4328 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
4329 (x_to_xcolors, png_load): Use x_query_color.
4330
4331 * xterm.c (x_color_cells, x_query_colors, x_query_color):
4332 New functions.
4333 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
4334 which can be slow.
4335 (x_copy_color, x_alloc_lighter_color): Likewise.
4336
4337 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
4338 (x_query_color, x_query_colors): Add prototype.
4339
4340 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
4341 check_string_bytes only if not noninteractive, increase count to 50.
4342
4343 2000-10-18 Miles Bader <miles@lsi.nec.co.jp>
4344
4345 * insdel.c (adjust_markers_for_delete): Handle before-insertion
4346 markers correctly.
4347
4348 2000-10-17 Gerd Moellmann <gerd@gnu.org>
4349
4350 * alloc.c (pure_bytes_used): Renamed from pureptr.
4351 (ALIGN): New macro.
4352 (pure_alloc): New function.
4353 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
4354 Use it.
4355 (Fpurecopy): Use PURE_POINTER_P.
4356
4357 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
4358 PT has moved backward.
4359
4360 * xdisp.c (cursor_row_p): Take continued lines into account.
4361
4362 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
4363 string's size_byte.
4364 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
4365 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
4366 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
4367 string allocated.
4368
4369 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
4370 of selective display off while searching for the next line start.
4371
4372 2000-10-17 Kenichi Handa <handa@etl.go.jp>
4373
4374 * Makefile.in (term.o): Depend on dispextern.h.
4375
4376 2000-10-16 Stefan Monnier <monnier@cs.yale.edu>
4377
4378 * keymap.c (keymap_memberp): Ensure that nil is not a member.
4379
4380 2000-10-16 Gerd Moellmann <gerd@gnu.org>
4381
4382 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
4383 the iterator at the beginning, so that they can be set later on,
4384 for instance in reseat_at_next_visible_line_start, without being
4385 overwritten.
4386
4387 * xfns.c (pbm_format): Add :foreground and :background keywords.
4388 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
4389 (xbm_load): Recognize foreground and background color specifications.
4390
4391 2000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
4392
4393 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
4394
4395 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern declaration.
4396
4397 * msdos.c (IT_set_face): Compare highlighted face with the default
4398 face, and invert colors if these faces' colors are identical.
4399 (Fmsdos_remember_default_colors): Don't swap foreground and
4400 background colors in initial_colors[].
4401 (IT_set_frame_parameters): Don't swap frame's foreground and
4402 background pixels. If ALIST includes "(reverse . t)", swap
4403 foreground-color and background-color properties in frame's
4404 param_alist. If the original frame's param_alist doesn't specify
4405 the colors, store unspecified-fg and unspecified-bg, reversed if
4406 required.
4407
4408 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
4409 the colors are unspecified and reversed, reverse fore- and back-
4410 ground in the returned value.
4411 (Fframe_parameter): Ditto.
4412
4413 2000-10-16 Gerd Moellmann <gerd@gnu.org>
4414
4415 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
4416 get_last_unchanged_at_beg_row.
4417 (find_first_unchanged_at_end_row): Renamed from
4418 get_first_unchanged_at_end_row.
4419 (find_first_unchanged_at_end_row): Convert assertions to
4420 unconditional tests which abort. When looking for a row in
4421 unchanged text, don't go further back than first_text_row.
4422
4423 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
4424 Don't add in the last line's height when deciding if the new
4425 position is below the scroll margin.
4426
4427 2000-10-16 Miles Bader <miles@gnu.org>
4428
4429 * editfns.c (Fconstrain_to_field): Check carefully for field
4430 boundaries if either OLD_POS or NEW_POS has a non-nil field
4431 property, even if they're the same.
4432
4433 2000-10-16 Kenichi Handa <handa@etl.go.jp>
4434
4435 * xterm.c (x_draw_box_rect): Fix the calculation of width and
4436 height for XFillRectangle.
4437
4438 2000-10-15 Stefan Monnier <monnier@cs.yale.edu>
4439
4440 * syntax.c (Fstring_to_syntax): New function extracted from
4441 Fmodify_syntax_entry.
4442 (Fmodify_syntax_entry): Use it and document the ! and | fences.
4443 (skip_chars, Fforward_comment): Remove unused variables.
4444 (syms_of_syntax): Add defsubr for string-to-syntax.
4445 (describe_syntax): Add code for comment and string fences.
4446
4447 2000-10-14 Stefan Monnier <monnier@cs.yale.edu>
4448
4449 * keymap.c (access_keymap): Add AUTOLOAD parameter.
4450 Do the meta->esc mapping. Call get_keyelt before returning.
4451 Start scanning from the second element (the first is always `keymap')
4452 to make it easier to detect when we reach a parent map.
4453 Handle the case of inheriting from a symbol whose function is a map.
4454 (Fkeymap_parent): Also handle the `inherit from symbol' case.
4455 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
4456 (get_keyelt, Flookup_key): Update call to access_keymap.
4457 Remove the meta->esc mappings.
4458 (define_as_prefix): Delete old disabled code.
4459 (menu_item_p): New function.
4460 (where_is_internal_1): Skip over the few remaining menu items.
4461 * lisp.h (access_keymap): Update prototype.
4462 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
4463 Update call to access_keymap.
4464 (follow_key, read_key_sequence): Update calls to access_keymap.
4465 Remove the meta->esc mappings.
4466
4467 2000-10-13 Gerd Moellmann <gerd@gnu.org>
4468
4469 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
4470 with additional argument.
4471
4472 * xdisp.c (cursor_row_p): New function.
4473 (try_cursor_movement, display_line): Use it.
4474
4475 * xdisp.c (append_space): Also save/restore iterator's current
4476 character and its length.
4477
4478 * xdisp.c (init_from_display_pos): Add an assertion.
4479 (handle_stop): Don't set iterator's add_overlay_start.
4480 (handle_invisible_prop): Likewise.
4481 (load_overlay_strings): If text under an overlay is invisible,
4482 take both before- and after-strings into account when the iterator
4483 is positioned either at the start or at the end of the overlay.
4484 (forward_to_next_line_start): Rewritten.
4485 (reseat_at_next_visible_line_start): Rewritten.
4486 (set_iterator_to_next): Add parameter RESEAT_P.
4487
4488 * dispextern.h (struct it): Remove member add_overlay_start.
4489 (set_iterator_to_next): Change prototype.
4490
4491 2000-10-13 Kenichi Handa <handa@etl.go.jp>
4492
4493 * coding.c (code_convert_region): Be sure to initialize
4494 coding->category_idx.
4495 (decode_coding_string): Set coding->src_multibyte and
4496 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
4497 (encode_coding_string): Set coding->src_multibyte and
4498 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
4499
4500 2000-10-12 Stefan Monnier <monnier@cs.yale.edu>
4501
4502 * xfns.c (Fx_create_frame): Don't bother calling
4503 face-set-after-frame-default since the caller does it for us anyway.
4504
4505 2000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
4506
4507 * window.c (coordinates_in_window): Fix detection of vertical line
4508 on character terminals.
4509
4510 2000-10-12 Gerd Moellmann <gerd@gnu.org>
4511
4512 * editfns.c (save_excursion_save): Additionally record the
4513 selected window.
4514 (save_excursion_restore): If buffer was visible in a window, and a
4515 different window was selected, and the old selected window is
4516 still live, restore point in that window.
4517
4518 2000-10-12 Kenichi Handa <handa@etl.go.jp>
4519
4520 * xterm.c (x_produce_glyphs): Handle
4521 unibyte_display_via_language_environment correctly.
4522
4523 * regex.c (regex_compile): Change the way of handling a range from
4524 unibyte char to multibyte char.
4525
4526 * syntax.c (skip_chars): Change the way of handling a range from
4527 unibyte char to multibyte char.
4528
4529 * process.c (read_process_output): Cancel previous change.
4530
4531 2000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
4532
4533 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
4534
4535 * charset.c (Ffind_charset_string): Doc fix.
4536 (Ffind_charset_region): Doc fix.
4537
4538 2000-10-11 Kenichi Handa <handa@mule.m17n.org>
4539
4540 * process.c (read_process_output): Fix previous change. Adjust
4541 multibyteness of text to insert in a buffer by
4542 string_make_unibyte/multibyte instead of Fstring_as_unibyte/multibyte.
4543
4544 2000-10-10 Andreas Schwab <schwab@suse.de>
4545
4546 * alloc.c (mark_object): Remove all workarounds installed on
4547 1993-08-08.
4548
4549 2000-10-10 Kenichi Handa <handa@etl.go.jp>
4550
4551 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before returning.
4552 (base64_encode_1): Make it work for a text of multibyte form.
4553 (Fbase64_decode_region): Allocate sufficient memory for multibyte
4554 case. Don't call str_to_multibyte because base64_decode_1
4555 produces correct multibyte form for eight-bit codes.
4556 (Fbase64_decode_string): Adjusted for the change of base64_decode_1.
4557 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
4558 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
4559 codes.
4560
4561 * charset.h (CHAR_STRING): Optimized for single byte characters.
4562
4563 2000-10-09 Andreas Schwab <schwab@suse.de>
4564
4565 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
4566 -1 after socket is closed, to fall through to error processing.
4567
4568 2000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
4569
4570 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
4571 variables. If ALIST includes foreground-color or
4572 background-color, change also the colors of the default face for
4573 this frame.
4574
4575 2000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
4576
4577 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
4578 them extern (they are defined on xfaces.c).
4579 (syms_of_msdos): Don't intern and don't staticpro
4580 Qbackground_color and Qforeground_color.
4581
4582 2000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
4583
4584 * frame.c (Fframe_parameter): For non-windowed frames, if
4585 f->param_alist says foreground or background color is unspecified,
4586 call tty_color_name to return the color name computed from the
4587 frame's current colors.
4588
4589 2000-10-06 Dave Love <fx@gnu.org>
4590
4591 * terminfo.c (ospeed): Don't declare.
4592
4593 * sysdep.c: Don't include string.h.
4594 (h_errno): Declare conditional also on TRY_AGAIN.
4595
4596 * charset.c (Ffind_charset_string): Doc fix.
4597
4598 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
4599 (Fbase64_decode_region, Fbase64_decode_string): More explicit
4600 error messages.
4601
4602 2000-10-05 Dave Love <fx@gnu.org>
4603
4604 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
4605 position like menu-bar.
4606
4607 2000-10-05 Gerd Moellmann <gerd@gnu.org>
4608
4609 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
4610
4611 * xdisp.c (handle_single_display_prop): Use safe_call1.
4612 (safe_call): Renamed from call_function.
4613 (safe_call1): New function.
4614 (handle_fontified_prop): Use safe_call1 instead of call1.
4615 (safe_eval): Renamed from eval_form.
4616 (safe_eval_handler): Renamed from eval_handler.
4617 (handle_single_display_prop, display_mode_element): Use safe_eval
4618 instead of eval_form.
4619
4620 * xfaces.c (merge_face_heights): Use safe_call instead of
4621 call_function.
4622
4623 * keyboard.c (show_help_echo): Use safe_call instead of
4624 call_function; use safe_eval instead of eval_form.
4625
4626 * lisp.h (safe_call): Renamed from call_function.
4627 (safe_eval): Renamed from eval_form.
4628 (safe_call1): Add prototype.
4629
4630 2000-10-05 Miles Bader <miles@lsi.nec.co.jp>
4631
4632 * xfns.c (image_ascent): Rearrange ascent calculation for the
4633 has-a-font case.
4634
4635 2000-10-04 Stefan Monnier <monnier@cs.yale.edu>
4636
4637 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
4638 (where_is_internal_1): Don't bother ignoring menu-items any more.
4639
4640 2000-10-04 Gerd Moellmann <gerd@gnu.org>
4641
4642 * keyboard.c (update_menu_bindings): New variable.
4643 (parse_menu_item): Use AREF. If update_menu_bindings
4644 is 0, don't update menu bindings.
4645 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
4646
4647 2000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
4648
4649 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
4650 to `mark_object'.
4651
4652 2000-10-02 Stefan Monnier <monnier@cs.yale.edu>
4653
4654 * syntax.c (forw_comment): Match nestedness of ender/starter.
4655 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
4656 (prev_char_comstart_first): Remove.
4657 (back_comment): Check two-char comment markers more carefully
4658 to better handle overlapping cases like *//* or /* */* */ ...
4659 Match nestedness of ender/starter.
4660
4661 2000-10-02 Dave Love <fx@gnu.org>
4662
4663 * config.in (HAVE_GAI_STRERROR): Add undef.
4664
4665 * process.c (Fopen_network_stream): Use it.
4666
4667 * m/alpha.h (NO_REMAP): Don't define.
4668
4669 2000-10-02 Gerd Moellmann <gerd@gnu.org>
4670
4671 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
4672 return with a string converted to an integer or vice versa when
4673 Vmocklisp_arguments is t.
4674 (Fsignal): Likewise. The function can return for `quit'.
4675 (struct gcpro): Declare member `var' to point to a volatile
4676 Lisp_Object.
4677
4678 * eval.c (error): Prevent compiler warning.
4679
4680 2000-09-30 Stefan Monnier <monnier@cs.yale.edu>
4681
4682 * keymap.c (keymap_memberp): New function.
4683 (Fset_keymap_parent): Use it.
4684 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
4685 Use keymap_memberp to avoid creating cycles.
4686 (access_keymap): Use KEYMAPP.
4687
4688 2000-09-30 Gerd Moellmann <gerd@gnu.org>
4689
4690 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
4691 gai_strerror. Make sure xerrno is set if connect fails. Improve
4692 error recovery.
4693
4694 2000-09-29 Jason Rumney <jasonr@gnu.org>
4695
4696 * w32term.c (w32_char_font_type, w32_encode_char)
4697 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
4698 (w32_bdf_per_char_metric): New function.
4699 (w32_per_char_metric): Use it.
4700 (x_draw_glyph_string_background): Always draw background for BDF
4701 glyphs.
4702
4703 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
4704 GDI object which is a scarce resource.
4705
4706 * w32bdf.c (search_file_line): Fix skipping of whitespace.
4707 (get_quoted_string): Fix limit on memchr search.
4708 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
4709 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
4710 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
4711 (get_cached_font_char, cache_char_offset): Use macro
4712 BDF_CODEPOINT_RANGE_COVER_P.
4713 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
4714 (clear_cached_bitmap_slots): New function.
4715 (GET_HEX_VALUE): G-Z, g-z are not hex.
4716 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
4717 (get_bitmap_with_cache): Use new cache implementation.
4718 (create_offscreen_bitmap): New function.
4719 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
4720
4721 * w32term.c (x_produce_glyphs): If the distance from the current
4722 position to the next tab stop is less than a canonical character
4723 width, use the tab stop after that.
4724 (x_draw_glyphs): Handle case START and END are out of bounds more
4725 carefully.
4726 (x_clear_mouse_face): Block/unblock input.
4727 (x_display_and_set_cursor): Don't show a hollow box cursor for
4728 buffers whose cursor_type is nil.
4729
4730 2000-09-29 Gerd Moellmann <gerd@gnu.org>
4731
4732 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar disappears.
4733
4734 * dispextern.h (updating_frame): Declare extern.
4735
4736 2000-09-29 Andreas Schwab <schwab@suse.de>
4737
4738 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
4739
4740 2000-09-29 Gerd Moellmann <gerd@gnu.org>
4741
4742 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
4743 use its function definition.
4744 (tool_bar_items): Likewise.
4745
4746 * lisp.h (fatal): Declare NO_RETURN.
4747
4748 2000-09-29 Kenichi Handa <handa@etl.go.jp>
4749
4750 * keymap.c: Remove the line "#undef NULL".
4751
4752 2000-09-28 Gerd Moellmann <gerd@gnu.org>
4753
4754 * xterm.c (x_make_frame_visible): Try harder to make the frame visible.
4755
4756 2000-09-28 Dave Love <fx@gnu.org>
4757
4758 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
4759
4760 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
4761
4762 * .gdbinit (xreload): Note its need on GNU/Linux.
4763
4764 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
4765 r_alloc, r_alloc_free.
4766
4767 2000-09-28 Kenichi Handa <handa@etl.go.jp>
4768
4769 * syntax.c (skip_chars): Handle negation correctly.
4770
4771 2000-09-27 Gerd Moellmann <gerd@gnu.org>
4772
4773 * xfaces.c (realize_default_face): Call set_lface_from_font_name
4774 with non-zero FORCE_P argument.
4775
4776 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
4777 Add assertions.
4778
4779 * xdisp.c (window_box_height): Add an assertion.
4780
4781 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
4782 tool-bar than is available.
4783 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
4784
4785 2000-09-27 Dave Love <fx@gnu.org>
4786
4787 * s/irix6-5.h: Now works 64-bit. Tidied.
4788
4789 2000-09-26 Gerd Moellmann <gerd@gnu.org>
4790
4791 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
4792 instead of BITS_PER_INT.
4793 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
4794 EMACS_UINT, respectively.
4795 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
4796
4797 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
4798
4799 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
4800
4801 * window.c (freeze_window_starts): Construct last argument for
4802 foreach_window differently.
4803
4804 * xfns.c (x_decode_color): Don't return a Lisp_Object.
4805
4806 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
4807 EMACS_UINT instead of `int' and `unsigned int'.
4808 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
4809
4810 * frame.h (struct frame): Make the `nothing' member of union
4811 output_data an EMACS_INT.
4812
4813 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug hunting.
4814 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
4815 size in the sdata structure.
4816 (SDATA_NBYTES, SDATA_DATA): New macros.
4817 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
4818 differently for the different layout of the sdata structure.
4819 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
4820 in sdata.
4821 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
4822 Check that size recorded in the string size and size recorded in
4823 the sdata structure agree.
4824
4825 2000-09-25 Dave Love <fx@gnu.org>
4826
4827 * buffer.c: Include stdio.h.
4828
4829 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
4830
4831 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
4832
4833 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
4834 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as size_t.
4835 (__malloc_extra_blocks): Declare as __malloc_size_t.
4836
4837 2000-09-25 Gerd Moellmann <gerd@gnu.org>
4838
4839 * alloc.c (mark_image): Use GC_NILP instead of NILP.
4840
4841 * keyboard.c (show_help_echo): Set help_echo_showing_p.
4842 (read_char): If help-echo is showing, preserve the echo area
4843 when redisplaying.
4844
4845 * xdisp.c (help_echo_showing_p): New variable.
4846 (set_message): Reset it to 0.
4847 (init_xdisp): Initialize help_echo_showing_p.
4848
4849 * dispextern.h (help_echo_showing_p): Declare extern.
4850
4851 * config.in: Fix typo in __GNUC_MINOR__.
4852
4853 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
4854
4855 * s/freebsd.h (POSIX_SIGNALS): Define.
4856
4857 * xterm.c (x_clear_mouse_face): Block/unblock input.
4858
4859 2000-09-24 Dave Love <fx@gnu.org>
4860
4861 * fns.c (base64_encode_1): Fix last change.
4862
4863 2000-09-22 Gerd Moellmann <gerd@gnu.org>
4864
4865 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
4866
4867 * xdisp.c (try_window_reusing_current_matrix): More fixes
4868 for the case window has a header-line.
4869
4870 2000-09-22 Dave Love <fx@gnu.org>
4871
4872 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
4873 a doc string.
4874
4875 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
4876
4877 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
4878
4879 2000-09-21 Gerd Moellmann <gerd@gnu.org>
4880
4881 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
4882 for GCC >= 2.5.
4883
4884 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error):
4885 Declare NO_RETURN.
4886
4887 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
4888 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
4889 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
4890 warnings.
4891
4892 * marker.c (byte_char_debug_check): Return void.
4893
4894 * xfns.c (Fx_create_frame): Set default frame parameter value
4895 for tool-bar-lines to 1.
4896
4897 * dispnew.c (scrolling_window): Compare y-positions of rows
4898 equal at the start. Some simplification.
4899
4900 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
4901 reused rows' y-position in the case window has a header-line, and
4902 new window start is greater than old window start.
4903
4904 * process.c (process_sent_to): New variable.
4905 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
4906 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
4907 Declare more parameters volatile.
4908
4909 * lread.c (Vrecursive_load_depth_limit): New variable.
4910 (Fload): Check recursive loads whose recursion depth exceeds
4911 Vrecursive_load_depth_limit.
4912 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
4913
4914 2000-09-20 Gerd Moellmann <gerd@gnu.org>
4915
4916 * fileio.c (Fread_file_name): Doc fix.
4917
4918 * editfns.c (Fmessage_or_box): Doc fix.
4919
4920 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
4921
4922 * xfns.c (xbm_scan): Allow C-style comments.
4923
4924 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
4925 symbols are specified, add color translations to the cache.
4926 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New functions.
4927 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
4928 xpm_cache_color.
4929 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
4930 structures to xpm_init_color_cache.
4931
4932 2000-09-19 Gerd Moellmann <gerd@gnu.org>
4933
4934 * dispnew.c (update_window_line): Make sure to always draw mode-lines.
4935
4936 2000-09-19 Andrew Innes <andrewi@gnu.org>
4937
4938 * makefile.nt (bootstrap-emacs): Don't change directory.
4939
4940 2000-09-19 Kenichi Handa <handa@etl.go.jp>
4941
4942 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
4943
4944 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
4945 If output buffer is too small, signal an appropriated error.
4946
4947 2000-09-18 Dave Love <fx@gnu.org>
4948
4949 * keyboard.c (menu_bar_items, tool_bar_items)
4950 (current_active_maps): Remove redundant get_local_map call.
4951
4952 2000-09-18 Gerd Moellmann <gerd@gnu.org>
4953
4954 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
4955 cursor for buffers whose cursor_type is nil.
4956
4957 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
4958 a feature to implement that is already implemented.
4959 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
4960 warnings.
4961
4962 * xfns.c (x_clear_image_1): New function.
4963 (x_clear_image): Use it.
4964 (x_from_xcolors): Use x_clear_image_1; don't free the image's mask.
4965
4966 * dispnew.c (update_window): Move test for invisible lines
4967 at the top to update_window_line.
4968 (update_window_line): Handle invisible lines here.
4969
4970 * xfns.c (clear_image_cache): Clear current matrices of all
4971 frames sharing an image cache. Block input while freeing
4972 images. Fix timestamp comparison.
4973 (x_clear_image): Also free the mask.
4974
4975 * xfns.c (lookup_image): Block input while loading the image so
4976 that we won't get interrupted in a state where the image isn't yet
4977 set up completely.
4978 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
4979 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
4980 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
4981 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock input.
4982
4983 2000-09-16 Gerd Moellmann <gerd@gnu.org>
4984
4985 * dispnew.c (update_window): Make sure to make desired rows
4986 current even if they are completely invisible at the top
4987 of a window.
4988
4989 2000-09-15 Gerd Moellmann <gerd@gnu.org>
4990
4991 * xfns.c (lookup_image): Build mask before applying an algorithm.
4992 Recognize algorithm `disabled'.
4993 (cross_disabled_images): New variable.
4994 (COLOR_INTENSITY): New macro.
4995 (x_detect_edges): Use COLOR_INTENSITY.
4996 (x_disable_image): New function.
4997 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
4998
4999 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
5000 disabled state, don't apply an image transformation algorithm if
5001 the user specified an image for the disabled state. Use
5002 `:algorithm disabled' for creating a disabled item's image if the
5003 user hasn't specified an image.
5004
5005 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
5006 allocation functions with the XPM lib.
5007 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
5008 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
5009 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
5010 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
5011 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New functions.
5012 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
5013 functions, if possible, because these handle color allocation
5014 failure more gracefully.
5015 (Fimage_mask_p): New function.
5016
5017 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
5018 (Qedge_detection, Qheuristic): New symbols.
5019 (syms_of_xfns): Initialize new symbols.
5020 (lookup_image): Handle `:mask X', `:algorithm emboss', and
5021 `algorithm (edge-detection ...)'.
5022 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
5023 (tiff_format, gif_format, gs_format): Add `:mask'.
5024 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
5025 (GIF_MASK, GS_MASK): New enumerators.
5026 (x_laplace_read_row, x_laplace_write_row): Functions removed.
5027 (emboss_matrix, laplace_matrix): New variables.
5028 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
5029 (x_edge_detection): New functions.
5030 (x_laplace): Rewritten in terms of x_detect_edges.
5031 (x_build_heuristic_mask): If image has a mask, free it.
5032
5033 2000-09-14 Andrew Innes <andrewi@gnu.org>
5034
5035 * makefile.w32-in: Revert to Unix line endings.
5036
5037 2000-09-14 Andrew Innes <andrewi@gnu.org>
5038
5039 * makefile.w32-in: Standardize indentation somewhat.
5040 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
5041 cater for differences between shells.
5042
5043 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
5044
5045 2000-09-14 Gerd Moellmann <gerd@gnu.org>
5046
5047 * xterm.c (x_produce_glyphs): If the distance from the current
5048 position to the next tab stop is less than a canonical character
5049 width, use the tab stop after that.
5050
5051 2000-09-14 Dave Love <fx@gnu.org>
5052
5053 * buffer.c (alloc_buffer_text): Fix xmalloc call.
5054
5055 2000-09-14 Gerd Moellmann <gerd@gnu.org>
5056
5057 * xdisp.c (handle_fontified_prop): While running fontification
5058 functions, bind `fontification-functions' and
5059 `after-change-functions' to nil.
5060
5061 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
5062 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
5063
5064 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
5065
5066 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
5067 USE_MMAP_FOR_BUFFERS.
5068
5069 * insdel.c (make_gap): Use enlarge_buffer_text.
5070
5071 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
5072 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
5073 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
5074 from former r_alloc_* functions in ralloc.c.
5075 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New variables.
5076 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
5077 (mmap_init) [REL_ALLOC_MMAP]: New function.
5078 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
5079 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
5080 BUFFER_FREE.
5081
5082 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
5083 (enlarge_buffer_text): Add prototype.
5084
5085 * ralloc.c: Remove everything having to do with the use of mmap.
5086
5087 2000-09-13 Gerd Moellmann <gerd@gnu.org>
5088
5089 * sound.c (Fplay_sound): Doc fix.
5090
5091 * keyboard.c: Avoid some more compiler warnings.
5092 (parse_tool_bar_item): Ignore cached key bindings.
5093
5094 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
5095 and allocation of Lisp data.
5096
5097 2000-09-12 Gerd Moellmann <gerd@gnu.org>
5098
5099 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
5100 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
5101 defaults first.
5102
5103 * lread.c (Fload): Put code checking for recursive loads in #if 0.
5104
5105 2000-09-12 Miyashita Hisashi <himi@meadowy.org>
5106
5107 * ccl.c: Comment fixed.
5108 (MAX_MAP_SET_LEVEL): Increased to 30.
5109 (PUSH_MAPPING_STACK): Enclose with do-while block.
5110 (POP_MAPPING_STACK): Likewise.
5111 (stack_idx_of_map_multiple): New variable.
5112 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
5113 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
5114 call the corresponding CCL program by CCL_CALL_FOR_MAP_INSTRUCTION.
5115 (ccl_driver) <CCL_MapSingle>: Likewise.
5116 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
5117 with the case where looking up process reaches to the end of
5118 map-set, and call CCL programs as the above change.
5119
5120 2000-09-11 Gerd Moellmann <gerd@gnu.org>
5121
5122 * xfns.c (png_load, jpeg_load): Declare some variables volatile
5123 that might be clobbered by longjmp.
5124 (check_x_display_info, x_decode_color, create_frame_xic)
5125 (Fx_display_backing_store, Fx_display_visual_class)
5126 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler warnings.
5127
5128 * lread.c (init_lread): Set Vloads_in_progress to nil.
5129 (Fload): Show list of recursively loaded files, when signaling an
5130 error.
5131
5132 * lread.c (Vloads_in_progress): New variable.
5133 (record_load_unwind): New function.
5134 (Fload): Check for recursive loads.
5135 (syms_of_lread): Initialize Vloads_in_progress.
5136 (read_integer, read1): Avoid some compiler warnings.
5137
5138 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
5139 compiler warnings.
5140
5141 2000-09-11 Miles Bader <miles@gnu.org>
5142
5143 * editfns.c (Fbuffer_string): Doc fix.
5144
5145 2000-09-10 Gerd Moellmann <gerd@gnu.org>
5146
5147 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
5148
5149 2000-09-09 Ken Raeburn <raeburn@gnu.org>
5150
5151 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
5152 whether to include other header files.
5153
5154 2000-09-09 Gerd Moellmann <gerd@gnu.org>
5155
5156 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
5157 by Fmemq as a boolean.
5158
5159 2000-09-08 Stefan Monnier <monnier@cs.yale.edu>
5160
5161 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
5162
5163 2000-09-08 Gerd Moellmann <gerd@gnu.org>
5164
5165 * ralloc.c (mmap_fd): Remove initializer which can make it
5166 read-only in a dumped Emacs.
5167 (mmap_fd_1): New variable.
5168 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
5169 restore it from there.
5170 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
5171 unconditionally so that mmap_fd can be initialized there.
5172 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
5173 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
5174 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
5175
5176 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
5177
5178 * xdisp.c (dump_glyph_row): Fix printf format string.
5179 (display_line, move_it_in_display_line_to): Avoid compiler warnings.
5180
5181 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
5182
5183 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
5184 inheritance.
5185
5186 * xdisp.c (try_window_id): When trying to locate cursor in
5187 unchanged rows at the top, handle the case that we can't find it.
5188
5189 * xterm.c (x_draw_glyphs): Handle case START and END are out
5190 of bounds more carefully.
5191
5192 2000-09-08 Dave Love <fx@gnu.org>
5193
5194 * s/sol2.h (REL_ALLOC_MMAP): Define.
5195 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
5196
5197 * ralloc.c: Don't include string.h (redundant).
5198 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
5199 [!MAP_ANON]: Include fcntl.h.
5200 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
5201 (r_alloc, r_re_alloc, r_alloc_free)
5202 (mmap_enlarge, mmap_set_vars): Use it.
5203 (r_alloc_init_fd): New function.
5204 (__morecore) [SYSTEM_MALLOC]: Don't declare.
5205 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
5206 malloc type.
5207
5208 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
5209 Remove vm-limit.o.
5210
5211 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
5212 change to __NetBSD__.
5213
5214 2000-09-08 Kenichi Handa <handa@etl.go.jp>
5215
5216 * search.c (compile_pattern): Check the multibyteness of cached
5217 string and PATTERN.
5218
5219 2000-09-08 Miles Bader <miles@gnu.org>
5220
5221 * xfaces.c (default_face_vector): Function removed.
5222 (Finternal_merge_in_global_face): Restore old global/local
5223 attribute override order. Use inline loop instead of calling
5224 default_face_vector.
5225
5226 2000-09-07 Gerd Moellmann <gerd@gnu.org>
5227
5228 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
5229 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
5230 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
5231 where necessary, in case POINTER_TYPE is `void'.
5232
5233 2000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
5234
5235 * frame.c (make_terminal_frame): Initialize frame foreground and
5236 background colors to unspecified, for the initial instance of an
5237 MSDOS frame.
5238
5239 2000-09-07 Gerd Moellmann <gerd@gnu.org>
5240
5241 * ralloc.c (mmap_find): Fix overlap computation.
5242 (mmap_enlarge): Compute nbytes before trying to find an
5243 overlapping region.
5244
5245 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
5246 instead of `!='.
5247
5248 * lread.c (syms_of_lread): Change value of regexp
5249 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
5250
5251 * xmenu.c (xdialog_show): When looking up the selection in
5252 menu_items, take `quote' boundaries into account; this corresponds
5253 to a nil ITEM in x-popup-dialog.
5254
5255 2000-09-07 Kenichi Handa <handa@etl.go.jp>
5256
5257 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
5258 not 0x81.
5259 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
5260
5261 * coding.c (encode_coding_sjis_big5): Use translation table for
5262 encoding, not decoding. Fix the handling of latin-jisx0201.
5263 Check for the charset katakana-jisx0201 too.
5264 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
5265 (detect_coding_sjis): Check the byte sequence more rigidly.
5266
5267 2000-09-07 Gerd Moellmann <gerd@gnu.org>
5268
5269 * xfaces.c (Vparam_value_alist): New variable.
5270 (syms_of_xfaces): Initialize it.
5271 (Finternal_set_lisp_face_attribute): Avoid more consing.
5272
5273 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
5274 specially.
5275 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
5276 (Qbackground_mode): New variable.
5277 (syms_of_frame_1): Initialize Qbackground_mode.
5278
5279 * lisp.h (Qdisplay): Declare extern.
5280
5281 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
5282 change face on all frames, and change the default for new frames.
5283
5284 2000-09-07 Dave Love <fx@gnu.org>
5285
5286 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
5287
5288 2000-09-07 Kenichi Handa <handa@etl.go.jp>
5289
5290 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
5291
5292 * charset.c: Include composite.h
5293 (lisp_string_width): New function.
5294 (Fstring_width): Call lisp_string_width instead of strwidth.
5295
5296 * Makefile.in (charset.o): Depends on composite.h.
5297
5298 * process.c (read_process_output): Before inserting the decoded
5299 text in the buffer, adjust the multibyteness.
5300
5301 2000-09-06 Gerd Moellmann <gerd@gnu.org>
5302
5303 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
5304 buffer's text buffer is null, map new memory.
5305
5306 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
5307 POINTER_TYPE and size_t.
5308 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
5309 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
5310 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
5311 [REL_ALLOC_MMAP]: New macros.
5312 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
5313 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
5314 [REL_ALLOC_MMAP]: New functions.
5315
5316 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
5317 before and after unexec.
5318
5319 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
5320 text buffers if necessary.
5321
5322 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
5323 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
5324 in prototypes.
5325
5326 * config.in (HAVE_MMAP): Add #undef.
5327
5328 2000-09-05 Gerd Moellmann <gerd@gnu.org>
5329
5330 * frame.c (Qdisplay_type): New variable.
5331 (syms_of_frame_1): Initialize it.
5332 (Fframe_parameter): New function that avoids consing.
5333 (syms_of_frame): Defsubr it.
5334
5335 * buffer.c (Fother_buffer): Consider buffers as invisible when
5336 they are displayed in a window on an invisible frame.
5337
5338 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
5339 get-largest-window always return nil.
5340
5341 2000-09-04 Gerd Moellmann <gerd@gnu.org>
5342
5343 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
5344 variable; recognize Emacs 19 elc files.
5345
5346 2000-09-04 Miles Bader <miles@gnu.org>
5347
5348 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
5349 before initially popping up the menu, so the menu doesn't flash
5350 when the face settings are significantly different from the defaults.
5351
5352 2000-09-04 Stefan Monnier <monnier@cs.yale.edu>
5353
5354 * regex.c (WIDE_CHAR_SUPPORT): New macro.
5355 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
5356 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
5357 (BIT_UNIBYTE): Remove.
5358 (re_match_2_internal): Delete corresponding code and streamline the
5359 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
5360 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
5361 (re_wctype_t): New type.
5362 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
5363 (regex_compile): Use them and fix handling of overly long char classes.
5364
5365 2000-09-03 Andrew Innes <andrewi@gnu.org>
5366
5367 * makefile.w32-in: Change to DOS line endings.
5368
5369 * s/ms-w32.h (ORDINARY_LINK): New define.
5370
5371 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
5372 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
5373
5374 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
5375 (distclean): Delete them here instead.
5376
5377 * w32proc.c (compare_env): Convert to uppercase for comparison,
5378 not lowercase, to match how the native Windows shell works.
5379
5380 2000-09-03 Jason Rumney <jasonr@gnu.org>
5381
5382 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
5383 CVS changes the line-ends when checking in/out on DOS/Windows.
5384
5385 * makefile.nt (emacs): Do not change directory to run temacs, as
5386 the load-path is set relative to current directory.
5387
5388 2000-09-03 Miles Bader <miles@gnu.org>
5389
5390 * xterm.c (x_alloc_lighter_color_for_widget): New function.
5391
5392 2000-09-02 Gerd Moellmann <gerd@gnu.org>
5393
5394 * xdisp.c (redisplay_mode_lines): New function.
5395 (display_mode_lines): Return number of mode lines displayed.
5396 (echo_area_display): Use redisplay_mode_lines to draw garbaged
5397 mode lines. Don't temporarily bind redisplay-dont-pause to t.
5398
5399 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
5400 string.h and strings.h.
5401 (index) [HAVE_INDEX]: Add prototype.
5402
5403 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
5404 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
5405
5406 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
5407 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
5408
5409 2000-09-01 Gerd Moellmann <gerd@gnu.org>
5410
5411 * lread.c (read1): Accept `?' as symbol constituent, for
5412 compatiblity with XEmacs.
5413
5414 2000-08-31 Stefan Monnier <monnier@cs.yale.edu>
5415
5416 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
5417 (struct re_pattern_buffer): Remove newline_anchor.
5418 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
5419 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
5420 (re_max_failures, fail_stack): Use size_t rather than unsigned.
5421 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
5422 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
5423 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
5424 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
5425 Get rid of references to newline_anchor.
5426 (regcomp): Allocate and precompute a fastmap.
5427
5428 2000-08-31 Gerd Moellmann <gerd@gnu.org>
5429
5430 * lread.c (openp): GCPRO local variable `filename'.
5431
5432 2000-08-30 Stefan Monnier <monnier@cs.yale.edu>
5433
5434 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
5435
5436 * regex.c: Merge some changes from GNU libc. Add prototypes.
5437 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
5438 Use memcmp and memcpy instead of bcopy and bcmp.
5439 (init_syntax_once): Use ISALNUM.
5440 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
5441 (REG_UNSET_VALUE): Remove. Use NULL instead.
5442 (REG_UNSET, re_match_2_internal): Use NULL.
5443 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
5444 New macros.
5445 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
5446 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
5447 (regex_compile): In handle_interval, return an error rather than try to
5448 unfetch the interval if we can't find the closing brace.
5449 Obey the RE_NO_GNU_OPS syntax bit.
5450 (TOLOWER): New macro.
5451 (regcomp): Use it.
5452 (regexec): Allocate regs.start and regs.end as one block.
5453
5454 2000-08-30 Gerd Moellmann <gerd@gnu.org>
5455
5456 * xdisp.c (echo_area_display): Check display_completed instead
5457 of calling detect_input_pending.
5458
5459 * dispnew.c (update_frame): Only set display_completed here; move
5460 the update_begin and update_end calls here from update_frame_1.
5461 (update_frame_1): Don't set display_completed here, don't call
5462 update_begin/update_end.
5463
5464 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
5465 instead of store_frame_param.
5466
5467 2000-08-29 Gerd Moellmann <gerd@gnu.org>
5468
5469 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
5470 desired window matrix hasn't been displayed, use the current row
5471 instead. Make sure that only those frame rows are updated for
5472 which there exists a corresponding enabled desired row.
5473
5474 2000-08-29 Miles Bader <miles@gnu.org>
5475
5476 * xfaces.c (default_face_vector): New function.
5477 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
5478
5479 2000-08-29 Gerd Moellmann <gerd@gnu.org>
5480
5481 * lread.c (openp): Prevent temporary string passed to
5482 Ffile_readable_p from being garbage collected.
5483
5484 2000-08-28 Dave Love <fx@gnu.org>
5485
5486 * keymap.c (store_in_keymap): Add `static' to declaration.
5487
5488 2000-08-28 Gerd Moellmann <gerd@gnu.org>
5489
5490 * emacs.c, callint.c, doc.c, editfns.c
5491 (toplevel) [HAVE_STRING_H]: Include string.h.
5492 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
5493 (index): Remove prototypes which might conflict with non-standard
5494 definitions of index/strchr.
5495
5496 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
5497 (rindex): Define only if !HAVE_RINDEX.
5498
5499 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
5500
5501 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
5502
5503 2000-08-28 Miles Bader <miles@gnu.org>
5504
5505 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
5506 made inconsistent by a font-related attribute in FROM.
5507 (merge_face_inheritance): Add function comment.
5508
5509 2000-08-28 Kenichi Handa <handa@etl.go.jp>
5510
5511 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
5512 the 4th arg (PREV_EVENT) Qt to suppress input method.
5513
5514 2000-08-27 Stefan Monnier <monnier@cs.yale.edu>
5515
5516 * regex.c: Indent cpp directives and remove parens after `defined'.
5517 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
5518 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
5519 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
5520 (re_compile_pattern): Use size_t for length.
5521 (init_syntax_once): Move to a better place.
5522 * regex.h: Merge changes from GNU libc. Indent cpp directives.
5523 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
5524
5525 * syntax.c (back_comment): Detect cases where a comment-starter is
5526 actually inside another comment as in: /* a // b */ c // d \n.
5527 Make it clear that `comstart_pos' is unused for nested comments.
5528
5529 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
5530 (KEYMAPP): New macro.
5531 (Fkeymap_parent, Fset_keymap_parent): Use it.
5532 (fix_submap_inheritance): Mark it static.
5533 (define_as_prefix, describe_buffer_bindings, describe_command)
5534 (describe_translation, describe_map): Complete prototypes.
5535
5536 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
5537
5538 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
5539 to better match the key-lookup behavior.
5540
5541 2000-08-27 Gerd Moellmann <gerd@gnu.org>
5542
5543 * xfaces.c (lface_fully_specified_p): Handle :inherit.
5544 (Finternal_set_lisp_face_attribute): Fix typo in error message.
5545
5546 2000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
5547
5548 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
5549 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
5550 (xterm.o): Depend on coding.h
5551
5552 2000-08-26 Kenichi Handa <handa@etl.go.jp>
5553
5554 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
5555 the corresponding '#endif'.
5556
5557 2000-08-26 Miles Bader <miles@gnu.org>
5558
5559 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
5560 * xfaces.c (QCinherit): New variable.
5561 (syms_of_xfaces): Initialize it.
5562 (LFACE_INHERIT): New macro.
5563 (Finternal_get_lisp_face_attribute)
5564 (merge_face_vector_with_property)
5565 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
5566 (check_lface_attrs): Allow new types of face height. Check
5567 inherit attribute.
5568 (CYCLE_CHECK): New macro.
5569 (merge_face_inheritance): New function.
5570 (merge_face_vectors): Merge inherited faces too. Add F and
5571 CYCLE_CHECK arguments.
5572 (merge_face_vector_with_property, Finternal_merge_in_global_face)
5573 (lookup_named_face, lookup_derived_face, realize_named_face)
5574 (face_at_string_position, face_at_buffer_position): Supply
5575 new F and CYCLE_CHECK arguments to merge_face_vectors.
5576 (merge_face_heights): New function.
5577 (merge_face_vectors, merge_face_vector_with_property)
5578 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
5579 handle relative face heights.
5580 (lface_same_font_attributes_p): Compare heights using EQ.
5581
5582 2000-08-26 Kenichi Handa <handa@etl.go.jp>
5583
5584 * charset.c (char_to_string): Check the character validity.
5585 (char_valid_p): If C is not less than MAX_CHAR, be sure to return 0.
5586
5587 2000-08-25 Stefan Monnier <monnier@cs.yale.edu>
5588
5589 * regex.c (PUSH_FAILURE_COUNT): New macro.
5590 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
5591 Handle popping of a register's or a counter's data.
5592 (POP_FAILURE_POINT): Use the new name.
5593 (re_match_2_internal): Push counter data on the stack for succeed_n,
5594 jump_n and set_number_at and remove misleading dead code in succeed_n.
5595
5596 2000-08-25 Gerd Moellmann <gerd@gnu.org>
5597
5598 * xdisp.c (redisplay_internal): If considering all windows on all
5599 frames, update the display for each frame as soon as possible,
5600 instead of first building all desired matrices for all frames, and
5601 then updating them all.
5602 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
5603
5604 2000-08-24 Gerd Moellmann <gerd@gnu.org>
5605
5606 * bytecode.c (mark_byte_stack): Add a comment.
5607
5608 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
5609 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
5610 a graphical frame.
5611
5612 2000-08-24 Kenichi Handa <handa@etl.go.jp>
5613
5614 * minibuf.c (do_completion): Always use compare-string, not
5615 string-equal because the latter doesn't pay attention to
5616 multibyteness of strings.
5617
5618 * process.c (create_process): Don't setup raw-text coding here.
5619 (Fopen_network_stream): Don't set coding->src_multibyte and
5620 coding->dst_multibyte here.
5621 (read_process_output): For process filter, return unibyte string
5622 if default-enable-multibyte-characters is nil.
5623 (send_process): If OBJECT is multibyte text, be sure to encoded it
5624 by the specified coding system for the process. Otherwise, setup
5625 raw-text coding.
5626 (init_process): Don't initialize default-process-coding-system here.
5627
5628 2000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
5629
5630 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
5631 <scroll-down-aggressively>: Likewise.
5632
5633 2000-08-23 Kenichi Handa <handa@etl.go.jp>
5634
5635 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
5636 zero. Set coding->produced_char correctly.
5637
5638 2000-08-22 Andrew Innes <andrewi@gnu.org>
5639
5640 * makefile.w32-in: New file.
5641
5642 * unexw32.c (unexec): Ignore old_name, and use the actual location
5643 of the current executable instead. Base new_name on this.
5644
5645 * w32proc.c (create_child): Remove reference to security
5646 descriptor, which isn't needed and doesn't compile with mingw32.
5647
5648 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5649 up dllimport attributes.
5650 (x_update_window_end): Update prototype.
5651
5652 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
5653 extern, which screws up dllimport attributes.
5654
5655 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5656 up dllimport attributes.
5657
5658 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
5659 screws up dllimport attributes.
5660
5661 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5662 up dllimport attributes.
5663 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
5664 screws up dllimport attributes.
5665
5666 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5667 up dllimport attributes.
5668
5669 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
5670 screws up dllimport attributes.
5671
5672 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
5673 screws up dllimport attributes.
5674
5675 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5676 up dllimport attributes.
5677
5678 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
5679 unnecessary extern, which screws up dllimport attributes.
5680 (main): Ditto.
5681
5682 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5683 up dllimport attributes.
5684
5685 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
5686 unnecessary extern, which screws up dllimport attributes.
5687
5688 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
5689 screws up dllimport attributes.
5690
5691 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5692 up dllimport attributes.
5693
5694 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
5695
5696 * w32bdf.c (search_file_line):
5697 (set_bdf_font_info):
5698 (seek_char):
5699 (w32_get_bdf_glyph):
5700 (w32_BDF_to_x_font): Fix compile warnings.
5701
5702 * w32menu.c: Include keyboard.h before frame.h. Fix compile warnings.
5703
5704 * w32select.c: Include keyboard.h before frame.h.
5705
5706 * w32fns.c (max): Define macro.
5707 (JOHAB_CHARSET): Define if not known.
5708 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
5709 (Fx_show_tip): Synch with X version.
5710
5711 * w32xfns.c: Include keyboard.h before frame.h.
5712
5713 * w32fns.c: Include keyboard.h before frame.h.
5714
5715 * w32term.c: Include keyboard.h before frame.h.
5716
5717 * fontset.c: Include keyboard.h before frame.h.
5718
5719 * w32inevt.c: Include keyboard.h before frame.h.
5720 (MOUSE_MOVED): Define if not known.
5721
5722 * minibuf.c: Include keyboard.h before frame.h.
5723
5724 * keyboard.c: Include keyboard.h before frame.h.
5725
5726 * indent.c: Include keyboard.h before frame.h.
5727
5728 * dispnew.c: Include keyboard.h before frame.h.
5729
5730 * buffer.c: Include keyboard.h before frame.h.
5731
5732 * alloc.c: Include keyboard.h before frame.h.
5733
5734 * print.c: Include keyboard.h before frame.h.
5735
5736 * process.c: Include keyboard.h before frame.h.
5737
5738 * scroll.c: Include keyboard.h before frame.h.
5739
5740 * sysdep.c: Include keyboard.h before frame.h.
5741
5742 * term.c: Include keyboard.h before frame.h.
5743
5744 * window.c: Include keyboard.h before frame.h.
5745
5746 * xdisp.c: Include keyboard.h before frame.h.
5747 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
5748
5749 * frame.c: Include keyboard.h before frame.h.
5750
5751 * w32heap.h: Undefine min, max.
5752
5753 * w32gui.h: Undefine min, max.
5754
5755 * unexw32.c: Change PUCHAR to PCHAR.
5756 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
5757 (relocate_offset):
5758 (get_section_info):
5759 (copy_executable_and_dump_data): Remove unnecessary static defs.
5760 (copy_executable_and_dump_data): Fix compile warnings.
5761
5762 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
5763
5764 * w32console.c (min): Define macro.
5765 (clear_frame, write_glyphs): Fix compile warning.
5766
5767 * w32proc.c (compare_env):
5768 (find_child_console): Fix compile warning.
5769
5770 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
5771 sys_errlist instead of _sys_errlist.
5772 (get_emacs_configuration_options): New function.
5773
5774 * s/ms-w32.h (sys_nerr): Provide default definition.
5775 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
5776 name with _ prepended.
5777 (NSIG): Define if not known.
5778 (get_emacs_configuration): Provide extern declaration.
5779 (get_emacs_configuration_options): Provide extern declaration.
5780 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
5781
5782 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
5783 (map_w32_filename):
5784 (read_unc_volume): Fix compile warning.
5785
5786 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
5787 definitions from being used.
5788
5789 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
5790
5791 * w32.c (unc_volume_file_attributes):
5792 (open_unc_volume): Make arg const.
5793
5794 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
5795 (read_input_waiting): Remove excess parameter.
5796
5797 * w32.c (init_environment): Call _access.
5798 (check_windows_init_file): Call _close.
5799 (init_user_info): Call _putenv.
5800 (init_environment): Call _putenv and _strdup.
5801 (init_ntproc): Reset volume info cache on startup.
5802
5803 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
5804 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
5805 cannot override the CRT malloc.
5806
5807 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
5808 (LINK_FLAGS): Append to original value of LINK_FLAGS.
5809
5810 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
5811 unless we are linking with a static CRT.
5812 (RVA_TO_PTR): Cast result to unsigned char*.
5813
5814 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
5815 (add_volume_info): Use xstrdup.
5816
5817 2000-08-22 Stefan Monnier <monnier@cs.yale.edu>
5818
5819 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
5820 (do_completion, Fminibuffer_complete_word): Use it.
5821 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
5822 var so it can take non-boolean values.
5823
5824 2000-08-21 Gerd Moellmann <gerd@gnu.org>
5825
5826 * editfns.c (find_field): Formatting changes.
5827 (toplevel): Some old-style function forward declarations
5828 changed to prototypes, some new protypes added, some functions
5829 made static.
5830
5831 * lisp.h (set_time_zone_rule): Add prototype.
5832 (use_dialog_box): External declaration.
5833
5834 * keyboard.c (gen_help_event): Add parameter SIZE.
5835 (kbd_buffer_events_waiting): Slightly rewritten.
5836 (clear_event): New function.
5837 (kbd_buffer_get_event): Use it, and clear the input_events of
5838 HELP_EVENTs.
5839 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
5840 don't fill the newly created array with nils.
5841 (toplevel): Convert some old-style function forward declarations
5842 to prototypes.
5843
5844 * keyboard.h (gen_help_event): Change prototype.
5845
5846 * xterm.c (XTread_socket): Change calls to gen_help_event.
5847
5848 * w32term.c (w32_read_socket): Change calls to gen_help_event.
5849
5850 * eval.c (Fmacroexpand): Doc fix.
5851
5852 2000-08-20 Jason Rumney <jasonr@gnu.org>
5853
5854 * w32term.h (x_display_info_for_display): Remove as this function
5855 does not exist on W32.
5856
5857 * w32term.c (help_echo_window): New variable.
5858 (syms_of_w32term): staticpro it.
5859 (note_mode_line_highlight): Set it.
5860 (XTextExtents16): Removed as there is no equivalent on W32.
5861 (x_compute_glyph_string_overhangs): Incomplete body removed, as
5862 the X way of doing this will not work for W32.
5863 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
5864 (x_draw_image_foreground): Avoid drawing outside of the clip area
5865 when image doesn't have a mask.
5866 (note_mouse_highlight): Process overlays in the right order of
5867 priority. Set help_echo_window.
5868 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
5869 because that's more visible for large images.
5870
5871 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
5872 name to single_keymap_panes.
5873 (w32_menu_show): Set wv->title when dealing with titles.
5874 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
5875
5876 2000-08-21 Miles Bader <miles@gnu.org>
5877
5878 * minibuf.c (do_completion): Try again if we rewrite the input
5879 string, but no completion was done, so that any completion message
5880 will be correct.
5881
5882 2000-08-20 Gerd Moellmann <gerd@gnu.org>
5883
5884 * xfaces.c (lface_equal_p): Compare strings differently.
5885 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
5886 (realize_tty_face): Use them.
5887 (syms_of_xfaces): Initialize new variables.
5888 (map_tty_color): New function, extracted from realize_tty_face.
5889 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
5890 foreground or background color, store the new color name in the
5891 realized face; previous code trying to do this had no effect.
5892 (realize_tty_face): Use map_tty_color.
5893 (Fclear_face_cache): Set face_change_count and ensure thorough
5894 redisplay.
5895
5896 2000-08-19 Gerd Moellmann <gerd@gnu.org>
5897
5898 * undo.c (record_first_change, record_marker_adjustment): Don't
5899 use XBUFFER on last_undo_buffer which might not be a buffer.
5900
5901 2000-08-18 Kenichi Handa <handa@etl.go.jp>
5902
5903 * coding.c (decode_coding_string): Set members consumed,
5904 consumed_char, produced, produced_char of *coding correctly. If
5905 decode_coding doesn't consume any byte, don't try anymore.
5906 (encode_coding_string): Likewise.
5907
5908 2000-08-18 Gerd Moellmann <gerd@gnu.org>
5909
5910 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
5911 conditional have void type, for Standard C compilers.
5912
5913 * xdisp.c (redisplay_internal): Compare windows for equality with
5914 EQ, instead of applying XWINDOW to something that might not
5915 be a window.
5916
5917 2000-08-18 Kenichi Handa <handa@etl.go.jp>
5918
5919 * fontset.c (Finternal_char_font): Search only the selected frame
5920 for a window of the current buffer.
5921
5922 2000-08-18 Gerd Moellmann <gerd@gnu.org>
5923
5924 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
5925 Lisp_Objects.
5926
5927 * keyboard.c (kbd_buffer_get_event): Handle the case that the
5928 second half of a HELP_EVENT is found at the start of kbd_buffer.
5929
5930 2000-08-18 Miles Bader <miles@gnu.org>
5931
5932 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
5933
5934 * editfns.c (save_restriction_save): Rewrite to use markers.
5935 (save_restriction_restore): Rewrite to understand new form of data
5936 saved by save_restriction_save.
5937 (Fsave_restriction): Remove cautionary note in doc-string.
5938
5939 2000-08-17 Gerd Moellmann <gerd@gnu.org>
5940
5941 * fileio.c (build_annotations): Add a comment explaining the
5942 return value of format-annotate-function. Replace a spurious call
5943 to Flength with a CONSP test. Call format-annotate-function with
5944 a fifth arg specifying how many times the function is been called
5945 in a row, to let it choose temporary buffers appropriately.
5946
5947 2000-08-17 Dave Love <fx@gnu.org>
5948
5949 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
5950 declare make_temp_name twice.
5951
5952 * lread.c: Prototype readevalloop, load_unwind, load_descriptor_unwind.
5953 (unreadpure): Give it an arg.
5954
5955 * unexalpha.c: Prototype fatal_unexec, mark_x,
5956 update_dynamic_symbols. Declare unexec as void.
5957
5958 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
5959 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
5960
5961 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
5962 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on DOUG_LEA_MALLOC.
5963
5964 * alloca.c: Use #error.
5965 [POINTER_TYPE]: Use it.
5966
5967 * eval.c (Fdefvar): Doc fix.
5968
5969 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
5970 INITIALIZE_INTERVAL.
5971
5972 * buffer.h: Avoid DECLARE_INTERVALS.
5973
5974 * config.in: Add size_t.
5975
5976 2000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
5977
5978 * w16select.c (set_clipboard_data): If there's not enough memory
5979 to put text into clipboard, return 1, as Fw16_set_clipboard_data
5980 expects. In case of other failures, return 3.
5981 (system_error_msg): New error message.
5982 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
5983 system_error_msg.
5984
5985 2000-08-16 Gerd Moellmann <gerd@gnu.org>
5986
5987 * term.c (write_glyphs): Also turn off inverse video after turning
5988 off other appearances in case TS_exit_attribute_mode is not equal
5989 to TS_end_standout_mode.
5990 (insert_glyphs): Turn inverse video on/off for each run of glyphs
5991 with the same face.
5992 (turn_off_face): Reset standout_mode only if
5993 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
5994 is equal to TS_end_standout_mode.
5995
5996 2000-08-16 Kenichi Handa <handa@etl.go.jp>
5997
5998 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
5999 sequence at the end of the source block.
6000
6001 * ccl.c (Fccl_program_p): Docstring modified.
6002 (Fccl_execute): Likewise.
6003 (Fccl_execute_on_string): Likewise.
6004
6005 2000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
6006
6007 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
6008
6009 2000-08-16 Kenichi Handa <handa@etl.go.jp>
6010
6011 The following changes are mainly to fix bugs of
6012 encode/decode-coding-string failing if encoding/decoding return
6013 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
6014 variable conversion_buffer.
6015
6016 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
6017 decrement dst_end to avoid buffer overflow in the later call of
6018 string_as_multibyte
6019
6020 * coding.h (conversion_buffer_size, conversion_buffer)
6021 (get_conversion_buffer): Extern deleted.
6022
6023 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
6024 (conversion_buffer, conversion_buffer_size): Variables deleted.
6025 (get_conversion_buffer): Function deleted.
6026 (struct conversion_buffer): New structure.
6027 (MAX_ALLOCA): New macro.
6028 (allocate_conversion_buffer): New macro.
6029 (extend_conversion_buffer, free_conversion_buffer): New functions.
6030 (ccl_coding_driver): Set coding->result.
6031 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
6032 this is the last block of source.
6033 (encode_coding): Likewise. Handle the source block as the last
6034 one only when the whole source text is consumed.
6035 (decode_coding_string): Handle the case that the output buffer is
6036 too small to decode the whole source text. Use
6037 allocate_conversion_buffer, extend_conversion_buffer and
6038 free_conversion_buffer, not get_conversion_buffer.
6039 (encode_coding_string): Likewise.
6040 (init_coding): Function deleted.
6041 (init_coding_once): Delete code to initialize conversion_buffer_size.
6042
6043 * emacs.c (main): Don't call init_coding.
6044
6045 * msdos.c (IT_write_glyphs): Use a locally declared conversion_buffer.
6046
6047 * term.c (write_glyphs): Use a locally declared conversion_buffer.
6048 (insert_glyphs): Likewise.
6049
6050 * w32console.c (write_glyphs): Use a locally declared
6051 conversion_buffer.
6052
6053 2000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
6054
6055 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
6056 member of display_info is NULL.
6057
6058 2000-08-15 Gerd Moellmann <gerd@gnu.org>
6059
6060 * alloc.c (compact_small_strings): Use safe_bcopy, add an assertion.
6061
6062 * term.c (turn_off_face): Reset standout_mode when resetting
6063 appearances with capability `me'.
6064 (write_glyphs): Switch on inverse video before each face change.
6065
6066 2000-08-14 Dave Love <fx@gnu.org>
6067
6068 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
6069 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
6070 (lisp_free): Declare and make static.
6071
6072 * window.c: Fix embedded comment.
6073 (syms_of_window): Fix doc string.
6074
6075 2000-08-14 Gerd Moellmann <gerd@gnu.org>
6076
6077 * keymap.c (push_key_description): If C without modifiers is < 32,
6078 make sure to print `C-' before `M-', like in the manual.
6079
6080 2000-08-11 Gerd Moellmann <gerd@gnu.org>
6081
6082 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
6083 since they aren't relocated anymore.
6084 (sxhash_string): Make sure returned hash code fits in a Lisp integer.
6085
6086 * xdisp.c (try_cursor_movement): Fix handling of cursor in
6087 partially visible line which is smaller than the window's height.
6088
6089 2000-08-11 Kenichi Handa <handa@etl.go.jp>
6090
6091 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
6092 the multibyte form of eight-bit-control characters.
6093 (Fccl_execute_on_string): Initialize ccl->multibyte.
6094
6095 * ccl.h (struct ccl_program): New member multibyte.
6096
6097 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
6098
6099 2000-08-11 Kenichi Handa <handa@etl.go.jp>
6100
6101 * regex.c (regex_compile) <normal_char>: Pay attention to
6102 multibyteness.
6103 (analyse_first) <exactn>: Setup fastmap correctly for
6104 eight-bit-control characters.
6105
6106 2000-08-11 Kenichi Handa <handa@etl.go.jp>
6107
6108 * termhooks.h (enum event_kind): New member multibyte_char_keystroke.
6109
6110 * keyboard.c (make_lispy_event): Handle the new event type
6111 multibyte_char_keystroke.
6112
6113 * xterm.c: Include coding.h.
6114 (XTread_socket): Work around a bug of XmbLookupString. If the
6115 input is from XIM, decode it according to the current locale. In
6116 that case, generate multibyte_char_keystroke events.
6117
6118 2000-08-11 Kenichi Handa <handa@etl.go.jp>
6119
6120 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
6121 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
6122
6123 2000-08-10 Gerd Moellmann <gerd@gnu.org>
6124
6125 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
6126 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
6127 (move_it_in_display_line_to): Record iterator's ascent and descent
6128 before producing glyphs, and restore them when we know the glyph
6129 doesn't fit on the line.
6130 (move_it_to): Restructured so that it's easier to debug. If
6131 moving to a vpos, and not moving to an x or character position,
6132 stop as soon as the specified vpos is reached; don't move further
6133 into that line because that might change the computed line height.
6134 (try_cursor_movement): New function, extracted from the cursor
6135 movement branch of redisplay_window. If ending on a partially
6136 visible line, don't try to scroll if the cursor line is taller
6137 than the window.
6138 (redisplay_window): Use try_cursor_movement.
6139
6140 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
6141 because that function doesn't cope with variable-height lines.
6142
6143 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
6144 box cursor because that's better visible for large images.
6145
6146 2000-08-10 Miles Bader <miles@gnu.org>
6147
6148 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
6149
6150 2000-08-10 Gerd Moellmann <gerd@gnu.org>
6151
6152 * xdisp.c (Vmessages_buffer_name): New variable.
6153 (message_dolog): Use it.
6154 (syms_of_xdisp): Initialize it.
6155
6156 2000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
6157
6158 * msdos.c (IT_note_mouse_highlight): Update the calls to overlays_at.
6159 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
6160 redundant now that keyboard.h is included.
6161
6162 2000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
6163
6164 * keyboard.c (kbd_buffer_events_waiting): New function.
6165
6166 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
6167
6168 * msdos.c: Include keyboard.h.
6169 (XMenuActivate): Empty no_event events from the event buffer. If
6170 no events are left after that, call clear_input_pending.
6171 (mouse_clear_clicks): New function, code moved from mouse_init.
6172 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
6173 mouse driver to ``forget'' any past clicks.
6174
6175 * Makefile.in (msdos.o): Depend on keyboard.h.
6176
6177 2000-08-09 Gerd Moellmann <gerd@gnu.org>
6178
6179 * lisp.h (input_pending): External declaration.
6180
6181 * dispextern.h (Qredisplay_dont_pause): Declare extern.
6182
6183 * xdisp.c (echo_area_display): Display thoroughly if input is
6184 pending. Bind redisplay-dont-pause to t during the redisplay.
6185 in case input is pending.
6186
6187 * dispnew.c (Qredisplay_dont_pause): New variable.
6188 (syms_of_display): Initialize and staticpro it.
6189 (update_frame_1): Don't interrupt the display for pending input if
6190 redisplay_dont_pause is set.
6191
6192 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
6193
6194 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
6195
6196 2000-08-09 Miles Bader <miles@lsi.nec.co.jp>
6197
6198 * callproc.c (Fcall_process): Terminate the unwind-protect around
6199 the post-read-conversion of coding system.
6200
6201 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
6202 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
6203 * buffer.h (overlays_at): Update prototype.
6204 * xdisp.c (next_overlay_change): Update call to overlays_at.
6205 * xfaces.c (face_at_buffer_position): Likewise.
6206 * textprop.c (Fget_char_property): Likewise.
6207 * xterm.c (note_mouse_highlight): Likewise.
6208
6209 * minibuf.c (do_completion): Don't consider a simple change of
6210 case as `completion'.
6211
6212 2000-08-08 Ken Raeburn <raeburn@gnu.org>
6213
6214 * keyboard.c (syms_of_keyboard): Initialize last_point_position_buffer.
6215 * undo.c (record_delete): Make sure last_point_position_buffer is
6216 a buffer before comparing pointers.
6217
6218 * coding.h (decode_coding_string): Declare.
6219
6220 * intervals.h (Fprevious_single_char_property_change): Declare.
6221
6222 * textprop.c (Fprevious_single_char_property_change): Don't do
6223 arithmetic directly on lisp objects.
6224
6225 * editfns.c (find_field): Use EQ, not ==, to compare Lisp objects.
6226
6227 * keyboard.h (menu_item_eval_property): Declare.
6228
6229 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
6230 reuse as buffer name, instead of recreating (and discarding) every
6231 time a message is logged.
6232 (with_echo_area_buffer): Make callback arg A2 a lisp object.
6233 (current_message_1, truncate_message_1, set_message_1)
6234 (display_echo_area_1, resize_mini_window_1): Signatures changed.
6235 (current_message, truncate_echo_area, display_echo_area)
6236 (resize_echo_area_axactly): Changed calls.
6237
6238 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
6239 Lisp object.
6240 (Ffind_coding_systems_region_internal): First argument to Fappend
6241 must be an integer, not a Lisp object.
6242
6243 2000-08-08 Kenichi Handa <handa@etl.go.jp>
6244
6245 * charset.c (Fchar_width): Doc fix.
6246
6247 2000-08-08 Gerd Moellmann <gerd@gnu.org>
6248
6249 * charset.c (Fstring_width): Doc fix.
6250
6251 2000-08-07 Gerd Moellmann <gerd@gnu.org>
6252
6253 * xdisp.c (start_display): When starting display on a continuation
6254 line, clear ascent and descent members of the iterator structure;
6255 the height of the continued line does not affect the height of the
6256 continuation line.
6257 (make_cursor_line_fully_visible): Do nothing if cursor is on a
6258 line taller than the window.
6259 (redisplay_window) <forced window start>: Handle case that the
6260 middle of the window is not found in any row.
6261 (dump_glyph_row): Show more information.
6262 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
6263 first text line in a glyph matrix.
6264
6265 * xterm.c (x_draw_image_foreground): Avoid drawing outside
6266 of the clip area when image doesn't have a mask.
6267
6268 * fns.c (sweep_weak_table): Fix survival conditions for
6269 key-or-value and key-and-value weakness.
6270
6271 * .gdbinit (xhashtable): New command.
6272
6273 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
6274 tables out of the list of all weak hash tables.
6275
6276 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
6277 a new buffer is created, make sure echo_area_buffer[] references
6278 the new buffer.
6279
6280 2000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
6281
6282 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
6283 the doc string.
6284
6285 2000-08-07 Kenichi Handa <handa@etl.go.jp>
6286
6287 * syntax.c (skip_chars): Fix previous change. Make the handling
6288 of unibyte string consistent with that of regex search.
6289
6290 2000-08-05 Gerd Moellmann <gerd@gnu.org>
6291
6292 * xmenu.c (popup_get_selection): Use xfree instead of free.
6293
6294 * fileio.c (Finsert_file_contents): Use xfree instead of free.
6295
6296 * editfns.c (Ftranspose_regions): Use xfree instead of free.
6297
6298 * callproc.c (child_setup): Use xfree instead of free.
6299
6300 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
6301 instead of malloc.
6302 (run_mac_command, closedir): Use `xfree' instead of `free'.
6303
6304 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
6305
6306 * eval.c (error): Use xfree instead of free.
6307
6308 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
6309
6310 * fns.c: Replace `illegal' with `invalid'.
6311 (Fmake_hash_table, make_hash_table): Allow table size of 0.
6312
6313 2000-08-05 Kenichi Handa <handa@etl.go.jp>
6314
6315 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
6316 conversion.
6317
6318 2000-08-04 Noah Friedman <friedman@splode.com>
6319
6320 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
6321 docstring.
6322
6323 2000-08-04 Gerd Moellmann <gerd@gnu.org>
6324
6325 * syntax.c (skip_chars): Fix typo in error message.
6326
6327 2000-08-04 Andreas Schwab <schwab@suse.de>
6328
6329 * m/ia64.h: Moved from s/ia64.h.
6330
6331 2000-08-04 Kenichi Handa <handa@etl.go.jp>
6332
6333 * process.c (read_process_output): Big simplification. Handle
6334 composition and post-read-conversion of coding system correctly.
6335 (send_process): Handle composition correctly.
6336
6337 * callproc.c (Fcall_process): Handle post-read-conversion of
6338 coding system if any.
6339
6340 * coding.c (decode_coding_iso2022): More strict check for handling
6341 single shifting.
6342 (coding_restore_composition): Pay attention to the case that
6343 cmp_data is not set properly (because of invalid code in the
6344 source text).
6345 (run_pre_post_conversion_on_str): Include text properties in the
6346 resulting string.
6347 (decode_coding_string): Set members of coding correctly.
6348
6349 2000-08-03 Gerd Moellmann <gerd@gnu.org>
6350
6351 * s/ia64.h: New file.
6352
6353 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
6354 Use NULL instead of 0 at the end of variable argument list of
6355 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
6356 sizeof (int) < sizeof (void *).
6357
6358 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
6359 of variable argument lists of XtVaGetValues and XtVaSetValues.
6360
6361 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
6362 variable argument lists of XtVaGetValues and XtVaSetValues.
6363
6364 2000-08-02 Gerd Moellmann <gerd@gnu.org>
6365
6366 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
6367 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
6368
6369 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
6370 prototype.
6371
6372 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
6373 in call to Fsingle_key_description.
6374
6375 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
6376 Callers changed.
6377
6378 2000-08-02 Colin Walters <walters@cis.ohio-state.edu>
6379
6380 * window.c (display_buffer_reuse_frames): New variable.
6381 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
6382 frames displaying BUFFER.
6383 (syms_of_window): Define Lisp variable display-buffer-reuse-frames.
6384
6385 2000-08-01 Miles Bader <miles@gnu.org>
6386
6387 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
6388 when to constrain NEW_POS (they were pretty screwed up before).
6389
6390 2000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
6391
6392 * msdos.c (run_msdos_command): Save and restore the master
6393 environment, for the case that child_setup signals an error.
6394 When mirroring slashes in DOS shell commands, don't fail when
6395 argv[2] has embedded blanks.
6396 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
6397 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
6398 (dos_ttraw): Call mouse_setup_buttons.
6399
6400 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
6401 using alloca; free it after run_msdos_command returns.
6402
6403 2000-07-27 Dave Love <fx@gnu.org>
6404
6405 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't define.
6406 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently working.
6407
6408 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
6409
6410 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
6411
6412 * editfns.c (lisp_time_argument): Fix last change.
6413
6414 2000-07-27 Gerd Moellmann <gerd@gnu.org>
6415
6416 * fns.c (Fdelete): Make it work on vectors and strings in addition
6417 to lists.
6418
6419 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
6420 (syms_of_fns): Initialize new variables.
6421 (sweep_weak_table): Handle weakness `key-or-value' and `key-and-value'.
6422 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
6423 weakness, with t meaning the same as `key-and-value'.
6424
6425 2000-07-27 Kenichi Handa <handa@etl.go.jp>
6426
6427 * coding.h (struct coding_system): Member safe_charset deleted.
6428
6429 * coding.c (Qsafe_charsets): This variable deleted.
6430 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system):
6431 New variables.
6432 (coding_safe_chars): New function.
6433 (CODING_SAFE_CHAR_P): New macro.
6434 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
6435 checking safe_charsets member of the coding system. Caller changed.
6436 (detect_coding_iso2022): New local variable safe_chars.
6437 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
6438 safe_charsets member of the coding system.
6439 (decode_coding_iso2022): New local variable safe_chars.
6440 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
6441 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
6442 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
6443 (ENCODE_UNSAFE_CHARACTER): New macro.
6444 (encode_coding_iso2022): New local variable safe_chars. Check
6445 unsafe chars.
6446 (setup_coding_system): Delete the code to initialize
6447 coding->safe_charses
6448 (intersection, find_safe_codings): New functions.
6449 (Ffind_coding_systems_region_internal): New function.
6450 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
6451 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
6452 variable and initialize it.
6453
6454 * fns.c (char_table_ref_and_index): New function.
6455
6456 * lisp.h (char_table_ref_and_index): Add prototype.
6457
6458 2000-07-26 Sam Steingold <sds@gnu.org>
6459
6460 * editfns.c (lisp_time_argument): Added third argument `usec'.
6461 (Ffloat_time): New built-in Lisp function.
6462
6463 2000-07-26 Gerd Moellmann <gerd@gnu.org>
6464
6465 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
6466 for the character code.
6467
6468 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
6469 GNU/Linux.
6470
6471 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
6472 if called for a popup menu.
6473 (xmenu_show): Store help string in widget values.
6474
6475 2000-07-26 Dave Love <fx@gnu.org>
6476
6477 * syswait.h: Move some definitions.
6478 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
6479 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
6480 perspicuous definitions.
6481 (WTERMSIG): Fix bit pattern used.
6482
6483 2000-07-26 Kenichi Handa <handa@etl.go.jp>
6484
6485 * print.c (print_object): If vector printing is truncated, print
6486 "..." to indicate it as well as the case of list printing.
6487
6488 2000-07-25 Gerd Moellmann <gerd@gnu.org>
6489
6490 * xdisp.c (next_element_from_display_vector): Improve comments.
6491
6492 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
6493 for the character code, and the rest for the face id as in 20.x.
6494 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
6495
6496 * window.c (window_display_table): Cleaned up.
6497
6498 * syntax.c (Fforward_word): Add last arg nil in call of
6499 Fconstrain_to_field.
6500
6501 2000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
6502
6503 * fileio.c (Frename_file) [DOS_NT]: If the file names are
6504 identical but for the letter-case, don't call
6505 barf_or_query_if_file_exists.
6506
6507 2000-07-25 Miles Bader <miles@gnu.org>
6508
6509 * editfns.c (find_field): Honor special `boundary' fields.
6510 (Qboundary): New variables.
6511 (syms_of_editfns): Initialize Qboundary.
6512 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
6513 Use scan_buffer instead of find_before_next_newline, because it
6514 allows us to detect the boundary case where there's a newline at
6515 the search limit.
6516 * lisp.h (Fconstrain_to_field): Update external declaration.
6517
6518 2000-07-24 Gerd Moellmann <gerd@gnu.org>
6519
6520 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
6521 if that is nil.
6522
6523 2000-07-24 Dave Love <fx@gnu.org>
6524
6525 * s/sunos4-0.h, s/sol2.h:
6526 (LIBS_TERMCAP): Move from m/sparc.h.
6527
6528 * m/sparc.h (TERMINFO): Moved to system files (probably only
6529 relevant for sunos4 judging by its vintage).
6530 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
6531 __arch64__.
6532
6533 2000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
6534
6535 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
6536 name to single_keymap_panes.
6537
6538 2000-07-24 Andreas Schwab <schwab@suse.de>
6539
6540 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
6541
6542 2000-07-24 Gerd Moellmann <gerd@gnu.org>
6543
6544 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
6545 parameters instead of using int parameters. Expect FN to accept
6546 EMACS_INT parameters.
6547 (display_echo_area, resize_echo_area_axactly, current_message)
6548 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
6549 with new argument list.
6550 (resize_mini_window_1): New callback function.
6551 (current_message_1, truncate_message_1, set_message_1): Change
6552 parameter lists to the new format expected by with_echo_area_buffer.
6553
6554 2000-07-24 Kenichi Handa <handa@etl.go.jp>
6555
6556 * fontset.c (fontset_ref): Remove INLINE declaration.
6557 (fontset_ref_via_base): Likewise.
6558 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
6559 to downcase.
6560
6561 2000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
6562
6563 * msdos.c (IT_note_mouse_highlight): Process overlays in the
6564 correct order of priority. If help echo was found in an overlay,
6565 use that overlay as the object in which the help echo was found.
6566
6567 2000-07-22 Miles Bader <miles@gnu.org>
6568
6569 * textprop.c (Fprevious_single_char_property_change): The initial
6570 property value should be from the position preceding POSITION, not
6571 following it.
6572
6573 2000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
6574
6575 * coding.c (syms_of_coding): Doc fix for
6576 inhibit-iso-escape-detection.
6577
6578 2000-07-21 Gerd Moellmann <gerd@gnu.org>
6579
6580 * xterm.c (note_mouse_highlight): Process overlays in the right
6581 order of priority.
6582
6583 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
6584
6585 * xterm.c (note_mouse_highlight): If help-echo was found in an
6586 overlay, use that overlay as the object in which the help was found.
6587
6588 * window.c (foreach_window_1): Fix typo reversing an if-condition.
6589
6590 * window.c (foreach_window): Instead of a fake variable argument
6591 list, take one USER_DATA argument.
6592 (foreach_window_1): Likewise, and call callback functions with two
6593 args, the window and USER_DATA.
6594 (struct check_window_data): New struct.
6595 (check_window_containing): Use it.
6596 (window_from_coordinates): Set up a struct check_window_data for
6597 foreach_window.
6598 (add_window_to_list, freeze_window_start): Change parameters
6599 according to new calling convention.
6600
6601 * window.h (foreach_window): Change prototype.
6602
6603 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
6604
6605 2000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
6606
6607 * xmenu.c (menu_help_callback): Call show_help_echo with
6608 additional arguments OBJECT and POS.
6609
6610 2000-07-21 Kenichi Handa <handa@etl.go.jp>
6611
6612 * data.c (Faset): Allow storing any multibyte character in a
6613 string. Convert unibyte string to multibyte if necessary.
6614
6615 * xfns.c (x_encode_text): New function.
6616 (x_set_name): Use x_encode_text.
6617 (x_set_title): Likewise.
6618
6619 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
6620
6621 * xterm.h (x_encode_text): Add prototype.
6622
6623 2000-07-20 Dave Love <fx@gnu.org>
6624
6625 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
6626 xfree, not free.
6627
6628 2000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
6629
6630 * msdos.c (help_echo_window): New variable.
6631 (syms_of_msdos): Initialize and staticpro it.
6632 (IT_note_mode_line_highlight): Set help_echo_window.
6633 (IT_note_mouse_highlight): Ditto.
6634 (dos_rawgetc): Store help_echo_window in the second event produced
6635 for HELP_EVENTs.
6636
6637 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
6638 Record the object that generated the help echo and the position of
6639 that object in help_echo_object and help_echo_pos. Record that
6640 some glyphs in a row are displayed in mouse-face.
6641 (IT_update_begin): Don't clear mouse highlight unless one of the
6642 enabled glyph rows is marked as being displayed in mouse-face.
6643 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
6644 and position recorded in help_echo_object and help_echo_pos to the
6645 event queue.
6646 (IT_menu_display): Accept a new argument PN: the pane number of
6647 the current menu pane. Record the pane number and the item
6648 number of the item which has associated help string.
6649 (XMenuActivate): Update the prototype for help_callback in
6650 function declaration. Call IT_menu_display with the current menu
6651 pane number as an additional argument. Call help_callback with
6652 two additional arguments: the pane number and the item number of
6653 the menu item associated with the help text.
6654 (help_echo_object, help_echo_pos): New variables.
6655 (syms_of_msdos): Initialize them and staticpro help_echo_object.
6656
6657 * msdos.h (XMenuActivate): Update prototype.
6658
6659 2000-07-19 Gerd Moellmann <gerd@gnu.org>
6660
6661 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
6662 Add some more prototypes.
6663
6664 * xterm.c, xterm.h: Add some more prototypes.
6665
6666 * lisp.h (Fnext_single_char_property_change): Add prototype.
6667
6668 * dispnew.c (direct_output_for_insert): Remove confusing
6669 outer local variable mouse_face_overwritten_p.
6670 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
6671
6672 * alloc.c (allocate_string_data): Don't copy old string contents.
6673
6674 2000-07-19 Kenichi Handa <handa@etl.go.jp>
6675
6676 * coding.c (code_convert_region): Delete text properties before
6677 shrinking the conversion region.
6678
6679 2000-07-18 Gerd Moellmann <gerd@gnu.org>
6680
6681 * dispnew.c (update_text_area): Write the whole row if it
6682 has mouse-face in it.
6683
6684 * xfaces.c (face-alternative-font-family-alist): Remove
6685 DEFVAR_LISP; staticpro instead.
6686
6687 * xmenu.c (menu_help_callback): Call show_help_echo with
6688 new arguments.
6689
6690 * keyboard.c (show_help_echo): Add parameter WINDOW.
6691 (read_char): Call show_help_echo with window extracted from Lisp
6692 help event.
6693 (gen_help_event): Add parameter WINDOW.
6694
6695 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
6696
6697 * xterm.c (help_echo_window): New variable.
6698 (note_mouse_highlight, note_tool_bar_highlight): Set help_echo_window.
6699 (XTread_socket): Pass help_echo_window to gen_help_event.
6700 (syms_of_xterm): Initialize and staticpro help_echo_window.
6701
6702 2000-07-18 Dave Love <fx@gnu.org>
6703
6704 * Makefile.in: Fix dependencies of blockinput.h on atimer.h, systime.h.
6705
6706 2000-07-18 Gerd Moellmann <gerd@gnu.org>
6707
6708 * alloc.c (allocate_string_data): If string had already data
6709 assigned, copy old contents to new string data.
6710
6711 * coding.c (syms_of_coding): Fix typo in spelling of variable
6712 `inhibit-iso-escape-detection'.
6713
6714 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
6715
6716 * Makefile.in: Add dependencies on dispextern.h.
6717 (alloca.o): Don't define malloc and define EMACS_FREE instead of
6718 `free'; both can conflict with system header files.
6719
6720 2000-07-18 Kenichi Handa <handa@etl.go.jp>
6721
6722 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
6723 undefined.
6724
6725 2000-07-18 Dave Love <fx@gnu.org>
6726
6727 * window.c (Fwindow_list): Declare arg `window'.
6728
6729 2000-07-18 Kenichi Handa <handa@etl.go.jp>
6730
6731 * coding.c (setup_coding_system): Don't override the explicitly
6732 specified designations.
6733
6734 2000-07-15 Miles Bader <miles@gnu.org>
6735
6736 * editfns.c (char_property_eq, char_property_stickiness): Renamed
6737 from `text_property_eq' and `text_property_stickiness', respectively.
6738 (find_field, Fconstrain_to_field, char_property_eq)
6739 (char_property_stickiness): Changed to call char-property functions
6740 instead of text-property-only ones.
6741
6742 * textprop.c (Fnext_single_char_property_change): Made a subr (was
6743 `next_single_char_property_change'). Do more error checking, and
6744 cleanup limit behavior.
6745 (Fprevious_single_char_property_change): New function.
6746 (syms_of_textprop): Initialize new subrs.
6747
6748 * xdisp.c (display_prop_end, invisible_text_between_p):
6749 Call Fnext_single_char_property_change instead of
6750 next_single_char_property_change.
6751
6752 2000-07-15 Jason Rumney <jasonr@gnu.org>
6753
6754 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
6755 after menu is finished with.
6756 (add_menu_item): Only consider wv->title as a menu title.
6757 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
6758
6759 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
6760 null title.
6761 (FONT_REGEXP): Remove unused macro, and its sub-components.
6762 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
6763
6764 * w32term.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 (w32_read_socket): Use gen_help_event instead of filling
6773 input_events manually.
6774 (syms_of_w32term): Staticpro help_echo_object.
6775 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
6776 set, arrange for a mouse-highlight redisplay in XTframe_up_to_date.
6777 (x_clear_mouse_face): New function.
6778 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
6779 (x_update_window_begin): No need to turn off the mouse
6780 highlight here.
6781 (show_mouse_face): Set the mouse_face_p flag of glyph rows
6782 depending on whether they contain glyphs highlighted in mouse-face.
6783 (x_fill_stretch_glyph_string): Consume runs of stretch
6784 glyphs instead of a single one.
6785 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
6786 with new argument list.
6787 (x_set_glyph_string_gc): Make sure the face's GC is valid.
6788 (x_append_glyph, x_append_composite_glyph)
6789 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
6790 changes in struct glyph starting 1999-12-27. See comments for
6791 xterm.c on 2000-07-05.
6792
6793 2000-07-14 Sam Steingold <sds@gnu.org>
6794
6795 * xfaces.c (realize_x_face): Fix the last patch:
6796 check `default_face' before dereferencing.
6797
6798 2000-07-14 Dave Love <fx@gnu.org>
6799
6800 * syntax.c (back_comment): Add null default in switch (for pcc).
6801
6802 2000-07-14 Kenichi Handa <handa@etl.go.jp>
6803
6804 * xfaces.c (realize_x_face): Make fontset using the base of the
6805 default_face's fontset, not using the default fontset.
6806
6807 * coding.c (inhibit_iso_escape_detection): New variable.
6808 (syms_of_coding): Make it a Lisp variable.
6809 (detect_coding_iso2022): If inhibit_iso_escape_detection is
6810 nonzero, ignore ISO2022's escape sequence.
6811
6812 2000-07-14 Gerd Moellmann <gerd@gnu.org>
6813
6814 * alloca.c (malloc) [emacs]: Define as xmalloc.
6815
6816 * xfns.c (Fx_show_tip): If frame parameters contain a position,
6817 use that instead of the mouse position. Add parameters DX and DY.
6818
6819 * dispextern.h (Fx_show_tip): Adjust number of parameters
6820 in prototype.
6821
6822 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
6823 if HELP is a function, call it with OBJECT and POS as parameters
6824 to get the help to display.
6825 (gen_help_event, kbd_buffer_store_help_event): New functions.
6826 (kbd_buffer_get_event): Construct the Lisp help-event differently.
6827 (read_char): Call show_help_echo with new parameters.
6828
6829 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
6830 Add prototypes.
6831
6832 * xterm.c (help_echo_object, help_echo_pos): New variables.
6833 (note_mode_line_highlight): Store additional information about the
6834 help-echo in help_echo_object and help_echo_pos. Check both
6835 `local-map' and `keymap' properties for changing the cursor
6836 (note_mouse_highlight): Store additional information about the
6837 help-echo in help_echo_object and help_echo_pos.
6838 (note_tool_bar_highlight): Set help_echo_object to nil and
6839 help_echo_pos to -1.
6840 (XTread_socket): Use gen_help_event instead of filling
6841 input_events manually.
6842 (syms_of_xterm): Staticpro help_echo_object.
6843
6844 * xmenu.c (menu_highlight_callback): Use
6845 kbd_buffer_store_help_event instead of setting up and input_event
6846 structure manually.
6847
6848 * xdisp.c (eval_form): GCPRO argument sexpr.
6849 (call_function): New function.
6850 (handle_single_display_prop): Use call_function and FUNCTIONP
6851 instead of checking whether if font_height is a symbol and
6852 using eval_form.
6853
6854 * eval.c (internal_condition_case_2): New function.
6855
6856 * lisp.h (FUNCTIONP): New macro.
6857 (internal_condition_case_2, call_function): Add prototypes.
6858
6859 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
6860 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
6861 Always set `arg' member of input_events.
6862 (construct_menu_click): Unused function removed.
6863
6864 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
6865
6866 * w32term.c (construct_mouse_click, construct_mouse_wheel)
6867 (construct_drag_n_drop, x_scroll_bar_handle_click)
6868 (w32_read_socket): Always set `arg' member of input_events.
6869
6870 * keyboard.c (show_help_echo): Use eval_form. Add comment.
6871
6872 * lisp.h (eval_form): Add prototype.
6873
6874 * xdisp.c (eval_form): Make it externally visible.
6875
6876 2000-07-13 Gerd Moellmann <gerd@gnu.org>
6877
6878 * xterm.c (x_handle_tool_bar_click): Store the frame in the
6879 frame_or_window slot of TOOL_BAR_EVENT input events instead of
6880 consing. For prefix events, store the frame in the `arg' slot of
6881 the event, otherwise store the key there.
6882 (XTread_socket): Instead of consing, use the frame_or_window slot
6883 of HELP_EVENTs for the frame, and the `arg' slot for the help string.
6884
6885 * xmenu.c (menu_highlight_callback): Store help string in the
6886 `arg' member of the input event; don't cons.
6887 (menubar_selection_callback): Use the `arg' slot of input events
6888 to queue additional information, instead of consing.
6889
6890 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
6891
6892 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
6893 TOOL_BAR_EVENTs.
6894 (w32_read_socket): Adapt to changes in HELP_EVENTs.
6895
6896 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
6897 input events to queue additional information, instead of consing.
6898
6899 * keyboard.c (kbd_buffer_gcpro): Renamed from
6900 kbd_buffer_frame_or_window. Now used for all Lisp objects
6901 referenced from the input queue.
6902 (kbd_buffer_store_event): Always use structure assignment for
6903 copying input events. Record all Lisp objects referenced from
6904 events in kbd_buffer_gcpro.
6905 (kbd_buffer_get_event): Construct Lisp `help-echo' events
6906 differently from input events. Test for prefix menu_bar_events
6907 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
6908 event in kbd_buffer_gcpro to nil.
6909 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
6910 frame_or_window is equal to its arg member as prefix events.
6911 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
6912 used by an input event to nil.
6913 (init_keyboard): Use two times the size of the input queue
6914 for kbd_buffer_gcpro.
6915 (syms_of_keyboard): Likewise.
6916
6917 * emacs.c (handle_USR2_signal, handle_USR1_signal):
6918 Use USER_SIGNAL_EVENT.
6919
6920 * termhooks.h (struct input_event): Add member `arg'.
6921 (MENU_BAR_EVENT): Renamed from menu_bar_event.
6922 (USER_SIGNAL_EVENT): Renamed from user_signal.
6923
6924 * xfaces.c (ASET): Remove definition.
6925
6926 * lisp.h (AREF, ASET, ASIZE): New macros.
6927
6928 * fontset.c (AREF, ASIZE): Remove definitions.
6929
6930 * fns.c (AREF): Remove definition.
6931
6932 * composite.c (AREF): Remove definition.
6933
6934 2000-07-12 Gerd Moellmann <gerd@gnu.org>
6935
6936 * dispnew.c (redraw_overlapped_rows): Add missing local.
6937 (scrolling_window): Remove debug code.
6938
6939 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
6940 Before scrolling, turn off a mouse-highlight in the window
6941 being scrolled.
6942
6943 * xterm.c (x_update_window_end): Add parameter
6944 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
6945 redisplay in XTframe_up_to_date.
6946 (x_clear_mouse_face): New function.
6947 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
6948
6949 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
6950 current glyph row.
6951 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
6952 it when any row is written to that contains glyphs highlighted in
6953 mouse-face.
6954 (update_window): Call the window update end hook with new
6955 parameter MOUSE_FACE_OVERWRITTEN_P.
6956 (direct_output_for_insert): Give up if row contains mouse-face.
6957
6958 * dispextern.h (struct redisplay_interface): Add parameter
6959 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
6960 (clear_mouse_face): New function pointer member.
6961
6962 2000-07-11 Stefan Monnier <monnier@cs.yale.edu>
6963
6964 * syntax.c (back_comment): Use one switch rather than a few `if's.
6965 Obey open_paren_in_column_0_is_defun_start.
6966 When reverting to the `slow' method, try to nicely handle the case
6967 of nested comments by checking that the comment-starter we found
6968 does indeed match the comment-ender.
6969 (scan_sexps_forward, scan_sexps_forward):
6970 Ignore excessive opening parenthesis rather than throwing an error.
6971
6972 2000-07-11 Gerd Moellmann <gerd@gnu.org>
6973
6974 * doc.c (Fsubstitute_command_keys): Handle case that a GC
6975 in Fwhere_is_internal or get_keymap_1 relocates string contents.
6976
6977 * dispnew.c (direct_output_forward_char): Give up if currently
6978 displaying a message instead of the minibuffer contents.
6979
6980 * xterm.c (x_update_window_begin): No need to turn off the mouse
6981 highlight here.
6982 (show_mouse_face): Set the mouse_face_p flag of glyph rows
6983 depending on whether they contain glyphs highlighted in mouse-face.
6984
6985 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
6986 compare the mouse_face_p flags of both rows.
6987
6988 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
6989
6990 2000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
6991
6992 * keyboard.c (show_help_echo): Accept additional parameter
6993 ok_to_overwrite_keystroke_echo.
6994 (read_char): Call show_help_echo with a zero
6995 ok_to_overwrite_keystroke_echo argument.
6996 * keyboard.h (show_help_echo): Update prototype of show_help_echo.
6997 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
6998 ok_to_overwrite_keystroke_echo argument.
6999 * w32menu.c (w32_menu_display_help): Call show_help_echo with
7000 non-zero ok_to_overwrite_keystroke_echo argument.
7001
7002 2000-07-10 Gerd Moellmann <gerd@gnu.org>
7003
7004 * xdisp.c (try_window_id): If changes are all below what is
7005 displayed in the window, and point is in the window, we still
7006 might have to find point on the display.
7007
7008 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
7009 glyphs instead of a single one.
7010 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
7011 with new argument list.
7012 (x_set_glyph_string_gc): Make sure the face's GC is valid.
7013
7014 * keymap.c (get_keymap_1): Add comment that this function can GC.
7015 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
7016 comment that functions can GC.
7017 (Fset_keymap_parent): GCPRO arg KEYMAP.
7018
7019 2000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
7020
7021 * msdos.c (XMenuActivate): After exiting the menu, restore the
7022 echo area message and erase it.
7023
7024 2000-07-10 Kenichi Handa <handa@etl.go.jp>
7025
7026 * fontset.c (Ffontset_info): Make the return value more compatible
7027 with that of Emacs 20.
7028
7029 2000-07-07 Gerd Moellmann <gerd@gnu.org>
7030
7031 * eval.c (Fsignal): Handle case that backtrace_list is null.
7032
7033 2000-07-07 Kenichi Handa <handa@etl.go.jp>
7034
7035 * ccl.c (Fccl_execute): Typo fixed.
7036
7037 2000-07-06 Gerd Moellmann <gerd@gnu.org>
7038
7039 * window.c (window_loop): Add missing gcpro1 local variable.
7040
7041 * window.c (Fwindow_list): Reverse list at the end.
7042 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
7043 means allow windows on OWINDOW's frame, only.
7044 (window_loop): Simplified; use Fwindow_list.
7045
7046 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
7047
7048 2000-07-05 Gerd Moellmann <gerd@gnu.org>
7049
7050 * xterm.c (XTread_socket): Increment handling_signal at the start,
7051 decrement it at the end.
7052
7053 * eval.c (handling_signal): New variable.
7054 (Fsignal): Abort if handling_signal is non-zero.
7055
7056 * lisp.h (handling_signal): External declaration.
7057
7058 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
7059
7060 2000-07-05 Ken Raeburn <raeburn@gnu.org>
7061
7062 Sound support for NetBSD through "Linux emulation" support:
7063 * config.in (HAVE_SOUNDCARD_H): Undef.
7064 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
7065 * Makefile.in (LIBSOUND): New variable.
7066 (LIBES): Include it.
7067 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and <soundcard.h>.
7068 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined elsewhere.
7069 (vox_open): Use DEFAULT_SOUND_DEVICE.
7070 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
7071
7072 2000-07-05 Gerd Moellmann <gerd@gnu.org>
7073
7074 * print.c (print_error_message): If Vsignaling_function is set,
7075 show it in *Messages*.
7076
7077 * lisp.h (Vsignaling_function): External declaration.
7078
7079 * eval.c (Vsignaling_function): New variable.
7080 (Fsignal): Compute it.
7081 (syms_of_eval): Staticpro it.
7082
7083 2000-07-05 Dave Love <fx@gnu.org>
7084
7085 * syswait.h: Use the autoconf recommended approach. Old code
7086 #if'd out in case we need to revert.
7087
7088 * config.in (HAVE_SYS_WAIT_H): Added.
7089
7090 2000-07-05 Andrew Innes <andrewi@gnu.org>
7091
7092 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
7093 when non-NULL instead of __morecore, to take account of buffer
7094 memory. This also solves a problem with spurious memory warnings
7095 on Windows.
7096
7097 * ralloc.c: Make real_morecore non-static.
7098
7099 * eval.c (internal_condition_case): Comment out abort if
7100 interrupt_input_blocked is not zero.
7101
7102 * makefile.nt: Add support for `bootstrap' and related targets.
7103 Include minimal debug info in emacs.exe in release build.
7104 Remove all dependencies on lisp.h, and fixup some others.
7105
7106 * w32.c (init_environment): Install code from 20.7 for providing
7107 default values for environment variables, based on the
7108 executable's own location.
7109 (map_w32_filename): Handle filenames that are longer than MAX_PATH.
7110 (sys_socket): Install socket inheritance bug fix from 20.7.
7111
7112 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
7113 here via blockinput.h).
7114
7115 2000-07-05 Stefan Monnier <monnier@cs.yale.edu>
7116
7117 * w32menu.c (w32_menu_display_help):
7118 * xmenu.c (menu_help_callback): Use show_help_echo.
7119
7120 * keyboard.h (show_help_echo): Declare.
7121
7122 * keyboard.c (show_help_echo): New function, extracted from read_char.
7123 Feval its `msg' argument if it's a cons cell.
7124 (read_char): Use it.
7125 (follow_key): Pass `autoload' to get_keyelt.
7126
7127 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
7128 (note_tool_bar_highlight, XTread_socket):
7129 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
7130 (dos_rawgetc):
7131 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
7132 (note_tool_bar_highlight, w32_read_socket):
7133 Do not gratuitously ignore non-string `help-echo' properties.
7134
7135 2000-07-05 Gerd Moellmann <gerd@gnu.org>
7136
7137 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
7138
7139 * window.c (delete_all_subwindows): Reset Vwindow_list.
7140
7141 * xterm.c (x_append_glyph, x_append_composite_glyph)
7142 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
7143 changes in struct glyph starting 1999-12-27. Some bit-fields of
7144 struct glyph were not set, which made glyphs unequal when compared
7145 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
7146 effects were the result. This also depended on the contents of
7147 memory returned by xmalloc. If flickering happens again, activate
7148 the code in clear_glyph_row that's in #if 0. If the flickering is
7149 gone with that, chances are that it is caused by something similar.
7150
7151 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
7152
7153 * dispextern.h: Add some comments.
7154
7155 * window.c (add_window_to_list): Add parameter LIST.
7156 (window_list): Order list so that, for each frame, windows are
7157 in canonical order, and so that frames appear in the list in
7158 the order given by Vframe_list.
7159 (next_window): Reverse the handling of NEXT_P.
7160
7161 2000-07-04 Gerd Moellmann <gerd@gnu.org>
7162
7163 * window.c (Vwindow_list): New variable.
7164 (make_window, delete_window): Set Vwindow_list to nil.
7165 (check_window_containing): New function.
7166 (window_from_coordinates): Rewritten.
7167 (add_window_to_list, window_list, candidate_window_p)
7168 (decode_next_window_args, next_window): New functions.
7169 (Fnext_window, Fprevious_window): Rewritten in terms of next_window.
7170 (Fwindow_list): New function.
7171 (Fother_window): Cleaned up.
7172 (foreach_window): Add a longer "variable argument list". Let
7173 callback function return 0 to indicate that cycling over windows
7174 should stop.
7175 (foreach_window_1): Likewise.
7176 (freeze_window_start): Return int.
7177 (init_window): New function.
7178 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
7179
7180 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
7181 input_event with bzero.
7182 (main): Call init_window.
7183
7184 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
7185 a menu filter.
7186
7187 2000-07-04 Kenichi Handa <handa@etl.go.jp>
7188
7189 * composite.h (make_composition_value_copy): Extern it.
7190
7191 * composite.c (make_composition_value_copy): New function.
7192
7193 * editfns.c (Fformat): While copying text properties, make each
7194 composition property value a copy.
7195
7196 * fns.c (concat): While copying text properties, make each
7197 composition property value a copy.
7198
7199 2000-07-03 Gerd Moellmann <gerd@gnu.org>
7200
7201 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
7202
7203 * fns.c (sweep_weak_table): Mark only objects that are not
7204 marked already.
7205
7206 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
7207 include those frames as candidates which have their focus
7208 redirected to the minibuffer frame.
7209
7210 2000-07-03 Stefan Monnier <monnier@cs.yale.edu>
7211
7212 * fns.c (Fputhash): Return `value' rather than nil.
7213
7214 2000-06-30 Gerd Moellmann <gerd@gnu.org>
7215
7216 * frame.c (next_frame): Don't check focus redirection in case
7217 MINIBUF is a window. Doing so excludes frames using MINIBUF
7218 unless their focus is redirected, which contradicts the
7219 specification of next-frame, and leads to infinite loops in
7220 certain situations when cycling through windows with next-window.
7221
7222 2000-06-30 Kenichi Handa <handa@etl.go.jp>
7223
7224 * coding.c (code_convert_region): Even if the length of text is
7225 zero, try to convert it if coding->type is coding_type_ccl.
7226 (decode_coding_string, encode_coding_string): Likewise.
7227
7228 2000-06-28 Gerd Moellmann <gerd@gnu.org>
7229
7230 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
7231 the display if windows_or_buffers_changed.
7232
7233 * dispnew.c (struct row_entry): New structure.
7234 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
7235 (row_table_size, old_lines, new_lines, old_lines_size)
7236 (new_lines_size, run_pool, runs_size, runs): New variables.
7237 (add_row_entry): New function.
7238 (scrolling_window): Use data structures allocated with xmalloc and
7239 held in global variables, instead of allocating them with alloca and
7240 holding them in local variables. Use a larger hash table whose
7241 size depends on glyph matrix sizes. Don't use bzero to clear the
7242 hash table; instead, clear used slots only.
7243
7244 * fns.c (next_almost_prime): Make it externally visible.
7245
7246 * lisp.h (next_almost_prime): Add prototype.
7247
7248 * s/isc4-0.h (sigunblock): Define.
7249
7250 * s/sco5.h (sigunblock): Define.
7251
7252 2000-06-27 Dave Love <fx@gnu.org>
7253
7254 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
7255 (moved to osf5-0.h).
7256 [!NOT_C_CODE]: Protect string.h stuff.
7257
7258 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
7259 (sys_siglist, NSIG): Definitions moved here from osf1.h.
7260
7261 2000-06-27 Gerd Moellmann <gerd@gnu.org>
7262
7263 * xdisp.c (resize_mini_window): Subtract the extra line spacing
7264 below the last line from the needed window height.
7265
7266 2000-06-26 Stefan Monnier <monnier@cs.yale.edu>
7267
7268 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
7269 (Fwidget_get): Use it.
7270 (syms_of_fns): Defsubr it.
7271
7272 2000-06-26 Gerd Moellmann <gerd@gnu.org>
7273
7274 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
7275 display info for XIM.
7276 (xim_open_dpy): Likewise.
7277 (xim_close_dpy): Don't free the display info's XIM.
7278
7279 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
7280
7281 * config.in (USE_XIM): New define.
7282
7283 * keymap.c (get_keyelt): For menu-items containing a `:filter
7284 FILTER', apply FILTER to the menu-item's definition to get the
7285 real definition to use.
7286
7287 * lisp.h (QCfilter): External declaration.
7288
7289 * xfns.c (Fimage_size): New function.
7290 (syms_of_xfns): Defsubr it.
7291
7292 2000-06-26 Andreas Schwab <schwab@suse.de>
7293
7294 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
7295 Fstring_as_unibyte.
7296
7297 2000-06-25 Dave Love <fx@gnu.org>
7298
7299 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag, tgetnum.
7300
7301 * Makefile.in (blockinput.h): Depend on atimer.h.
7302 (atimer.h): Depend on systime.h.
7303
7304 * blockinput.h: Protect against multiple inclusion. Include atimer.h.
7305
7306 * atimer.h: Protect against multiple inclusion. Include systime.h.
7307
7308 * lisp.h (swap_in_global_binding): Declare.
7309
7310 2000-06-24 Ken Raeburn <raeburn@gnu.org>
7311
7312 * process.c (Fopen_network_stream): Turn off atimers for duration
7313 of call to connect. (Patch from Gerd.)
7314
7315 2000-06-23 Dave Love <fx@gnu.org>
7316
7317 * ralloc.c: Maybe include unistd.h
7318
7319 * emacs.c (setgrp): Undefine before defining.
7320 (malloc_warning, set_time_zone_rule, index): Prototype.
7321
7322 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
7323 HAVE_STRUCT_TIMEZONE.
7324
7325 * s/osf1.h: Move string.h hack here from alpha.h and make it
7326 conditional.
7327 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
7328 _XOPEN_SOURCE.
7329 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
7330 (SOCKLEN_TYPE): Don't define.
7331
7332 * m/alpha.h: Remove string.h hack.
7333
7334 * s/osf5-0.h: New file.
7335
7336 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
7337 include time.h, done by systime.h.
7338 [__FreeBSD__]: Remove redundant includes.
7339
7340 * callproc.c (setpgrp): Undefine before defining.
7341 (delete_temp_file): Return Qnil to avoid warning.
7342
7343 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
7344
7345 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
7346 HAVE_X_WINDOWS.
7347
7348 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
7349
7350 * composite.h (compose_text): Declare.
7351
7352 * xterm.c: Don't include sys/types.h unconditionally. Don't
7353 protect its inclusion with !USG (following xmenu.c).
7354
7355 2000-06-23 Gerd Moellmann <gerd@gnu.org>
7356
7357 * xfns.c (x_create_tip_frame): Initialize frame's colors like
7358 in x_create_frame.
7359
7360 2000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
7361
7362 * coding.c (decode_eol_post_ccl): Special handling for undecided
7363 and inconsistent EOL types.
7364
7365 2000-06-22 Gerd Moellmann <gerd@gnu.org>
7366
7367 * xrdb.c (x_load_resources): Add default resource for scroll bar's
7368 trough color and main window's background color.
7369
7370 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events differently.
7371
7372 * xterm.h (Xt_app_con): External declaration.
7373
7374 * widget.c (EmacsFrameRealize): Fix typo.
7375
7376 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
7377
7378 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
7379 (handle_invisible_prop): Record the start of invisible text in
7380 it->add_overlay_start.
7381 (struct overlay_entry): Add member `overlay'.
7382 (handle_overlay_change): Simplify.
7383 (next_overlay_string): After having processed overlay strings at the
7384 end of the buffer, record that fact in
7385 it->overlay_strings_at_end_processed_p.
7386 (compare_overlay_entries): If before- and after-strings come
7387 from the same overlay, let before-strings come first.
7388 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
7389 (load_overlay_strings): Take it->add_overlay_start into account
7390 when adding overlay strings.
7391
7392 * dispextern.h (struct it): Add member add_overlay_start.
7393
7394 2000-06-22 Dave Love <fx@gnu.org>
7395
7396 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
7397
7398 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
7399
7400 2000-06-22 Kenichi Handa <handa@etl.go.jp>
7401
7402 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
7403 is greater than 0.
7404
7405 2000-06-21 Dave Love <fx@gnu.org>
7406
7407 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
7408
7409 2000-06-21 Stefan Monnier <monnier@cs.yale.edu>
7410
7411 * syntax.c (back_comment): Simplify string-parity counting (with
7412 the added benefit of handling multiple string-styles as long as
7413 they are not intertwined).
7414 Jump to the slow code as soon as a comment starter is found in
7415 a "string_lossage" position. Fixes the case: " /* " /* " */.
7416
7417 2000-06-21 Dave Love <fx@gnu.org>
7418
7419 * Makefile.in: Use GETLOADAVG_LIBS.
7420
7421 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
7422 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
7423
7424 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
7425
7426 * syntax.c (describe_syntax): Recognize the `n'estable bit.
7427 (Fforward_comment, scan_lists):
7428 Check the comstyle of single-char comment-starters.
7429 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
7430 we're just at the beginning of the comment (f.ex with (*) ... (*)).
7431 Check the comstyle of single-char comment-starters.
7432 Clarify control-flow around the Scomment case.
7433
7434 2000-06-20 Dave Love <fx@gnu.org>
7435
7436 * fns.c (make_hash_table, maybe_resize_hash_table):
7437 Cast arg of next_almost_prime.
7438
7439 * tparam.c [emacs]: Include lisp.h.
7440
7441 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
7442 and unistd.h.
7443
7444 2000-06-20 Gerd Moellmann <gerd@gnu.org>
7445
7446 * keyboard.c (adjust_point_for_property): Check if display
7447 property should be treated as intangible by looking at its value.
7448
7449 * xdisp.c (single_display_prop_intangible_p)
7450 (display_prop_intangible_p): New functions.
7451
7452 * dispextern.h (display_prop_intangible_p): Add prototype.
7453
7454 * xdisp.c (dump_glyph_row): Show type of glyph->object.
7455
7456 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
7457 argument to sigprocmask.
7458
7459 * s/sco5.h (sigblock): Redefined to pass a pointer as second
7460 argument to sigprocmask.
7461
7462 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
7463 sigprocmask_set, and pass a pointer to it to sigprocmask.
7464
7465 * sysdep.c (sigprocmask_set): New variable.
7466
7467 * fileio.c (make_temp_name): Don't use `%s' in string passed to
7468 report_file_error.
7469
7470 2000-06-20 Sam Steingold <sds@gnu.org>
7471
7472 * xrdb.c: Don't declare xmalloc, xrealloc.
7473
7474 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
7475
7476 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
7477 (re_comp): Cast gettext return value to avoid complaints when
7478 !HAVE_LIBINTL.
7479
7480 2000-06-20 Dave Love <fx@gnu.org>
7481
7482 * m/stride.h, m/mips.h: Don't define HAVE_GETWD, HAVE_GETTIMEOFDAY.
7483
7484 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
7485
7486 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
7487
7488 * m/alpha.h: Don't declare xmalloc, xrealloc.
7489
7490 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
7491
7492 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
7493
7494 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
7495
7496 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
7497 HAVE_GETWD.
7498
7499 * keyboard.h (poll_for_input_1): Declare.
7500
7501 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
7502
7503 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
7504
7505 * doprnt.c: Don't declare xmalloc, xrealloc.
7506
7507 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
7508 (getenv, ctime, getwd): Removed.
7509 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
7510
7511 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
7512 x_set_tool_bar_lines.
7513
7514 * config.in: Add HAVE_GETWD. Move some definitions above
7515 machine/system includes.
7516
7517 2000-06-20 Kenichi Handa <handa@etl.go.jp>
7518
7519 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
7520
7521 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
7522 contain information about ENCODING.
7523
7524 * fontset.c (FONTSET_ASCII): Use the first element of char table
7525 for an ASCII font, not defalt slot.
7526 (fontset_ref_via_base): If FONTSET doesn't contain information for
7527 C, try the default fontset.
7528 (make_fontset): Don't copy the default fontset.
7529 (fontset_font_pattern): Likewise.
7530 (accumulate_font_info): If ELT is nil, use the corresponding
7531 element in the default fontset.
7532
7533 2000-06-19 Dave Love <fx@gnu.org>
7534
7535 * syntax.c (Fparse_partial_sexp): Doc fix.
7536
7537 * regex.h: Test PROTOTYPES as well as __STDC__.
7538
7539 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
7540 errno, strerror. Put text after #endif in comment.
7541
7542 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for pcc).
7543
7544 * xterm.c (x_frame_of_widget): Likewise.
7545
7546 2000-06-19 Gerd Moellmann <gerd@gnu.org>
7547
7548 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
7549 to Vfundamental_mode_abbrev_table.
7550
7551 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
7552 bogus objects are marked. This slows down GC by ~80 percent, but
7553 it might be worth trying when debugging GC-related problems.
7554 This feature requires conservative stack marking to be enabled.
7555
7556 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
7557 returns XLookupChars, reset `modifiers' to zero.
7558
7559 2000-06-19 Dave Love <fx@gnu.org>
7560
7561 * mktime.c: Unprotoized.
7562
7563 2000-06-19 Richard Stallman <rms@gnu.org>
7564
7565 * data.c (set_internal): If variable is frame-local,
7566 store the new value immediately into the frame parameter alist.
7567
7568 2000-06-19 Ken Raeburn <raeburn@gnu.org>
7569
7570 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
7571 in the custom handler pointer.
7572
7573 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
7574 value, or checks for CHAR_META can fail when Lisp_Object is a
7575 union type.
7576 * keymap.c (get_keyelt): Likewise.
7577
7578 2000-06-19 Kenichi Handa <handa@etl.go.jp>
7579
7580 * ccl.h (struct ccl_program): New member eol_type.
7581 (struct ccl_spec): New member cr_carryover.
7582
7583 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
7584 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
7585
7586 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
7587 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
7588 (decode_eol_post_ccl): New function.
7589 (decode_coding): Don't detect EOL format here for CCL based coding
7590 systems.
7591 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
7592 decode_eol_post_ccl after running the CCL program.
7593 (code_convert_region): Don't detect EOL format here for CCL based
7594 coding systems.
7595 (decode_coding_string): Likewise.
7596
7597 2000-06-18 Ken Raeburn <raeburn@gnu.org>
7598
7599 * charset.c (update_charset_table): Use XINT on "iso_final_char"
7600 when treating it as an integer.
7601
7602 * coding.h (encode_coding_string): Declare.
7603
7604 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
7605 it as an integer.
7606
7607 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
7608 "xkeymap" to avoid shadowing the "enum map_type" value that needs
7609 to be passed to get_local_map.
7610
7611 * sound.c (Fplay_sound): Don't call make_number on
7612 Frun_hook_with_args count argument.
7613
7614 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
7615 for lisp objects in X event structure data field, when lisp
7616 objects are represented with unions.
7617 (x_scroll_bar_to_input_event): Ditto.
7618
7619 2000-06-16 Ken Raeburn <raeburn@gnu.org>
7620
7621 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
7622 termination of string. Fix sense of test whether
7623 Vline_number_display_limit is an integer.
7624
7625 2000-06-16 Gerd Moellmann <gerd@gnu.org>
7626
7627 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
7628 only if HAVE_X_WINDOWS.
7629
7630 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
7631 of titles.
7632
7633 * dispnew.c (update_frame_1): Handle case that cursor vpos is
7634 out of bounds.
7635
7636 2000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
7637
7638 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
7639 of its headers.
7640
7641 2000-06-15 Kenichi Handa <handa@etl.go.jp>
7642
7643 * coding.c (decode_coding_emacs_mule): Always set src_base at the
7644 start of the while loop.
7645
7646 2000-06-15 Gerd Moellmann <gerd@gnu.org>
7647
7648 * atimer.c (alarm_signal_handler): Add forward declaration.
7649
7650 * data.c (set_internal): Remove debug code.
7651
7652 2000-06-14 Gerd Moellmann <gerd@gnu.org>
7653
7654 * Makefile.in (bootstrap-temacs): Add `-I../src'.
7655
7656 * unexec.c (toplevel) [COFF]: Include coff.h.
7657
7658 * s/lynxos.h: New file.
7659
7660 * keymap.c (Fsingle_key_description): Enclose function key and
7661 event symbol names in angle brackets.
7662
7663 * xdisp.c (setup_echo_area_for_printing): Call
7664 message_log_maybe_newline if message_buf_print is not set.
7665
7666 * print.c (printchar, strout): Don't check message_buf_print
7667 before calling setup_echo_area_for_printing because that
7668 function does something useful even when message_buf_print is
7669 already set.
7670
7671 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines):
7672 New variables.
7673 (ensure_echo_area_buffers): Initialize echo buffer's
7674 truncate lines setting to nil.
7675 (with_echo_area_buffer): Don't set the echo buffer's truncate
7676 lines setting here.
7677 (set_message_1): Set it here instead, based on the value
7678 of message_truncate_lines.
7679 (resize_mini_window): Handle case that lines are truncated.
7680 (syms_of_xdisp): Initialize Qmessage_truncate_lines.
7681 DEFVAR_BOOL message-truncate-lines.
7682
7683 * keyboard.c (read_char): Bind message-truncate-lines to t
7684 while displaying a help-echo.
7685
7686 * lisp.h (Qmessage_truncate_lines): External declaration.
7687
7688 2000-06-13 Gerd Moellmann <gerd@gnu.org>
7689
7690 * xdisp.c (Vline_number_display_limit): Renamed from
7691 line_number_display_limit.
7692 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
7693 Extend documentation string. Initialize
7694 Vline_number_display_limit to nil meaning no limit.
7695 (decode_mode_spec): Use Vline_number_display_limit with its new
7696 meaning.
7697
7698 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
7699
7700 2000-06-13 Richard Stallman <rms@gnu.org>
7701
7702 * frame.c (Fmodify_frame_parameters): Doc fix.
7703
7704 * xfns.c (x_set_frame_parameters): Comment fix.
7705
7706 * frame.c (store_frame_param): Call swap_in_global_binding if the
7707 variable's current binding was chosen based on this frame.
7708
7709 * data.c (swap_in_global_binding): New function.
7710
7711 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
7712
7713 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
7714 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
7715
7716 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
7717
7718 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
7719
7720 2000-06-12 Jason Rumney <jasonr@gnu.org>
7721
7722 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
7723
7724 * w32.h (EMACS_W32_H): Renamed from _NT_H_
7725
7726 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
7727
7728 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
7729
7730 2000-06-12 Gerd Moellmann <gerd@gnu.org>
7731
7732 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
7733 (syms_of_xfaces): Defsubr Sdump_colors.
7734 (x_free_colors): Don't treat b&w specially on default visual.
7735 (x_free_dpy_colors): New function.
7736 (free_face_colors): Don't check visual class; it's done
7737 in x_free_colors.
7738
7739 * xterm.c (x_frame_of_widget): New function.
7740 (x_alloc_nearest_color_for_widget): Use it.
7741 (x_copy_dpy_color): New function.
7742 (x_destroy_window): Free various colors.
7743
7744 2000-06-12 Kenichi Handa <handa@etl.go.jp>
7745
7746 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
7747
7748 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
7749
7750 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
7751
7752 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
7753
7754 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
7755
7756 2000-06-11 Dave Love <fx@gnu.org>
7757
7758 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
7759
7760 2000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
7761
7762 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
7763
7764 2000-06-11 Gerd Moellmann <gerd@gnu.org>
7765
7766 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
7767 to `XEvent *'.
7768
7769 2000-06-10 Kenichi Handa <handa@etl.go.jp>
7770
7771 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
7772 (regex_compile): Fix the code for handling the case of single byte
7773 char and multibyte char being mixed in a range within [...].
7774
7775 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
7776 and dst_multibyte members of coding.
7777
7778 * charset.c (update_charset_table): Update the table
7779 bytes_by_char_head.
7780 (init_charset_once): Initialize elements of bytes_by_char_head to
7781 1 except for leading codes for private charases.
7782
7783 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
7784 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte sequence.
7785
7786 2000-06-09 Ken Raeburn <raeburn@gnu.org>
7787
7788 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
7789 access the data it doesn't point to.
7790
7791 2000-06-08 Gerd Moellmann <gerd@gnu.org>
7792
7793 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
7794 will be translated to a switch-frame event when reading the
7795 event queue. This is necessary because Emacs otherwise won't
7796 perform a switch-frame to a new frame until some other event, for
7797 example a keystroke event, forces it to do so. This has various
7798 effects, one visible being that the cursor of a frame created with
7799 C-x 5 2 or switched to with a window manager key binding like
7800 A-TAB stays hollow because selected_window isn't on the newly
7801 focused frame until the switch-frame is performed.
7802
7803 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
7804 generating a switch-frame event if necessary.
7805
7806 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
7807
7808 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
7809 it's an integer.
7810
7811 2000-06-08 Kenichi Handa <handa@etl.go.jp>
7812
7813 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a charset.
7814
7815 2000-06-07 Gerd Moellmann <gerd@gnu.org>
7816
7817 * window.c (displayed_window_lines): Take empty lines at
7818 the bottom of a window into account.
7819
7820 * window.c (displayed_window_lines): New function.
7821 (Fmove_to_window_line): Use displayed_window_lines to determine
7822 the number of lines to move, instead of using the window's height.
7823
7824 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
7825 to stop reading, even if the form read sets point to a different
7826 value when evaluated.
7827
7828 * xdisp.c (display_line): Fix code deciding in which line to
7829 put the cursor.
7830
7831 2000-06-07 Kenichi Handa <handa@etl.go.jp>
7832
7833 * fileio.c (e_write): Free composition data if stored in
7834 coding->cmp_data.
7835
7836 2000-06-06 Gerd Moellmann <gerd@gnu.org>
7837
7838 * xdisp.c (display_line): Set row's and iterator's
7839 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
7840 Set cursor even if row ends in the middle of a character.
7841 (dump_glyph_row): Print values of new flags.
7842 (redisplay_window) <cursor movement in unchanged window>: When
7843 point has been moved forward, and PT is at the end of the cursor
7844 row, don't place the cursor in the next row if the cursor row ends
7845 in the middle of a character or at ZV.
7846
7847 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
7848 (struct glyph_row): Add starts_in_middle_of_char_p and
7849 ends_in_middle_of_char_p.
7850 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
7851 ends_in_middle_of_char_p flag.
7852 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
7853
7854 * term.c (append_glyph): Revert change of 2000-06-06.
7855
7856 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
7857 padding glyph not fitting on line as whole character not
7858 fitting on line.
7859
7860 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
7861 this isn't true for images with `:ascent 100'.
7862
7863 2000-06-06 Kenichi Handa <handa@etl.go.jp>
7864
7865 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
7866 as modified if it is originally unmodified.
7867
7868 * term.c (encode_terminal_code): Change the way to check if
7869 terminal coding does any conversion.
7870 (append_glyph): Set glyph->pixel_width correctly.
7871
7872 * xdisp.c (display_line): While checking line continuation, pay
7873 attention to a padding glyph.
7874
7875 2000-06-05 Gerd Moellmann <gerd@gnu.org>
7876
7877 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
7878
7879 2000-06-05 Dave Love <fx@gnu.org>
7880
7881 * xdisp.c: Include fontset.h.
7882
7883 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
7884
7885 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
7886
7887 * dispnew.c: Conditionally include term.h.
7888
7889 * coding.h: Declare code_convert_string_norecord.
7890
7891 * frame.h (struct frame): Use volatile unconditionally.
7892
7893 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
7894
7895 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
7896
7897 * systime.h: Protect against multiple inclusion.
7898 (timezone) [USG5_4]: Define as time_t.
7899
7900 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
7901 (Foptimize_char_table, make_temp_name): Declare.
7902
7903 * Makefile.in (xdisp.o): Depend on fontset.h.
7904
7905 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
7906
7907 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
7908 (Foptimize_char_table, make_temp_name): Declare.
7909
7910 * s/irix4-0.h:
7911 * s/irix5-0.h:
7912 * s/netbsd.h: Don't define autoconfiscated MATHERR.
7913
7914 2000-06-02 Dave Love <fx@gnu.org>
7915
7916 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
7917
7918 2000-06-02 Gerd Moellmann <gerd@gnu.org>
7919
7920 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
7921 result face, set flags in that face indicating that colors may not
7922 be freed.
7923
7924 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
7925 glyph, use the ASCII NUL character to determine the face.
7926
7927 2000-06-02 Dave Love <fx@gnu.org>
7928
7929 * sysdep.c: Conditionally include stdlib.h, unistd.h.
7930 (VFORK_RETURN_TYPE): Remove.
7931
7932 * config.in: Add NO_MATHERR.
7933
7934 2000-06-01 Dave Love <fx@gnu.org>
7935
7936 * cmds.c (internal_self_insert): Don't check
7937 Vbefore_change_function, Vafter_change_function.
7938
7939 * insdel.c (signal_before_change, signal_after_change): Likewise.
7940
7941 * buffer.c (Vbefore_change_function, Vafter_change_function):
7942 Variables and their initializations deleted.
7943
7944 * callint.c (Fcall_interactively): Doc fix.
7945
7946 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
7947
7948 2000-05-31 Dave Love <fx@gnu.org>
7949
7950 * textprop.c: Revert last change -- duplicated.
7951
7952 2000-05-31 Gerd Moellmann <gerd@gnu.org>
7953
7954 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
7955 in #if 0.
7956
7957 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
7958
7959 2000-05-31 Jason Rumney <jasonr@gnu.org>
7960
7961 * search.c (Fre_search_forward, Fre_search_backward)
7962 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
7963
7964 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
7965
7966 2000-05-30 Jason Rumney <jasonr@gnu.org>
7967
7968 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
7969 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
7970
7971 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type member.
7972
7973 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
7974 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
7975 expand a nil default_filename.
7976
7977 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
7978 pointer to glyph_to_pixel_coords, not a frame.
7979
7980 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
7981 coding.h to dependencies.
7982
7983 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
7984
7985 * w32console.c (glyph_to_pixel_coords): Change first parameter to
7986 window pointer to be consistent with w32term.c and xterm.c.
7987
7988 * w32fns.c: Format and doc changes to bring closer to xfns.c.
7989 (VIETNAMESE_CHARSET): Define if not defined in system headers.
7990 (Qline_spacing, Qcenter): New variables.
7991 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
7992 (x_set_line_spacing): New function.
7993 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT macros.
7994 (x_specified_cursor_type): New function.
7995 (x_set_cursor_type): Use it.
7996 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
7997 and icon strings.
7998 (validate_x_resource_name, x_get_resource_string): Measure lengths
7999 of external strings in bytes.
8000 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
8001 GetTextExtentPoint32 with NULL title.
8002 (Fx_create_frame): Initialize Qline_spacing.
8003 (w32_load_system_font): Initialize font->double_byte_p.
8004 (x_to_w32_charset): Use Vw32_charset_info_alist.
8005 (Image, busy cursor, tooltip functions): Merged changes from
8006 xfns.c. Not yet functional on Windows.
8007
8008 * w32gui.h (W32FontStruct): Add double_byte_p member.
8009
8010 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
8011 (emacs_button_translation): Use it.
8012 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
8013 in `mask' to be set.
8014
8015 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
8016 menu strings.
8017
8018 * w32term.c: Format and doc changes to bring closer to xterm.c.
8019 (w32_char_font_type): New enum.
8020 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
8021 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
8022 (w32_encode_char): New function.
8023 (x_encode_char): Removed.
8024 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
8025 x_encode_char and w32_font_is_double_byte.
8026 (x_produce_image_glyph): Use image_ascent.
8027 (x_produce_glyphs): Use new version of w32_per_char_metric and
8028 handle NULL return value. Allow extra line spacing.
8029 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
8030 (w32_get_glyph_overhangs): Remove unicode_p param. Use
8031 w32_font_type member of glyph instead.
8032 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
8033 (fast_find_position): Make sure not to consider rows not visible
8034 in the window.
8035 (w32_read_socket) [WM_MENUSELECT]: Cannot call
8036 w32_menu_display_help with input blocked, as it can abort.
8037 (x_display_and_set_cursor): Choose cursor depending
8038 on buffer-local value of cursor_type.
8039 (x_draw_bar_cursor): Add parameter WIDTH.
8040
8041 * w32term.h (CP_DEFAULT): Define.
8042 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
8043
8044 2000-05-30 Gerd Moellmann <gerd@gnu.org>
8045
8046 * search.c (Fre_search_forward, Fre_search_backward)
8047 (Fposix_search_backward, Fposix_search_forward): Doc fix.
8048
8049 2000-05-30 Kenichi Handa <handa@etl.go.jp>
8050
8051 * coding.c (detect_coding_iso2022): Fix code for checking
8052 CODING_CATEGORY_MASK_ISO_8_2.
8053
8054 2000-05-29 Stefan Monnier <monnier@cs.yale.edu>
8055
8056 * regex.c (PREFETCH_NOLIMIT): New function.
8057 (re_match_2_internal): Use it and adjust the end_match_2 logic.
8058
8059 2000-05-29 Gerd Moellmann <gerd@gnu.org>
8060
8061 * syntax.c (find_defun_start): Move test for
8062 open_paren_in_column_0_is_defun_start outside of the loop.
8063
8064 * xdisp.c (redisplay_window): Really switch buffers when
8065 displaying mode lines, and temporarily set selected_frame to the
8066 frame of the window that's redisplayed.
8067
8068 * xfaces.c (free_realized_faces): Block/unblock input.
8069 (free_realized_multibyte_face): Ditto.
8070
8071 2000-05-29 Dave Love <fx@gnu.org>
8072
8073 * textprop.c (Qkeymap): New variable.
8074 (syms_of_textprop): Intern it.
8075
8076 * keymap.c: Include intervals.h.
8077 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
8078
8079 * Makefile.in (keymap.o): Depend on intervals.h.
8080
8081 * keyboard.c (menu_bar_items, tool_bar_items)
8082 (Fexecute_extended_command): Deal with `keymap' property.
8083 (read_key_sequence): Track map from `keymap' property as well as
8084 `local_map'.
8085
8086 * intervals.c (get_local_map): Extra arg to allow looking for
8087 `keymap' too.
8088
8089 * intervals.h (map_property): New enum.
8090 (get_local_map): Extra arg using it.
8091 (Qkeymap): Declare.
8092
8093 * lisp.h (get_local_map): Don't declare here.
8094
8095 2000-05-29 Kenichi Handa <handa@etl.go.jp>
8096
8097 * Makefile.in (callproc.o): Depend on composite.h.
8098
8099 * callproc.c: Include composite.h.
8100 (Fcall_process): Handle composition correctly.
8101
8102 * coding.h (coding_allocate_composition_data): Extern it.
8103 (coding_restore_composition): Likewise.
8104
8105 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
8106 yet allocated, finish decoding with result
8107 CODING_FINISH_INSUFFICIENT_CMP.
8108 (coding_allocate_composition_data): Make it non-static.
8109 (coding_restore_composition): Likewise.
8110
8111 2000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
8112
8113 * charset.c (syms_of_charset): Revert last change.
8114
8115 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
8116
8117 * term.c (produce_glyphs): Treat characters from the eight-bit-*
8118 charsets as unibyte, with 1-column screen width. Sent by Kenichi
8119 Handa.
8120
8121 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
8122
8123 * charset.c (syms_of_charset): Set width of character sets
8124 eight-bit-control and eight-bit-graphic to 1 column.
8125
8126 2000-05-26 Gerd Moellmann <gerd@gnu.org>
8127
8128 * config.in (HAVE_SPEED_T): New define.
8129
8130 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
8131 `extern speed_t'.
8132
8133 2000-05-26 Dave Love <fx@gnu.org>
8134
8135 * coding.c (shrink_decoding_region): Initialize eol_conversion.
8136
8137 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
8138 (Fsubr_arity): New function.
8139 (syms_of_data): Install them.
8140
8141 2000-05-26 Kenichi Handa <handa@etl.go.jp>
8142
8143 * charset.c (init_charset_once): Set the table bytes_by_char_head
8144 correctly.
8145
8146 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
8147 the default fontset to what Emacs uses by default.
8148 (check_registry_encoding): This function deleted.
8149 (Fset_fontset_font): Remove the adhoc condition for the default
8150 fontset. Allow cons in FONTNAME.
8151
8152 * fns.c (map_char_table): Ignore char-table entries for
8153 charsets eight-bit-control and eight-bit-graphic.
8154
8155 2000-05-25 Ken Raeburn <raeburn@gnu.org>
8156
8157 * emacs.c (main): Initialize keyboard syms before initializing
8158 window code, so face names are available.
8159
8160 2000-05-25 Stefan Monnier <monnier@cs.yale.edu>
8161
8162 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
8163 of an anchor at the beginning of a shy-group.
8164
8165 2000-05-25 Gerd Moellmann <gerd@gnu.org>
8166
8167 * xdisp.c (handle_invisible_prop): Don't try to skip over
8168 invisible text if end of text is already reached.
8169
8170 2000-05-25 Dave Love <fx@gnu.org>
8171
8172 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
8173
8174 * coding.c (encode_eol): Add null statement after label.
8175
8176 2000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
8177
8178 * w16select.c (Fw16_set_clipboard_data): Fix the change from
8179 2000-05-20.
8180
8181 2000-05-25 Kenichi Handa <handa@etl.go.jp>
8182
8183 * ccl.c (ccl_driver): Fix previous change.
8184
8185 2000-05-25 Kenichi Handa <handa@etl.go.jp>
8186
8187 * coding.c (run_pre_post_conversion_on_str): Set point to the
8188 beginning of buffer before calling coding->post_read_conversion.
8189 (decode_coding_string): Give correct args to
8190 run_pre_post_conversion_on_str.
8191 (encode_coding_string): Likewise.
8192
8193 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
8194 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
8195 eight-bit-graphic correctly.
8196
8197 2000-05-24 Kenichi HANDA <handa@etl.go.jp>
8198
8199 * fileio.c (Finsert_file_contents): Even if a file is not found,
8200 execute codes for setting up coding system. Call
8201 after-insert-file-functions unconditionally.
8202
8203 2000-05-24 Gerd Moellmann <gerd@gnu.org>
8204
8205 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
8206 BSD_PGRPS are not defined.
8207
8208 2000-05-24 Kenichi Handa <handa@etl.go.jp>
8209
8210 * charset.c (update_charset_table): Accept nil in LONG_NAME and
8211 DESCRIPTION.
8212 (syms_of_charset): Avoid building same strings.
8213
8214 2000-05-23 Gerd Moellmann <gerd@gnu.org>
8215
8216 * lread.c (Fload): Add a comment about the meaning of
8217 Vuser_init_file being t.
8218
8219 * puresize.h (BASE_PURESIZE): Increase to 675000.
8220
8221 * s/gnu-linux.h (setpgrp): Don't define it here because this
8222 prevents compilation on GNU/Linux systems with glib 2.2.
8223
8224 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
8225 as setpgid.
8226
8227 2000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
8228
8229 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
8230 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
8231 version.
8232 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
8233
8234 2000-05-23 Kenichi Handa <handa@etl.go.jp>
8235
8236 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8237
8238 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
8239
8240 * term.c (encode_terminal_code): Set coding->src_multibyte properly.
8241
8242 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
8243
8244 2000-05-22 Kenichi Handa <handa@etl.go.jp>
8245
8246 * keyboard.c (read_char): Allow character codes 128..255 to be
8247 handled by input-method-function.
8248
8249 * insdel.c (adjust_markers_for_replace): Fix previous change.
8250 (adjust_after_replace): If PREV_TEXT is nil, call
8251 adjust_markers_for_insert, not adjust_markers_for_replace.
8252
8253 2000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
8254
8255 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
8256 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
8257 [HAVE_GRANDPT]: Define.
8258 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
8259
8260 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
8261 like SYSV_PTYS.
8262
8263 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
8264
8265 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
8266
8267 2000-05-20 Kenichi Handa <handa@etl.go.jp>
8268
8269 The following changes are to handle 8-bit characters in a
8270 multibyte buffer/string without facing with byte combining
8271 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
8272 eight-bit-graphic (for 0xA0..0xFF) are introduced.
8273
8274 * Makefile.in (fns.o): Depend on charset.h.
8275
8276 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
8277 convert it to unibyte.
8278 (make_string): Use parse_str_as_multibyte, not chars_in_text.
8279
8280 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
8281 apparent char boundary.
8282 (Fset_buffer_multibyte): Convert 8-bit characters in the range
8283 0x80..0x9F to/from multibyte form.
8284
8285 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
8286 to unibyte.
8287
8288 * callproc.c (Fcall_process): Always encode an argument string if
8289 it is multibyte. Setup src_multibyte and dst_multibyte members of
8290 process_coding properly.
8291
8292 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
8293 SPLIT_NON_ASCII_CHAR.
8294
8295 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
8296 as is.
8297 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
8298
8299 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New variables.
8300 (SPLIT_CHARACTER_SEQ): This macro deleted.
8301 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is valid.
8302 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
8303 and eight-bit-graphic.
8304 (char_to_string): Likewise. Signal an error for too large
8305 character code.
8306 (char_printable_p): Return 0 for 8-bit characters.
8307 (update_charset_table): Update iso_charset_table only when a final
8308 character is non-negative.
8309 (find_charset_in_text): Renamed from find_charset_in_str.
8310 Arguments and return value changed. Callers changed.
8311 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
8312 be -1 if CHARSET is used only internally.
8313 (Fmake_char_internal): Handle new charsets; eight-bit-control and
8314 eight-bit-graphic.
8315 (Fcharset_after): Simplified.
8316 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
8317 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
8318 (multibyte_chars_in_text): Simplified by assuming there's no
8319 invalid multibyte sequence.
8320 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
8321 (str_as_unibyte): New functions.
8322 (Fstring): Simpified by assuming that byte combining never happens.
8323 (init_charset_once): Initialization for
8324 LEADING_CODE_8_BIT_CONTROL.
8325 (syms_of_charset): Intern and staticpro Qeight_bit_control and
8326 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
8327 eight-bit-control and eight-bit-graphic.
8328
8329 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL)
8330 (CHARSET_8_BIT_GRAPHIC): New macros.
8331 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
8332 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
8333 (CHARSET_REVERSE_CHARSET): Likewise.
8334 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
8335 eight-bit-graphic.
8336 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
8337 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
8338 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
8339 encounter an invalid multibyte sequence.
8340 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
8341 sequence is always valid.
8342 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
8343 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New macros.
8344 (CHAR_STRING): For 8-bit characters, call char_to_string.
8345 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
8346 multibyte sequence is always valid.
8347 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
8348 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
8349 (str_as_unibyte): Extern them.
8350 (BCOPY_SHORT): Fix a bug.
8351 (CHAR_LEN): This macro deleted. Callers changed to use CHAR_BYTES.
8352 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
8353 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
8354 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
8355
8356 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
8357 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
8358 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE)
8359 (EMIT_BYTES): New macros.
8360 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII)
8361 (DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
8362 macros deleted.
8363 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
8364 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
8365 check the validity of multibyte sequence.
8366 (decode_coding_emacs_mule): New function.
8367 (encode_coding_emacs_mule): New macro.
8368 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
8369 the source.
8370 (DECODE_ISO_CHARACTER): Just return a character code.
8371 (DECODE_COMPOSITION_START): Set coding->result instead of result.
8372 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
8373 EMIT_CHAR to produced decoded characters. Exit the loop only by
8374 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
8375 block here.
8376 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
8377 only position codes for an invalid character.
8378 (encode_designation_at_bol): Return new destination pointer. 5th
8379 arg DSTP is changed to DST.
8380 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
8381 from the source by ONE_MORE_CHAR. Don't handle the case of last
8382 block here.
8383 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
8384 macros deleted.
8385 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
8386 (detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
8387 TWO_MORE_BYTES to fetch a byte from the source.
8388 (encode_eol): Pay attention to coding->src_multibyte.
8389 (detect_coding, detect_eol): Preserve members src_multibyte and
8390 dst_multibyte.
8391 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
8392 (encoding_buffer_size): Set magnification to 3 for all coding
8393 systems that require encoding.
8394 (ccl_coding_driver): For decoding, be sure that the result is
8395 valid multibyte sequence.
8396 (decode_coding): Initialize coding->errors and coding->result.
8397 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
8398 and raw-text, always call decode_eol. Handle the case of last
8399 block here. If not coding->dst_multibyte, convert the resulting
8400 sequence to unibyte.
8401 (encode_coding): Initialize coding->errors and coding->result.
8402 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
8403 and raw-text, always call encode_eol. Handle the case of last
8404 block here.
8405 (shrink_decoding_region, shrink_encoding_region): Detect cases
8406 that we can't skip data more rigidly.
8407 (code_convert_region): Setup src_multibyte and dst_multibyte
8408 members of coding. For decoding, if the buffer is multibyte,
8409 convert the source sequence to unibyte in advance. For encoding,
8410 if the buffer is multibyte, convert the resulting sequence to
8411 multibyte afterward.
8412 (run_pre_post_conversion_on_str): New function.
8413 (code_convert_string): Deleted and divided into the following two.
8414 (decode_coding_string, encode_coding_string): New functions.
8415 (code_convert_string1, code_convert_string_norecord): Call one of
8416 above.
8417 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
8418 MAKE_NON_ASCII_CHAR.
8419 (Fset_terminal_coding_system_internal)
8420 (Fset_safe_terminal_coding_system_internal): Setup src_multibyte
8421 and dst_multibyte members.
8422 (init_coding_once): Initialize iso_code_class with new enum
8423 ISO_control_0 and ISO_control_1.
8424
8425 * coding.h (enum iso_code_class_type): Member ISO_control_code is
8426 devided into ISO_control_0 and ISO_control_1.
8427 (struct coding_system): New members src_multibyte, dst_multibyte,
8428 errors, and result. Delete member fake_multibyte.
8429 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
8430 nonzero.
8431 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
8432 nonzero.
8433
8434 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
8435 (Faset): Likewise.
8436
8437 * editfns.c (Fformat): Be sure to convert 8-bit characters to
8438 multibyte form.
8439 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
8440 combining occurs.
8441 (Ftranspose_region): Delete codes for handling byte combining.
8442
8443 * fileio.c (Finsert_file_contents): Setup src_multibyte and
8444 dst_multibyte members of coding. On handling REPLACE on unibyte
8445 buffer, convert the result of decode_coding to unibyte. On
8446 inserting into a mutibyte buffer, always call code_convert_region.
8447 (e_write): Setup coding->src_multibyte according to the
8448 multibyteness of the source (buffer or string).
8449
8450 * fns.c (concat): Handle 8-bit characters correctly.
8451 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
8452 unibyte in the result.
8453 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
8454 valid multibyte form in the result.
8455 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
8456 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
8457 return -1, signal an error.
8458 (base64_encode_1): New arg MULTIBYTE. Get each character by
8459 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
8460 character is found, return -1.
8461 (Fbase64_decode_region): Delete codes for handling byte-combining.
8462 Treat each decoded byte as a unibyte character.
8463 (Fbase64_decode_string): Return unibyte string.
8464 (Fcompare_strings, concat, string_byte_to_char): Use
8465 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
8466 FETCH_STRING_CHAR_ADVANCE.
8467 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8468 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
8469
8470 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
8471 SPLIT_NON_ASCII_CHAR.
8472 (fontset_ref_via_base, fontset_set): Likewise
8473
8474 * insdel.c (adjust_markers_for_record_delete): Deleted.
8475 (adjust_markers_for_insert): Argument changed. Caller changed.
8476 (adjust_markers_for_replace): Likewise.
8477 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error)
8478 (CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
8479 (copy_text): Delete unused local varialbe c_save. For converting
8480 to multibyte, be sure to make all 8-bit characters in valid
8481 multibyte form.
8482 (count_size_as_multibyte): Handle 8-bit characters correctly.
8483 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
8484 (adjust_after_replace, replace_range, del_range_2)
8485 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
8486 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
8487 (adjust_after_replace, replace_range, del_range_2) Delete codes for
8488 handling byte combining.
8489 (adjust_before_replace): Deleted.
8490
8491 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
8492 SPLIT_NON_ASCII_CHAR.
8493 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
8494 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8495 (Fkey_description): Likewise.
8496
8497 * lread.c (read1): On reading multibyte string, be sure to make
8498 all 8-bit chararacters in valid multibyte form.
8499 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8500
8501 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
8502 unconditionally.
8503
8504 * process.c (Fstart_process): GCPRO current_dir before calling
8505 Ffind_operation_coding_system. Encode arguments here.
8506 (create_process): Don't encode arguments here. Setup
8507 src_multibyte and dst_multibyte members of struct coding.
8508 (read_process_output): Setup src_multibyte and dst_multibyte
8509 members of struct coding. If the output is to multibyte buffer,
8510 always decode the output of the process. Adjust the
8511 representation of 8-bit characters to the multibyteness of the output.
8512 (send_process): Setup coding->src_multibyte according to the
8513 multibyteness of the source.
8514
8515 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8516 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
8517 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
8518
8519 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of CHAR_LEN.
8520
8521 * w16select.c (Fw16_set_clipboard_data): Setup members
8522 src_multibyte and dst_multibyte of coding. Adjusted for the
8523 change for find_charset_in_str.
8524 (Fw16_get_clipboard_data): Likewise.
8525
8526 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
8527 dst_multibyte of coding.
8528 (x_to_w32_font): Likewise.
8529
8530 * w32select.c (Fw32_set_clipboard_data): Setup members
8531 src_multibyte and dst_multibyte of coding. Adjusted for the
8532 change for find_charset_in_str.
8533 (Fw32_get_clipboard_data): Likewise.
8534
8535 * xdisp.c (get_next_display_element): Handle 8-bit characters
8536 correctly.
8537 (next_element_from_display_vector): Use CHAR_BYTES instead of CHAR_LEN.
8538 (disp_char_vector): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
8539
8540 * xselect.c (selection_data_to_lisp_data): Setup members
8541 src_multibyte and dst_multibyte of coding. Adjusted for the
8542 change for find_charset_in_str.
8543 (lisp_data_to_selection_data): Likewise.
8544
8545 2000-05-19 Gerd Moellmann <gerd@gnu.org>
8546
8547 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed buffer.
8548
8549 * dispextern.h (Vimage_types): Add extern declaration.
8550
8551 * xdisp.c (Vimage_types): Moved here from xfns.c.
8552 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
8553
8554 * xfns.c (Vimages_types): Moved to xdisp.c.
8555 (syms_of_xfns): Move `image-types' to xdisp.c.
8556
8557 * w32fns.c (Vimage_types): Removed.
8558 (syms_of_w32fns): Remove `image-types'.
8559
8560 2000-05-18 Kenichi Handa <handa@etl.go.jp>
8561
8562 * fns.c (map_char_table): Pay attention to character number of
8563 charset. Check the validity of charset at the first level. For
8564 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
8565 the default value.
8566
8567 * fontset.c: Include "buffer.h".
8568 (fs_load_font): If the face has fontset, record the face ID in
8569 that fontset.
8570 (Finternal_char_font): New function.
8571 (accumulate_font_info): New function.
8572 (Ffontset_info): Rewritten for the new fontset implementation.
8573 (syms_of_fontset): Register Vdefault_fontset in the first element
8574 of Vfontset_table. Include Vdefault_fontset in
8575 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
8576 function.
8577
8578 2000-05-16 Dave Love <fx@gnu.org>
8579
8580 * m/iris5d.h: Deleted -- unused.
8581
8582 2000-05-16 Gerd Moellmann <gerd@gnu.org>
8583
8584 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
8585 `invalid' instead of `illegal'.
8586
8587 * indent.c (Fmove_to_column): When ending within a tab, insert
8588 spaces first so that markers at the end of the tab get adjusted.
8589
8590 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
8591 buffer list that wasn't selected in that frame.
8592
8593 * filelock.c (get_boot_time): To obtain an 8 char file name, which
8594 is needed on mescaline, use a 2 char prefix, and call
8595 make_temp_name with second arg non-zero.
8596
8597 * fileio.c (make_temp_name): New function, extracted from
8598 Fmake_temp_name.
8599 (Fmake_temp_name): Use it.
8600
8601 2000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
8602
8603 * window.c (coordinates_in_window): Subtract 1 when computing right_x.
8604
8605 2000-05-15 Gerd Moellmann <gerd@gnu.org>
8606
8607 * Makefile.in (lisp): Add env.elc.
8608
8609 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
8610
8611 2000-05-12 Gerd Moellmann <gerd@gnu.org>
8612
8613 * search.c (Freplace_match): Handle case of `\N' in the
8614 replacement when there's no group N.
8615
8616 2000-05-11 Gerd Moellmann <gerd@gnu.org>
8617
8618 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
8619 of the message to message_dolog.
8620
8621 * keyboard.c (read_char): Don't clear current message for help
8622 events; let the code handling help events handle this. Change
8623 code detecting help events that should be ignored.
8624
8625 * xdisp.c (handle_single_display_prop): Don't try to set PT if
8626 we're interating over a string.
8627
8628 2000-05-09 Dave Love <fx@gnu.org>
8629
8630 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
8631 that offset before writing. Move gcpro region past call of
8632 Ffile_regular_p.
8633
8634 2000-05-04 Dave Love <fx@gnu.org>
8635
8636 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
8637
8638 2000-05-04 Gerd Moellmann <gerd@gnu.org>
8639
8640 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
8641 of inserted characters when BUF equals the current buffer, and PT
8642 is in front of or equal to FROM.
8643
8644 2000-05-03 Gerd Moellmann <gerd@gnu.org>
8645
8646 * xdisp.c (handle_single_display_prop): If display property value
8647 is invalid, or something not supported on the frame, restore
8648 iterator's position to what it was initially. Make sure to return
8649 0 for invalid and unsupported property values.
8650
8651 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
8652 that x_per_char_metric returns null.
8653
8654 2000-05-02 Gerd Moellmann <gerd@gnu.org>
8655
8656 * xterm.h (struct face): Add forward declaration.
8657 (struct image): Ditto.
8658 (image_ascent): Add prototype.
8659
8660 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
8661 (x_draw_image_relief, x_draw_image_foreground_1): Call function
8662 image_ascent instead of using IMAGE_ASCENT.
8663
8664 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
8665 (IMAGE_ASCENT): Removed.
8666
8667 * xfns.c (Qcenter): New variable.
8668 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
8669 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
8670 (image_ascent): New function.
8671 (lookup_image): Recognize `:ascent center'.
8672 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
8673 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
8674 (xbm_load): Don't set image's ascent here.
8675 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
8676 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
8677 check ascent values here.
8678 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
8679 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
8680 (syms_of_xfns): Initialize Qcenter.
8681
8682 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
8683 to the limits, increase the limits.
8684
8685 2000-05-01 Kenichi Handa <handa@etl.go.jp>
8686
8687 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
8688 Check Vfont_encoding_alist against the full name of the opened font.
8689
8690 2000-04-28 Gerd Moellmann <gerd@gnu.org>
8691
8692 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
8693 taller than the window.
8694
8695 2000-04-28 Kenichi Handa <handa@etl.go.jp>
8696
8697 * xfaces.c (realize_x_face): Fix the argument of the second
8698 xassert. BASE_FACE may not be a face for ASCII.
8699
8700 2000-04-27 Gerd Moellmann <gerd@gnu.org>
8701
8702 * print.c (print_object): Treat print-length < 0 as nil.
8703
8704 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
8705
8706 * s/freebsd.h (TERMCAP_OBJ): Removed.
8707 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
8708
8709 * lread.c (read1): Don't treat period followed by certain
8710 characters as symbol start.
8711
8712 * xfns.c (slurp_file): New function.
8713 (xbm_image_p): Handle case of in-memory XBM files.
8714 (xbm_scan): Rewritten to work on memory buffers instead of files.
8715 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
8716 Work on memory buffers instead of files. If DATA is null test
8717 if buffer looks like an in-memory XBM file.
8718 (xbm_load_image): Renamed from xbm_load_image_file. Work on
8719 memory buffers instead of files.
8720 (xbm_file_p): New function.
8721 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
8722
8723 * lread.c (end_of_file_error): New function.
8724 (read1): Call it instead of signaling `end-of-file' directly.
8725
8726 * print.c (print_error_message): Print data of `end-of-file'
8727 with Fprinc instead of Fprin1.
8728
8729 2000-04-26 Ken Raeburn <raeburn@gnu.org>
8730
8731 * window.c (freeze_window_start): Check that minibuffer scroll
8732 window isn't nil before extracting the window structure pointer
8733 from it.
8734
8735 * undo.c (record_delete): If we hit the end of the undo list, stop
8736 picking elements apart.
8737
8738 2000-04-26 Gerd Moellmann <gerd@gnu.org>
8739
8740 * xdisp.c (display_line): If lines are continued, restore
8741 iterator's ascent/descent information to the values before the
8742 first glyph not fitting on the line.
8743
8744 2000-04-25 Gerd Moellmann <gerd@gnu.org>
8745
8746 * xdisp.c (try_window_id) <all changes above window start>: Adjust
8747 positions in glyph matrix. Don't compute new window end positions.
8748
8749 * dispnew.c (increment_matrix_positions): Renamed from
8750 increment_glyph_matrix_buffer_positions.
8751 (increment_row_positions): Renamed from
8752 increment_glyph_row_buffer_positions.
8753
8754 * dispextern.h: Change names of renamed functions from dispnew.c
8755 in prototypes.
8756
8757 2000-04-24 Gerd Moellmann <gerd@gnu.org>
8758
8759 * fileio.c (Fdo_auto_save): Create directories for auto-save
8760 list file if necessary.
8761
8762 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
8763 from buffer or frame.
8764 (automatic_hscrolling_p): New variable.
8765 (hscroll_windows): Scroll windows horizontally only if automatic
8766 hscrolling is allowed.
8767 (syms_of_xdisp): New variable `automatic-hscrolling'.
8768
8769 * frame.h (struct frame): Add member extra_line_spacing.
8770
8771 * xfns.c (x_set_line_spacing): New function.
8772 (Fx_create_frame): Set line spacing from resources.
8773 (Qline_spacing): New variable.
8774 (syms_of_xfns): Initialize Qline_spacing.
8775
8776 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
8777
8778 * buffer.c (init_buffer_once): Handle extra_line_spacing.
8779 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
8780 (reset_buffer): Don't initialize extra2 and extra3. Initialize
8781 extra_line_spacing from default value.
8782 (init_buffer_once): Initialize default value of extra_line_spacing.
8783
8784 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
8785 and extra3.
8786
8787 * xterm.c (x_produce_glyphs): Remove reference to struct it's
8788 prompt_width. Add extra line spacing.
8789
8790 * term.c (produce_glyphs): Remove reference to struct it's
8791 prompt_width.
8792
8793 * dispextern.h (struct it): Remove member prompt_width, add
8794 extra_line_spacing.
8795
8796 2000-04-22 Gerd Moellmann <gerd@gnu.org>
8797
8798 * dispnew.c (update_frame_line): When writing a whole line, make
8799 sure cursor is in the right row afterwards, otherwise a use of
8800 capability `ch' in cmgoto might leave the cursor in the row below.
8801
8802 2000-04-21 Gerd Moellmann <gerd@gnu.org>
8803
8804 * lisp.h (struct Lisp_Buffer_Cons): Remove.
8805
8806 * keyboard.c (timer_check): Fix typo in comment.
8807
8808 2000-04-21 Kenichi Handa <handa@etl.go.jp>
8809
8810 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
8811 name change: ch -> character.
8812
8813 2000-04-20 Gerd Moellmann <gerd@gnu.org>
8814
8815 * keyboard.c (echo_message_buffer): New variable.
8816 (echo_now): Set echo_message_buffer to the echo area buffer used
8817 to display the echo.
8818 (cancel_echoing): Reset echo_message_buffer to nil.
8819 (read_char): Code rewritten that handles canceling an echo or
8820 echoing a dash, respectively.
8821
8822 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
8823 directory doesn't exist.
8824
8825 2000-04-19 Dave Love <fx@gnu.org>
8826
8827 * fns.c (syms_of_fns): Defsubr mapc.
8828 (concat): Don't allow numeric args.
8829 (Fconcat): Doc change.
8830
8831 2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
8832
8833 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
8834 instead define end_match(1|2) more carefully.
8835 Use GET_CHAR_BEFORE_2 for `begline'.
8836
8837 2000-04-19 Gerd Moellmann <gerd@gnu.org>
8838
8839 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
8840 on 64-bit systems where NULL is defined as `0'.
8841
8842 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
8843 the `variable argument list' to make it work on Alpha.
8844
8845 * m/alpha.h (_LP64) [!_LP64]: Define.
8846 (ORDINARY_LINK): Define for NetBSD.
8847
8848 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
8849
8850 2000-04-19 Dave Love <fx@gnu.org>
8851
8852 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
8853 change.
8854
8855 * Makefile.in (LIBS): Don't use.
8856 (GETLOADAVG_OBJ): Define again.
8857 (otherobj): Add GETLOADAVG_OBJ.
8858
8859 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
8860
8861 2000-04-18 Gerd Moellmann <gerd@gnu.org>
8862
8863 * lread.c (read_filtered_event): Cancel and start busy cursor.
8864
8865 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
8866 that the per-character metrics may be null.
8867
8868 2000-04-17 Gerd Moellmann <gerd@gnu.org>
8869
8870 * buffer.c (clone_per_buffer_values): New function.
8871 (Fmake_indirect_buffer): Add optional argument CLONE. Call
8872 clone_per_buffer_values if CLONE is not nil.
8873
8874 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
8875
8876 2000-04-16 Dave Love <fx@gnu.org>
8877
8878 * Makefile.in: Remove obsolete localcpp stuff.
8879 (GETLOADAVG_OBJ): Don't define.
8880 (obj): Move LIBOBJS...
8881 (otherobj): ... to here.
8882 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
8883 whitespace-only lines after the continuation (Irix).
8884
8885 2000-04-14 Gerd Moellmann <gerd@gnu.org>
8886
8887 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
8888
8889 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
8890
8891 2000-04-14 Dave Love <fx@gnu.org>
8892
8893 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
8894 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
8895 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
8896 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
8897 NLIST_STRUCT.
8898
8899 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
8900 autoconfiscated HAVE_GETLOADAVG.
8901
8902 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
8903 BROKEN_MKTIME.
8904
8905 2000-04-14 Gerd Moellmann <gerd@gnu.org>
8906
8907 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
8908 (fill_in_lock_file_name): Avoid existing files that aren't links.
8909
8910 2000-04-14 Dave Love <fx@gnu.org>
8911
8912 * Makefile.in (LIBS, LIBOBJS): New variable.
8913 (INTERVAL_SRC): Convert to make variable.
8914 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
8915 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
8916 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
8917 add LIBOBJS.
8918 (SOME_MACHINE_OBJECTS): Remove interval stuff.
8919 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
8920 (shortlisp): Add facemenu, float-sup, frame.
8921 (SOME_MACHINE_LISP): Remove them from here.
8922 (LIBES): Change unused LDLIBS to autoconf LIBS.
8923
8924 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
8925
8926 2000-04-14 Kenichi Handa <handa@etl.go.jp>
8927
8928 * composite.c (update_compositions): If FROM and TO are not in a
8929 valid range, do nothing.
8930
8931 2000-04-13 Gerd Moellmann <gerd@gnu.org>
8932
8933 * tparam.c (tparam1): Abort when encountering an unknown `%'-specifier.
8934
8935 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as terminfo.o.
8936
8937 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
8938 as TERMCAP_OBJ.
8939
8940 2000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
8941
8942 * fileio.c (a_write): Remove redundant semi-colons.
8943 (e_write): Return -1 if failed to write all the data.
8944 This fixes the changes made at 1999-12-15.
8945
8946 2000-04-12 Dave Love <fx@gnu.org>
8947
8948 * fns.c (mapcar1): Test for null vals to support mapc.
8949 (Fmapc): New function.
8950
8951 2000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
8952
8953 * msdos.c (NUM_MOUSE_BUTTONS): Define.
8954 (IT_frame_up_to_date): Support the buffer local value of
8955 cursor-type, if defined.
8956
8957 2000-04-10 Dave Love <fx@gnu.org>
8958
8959 * editfns.c (preceding-char, following-char): Doc fix.
8960
8961 2000-04-10 Ken Raeburn <raeburn@gnu.org>
8962
8963 * Makefile.in (temacs): Revert 2000-03-12 change.
8964
8965 2000-04-10 Jason Rumney <jasonr@gnu.org>
8966
8967 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
8968
8969 2000-04-10 Gerd Moellmann <gerd@gnu.org>
8970
8971 * xdisp.c (setup_echo_area_for_printing): Choose an echo
8972 area buffer, if it's not set up yet.
8973
8974 * indent.c (compute_motion): Set immediate_quit.
8975
8976 2000-04-09 Gerd Moellmann <gerd@gnu.org>
8977
8978 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New variable.
8979 (realize_tty_face): Suppress boldness if colors are the inverse of
8980 the default colors, and tty_suppress_bold_inverse_default_colors_p
8981 is set.
8982 (Ftty_suppress_bold_inverse_default_colors): New function.
8983 (syms_of_xfaces): Defsubr it.
8984
8985 * buffer.c (Frestore_buffer_modified_p): New function.
8986 (syms_of_buffer): Defsubr it.
8987
8988 2000-04-08 Ken Raeburn <raeburn@gnu.org>
8989
8990 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
8991 charset id (int) argument, not a charset (Lisp_Object).
8992
8993 * coding.h (code_convert_string): Declare.
8994 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
8995 object, as the fourth argument to code_convert_string.
8996
8997 * fontset.c (make_fontset_for_ascii_face): Use XINT on return value.
8998 (Fset_fontset_font): Use EQ to compare lisp objects.
8999
9000 2000-04-05 Ken Raeburn <raeburn@gnu.org>
9001
9002 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
9003 a pointer that looks like a lisp object.
9004 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
9005 zero, instead see whether it's an integer object, since they can't
9006 have intervals.
9007 (GET_INTERVAL_OBJECT): Simply assign to the destination.
9008
9009 * dispnew.c (allocate_matrices_for_frame_redisplay)
9010 (direct_output_forward_char): Use X(U)INT and make_number as needed
9011 to convert between (unsigned) int values and lisp integers.
9012 * keyboard.c (read_key_sequence): Likewise.
9013 * lread.c (substitute_object_recurse): Likewise.
9014 * fns.c (concat, hash_lookup, hash_remove): Likewise.
9015 * minibuf.c (do_completion, Fminibuffer_complete_word)
9016 (Fminibuffer_completion_help): Likewise.
9017 * term.c (produce_special_glyphs): Likewise.
9018
9019 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
9020 * print.c (print_preprocess, print_object): Likewise.
9021
9022 * search.c (compile_pattern): Use NILP when checking for nil.
9023
9024 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
9025 __OPTIMIZE__]: Provide a GNU C macro version that handles
9026 lisp-object unions.
9027 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
9028 field, to better cope with ENABLE_CHECKING and calls that modify a
9029 Lisp_Object using its old value.
9030
9031 2000-04-04 Gerd Moellmann <gerd@gnu.org>
9032
9033 * window.c (compare_window_configurations): Signal an error
9034 if parameters C1 or C2 aren't window configurations.
9035
9036 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
9037 AFTER_POTENTIAL_GC calls around calls to functions that can
9038 signal an error and thus invoke the debugger.
9039
9040 2000-04-03 Gerd Moellmann <gerd@gnu.org>
9041
9042 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
9043 an error if decoding fails.
9044
9045 * keyboard.c (lispy_mouse_names): Variable removed.
9046 (Vlispy_mouse_stem): New variable.
9047 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
9048 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
9049 for any mouse button number. Increase size of mouse_syms and
9050 button_down_location as needed. Call modify_event_symbol with
9051 different arguments.
9052 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
9053 Call modify_event_symbol with different arguments.
9054 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
9055 for any button number. Call modify_event_symbol with different
9056 arguments.
9057 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
9058 Accept a string for NAME_ALIST_OR_STEM.
9059
9060 * lisp.h (larger_vector): Add prototype.
9061
9062 * fns.c (larger_vector): Make externally visible.
9063
9064 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
9065
9066 2000-04-02 Stefan Monnier <monnier@cs.yale.edu>
9067
9068 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
9069 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
9070 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
9071 we are between str1 and str2.
9072 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
9073 (PATFETCH): Use `TRANSLATE'.
9074 (PATFETCH_RAW): Fetch multibyte char if applicable.
9075 (PATUNFETCH): Remove.
9076 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
9077 When writing a char, write it directly into the pattern buffer rather
9078 than going needlessly through a temp char-array.
9079 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
9080 multibyte magic and remove the useless `#ifdef emacs'.
9081 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
9082 buffer.
9083
9084 * regex.h (struct re_pattern_buffer): Make field `multibyte'
9085 conditional on `emacs'.
9086
9087 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
9088
9089 2000-04-01 Ken Raeburn <raeburn@gnu.org>
9090
9091 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
9092 non-union-type versions of XMARK and friends here, because XMARK
9093 and friends won't work on an integer field if NO_UNION_TYPE is not
9094 defined.
9095 (make_number): Define as a function if it's not defined as a macro.
9096
9097 * composite.c (run_composite_function): Use NILP when checking for nil.
9098 (syms_of_composite): Delete local var NARGS, pass an int as first
9099 argument to Fmake_hash_table.
9100
9101 * editfns.c (text_property_stickiness): Use NILP to test
9102 Lisp_Object boolean value.
9103 (Fmessage_or_box): Don't use NILP to test int variable.
9104 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
9105 problems reading from and changing the same lisp value in an
9106 XSETSTRING call.
9107
9108 2000-04-01 Gerd Moellmann <gerd@gnu.org>
9109
9110 * term.c (TN_no_color_video): New variable.
9111 (term_init): Intitialize TN_no_color_video.
9112 (enum no_color_bit): New enumeration.
9113 (MAY_USE_WITH_COLORS_P): New macro.
9114 (turn_on_face): Use it to determine if attributes may be used
9115 combined with colors.
9116
9117 2000-04-01 Ken Raeburn <raeburn@gnu.org>
9118
9119 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
9120 with int lvalues via casts; instead, just yield lisp object lvalues.
9121 (enlarge_window): Variable sizep now points to Lisp_Object. Use
9122 proper accessor macros.
9123 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
9124 (grow_mini_window): Fix typo getting int value of root->height.
9125
9126 * xdisp.c (compute_string_pos): Fix order of arguments to
9127 string_pos_nchars_ahead.
9128 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
9129 count arg to variable-arg routines like Frun_hook_with_args and
9130 Fformat.
9131 (back_to_previous_visible_line_start)
9132 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
9133 fixed-arg routines like Fget_char_property and Fmake_string.
9134 (reconsider_clip_changes): Use XINT when comparing integer lisp
9135 objects, or passing them as int arguments.
9136 (mark_window_display_accurate, insert_left_trunc_glyphs)
9137 (append_space, extend_face_to_end_of_line): Use make_number when
9138 storing or passing integer values as lisp objects.
9139 (set_cursor_from_row, highlight_trailing_whitespace): Use
9140 INTEGERP, not implicit test against zero, for glyph object.
9141 (try_window_id): Don't use make_number when we want an int value.
9142
9143 * xfaces.c (xlfd_symbolic_value): Make last argument a
9144 Lisp_Object, to be consistent with callers.
9145 (Fbitmap_spec_p): Use XINT to get numeric value of height.
9146 (lface_hash): Apply XFASTINT to lisp values before folding in.
9147
9148 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
9149 fill in window width and height. Pass an int, not a lisp object,
9150 as first arg to Finsert.
9151
9152 2000-04-01 Gerd Moellmann <gerd@gnu.org>
9153
9154 * xfaces.c (realize_basic_faces): Block input while realizing
9155 the faces.
9156
9157 * keyboard.c (lispy_mouse_names): Add additional mouse names.
9158
9159 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
9160
9161 2000-03-31 Gerd Moellmann <gerd@gnu.org>
9162
9163 * xterm.c (x_produce_glyphs): When displaying unibyte text
9164 or ASCII, handle case that per-char metric is null.
9165
9166 2000-03-30 Ken Raeburn <raeburn@gnu.org>
9167
9168 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
9169
9170 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW)
9171 (XSUBR, XBUFFER): Verify correct object type before returning
9172 pointer, using eassert.
9173 * frame.h (XFRAME): Likewise.
9174
9175 * buffer.c (Frename_buffer, Fset_buffer_multibyte)
9176 (swap_out_buffer_local_variables, Fmove_overlay): Don't apply
9177 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong type.
9178 * data.c (set_internal): Likewise.
9179 * dispextern.h (WINDOW_WANTS_MODELINE_P)
9180 (WINDOW_WANTS_HEADER_LINE_P): Likewise.
9181 * fileio.c (auto_save_1): Likewise.
9182 * insdel.c (check_markers): Likewise.
9183 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
9184 * undo.c (record_insert): Likewise.
9185 * vmsproc.c (child_sig): Likewise.
9186 * window.c (unshow_buffer, window_loop): Likewise.
9187 * xterm.c (x_erase_phys_cursor): Likewise.
9188
9189 2000-03-30 Gerd Moellmann <gerd@gnu.org>
9190
9191 * xfns.c (free_image_cache): Free the cache structure itself
9192 last, after all its members have been freed.
9193
9194 * lisp.h (xstrdup): Add prototype.
9195
9196 * alloc.c (xstrdup): Moved here from xfaces.c.
9197 (allocating_for_lisp): Variable removed.
9198 (lisp_malloc): Block input around the calls to malloc and mem_insert.
9199
9200 * xfaces.c (realize_tty_face): Use find_symbol_value instead
9201 of Fsymbol_value.
9202 (xstrdup): Moved to alloc.c.
9203
9204 2000-03-29 Ken Raeburn <raeburn@gnu.org>
9205
9206 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
9207
9208 * emacs.c (main): Fix sense of no-loadup test.
9209
9210 * config.in (ENABLE_CHECKING): Undef.
9211
9212 * lisp.h (struct interval): Replace "parent" field with a union of
9213 interval pointer and Lisp_Object; add new bitfield to use as
9214 discriminant. Change other flag fields to bitfields.
9215 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
9216 is defined and the supplied test fails, print a message and abort.
9217 (eassert): New macro. Use CHECK to provide an assert-like facility.
9218
9219 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
9220 pointers; abort if the value looks like a lisp object.
9221 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT)
9222 (SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
9223 Modify for new interval parent definition.
9224
9225 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE)
9226 (UNMARK_BALANCE_INTERVALS): Update references that need an
9227 addressable lisp object in the interval structure.
9228 (die): New function.
9229 (suppress_checking): New variable.
9230
9231 * intervals.c (interval_start_pos): Just return 0 if there's no
9232 parent object.
9233
9234 2000-03-29 Gerd Moellmann <gerd@gnu.org>
9235
9236 * lread.c (read1): Accept `.' (period) as symbol start like in CL
9237 and earlier Emacs versions.
9238
9239 * keyboard.c (Ftop_level): Cancel busy-cursor.
9240
9241 * eval.c (call_debugger): Cancel busy-cursor.
9242
9243 2000-03-29 Kenichi Handa <handa@etl.go.jp>
9244
9245 * search.c (Freplace_match): Adjust multibyteness of the current
9246 buffer and NEWTEXT. Free allocated memory before signaling an error.
9247
9248 2000-03-28 Stefan Monnier <monnier@cs.yale.edu>
9249
9250 * regex.c (analyse_first): New function obtained by ripping out most
9251 of re_compile_fastmap and generalizing it a little bit so that it
9252 can also just return whether a given (sub)pattern can match the empty
9253 string or not.
9254 (regex_compile): Use `analyse_first' to decide whether the loop-check
9255 needs to be done or not for *, +, *? and +? (the loop check is costly
9256 for non-greedy repetition).
9257 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
9258
9259 2000-03-28 Dave Love <fx@gnu.org>
9260
9261 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k, alpha.
9262
9263 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
9264
9265 2000-03-27 Stefan Monnier <monnier@cs.yale.edu>
9266
9267 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
9268 an expression.
9269 (enum re_opcode_t): Update description of succeed_n.
9270 (PATFETCH): Always define.
9271 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
9272 operators, char classes, shy-groups and intervals).
9273 Optimize special cases of intervals so as to only use succeed_n and
9274 jump_n when really needed.
9275 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
9276 that we don't have to handle the special cases any more.
9277 Simplify on_failure_jump handling as well.
9278
9279 2000-03-28 Jason Rumney <jasonr@gnu.org>
9280
9281 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
9282
9283 2000-03-27 Gerd Moellmann <gerd@gnu.org>
9284
9285 * s/freebsd.h (GC_SETJMP_WORKS): Define.
9286
9287 * s/msdos.h (GC_SETJMP_WORKS): Define.
9288
9289 * alloc.c (mark_maybe_object): New function.
9290 (mark_memory): Use it.
9291 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
9292 (setjmp_tested_p, longjmp_done): New variables.
9293 (test_setjmp): New function.
9294 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
9295 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
9296
9297 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
9298 to DEC_TEXT_POS and INC_TEXT_POS.
9299
9300 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
9301 with parameter MULTIBYTE_P.
9302
9303 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter MULTIBYTE_P.
9304
9305 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
9306 buffers because it looks for multibyte character byte sequences
9307 which don't exist in unibyte text.
9308
9309 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
9310
9311 * xfaces.c (register_color, unregister_color, unregister_colors)
9312 [DEBUG_X_COLORS]: New functions.
9313 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
9314
9315 * xfns.c (x_set_cursor_color): Get color reference counts right.
9316
9317 * xterm.c (x_copy_color): New function.
9318 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
9319
9320 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
9321 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
9322 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
9323 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
9324 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
9325 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
9326 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
9327 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
9328 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
9329 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
9330
9331 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
9332 names for handling per-buffer variables.
9333
9334 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
9335 instead of MAX_BUFFER_LOCAL_VARS.
9336 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
9337
9338 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
9339
9340 * xfns.c (x_specified_cursor_type): New function.
9341 (x_set_cursor_type): Use it.
9342
9343 * buffer.h (struct buffer): Add cursor_type.
9344
9345 2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
9346
9347 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
9348 (print_partial_compiled_pattern, re_compile_fastmap):
9349 Handle new opcode.
9350 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
9351 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
9352 executing it as well as when popping it off the stack to find infinite
9353 loops in non-greedy repetition operators.
9354
9355 2000-03-26 Gerd Moellmann <gerd@gnu.org>
9356
9357 * doc.c (Qfunction_documentation): New variable.
9358 (syms_of_doc): Initialize Qfunction_documentation.
9359 (Fdocumentation): If FUNCTION is a symbol with non-nil
9360 `function-documentation' property, return a documentation derived
9361 from that.
9362
9363 * buffer.c (syms_of_buffer): Add default-cursor-type.
9364 (init_buffer_once): Don't let cursor_type have a local value
9365 in every buffer.
9366
9367 * xterm.c (x_display_and_set_cursor): Choose cursor depending
9368 on buffer-local value of cursor_type.
9369 (x_draw_bar_cursor): Add parameter WIDTH.
9370
9371 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
9372 (init_buffer_once): Set default cursor_type value to t.
9373 Mark cursor_type as local everywhere.
9374 (syms_of_buffer): New per-buffer variable cursor-type.
9375
9376 * buffer.h (struct buffer): Remove member local_var_flags,
9377 add local_flags.
9378 (MAX_BUFFER_LOCAL_VARS): New macro.
9379 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
9380 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
9381 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
9382 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
9383
9384 * print.c (print_object): Use new macros for per-buffer variables.
9385
9386 * category.c (Fset_category_table): Use new macros for per-buffer
9387 variables.
9388
9389 * buffer.c (buffer_permanent_local_flags): Make a char array.
9390 (max_buffer_local_idx): New variable.
9391 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
9392 for new handling of per-buffer variables.
9393 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
9394 (init_buffer_once): Initialize per-buffer vars differently.
9395 Set max_buffer_local_idx.
9396
9397 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
9398 variables.
9399
9400 * lread.c (defvar_per_buffer): Use new macros for per-buffer variables.
9401
9402 * data.c (do_symval_forwarding, store_symval_forwarding)
9403 (find_symbol_value, set_internal, default_value, Fset_default)
9404 (Fkill_local_variable, Flocal_variable_p): Use new macros for
9405 per-buffer variables.
9406
9407 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
9408
9409 2000-03-24 Gerd Moellmann <gerd@gnu.org>
9410
9411 * xterm.c (x_term_init): Unblock input around call1 of
9412 Qvendor_specific_keysyms.
9413
9414 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
9415 (find_defun_start): Consider an open parenthesis in column 0
9416 a defun start only if open_paren_in_column_0_is_defun_start is set.
9417 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
9418
9419 2000-03-24 Stefan Monnier <monnier@cs.yale.edu>
9420
9421 * eval.c (Fautoload): Add entry in load-history (if after dump).
9422 * lread.c (load-history): Update docstring.
9423
9424 2000-03-24 Gerd Moellmann <gerd@gnu.org>
9425
9426 * indent.c (Fvertical_motion): Always use the current buffer.
9427 Temporarily change the window's buffer, if necessary.
9428
9429 2000-03-23 Gerd Moellmann <gerd@gnu.org>
9430
9431 * xterm.c (fast_find_position): Make sure not to consider rows
9432 not visible in the window.
9433
9434 2000-03-22 Stefan Monnier <monnier@cs.yale.edu>
9435
9436 * regex.c (enum syntaxcode): Provide default for non-Emacs.
9437 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
9438
9439 2000-03-22 Jason Rumney <jasonr@gnu.org>
9440
9441 * w32menu.c (single_submenu): Set help string to NULL if none.
9442 (w32_menu_show): Set help string correctly.
9443 (add-menu-item): Set help string in MIIM_DATA for menu item.
9444 Load SetMenuItemInfoA explicitly.
9445 (w32_menu_display_help): New function.
9446
9447 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
9448 (QCdata): Moved to xdisp.c.
9449
9450 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
9451 (Vw32_charset_to_codepage_alist): Removed.
9452 (Vw32_charset_info_alist): New variable.
9453 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312)
9454 (chinesebig5, oem, easteurope, turkish, baltic, russian, arabic)
9455 (greek, hebrew, thai, johab, mac, unicode]): New symbols.
9456 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
9457 with TODO comment.
9458 (w32_codepage_for_font): Use Vw32_charset_info_alist.
9459 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
9460 Define Vw32_charset_info_alist and w32_charset symbols.
9461
9462 2000-03-22 Jason Rumney <jasonr@gnu.org>
9463
9464 * makefile.nt (w32bdf.obj): Update dependencies.
9465
9466 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
9467
9468 * w32fns.c: Include fontset.h after dispextern.h.
9469 (Fx_create_frame): Do not create fontset.
9470 (w32_load_system_font): Doc fix.
9471 (Fx_close_connection): Free full_name if it is not shared.
9472
9473 * w32term.c: Include fontset.h after dispextern.h.
9474 (x_get_glyph_face_and_encoding): New parameter two_byte_p.
9475 Callers updated.
9476 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
9477 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
9478 (w32_font_is_double_byte): New function, needs body.
9479 (x_append_glyph): Set glyph->glyph_not_available_p.
9480 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
9481 it->charset. If it->multibyte_p is zero and it->c is a multibyte
9482 character, convert it to a unibyte character.
9483 (struct glyph_string): Delete member `charset'.
9484 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
9485 calculating it is found.
9486 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
9487 the case that per char metric is not available correctly.
9488 (x_fill_glyph_string): Handle the case that the specific glyph is
9489 not available correctly.
9490 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
9491 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
9492 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
9493 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
9494 fontset. Don't call FS_LOAD_FONT.
9495
9496 2000-03-22 Ken Raeburn <raeburn@gnu.org>
9497
9498 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
9499 (INT_LISPLIKE): New macro.
9500 (NULL_INTERVAL_P): Use it.
9501 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT)
9502 (SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT)
9503 (GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
9504
9505 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
9506 explicit references to "parent" field of struct interval and
9507 associated unclean type conversions.
9508 * intervals.c (create_root_interval, root_interval, rotate_right)
9509 (rotate_left, balance_possible_root_interval, split_interval_right)
9510 (split_interval_left, interval_start_pos, find_interval)
9511 (next_interval, previous_interval, update_interval)
9512 (adjust_intervals_for_insertion, delete_node, delete_interval)
9513 (adjust_intervals_for_deletion, merge_interval_right)
9514 (merge_interval_left, reproduce_tree, graft_intervals_into_buffer)
9515 (copy_intervals_to_string): Likewise.
9516 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
9517 Likewise.
9518 * syntax.c (update_syntax_table): Likewise.
9519
9520 * intervals.c (reproduce_tree_obj): New function, like
9521 reproduce_tree but takes a Lisp_Object for the parent. Declare
9522 with prototype.
9523 (graft_intervals_into_buffer): Use it when appropriate.
9524 (reproduce_tree): Declare with prototype.
9525 (balance_possible_root_interval): Check that the parent is a lisp
9526 object before trying to examine its type.
9527
9528 2000-03-22 Gerd Moellmann <gerd@gnu.org>
9529
9530 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
9531 as strings only if both are known to be strings.
9532
9533 * s/openbsd.h (LIBS_TERMCAP): Undef.
9534
9535 2000-03-21 Stefan Monnier <monnier@cs.yale.edu>
9536
9537 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
9538 definitions for non-Emacs compilation.
9539 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
9540 outside of `#ifdef emacs'.
9541 (print_partial_compiled_pattern): Update.
9542 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
9543 (re_compile_fastmap): Merge handling of charset and charset_not (for
9544 emacs and non-emacs compilation as well).
9545 Similarly for (not)categoryspec and (not)syntaxspec.
9546 Don't use the fastmap when reaching `anychar' since the added
9547 complexity is not justified.
9548 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
9549 and (not)syntaxspec. Merge (not)categoryspec.
9550
9551 2000-03-22 Kenichi Handa <handa@etl.go.jp>
9552
9553 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P)
9554 (FACE_FOR_CHAR): Define them differently for the configuration of
9555 --without-x.
9556
9557 2000-03-21 Dave Love <fx@gnu.org>
9558
9559 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
9560 doc string.
9561
9562 2000-03-21 Gerd Moellmann <gerd@gnu.org>
9563
9564 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
9565 (lface_fully_specified_p): Don't check contents of
9566 LFACE_FONT_INDEX because that attribute is optional.
9567 (realize_x_face): Remove now unwarranted xassert.
9568
9569 2000-03-21 Kenichi HANDA <handa@etl.go.jp>
9570
9571 The following changes are to make font selection based on
9572 characters, not charset. In addition, they recover fontset
9573 facilities while utilizing the new font selection mechanism.
9574
9575 * Makefile.in (fontset.o): Depend on dispextern.h.
9576
9577 * alloc.c (mark_face_cache): Don't mark face->registry.
9578
9579 * dispextern.h (struct glyph): New member glyph_not_available_p.
9580 Use 22 bits for face_id.
9581 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
9582 (struct face): Delete member registry, new member ascii_face.
9583 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
9584 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
9585 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
9586 (struct it): Delete member charset, new member glyph_not_available_p.
9587
9588 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
9589 (struct fontset_info, struct fontset_data): Structs removed.
9590 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset)
9591 (Vglobale_fontset_alist, font_idx_temp): Externs removed.
9592 (fs_load_font, fs_query_fontset): Adjusted for new argument.
9593 (fs_free_face_fontset, fontset_font_pattern)
9594 (face_suitable_for_char_p, face_for_char)
9595 (make_fontset_for_ascii_face): Extern them.
9596 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
9597 (FS_LOAD_FACE_FONT): New macro.
9598
9599 * fontset.c: All codes rewritten or adjusted for the change of
9600 fontset implementation. Now fontset is represented by char table.
9601 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl):
9602 Variables removed.
9603 (my_strcasecmp): Function removed.
9604 (Vfontset_table, next_fontset_id, Vdefault_fontset): New variables.
9605 (AREF, ASIZE): New macros.
9606 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME)
9607 (FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF)
9608 (FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
9609 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset)
9610 (fontset_id_valid_p, font_family_registry, fontset_name)
9611 (fontset_ascii, free_face_fontset, face_suitable_for_char_p)
9612 (face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
9613 New functions.
9614 (fs_load_font): New arg FACE. Caller changed.
9615 (fs_query_fontset): Argument changed. Caller changed.
9616 (Fquery_fontset): call fs_query_fontset.
9617 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
9618 Functions removed.
9619 (clear_fontset_elements, check_registry_encoding)
9620 (check_fontset_name): New functions.
9621 (syms_of_fontset): Set char-table-extra-slots property of fontset
9622 to 3. Staticpro and initialize Vfontset_table and
9623 Vdefault_fontset. Defsubr fontset_font and fontset_list.
9624
9625 * frame.h (struct frame): Member `fontset_data' removed.
9626 (FRAME_FONTSET_DATA): Macro removed.
9627
9628 * frame.c (make_frame): Don't allocate f->fontset_data.
9629 (Fdelete_frame): Don't free f->fontset_data.
9630
9631 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
9632
9633 * xdisp.c (charset_at_position): Function removed.
9634 (init_iterator): Don't set member charset of struct `it'.
9635 (handle_face_prop, reseat_to_string, set_iterator_to_next)
9636 (next_element_from_display_vector, insert_left_trunc_glyphs):
9637 Likewise.
9638 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
9639 FACE_FOR_CHARSET.
9640 (get_next_display_element, append_space)
9641 (extend_face_to_end_of_line): Likewise.
9642
9643 * xfaces.c (Qx_charset_registry, Vface_default_registry):
9644 Variables removed.
9645 (clear_font_table, frame_update_line_height, load_face_font):
9646 Adjusted for the change of fontset implementation.
9647 (load_face_fontset_font): Function removed.
9648 (pixel_point_size): New function.
9649 (font_list): Argument type changed. Caller changed.
9650 (LFACE_FONT): New macro.
9651 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
9652 (set_lface_from_font_name): Type of arg FONTNAME is changed to
9653 Lisp_Object. Determine the font name by actually loading a font
9654 by the specified pattern. Set LFACE_FONT (lface) to the specified
9655 pattern. Even if a font is not found, don't try alternatives.
9656 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
9657 (set_font_frame_param): If `font' is specified in lface, use it.
9658 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
9659 (lface_same_font_attributes_p): Likewise.
9660 (make_realized_face): Arguent changed. Caller changed. Set
9661 face->ascii_face to face itself.
9662 (free_realized_face): Free face->fontset if face is for ASCII.
9663 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p)
9664 (deduce_unibyte_registry, x_charset_registry): Functions removed.
9665 (free_realized_multibyte_face): New function.
9666 (lookup_face, lookup_named_face, lookup_derived_face): Argument
9667 changed. Caller changed.
9668 (try_font_list): Argument type changed.
9669 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
9670 (choose_face_font): Argument changed. Handle fontset properly.
9671 (choose_face_fontset_font): Function removed.
9672 (realize_default_face, realize_named_face): Don't remove the
9673 former face here.
9674 (realize_face): Argument changed. Caller changed. Remove face
9675 with the arg former_face_id in advance. Load font for the new face.
9676 (realize_x_face): Argument changed. Caller changed. For a
9677 multibyte character, share fontset with base_face. For a single
9678 byte character, make a new realized fontset. Don't load a font here.
9679 (realize_tty_face): Argument changed. Caller changed.
9680 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
9681 (face_at_buffer_position): Don't check multibyte_p for returning
9682 DEFAULT_FACE_ID.
9683 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
9684 FACE_SUITABLE_FOR_CHARSET_P.
9685 (syms_of_xfaces): Remove code for Qx_charset_registry and
9686 Vface_default_registry.
9687
9688 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
9689 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9690 (x_per_char_metric): Don't try FONT->default_char. Even if
9691 pcm->width is zero, glyph bits may exist.
9692 (x_encode_char): Always initialize char2b->byte1.
9693 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
9694 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller changed.
9695 (x_append_glyph): Set glyph->glyph_not_available_p.
9696 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
9697 it->charset. Handle the case that per char metric is not
9698 available. If it->multibyte_p is zero and it->c is a multibyte
9699 character, convert it to a unibyte character.
9700 (struct glyph_string): Delete member `charset'.
9701 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
9702 the case that per char metric is not available correctly.
9703 (x_fill_glyph_string): Handle the case that the specific glyph is
9704 not available correctly.
9705 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
9706 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
9707 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
9708 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
9709 fontset. Don't call FS_LOAD_FONT.
9710
9711 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
9712 (x_create_tip_frame): Likewise.
9713 (Fx_close_connection): Free full_name of font_info.
9714
9715 * fns.c (optimize_sub_char_table): New function.
9716 (Foptimize_char_table): New function.
9717 (syms_of_fns): Defsubr Soptimize_char_table.
9718
9719 2000-03-20 Gerd Moellmann <gerd@gnu.org>
9720
9721 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
9722 only if buffer is displayed in some window.
9723
9724 * xdisp.c (handle_single_display_prop): Initialize local `value'.
9725 (try_window_reusing_current_matrix): Don't call scroll run
9726 function if run's current and desired position are the same;
9727 this prevents cursor flickering.
9728
9729 2000-03-19 Stefan Monnier <monnier@cs.yale.edu>
9730
9731 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
9732
9733 * regex.c (RE_STRING_CHAR): New macro.
9734 (GET_CHAR_AFER_2): Remove.
9735 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
9736 (enum re_opcode_t): Remove on_failure_jump_exclusive.
9737 (print_partial_compiled_pattern, re_compile_fastmap)
9738 (re_match_2_internal): Remove on_failure_jump_exclusive.
9739 (regex_compile): Turn optimizable P+ loops into PP*, so that the
9740 optimization only need to work for * (ie. can use of_keep_string_jump).
9741 Remove the special case for .*\n since it is now covered by the general
9742 optimization.
9743 (re_search_2): Don't bother with `room'.
9744 (skip_one_char): New function.
9745 (skip_noops): Simplify since `memory' is not needed any more.
9746 (mutually_exclusive_p): Restructure slightly to use `switch' and
9747 add handling for "all" remaining cases.
9748 (re_match_2_internal): Change on_failure_jump_smart to use
9749 on_failure_keep_string_jump (and redirect the end-of-loop jump)
9750 rather than on_failure_jump_exclusive.
9751
9752 2000-03-19 Gerd Moellmann <gerd@gnu.org>
9753
9754 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
9755 number of bits per RGB because it's everywhere used as the depth
9756 of the visual.
9757
9758 * term.c (calculate_costs): Remove code dealing with X frames.
9759
9760 2000-03-19 Richard M. Stallman <rms@gnu.org>
9761
9762 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
9763
9764 2000-03-18 Gerd Moellmann <gerd@gnu.org>
9765
9766 * lread.c (read_integer): Unread the last char not consumed.
9767
9768 2000-03-17 Gerd Moellmann <gerd@gnu.org>
9769
9770 * xterm.c (x_update_window_cursor): Don't update in frames
9771 which are in the process of being deleted.
9772
9773 2000-03-16 Gerd Moellmann <gerd@gnu.org>
9774
9775 * Makefile.in (mostlyclean): Add `*.core'.
9776 (clean): Add `bootstrap-emacs'.
9777
9778 * lread.c (read_integer): New function.
9779 (read1): Support read syntax #o, #x, #b, #r.
9780
9781 2000-03-15 Stefan Monnier <monnier@cs.yale.edu>
9782
9783 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
9784 make sure POINTER_TO_OFFSET gives the same value before and after
9785 PREFETCH. Use `dfail' to guarantee "atomic" matching.
9786 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
9787 (debug): Now only active if > 0 rather than if != 0.
9788 (DEBUG_*): Update for the new meaning of `debug'.
9789 (print_partial_compiled_pattern): Add missing `succeed' case. Use
9790 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
9791 in `succeed_n', `jump_n' and `set_number_at'.
9792 (store_op1, store_op2, insert_op1, insert_op2)
9793 (at_begline_loc_p, at_endline_loc_p): Add prototype.
9794 (group_in_compile_stack): Move to after its arg's types are
9795 declared and add a prototype.
9796 (PATFETCH): Define in terms of PATFETCH_RAW.
9797 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)' wrapper.
9798 (QUIT): Redefine as a nop except for NTemacs.
9799 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
9800 indentation of the greedy-op and shy-group code.
9801 (at_(beg|end)line_loc_p): Fix argument's types.
9802 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
9803 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
9804 (MATCHING_IN_FIRST_STRING): Remove.
9805 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
9806 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
9807 QUIT unconditionally.
9808
9809 2000-03-15 Gerd Moellmann <gerd@gnu.org>
9810
9811 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
9812 a sole completion.
9813
9814 * process.c (send_process): Add a hint that the function
9815 can call Lisp code to its comment.
9816
9817 * lread.c (load_dangerous_libraries): New variable.
9818 (Vbytecomp_version_regexp): New variable.
9819 (safe_to_load_p): New function.
9820 (Fload): Handle files not compiled with Emacs specially.
9821 (syms_of_lread): New Lisp variable load-dangerous-libraries.
9822
9823 2000-03-14 Gerd Moellmann <gerd@gnu.org>
9824
9825 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
9826
9827 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
9828 support functions only if HAVE_X11R6_XIM is defined.
9829 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
9830
9831 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
9832
9833 * xfns.c (X_I18N_INHIBITED): Don't define.
9834 (create_frame_xic): Remove conditional compilation on X_I18N_INHIBITED.
9835 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
9836
9837 * config.in (HAVE_X_I18N): Moved here from xterm.h.
9838 (HAVE_X11R6_XIM): Define.
9839
9840 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
9841
9842 * xterm.c (x_term_init): Add support for X resource `synchronous'.
9843 If set, call XSynchronize.
9844
9845 2000-03-13 Stefan Monnier <monnier@cs.yale.edu>
9846
9847 * regex.c: Declare a new type `re_char' used throughout the code
9848 for the string char type. It's `const unsigned char' to match the
9849 rest of Emacs. Consistently make sure all pointers to strings use
9850 it and make sure all pointers into the pattern use `unsigned char'.
9851 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
9852 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
9853 code duplication.
9854
9855 * charset.h (GET_CHAR_AFTER_2): Remove.
9856 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
9857
9858 2000-03-12 Ken Raeburn <raeburn@gnu.org>
9859
9860 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
9861 variable before the invocation of YMF_PASS_LDFLAGS, in case both
9862 of them try to use backquotes.
9863
9864 2000-03-12 Dave Love <fx@gnu.org>
9865
9866 * unexelf.c: Restore changes of 1999-10-19.
9867 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
9868 fix its type and alignment; copy it from current process.
9869
9870 2000-03-12 Gerd Moellmann <gerd@gnu.org>
9871
9872 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
9873 has been found. Fix bug not computing timer's predecessor.
9874
9875 * fileio.c (Fread_file_name): Handle case that DIR contains a
9876 file name.
9877
9878 * window.c (Fsave_window_excursion): Doc fix.
9879
9880 * xfns.c (x_defined_color): Rewritten to use x_allocate_nearest_color.
9881
9882 2000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
9883
9884 * msdos.c (vga_installed): New function, code moved from
9885 dos_set_window_size.
9886 (Qbar, Qcursor_type, outside_cursor): New variables.
9887 (syms_of_msdos): Intern and staticpro them.
9888 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
9889 shape used outside Emacs when called for the first time.
9890 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
9891 cursor shape used outside Emacs.
9892 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
9893 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
9894 type has changed.
9895 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
9896 parameters specify the cursor. Make qreverse a global
9897 variable (renamed to Qreverse).
9898
9899 2000-03-09 Gerd Moellmann <gerd@gnu.org>
9900
9901 * fns.c (Fy_or_n_p): Cancel busy-cursor.
9902
9903 2000-03-08 Stefan Monnier <monnier@cs.yale.edu>
9904
9905 This is a big redesign of failure-stack and register handling, prompted
9906 by bugs revealed when trying to add shy-groups. Overall, what happened
9907 is that loops are now structured a little differently, groups can be
9908 shy and the code is a little simpler.
9909
9910 * regex.h: Update the copyright.
9911 (RE_SHY_GROUPS): New value.
9912 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
9913 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
9914
9915 * regex.c (enum re_opcode_t): Remove jump_past_alt,
9916 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
9917 on_failure_jump_(exclusive, loop and smart). Also fix the comment
9918 for (start|stop)_memory since they now only take one argument (the
9919 second has becomes unnecessary).
9920 (print_partial_compiled_pattern): Adjust for changes in re_opcode_t.
9921 (print_compiled_pattern): Use %ld to printf long ints and flush to
9922 make debugging a little easier.
9923 (union fail_stack_elt): Make the integer unsigned.
9924 (struct fail_stack_type): Add a `frame' element.
9925 (INIT_FAIL_STACK): Init `frame' as well.
9926 (POP_PATTERN_OP): New macro for re_compile_fastmap.
9927 (DEBUG_PUSH, DEBUG_POP): Remove.
9928 (NUM_REG_ITEMS): Remove.
9929 (NUM_NONREG_ITEMS): Adjust.
9930 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
9931 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
9932 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
9933 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP):
9934 New macros.
9935 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
9936 address pushed is not the destination of the jump but the source
9937 of it instead.
9938 (NUM_FAILURE_ITEMS): Remove.
9939 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
9940 registers before the actual failure point). Don't hardcode any
9941 meaning for str==NULL anymore.
9942 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
9943 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
9944 Remove.
9945 (REG_UNSET_VALUE): Use NULL (why not?).
9946 (compile_range): Remove declaration since it doesn't exist.
9947 (struct compile_stack_elt_t): Remove inner_group_offset.
9948 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
9949 (regex_grow_registers): Remove dead code.
9950 (FIXUP_ALT_JUMP): New macro.
9951 (regex_compile): Add shy-groups Change loops to use
9952 on_failure_jump_smart&jump instead of
9953 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
9954 initial (dummy_failure_)jump. Remove c1_base (looks like unused
9955 variable to me). Use `jump' instead of `jump_past_alt' and don't
9956 bother with push_dummy_failure in alternatives since it is now
9957 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
9958 emacs' for (re)allocating the stack.
9959 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
9960 from loop when bufp->can_be_null rather than jumping to `done'.
9961 Avoid jumping backwards so as to ensure termination. Use
9962 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
9963 backreferences. Remove dead code in handling of `anychar'.
9964 (skip_noops, mutually_exclusive_p): New functions taken from the
9965 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
9966 improve mutually_exclusive_p to handle ".+\n".
9967 (lowest_active_reg, highest_active_reg)
9968 (NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
9969 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
9970 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
9971 variables. Push register (in `start_memory') on the stack rather
9972 than storing it in old_reg(start|end). Remove the cycle detection
9973 from `stop_memory', replaced by the use of on_failure_jump_loop
9974 for greedy loops. Add code for the new on_failure_jump_<foo>.
9975 Remove ad-hoc code in `on_failure_jump' to push more registers in
9976 the case of a loop. Take out code from `maybe_pop_jump' into
9977 separate functions and adapt it to the semantics of
9978 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
9979 and push_dummy_failure. Remove dummy_failure handling and
9980 handling of `failures to jump to on_failure_jump' (this last one
9981 was already dead code, it seems).
9982 (group_match_null_string_p, alt_match_null_string_p)
9983 (common_op_match_null_string_p): Remove.
9984
9985 2000-03-08 Dave Love <fx@gnu.org>
9986
9987 * config.in: Don't depend on __STDC__ for volatile.
9988 Add POINTER_TYPE, PTR, PROTOTYPES.
9989
9990 * hftctl.c, strftime.c: Use PROTOTYPES.
9991 * eval.c (find_handler_clause): Likewise.
9992
9993 * mem-limits.h: Use POINTER_TYPE.
9994
9995 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
9996 (memory_warnings): Declare using POINTER_TYPE.
9997
9998 2000-03-08 Gerd Moellmann <gerd@gnu.org>
9999
10000 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
10001
10002 * xdisp.c (display_echo_area): Temporarily inhibit garbage collection.
10003
10004 * xfns.c: Remove obsolete code in #if 0.
10005 (Fx_focus_frame): New function.
10006
10007 2000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
10008
10009 * coding.c (coding_category_name): Add coding-category-utf-8,
10010 coding-category-utf-16-be, coding-category-utf-16-le.
10011 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
10012 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
10013 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
10014 (detect_coding_utf_8): New function.
10015 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
10016 UTF_16_LOW_SURROGATE_P): New macros.
10017 (detect_coding_utf_16): New function
10018 (detect_coding_mask): When priorities are specified, skip any
10019 categories that have `nil' coding-system. Fix bug of returning
10020 wrong mask when PRIORITIES is specified and detect_coding_XXX()
10021 returns a mask not set in PRIORITIES.
10022 (detect_eol_type_in_2_octet_form): New function.
10023 (detect_eol): selects detect_eol_type_XXX to call according to
10024 cooding->category_idx.
10025 (detect_coding_system): Remove `nil' coding-system in the result.
10026 (Fupdate_coding_systems_internal): Update all coding-categories.
10027
10028 * coding.h (CODING_CATEGORY_IDX_UTF_8)
10029 (CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE):
10030 New macros.
10031 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY)
10032 (CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
10033 (CODING_CATEGORY_IDX_UTF_16_LE)
10034 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE)
10035 (CODING_CATEGORY_MASK_UTF_16_LE): New macros.
10036 (CODING_CATEGORY_MASK_ANY): Include the above macros.
10037 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
10038
10039 2000-03-07 Gerd Moellmann <gerd@gnu.org>
10040
10041 * doc.c (Fdocumentation_property): If value is not a string,
10042 and doesn't refer to etc/DOC, evaluate it to obtain a string.
10043
10044 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
10045 close the display with XtCloseDisplay. This caused a bus error
10046 on OpenWindows.
10047
10048 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
10049 complete but not unique.
10050
10051 2000-03-06 Gerd Moellmann <gerd@gnu.org>
10052
10053 * process.c (send_process): Remove local variable `procname' that
10054 might become invalid when a GC happens. Instead, access the
10055 process name slot directly.
10056
10057 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
10058 orig_height if set.
10059
10060 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
10061 orig_height if set.
10062
10063 2000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
10064
10065 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
10066 glyph matrices have been freed.
10067
10068 2000-03-05 Gerd Moellmann <gerd@gnu.org>
10069
10070 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
10071 (bootstrap-temacs): Set LC_ALL to C like for temacs.
10072
10073 * xfns.c (QCdata): Moved to xdisp.c.
10074
10075 * xdisp.c (QCdata): Moved here from xfns.c.
10076 (syms_of_xdisp): Initialize QCdata.
10077
10078 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
10079
10080 * window.c (coordinates_in_window): Use
10081 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
10082 FRAME_INTERNAL_BORDER_WIDTH.
10083
10084 * xdisp.c (try_window_id): Recompute unchanged information if
10085 it is obviously invalid.
10086
10087 * xterm.c (x_term_init): Create a colormap if not using the
10088 default visual.
10089
10090 * xterm.h (select_visual): Change prototype.
10091
10092 * xfns.c (select_visual): Rewritten. Recognize user-specified
10093 visual classes.
10094 (visual_classes): New variable.
10095
10096 2000-03-04 Gerd Moellmann <gerd@gnu.org>
10097
10098 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
10099 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
10100 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
10101 (x_decode_color): Don't handle allocation of white and black specially.
10102 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
10103 XtNcolormap resources.
10104 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
10105 (Fx_create_frame): Initialize color members of x_output structure.
10106 (xpm_load): Pass colormap to XPM lib.
10107
10108 * xfaces.c (x_free_colors): Access colormap of frame using
10109 FRAME_X_COLORMAP. Be paranoid about freeing black and white
10110 when default colormap is used.
10111
10112 * xterm.c (x_term_init): Set Colormap member of x_display_info
10113 structure. Copy colormap if resource `privateColormap' is
10114 specified (PseudoColor only).
10115 (x_setup_relief_color): Access colormap of frame using
10116 FRAME_X_COLORMAP.
10117
10118 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
10119 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
10120
10121 2000-03-04 Jason Rumney <jasonr@gnu.org>
10122
10123 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
10124 other non-platform-specific equivalents.
10125 [WINDOWSNT]: Include w32term.h, fontset.h and define X
10126 specific functions and macros as their w32 equivalents where
10127 non-platform-specifics are not available.
10128 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
10129 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
10130 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
10131 (frame_update_line_height): Use macros to access f->output_data.
10132 (defined_color): Remove FIXME comments; fixed.
10133 (x_face_list_fonts, prepare_face_for_display): Put X specifics
10134 into #ifdef blocks. Add WINDOWSNT blocks.
10135 (Fx_list_fonts): Use macros for accessing font data.
10136 (set_lface_from_font_name): Different default fonts for X and
10137 WINDOWSNT.
10138 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
10139 scalable for backward compatibility.
10140 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
10141 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
10142
10143 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
10144 syms_of_w32faces.
10145
10146 * makefile.nt (w32faces.obj): Remove.
10147 (xfaces.obj): Add.
10148
10149 2000-03-03 Jason Rumney <jasonr@gnu.org>
10150
10151 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
10152 correct parameters.
10153
10154 2000-03-03 Ken Raeburn <raeburn@gnu.org>
10155
10156 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
10157 standard ELF definitions here if the system header does not.
10158
10159 2000-03-03 Gerd Moellmann <gerd@gnu.org>
10160
10161 * xterm.c (PER_CHAR_METRIC): Removed.
10162 (x_per_char_metric_1, x_default_char): New functions.
10163 (x_per_char_metric): If font's default char is invalid, return
10164 metrics of a suitably chosen usable default char.
10165 (x_draw_glyph_string_foreground): If font has an invalid default
10166 char, replace occurrences of unprintable chars with a suitably
10167 chosen usable default char.
10168
10169 2000-03-02 Gerd Moellmann <gerd@gnu.org>
10170
10171 * xterm.c (note_mouse_highlight): Return quickly if frame's
10172 glyph matrices have been freed.
10173
10174 * dispnew.c (free_glyphs): Block input while freeing matrices.
10175
10176 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
10177
10178 * xterm.c (x_alloc_lighter_color, x_setup_relief_color):
10179 Use x_free_colors.
10180
10181 * dispextern.h (x_free_colors): Add prototype.
10182
10183 * xfaces.c (x_free_colors): New function.
10184 (unload_color, free_face_colors): Use it.
10185
10186 2000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
10187
10188 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
10189
10190 * window.c [MSDOS]: Include msdos.h.
10191
10192 2000-03-02 Dave Love <fx@gnu.org>
10193
10194 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
10195
10196 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
10197 set C_OPTIMIZE_SWITCH for gcc.
10198
10199 2000-03-02 Kenichi Handa <handa@etl.go.jp>
10200
10201 * coding.c (coding_save_composition): Be sure to allocate
10202 composition data area in coding even if there's no composition in
10203 the current run.
10204
10205 2000-03-01 Jason Rumney <jasonr@gnu.org>
10206
10207 * w32term.c: Equivalent changes to those made to xterm.c on
10208 2000-02-25 and 2000-02-24.
10209
10210 * w32fns.c: Equivalent changes to those made to xfns.c on
10211 2000-02-25 and 2000-02-21.
10212
10213 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
10214 correct line-end convention is followed.
10215
10216 * w32menu.c [HAVE_BOXES]: Remove #undef.
10217 (single_keymap_panes): Remove code for simulating checkmarks.
10218 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
10219 Remove code for drawing simulated checkmarks.
10220 (w32_menu_show): make unibyte help string correctly.
10221 (add_menu_item): draw standard Windows checkmarks. Draw radio
10222 buttons as radio buttons if possible.
10223
10224 2000-03-01 Gerd Moellmann <gerd@gnu.org>
10225
10226 * sysdep.c (start_of_text): Don't define this function for NetBSD
10227 with ELF.
10228
10229 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
10230 Don't define.
10231 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
10232 (LINKER): Don't undef if __NetBSD__ is defined.
10233
10234 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
10235
10236 * fileio.c [__NetBSD__]: Define `unix'.
10237
10238 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
10239
10240 2000-02-29 Gerd Moellmann <gerd@gnu.org>
10241
10242 * atimer.c (start_atimer): Don't abort when timers are stopped.
10243 (append_atimer_lists): New function.
10244 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
10245 arbitrary lists of stopped and running atimers.
10246
10247 * atimer.c (cancel_atimer): Handle canceling an atimer when
10248 some timers are stopped.
10249
10250 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
10251 after canceling it.
10252
10253 * fns.c (maybe_resize_hash_table): Handle case of new size
10254 coming out as being the same as old size.
10255
10256 2000-02-27 Jason Rumney <jasonr@gnu.org>
10257
10258 * makefile.nt: Add atimer.h to dependencies.
10259 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
10260 * w32console.c: Only disable window system features for dispextern.h
10261 (initialize_w32_display): Build a display info for the console.
10262 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
10263 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
10264 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
10265 as 2 button mice.
10266 * w32gui.h (struct W32FontStruct): Revert last change after change
10267 to xdisp.c.
10268 * w32menu.c (single_submenu): Set up help string.
10269 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
10270 (w32_dialog_show): Set up help string.
10271 * w32term.c (w32_display_info_for_display): Remove unused function.
10272 (w32_draw_bitmap): Use pre-built bitmaps.
10273 (w32_initialize_display_info): New function to initialize parts of
10274 display info that are common to both GUI and console frames.
10275 (w32_term_init): Use w32_initialize_display_info. Do not set
10276 Vw32_num_mouse_buttons here, as it is not called for console
10277 frames. Build bitmaps for indicating truncated lines etc.
10278 (x_delete_display): Destroy pre-built bitmaps.
10279 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
10280 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
10281
10282 2000-02-27 Dave Love <fx@gnu.org>
10283
10284 * lisp.h: Add a bunch of prototypes.
10285
10286 2000-02-26 Kenichi Handa <handa@etl.go.jp>
10287
10288 * keyboard.c (read_char): Set `usec' correctly.
10289
10290 2000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
10291
10292 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
10293 `lambda', set reg[RRR] to the map index.
10294 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
10295 reg[RRR] to 0. Otherwise, set it to -1.
10296
10297 2000-02-25 Gerd Moellmann <gerd@gnu.org>
10298
10299 * emacs.c (main): Remove code snippet commented out with `//'.
10300
10301 2000-02-25 Richard M. Stallman <rms@gnu.org>
10302
10303 * fileio.c (Ffile_symlink_p): If result starts with a `/'
10304 and contains a `:', prepend `/:'.
10305
10306 * window.c (select_window_1): If selected_window is nil,
10307 don't "swap out" the buffer's point.
10308 (Fset_window_configuration): Set selected_window to nil
10309 before calling Fselect_window.
10310 (unshow_buffer): Don't set point in buffer from window's point
10311 if another more recently selected window also shows the buffer.
10312
10313 2000-02-25 Gerd Moellmann <gerd@gnu.org>
10314
10315 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
10316
10317 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
10318 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
10319 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay):
10320 New variables.
10321 (DEFAULT_BUSY_CURSOR_DELAY): New define.
10322 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
10323 (hide_busy_cursor): New functions.
10324 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
10325
10326 * minibuf.c (read_minibuf): Cancel busy-cursor.
10327
10328 * keyboard.c (command_loop_1): Call start_busy_cursor before
10329 Fcommand_execute and cancel_busy_cursor after it.
10330 (timer_check): Remove busy-cursor code.
10331 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
10332 cursor timer.
10333
10334 * process.c (wait_reading_process_input): Remove busy-cursor code.
10335
10336 * eval.c (Fsignal): Call cancel_busy_cursor instead of
10337 Fx_hide_busy_cursor.
10338
10339 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
10340 Remove prototyoes.
10341 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
10342
10343 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
10344
10345 * xterm.c (XTread_socket): Remove busy-cursor code.
10346
10347 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
10348 (build_frame_matrix_from_leaf_window): Put code handling
10349 glyph row's not being a slice of a frame row in #if 0.
10350 (sync_window_with_frame_matrix_rows): New function.
10351 (frame_row_to_window): New function.
10352 (mirror_line_dance): Handle copies between windows.
10353
10354 * lread.c (Fload): Use `xfree' instead of `free'.
10355 (init_obarray): Use `xmalloc' instead of `malloc'.
10356
10357 * window.c (Fset_window_buffer): Set WINDOW to the window
10358 after decoding.
10359 (coordinates_in_window): Take frame's internal border width
10360 into account.
10361
10362 2000-02-24 Gerd Moellmann <gerd@gnu.org>
10363
10364 * xterm.c (x_display_and_set_cursor): Display cursor of
10365 non-selected windows depending on the setting of
10366 cursor_in_non_selected_windows.
10367
10368 * xdisp.c (cursor_in_non_selected_windows): New variable.
10369 (syms_of_xdisp): DEFVAR_BOOL it.
10370
10371 2000-02-23 Gerd Moellmann <gerd@gnu.org>
10372
10373 * data.c (Fstring_to_number): If number is greater than what
10374 fits into an integer, return a float.
10375
10376 * eval.c (specbind): Remove references to
10377 keyword_symbols_constant_flag.
10378
10379 * data.c (keyword_symbols_constant_flag): Removed.
10380 (Fmakunbound, set_internal, syms_of_data): Remove references to
10381 keyword_symbols_constant_flag.
10382
10383 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
10384
10385 2000-02-23 Kenichi Handa <handa@etl.go.jp>
10386
10387 * syntax.c (multibyte_syntax_as_symbol): New variable.
10388 (syms_of_syntax): Declare it as a Lisp variable.
10389 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
10390 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
10391 nonzero, treat all multibyte characters as symbol.
10392 (init_syntax_once): Give syntax `word' to all multibyte characters.
10393
10394 2000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
10395
10396 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
10397 a deleted frame.
10398
10399 2000-02-21 Gerd Moellmann <gerd@gnu.org>
10400
10401 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
10402
10403 * xfns.c (x_window_to_frame, x_any_window_to_frame)
10404 (x_non_menubar_window_to_frame): Check the busy-cursor window.
10405
10406 2000-02-21 Dave Love <fx@gnu.org>
10407
10408 * frame.c (Vmouse_position_function): New variable.
10409 (Fmouse_position): Use it.
10410 (syms_of_frame): Install it.
10411
10412 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
10413
10414 2000-02-20 Gerd Moellmann <gerd@gnu.org>
10415
10416 * fileio.c (Finsert_file_contents): Unbind the binding of
10417 standard-output done by temp_output_buffer_setup.
10418
10419 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
10420 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
10421 (specbind, unbind_to): Handle most common case of non-constant
10422 symbol with trivial value specially.
10423
10424 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
10425
10426 2000-02-20 Richard M. Stallman <rms@gnu.org>
10427
10428 * data.c (Fmake_variable_buffer_local): Doc fix.
10429 Init found_for_buffer to 0.
10430 (Fmake_variable_frame_local): If the variable has already
10431 been buffer-local, set the check_frame field.
10432
10433 2000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
10434
10435 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
10436 produced for CODING_MODE_LAST_BLOCK requires.
10437
10438 2000-02-18 Dave Love <fx@gnu.org>
10439
10440 * keyboard.c (echo_keystrokes): Remove declaration.
10441 (Vecho_keystrokes) New variable.
10442 (read_char, record_menu_key, read_key_sequence): Use it to allow
10443 use of float value.
10444 (syms_of_keyboard): Change Vecho_keystrokes declaration.
10445
10446 * lread.c: Undef feature selection macros before defining.
10447
10448 2000-02-18 Gerd Moellmann <gerd@gnu.org>
10449
10450 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
10451 for symbols other than the symbol in question.
10452
10453 2000-02-17 Dave Love <fx@gnu.org>
10454
10455 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
10456
10457 2000-02-17 Gerd Moellmann <gerd@gnu.org>
10458
10459 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
10460
10461 * alloc.c (enum mem_type): Compile unconditionally.
10462
10463 2000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
10464
10465 * xfaces.c (tty_defined_color): Don't return faulire indication
10466 for unspecified-fg and unspecified-bg pseudo-colors.
10467
10468 2000-02-17 Gerd Moellmann <gerd@gnu.org>
10469
10470 * alloc.c (mark_object): Don't mark symbol names in pure space.
10471 (gc_sweep): Don't unmark symbol names in pure space.
10472
10473 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
10474 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
10475 [GC_MARK_STACK]: New defines.
10476 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
10477 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
10478
10479 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
10480
10481 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
10482 allocate_buffer instead of xmalloc.
10483
10484 * alloc.c (toplevel): Include setjmp.h.
10485 (PURE_POINTER_P): New define.
10486 (enum mem_type) [GC_MARK_STACK]: New enumeration.
10487 (Vdead) [GC_MARK_STACK]: New variable.
10488 (lisp_malloc): Add parameter TYPE, call mem_insert if
10489 GC_MARK_STACK is defined.
10490 (allocate_buffer): New function.
10491 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
10492 (free_float) [GC_MARK_STACK]: Set type to Vdead.
10493 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
10494 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
10495 (MEM_NIL) [GC_MARK_STACK]: New define.
10496 (struct mem_node) [GC_MARK_STACK]: New structure.
10497 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
10498 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
10499 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
10500 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
10501 (mark_stack) [GC_MARK_STACK]: New functions.
10502 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
10503 (clear_marks): Removed.
10504 (gc_sweep): Set free conses' car, free floats' type, free
10505 symbols' function to Vdead. Use lisp_free to free buffers.
10506 (init_alloc_once): Initialize Vdead.
10507 (survives_gc_p): Return non-zero for pure objects.
10508
10509 * alloc.c: Add comments throughout the file.
10510
10511 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
10512 that unblocks alarms.
10513
10514 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
10515 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
10516 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
10517
10518 * frame.c (make_frame): Set frame initiallly to `garbaged'.
10519
10520 2000-02-17 Kenichi Handa <handa@etl.go.jp>
10521
10522 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
10523 avoid infinite error signaling. Allocate sufficient memory for
10524 eol_str in the case that eoltype is Lisp_Int.
10525
10526 2000-02-17 Stefan Monnier <monnier@cs.yale.edu>
10527
10528 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
10529 depends on the previous behavior.
10530
10531 2000-02-16 Gerd Moellmann <gerd@gnu.org>
10532
10533 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
10534
10535 2000-02-15 Gerd Moellmann <gerd@gnu.org>
10536
10537 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
10538
10539 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
10540 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
10541 write(2).
10542
10543 2000-02-15 Richard M. Stallman <rms@gnu.org>
10544
10545 * data.c (set_internal): Don't make variable buffer-local
10546 if within a let-binding for the same buffer.
10547 (let_shadows_buffer_binding_p): New function.
10548
10549 * eval.c (specbind): For buffer-local value,
10550 record the current buffer also.
10551 (unbind_to): Cope with that change.
10552
10553 2000-02-15 Gerd Moellmann <gerd@gnu.org>
10554
10555 * window.c (Fsave_window_excursion): Doc fix.
10556
10557 2000-02-15 Stefan Monnier <monnier@cs.yale.edu>
10558
10559 * syntax.c (back_comment): Make sure we only consider comment-starters
10560 of the relevant style and return -1 in case of a failure to find the
10561 beginning of the comment.
10562 (Fforward_comment): If back_comment fails, go back to the position just
10563 after the comment-end.
10564 (scan_lists): Add comment describing a very minor bug.
10565
10566 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
10567
10568 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
10569 `completion-regexp-list' in the docstring.
10570
10571 2000-02-14 Dave Love <fx@gnu.org>
10572
10573 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
10574
10575 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
10576
10577 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
10578 to Emacs' syntax. Also fix the comment about set/not-set meanings
10579 since Emacs syntax is not the value 0 any more.
10580 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
10581 since it's now part of RE_SYNTAX_EMACS.
10582
10583 2000-02-12 Dave Love <fx@gnu.org>
10584
10585 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on Alpha.
10586
10587 2000-02-12 Gerd Moellmann <gerd@gnu.org>
10588
10589 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
10590
10591 2000-02-12 Dave Love <fx@gnu.org>
10592
10593 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
10594
10595 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
10596 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
10597 * s/hpux.h: Don't define HAVE_VFORK.
10598
10599 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
10600
10601 * s/nextstep.h: Don't define HAVE_ALLOCA.
10602
10603 * config.in: Add vfork bits.
10604
10605 2000-02-12 Gerd Moellmann <gerd@gnu.org>
10606
10607 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
10608 unwind function to undo the effect of stopping atimers.
10609
10610 * keyboard.c (bind_polling_period): Stop all timers except 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.
10618
10619 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
10620
10621 2000-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
10627 2000-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
10632 2000-02-10 Dave Love <fx@gnu.org>
10633
10634 * xfns.c (create_frame_xic): Fix initialization of automatic
10635 aggregates for pcc.
10636
10637 2000-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
10644 2000-02-08 Dave Love <fx@gnu.org>
10645
10646 * lread.c (__EXTENSIONS__): Define.
10647
10648 2000-02-08 Gerd Moellmann <gerd@gnu.org>
10649
10650 * puresize.h (BASE_PURESIZE): Increase to 650000.
10651
10652 2000-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
10657 2000-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
10662 2000-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
10667 2000-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
10697 2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
10698
10699 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit area.
10700 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
10701 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
10702 dispatch the event.
10703
10704 2000-02-04 Dave Love <fx@gnu.org>
10705
10706 * fileio.c: Remove some unused vars.
10707 (_GNU_SOURCE): Define (for euidaccess).
10708
10709 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
10710
10711 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
10712 gcpro1, gcpro2.
10713 (read_minibuf): Deal with allow_props correctly.
10714
10715 2000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
10716
10717 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
10718
10719 2000-02-03 Ken Raeburn <raeburn@gnu.org>
10720
10721 * search.c (compile_pattern): If a cache entry has a nil regexp,
10722 fill in that entry instead of clobbering a previously cached
10723 string regexp.
10724
10725 2000-02-02 Ken Raeburn <raeburn@gnu.org>
10726
10727 * puresize.h (BASE_PURESIZE): Increase to 610000.
10728
10729 2000-02-02 Gerd Moellmann <gerd@gnu.org>
10730
10731 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
10732 can GC.
10733
10734 2000-02-02 Kenichi Handa <handa@etl.go.jp>
10735
10736 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
10737 instead of incrementing ic directly.
10738 <CCL_WriteExprConst> Likewise.
10739 <ccl_set_expr>: Set ic to jump_address.
10740
10741 * fileio.c (e_write): Fix the handling of
10742 CODING_FINISH_INSUFFICIENT_SRC.
10743
10744 2000-02-01 Dave Love <fx@gnu.org>
10745
10746 * editfns.c (Fpropertize): Doc fix.
10747
10748 * process.c (Fstart_process): Doc fix.
10749
10750 * eval.c: Fix various doc strings not to duplicate information
10751 from help-manyarg-func-alist.
10752
10753 * window.c (Fset_window_margins): Don't make interactive. Doc fix.
10754
10755 * doc.c (Vhelp_manyarg_func_alist): New variable.
10756 (Fdocumentation): Use it.
10757 (syms_of_doc): Define it.
10758
10759 2000-01-31 Gerd Moellmann <gerd@gnu.org>
10760
10761 * xterm.c (xim_open_dpy): Remove unused local variable.
10762
10763 * emacs.c (USAGE): Use term `display options' instead of `X options'.
10764
10765 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
10766 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
10767
10768 * fns.c (sweep_weak_table): New function.
10769 (sweep_weak_hash_tables): Use it. Keep on marking until there
10770 is no more change.
10771
10772 2000-01-30 Gerd Moellmann <gerd@gnu.org>
10773
10774 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
10775 that XTread_socket does not crash by trying to call XNoOp on a
10776 closed display.
10777
10778 2000-01-30 Jason Rumney <jasonr@gnu.org>
10779
10780 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
10781 Change selected_frame to SELECTED_FRAME ().
10782 (w32_console_mouse_position): Remove #ifndef MULE from around
10783 `insist' parameter.
10784
10785 * makefile.nt: Remove dosfns.obj.
10786
10787 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
10788
10789 * w32fns.c (w32_defined_color): Check for valid frame before
10790 applying gamma correction. Eliminate dependency on frame elsewhere.
10791 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
10792 (w32_to_x_font): Use resx and resy not height_in and width_in.
10793 (x_to_w32_font): Doc fix.
10794 (xlfd_strip_height): New function to strip and return font height.
10795 (w32_font_match): Compare height separately from rest of xlfd
10796 spec, using xlfd_strip_height.
10797
10798 * w32term.c (w32_term_init): Swap resx and height_in, resy and
10799 width_in. Use w32_defined_color in place of defined_color.
10800
10801 * w32faces.c: Merge more of DOS and X specifics in preparation for
10802 merge with xfaces.c.
10803 (defined_color): Remove FIXME comment.
10804 (tty_color_name): Provide w32-specific function.
10805 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
10806
10807 * w32console.c (turn_on_face, turn_off_face): Removed.
10808 (w32_face_attributes): New function.
10809 (Global_variables): Reduce scope where possible.
10810 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
10811 fill attribute.
10812 (hl_mode): Don't modify text attributes.
10813 (write_glyphs): Don't do anything if len <= 0. Use
10814 w32_face_attributes to get attributes for drawing. Write
10815 terminating codes using char_attr_normal.
10816 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
10817 (update_begin, update_end): Likewise.
10818 (vga_stdcolor_name): New function.
10819 (initialize_w32_display): Remove char_attr_reverse and char_attr.
10820 (Fset_screen_color): Remove char_attr_reverse.
10821
10822 2000-01-29 Gerd Moellmann <gerd@gnu.org>
10823
10824 * xfns.c (xic_set_preeditarea): Take window parameter and
10825 window-relative pixel-positions.
10826
10827 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
10828 is its frame's selected window.
10829 (xim_instantiate_callback): Likewise.
10830
10831 * xfns.c (x_create_im): Removed.
10832 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
10833 (supported_xim_styles): Renamed from supported_styles.
10834 (best_xim_style): Renamed from best_style.
10835 (create_frame_xic): Renamed from xic_create_frame.
10836 (free_frame_xic): Renamed from xic_destroy_frame.
10837
10838 2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
10839
10840 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
10841 our frames, call XFilterEvent with 2nd parameter `None'.
10842 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
10843 returning XBufferOverflow.
10844 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status area.
10845 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
10846 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
10847 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
10848 (xim_initialize, xim_close)
10849 [HAVE_X_I18N && HAVE_X11R6]: New functions.
10850 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
10851 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
10852 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
10853
10854 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
10855 and `xim_styles'.
10856 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
10857 `xic_style' and `xic_xfs'.
10858 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
10859 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
10860 (FRAME_XIM): Removed.
10861
10862 * xfns.c (supported_styles): New variable.
10863 (DEFAULT_STYLE, DEFAULT_FONT): New macros
10864 (xic_create_xfontset, best_style, xic_create_frame)
10865 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
10866 (xic_set_xfontset): New functions.
10867
10868 2000-01-28 Dave Love <fx@gnu.org>
10869
10870 * s/irix6-5.h: Revert last change after change to irix5-0.h.
10871
10872 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
10873
10874 2000-01-28 Gerd Moellmann <gerd@gnu.org>
10875
10876 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
10877 for *scratch* if it already existed.
10878
10879 * emacs.c (USAGE): New macro.
10880 (main): Use it to display usage information.
10881
10882 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
10883
10884 Support for the menu-help feature:
10885
10886 * msdos.h: Change prototypes of XMenuAddSelection and XMenuActivate.
10887
10888 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
10889 part of the line to the termscript file.
10890 (IT_clear_to_end): Clear the entire line, not just its beginning.
10891 (menu_help_message, prev_menu_help_message): New variables.
10892 (IT_menu_make_room): Make room for the help_text member.
10893 (IT_menu_display): New argument disp_help; all callers changed.
10894 If disp_help is non-zero, store the help text of the active menu
10895 item in menu_help_message.
10896 (XMenuAddPane): Initialize the help_text member to NULL.
10897 (XMenuAddSelection): New argument help_text. Store it in the
10898 XMenu structure.
10899 (XMenuActivate): New argument help_callback. If the value of
10900 menu_help_message has changed since the last time, display the
10901 menu help message text while waiting for the mouse to move. Clear
10902 the echo area before exiting.
10903 (XMenuDestroy): Free the help_text member.
10904
10905 2000-01-27 Gerd Moellmann <gerd@gnu.org>
10906
10907 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
10908 XMenuAddSelection. Pass help callback to XMenuActivate.
10909 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
10910
10911 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
10912
10913 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
10914 and EMACS_SET_USECS.
10915
10916 2000-01-26 Dave Love <fx@gnu.org>
10917
10918 * editfns.c (Fchar_after, Fchar_before): Doc fix.
10919
10920 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
10921 an error may be signalled.
10922
10923 2000-01-26 Gerd Moellmann <gerd@gnu.org>
10924
10925 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
10926 LD_SWITCH_SYSTEM inherited from irix5-0.h.
10927
10928 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
10929
10930 2000-01-25 Gerd Moellmann <gerd@gnu.org>
10931
10932 * charset.c (Fstring): If there is a multibyte char among
10933 the args, always return a multibyte string.
10934
10935 2000-01-25 Gerd Moellmann <gerd@gnu.org>
10936
10937 * sysdep.c (sys_select): Turn atimers off and on instead of
10938 recording and restoring old alarm handler
10939
10940 * process.c (toplevel): Include atimer.h.
10941 (create_process_1): Rewritten.
10942 (create_process): Use atimers instead of alarm.
10943 (wait_reading_process_input) [hpux]: Turn atimers off instead
10944 of turning off SIGALRM.
10945 (wait_reading_process_input): Turn off atimers instead off
10946 calling stop_polling.
10947
10948 * emacs.c (main): Call init_atimer.
10949
10950 * keyboard.c (toplevel): Include systime.h and atimer.h.
10951 (polling_for_input): Removed because unused.
10952 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
10953 (poll_timer): New variable.
10954 (poll_for_input, poll_for_input_1): New functions.
10955 (start_polling, stop_polling): Rewritten.
10956
10957 * keyboard.h (polling_for_input): Removed.
10958
10959 * atimer.h, atimer.c: New files.
10960
10961 * Makefile.in (obj): Add atimer.o.
10962 (atimer.o): New target.
10963
10964 * blockinput.h (pending_atimers): Add extern declaration.
10965 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
10966
10967 * lisp.h (popup_activated_flag): Add extern declaration.
10968
10969 * xmenu.c (popup_activated_flag): Make externally visible.
10970 (popup_activate_callback) [USE_MOTIF]: Increment popup_activated_flag.
10971 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
10972
10973 * xterm.c (toplevel): Include atimer.h.
10974 (toolkit_scroll_bar_interaction): New variable.
10975 (Fxt_process_timeouts): Removed.
10976 (x_process_timeouts): New function.
10977 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
10978 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
10979 (x_make_frame_visible): Call poll_for_input_1 instead of
10980 input_poll_signal. Don't call alarm.
10981 (x_initialize): Install timer calling x_process_timeouts.
10982
10983 2000-01-24 Dave Love <fx@gnu.org>
10984
10985 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
10986 Don't use -cckr -- apparently not now necessary.
10987
10988 2000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
10989
10990 * msdos.c (IT_menu_display): Truncate long menu lines at the right
10991 screen boundary.
10992
10993 2000-01-23 Jason Rumney <jasonr@gnu.org>
10994
10995 * w32fns.c (w32_defined_color): Apply gamma correction before
10996 trying to map to the palette.
10997 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
10998 to w32_clear_rect.
10999
11000 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
11001 here. Callers changed to always pass real device context.
11002 (w32_draw_bitmap): Likewise.
11003 (w32_get_glyph_overhangs): Likewise.
11004 (w32_draw_box_rect): Make use of s->hdc rather than getting a new one.
11005 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
11006 pfnSetScrollInfo and SetScrollRange.
11007 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
11008 back into MULE characters after decoding them.
11009 (x_get_glyph_face_and_encoding): Likewise.
11010 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
11011 GetCharABCWidthsW fails, since this is defined on Windows 9x.
11012 (x_produce_glyphs): Calculate per char metrics for a character
11013 that we know exists in default font when font_not_found_p is true.
11014
11015 2000-01-22 Jason Rumney <jasonr@gnu.org>
11016
11017 * makefile.nt (intervals.obj, composite.obj): New modules.
11018 (composite.h): Added as dependency where appropriate.
11019
11020 * w32gui.h (XGCValue): New struct for emulating X GCs.
11021
11022 * w32term.h (XCharStruct): New struct for emulating X.
11023
11024 * w32console.c (turn_on_face, turn_off_face): New functions.
11025 (change_line_highlight): New prototype for new redisplay.
11026 (write_glyphs): Support multibyte text. Support faces.
11027
11028 * w32faces.c: Complete rewrite for new redisplay based on new xfaces.c.
11029
11030 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
11031 throughout. struct frame * in place of FRAME_PTR.
11032 Skeleton support for images, toolbars, tooltips from xfns.c.
11033 (Fx_create_frame): Use system default for default scroll bar width.
11034 (w32_get_arg): Renamed from x_get_arg.
11035 (Fx_file_dialog): New function.
11036 (w32_list_fonts): Check cache before asking system.
11037 (Vw32_enable_synthesized_fonts): New variable.
11038 (Vw32_enable_italics): Obsolete, removed.
11039
11040 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
11041 Use SELECTED_FRAME macro.
11042
11043 * w32menu.c: Add skeleton support for help strings on menus.
11044 (add_menu_item): Native checkbox and radio support added, but not
11045 yet enabled due to bugs.
11046 (push_menu_item): Add parameters type, selection and help.
11047 Callers updated.
11048 Formatting changes to reduce unnecessary diffs with xmenu.c.
11049
11050 * w32select.c (Fw32_set_clipboard_data): Update call to
11051 find_charset_in_str.
11052
11053 * w32term.c: Complete rewrite for new redisplay based on new
11054 xterm.c with necessary sections merged back in from old w32term.c.
11055
11056 2000-01-21 Richard M. Stallman <rms@gnu.org>
11057
11058 * data.c (set_internal): Further fix in same criterion.
11059
11060 2000-01-20 Richard M. Stallman <rms@gnu.org>
11061
11062 * data.c (set_internal): Fix the criteria for whether
11063 to swap out the old cached binding.
11064
11065 2000-01-19 Dave Love <fx@gnu.org>
11066
11067 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
11068
11069 2000-01-18 Kenichi Handa <handa@etl.go.jp>
11070
11071 * regex.c (re_compile_fastmap): While checking a range table for
11072 `charset', skip flag bits for a character class correctly.
11073
11074 2000-01-17 Gerd Moellmann <gerd@gnu.org>
11075
11076 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
11077
11078 * xfns.c (x_window): Call lw_create_widget with new parameter list.
11079
11080 * widget.c (EmacsFrameSetCharSize): Change size of children first
11081 because of problems with main window geometry management under Lesstif.
11082
11083 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
11084 MENU_ITEMS_ITEM_.*.
11085 (MENU_ITEMS_ITEM_HELP): New enumerator.
11086 (push_menu_item): Add parameter HELP. Record help in menu_items.
11087 (single_menu_item, single_submenu, list_of_items): Call
11088 push_menu_item with new parameter.
11089 (single_submenu): Set help string in widget value.
11090 (menu_highlight_callback): New function.
11091 (set_frame_menubar): Call lw_create_widget with new
11092 parameter list.
11093 (xmenu_show, xdialog_show): Ditto.
11094
11095 2000-01-13 Gerd Moellmann <gerd@gnu.org>
11096
11097 * sound.c (Fplay_sound): Improve doc string.
11098
11099 2000-01-11 Richard M. Stallman <rms@gnu.org>
11100
11101 * lisp.h (set_internal): Enter the new arg.
11102
11103 * eval.c (specbind): Record buffer-local variables specially,
11104 indicating which buffer's binding was saved.
11105 (unbind_to): Restore buffer-local variables specially
11106 in the proper buffer.
11107
11108 * data.c (set_internal): New arg BUF.
11109
11110 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
11111 * data.c (Fset): Pass new arg to set_internal.
11112 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
11113
11114 2000-01-11 Gerd Moellmann <gerd@gnu.org>
11115
11116 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload, xprintsym.
11117
11118 2000-01-11 Richard M. Stallman <rms@gnu.org>
11119
11120 * minibuf.c (Ftry_completion): Doc fix.
11121
11122 2000-01-11 Gerd Moellmann <gerd@gnu.org>
11123
11124 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
11125 vector, too.
11126
11127 2000-01-11 Andreas Schwab <schwab@suse.de>
11128
11129 * coding.c (code_convert_region): Initialize total_skip.
11130
11131 2000-01-08 Dave Love <fx@gnu.org>
11132
11133 * eval.c (Fuser_variable_p): Check customizability too.
11134
11135 2000-01-07 Gerd Moellmann <gerd@gnu.org>
11136
11137 * minibuf.c (Fcompleting_read): Doc fix.
11138
11139 2000-01-05 Gerd Moellmann <gerd@gnu.org>
11140
11141 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
11142 -L /usr/local/lib.
11143
11144 * xfns.c (x_create_im): New function to set IM and IC of a frame.
11145 Check that input style is supported before trying to create an
11146 IC for it.
11147 (x_window): Call x_create_im.
11148
11149 2000-01-04 Gerd Moellmann <gerd@gnu.org>
11150
11151 * xfns.c (current_gif_memory_src): New variable.
11152 (gif_load): Record the address of the current memory source
11153 in current_gif_memory_src.
11154 (gif_read_from_memory): Use current_gif_memory_src.
11155
11156 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
11157 macros statement form.
11158
11159 * sound.c (struct sound): Renamed from struct sound_file.
11160 (struct sound): Add members `data' and `header_size'.
11161 (enum sound_attr): Add SOUND_DATA.
11162 (current_sound, current_sound_device): Variables renamed from
11163 sound_file and sound_device.
11164 (parse_sound): Parse :data.
11165 (parse_sound): Handle sound data in strings.
11166 (find_sound_type): Function renamed from find_sound_file_type.
11167 (wav_init, au_init): Fail if sound's header_size is smaller than
11168 needed header size.
11169 (wav_play, au_play): Play sounds from string data.
11170
11171 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
11172
11173 * lisp.h: Add prototype for allocate_string_data.
11174
11175 * alloc.c (Fgarbage_collect): Return number of live and free strings.
11176
11177 * alloc.c (mark_buffer): Remove code in #if 0.
11178 (gc_sweep): Ditto.
11179 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
11180 (strings_consed): New variable.
11181 (allocate_string): Set it.
11182 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
11183 (Fmemory_use_counts): Return strings_consed. Use Flist.
11184
11185 * alloc.c: General cleanup in comments etc. Remove conditional
11186 compilation for `standalone'.
11187
11188 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
11189
11190 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
11191 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
11192 (DONT_COPY_FLAG): Removed.
11193 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
11194 (struct sdata, struct sblock): New
11195 (struct string_block): Rewritten.
11196 (STRINGS_IN_STRING_BLOCK): New macro.
11197 (oldest_sblock, current_sblock, total_strings, total_free_strings)
11198 (large_sblocks, string_blocks, string_free_list): New variables.
11199 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
11200 (init_strings): Rewritten.
11201 (allocate_string, allocate_string_data, compact_small_strings)
11202 (free_large_strings, sweep_strings): New functions.
11203 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
11204 (struct string_block_head, current_string_block)
11205 (first_string_block, large_string_blocks, STRING_FULLSIZE)
11206 (STRING_PAD): Removed.
11207 (make_uninit_multibyte_string, make_pure_string): Rewritten.
11208 (Fgarbage_collect): Don't set mark bit in large strings.
11209 (mark_object): Mark strings differently. Mark symbol names
11210 differently.
11211 (survives_gc_p): Test marked strings differently.
11212 (gc_sweep): Sweep strings differently, unmark strings in
11213 symbol names.
11214 (compact_strings): Removed.
11215
11216 2000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
11217
11218 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
11219 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
11220
11221 2000-01-04 Kenichi Handa <handa@etl.go.jp>
11222
11223 * fileio.c (Finsert_file_contents): Signal error if visiting file
11224 in a non-empty buffer.
11225
11226 * term.c (encode_terminal_code): Fix the previous change.
11227
11228 2000-01-03 Gerd Moellmann <gerd@gnu.org>
11229
11230 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
11231 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
11232
11233 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
11234
11235 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11236
11237 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
11238 need to test for MSDOS frames.
11239
11240 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11241
11242 * dosfns.c (unspecified_colors): Remove.
11243 (msdos_stdcolor_idx): Use global variables unspecified_fg and
11244 unspecified_bg.
11245 (msdos_stdcolor_name): Return strings for unspecified fore- and
11246 back-ground colors.
11247
11248 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
11249 (syms_of_xfaces): Remove their staticpro's.
11250 (tty_color_name): Return Lisp strings for unspecified fore- and
11251 back-ground colors.
11252 (Finternal_set_lisp_face_attribute): Remove the special treatment
11253 for Qunspecified_{f,b}g.
11254 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp string.
11255
11256 2000-01-03 Gerd Moellmann <gerd@gnu.org>
11257
11258 * xdisp.c (reseat_at_next_visible_line_start): Position before
11259 newline only if ending up on a newline.
11260 (next_element_from_ellipsis): Return success. Handle case of
11261 displaying no ellipsis. Fix case of ellipsis defined in display table.
11262 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
11263 returns 0.
11264
11265 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11266
11267 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
11268 (Fcolor_supported_p): Renamed from face-color-supported-p.
11269
11270 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11271
11272 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
11273 list of colors renamed to tty-defined-color-alist.
11274 (tty_color_name): Pass the frame to tty-color-by-index.
11275 (realize_tty_face): tty-color-alist is now a function which
11276 accepts the frame as argument.
11277
11278 * term.c (Ftty_display_color_p): Accept an optional argument FRAME.
11279
11280 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11281
11282 * term.c (insert_glyphs): Pass glyph, not &glyph, to
11283 encode_terminal_code.
11284
11285 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11286
11287 * dispnew.c (mode_line_string): Support termcap frames as well.
11288
11289 2000-01-01 Gerd Moellmann <gerd@gnu.org>
11290
11291 * syntax.c (Fforward_word): Undo previous change.
11292
11293 * editfns.c (Fconstrain_to_field): Don't constrain if
11294 inhibit-field-text-motion is non-nil.
11295 (Fline_beginning_position): Undo previous change.
11296 (Fline_end_position): Ditto.
11297
11298 * syntax.c (Fforward_word): Notice field boundaries only if
11299 inhibit-field-text-motion is nil.
11300
11301 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
11302
11303 * editfns.c (Vinhibit_field_text_motion): New variable.
11304 (inhibit-field-text-motion): New DEFVAR_LISP.
11305 (Fline_beginning_position, Fline_end_position): Notice field
11306 boundaries only if inhibit-field-text-motion is nil.
11307
11308 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
11309 All calls adjusted.
11310 (x_build_heuristic_mask): Likewise.
11311 (xbm_load_image_from_file): Change error output.
11312 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
11313 (gif_load, gs_load, x_kill_gs_process): Ditto.
11314
11315 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
11316 color indices when accessing raster pixels.
11317 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
11318 one of :file or :data.
11319 (enum pbm_keyword_index): Add PBM_DATA.
11320 (pbm_format): Add :data.
11321 (pbm_image_p): Allow either :file or :data.
11322 (pbm_read_file): New function.
11323 (pbm_scan_number): Rewritten to read from string.
11324 (pbm_load): Support :data.
11325
11326 See ChangeLog.8 for earlier changes.
11327
11328 ;; Local Variables:
11329 ;; coding: iso-2022-7bit
11330 ;; End: