(toplevel): Include <signal.h> and "syssignal.h".
[bpt/emacs.git] / src / ChangeLog
1 2001-07-09 Gerd Moellmann <gerd@gnu.org>
2
3 * sound.c (toplevel): Include <signal.h> and "syssignal.h".
4 (vox_configure, vox_close) [SIGIO]: Block/unblock SIGIO
5 around ioctls.
6
7 2001-07-06 Eli Zaretskii <eliz@is.elta.co.il>
8
9 * dosfns.c (syms_of_dosfns): Add \n\ at the end of a line in the
10 doc string line for dos-timezone-offset.
11
12 * msdos.c (do_visible_bell): Add \n\ at the end of each line of
13 inline assembly, to avoid compiler warnings.
14 (syms_of_msdos): Add \n\ at the end of a line in the doc string
15 line for dos-unsupported-char-glyph.
16
17 * buffer.c (syms_of_buffer) [if 0]: Avoid a warning from GCC 3.0.
18
19 2001-07-05 Gerd Moellmann <gerd@gnu.org>
20
21 * sound.c: Include Emacs' header files with #include "...".
22
23 * eval.c (specbind): Additionally record the buffer that was
24 current when a buffer-local or frame-local variable was bound.
25
26 2001-07-04 Gerd Moellmann <gerd@gnu.org>
27
28 * xterm.c (x_produce_glyphs): Don't convert multibyte characters
29 to unibyte characters in unibyte buffers.
30
31 2001-07-03 Gerd Moellmann <gerd@gnu.org>
32
33 * eval.c (specbind): If SYMBOL has a frame-local binding, record
34 the frame on the binding stack. Change format of entries for
35 local bindings on the binding stack to '(SYMBOL . WHERE)'.
36 (unbind_to): Handle unbinding a frame-local variable.
37
38 * xdisp.c (compute_line_metrics): On ttys, subtract continuation
39 glyphs and truncation glyphs at the end of a row from its pixel
40 width.
41 (dump_glyph_row): Print row's continuation_lines_width.
42 (try_window_id): Take the shortcut if ZV is visible in the
43 window, but there are actually no changes at ZV.
44
45 2001-07-02 Gerd Moellmann <gerd@gnu.org>
46
47 * xterm.h (x_free_dpy_colors): Add prototype.
48
49 * xterm.c (cvt_pixel_dtor): Call x_free_dpy_colors with the
50 right number of arguments.
51
52 * Makefile.in (tags): Depend on $(lwlibdir)/TAGS.
53 ($(lwlibdir)TAGS): New target.
54 (TAGS): Fix dependency list.
55
56 * xterm.c (x_list_fonts): Make sure XFreeFont is called
57 with input blocked.
58
59 2001-06-30 Gerd Moellmann <gerd@gnu.org>
60
61 * emacs.c (main): Remove extern declaration for sys_nerr, which
62 isn't used and causes a compilation error with GCC 3.0 on
63 FreeBSD 4.3.
64
65 2001-06-27 Gerd Moellmann <gerd@gnu.org>
66
67 * widget.c (EmacsFrameSetCharSize): Turn off atimers and block
68 SIGIO around the code where Xt might wait for a
69 ConfigureNotifyEvent.
70 (toplevel): Include <signal.h> and syssignal.h.
71
72 * sound.c (vox_configure, vox_close): Turn off atimers
73 around ioctls.
74
75 2001-06-26 Gerd Moellmann <gerd@gnu.org>
76
77 * keyboard.c (read_char) <non_reread>: Record the previous idle
78 start time before calling timer_stop_idle.
79 (read_char) <reread_first>: After processing a help-echo event,
80 restore the previous idle start time.
81
82 * xdisp.c (handle_invisible_prop): Deal with overlay strings at
83 the start of invisible text.
84 (setup_for_ellipsis): New function.
85 (next_overlay_string): After all overlay strings have been
86 processed, display an ellipsis if necessary.
87 (load_overlay_strings, get_overlay_strings): Add parameter CHARPOS.
88 (push_it): Initialize display_ellipsis_p on the iterator's stack.
89
90 * dispextern.h (struct iterator_stack_entry): Add member
91 display_ellipsis_p.
92
93 2001-06-25 Gerd Moellmann <gerd@gnu.org>
94
95 * widget.c (EmacsFrameSetCharSize): Set XtNwaitForWm depending
96 on the value of the wait-for-wm frame parameter.
97
98 * xterm.h (struct x_output): Add member wait_for_wm.
99
100 * xfns.c (Qwait_for_wm): New variable.
101 (x_frame_parms): Add entry for `wait-for-wm".
102 (x_set_wait_for_wm): New function.
103 (Fx_create_frame): Call x_default_parameter for wait-for-wm.
104 (syms_of_xfns): Initialize and staticpro Qwait_for_wm.
105
106 * xdisp.c (try_window_id) <all changes below window end>: Don't
107 take this shortcut if ZV is visible in the window.
108 (try_window_id): When checking for window start being in changed
109 text, don't check that the buffer's size has changed.
110
111 2001-06-23 Richard M. Stallman <rms@gnu.org>
112
113 * minibuf.c (Fcompleting_read): Doc fix.
114
115 2001-06-19 Gerd Moellmann <gerd@gnu.org>
116
117 * composite.c (Ffind_composition_internal): Accept ZV
118 and a string's end position as POS.
119
120 2001-06-18 Gerd Moellmann <gerd@gnu.org>
121
122 * composite.c (Ffind_composition_internal): Check POS
123 for validity.
124
125 2001-06-15 Eli Zaretskii <eliz@is.elta.co.il>
126
127 * editfns.c (Fmessage_box): If the frame is not under a window
128 system, output the message in the echo area.
129
130 2001-06-14 Richard M. Stallman <rms@gnu.org>
131
132 * xdisp.c (try_window_id): When EOB is visible, don't treat
133 insertion at EOB as if it were "off the bottom of the screen."
134
135 2001-06-11 Andrew Innes <andrewi@gnu.org>
136
137 * w32proc.c (create_child): Add new parameter is_gui_app.
138 (w32_executable_type): Add new parameter is_gui_app.
139 (sys_spawnve): Use it.
140 (sys_kill): Fake ^C for SIGINT, and ^Break (if possible) for
141 SIGQUIT. This matches better how the signals are interpreted by
142 MSVC compiled programs.
143 (syms_of_ntproc): Update docstring.
144
145 2001-06-02 Stefan Monnier <monnier@cs.yale.edu>
146
147 * xterm.c (clear_mouse_face): Reset dpyinfo->mouse_face_overlay as
148 well otherwise note_mouse_highlight might optimize away highlighting
149 if we pass over that same overlay again.
150
151 2001-06-02 Eli Zaretskii <eliz@is.elta.co.il>
152
153 * lread.c (Fload): Document that the argument is run via
154 substitute-in-file-name.
155
156 2001-05-31 Gerd Moellmann <gerd@gnu.org>
157
158 * Makefile.in (bootstrap-doc): New target.
159 (bootstrap-emacs): Depend on it.
160
161 * fileio.c (Fdo_auto_save): Don't try to create the directory of
162 auto-save-list-file-name when shutting down Emacs, because
163 creating the directory might signal an error, and leaves
164 Emacs in a strange state.
165
166 * term.c: (tty_cursor_hidden): New variable.
167 (update_begin): Don't call tty_hide_cursor. Clean up.
168 (update_end, set_terminal_window, set_scroll_region): Clean up.
169 (ring_bell, reset_terminal_modes): Clean up.
170 (tty_hide_cursor, tty_show_cursor): Hide/show cursor depending
171 on tty_cursor_hidden.
172 (write_glyphs): Call tty_hide_cursor.
173
174 2001-05-30 Stefan Monnier <monnier@cs.yale.edu>
175
176 * buffer.c (copy_overlays): Make ENABLE_CHECKING happy.
177
178 2001-05-30 Gerd Moellmann <gerd@gnu.org>
179
180 * xfns.c (enum image_value_type): New enumerator
181 IMAGE_STRING_OR_NIL_VALUE.
182 (parse_image_spec): Handle it.
183 (xbm_format, pbm_format): Use it for :foreground and :background.
184 (xbm_load, pbm_load): Check for nil color names.
185
186 * xterm.c (note_mouse_highlight): If an overlapping overlay
187 exists, but we find that we highlight the same overlay as before,
188 don't do the highlighting again.
189
190 2001-05-29 Gerd Moellmann <gerd@gnu.org>
191
192 * xmenu.c (single_submenu, xmenu_show) [!HAVE_MULTILINGUAL_MENU]:
193 Protect unibyte strings created by replacing their multibyte
194 equivalents in menu_items.
195
196 * keymap.c (Fsingle_key_description): NUL-terminate the string
197 buffer before calling build_string.
198
199 * callproc.c (Fcall_process): Deal with decode_coding returning
200 CODING_FINISH_INCONSISTENT_EOL.
201
202 2001-05-28 Gerd Moellmann <gerd@gnu.org>
203
204 * xmenu.c (xmenu_show) [!HAVE_MULTILINGUAL_MENU]: Don't overwrite
205 an item's name with its key description in case the description
206 is a multibyte string.
207
208 * keymap.c (Fsingle_key_description): Create a multibyte string
209 only if necessary.
210
211 * macros.c (Fstart_kbd_macro): Doc fix.
212
213 * xterm.c (cursor_in_mouse_face_p): New function.
214 (x_draw_stretch_glyph_string): Use it to choose a different GC
215 when drawing a cursor within highlighted text.
216
217 * editfns.c (char_property_eq): Put in #if 0.
218
219 * indent.c (string_display_width): Put in #if 0.
220
221 * lread.c (Fload): Remove unused label.
222
223 * termcap.c (speeds): Put in #if 0.
224
225 2001-05-18 Gerd Moellmann <gerd@gnu.org>
226
227 * eval.c (call_debugger): Don't bind inhibit-eval-during-redisplay.
228
229 * xfaces.c (xlfd_point_size): Don't divide pixel size from
230 transformation matrix by 10.
231
232 2001-05-16 Gerd Moellmann <gerd@gnu.org>
233
234 * xfns.c (x_set_foreground_color): Change frame's cursor_pixel
235 only if it's equal to the former foreground pixel color.
236 (x_set_foreground_color, x_set_background_color)
237 (x_set_mouse_color, x_set_cursor_color): Cleaned up.
238
239 2001-05-16 Dave Love <fx@gnu.org>
240
241 * insdel.c (signal_before_change, signal_after_change): Consider a
242 local change hook which changes the buffer.
243
244 * process.c (read_process_output): Don't call signal_after_change
245 and update_compositions after insert_from_string_before_markers.
246
247 2001-05-16 Gerd Moellmann <gerd@gnu.org>
248
249 * xfaces.c (split_font_name): Use the right field when
250 checking for `[...]' syntax.
251
252 * buffer.c (copy_overlays): New function.
253 (clone_per_buffer_values): Use it.
254
255 * buffer.h (OVERLAY_PLIST): New macro.
256
257 * keymap.c (Fsingle_key_description): Replace a build_string with
258 a make_multibyte_string. From Kenichi Handa <handa@etl.go.jp>.
259
260 * fontset.c (Ffontset_info): Check that face is non-null
261 before accessing its fields.
262
263 2001-05-15 Gerd Moellmann <gerd@gnu.org>
264
265 * keyboard.c (read_key_sequence): Prevent generating a fake
266 prefix key twice.
267
268 * xfaces.c (split_font_name): Handle `[...]' for the right
269 font name fields.
270
271 * ccl.c (ccl_driver): Don't copy remaining bytes in case
272 of CCL_STAT_INVALID_CMD.
273
274 2001-05-14 Stefan Monnier <monnier@cs.yale.edu>
275
276 * eval.c (Fdefvar): Only record (defvar <var>) in the load-history
277 in <var> has no default value yet.
278
279 * xfaces.c (try_alternative_families): First try the FAMILY.
280 And if nothing is found in the end, try again with scalable fonts.
281 (try_font_list): Let try_alternative_families do a bit more of
282 the work. Only use FAMILY if it is not nil.
283 (syms_of_xfaces) <scalable-fonts-allowed>: Fix docstring.
284
285 2001-05-14 Gerd Moellmann <gerd@gnu.org>
286
287 * xterm.c (note_mouse_highlight): Avoid changing the mouse
288 pointer shape when show_mouse_face has already done it.
289
290 * xterm.c (x_draw_glyphs): Fix computation of rightmost x for
291 full-width rows.
292
293 * xfaces.c (split_font_name): Make sure to leave the loop
294 with the right value of `i'.
295
296 * xfaces.c (split_font_name): Handle matrix transformations
297 in the pixel and point size fields of XLFD font names.
298 (xlfd_point_size): Likewise.
299
300 2001-05-12 Eli Zaretskii <eliz@is.elta.co.il>
301
302 * w32fns.c (w32_to_x_font): Change prototype to fit the declaration.
303 (x_to_w32_font): Add prototype.
304
305 * regex.c (malloc, realloc, free) [emacs]: Undefine before
306 redefining, to avoid compiler warnings.
307
308 * w32proc.c: Include syssignal.h, to avoid compiler warnings.
309
310 * w32bdf.c (search_file_line, set_bdf_font_info, seek_char)
311 (w32_get_bdf_glyph): Cast between unsigned char and char when
312 passing arguments to subroutines, to shut up compiler warnings.
313 (w32_get_bdf_glyph): Don't mix signed and unsigned when calling
314 GET_HEX_VAL.
315
316 * xfaces.c: Include keyboard.h before frame.h, not after it.
317
318 * widget.c: Include keyboard.h before frame.h.
319
320 * w32term.h (struct image, struct face): Forward declaration, to
321 avoid compiler warnings.
322
323 2001-05-11 Gerd Moellmann <gerd@gnu.org>
324
325 * keyboard.c (read_key_sequence): Don't modify events when
326 generating fake prefix keys (mode-line, scroll-bar, ...) since
327 this prevents proper processing of such events when pushed back
328 into unread-command-events.
329
330 * xterm.c (clear_mouse_face): Return 1 if text with mouse face was
331 actually redrawn. Make the function static.
332 (note_mouse_highlight): Fix a case where the mouse cursor
333 was changed back to the text cursor.
334
335 * xterm.h (clear_mouse_face): Remove prototype.
336
337 * xdisp.c (try_window_id): Fix the fix and set the right
338 window_end_vpos.
339
340 * xdisp.c (try_window_id): Fix computation of window end in the
341 case that lines were deleted at the end of the window. Add some
342 more debug_method_adds.
343
344 * xfaces.c (try_alternative_families): New function.
345 (try_font_list): Use it. If ATTRS specifies a family, check
346 fonts from that family first.
347 (choose_face_font): Remove code setting the family part of
348 the pattern to nil.
349
350 2001-05-10 Gerd Moellmann <gerd@gnu.org>
351
352 * xdisp.c (try_window_id): Fix case of all changes before
353 the window start.
354
355 * xdisp.c (try_window_id): Add some xasserts.
356
357 2001-05-09 Gerd Moellmann <gerd@gnu.org>
358
359 * lisp.h (GLYPH_CHAR_VALID_P): Use CHAR_VALID_P.
360
361 2001-05-09 Dave Love <fx@gnu.org>
362
363 * xdisp.c (GIVE_UP): Fix for K&R C.
364
365 2001-05-09 Gerd Moellmann <gerd@gnu.org>
366
367 * print.c (syms_of_print) <print-length, print-level>: Doc fix.
368
369 * xterm.c (note_mouse_highlight): Don't change the mouse cursor
370 back to the text cursor shape without need.
371
372 2001-05-07 Gerd Moellmann <gerd@gnu.org>
373
374 * xfns.c (x_set_foreground_color): Set frame's cursor_pixel.
375
376 * dispextern.h (inverse_video): Declare extern.
377
378 * keyboard.c (delete_kboard): Handle the case that selected_frame
379 has been deleted in the course of x_connection_closed.
380
381 2001-05-03 Eli Zaretskii <eliz@is.elta.co.il>
382
383 * xterm.c (XTread_socket) <Expose> [!USE_TOOLKIT_SCROLL_BARS]:
384 Fix the change from 2001-04-30.
385
386 2001-05-03 Gerd Moellmann <gerd@gnu.org>
387
388 * xfns.c (file_dialog_unmap_cb): New function.
389 (Fx_file_dialog): Use it as XmNunmapCallback to capture the case
390 where a dialog is closed via the window manager.
391
392 * xdisp.c (try_window_id): Cases of changes all in front of
393 the window start or all below the window end mostly rewritten.
394 (redisplay_window): Move the tests if try_window_id is
395 applicable to try_window_id.
396 (GIVE_UP): New macro.
397
398 2001-05-02 Gerd Moellmann <gerd@gnu.org>
399
400 * xterm.c (expose_window): Return int. If W is the window
401 currently being updated, mark the frame garbaged.
402 Fix computation of rows intersecting the exposed rectangle.
403 (expose_window_tree): Stop when expose_window returns 0.
404
405 * xterm.c (x_draw_stretch_glyph_string): Don't draw background
406 again if it has already been drawn.
407
408 2001-05-01 Stefan Monnier <monnier@cs.yale.edu>
409
410 * syntax.c (update_syntax_table): Check that oldi has the same
411 properties as old_prop before deciding not to invalidate.
412
413 2001-04-30 Gerd Moellmann <gerd@gnu.org>
414
415 * undo.c (Fprimitive_undo): In a writable buffer, enable undoing
416 read-only text that is so because of text properties.
417
418 * xterm.c (x_window_to_menu_bar) [USE_LUCID]: New function.
419 (XTread_socket) <Expose> [USE_LUCID]: Handle events for
420 windows that are components of a Lucid menu bar.
421
422 2001-04-27 Gerd Moellmann <gerd@gnu.org>
423
424 * term.c (turn_on_face): Fix reverse video handling on terminals
425 that don't support colors.
426
427 2001-04-26 Gerd Moellmann <gerd@gnu.org>
428
429 * editfns.c (save_excursion_restore): Don't use XBUFFER on
430 a non-buffer.
431
432 2001-04-25 Gerd Moellmann <gerd@gnu.org>
433
434 * term.c (toggle_highlight): New function.
435 (turn_on_face): Change handling of reverse video.
436
437 * process.c (wait_reading_process_input):
438 Call record_asynch_buffer_change only if a timer really changed buffers.
439
440 * buffer.c (mouse_face_overlay_overlaps): Fix the computation
441 of the number of overlays to check.
442
443 * keyboard.c (command_loop_1): Redo change of 2001-03-12.
444
445 * xdisp.c (try_window_id): Fix a case where window_end_pos
446 and window_end_bytepos were not adjusted.
447
448 2001-04-23 Gerd Moellmann <gerd@gnu.org>
449
450 * xfaces.c (compute_char_face): If buffer is unibyte, set CH to
451 zero instead of -1.
452
453 2001-04-21 Eli Zaretskii <eliz@is.elta.co.il>
454
455 * process.c (wait_reading_process_input) [!subprocesses]:
456 Don't reference waiting_for_user_input_p, it's not defined in the
457 branch without async subprocesses support.
458
459 2001-04-19 Gerd Moellmann <gerd@gnu.org>
460
461 * keyboard.c (delete_kboard): Prevent a dangling reference
462 from current_kboard to KB, which is freed.
463
464 * process.c (wait_reading_process_input):
465 Call record_asynch_buffer_change after running timers, to make
466 read_key_sequence aware of buffer changes from under it.
467
468 2001-04-18 Gerd Moellmann <gerd@gnu.org>
469
470 * xfaces.c (Qscalable_fonts_allowed): New variable.
471 (realizing_basic_faces_p): Removed.
472 (x_face_list_fonts): Special handling for realizing_basic_faces_p
473 removed.
474 (realize_basic_faces): Specbind Qscalable_fonts_allowed to t.
475 (syms_of_xfaces): Initialize Qscalable_fonts_allowed. Change default
476 for scalable-fonts-allowed to t.
477
478 * fileio.c (Finsert_file_contents): If the file size returned from
479 stat is zero, set END to READ_BUF_SIZE. This makes sure we can
480 read from files on a procfs whose contents are generated dynamically.
481
482 2001-04-18 Eli Zaretskii <eliz@is.elta.co.il>
483
484 * gmalloc.c (__malloc_size_t) [__GNUC__]: If STDC_HEADERS is not
485 defined, include stddef.h and use __SIZE_TYPE__ instead of size_t.
486 (__memalign_hook): Make the two prototypes consistent.
487
488 2001-04-17 Gerd Moellmann <gerd@gnu.org>
489
490 * xdisp.c (redisplay_window): Make sure to clear the desired glyph
491 matrix of mini-windows.
492
493 2001-04-12 Stefan Monnier <monnier@cs.yale.edu>
494
495 * intervals.c (find_interval): Don't rebalance during signal handling.
496
497 2001-04-11 Gerd Moellmann <gerd@gnu.org>
498
499 * fns.c: Include blockinput.h.
500
501 * fns.c (Fplist_get): Don't QUIT if interrupt_input_blocked.
502
503 2001-04-10 Gerd Moellmann <gerd@gnu.org>
504
505 * fns.c (Fcompare_strings): Fix return values.
506
507 * window.c (window_scroll): Change the meaning of N to mean
508 N screen-fulls or N lines.
509 (window_scroll_pixel_based, window_scroll_line_based)
510 (scroll_command, Fscroll_other_window): Change accordingly.
511
512 * window.c (window_scroll_pixel_based, Frecenter):
513 Call window_box_height instead of using it.last_visible_y for the
514 height of the window.
515
516 * xdisp.c (redisplay_window) <recenter>: Call window_box_height
517 instead of using it.last_visible_y for the height of the window.
518
519 * w32proc.c (sys_spawnve): Quote more chars for Cygwin.
520 From Dan Holmsand <dan@eyebee.com>.
521
522 * w32.c (sys_open): Try to open file without _O_CREAT first, to be
523 able to write to hidden and system files. From Dan Holmsand
524 <dan@eyebee.com>.
525
526 * fileio.c (Fcopy_file) [WINDOWSNT]: Use CopyFile. From Dan
527 Holmsand <dan@eyebee.com>.
528
529 2001-04-09 Gerd Moellmann <gerd@gnu.org>
530
531 * fns.c (Fplist_get, Fplist_put): Add QUITs.
532
533 * window.c (window_internal_height): Return 1 less if the
534 window has a header line.
535
536 * xdisp.c (try_window_id): When scrolling on a terminal, take
537 the change of window_internal_height into account.
538
539 2001-04-09 Eli Zaretskii <eliz@is.elta.co.il>
540
541 * gmalloc.c (align): If the argument SIZE would overflow
542 __malloc_ptrdiff_t, fail right away.
543
544 2001-04-06 Gerd Moellmann <gerd@gnu.org>
545
546 * xfns.c (compute_tip_xy): Add parameters WIDTH and HEIGHT.
547 Make sure the tooltip is completely visible.
548 (x_make_gc): Use FRAME_X_SCREEN_NUMBER.
549
550 * xterm.h (FRAME_X_SCREEN_NUMBER): New macro.
551
552 * xmenu.c (xmenu_show): Use FRAME_X_SCREEN_NUMBER.
553
554 2001-04-06 Dave Love <fx@gnu.org>
555
556 * composite.c (update_compositions) <check_mask & CHECK_HEAD>:
557 Fix test of `from'.
558
559 2001-04-06 Gerd Moellmann <gerd@gnu.org>
560
561 * composite.h (COMPOSITION_VALID_P): Allow integers as cdrs of PROP.
562
563 * xdisp.c (Qinhibit_eval_during_redisplay): Make it a Lisp_Object.
564
565 2001-04-05 Gerd Moellmann <gerd@gnu.org>
566
567 * sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
568
569 * editfns.c (Fcurrent_time_zone): Accept spaces in timezone names.
570
571 * xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
572 (syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
573
574 * xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
575 shell widget's position only if it is non-null.
576
577 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]:
578 Set f->output_data.x->widget to null after destroying it.
579
580 * fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
581 FILENAME to bring it in synch with the documentation.
582
583 * xfaces.c (realizing_basic_faces_p): Renamed from
584 realize_default_face_p.
585 (realize_basic_faces): Set/clear realizing_basic_faces_p.
586 (realize_default_face): Don't set the flag.
587
588 2001-04-04 Gerd Moellmann <gerd@gnu.org>
589
590 * lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
591
592 * keyboard.c (echoing, echo_message_buffer): Make externally visible.
593
594 * xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
595 the buffer that was used for echoing.
596
597 * xfaces.c (best_matching_font): Remove unused parameter PATTERN.
598 (first_font_matching): Removed unused function.
599 (x_face_list_fonts): Remove unused parameter SCALABLE_P.
600 (may_use_scalable_font_p): Remove parameter FONT; rename
601 parameter NAME to FONT.
602 (x_face_list_fonts): Fix missing bounds check.
603 (realizing_default_face_p): New variable.
604 (realize_default_face): Set and clear that flag.
605 (x_face_list_fonts): When called during the realization of the
606 default face, and no matching fonts are found when ignoring
607 scalable fonts and fonts matching a regexp from
608 face-ignored-fonts, try without ignoring fonts.
609
610 2001-04-03 Gerd Moellmann <gerd@gnu.org>
611
612 * xfns.c (postprocess_image): New function.
613 (lookup_image): Call it for all image types except PostScript.
614 (x_kill_gs_process): Call postprocess_image.
615
616 * xterm.c (x_use_underline_position_properties): New variable.
617 (x_draw_glyph_string): Use it.
618 (syms_of_xterm): DEFVAR_BOOL it.
619
620 2001-04-02 Gerd Moellmann <gerd@gnu.org>
621
622 * xterm.c (x_alloc_nearest_color_1): New function.
623 (x_alloc_nearest_color): Use it.
624 (x_color_cells): Take a Display as argument, instead of a frame.
625 (cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
626 (cvt_string_to_pixel, cvt_pixel_dtor): New functions.
627 (x_initialize): Register cvt_string_to_pixel as resource converter
628 string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
629
630 2001-03-30 Gerd Moellmann <gerd@gnu.org>
631
632 * xdisp.c (get_overlay_strings): Set iterator's end_charpos.
633 (set_iterator_to_next): If a string from a display property ends,
634 consider the case that this might also be the end of an
635 overlay string having the display property.
636
637 * xdisp.c (handle_display_prop): Fix recognition of subproperty lists.
638
639 * xdisp.c (reseat_to_string): Undo last change.
640
641 * dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
642 matrix of a window when the header line changes, when
643 new rows are allocated, or when the width changes.
644
645 2001-03-30 Eli Zaretskii <eliz@is.elta.co.il>
646
647 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last change.
648
649 2001-03-29 Eli Zaretskii <eliz@is.elta.co.il>
650
651 * fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
652 deprecated.
653
654 2001-03-29 Gerd Moellmann <gerd@gnu.org>
655
656 * data.c (Fsubr_interactive_form): New function.
657 (syms_of_data): Defsubr it.
658
659 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
660 (live_float_p, live_misc_p): Return 1 only if the offset of the
661 pointer in its block is >= 0.
662
663 2001-03-28 Paul Eggert <eggert@twinsun.com>
664
665 * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
666 microseconds calcuation. Avoid double-rounding problem.
667 In doc string, warn that the result is approximate.
668
669 2001-03-28 Gerd Moellmann <gerd@gnu.org>
670
671 * eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
672 bind `inhibit-eval-during-redisplay' to t.
673
674 * lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
675
676 * xdisp.c (inhibit_eval_during_redisplay)
677 (Qinhibit_eval_during_redisplay): New variables.
678 (safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
679 don't eval, return nil instead.
680 (syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
681 Initialize Qinhibit_eval_during_redisplay.
682
683 * xdisp.c (reseat_to_string): If STRING is multibyte, set
684 the iterator's multibyte_p flag.
685
686 * xfaces.c (realize_basic_faces): Decrement menu_face_change_count
687 instead of setting it to zero; it's incremented for each frame
688 where the menu face is changed.
689
690 * xterm.c (x_draw_relief_rect): Extend left shadow to the bottom;
691 change bottom shadow accordingly.
692
693 * xterm.c (expose_window_tree, expose_frame): Don't compute
694 intersections here.
695 (expose_window): Do it here instead.
696 (x_draw_glyph_string): Fix a computation of the underline position.
697
698 * bytecode.c (BYTE_CODE_QUIT): New macro.
699 (Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
700
701 2001-03-27 Gerd Moellmann <gerd@gnu.org>
702
703 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
704 Give up if matrix starts in an ellipsis.
705 (init_from_display_pos): Do nothing if POS doesn't specify
706 a dpvec_index but the iterator has such a position.
707
708 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
709
710 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
711 x/y position is (0, 0) after destroying the menu bar, restore
712 its original position.
713
714 * xdisp.c (in_ellipses_for_invisible_text_p): New function.
715 (init_from_display_pos): Use it.
716 (try_window_reusing_current_matrix): Don't use cursor_row_p.
717
718 2001-03-26 Gerd Moellmann <gerd@gnu.org>
719
720 * xdisp.c (try_window_id): Undo last change.
721
722 2001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
723
724 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
725
726 * buffer.c (syms_of_buffer): Doc fix.
727
728 2001-03-26 Gerd Moellmann <gerd@gnu.org>
729
730 * xfaces.c (x_update_menu_appearance): Use local variable
731 popup_path for setting font resources.
732
733 2001-03-25 Eli Zaretskii <eliz@is.elta.co.il>
734
735 * frame.c (Fframe_list): Don't reference tip_frame if
736 HAVE_WINDOW_SYSTEM is not defined.
737
738 * emacs.c (main): Update the copyright year. From Werner LEMBERG
739 <wl@gnu.org>.
740
741 2001-03-25 Gerd Moellmann <gerd@gnu.org>
742
743 * xdisp.c (init_from_display_pos): Test invisible property
744 with TEXT_PROP_MEANS_INVISIBLE instead of NILP.
745
746 * xdisp.c (redisplay_internal) <update one window>: Make sure
747 last_arrow_position and last_arrow_string are set.
748
749 * frame.c (Fframe_list): Don't return a tooltip frame.
750
751 2001-03-23 Gerd Moellmann <gerd@gnu.org>
752
753 * xdisp.c (mark_window_display_accurate_1): New function,
754 extracted from mark_window_display_accurate.
755 Compute BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED,
756 BUF_BEG_UNCHANGED, BUF_END_UNCHANGED.
757 (mark_window_display_accurate): Use it.
758 (redisplay_internal): Use it for the selected window.
759 (redisplay_internal): Avoid duplicate mark_window_display_accurate
760 for the selected frame.
761
762 * xdisp.c Use make_number, for readability.
763 (try_window_id): Disable rows below the window end.
764 (try_window_reusing_current_matrix): Use cursor_row_p.
765 (try_window_reusing_current_matrix) <scrolling up>: Fix disabling
766 of rows.
767 (init_from_display_pos): If POS specifies a position in a display
768 vector, maybe get the iterator set up for that ellipsis.
769
770 * xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
771
772 2001-03-23 Eli Zaretskii <eliz@is.elta.co.il>
773
774 * xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
775
776 2001-03-23 Gerd Moellmann <gerd@gnu.org>
777
778 * xfaces.c (x_update_menu_appearance): Use a different path
779 for Lucid popup menus.
780
781 2001-03-22 Stefan Monnier <monnier@cs.yale.edu>
782
783 * xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
784
785 * xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
786 (string_buffer_position): Use `make_number'.
787
788 2001-03-22 Gerd Moellmann <gerd@gnu.org>
789
790 * xfaces.c (x_update_menu_appearance): Renamed from
791 x_set_menu_face_resources. Use different resources for popups.
792
793 * lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
794 (GC_CHECK_STRING_BYTES): Don't define.
795
796 * xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
797 Removed, together with subroutines.
798 (x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
799 (realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
800
801 * dispextern.h (x_set_menu_resources_from_menu_face):
802 Remove prototype.
803
804 * xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
805 Remove calls to x_set_menu_resources_from_menu_face.
806
807 * xfaces.c (xm_set_menu_resources_from_menu_face):
808 Remove #ifndef LESSTIF_VERSION.
809
810 * xmenu.c: Include widget.h.
811 (single_submenu): Return int. Some cleanup.
812 (set_frame_menubar): Call x_set_menu_resources_from_menu_face.
813
814 2001-03-21 Gerd Moellmann <gerd@gnu.org>
815
816 * xterm.c (x_update_window_end): Handle overwritten mouse face
817 also for tool bar windows.
818 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
819 DRAW is DRAW_IMAGE_RAISED.
820
821 2001-03-20 Gerd Moellmann <gerd@gnu.org>
822
823 * print.c (syms_of_print): Doc fixes.
824
825 * fns.c (Fmd5): Doc fix.
826
827 2001-03-19 Gerd Moellmann <gerd@gnu.org>
828
829 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
830 Clear area of the frame not occupied by the scroll bar.
831
832 * xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
833 tip frame's root window buffer to *tip* right after creating
834 the frame.
835
836 * xdisp.c (highlight_trailing_whitespace): Glyphs whose object
837 is an integer don't have to be for space characters.
838
839 2001-03-16 Gerd Moellmann <gerd@gnu.org>
840
841 * indent.c (current_column, current_column_1, Fmove_to_column)
842 (compute_motion): Handle characters from display vectors differently.
843
844 2001-03-15 Kenichi Handa <handa@etl.go.jp>
845
846 * xterm.c (x_draw_glyph_string): Draw relief (if any) before
847 drawing glyph string.
848
849 2001-03-15 Gerd Moellmann <gerd@gnu.org>
850
851 * keyboard.c (timer_check): Preserve the value of deactivate-mark.
852 (command_loop_1): Undo last change.
853
854 * xterm.c (fast_find_position): Return the correct vpos.
855
856 * data.c (store_symval_forwarding): Add parameter BUF. If BUF is
857 non-null, set a per-buffer value in BUF instead of the current buffer.
858 (swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
859 Call store_symval_forwarding with BUF null.
860 (set_internal): Call store_symval_forwarding with the BUF
861 parameter passed to set_internal. Formerly, the value was always
862 set in the current buffer; the buffer recorded in specbind for
863 this case wasn't used.
864 (arith_driver): Reindent.
865
866 * buffer.c (swap_out_buffer_local_variables):
867 Call store_symval_forwarding with BUF null.
868
869 * lisp.h (store_symval_forwarding): Change prototype.
870
871 * eval.c (specbind): Call store_symval_forwarding with BUF null.
872
873 2001-03-14 Gerd Moellmann <gerd@gnu.org>
874
875 * frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
876 FOR_DELETION. Avoid resizing the mini-window of the selected
877 frame if FOR_DELETION is set.
878 (Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
879 (Fmake_frame_invisible): Change calls to do_switch_frame for new
880 signature.
881
882 * window.c (Fset_window_configuration): Change call to
883 do_switch_frame to new format.
884
885 * keyboard.c (quit_throw_to_read_char): Change call to
886 do_switch_frame to new format.
887
888 * lisp.h (do_switch_frame): Change prototype.
889
890 * frame.c (Fframe_parameters): In the `buffer-list' frame
891 parameter, store the buffer list of FRAME, not the list of the
892 selected frame.
893
894 * xterm.c (x_draw_glyph_string_box): Don't draw a full-width
895 box just because the glyph row's full_width_p flag is set.
896
897 2001-03-14 Eli Zaretskii <eliz@is.elta.co.il>
898
899 * xdisp.c (highlight_trailing_whitespace): On character terminals,
900 skip the padding blanks inserted in extend_face_to_end_of_line,
901 before checking for trailing whitespace.
902
903 2001-03-13 Gerd Moellmann <gerd@gnu.org>
904
905 * xmenu.c (popup_activate_callback, popup_deactivate_callback):
906 Remove special handling for LessTif/Motif.
907 (toplevel): Don't include Xm/Xm.h.
908
909 * xterm.c (XTread_socket) <LeaveNotify, EnterNotify>:
910 Remove workaround code for LessTif; it doesn't work anymore.
911
912 * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
913 Xm/ScrollBarP.h.
914
915 * xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]:
916 Don't access private scroll bar data; it's no longer necessary with
917 contemporary LessTif.
918
919 * xfaces.c (xm_set_menu_resources_from_menu_face):
920 Change #if 0 to #ifndef LESSTIF_VERSION.
921
922 * xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
923 removing button grabs.
924
925 2001-03-13 Kenichi Handa <handa@etl.go.jp>
926
927 * fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
928 and clip-large-size-font as obsolete.
929
930 * lread.c (read_multibyte): Check the validity of multibyte
931 sequence. If invalid, return the first byte.
932
933 2001-03-12 Gerd Moellmann <gerd@gnu.org>
934
935 * keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
936 before running the command; timer functions or process
937 filters may have set it.
938
939 2001-03-12 Eli Zaretskii <eliz@is.elta.co.il>
940
941 * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
942 Doc fix.
943
944 2001-03-12 Gerd Moellmann <gerd@gnu.org>
945
946 * xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
947 to sprintf.
948
949 2001-03-09 Gerd Moellmann <gerd@gnu.org>
950
951 * dispextern.h (string_buffer_position): Add prototype.
952
953 * xdisp.c (string_buffer_position, display_prop_string_p)
954 (single_display_prop_string_p): New functions.
955
956 * xterm.c (note_mouse_highlight): If there's no help-echo on
957 a string, look at the buffer text ``under'' it.
958
959 * keyboard.c (make_lispy_event): Add string info to the event,
960 analogous to what's done on mode lines.
961 (read_key_sequence): For a click on a string, consider `local-map'
962 and `keymap' of that string.
963
964 * keyboard.c (make_lispy_event, make_lispy_movement):
965 Adjust calls to buffer_posn_from_coords to new format.
966
967 * dispextern.h (buffer_posn_from_coords): Adjust prototype.
968
969 * dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
970 POS; return void.
971
972 * fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
973 flags argument to emacs_open; it seems to conflict with O_EXCL.
974
975 2001-03-09 Kenichi Handa <handa@etl.go.jp>
976
977 * composite.h (struct composition): Change types of members;
978 glyph_len to unsigned, width to unsigned short.
979
980 2001-03-08 Andrew Innes <andrewi@gnu.org>
981
982 * w32menu.c (add_menu_item): Fix problems with using ownerdraw for
983 menu titles.
984
985 2001-03-08 Gerd Moellmann <gerd@gnu.org>
986
987 * xdisp.c (handle_display_prop): Use it->w->buffer as object,
988 instead of nil.
989
990 * xterm.c (note_mouse_highlight): Handle mouse-face and
991 help-echo in strings.
992 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
993 (fast_find_string_pos): New function.
994
995 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
996 (display_string): Call face_at_string_position with new parameter.
997
998 * xfaces.c (face_at_string_position): Add parameter MOUSE_P.
999 Handle `mouse-face'.
1000
1001 * dispextern.h (face_at_string_position): Change prototype.
1002
1003 * dired.c (directory_files_internal): Handle EAGAIN more efficiently.
1004
1005 * keyboard.c (make_lispy_event): Avoid generating drag events
1006 if the mouse hasn't actually moved to another buffer position.
1007
1008 2001-03-08 Dave Love <fx@gnu.org>
1009
1010 * eval.c (syms_of_eval) <debug-on-error>: Doc fix.
1011
1012 2001-03-08 Gerd Moellmann <gerd@gnu.org>
1013
1014 * process.c (Fset_process_window_size): Fix a typo.
1015
1016 2001-03-08 Kenichi Handa <handa@etl.go.jp>
1017
1018 * coding.c (detect_coding_sjis): Do more rigid check.
1019 (detect_coding_big5): Likewise.
1020 (decode_coding_sjis_big5): Likewise.
1021 (Fdetect_coding_region): Call detect_coding_system with tailing
1022 anchor byte `\0' for more rigid detection.
1023 (detect_coding_mask): Fix the incorrect handling of arg MULTIBYTEP.
1024 (Fdetect_coding_string): Likewise.
1025
1026 2001-03-07 Stefan Monnier <monnier@cs.yale.edu>
1027
1028 * bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
1029 a string before extracting its data.
1030
1031 2001-03-07 Gerd Moellmann <gerd@gnu.org>
1032
1033 * window.c (Frecenter): Rewrite code handling negative values
1034 of ARG on graphical frames.
1035
1036 2001-03-07 Eli Zaretskii <a34785@is.elta.co.il>
1037
1038 * window.c (displayed_window_lines): If W->start is outside the
1039 accessible portion of the buffer, call start_display with BEGV or
1040 ZV instead of W->start.
1041
1042 2001-03-07 Gerd Moellmann <gerd@gnu.org>
1043
1044 * buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
1045
1046 * process.c (Fset_process_filter): Don't crash if the input
1047 file descriptor of PROCESS is closed.
1048 (Fset_process_window_size): Likewise.
1049
1050 2001-03-06 Kenichi Handa <handa@etl.go.jp>
1051
1052 * xterm.c (XTflash): Make the timeout of select shorter, and call
1053 select repeatedly until the desired time expires.
1054
1055 2001-03-06 Gerd Moellmann <gerd@gnu.org>
1056
1057 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
1058
1059 * xfns.c (Fx_create_frame): Clear Vwindow_list.
1060
1061 * lisp.h (Vwindow_list): Declare extern.
1062
1063 2001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
1064
1065 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
1066
1067 2001-03-06 Gerd Moellmann <gerd@gnu.org>
1068
1069 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
1070 to detect a case where we have to highlight a different region
1071 despite not having left the currently highlighted region.
1072 Set mouse_face_overlay in the x_display_info.
1073 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
1074
1075 * xterm.h (struct x_display_info): Add mouse_face_overlay.
1076
1077 * buffer.c (mouse_face_overlay_overlaps): New function.
1078
1079 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
1080 (Qmouse_face): Declare extern.
1081
1082 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
1083 if face_change_count is non-zero.
1084
1085 2001-03-06 Kenichi Handa <handa@etl.go.jp>
1086
1087 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
1088 that the source is unibyte.
1089
1090 2001-03-05 Dave Love <fx@gnu.org>
1091
1092 * xterm.c (XTmouse_position): Fix typo.
1093
1094 2001-03-05 Gerd Moellmann <gerd@gnu.org>
1095
1096 * minibuf.c (read_minibuf): Clean up the binding stack if
1097 called noninteractively.
1098
1099 2001-03-05 Kenichi Handa <handa@etl.go.jp>
1100
1101 * coding.c (syms_of_coding): Docstring modified.
1102
1103 2001-03-05 Kenichi Handa <handa@etl.go.jp>
1104
1105 * charset.c (char_to_string): If a single byte char has modifier
1106 bits that can't be reflected to the character code, ignore them
1107 instead of signaling an error.
1108
1109 2001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
1110
1111 * s/msdos.h: Update copyright notice.
1112
1113 * dosfns.h: Update copyright notice.
1114
1115 * dosfns.c: Update copyright notice.
1116
1117 * msdos.c: Update copyright notice.
1118
1119 2001-03-02 Gerd Moellmann <gerd@gnu.org>
1120
1121 * xterm.c (glyph_rect): New function.
1122 (XTmouse_position): Use it to raise the threshold for mouse
1123 movement event generation.
1124
1125 2001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
1126
1127 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
1128 specifies (reverse . t), reverse the initial screen colors.
1129 (IT_set_frame_parameters): If the property is foreground-color,
1130 but we are reversing the colors, set bg_set, not fg_set.
1131 Likewise for setting background-color and reversing: set fg_set.
1132 Set unspecified-fg and unspecified-bg correctly when (reverse . t) is
1133 in effect.
1134
1135 * xfaces.c (Finternal_set_lisp_face_attribute)
1136 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
1137 parameters alist.
1138
1139 2001-03-02 Gerd Moellmann <gerd@gnu.org>
1140
1141 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
1142 to a single slash in the middle of file names.
1143
1144 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
1145 Accept only alphanumeric time zone names.
1146
1147 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
1148 or width area.
1149 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
1150 a widget to zero height.
1151
1152 2001-03-01 Gerd Moellmann <gerd@gnu.org>
1153
1154 * window.c (Fwindow_end): Call move_it_past_eol only if
1155 ending up on a partially visible line.
1156
1157 2001-03-01 Dave Love <fx@gnu.org>
1158
1159 * ccl.c (Fccl_execute): Doc fix.
1160
1161 2001-03-01 Gerd Moellmann <gerd@gnu.org>
1162
1163 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
1164 of the tool bar before calling x_figure_window_size.
1165
1166 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
1167 NULL after destroying it, otherwise XTread_socket can access a
1168 destroyed widget when input is unblocked.
1169
1170 * xfns.c (x_set_foreground_color): Set the background of the cursor GC.
1171
1172 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
1173 same name as before, although there was a change in fontsets.
1174
1175 2001-02-28 Ken Raeburn <raeburn@gnu.org>
1176
1177 * lisp.h (Fframe_parameter): Declare.
1178
1179 * window.c (set_window_buffer): Field vscroll is an int, not a
1180 Lisp_Object.
1181
1182 2001-02-28 Gerd Moellmann <gerd@gnu.org>
1183
1184 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
1185 NULL instead.
1186
1187 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
1188 NULL instead.
1189
1190 * alloc.c (toplevel): Include process.h.
1191 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
1192 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
1193 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
1194 (allocate_vector, allocate_hash_table, allocate_window)
1195 (allocate_frame, allocate_process, allocate_other_vector):
1196 New functions.
1197 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
1198 (mark_maybe_pointer): New function.
1199 (mark_memory): Also mark Lisp data to which only pointers
1200 remain and not Lisp_Objects.
1201 (min_heap_address, max_heap_address): New variables.
1202 (mem_find): Return MEM_NIL if START is below min_heap_address or
1203 above max_heap_address.
1204 (mem_insert): Compute min_heap_address and max_heap_address.
1205
1206 * process.c (make_process): Use allocate_process.
1207
1208 * frame.c (make_frame): Use allocate_frame.
1209
1210 * window.c (make_window, make_dummy_parent): Use allocate_window.
1211 (Fcurrent_window_configuration): Use allocate_other_vector.
1212
1213 * lisp.h (allocate_vectorlike): Remove prototype.
1214 (allocate_vector, allocate_other_vector, allocate_frame)
1215 (allocate_window, allocate_process, allocate_hash_table):
1216 Add prototypes.
1217
1218 * fns.c (Fdelete, larger_vector): Use allocate_vector.
1219 (make_hash_table, copy_hash_table): Use allocate_hash_table.
1220
1221 2001-02-27 Kenichi Handa <handa@etl.go.jp>
1222
1223 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
1224 treat the produced bytes as a valid multibyte sequence.
1225
1226 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
1227 (ccl_driver) <CCL_WriteMultibyteChar2>:
1228 Use CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
1229 <ccl_finish>: Set ccl->eight_bit_control properly.
1230
1231 * ccl.h (struct ccl_program): New member eight_bit_control.
1232
1233 2001-02-26 Stefan Monnier <monnier@cs.yale.edu>
1234
1235 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
1236 accessible_keymaps_char_table.
1237 (accessible_keymaps_char_table): Obey `is_metized'.
1238 (where_is_internal, Fwhere_is_internal): Don't confuse int and
1239 Lisp_Object.
1240
1241 2001-02-26 Gerd Moellmann <gerd@gnu.org>
1242
1243 * dispnew.c: Check HAVE_TERM_H before including term.h.
1244
1245 2001-02-24 Andrew Innes <andrewi@gnu.org>
1246
1247 * makefile.w32-in: Update copyright notice.
1248
1249 2001-02-24 Stefan Monnier <monnier@cs.yale.edu>
1250
1251 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
1252
1253 2001-02-24 Kenichi Handa <handa@etl.go.jp>
1254
1255 * Makefile.in (lisp): Add international/utf-8.elc.
1256
1257 * fontset.c (Fnew_fontset): Fix handling of the case that an
1258 element of FONTLIST is a cons of family and registry.
1259
1260 2001-02-23 Jason Rumney <jasonr@gnu.org>
1261
1262 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
1263 to height unconditionally.
1264
1265 * w32term.c (x_set_glyph_string_background_width): Extend the
1266 background face to the end of the drawing area in the text area, only.
1267 (x_insert_glyphs): Call window_box_left to obtain the left
1268 x-coordinate of the area to shift.
1269
1270 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
1271 safe_run_hooks.
1272
1273 2001-02-22 Andrew Innes <andrewi@gnu.org>
1274
1275 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header files.
1276 ($(BLD)\dispnew.obj):
1277 ($(BLD)\editfns.obj):
1278 ($(BLD)\fileio.obj):
1279 ($(BLD)\filelock.obj):
1280 ($(BLD)\keyboard.obj):
1281 ($(BLD)\w32proc.obj):
1282 ($(BLD)\process.obj):
1283 ($(BLD)\sysdep.obj): Ditto.
1284
1285 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
1286 header files.
1287 ($(BLD)/dispnew.$(O)):
1288 ($(BLD)/editfns.$(O)):
1289 ($(BLD)/fileio.$(O)):
1290 ($(BLD)/filelock.$(O)):
1291 ($(BLD)/keyboard.$(O)):
1292 ($(BLD)/w32proc.$(O)):
1293 ($(BLD)/process.$(O)):
1294 ($(BLD)/sysdep.$(O)): Ditto.
1295
1296 2001-02-22 Gerd Moellmann <gerd@gnu.org>
1297
1298 * xdisp.c (forward_to_next_line_start): When taking the shortcut
1299 at the start of the function, check that the \n in it->c is
1300 from the iterator's current position.
1301
1302 * xdisp.c (handle_single_display_prop): Add parameter
1303 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
1304 properties which replace the display of text with something else.
1305 (handle_display_prop): Call handle_single_display_prop with
1306 additional argument saying if we already replaced text display
1307 with something else. Use AREF.
1308 (with_echo_area_buffer_unwind_data, display_menu_bar)
1309 (decode_mode_spec_coding): Use AREF and ASIZE.
1310
1311 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
1312 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
1313 * vmstime.h: Files removed.
1314
1315 * unexencap.c, unexfx2800.c: Files removed.
1316
1317 * dispnew.c (direct_output_for_insert): Give up if we are showing
1318 a message or just cleared the message because we might need to
1319 resize the echo area window or display an empty echo area.
1320
1321 2001-02-21 Gerd Moellmann <gerd@gnu.org>
1322
1323 * xdisp.c (redisplay_internal): Do the
1324 mark_window_display_accurate after all windows have been
1325 redisplayed because this call resets flags in buffers which are
1326 needed for proper redisplay.
1327
1328 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c:
1329 Use display_hourglass_p, start_hourglass, cancel_hourglass instead of
1330 the old names.
1331
1332 * w32term.h (struct x_output): Rename busy_cursor to hourglass_cursor,
1333 busy_window to hourglass_window, busy_p to hourglass_p.
1334
1335 * msdos.h (struct x_output): Rename busy_window to
1336 hourglass_window, busy_p to hourglass_p.
1337
1338 * xterm.h (struct x_output): Rename busy_cursor to hourglass_cursor,
1339 busy_window to hourglass_window, busy_p to hourglass_p.
1340
1341 * xfns.c: Rename everything containing *busy_cursor* and similar
1342 to *hourglass*.
1343 (syms_of_w32fns): Rename x-busy-pointer-shape to
1344 x-hourglass-pointer-shape, display-busy-cursor to
1345 display-hourglass, busy-cursor-delay to hourglass-delay.
1346
1347 * w32fns.c: Rename everything containing *busy_cursor* and similar
1348 to *hourglass*.
1349 (syms_of_w32fns): Rename x-busy-pointer-shape to
1350 x-hourglass-pointer-shape, display-busy-cursor to
1351 display-hourglass, busy-cursor-delay to hourglass-delay.
1352
1353 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
1354 of its busy_p flag.
1355
1356 * dispextern.h (start_hourglass, cancel_hourglass)
1357 (display_hourglass_p): Renamed from *busy_cursor*.
1358
1359 2001-02-20 Gerd Moellmann <gerd@gnu.org>
1360
1361 * keyboard.c (read_char): When an event from unread-command-events
1362 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
1363
1364 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
1365 equal to the current buffer.
1366
1367 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
1368 nil, otherwise we're left with truncate_lines t when a message
1369 is printed with message-truncate-lines bound to t.
1370
1371 2001-02-19 Gerd Moellmann <gerd@gnu.org>
1372
1373 * window.c (Fmove_to_window_line): Undo last change.
1374 (displayed_window_lines): Call line_bottom_y to determine
1375 the line's bottom position.
1376
1377 * dispextern.h (line_bottom_y): Add prototype.
1378
1379 * xdisp.c (line_bottom_y): New function extracted from pos_visible_p.
1380 (pos_visible_p): Use it.
1381
1382 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
1383 set redisplaying_p to 0 here instead of in Frecursive_edit.
1384 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
1385 set redisplaying_p.
1386
1387 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
1388 New variables.
1389 (syms_of_xdisp): Initialize new variables.
1390 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
1391 Specbind `inhibit-menubar-update' when updating the menu bar.
1392
1393 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
1394 safe_run_hooks.
1395
1396 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
1397 safe_run_hooks.
1398
1399 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
1400 is null.
1401
1402 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
1403 to the start of the file.
1404
1405 2001-02-16 Gerd Moellmann <gerd@gnu.org>
1406
1407 * window.c (set_window_buffer): Fix last change.
1408
1409 * window.c (set_window_buffer): Set window's vscroll to 0.
1410
1411 * window.c (coordinates_in_window): Increase width of area
1412 where the vertical line can be dragged.
1413
1414 * xterm.c (x_set_glyph_string_background_width): Extend the
1415 background face to the end of the drawing area in the text
1416 area, only.
1417
1418 * xdisp.c (handle_single_display_prop): Set iterator's position
1419 to where the `display' property starts, like for images.
1420 (dump_glyph): New function.
1421 (dump_glyph_row): Use it. Dump info about marginal areas.
1422
1423 * dispnew.c (direct_output_for_insert): Recognize more cases where
1424 glyphs can be written instead of being inserted.
1425
1426 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
1427 the left x-coordinate of the area to shift.
1428
1429 * dired.c (directory_files_internal): Set result list to nil
1430 before retrying.
1431
1432 2001-02-15 Kenichi Handa <handa@etl.go.jp>
1433
1434 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
1435 invalid multibyte sequence, treat *SRC as a character of
1436 eight-bit-graphic.
1437
1438 2001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
1439
1440 * textprop.c (Fset_text_properties): Doc fix.
1441
1442 2001-02-15 Gerd Moellmann <gerd@gnu.org>
1443
1444 * dispnew.c (update_text_area): Undo change of 2001-01-12.
1445
1446 2001-02-14 Dave Love <fx@gnu.org>
1447
1448 * coding.c: Doc and message fixes.
1449
1450 2001-02-14 Andrew Innes <andrewi@gnu.org>
1451
1452 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
1453 Emacs frame above the screen size.
1454
1455 2001-02-14 Gerd Moellmann <gerd@gnu.org>
1456
1457 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
1458
1459 2001-02-13 Gerd Moellmann <gerd@gnu.org>
1460
1461 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
1462 case that TO ends up beyond ZV after running before-change-functions.
1463
1464 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
1465 the selected window if it is showing the buffer in question.
1466
1467 * dired.c (directory_files_internal): Initialize errno.
1468 (toplevel): Include errno.h.
1469
1470 2001-02-13 Kenichi Handa <handa@etl.go.jp>
1471
1472 * xfaces.c (best_matching_font): New parameter width_ratio.
1473 Multiply avgwidth by width_ratio.
1474 (choose_face_font): Call best_matching_font with width_ratio
1475 calculated from the column width of C.
1476
1477 2001-02-12 Andrew Innes <andrewi@gnu.org>
1478
1479 The following changes are to draw box lines inside characters area
1480 if line-width is negative.
1481
1482 * w32term.c (x_produce_image_glyph): Pay attention to the case that
1483 face->box_line_width is negative.
1484 (x_produce_stretch_glyph): Likewise.
1485 (x_produce_glyphs): Likewise.
1486 (x_estimate_mode_line_height): Likewise.
1487 (x_draw_glyph_string_background): Likewise.
1488 (x_draw_glyph_string_foreground): Likewise.
1489 (x_draw_composite_glyph_string_foreground): Likewise.
1490 (x_draw_glyph_string_box): Likewise.
1491 (x_draw_image_foreground): Likewise.
1492 (x_draw_image_relief): Likewise.
1493 (x_draw_image_foreground_1): Likewise.
1494 (x_draw_image_glyph_string): Likewise.
1495
1496 2001-02-09 Kenichi Handa <handa@etl.go.jp>
1497
1498 The following changes are to draw box lines inside characters area
1499 if line-width is negative.
1500
1501 * xterm.c (x_produce_image_glyph): Pay attention to the case that
1502 face->box_line_width is negative.
1503 (x_produce_stretch_glyph): Likewise.
1504 (x_produce_glyphs): Likewise.
1505 (x_estimate_mode_line_height): Likewise.
1506 (x_draw_glyph_string_background): Likewise.
1507 (x_draw_glyph_string_foreground): Likewise.
1508 (x_draw_composite_glyph_string_foreground): Likewise.
1509 (x_draw_glyph_string_box): Likewise.
1510 (x_draw_image_foreground): Likewise.
1511 (x_draw_image_relief): Likewise.
1512 (x_draw_image_foreground_1): Likewise.
1513 (x_draw_image_glyph_string): Likewise.
1514
1515 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
1516 and :line-width can be negative.
1517 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be negative.
1518
1519 2001-02-09 Jason Rumney <jasonr@gnu.org>
1520
1521 * w32term.c (w32_encode_char): Treat eight bit graphic and control
1522 characters the same as ASCII and latin-1.
1523 (x_display_and_set_cursor): Check for the focus frame's selected
1524 window instead of selected_window.
1525 (x_after_update_window_line): Don't clear if frame's internal
1526 border width is zero.
1527 (x_new_font): Don't change a tooltip's size.
1528 (w32_initialize): Set char_ins_del_ok to 1.
1529
1530 * w32fns.c (Fx_show_tip): Fix calls to make_number.
1531 (x_set_font): If font hasn't changed, avoid recomputing
1532 faces and other things.
1533 (x_set_tool_bar_lines): Do nothing if frame is minibuffer-only,
1534 (Fx_create_frame): Add the tool bar height to the frame height.
1535 (x_create_tip_frame): Prevent changing the tooltip's
1536 background color by specifying a color for the default font
1537 in .Xdefaults.
1538 (Qcancel_timer): New variable.
1539 (syms_of_w32fns): Initialize and staticpro it.
1540 (Fx_hide_tip, Fx_show_tip): Use it.
1541 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
1542 the timer.
1543 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
1544
1545 * w32.c (init_environment): Duplicate local string before putenv.
1546
1547 2001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
1548
1549 * charset.c (Fstring): A typo.
1550
1551 2001-02-09 Kenichi Handa <handa@etl.go.jp>
1552
1553 * charset.c (Fstring): If all arguments are less than 256, return
1554 a unibyte string.
1555
1556 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
1557 return a unibyte string.
1558
1559 * coding.c (code_convert_region): After detecting a coding, if
1560 nothing found, set coding->composing to COMPOSITION_NO.
1561 (decode_coding_string): Likewise.
1562
1563 2001-02-08 Stefan Monnier <monnier@cs.yale.edu>
1564
1565 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
1566 to avoid overflow.
1567
1568 2001-02-07 Kenichi Handa <handa@etl.go.jp>
1569
1570 * charset.c (parse_str_to_multibyte): New function.
1571
1572 * charset.h (parse_str_to_multibyte): Extern it.
1573
1574 * print.c (print_string): If we are going to print a unibyte
1575 string into a multibyte buffer, convert the string to multibyte by
1576 str_to_multibyte.
1577
1578 2001-02-06 Andrew Innes <andrewi@gnu.org>
1579
1580 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
1581 been created. It seems we can get sent window messages such as
1582 WM_ERASEBKGND before we properly update a frame.
1583
1584 2001-02-06 Gerd Moellmann <gerd@gnu.org>
1585
1586 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
1587 Avoid some unnecessary cursor positioning.
1588
1589 2001-02-05 Gerd Moellmann <gerd@gnu.org>
1590
1591 * xfaces.c (split_font_name): Compute numeric value of XLFD_AVGWIDTH.
1592 (LFACE_AVGWIDTH): New macro.
1593 (LFACEP): Use AREF.
1594 (check_lface_attrs): Check LFACE_AVGWIDTH.
1595 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
1596 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
1597 (merge_face_vectors): Check LFACE_AVGWIDTH.
1598 (Finternal_make_lisp_face): Use AREF.
1599 (xm_set_menu_resources_from_menu_face)
1600 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
1601 (Finternal_lisp_face_empty_p): Use AREF.
1602 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
1603 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
1604 Compare average widths..
1605 (best_matching_font): Arrange for comparing average widths.
1606
1607 * dispextern.h (enum lface_attribute_index):
1608 Add LFACE_AVGWIDTH_INDEX (invisible from Lisp).
1609
1610 2001-02-05 Dave Love <fx@gnu.org>
1611
1612 * puresize.h: Revert last change following loadup.el change.
1613
1614 2001-02-05 Andrew Innes <andrewi@gnu.org>
1615
1616 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
1617 invocation of temacs, to work with Windows 2000.
1618 (bootstrap-emacs): Ditto.
1619
1620 2001-02-05 Gerd Moellmann <gerd@gnu.org>
1621
1622 * xterm.c (x_display_and_set_cursor): Check for the focus
1623 frame's selected window instead of selected_window.
1624
1625 * xdisp.c (try_scrolling): If point is in the line below the
1626 window, make sure to move the iterator at least a canonical
1627 char height down.
1628
1629 * window.c (Fmove_to_window_line): Don't add 1 if window is vscrolled.
1630
1631 2001-02-05 Kenichi Handa <handa@etl.go.jp>
1632
1633 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not.
1634 If invalid, execute CCL_INVALID_CMD.
1635 (ccl_driver): If the CCL program is terminated because of
1636 CCL_STAT_INVALID_CMD, copy the remaining source data to the
1637 destination instead of throwing them away.
1638
1639 2001-02-02 Gerd Moellmann <gerd@gnu.org>
1640
1641 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
1642 faces and other things.
1643
1644 * xdisp.c (get_next_display_element): Fix case of empty
1645 display table entry.
1646
1647 2001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
1648
1649 * editfns.c (Fconstrain_to_field): Doc fix.
1650
1651 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
1652 into `thoroughly', to make it consistent with the doc string.
1653
1654 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
1655
1656 2001-02-01 Gerd Moellmann <gerd@gnu.org>
1657
1658 * search.c (search_buffer): Call set_search_regs with a byte
1659 position, not a character position.
1660
1661 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
1662 minibuffer-only,
1663
1664 2001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
1665
1666 * frame.c (Fmodify_frame_parameters): Doc fix.
1667
1668 2001-01-31 Gerd Moellmann <gerd@gnu.org>
1669
1670 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
1671 identifier which is not reserved by Standard C.
1672
1673 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
1674
1675 * window.c (enum window_part): New enumeration.
1676 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
1677 Qright_bitmap_area.
1678 (coordinates_in_window): Return an enumerator from enum
1679 window_part. Fix handling of right scroll bar.
1680 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
1681 `right-fringe' instead of `left-bitmap-area' and
1682 `right-bitmap-area'. Use enumerators from enum window_part
1683 instead of hard-coded integers.
1684 (check_window_containing, window_from_coordinates):
1685 Use enumerators from enum window_part instead of hard-coded integers.
1686 (syms_of_window): Replace Qleft_bitmap_area and
1687 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
1688
1689 2001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
1690
1691 * editfns.c (Fformat_time_string): Doc fix.
1692
1693 2001-01-31 Stefan Monnier <monnier@cs.yale.edu>
1694
1695 * keymap.c (Fwhere_is_internal): Use the first valid binding
1696 if no ascii binding is found (when firstonly is t).
1697
1698 2001-01-31 Gerd Moellmann <gerd@gnu.org>
1699
1700 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
1701 instead of Finteractive_p.
1702
1703 * lisp.h (interactive_p): Add prototype.
1704
1705 * eval.c (interactive_p): New function.
1706 (Finteractive_p): Use it.
1707
1708 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
1709
1710 2001-01-31 Dave Love <fx@gnu.org>
1711
1712 * .gdbinit (hook-run): Define to run xreload.
1713
1714 * textprop.c (Fset_text_properties): Fix newline in doc string.
1715
1716 2001-01-30 Gerd Moellmann <gerd@gnu.org>
1717
1718 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp):
1719 Use DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
1720
1721 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
1722 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
1723 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
1724
1725 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
1726 height.
1727
1728 2001-01-30 Dave Love <fx@gnu.org>
1729
1730 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
1731 AFTER_POTENTIAL_GC.
1732
1733 2001-01-29 Gerd Moellmann <gerd@gnu.org>
1734
1735 * bytecode.c (Fbyte_code) <Bcurrent_column>:
1736 Add BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
1737
1738 2001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
1739
1740 * textprop.c (Fset_text_properties): Doc fix.
1741
1742 2001-01-29 Gerd Moellmann <gerd@gnu.org>
1743
1744 * xdisp.c (forward_to_next_line_start): Remove xassert.
1745
1746 2001-01-29 Jason Rumney <jasonr@gnu.org>
1747
1748 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
1749 returning without releasing it.
1750
1751 2001-01-29 Kenichi Handa <handa@etl.go.jp>
1752
1753 * w32fns.c (w32_font_match): Allocate three more bytes to regex
1754 for '^', '$', and '\0'.
1755
1756 2001-01-28 Andrew Choi <akochoi@i-cable.com>
1757
1758 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
1759 regex for '^', '$', and '\0'.
1760
1761 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
1762 only if current_sblock has been initialized.
1763
1764 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
1765 terminal frame even if it is the only visible frame.
1766
1767 2001-01-28 Kenichi Handa <handa@etl.go.jp>
1768
1769 * fontset.c (font_family_registry): Even if FONTNAME conform to
1770 XLFD, if it specifies other fields than family and registry,
1771 return FONTANME. New argument FORCE if nonzero cancel that feature.
1772 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
1773 a signle byte character. Don't set FAMILY part to nil here.
1774 It is handled by the caller choose_face_font.
1775 (Fnew_fontset): Call font_family_registry with FORCE 0.
1776 (Fset_fontset_font): Likewise.
1777
1778 2001-01-27 Gerd Moellmann <gerd@gnu.org>
1779
1780 * xdisp.c (display_line): Don't treat a newline as fitting
1781 on the line.
1782
1783 2001-01-26 Gerd Moellmann <gerd@gnu.org>
1784
1785 * window.c (size_window): Set the window's orig_top to nil when
1786 changing heights, so that a future shrink_mini_window won't
1787 restore a bogus height.
1788
1789 * frame.c (do_switch_frame): If selected frame has a mini-window,
1790 resize that to exact size.
1791
1792 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
1793
1794 * xdisp.c (display_line): Simplify check for glyphs fitting
1795 entirely in the line.
1796
1797 * xfns.c (xic_style): New variable.
1798 (create_frame_xic): Move static variable to global scope for
1799 the case that `static' gets defined away.
1800
1801 2001-01-26 Kenichi Handa <handa@etl.go.jp>
1802
1803 * coding.c (decode_coding): Set a flag for inhibiting
1804 inconsistent eol.
1805 (code_convert_region): Always set saved_coding_symbol.
1806 (decode_coding_string): Likewise. Update coding->symbol when we
1807 encounter a inconsistent eol by the same way as code_convert_region.
1808
1809 2001-01-25 Gerd Moellmann <gerd@gnu.org>
1810
1811 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
1812 XClearArea.
1813
1814 * xterm.c (x_after_update_window_line): Don't clear if frame's
1815 internal border width is zero.
1816 (x_clear_area): New function.
1817 (x_after_update_window_line, x_clear_end_of_line)
1818 (x_scroll_bar_create, x_scroll_bar_set_handle)
1819 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
1820 instead of XClearArea.
1821
1822 * xterm.h (x_clear_area): Add prototype.
1823
1824 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
1825 which doesn't seem necessary anymore with Lesstif 0.92.
1826
1827 2001-01-25 Dave Love <fx@gnu.org>
1828
1829 * puresize.h (BASE_PURESIZE): Up to 720000.
1830
1831 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
1832
1833 2001-01-25 Gerd Moellmann <gerd@gnu.org>
1834
1835 * xdisp.c (echo_area_display): Don't call redisplay_internal
1836 when Emacs is shutting down. We can't run hooks etc. that
1837 would be necessary to do a redisplay.
1838
1839 * lread.c (read_integer): Use type EMACS_INT instead of int.
1840
1841 2001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
1842
1843 * ccl.c (ccl_driver): Fix last change.
1844
1845 2001-01-25 Kenichi Handa <handa@etl.go.jp>
1846
1847 * ccl.h (sturct ccl_program): New member suppress_error.
1848
1849 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
1850 insert error message to the output.
1851 (setup_ccl_program): Initialize ccl->suppress_error to 0.
1852
1853 * coding.h (struct coding_system): New member suppress_error.
1854
1855 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
1856 (Fset_terminal_coding_system_internal): Set the member
1857 suppress_error to 1.
1858 (Fset_safe_terminal_coding_system_internal): Likewise.
1859
1860 2001-01-24 Stefan Monnier <monnier@cs.yale.edu>
1861
1862 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
1863 as if it was a `charset'.
1864
1865 2001-01-24 Gerd Moellmann <gerd@gnu.org>
1866
1867 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
1868 value in where_is_cache; the next lookup in the cache returns
1869 something bogus if we do.
1870
1871 2001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
1872
1873 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
1874 if HAVE_WINDOW_SYSTEM isn't defined.
1875
1876 2001-01-24 Gerd Moellmann <gerd@gnu.org>
1877
1878 * fns.c (sweep_weak_table): Fix code taking items out of
1879 the hash collision chain. Some cleanup.
1880
1881 * xterm.c (x_new_font): Don't change a tooltip's size.
1882
1883 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
1884 background color by specifying a color for the default font
1885 in .Xdefaults.
1886
1887 2001-01-24 Kenichi Handa <handa@etl.go.jp>
1888
1889 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
1890 a workaround for SunOS 4's cc.
1891 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
1892 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
1893 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
1894 statement.
1895
1896 2001-01-23 Gerd Moellmann <gerd@gnu.org>
1897
1898 * xterm.c (x_set_window_size_1): New function extracted from
1899 x_set_window_size.
1900 (x_set_window_size): Use it.
1901 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
1902 doesn't have a widget, like tooltips.
1903
1904 2001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
1905
1906 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
1907
1908 2001-01-23 Kenichi Handa <handa@etl.go.jp>
1909
1910 * fns.c (Fset_char_table_default): Fix to make sub char-table
1911 correctly.
1912
1913 2001-01-22 Gerd Moellmann <gerd@gnu.org>
1914
1915 * xdisp.c (build_desired_tool_bar_string): Make sure we have
1916 a desired tool bar string, even if there are no tool bar items.
1917
1918 * xdisp.c (Ftool_bar_lines_needed): New function.
1919 (syms_of_xdisp): Defsubr it.
1920
1921 * editfns.c (Fformat): Don't extend text properties from arguments
1922 to padding chars in the result.
1923
1924 2001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
1925
1926 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
1927
1928 2001-01-20 Andrew Innes <andrewi@gnu.org>
1929
1930 * w32term.c (w32_ring_bell): Only support visible bell on w32 frames.
1931 (w32_initialize): Don't set term hooks that aren't actually needed
1932 in windowed mode.
1933
1934 * xfaces.c (realize_default_face):
1935 (realize_face):
1936 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
1937
1938 * xdisp.c (handle_single_display_prop): Remove references to
1939 FRAME_W32_CONSOLE_P.
1940
1941 * dispnew.c (Fredraw_frame): Remove reference to FRAME_W32_CONSOLE_P.
1942
1943 * frame.h (output_method): Remove output_w32_console method.
1944 (FRAME_W32_CONSOLE_P): Remove macro.
1945
1946 * frame.c (Qw32_console): Remove variable.
1947 (Fframep): Remove references to it.
1948 (syms_of_frame): Ditto.
1949 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
1950
1951 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
1952 redefinition.
1953
1954 2001-01-20 Kenichi Handa <handa@etl.go.jp>
1955
1956 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
1957
1958 2001-01-19 Andrew Innes <andrewi@gnu.org>
1959
1960 * w32.c (init_environment): Add a version-independent site-lisp
1961 directory to EMACSLOADPATH, after the version dependent one.
1962
1963 2001-01-19 Gerd Moellmann <gerd@gnu.org>
1964
1965 * editfns.c (Fbuffer_substring): Doc fix.
1966
1967 * xdisp.c (message_dolog, message2, message2_nolog):
1968 Rename parameter LEN to NBYTES.
1969
1970 2001-01-19 Kenichi Handa <handa@etl.go.jp>
1971
1972 * charset.c (strwidth): Use c_string_width.
1973 (c_string_width): New function.
1974 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
1975 Caller changed.
1976
1977 * charset.h (c_string_width, lisp_string_width): Extern them.
1978
1979 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
1980
1981 * indent.c (check_composition): Check validity of composition.
1982
1983 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
1984 characters by calling c_string_width.
1985 (x_consider_frame_title): Get byte length of frame tile string
1986 correctly.
1987 (display_mode_element): Pay attention to width of non-ASCII
1988 characters by calling strwidth.
1989
1990 2001-01-18 Gerd Moellmann <gerd@gnu.org>
1991
1992 * xfns.c (Qcancel_timer): New variable.
1993 (syms_of_xfns): Initialize and staticpro it.
1994 (Fx_hide_tip, Fx_show_tip): Use it.
1995 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
1996 the timer.
1997 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
1998
1999 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
2000
2001 * window.h (WINDOW_LIVE_P): New macro.
2002
2003 * window.c (window_size_fixed): New variable.
2004 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
2005 the doc string.
2006
2007 * eval.c (specbind): If binding a per-buffer variable which
2008 doesn't have a buffer-local value in the current buffer, change
2009 the global value by changing the value of the symbol bound in all
2010 buffers not having their own value, to make it consistent with
2011 what happens with other buffer-local variables.
2012
2013 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
2014
2015 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
2016 when searching for a newline.
2017
2018 2001-01-18 Kenichi Handa <handa@etl.go.jp>
2019
2020 * xdisp.c (display_string): Fix previous change.
2021
2022 2001-01-18 Jason Rumney <jasonr@gnu.org>
2023
2024 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
2025 GLYPH_DEBUG is defined.
2026 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
2027 true for images with `:ascent 100'.
2028 (x_set_mouse_face_gc): If the last used mouse face has gone in the
2029 meantime, use face MOUSE_FACE_ID.
2030 If first glyph isn't a character glyph, use the ASCII NUL
2031 character to determine the face.
2032 (expose_area): Do not treat left margin specially.
2033 (note_mode_line_highlight): If no local_map, check global keymap.
2034 (note_mouse_highlight): Initialize overlay.
2035 (clear_mouse_face): Don't return if tip_frame is non-nil.
2036 (show_scroll_bars): Remove unused function.
2037 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
2038 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
2039 Clip to row.
2040 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be nil.
2041 (x_free_frame_resources): Unload relief colors.
2042
2043 2001-01-17 Gerd Moellmann <gerd@gnu.org>
2044
2045 * xdisp.c (forward_to_next_line_start): Avoid calling
2046 get_next_display_element when the newline is already found.
2047 This may change the iterator's position, when its current position is
2048 equal to the iterator's stop_charpos.
2049
2050 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
2051 zero, use this method only at the end of a line.
2052
2053 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
2054 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
2055 if SCALABLE_FONTS_P is set.
2056
2057 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
2058 so that scalable fonts are included.
2059
2060 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
2061 In the cache, use a key containing the information if scalable
2062 fonts are included.
2063 (x_load_font): Adapt to change of keys in the font cache.
2064
2065 2001-01-17 Kim F. Storm <storm@filanet.dk>
2066
2067 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
2068 XListFonts to take advantage of font caching.
2069
2070 * xterm.c (x_list_fonts): Ensure caching font information when
2071 called for a null frame, which is the case frequently when Emacs
2072 starts.
2073
2074 2001-01-17 Gerd Moellmann <gerd@gnu.org>
2075
2076 * xfns.c (QCconversion): Replaces QCalgorithm.
2077
2078 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
2079
2080 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
2081 of :algorithm.
2082
2083 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
2084 not everything could be displayed.
2085
2086 * line.h, x-list-font.c: Files removed because unused.
2087
2088 2001-01-17 Andrew Innes <andrewi@gnu.org>
2089
2090 * dired.c (directory_files_internal): Convert result from readdir
2091 to a unibyte string initially, to avoid possible misinterpretation
2092 of some bytes as the internal form of Emacs characters.
2093
2094 2001-01-17 Kenichi Handa <handa@etl.go.jp>
2095
2096 * fns.c (concat): Be sure to avoid putting the same `composition'
2097 property on the adjacent regions.
2098
2099 2001-01-16 Gerd Moellmann <gerd@gnu.org>
2100
2101 * window.c (Fset_window_hscroll): Don't set window's min_hscroll here.
2102 (Fscroll_right, Fscroll_left): Set it here instead, if called
2103 interactively.
2104
2105 * buffer.c (Fset_buffer_modified_p): Set buffer's
2106 prevent_redisplay_optimizations_p flag.
2107
2108 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
2109 * sysdep.c, vmsproc.c, xselect.c: Call redisplay_preserve_echo_area
2110 with additional arg.
2111
2112 * dispextern.h, lisp.h (redisplay_preserve_echo_area):
2113 Change prototype.
2114
2115 * xdisp.c (redisplay_preserve_echo_area): Add parameter
2116 FROM_WHERE, for debugging.
2117
2118 2001-01-16 Kenichi Handa <handa@etl.go.jp>
2119
2120 * ccl.c (Fregister_ccl_program): Handle the return value of
2121 resolve_symbol_ccl_program correctly.
2122 (CCL_Extension): Fix typo (originally CCL_Extention). Caller changed.
2123
2124 2001-01-15 Gerd Moellmann <gerd@gnu.org>
2125
2126 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
2127 has gone in the meantime, use face MOUSE_FACE_ID.
2128
2129 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]:
2130 If x_display_info_for_display returns null, don't try to close
2131 the display; we didn't open it.
2132
2133 * dispnew.c (save_or_restore_current_matrices): Function removed.
2134 (save_current_matrix, restore_current_matrix): New functions.
2135 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
2136 restore the frame's current matrix. Due to the glyph pointer
2137 setup done in adjust_glyph_matrix, there is no easy way to make
2138 saving the current matrix in the desired matrix generally correct,
2139 so don't try it.
2140
2141 2001-01-15 Kenichi Handa <handa@etl.go.jp>
2142
2143 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
2144 truncation glyphs.
2145 (display_line): Optimize for wide characters.
2146 (display_string): Don't try to display a multi-column character
2147 partially. On ttys, produce more than one truncation glyph for
2148 multi-column characters that don't fit on the line.
2149
2150 2001-01-13 Kenichi Handa <handa@etl.go.jp>
2151
2152 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]:
2153 Define it instead of WORDS_BIGENDIAN. Caller changed.
2154
2155 2001-01-13 Jason Rumney <jasonr@gnu.org>
2156
2157 * w32fns.c (Fimage_size, image_ascent, lookup_image)
2158 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
2159 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
2160 (tiff_format, gif_format, gs_format): Adapt to change of image margins.
2161
2162 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
2163 (x_draw_image_relief, x_draw_image_foreground_1)
2164 (x_draw_image_glyph_string): Adapt to change of image margins.
2165
2166 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
2167 variables.
2168
2169 * w32bdf.c (search_file_line, get_cached_font_char)
2170 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
2171
2172 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
2173
2174 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
2175 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
2176 (Fw32_send_sys_command): Remove unused variables.
2177 (w32_msg_pump): Add parentheses.
2178
2179 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
2180 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
2181 Add parentheses.
2182
2183 2001-01-12 Gerd Moellmann <gerd@gnu.org>
2184
2185 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
2186 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
2187 being a pair of margins.
2188 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
2189 to DEFVAR_LISP. Extend doc.
2190
2191 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
2192 margins.
2193 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
2194 pair of integers `(X . Y)', use X for the horizontal and Y for the
2195 vertical margin.
2196 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
2197 (parse_image_spec): Check it.
2198 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
2199 (tiff_format, gif_format, gs_format):
2200 Use IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
2201
2202 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
2203 (x_draw_image_relief, x_draw_image_foreground_1)
2204 (x_draw_image_glyph_string): Adapt to the change of image margins.
2205
2206 * dispextern.h (struct image): Replace member `margin' with
2207 `hmargin' and `vmargin'.
2208
2209 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
2210 and GLYPHS.
2211
2212 * dispnew.c (update_text_area): Put code which decrements the
2213 stop position when the row's face extends to the end of the
2214 line in #if 0.
2215
2216 * xfns.c (x_set_mouse_color): Fix color allocation.
2217
2218 * keyboard.c: Call get_local_map with new argument list.
2219
2220 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
2221
2222 * intervals.h (enum map_property): Removed.
2223 (get_local_map): Change prototype.
2224
2225 * keymap.c: Call get_local_map with new argument list.
2226 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
2227
2228 2001-01-11 Gerd Moellmann <gerd@gnu.org>
2229
2230 * xdisp.c (build_desired_tool_bar_string): Correct the computation
2231 of the size needed for the tool bar string. For the last image,
2232 use a `display' property that reaches to the end of the string.
2233
2234 * xselect.c (selection_request_dpyinfo): New variable.
2235 (x_handle_selection_request): Set it.
2236 (x_selection_request_lisp_error): Don't call
2237 x_decline_selection_request if selection request's display has
2238 been closed.
2239
2240 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]:
2241 Do the unregister_colors before calling XFreeColors.
2242
2243 2001-01-10 Dave Love <fx@gnu.org>
2244
2245 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
2246 ${SOME_MACHINE_LISP}, not ${lisp}.
2247
2248 2001-01-10 Gerd Moellmann <gerd@gnu.org>
2249
2250 * xdisp.c (display_line): On ttys, produce more than one truncation
2251 glyph for multi-column characters that don't fit on the line.
2252
2253 * xselect.c (x_reply_selection_request): Add a comment.
2254
2255 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
2256 XkbGetNames instead of XkbGetKeyboard.
2257
2258 2001-01-10 Dave Love <fx@gnu.org>
2259
2260 * sysdep.c (random): Revert the declaration.
2261
2262 2001-01-09 Gerd Moellmann <gerd@gnu.org>
2263
2264 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]:
2265 Call function string_bytes.
2266 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
2267
2268 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
2269 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
2270 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
2271 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
2272 the current sblock.
2273 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
2274 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
2275 after sweeping strings, and at the end.
2276 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
2277
2278 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
2279 ensure that pop_message is called.
2280
2281 * keyboard.c (Fexecute_extended_command): Use a
2282 record_unwind_protect to ensure that pop_message is called.
2283
2284 * lisp.h (push_message_unwind): Add prototype.
2285
2286 * xdisp.c (push_message_unwind): New function.
2287
2288 * fileio.c (do_auto_save_unwind): Do the pop_message here
2289 instead of in Fdo_auto_save.
2290 (Fdo_auto_save): Don't call pop_message.
2291
2292 2001-01-08 Ken Raeburn <raeburn@gnu.org>
2293
2294 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
2295 in inner block.
2296
2297 2001-01-08 Gerd Moellmann <gerd@gnu.org>
2298
2299 * window.c (window_scroll_pixel_based): Adjust glyph matrices
2300 when increasing window's vscroll.
2301
2302 * macros.c (Qkbd_macro_termination_hook): New variable.
2303 (syms_of_macros): Initialize and staticpro it.
2304 (pop_kbd_macro): Run kbd-macro-termination-hook.
2305
2306 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
2307
2308 2001-01-07 Dave Love <fx@gnu.org>
2309
2310 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
2311 arglist, for documentation's sake.
2312
2313 2001-01-06 Andrew Innes <andrewi@gnu.org>
2314
2315 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
2316 of *.pdb.
2317
2318 2001-01-05 Andrew Innes <andrewi@gnu.org>
2319
2320 * term.c (update_end): Don't check updating_frame; for some reason
2321 this can be 0 sometimes, such as after dismissing a popup menu,
2322 and isn't necessary given the explicit frame argument.
2323
2324 2001-01-05 Gerd Moellmann <gerd@gnu.org>
2325
2326 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
2327 on some systems, and an unsigned long on others, like FreeBSD 4.1.
2328
2329 2001-01-04 Gerd Moellmann <gerd@gnu.org>
2330
2331 * xterm.c (clear_mouse_face): Don't return if tip_frame is non-nil.
2332
2333 * xfns.c (x_create_tip_frame): Preserve the value of
2334 face_change_count around the creation of the tip frame.
2335
2336 * xfns.c (last_show_tip_args): New variable.
2337 (compute_tip_xy): New function.
2338 (Fx_show_tip): Reuse an existing tip frame, if possible.
2339 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
2340
2341 2001-01-04 Dave Love <fx@gnu.org>
2342
2343 * editfns.c (Fformat): Doc fix.
2344
2345 * systime.h (set_file_times): Prototype.
2346
2347 * widget.h (EmacsFrameSetCharSize_): Prototype.
2348
2349 * sysdep.c (random, srandom): Declare explicitly.
2350
2351 * dispextern.h (move_it_vertically_backward): Declare.
2352
2353 2001-01-04 Gerd Moellmann <gerd@gnu.org>
2354
2355 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
2356 like in Fx_create_frame.
2357
2358 * xfaces.c (set_font_frame_param): Don't do anything for
2359 non-graphical frames.
2360
2361 * window.c (Fdelete_other_windows): Set window's window_end_valid
2362 to nil when changing the window's start. Don't change the
2363 window's start when its top position hasn't changed. If we do,
2364 this will set the window's optional_new_start, which act's like a
2365 force_start during redisplay with C-x 1 M-> under particular
2366 circumstances (see report from Per Starback to emacs-pretest-bug
2367 from 2000-12-13.).
2368
2369 2001-01-03 Gerd Moellmann <gerd@gnu.org>
2370
2371 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
2372 short cut at the start of the function. Add an assertion.
2373 (reseat_at_next_visible_line_start): Add an assertion.
2374
2375 * window.c (Frecenter): When changing the window start, set the
2376 window's window_end_valid to nil.
2377 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
2378
2379 * dispextern.h (move_it_past_eol): Add prototype.
2380
2381 * xdisp.c (move_it_past_eol): New function.
2382
2383 * window.c (Fwindow_end): Doc fix.
2384
2385 2001-01-03 Dave Love <fx@gnu.org>
2386
2387 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3 kluge.
2388
2389 2001-01-03 Gerd Moellmann <gerd@gnu.org>
2390
2391 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
2392 the enabled_p flag of the glyph row at window_end_vpos to 0.
2393 (handle_single_display_prop): Fix last change.
2394
2395 2001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2396
2397 * window.c (Frecenter): Doc fix.
2398
2399 2001-01-02 Andrew Innes <andrewi@gnu.org>
2400
2401 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
2402
2403 * frame.h (output_method): Add output_w32_console method.
2404 (FRAME_W32_CONSOLE_P): New macro.
2405
2406 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
2407 use output_w32_console method.
2408 (Qw32_console): New Lisp_Object.
2409 (Fframep): Return it.
2410 (syms_of_frame): Init it.
2411 (Fframe_parameters): Report w32console as font for w32_console frames.
2412
2413 * xfaces.c (realize_default_face): Set face foreground and
2414 background to unspecified for w32_console frames.
2415 (realize_face): Realize face cache for w32_console frames.
2416 (realize_tty_face): Accept w32_console frames.
2417
2418 * xdisp.c (handle_single_display_prop): Return if frame is w32_console.
2419 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
2420 necessary, even if running interactively.
2421
2422 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
2423 w32_console frames.
2424
2425 * w32term.c (x_update_begin):
2426 (x_update_end):
2427 (x_clear_frame):
2428 (x_ins_del_lines):
2429 (x_change_line_highlight):
2430 (x_delete_glyphs):
2431 (w32_ring_bell):
2432 (x_update_begin):
2433 (x_update_end):
2434 (w32_reassert_line_highlight):
2435 (w32_frame_rehighlight):
2436 (w32_frame_raise_lower): Do nothing if not w32 frame.
2437
2438 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
2439
2440 * w32fns.c (Fx_display_color_cells): Determine correct value, when
2441 system doesn't tell us directly.
2442 (Fx_display_visual_class): Implement properly.
2443
2444 2001-01-02 Gerd Moellmann <gerd@gnu.org>
2445
2446 * window.c (Frecenter): Handle centering in graphical frames
2447 specially. Centering on the basis of line counts doesn't work
2448 reliably with variable-height lines.
2449
2450 2001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
2451
2452 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
2453 and al[].
2454
2455 * composite.c (run_composition_function): Remove unused var `val'.
2456 (update_compositions): Remove unused variable `hook'.
2457
2458 * intervals.c (get_local_map): Remove unused variable `tem'.
2459
2460 * doprnt.c (doprnt1): Remove unused variable `size'.
2461
2462 * fns.c (Flength): Remove unused variable `tail'.
2463 (Fdelete): Remove unused variable `size'.
2464
2465 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
2466 and `gcpro2'.
2467
2468 * doc.c (Fsnarf_documentation): Remove unused vars `fun' and `tem'.
2469
2470 * data.c (find_symbol_value): Remove extra 3rd argument in the
2471 call to swap_in_symval_forwarding.
2472
2473 * undo.c (Fprimitive_undo): Remove unused block-scope variable `end'.
2474
2475 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
2476 (trivial_regexp_p): Remove unused variable `c'.
2477 (boyer_moore): Remove unused variable `k'.
2478
2479 * indent.c (current_column): Remove unused variable `stopchar'.
2480 (Fcompute_motion): Remove unused variable `contin'.
2481
2482 * casefiddle.c (casify_object): Remove unused variable `tolen'.
2483
2484 * dired.c (directory_files_internal): Fix a typo in a comment.
2485 Remove an unused variable `handler'.
2486 (file_name_completion): Remove unused function-scope variable `dp'.
2487 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
2488 on BSD4_2.
2489
2490 * fileio.c (e_write): Remove unused variable `require_encoding_p'.
2491
2492 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
2493 and `buf'.
2494 (Fmarker_insertion_type): Remove unused variable `buf'.
2495
2496 * insdel.c (make_gap): Remove unused variable `result'.
2497
2498 * keyboard.c (record_char): Remove unused function-scope var `help'.
2499 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
2500 (menu_bar_items): Remove unused function-scope variable `tem'.
2501
2502 * fontset.c (fontset_ref): Remove unused variable `i'.
2503 (fontset_set): Remove unused variables `j' and `tmp'.
2504 (make_fontset): Remove unused variables `i', `j', `elt' and `base_elt'.
2505 (make_fontset_for_ascii_face): Remove unused variable `name'.
2506 (fs_load_font): Remove unused variable `font_idx'.
2507 (fs_query_fontset): Remove unused function-local variable `fontset'.
2508 (list_fontsets): Remove unused variable `tail'.
2509 (Fnew_fontset): Remove unused variables `family' and `registry'.
2510 (accumulate_font_info): Remove unused variable `tmp'.
2511 (Ffontset_font): Remove unused variable `id'.
2512 (syms_of_fontset): Remove unused variable `i'.
2513
2514 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
2515 to x_term_init.
2516 (lookup_image): Remove unused variable `file'.
2517 (xbm_load): Remove unused variables `bitmap_data', `height', and
2518 `width'. Remove function-local variable `i', leave the
2519 block-local one.
2520 (gif_load): Remove unused variable `inc'.
2521
2522 * xterm.c (XTread_socket): Remove unused variables `p' and `pend'.
2523 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
2524 leave only the one in the inner block.
2525
2526 * xfaces.c (face_fontset, realize_default_face): Remove unused
2527 variable `fontset'.
2528 (face_at_buffer_position): Remove unused variable `multibyte_p'.
2529
2530 * term.c (encode_terminal_code): Remove unused variable `c'.
2531
2532 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
2533 char *' instead of `char *'.
2534
2535 * category.c (Fcategory_docstring): Remove unused variable `doc'.
2536 (Fget_unused_category): Remove unused variable `docstring_vector'.
2537 (Fchar_category_set): Remove unused variables `val', `charset',
2538 `c1' and `c2'.
2539
2540 * coding.c (detect_coding_iso2022, setup_coding_system):
2541 Remove unused variable `i'.
2542 (detect_coding_mask): Remove unused variable `idx'.
2543 (detect_coding): Remove unused variable `i'.
2544 (ccl_coding_driver): Remove unused variable `result'.
2545 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
2546 (decode_coding_string): Remove unused variables `to' and `gcpro1'.
2547 (encode_coding_string): Remove unused variables `gcpro1' and
2548 `saved_coding_symbol'.
2549 (Ffind_coding_systems_region_internal): Remove function-local
2550 variable args[], leave only the block-local one.
2551 (code_convert_region1): Remove unused variable `len'.
2552
2553 * charset.c (char_printable_p): Remove unused variable `chars'.
2554 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
2555 (str_to_multibyte): Remove unused variable `c'.
2556
2557 * window.c (size_window): Remove block-local variable `min_size'.
2558
2559 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
2560 `header_line_height'.
2561 (append_space, extend_face_to_end_of_line): Declare `saved_what'
2562 enum display_element_type.
2563
2564 2001-01-02 Gerd Moellmann <gerd@gnu.org>
2565
2566 * xterm.c (x_connection_closed): Catch X errors around all
2567 statements that call X. Save away the error message in a local copy.
2568
2569 * xterm.c (x_connection_closed): Set handling_signal to 0 at
2570 the start.
2571
2572 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
2573 in or at the start of invisible text.
2574
2575 * dispnew.c (update_window): Don't check_current_matrix_flags.
2576
2577 2001-01-01 Jason Rumney <jasonr@gnu.org>
2578
2579 * w32fns.c (x_figure_window_size): Do not allow new_height and
2580 new_width of frame to override specified values.
2581
2582 2000-12-30 Kenichi Handa <handa@etl.go.jp>
2583
2584 * composite.c (find_composition): Fix a code for searching backward.
2585
2586 2000-12-29 Gerd Moellmann <gerd@gnu.org>
2587
2588 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New function.
2589 (update_window) [GLYPH_DEBUG]: Call it.
2590 (scrolling_window): Prevent including current rows which are below
2591 what's displayed in the window.
2592
2593 * xdisp.c (try_window_reusing_current_matrix)
2594 <new start <= old start>: Disable rows in the current matrix
2595 which are below the window after scrolling.
2596
2597 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
2598 is zero. It's not worth the complexity.
2599 (invisible_text_between_p): Put in #if 0 because unused.
2600
2601 2000-12-28 Gerd Moellmann <gerd@gnu.org>
2602
2603 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
2604 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
2605
2606 * keyboard.c (echo_char): If C is an integer, always call
2607 push_key_description. Former code could signal an invalid
2608 character error.
2609
2610 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
2611 If set, print multibyte text.
2612 (Fsingle_key_description): Call push_key_description with
2613 FORCE_MULTIBYTE set.
2614 (describe_buffer_bindings): Likewise.
2615
2616 * lisp.h (push_key_description): Add prototype.
2617
2618 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
2619 around the call to redisplay_internal.
2620
2621 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
2622
2623 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
2624
2625 2000-12-28 Kenichi Handa <handa@etl.go.jp>
2626
2627 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
2628 (ccl_driver): New local variable `extra_bytes'.
2629
2630 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
2631
2632 * coding.c (setup_coding_system):
2633 Initialize coding->spec.ccl.eight_bit_carryover.
2634 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
2635
2636 2000-12-28 Kenichi Handa <handa@etl.go.jp>
2637
2638 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
2639 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
2640 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
2641 (decode_composition_emacs_mule): New function.
2642 (decode_coding_emacs_mule): Decode composition sequence by calling
2643 decode_composition_emacs_mule.
2644 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
2645 (encode_coding_emacs_mule): Changed from macro to function.
2646 If a text contains compositions, encode them correctly.
2647 (setup_coding_system): Set coding->commong_flags for emacs-mule so
2648 that decoding and encoding are required.
2649
2650 2000-12-27 Gerd Moellmann <gerd@gnu.org>
2651
2652 * xfaces.c (PT_PER_INCH): New macro.
2653 (xlfd_point_size): Compute real point size from font's pixel size.
2654 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
2655 instead of 72.
2656
2657 * .gdbinit: Comment out the line pointing to the Lesstif source
2658 directory.
2659
2660 * window.c (Frecenter): Use displayed_window_lines instead
2661 of window_internal_height.
2662
2663 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
2664 instead of x-toolkit-scroll-bars-p.
2665 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
2666
2667 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
2668 instead of x-toolkit-scroll-bars-p.
2669 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
2670
2671 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
2672 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
2673 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]:
2674 New variables.
2675 (add_window_display_history, add_frame_display_history)
2676 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
2677 (build_frame_matrix_from_leaf_window): Remove unused code.
2678 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
2679 redisplay history.
2680 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
2681 (update_window) [GLYPH_DEBUG]: Likewise.
2682 (syms_of_display): Defsubr dump-redisplay-history.
2683
2684 2000-12-23 Gerd Moellmann <gerd@gnu.org>
2685
2686 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
2687 the end of the prompt. Set echo_after_prompt to the offset
2688 of echoptr in echobuf.
2689
2690 * xdisp.c (init_from_display_pos): Pop until the iterator's
2691 stack is empty; there may be frames for stretch or images
2692 on the stack.
2693
2694 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
2695 (save_or_restore_current_matrix): New function for the same
2696 purpose, but more efficient.
2697 (adjust_frame_glyphs_for_frame_redisplay): Use it.
2698
2699 2000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
2700
2701 * xdisp.c (syms_of_xdisp): Fix last change.
2702
2703 2000-12-23 Gerd Moellmann <gerd@gnu.org>
2704
2705 * xdisp.c (syms_of_xdisp): Doc fix.
2706
2707 * xdisp.c (redisplay_window): Remove label restore_buffers;
2708 use finish_scroll_bars instead to make sure that scroll bars
2709 are redeemed. If we don't do this, flickering can result from
2710 scroll bars being destroyed and recreated.
2711
2712 2000-12-22 Jason Rumney <jasonr@gnu.org>
2713
2714 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
2715 in the wrong colors when the foreground is not black.
2716 (expose_window): Don't redraw the window that's currently being
2717 updated.
2718
2719 2000-12-22 Gerd Moellmann <gerd@gnu.org>
2720
2721 * window.c (size_window): When setting the window's too_small_ok
2722 flag, compare old size with minimum size depending on WIDTH_P,
2723 don't compare with window_min_width.
2724
2725 * window.c (delete_window): Simplify somewhat.
2726 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
2727 freeing window matrices. The flag windows_or_buffers_changed is
2728 set, so the next redisplay will consider all windows; this should
2729 suffice.
2730
2731 2000-12-22 Kenichi Handa <handa@etl.go.jp>
2732
2733 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
2734
2735 * ccl.h (struct ccl_program): New member cr_consumed.
2736
2737 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
2738 (CCL_READ_CHAR): Handle EOL conversion here.
2739 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
2740
2741 2000-12-21 Gerd Moellmann <gerd@gnu.org>
2742
2743 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg GLYPHS.
2744
2745 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
2746 otherwise tabs of different size compare equal.
2747
2748 * callint.c (Fcall_interactively): Prevent a compiler warning.
2749
2750 * print.c (print_unwind): Return nil.
2751 (PRINTDECLARE): Initialize all local variables.
2752 (print_preprocess): Add a default case.
2753
2754 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
2755
2756 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
2757
2758 * window.c (delete_window, Fsplit_window)
2759 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
2760
2761 * dispextern.h (ensure_frame_matrix): Function declaration removed.
2762
2763 * dispnew.c (ensure_frame_matrix): Removed.
2764 (save_frame_matrix, restore_frame_matrix): New functions.
2765 (adjust_frame_glyphs_for_frame_redisplay): Use them.
2766
2767 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
2768 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
2769
2770 2000-12-21 Andrew Innes <andrewi@gnu.org>
2771
2772 * w32term.c (x_update_begin): Regenerate the palette here, rather
2773 than for each window.
2774
2775 * w32xfns.c (select_palette): Avoid calling SelectPalette if
2776 palette is NULL, since this corrupts memory! Also get
2777 display_info reference from frame.
2778
2779 2000-12-21 Jason Rumney <jasonr@gnu.org>
2780
2781 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
2782
2783 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
2784 to avoid returning without releasing it.
2785
2786 2000-12-21 Kenichi Handa <handa@etl.go.jp>
2787
2788 * keymap.c (push_key_description): Don't convert eight-bit-control
2789 and eight-bit-graphic to multibyte character.
2790
2791 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
2792 generic character and CODE1 is nil, return the smallest character
2793 in CHARSET.
2794
2795 2000-12-20 Dave Love <fx@gnu.org>
2796
2797 * s/osf5-0.h (NSIG): Don't redefine.
2798
2799 2000-12-20 Stefan Monnier <monnier@cs.yale.edu>
2800
2801 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
2802 excluding menu-bar and tool-bar.
2803 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
2804 (menu_item_p): Remove.
2805 (where_is_internal_1): Don't ignore menu-items.
2806
2807 2000-12-20 Gerd Moellmann <gerd@gnu.org>
2808
2809 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
2810 into account.
2811
2812 * window.c (make_window): Initialize window's min_hscroll.
2813 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
2814 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
2815 to zero.
2816 (struct saved_window): New member min_hscroll.
2817 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
2818 (Fset_window_configuration): Set window's min_hscroll.
2819 (save_window_save): Save window's min_hscroll.
2820 (compare_window_configurations): Compare min_hscroll values.
2821
2822 * window.h (struct window): New member min_hscroll.
2823
2824 * keyboard.c (echo_prompt): Prevent a compiler warning.
2825
2826 * xdisp.c (try_cursor_movement): Fix last change. The real
2827 condition is that PT is at the end of the row, and should
2828 be displayed at the start of the next row.
2829
2830 * xdisp.c (try_cursor_movement): If we end on a partially
2831 visible line, end we already decided to scroll, return -1.
2832
2833 * dispextern.h (ensure_frame_matrix): Add prototype.
2834
2835 * window.c (delete_window, Fsplit_window)
2836 (Fset_window_configuration): Call ensure_frame_matrix.
2837
2838 * dispnew.c (fake_current_matrices, ensure_frame_matrix):
2839 New functions.
2840 (adjust_frame_glyphs_for_frame_redisplay): If display has been
2841 completed, call fake_current_matrices instead of marking frame
2842 garbaged.
2843
2844 2000-12-20 Jason Rumney <jasonr@gnu.org>
2845
2846 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
2847
2848 2000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
2849
2850 * fns.c (Frequire): Doc fix.
2851
2852 2000-12-19 Gerd Moellmann <gerd@gnu.org>
2853
2854 * window.c (window_scroll_pixel_based): Don't use move_it_vertically.
2855
2856 * dispnew.c (direct_output_for_insert): Fix check for mini-window
2857 currently displaying a message.
2858
2859 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
2860 xterm.h.
2861 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
2862
2863 2000-12-18 Andrew Innes <andrewi@gnu.org>
2864
2865 * w32.c (w32_strerror): New function.
2866
2867 * w32.h (w32_strerror): New extern.
2868
2869 * w32fns.c (Fw32_shell_execute): Use it.
2870
2871 2000-12-18 Gerd Moellmann <gerd@gnu.org>
2872
2873 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
2874
2875 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
2876
2877 * msdos.c (IT_set_face): Obey inverse_video.
2878
2879 2000-12-18 Kenichi Handa <handa@etl.go.jp>
2880
2881 * dired.c (directory_files_internal): Always return decoded filenames.
2882
2883 2000-12-18 Gerd Moellmann <gerd@gnu.org>
2884
2885 * xterm.c (x_connection_closed): Prevent being called recursively
2886 because of an error condition in XtCloseDisplay.
2887
2888 * xdisp.c (init_iterator): If noninteractive, and the frame's
2889 face cache is null, make one.
2890
2891 * xfns.c (show_busy_cursor): Check for live frames more thoroughly.
2892
2893 * process.c (wait_reading_process_input): Check for pending
2894 input when running timers.
2895
2896 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
2897
2898 * msdos.c (IT_write_glyphs): Compute the glyph face from str->face_id.
2899
2900 2000-12-18 Kenichi Handa <handa@etl.go.jp>
2901
2902 * process.c (read_process_output): Don't run a filter if the code
2903 decoder produces nothing but carryover.
2904
2905 2000-12-17 Andrew Innes <andrewi@gnu.org>
2906
2907 * w32.c (sys_rename): Only check errno against EEXIST, and not
2908 EACCES, when determining whether rename failed because the target
2909 exists. This was resulting in indefinite looping on Windows 9x if
2910 the source file was locked by another process.
2911
2912 * w32fns.c (Ffile_system_info): New function.
2913 (syms_of_w32fns): Defsubr it.
2914
2915 2000-12-17 Gerd Moellmann <gerd@gnu.org>
2916
2917 * window.c (coordinates_in_window): Fix computation for
2918 position on vertical line between mode lines.
2919
2920 * xfns.c (unwind_create_frame): Return t if frame was deleted.
2921 Don't alter tip_frame or tip_window.
2922 (unwind_create_tip_frame): Set tip_frame to nil only if frame
2923 was deleted.
2924
2925 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
2926 Don't alter tip_frame or tip_window.
2927 (unwind_create_tip_frame): Set tip_frame to nil only if frame
2928 was deleted.
2929
2930 2000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
2931
2932 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
2933 be consistent with the doc string. Reported by NAKAJIMA Mikio
2934 <minakaji@osaka.email.ne.jp>.
2935
2936 2000-12-16 Kenichi Handa <handa@etl.go.jp>
2937
2938 * xfaces.c (Vface_ignored_fonts): New variable.
2939 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
2940 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
2941
2942 2000-12-15 Gerd Moellmann <gerd@gnu.org>
2943
2944 * dispnew.c (update_window): Detect pending input every nth line
2945 updated, i.e. do it depending on real work done, and not on the
2946 vpos of the line.
2947
2948 * xterm.c (expose_window): Don't redraw the window that's
2949 currently being updated.
2950
2951 * window.c (Fset_window_point): Remove test for
2952 cursor_in_non_selected_windows.
2953
2954 * lread.c (read1): Recognize end of file after `\\'.
2955
2956 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
2957 not unwind_create_frame.
2958
2959 2000-12-15 Dave Love <fx@gnu.org>
2960
2961 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
2962 bcopy & al.
2963
2964 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
2965
2966 2000-12-15 Kenichi Handa <handa@etl.go.jp>
2967
2968 * coding.c (setup_coding_system): Clear all members of the struct
2969 coding_system at first.
2970 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
2971 argument.
2972 (code_convert_region): Don't override coding->src_multibyte and
2973 coding->dst_multibyte.
2974
2975 * fns.c (Fmd5): Docstring improved.
2976
2977 2000-12-15 Miles Bader <miles@gnu.org>
2978
2979 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
2980 are actually marked as mode-lines; otherwise use
2981 estimate_mode_line_height.
2982
2983 2000-12-14 Gerd Moellmann <gerd@gnu.org>
2984
2985 * editfns.c (Fformat): Prevent a buffer overrun when the format
2986 specifies a precision.
2987
2988 2000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
2989
2990 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
2991 argument is outside the range [2..3].
2992
2993 2000-12-14 Andrew Innes <andrewi@gnu.org>
2994
2995 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
2996 nothing to do. Bind inhibit-quit.
2997 (tip_frame): Make it a Lisp_Object.
2998 (x_create_tip_frame): Set tip_frame after it has been added to
2999 Vframe_list.
3000 (Fx_show_tip): Don't set tip_frame here.
3001 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New variables.
3002 (unwind_create_frame, unwind_create_tip_frame): New functions.
3003 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
3004 while a frame is only partially constructed.
3005
3006 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
3007 (x_free_frame_resources): New function.
3008 (x_destroy_window): Use it.
3009
3010 2000-12-14 Gerd Moellmann <gerd@gnu.org>
3011
3012 * xfns.c (Fx_backspace_delete_keys_p): New function.
3013 (syms_of_xfns): Defsubr it.
3014
3015 * config.in (HAVE_XKBGETKEYBOARD): Add.
3016
3017 2000-12-14 Kenichi Handa <handa@etl.go.jp>
3018
3019 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
3020 Always store string in multibyte representation in echobuf.
3021 (echo_char): Always store string in multibyte representation in
3022 echobuf.
3023 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
3024 (read_key_sequence): Adjusted for the change of echo_prompt.
3025
3026 * fns.c (Fmd5): Docstring improved.
3027
3028 * lisp.h (detect_coding_system): Prototype adjusted.
3029
3030 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
3031 (detect_coding_emacs_mule, detect_coding_iso2022,)
3032 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
3033 (detect_coding_utf_16, detect_coding_ccl): Make them static.
3034 New argument MULTIBYTEP. Callers changed.
3035 (detect_coding_mask, detect_coding_system): New argument
3036 MULTIBYTEP. Callers changed.
3037 (decode_coding_string): Set coding->src_multibyte and
3038 coding->dst_multibyte before calling detect_coding and detect_eol.
3039 Update them after some coding system is detected.
3040
3041 2000-12-13 Stefan Monnier <monnier@cs.yale.edu>
3042
3043 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
3044
3045 * keyboard.c (menu_bar_items, tool_bar_items):
3046 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
3047
3048 2000-12-13 Gerd Moellmann <gerd@gnu.org>
3049
3050 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
3051 New variables.
3052 (unwind_create_frame, unwind_create_tip_frame): New functions.
3053 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
3054 while a frame is only partially constructed.
3055
3056 * xterm.h (x_free_frame_resources): Declare.
3057
3058 * xterm.c (x_free_frame_resources): New function.
3059 (x_destroy_window): Use it.
3060
3061 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
3062 don't interrupt the update for pending input initially, i.e.
3063 update at least some lines.
3064
3065 * keyboard.c (do_mouse_tracking): Make externally visible.
3066
3067 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
3068
3069 * xfns.c (gray_bitmap_bits): Declare `char *'.
3070
3071 2000-12-12 Gerd Moellmann <gerd@gnu.org>
3072
3073 * xdisp.c (display_tool_bar_line): Make sure that tool bar
3074 lines start with a relief line.
3075
3076 2000-12-12 Dave Love <fx@gnu.org>
3077
3078 * window.c (Fdisplay_buffer): Doc fix.
3079 (Fwindow_list): Remove unused var.
3080
3081 * buffer.h (mmap_set_vars): Declare.
3082
3083 * window.h (Fset_window_point): Declare.
3084
3085 2000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
3086
3087 * msdos.c (fast_find_position): Don't overstep the last window row.
3088 (IT_note_mouse_highlight): Initialize portion to -1. Remove unused
3089 variable `area'. When looking for a row under (X,Y), give up if some
3090 of the previous rows is not enabled.
3091
3092 2000-12-12 Gerd Moellmann <gerd@gnu.org>
3093
3094 * window.c (Fset_window_point): If displaying cursors in windows
3095 other than the selected window, make sure redisplay updates
3096 other windows to show the new value of point in the window.
3097
3098 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
3099
3100 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
3101 the buffer is the sole visible buffer when in the mini-buffer.
3102
3103 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
3104 Bind `inhibit-read-only' to t.
3105 (unwind_with_echo_area_buffer): Use AREF.
3106
3107 * xfns.c (Fx_hide_tip): Simplified.
3108
3109 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use GC_MAKE_GCPROS_NOOPS
3110 instead of `1'.
3111
3112 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
3113
3114 2000-12-11 Gerd Moellmann <gerd@gnu.org>
3115
3116 * xfns.c (Fx_hide_tip): Fix last change.
3117
3118 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
3119 nothing to do. Bind inhibit-quit.
3120 (tip_frame): Make it a Lisp_Object.
3121 (x_create_tip_frame): Set tip_frame after it has been added to
3122 Vframe_list.
3123 (Fx_show_tip): Don't set tip_frame here.
3124
3125 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
3126
3127 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
3128 Lisp_Object.
3129
3130 * dispextern.h: Change external declaration of tip_frame.
3131
3132 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
3133 return an empty string.
3134
3135 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
3136 of the window's update_mode_line flag, since the former is set by
3137 force-mode-line-update, not the latter. This makes
3138 column-number-mode slightly faster.
3139
3140 * xdisp.c (try_window_id) <all changes above window start>:
3141 Set the cursor.
3142
3143 2000-12-11 Paul Eggert <eggert@twinsun.com>
3144
3145 * config.in (HAVE_FTELLO): Remove.
3146 (HAVE_FSEEKO): Add.
3147 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
3148 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
3149 HAVE_FTELLO.
3150 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
3151 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
3152
3153 2000-12-11 Miles Bader <miles@gnu.org>
3154
3155 * window.c (displayed_window_lines): Don't round up when
3156 converting empty space at bottom to lines.
3157 Handle non-newline-terminated final lines properly.
3158 (Fwindow_text_height): New function (used to be in lisp).
3159 (syms_of_window): Initialize it.
3160
3161 2000-12-09 Stefan Monnier <monnier@cs.yale.edu>
3162
3163 * syntax.c (scan_lists): Check that the right quote char has the
3164 right Sstring syntax when jumping over strings.
3165 (init_syntax_once): Use Smax rather than 13.
3166
3167 2000-12-09 Miles Bader <miles@gnu.org>
3168
3169 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
3170 with PARTIALLY, inverting the sense.
3171 (window_scroll_pixel_based): Scroll partially visible lines into
3172 place if we hit the beginning or end of the buffer.
3173 (displayed_window_lines): Don't include partially visible lines.
3174 (Fmove_to_window_line): Skip past any partially visible first line.
3175
3176 2000-12-08 Gerd Moellmann <gerd@gnu.org>
3177
3178 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
3179
3180 * tparam.c (tparam1): Change the way buffers are reallocated to be
3181 portable and less obfuscated.
3182
3183 * termcap.c (tgetent): Change the way buffers are reallocated to
3184 be portable and less obfuscated.
3185
3186 * macros.c (store_kbd_macro_char): Change the way buffers are
3187 reallocated to be portable and less obfuscated.
3188
3189 * lread.c (read1): Change the way buffers are reallocated to be
3190 portable and less obfuscated.
3191
3192 * doc.c (Fsubstitute_command_keys): Change the way buffers
3193 are reallocated so that it is portable.
3194
3195 2000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
3196
3197 * dosfns.c (Ffile_system_info): New function.
3198 (syms_of_dosfns): Defsubr it.
3199
3200 2000-12-07 Stefan Monnier <monnier@cs.yale.edu>
3201
3202 * alloc.c (gc_sweep): Add comment.
3203
3204 2000-12-07 Gerd Moellmann <gerd@gnu.org>
3205
3206 * sound.c (vox_configure): Change order of ioctls.
3207 Don't set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
3208 Ignore errors when changing volume.
3209 (vox_close): Don't reset the device.
3210
3211 * process.c (read_process_output): Make sure the process marker's
3212 position is valid when the process buffer is changed in
3213 after-change functions. W3 does that.
3214
3215 * xfns.c (x_free_gcs): New function.
3216
3217 * xterm.h (x_free_gcs): Add prototype.
3218
3219 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
3220 freeing GCs here.
3221
3222 * xterm.c (x_destroy_window): Call x_free_gcs so that
3223 resources of non-toolkit X windows will be freed.
3224
3225 2000-12-07 Andrew Innes <andrewi@gnu.org>
3226
3227 * w32fns.c (xlfd_charset_of_font): Fix last change.
3228
3229 2000-12-06 Dave Love <fx@gnu.org>
3230
3231 * md5.h (__P): Don't define -- it comes from config.h.
3232
3233 * strftime.c: Change some #if foo to #ifdef foo.
3234
3235 2000-12-06 Andrew Innes <andrewi@gnu.org>
3236
3237 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
3238
3239 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname argument.
3240 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
3241 (w32_list_fonts): Don't choke if pattern doesn't specify a codepage.
3242
3243 2000-12-06 Gerd Moellmann <gerd@gnu.org>
3244
3245 * alloc.c (gc_sweep): Prevent symbols read during loadup
3246 from being freed.
3247
3248 * xdisp.c (underlying_face_id): New function.
3249 (handle_face_prop, face_before_or_after_it_pos): Use it
3250 to determine the face ``under'' a string. Let strings inherit
3251 the face of the buffer under them.
3252
3253 * xfaces.c (face_at_string_position): Update function comment.
3254
3255 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
3256 matrix if the window's left position has changed; we need to
3257 redraw it in this case.
3258
3259 * dispextern.h (struct glyph_matrix): Add member window_left_x.
3260
3261 * window.c (coordinates_in_window): Check mouse on mode-line or
3262 header-line first.
3263
3264 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
3265 advertized by the function documentation.
3266
3267 * window.c (syms_of_window): Doc fix.
3268
3269 * sound.c (vox_configure): Set volume for left and right channel.
3270 (sound_cleanup): Return nil.
3271
3272 * xdisp.c (move_it_by_lines): Fix paren typo.
3273
3274 * xterm.c (x_load_font): Don't use the font's max_bounds for
3275 computing the height of the font. If max_bounds' ascent or
3276 descent are greater than the font's ascent or descent, this means
3277 glyphs overlap, which should be handled now by redisplay.
3278
3279 * window.c (Veven_window_heights): New variable.
3280 (syms_of_window): DEFVAR_LISP it.
3281 (Fdisplay_buffer): Check Veven_window_heights before evening the
3282 window heights.
3283
3284 2000-12-06 Miles Bader <miles@gnu.org>
3285
3286 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
3287 update `default-frame-alist' instead of setting no frame parameters.
3288
3289 2000-12-06 Kenichi Handa <handa@etl.go.jp>
3290
3291 * composite.c (update_compositions): Fix typo (use the correct
3292 variable).
3293
3294 2000-12-05 Jason Rumney <jasonr@gnu.org>
3295
3296 * md5.h: Remove underscores from function declarations.
3297 (__attribute__, __alignof__) [!__GNUC__]: Define.
3298
3299 * md5.c: Delay include of md5.h until after namespace cleaning.
3300
3301 * makefile.w32-in (fns.o): Depend on md5.h
3302 (md5.o): New target.
3303 (sunfns.o): Remove.
3304
3305 * makefile.nt: Likewise.
3306
3307 2000-12-05 Jason Rumney <jasonr@altavista.net>
3308
3309 * w32term.c (expose_area): Complete last change.
3310
3311 2000-12-05 Ken Raeburn <raeburn@gnu.org>
3312
3313 * minibuf.c: Include intervals.h.
3314
3315 2000-12-05 Jason Rumney <jasonr@gnu.org>
3316
3317 * w32term.c (x_produce_glyphs): If a font for a component of
3318 a composition is not found, use 1 pixel dot ascent and 0 dot
3319 descent value to avoid displaying terribly tall empty boxes.
3320 (expose_area): Pass x-coordinate relative to the exposed
3321 area to x_draw_glyphs instead of a window-relative coordinate.
3322
3323 2000-12-05 Gerd Moellmann <gerd@gnu.org>
3324
3325 * xdisp.c (next_element_from_ellipsis): Save face before selective
3326 display in saved_face_id, and set face_before_selective_p.
3327 (reseat_1): Reset face_before_selective_p.
3328 (append_space, extend_face_to_end_of_line): If iterator's
3329 face_before_selective_p is set, use the face from saved_face_id.
3330 (extend_face_to_end_of_line): For tty frames, make sure to
3331 use the right face id when producing spaces at the end of
3332 the line.
3333
3334 * dispextern.h (struct it): Add face_before_selective_p.
3335
3336 * keyboard.c (record_char): Don't record identical help-echo
3337 events in recent_keys.
3338
3339 * xterm.c [USE_X_TOOLKIT]: Close the display.
3340 (xim_close_dpy): Handle case that the display has been closed.
3341
3342 * xterm.c (x_destroy_window): Reset the frame's X window after
3343 destroying it.
3344
3345 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
3346 variable window_width.
3347 (line_draw_cost): Fix code skipping over spaces at the end of the
3348 line when must_write_spaces is not set.
3349 (scrolling_window): Fix code inserting runs in list of all runs.
3350
3351 2000-12-05 Kenichi Handa <handa@etl.go.jp>
3352
3353 * coding.c (setup_coding_system): Be sure to initialize
3354 coding->category_idx.
3355
3356 2000-12-04 Gerd Moellmann <gerd@gnu.org>
3357
3358 * xterm.c (PER_CHAR_METRIC): Removed because not used.
3359
3360 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
3361 area to x_draw_glyphs instead of a window-relative coordinate.
3362
3363 * fileio.c (auto_save_error): Add parameter ERROR. Show the
3364 error in the message.
3365
3366 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
3367 timer after having read a key. It's not good for code reading
3368 several keys in a loop, like an input method.
3369
3370 * fileio.c (Finsert_file_contents): When VISIT is t, don't
3371 record undo information for format-decode.
3372
3373 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
3374 current buffer is read-only, not if it isn't.
3375
3376 * keyboard.c (record_char): Record `help-echo' input events
3377 in recent_keys only if they display some help. Don't record
3378 `help-echo' events as macro char.
3379
3380 2000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3381
3382 * editfns.c (save_excursion_restore): Don't move point
3383 in another window if it is showing the wrong buffer.
3384 Avoid the call to Fwindow_live_p, for speed.
3385
3386 2000-12-04 Kenichi Handa <handa@etl.go.jp>
3387
3388 * xfaces.c (struct font_name): New member registry_priority.
3389 (split_font_name): Initialize the above member to zero.
3390 (concat_font_list): New function.
3391 (font_list): Include fonts of all alternative registries.
3392 (FONT_POINT_SIZE_QUANTUM): New macro.
3393 (better_font_p): Ignore point size difference less than
3394 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
3395
3396 * xterm.c (x_produce_glyphs): If a font for a component of
3397 a composition is not found, use 1 pixel dot ascent and 0 dot
3398 descent value to avoid displaying terribly tall empty boxes.
3399
3400 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
3401
3402 2000-12-03 Ken Raeburn <raeburn@gnu.org>
3403
3404 * coding.h (code_convert_string1): Declare.
3405
3406 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
3407
3408 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name): Declare.
3409
3410 2000-12-02 Jason Rumney <jasonr@gnu.org>
3411
3412 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
3413 correctly for single byte character case.
3414 (w32_per_char_metric): Do not try to make any assumptions about
3415 the metrics of BDF fonts.
3416 (x_estimate_mode_line_height): If `mode-line' face
3417 hasn't a font, use that of the frame, as drawing glyphs does.
3418 (note_mouse_highlight): Change the cursor shape on the vertical
3419 border between windows [not enabled].
3420
3421 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
3422
3423 * w32fns.c (Fx_create_frame): Reintroduce the call to
3424 face-set-after-frame-defaults.
3425 (Vx_window_horizontal_drag_shape): New variable.
3426 (syms_of_xfns): DEFVAR_LISP it.
3427 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
3428 enabled].
3429
3430 2000-12-02 Simon Josefsson <simon@josefsson.org>
3431
3432 * fns.c (Fmd5): Use a different logic to decide the coding system
3433 to use.
3434
3435 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
3436
3437 2000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
3438
3439 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is NULL.
3440
3441 2000-12-01 Gerd Moellmann <gerd@gnu.org>
3442
3443 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
3444 height for YNegative.
3445 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
3446 height; also see comment there.
3447
3448 * window.c (coordinates_in_window): Handle computations for
3449 positions on the vertical bar and fringes differently for
3450 window-system frames. Consider some pixels near the vertical bar
3451 as on the bar if the frame doesn't have vertical scroll bars.
3452 Associate positions between mode or header lines with the
3453 right window, the left one.
3454
3455 2000-12-01 Jason Rumney <jasonr@gnu.org>
3456
3457 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
3458
3459 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
3460 invalid frame.
3461
3462 2000-12-01 Gerd Moellmann <gerd@gnu.org>
3463
3464 * window.c (struct saved_window): Add members orig_top and orig_height.
3465 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
3466 (save_window_save, Fset_window_configuration): Save/restore
3467 window's orig_top and orig_height.
3468
3469 2000-12-01 Jason Rumney <jasonr@gnu.org>
3470
3471 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
3472
3473 * w32fns.c (x_set_cursor_color): Fix last change.
3474
3475 2000-11-30 Gerd Moellmann <gerd@gnu.org>
3476
3477 * xdisp.c (echo_area_display): If cursor is in the echo area, make
3478 sure that the next redisplay displays the minibuffer, so that
3479 the cursor will be replaced with what the minibuffer wants.
3480
3481 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
3482 #ifndef instead of using #if.
3483 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
3484 USE_TOOLKIT_SCROLL_BARS is defined.
3485
3486 2000-11-30 Jason Rumney <jasonr@gnu.org>
3487
3488 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
3489 x_display_cursor.
3490
3491 2000-11-30 Gerd Moellmann <gerd@gnu.org>
3492
3493 * fns.c (Fmd5): Doc fix.
3494
3495 2000-11-30 Simon Josefsson <simon@josefsson.org>
3496
3497 * fns.c (Fmd5): New function.
3498 (syms_of_fns): Defsubr md5.
3499
3500 * Makefile.in (obj): Add md5.o
3501
3502 2000-11-30 Gerd Moellmann <gerd@gnu.org>
3503
3504 * md5.h, md5.c: New files, taken from glibc.
3505
3506 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
3507
3508 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
3509 hasn't a font, use that of the frame, as drawing glyphs does.
3510
3511 2000-11-29 Stefan Monnier <monnier@cs.yale.edu>
3512
3513 * eval.c (Frun_hooks): Allow 0 arguments.
3514
3515 2000-11-29 Gerd Moellmann <gerd@gnu.org>
3516
3517 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
3518 is over the menu bar widget, say it's not on the frame.
3519
3520 * xfns.c (Fx_create_frame): Reintroduce the call to
3521 face-set-after-frame-defaults.
3522
3523 * eval.c (Fsignal): Reset handling_signal.
3524
3525 2000-11-28 Jason Rumney <jasonr@gnu.org>
3526
3527 * w32menu.c (add_menu_item): Reset menu item text when changing
3528 type to radio button.
3529
3530 2000-11-28 Gerd Moellmann <gerd@gnu.org>
3531
3532 * xselect.c: Update copyright.
3533
3534 * window.c (coordinates_in_window): If on a mode or header line,
3535 but sufficiently close to its start, return ``on vertical
3536 border''. This gives us a way to drag windows horizontally when
3537 using toolkit scroll bars.
3538
3539 * xterm.c (note_mouse_highlight): Change the cursor shape
3540 on the vertical border between windows.
3541
3542 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
3543
3544 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
3545 (syms_of_xfns): DEFVAR_LISP it.
3546 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
3547
3548 * textprop.c (text_read_only): New function.
3549 (verify_interval_modification): Use it instead of signaling
3550 `text-read-only'. This makes it easier to catch this error
3551 with a breakpoint.:
3552
3553 * xdisp.c (forward_to_next_line_start): Check for newlines,
3554 not end of line, which includes CR.
3555
3556 2000-11-28 Kenichi Handa <handa@etl.go.jp>
3557
3558 * coding.c (Ffind_coding_systems_region_internal): Be sure to
3559 include no-conversion.
3560
3561 2000-11-27 Jason Rumney <jasonr@gnu.org>
3562
3563 * w32fns.c (w32_load_system_font): Always mark font as double byte
3564 if codepage is unicode.
3565
3566 2000-11-27 Gerd Moellmann <gerd@gnu.org>
3567
3568 * xdisp.c (forward_to_next_line_start): If already on a newline,
3569 just consume it to avoid unintended skipping over invisible text below.
3570
3571 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
3572 `vertical-line', `mode-line' and `header-line' events.
3573
3574 * xdisp.c (try_window_id): Avoid starting to display in the middle
3575 of a character, a TAB for instance. This is easier than to set
3576 up the iterator exactly, and it's not a frequent case, so the
3577 additional effort wouldn't really pay off.
3578
3579 2000-11-26 Andrew Choi <akochoi@i-cable.com>
3580
3581 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
3582 init_window_once.
3583
3584 2000-11-25 Jason Rumney <jasonr@gnu.org>
3585
3586 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]:
3587 Args to window_from_coordinates should be pixel coordinates.
3588
3589 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
3590 redisplay handles them properly.
3591
3592 2000-11-25 Miles Bader <miles@gnu.org>
3593
3594 * indent.c (compute_motion): Keep pos_byte in sync with pos.
3595
3596 2000-11-24 Jason Rumney <jasonr@gnu.org>
3597
3598 * w32.c (init_environment): Set LANG environment variable based on
3599 locale settings, if not set.
3600
3601 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
3602 making tool bar smaller. When clearing the frame, also
3603 clear current matrices. Clear frame when tool bar disappears.
3604 Don't use more lines for the tool-bar than is available.
3605 (x_change_window_heights): New function.
3606
3607 2000-11-24 Gerd Moellmann <gerd@gnu.org>
3608
3609 * xdisp.c (init_from_display_pos): If POS says we're already after
3610 an overlay string ending at POS, make sure to pop the iterator
3611 because it will be in front of that overlay string. When POS is
3612 ZV, we've thereby also ``processed'' overlay strings at ZV.
3613
3614 * xfaces.c (lface_from_face_name): Function comment fix.
3615
3616 2000-11-24 Miles Bader <miles@gnu.org>
3617
3618 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
3619 apply `mode-line-inverse-video' -- zero means force display using
3620 the default face, non-zero means display using the specialized face.
3621 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
3622
3623 2000-11-23 Kenichi Handa <handa@etl.go.jp>
3624
3625 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
3626 hard coded `4'.
3627
3628 2000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
3629
3630 * coding.c (decode_coding_emacs_mule): Fix the case of
3631 CODING_EOL_LF, which used uninitialized value of c.
3632
3633 2000-11-23 Stefan Monnier <monnier@cs.yale.edu>
3634
3635 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
3636
3637 2000-11-22 Gerd Moellmann <gerd@gnu.org>
3638
3639 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
3640 buffer object.
3641
3642 * frame.h (struct frame): Replace desired_tool_bar_items,
3643 current_tool_bar_items, n_desired_tool_bar_items,
3644 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
3645
3646 * frame.c (make_frame): Change initialization of tool bar
3647 items accordingly.
3648
3649 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
3650 Change references to members deleted from struct frame to use the
3651 new ones.
3652
3653 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
3654 references to members deleted from struct frame to use the new ones.
3655
3656 * dispnew.c (update_frame): Do nothing with frame's tool bar items.
3657
3658 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
3659
3660 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
3661 (note_tool_bar_highlight): Change references to members deleted
3662 from struct frame to use the new ones.
3663
3664 2000-11-23 Miles Bader <miles@gnu.org>
3665
3666 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
3667 the face's inverse-video attribute, rather than overriding it.
3668
3669 2000-11-22 Gerd Moellmann <gerd@gnu.org>
3670
3671 * xfns.c (x_set_tool_bar_lines): Clear internal border when
3672 making tool bar smaller.
3673
3674 2000-11-22 Dave Love <fx@gnu.org>
3675
3676 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
3677
3678 2000-11-22 Miles Bader <miles@gnu.org>
3679
3680 * keyboard.c (Vminibuffer_message_timeout): New variable.
3681 (command_loop_1): Use it to determine message timeout.
3682 (syms_of_keyboard): Initialize it.
3683
3684 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
3685
3686 2000-11-22 Kenichi Handa <handa@etl.go.jp>
3687
3688 * sysdep.c: Move the code for declaring h_errno after #include
3689 <netdb.h>.
3690
3691 2000-11-21 Gerd Moellmann <gerd@gnu.org>
3692
3693 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
3694 the menu bar when the tooltip is unmapped.
3695
3696 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
3697 sole visible buffer when we're currently in the mini-buffer, and
3698 give up if so.
3699
3700 2000-11-21 Jason Rumney <jasonr@gnu.org>
3701
3702 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
3703 put on the clipboard.
3704 (Fw32_get_clipboard_data): Compare data on clipboard with saved
3705 copy of what Emacs last put there. If they are the same, do not
3706 use the clipboard copy to avoid losing data due to coding conversions.
3707
3708 2000-11-22 Miles Bader <miles@gnu.org>
3709
3710 * minibuf.c (Vminibuffer_prompt_properties): New variable.
3711 (syms_of_minibuf): Initialize it.
3712 (read_minibuf): Add properties from Vminibuffer_prompt_properties
3713 to prompt, don't make read-only.
3714
3715 2000-11-21 Gerd Moellmann <gerd@gnu.org>
3716
3717 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>:
3718 Add BEFORE/AFTER_POTENTIAL_GC.
3719
3720 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
3721
3722 * buffer.c (mmap_free_1): Avoid a compiler warning.
3723
3724 * term.c, cm.c: Don't try to include termcap.h; see comment there.
3725
3726 2000-11-21 Kenichi Handa <handa@etl.go.jp>
3727
3728 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
3729 ... #endif scope.
3730
3731 2000-11-20 Gerd Moellmann <gerd@gnu.org>
3732
3733 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
3734 screen supports it.
3735
3736 * s/gnu-linux.h: Don't use `#cpu'.
3737
3738 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
3739 not defined in mman.h.
3740
3741 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New variables.
3742 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
3743 and store an index in the XClientMessageEvent. Storing a
3744 Lisp_Object or pointer can fail on a 64 bit system, since X only
3745 transfers 32 bits.
3746 (x_scroll_bar_to_input_event): Get the window from scroll_bar_windows.
3747
3748 2000-11-20 Dave Love <fx@gnu.org>
3749
3750 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
3751
3752 2000-11-20 Gerd Moellmann <gerd@gnu.org>
3753
3754 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
3755
3756 2000-11-20 Kenichi Handa <handa@etl.go.jp>
3757
3758 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
3759 by WIDTH.
3760
3761 * alloc.c (make_string): Fix previous change. Be sure to make
3762 unibyte string correctly.
3763
3764 2000-11-19 Gerd Moellmann <gerd@gnu.org>
3765
3766 * window.c (Fwindow_list): Change parameter list to be XEmacs
3767 compatible.
3768 (window_list_1): New function.
3769 (window_loop): Use it instead of Fwindow_list.
3770
3771 * sysdep.c (emacs_ospeed): New variable.
3772 (toplevel): Don't declare ospeed extern.
3773 (init_baud_rate): Use emacs_ospeed instead of ospeed.
3774
3775 * termcap.c (ospeed): Remove.
3776 (tputs) [!emacs]: Remove unused code.
3777 (tgetent): Avoid a compiler warning.
3778
3779 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
3780 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
3781 SCROLL_BAR_X_WIDGET with additional argument DPY.
3782
3783 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
3784 removed.
3785 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
3786 Take the X display as additional argument.
3787 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
3788 `Widget' is a pointer type that's not easily stored in Lisp_Object
3789 form in a portable way.
3790
3791 * dispnew.c (update_text_area): Fix last change.
3792
3793 2000-11-18 Gerd Moellmann <gerd@gnu.org>
3794
3795 * xdisp.c: Use BINDING_STACK_SIZE throughout.
3796
3797 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
3798 clear current matrices.
3799
3800 * buffer.c (mmap_enlarge): Don't print a message on stderr
3801 if mapping new memory at the end of the existing region fails.
3802
3803 * dispnew.c (update_text_area): Don't skip over equal glyphs
3804 when the last current glyph overlaps the glyph to its right.
3805
3806 2000-11-18 Miles Bader <miles@gnu.org>
3807
3808 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
3809 lines that *end* with "..." too (that's the most common case!).
3810
3811 2000-11-18 Gerd Moellmann <gerd@gnu.org>
3812
3813 * xdisp.c (resize_mini_window): Temporarily change to the
3814 mini-window's buffer if necessary.
3815
3816 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
3817 the tooltip obscures less text under it.
3818
3819 2000-11-17 Gerd Moellmann <gerd@gnu.org>
3820
3821 * puresize.h (BASE_PURESIZE): Increase to 700000.
3822
3823 2000-11-18 Jason Rumney <jasonr@gnu.org>
3824
3825 * w32term.c (w32_draw_bitmap): Use face to set colors.
3826
3827 2000-11-17 Dave Love <fx@gnu.org>
3828
3829 * lread.c (Fload): Fix #ifdef for pcc.
3830
3831 2000-11-17 Gerd Moellmann <gerd@gnu.org>
3832
3833 * xdisp.c (pos_visible_p): Compute the default character height
3834 differently.
3835
3836 2000-11-16 Gerd Moellmann <gerd@gnu.org>
3837
3838 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
3839 knowing the line's height; use the default font's height in that case.
3840
3841 * xfaces.c (weight_table): Add `demi' with the same meaning as
3842 `demibold'.
3843
3844 2000-11-16 Kenichi Handa <handa@etl.go.jp>
3845
3846 * dispnew.c (null_row): New global static variable.
3847 (clear_glyph_row): Delete local static variable null_row.
3848
3849 2000-11-15 Jason Rumney <jasonr@gnu.org>
3850
3851 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
3852 (w32_alloc_lighter_color): Use new brightness calculations from
3853 xterm.c. Scale delta to be in the range expected by W32.
3854 (w32_draw_relief_rect): Use frame relief colors.
3855
3856 2000-11-15 Gerd Moellmann <gerd@gnu.org>
3857
3858 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
3859 (Qinhibit_default_face_x_resources): New variable.
3860 (syms_of_frame): Initialize it.
3861 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
3862
3863 * xdisp.c (pos_visible_p): Improve function comment.
3864
3865 * lisp.h (BINDING_STACK_SIZE): New macro.
3866
3867 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
3868 reading the directory if readdir returns null and errno is EAGAIN
3869 or EINTR.
3870
3871 2000-11-14 Stefan Monnier <monnier@cs.yale.edu>
3872
3873 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
3874 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
3875 Set amount_to_scroll to max of dx and scroll_step so that
3876 scroll-conservatively doesn't defeat scroll-step>1.
3877 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
3878 scroll-conservatively for line-at-a-time scrolling.
3879
3880 2000-11-14 Gerd Moellmann <gerd@gnu.org>
3881
3882 * window.c (Fpos_visible_in_window_p): Call pos_visible with
3883 extra argument.
3884
3885 * xdisp.c (current_mode_line_height, current_header_line_height):
3886 New variables.
3887 (init_xdisp): Initialize them.
3888 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
3889 and use exact mode line heights if it is set.
3890
3891 * lisp.h (pos_visible_p): Change prototype.
3892
3893 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
3894 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
3895 and current_header_line_height first.
3896 (current_mode_line_height, current_header_line_height):
3897 Declare extern.
3898
3899 2000-11-14 Miles Bader <miles@lsi.nec.co.jp>
3900
3901 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
3902 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
3903 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
3904
3905 2000-11-14 Miles Bader <miles@gnu.org>
3906
3907 * xterm.c (x_alloc_lighter_color): Include an additive component
3908 too for dark colors, because FACTOR isn't enough.
3909 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
3910 New macros.
3911
3912 2000-11-13 Gerd Moellmann <gerd@gnu.org>
3913
3914 * keyboard.c (show_help_echo): Call message3_nolog with number of
3915 bytes in the help string as 2nd parameter, instead of the number
3916 of characters.
3917
3918 2000-11-13 Miles Bader <miles@gnu.org>
3919
3920 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
3921 (Fload): Use new openp return protocol.
3922 Don't try to use Vload_source_file_function to load .elc files.
3923 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
3924 openp return protocol.
3925 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
3926
3927 2000-11-11 Kenichi Handa <handa@etl.go.jp>
3928
3929 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
3930
3931 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
3932 Defined these macros.
3933 (NLIST_STRUCT): Avoid re-defining it.
3934
3935 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
3936 -I/usr/contrib/X11R6/include.
3937 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
3938
3939 2000-11-10 Jason Rumney <jasonr@gnu.org>
3940
3941 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
3942
3943 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
3944 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
3945
3946 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
3947 (Qw32_charset_vietnamese): New symbol.
3948 (xlfd_charset_of_font): New function.
3949 (w32_load_system_font): Use it.
3950 (x_to_w32_charset): Use Fassoc to find charset info. Special case
3951 when Vw32_charset_info_alist is nil to ensure default face always
3952 has font. Use Fcar and Fcdr for safety.
3953 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
3954 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
3955 pseudo-codepages for special cases.
3956 (w32_to_x_font): New parameter to allow charset portion to be
3957 specified where there is many to one mapping. Callers changed.
3958 (w32_list_fonts): Avoid listing fonts that won't display.
3959
3960 2000-11-10 Gerd Moellmann <gerd@gnu.org>
3961
3962 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
3963 (font_list_1): Renamed from font_list.
3964 (font_list): New function, trying alternative registries from
3965 Vface_alternative_font_registry_alist.
3966 (Finternal_set_alternative_font_registry_alist): New function.
3967 (syms_of_xfaces): Initialize and Staticpro
3968 Vface_alternative_font_registry_alist.
3969 Defsubr Finternal_set_alternative_font_registry_alist.
3970
3971 2000-11-09 Ken Raeburn <raeburn@gnu.org>
3972
3973 * lisp.h (Flooking_at): Declare.
3974
3975 2000-11-09 Gerd Moellmann <gerd@gnu.org>
3976
3977 * dired.c (directory_files_internal): Fix a braino.
3978
3979 * dired.c (directory_files_internal): Add missing GCPRO's.
3980 Some cleanup.
3981
3982 2000-11-08 Gerd Moellmann <gerd@gnu.org>
3983
3984 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
3985 (resize_mini_window): Return quickly if Vresize_mini_window is
3986 nil. Don't return if Vmax_mini_window_height is nil.
3987
3988 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
3989 (syms_of_xdisp): Initialize them.
3990 (resize_mini_window): Act according to the setting of
3991 Vresize_mini_window.
3992 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
3993
3994 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
3995 scroll bar widget after configuring it, so that it will appear at
3996 the right position from the start.
3997 (XTredeem_scroll_bar): Cleaned up.
3998
3999 2000-11-08 Kenichi Handa <handa@etl.go.jp>
4000
4001 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
4002 font is taller than the frame line, we don't have to bias the
4003 division by two.
4004
4005 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
4006
4007 2000-11-07 Dave Love <fx@gnu.org>
4008
4009 * config.in (HAVE_MKSTEMP): Add.
4010
4011 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
4012
4013 2000-11-07 Gerd Moellmann <gerd@gnu.org>
4014
4015 * window.c (Fset_window_configuration): Don't try to preserve
4016 point in the current buffer, if that buffer is displayed in more
4017 than one window.
4018
4019 * xfaces.c (lookup_named_face): If default face isn't realized,
4020 try to realize it. Return -1 if not successful.
4021 (Fx_list_fonts): Handle case that face cannot be determined.
4022 (Fface_font): Likewise.
4023
4024 2000-11-06 Gerd Moellmann <gerd@gnu.org>
4025
4026 * window.c (displayed_window_lines): Detect partially
4027 visible lines at the bottom correctly.
4028
4029 2000-11-06 Stefan Monnier <monnier@cs.yale.edu>
4030
4031 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
4032 when ensuring we don't do visit in indirect buffer.
4033
4034 2000-11-06 Kenichi Handa <handa@etl.go.jp>
4035
4036 * composite.h (compose_chars_in_text): Add prototype.
4037
4038 * composite.c (Vcomposition_function_table): New variable.
4039 (Qcomposition_function_table): New variable.
4040 (run_composition_function): Call
4041 Vcompose_chars_after_function with three arguments.
4042 (compose_chars_in_text): New function.
4043 (syms_of_composite): Modified the doc-string of
4044 Vcompose_chars_after_function. Declare composition-function-table
4045 as a lisp variable, and initialize it.
4046
4047 * xfns.c (x_encode_text): Suppress producing escape sequences for
4048 composition.
4049
4050 * xselect.c: Include composite.h.
4051 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
4052
4053 2000-11-05 Andrew Innes <andrewi@gnu.org>
4054
4055 * w32term.c (x_produce_glyphs): Fix typo in enum name.
4056
4057 * sysdep.c (read_input_waiting): Remove extraneous argument to
4058 read_socket_hook.
4059
4060 * w32fns.c (Fx_server_version): Include w32_build_number in the
4061 return list.
4062
4063 * w32heap.c (w32_build_number): New variable.
4064 (cache_system_info): Set it.
4065
4066 * w32heap.h (w32_build_number): Add extern.
4067
4068 * emacs.c (syms_of_emacs): Update docstring for
4069 system-configuration, to reflect the actual usage on MS-Windows.
4070
4071 2000-10-31 Gerd Moellmann <gerd@gnu.org>
4072
4073 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
4074 process idle timers while waiting for another event.
4075
4076 * dispnew.c (update_frame_line): Handle case where spaces in
4077 the default face are colored.
4078
4079 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
4080 window height hasn't changed.
4081
4082 2000-10-31 Jason Rumney <jasonr@gnu.org>
4083
4084 * w32term.c (x_produce_glyphs): Handle composite characters.
4085 (x_draw_glyph_string_foreground)
4086 (x_draw_composite_glyph_string_foreground): Restore old font.
4087
4088 2000-10-31 Miles Bader <miles@lsi.nec.co.jp>
4089
4090 * minibuf.c (read_minibuf): Reset the undo history just before
4091 starting the recursive-edit.
4092
4093 2000-10-30 Gerd Moellmann <gerd@gnu.org>
4094
4095 * xfaces.c (menu_face_change_count): New variable.
4096 (Finternal_set_lisp_face_attribute): Increment it for changes
4097 of the `menu' face.
4098 (realize_basic_faces): Reflect changes in the `menu' faces
4099 in menu bars.
4100
4101 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
4102 dy obtained from the iterator's y-position after moving from
4103 scroll_margin_pos to PT; see comment there.
4104
4105 * xdisp.c (safe_eval_handler): Call add_to_log.
4106
4107 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
4108 is not a symbol or string.
4109
4110 * xdisp.c (echo_area_display): Don't perform a display update from
4111 inside redisplay. The update will happen anyway at the end of
4112 redisplay, and it can confuse redisplay (GC messages while
4113 redisplaying, for instance.)
4114
4115 2000-10-30 Stefan Monnier <monnier@cs.yale.edu>
4116
4117 * xrdb.c (x_load_resources): Use the class name in the defaults.
4118
4119 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
4120 (regex_compile): Catch bogus \(\1\).
4121
4122 2000-10-30 Gerd Moellmann <gerd@gnu.org>
4123
4124 * xterm.c (x_alloc_nearest_color): Fix last change to compare
4125 RGB values.
4126
4127 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
4128 we have a color cache, check that the cached color equals the
4129 allocated color. If not, clear the color cache.
4130
4131 * window.c (displayed_window_lines): Change buffers if necessary.
4132 Fix computation of displayed lines.
4133
4134 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
4135 update_menu_bindings to DEFVAR_BOOL.
4136
4137 2000-10-30 Kenichi Handa <handa@etl.go.jp>
4138
4139 * search.c (Fset_match_data): Be sure to make search_regs always sane.
4140
4141 * puresize.h (BASE_PURESIZE): Increase to 680000.
4142
4143 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
4144
4145 2000-10-29 Jason Rumney <jasonr@gnu.org>
4146
4147 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
4148
4149 * w32term.c (w32_bdf_per_char_metric): Negate descent.
4150 (w32_cache_char_metrics): Handle possibility that 'x' does not
4151 exist in a BDF font.
4152 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
4153
4154 * w32bdf.h (bdffont): Add nchars.
4155
4156 * w32bdf.c (set_bdf_font_info): Set it.
4157 (w32_BDF_TextOut): Swap byte order of double byte characters.
4158 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
4159
4160 2000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
4161
4162 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
4163 don't override the colors in frame's param_alist, unless they are
4164 unspecified.
4165
4166 * term.c (reassert_line_highlight): If inverse_video is non-zero,
4167 reverse the effect of the highlight flag.
4168
4169 2000-10-27 Ken Raeburn <raeburn@gnu.org>
4170
4171 * window.h (Fwindow_live_p): Declare.
4172
4173 * undo.c (record_delete): Check that last_undo_buffer is really a
4174 buffer before applying XBUFFER to it.
4175
4176 * keymap.c (where_is_internal): Pass lisp object, not integer, to
4177 Faref.
4178
4179 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
4180
4181 * lisp.h (KEYMAPP): New macro.
4182 (get_keymap): Remove.
4183 (get_keymap_1): Rename get_keymap.
4184
4185 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
4186
4187 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
4188
4189 * xmenu.c (single_submenu): Use KEYMAPP.
4190 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
4191 Use KEYMAPP rather than Fkeymapp.
4192
4193 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
4194
4195 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
4196 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
4197 Use KEYMAPP rather than Fkeymapp.
4198 (single_submenu): Use KEYMAPP.
4199 (w32_menu_show, w32_dialog_show): Use TRUE.
4200
4201 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
4202
4203 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
4204 (Fkeymapp): Use KEYMAPP.
4205 (get_keymap): Rename from get_keymap_1. Remove old def.
4206 Return t when autoload=0 and error=0 and the keymap needs autoloading.
4207 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
4208 (Fminor_mode_key_binding): Don't raise an error if the binding
4209 is not a keymap.
4210 (Fuse_global_map, Fuse_local_map): Allow autoloading.
4211 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
4212
4213 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
4214 Allow Vspecial_event_map to be autoloaded.
4215 (menu_bar_items): Fetch the keymap rather than using keymapp.
4216 (menu_bar_one_keymap): No need to follow func-indirect any more.
4217 (parse_menu_item): get_keymap_1 -> get_keymap.
4218 (tool_bar_items): Fetch the keymap rather than using keymapp.
4219 (read_key_sequence): Use KEYMAPP.
4220
4221 * intervals.c (get_local_map): Use get_keymap rather than following
4222 function-indirections explicitly.
4223
4224 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
4225
4226 2000-10-27 Jason Rumney <jasonr@gnu.org>
4227
4228 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
4229 point, as Windows has oversized fonts.
4230
4231 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
4232
4233 2000-10-27 Gerd Moellmann <gerd@gnu.org>
4234
4235 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
4236 (freehook, reallochook): Handle null pointer arguments.
4237 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
4238
4239 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
4240
4241 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
4242 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
4243 Giving in to popular pressure to shut up the compiler with casts.
4244
4245 2000-10-27 Gerd Moellmann <gerd@gnu.org>
4246
4247 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
4248 signed value, and use a default value computed from the font's
4249 maximum descent.
4250
4251 2000-10-27 Miles Bader <miles@lsi.nec.co.jp>
4252
4253 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
4254 that specify a negative underline position can still use underlines.
4255
4256 * window.c (Fpos_visible_in_window_p): Make POS default to
4257 WINDOW's point, not the current buffer's point.
4258
4259 2000-10-26 Dave Love <fx@gnu.org>
4260
4261 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
4262 when it's necessary.
4263
4264 2000-10-26 Gerd Moellmann <gerd@gnu.org>
4265
4266 * window.c (size_window): Compute size difference from sum of old
4267 child window sizes instead of from parent's size.
4268
4269 * xdisp.c (pos_visible_p): Change current buffer if necessary.
4270 Handle obscured lines at the top of the window.
4271
4272 * frame.c (Fdelete_frame): Doc fix. Move running the hook
4273 down after the last error condition check.
4274
4275 * frame.c (Fdelete_frame): Run delete-frame-hook.
4276
4277 2000-10-26 Kenichi Handa <handa@etl.go.jp>
4278
4279 * coding.c (decode_coding): Fix previous change (check also
4280 CODING_MODE_LAST_BLOCK).
4281
4282 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
4283
4284 * regex.c: More `unsigned char' -> `re_char' changes.
4285 Also change several `int' into `re_wchar_t'.
4286 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
4287 (PUSH_FAILURE_POINTER): Don't cast any more.
4288 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
4289 We want GCC to complain, since this piece of code makes
4290 re_match non-reentrant, which *should* be fixed.
4291 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
4292 (EXTEND_BUFFER): Use RETALLOC.
4293 (SET_LIST_BIT): Don't cast.
4294 (re_wchar_t): New type.
4295 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
4296 that those two functions will always properly return.
4297 (IMMEDIATE_QUIT_CHECK): Cast to void.
4298 (analyse_first): Use recursion rather than an explicit stack.
4299 (re_compile_fastmap): Can't fail anymore.
4300 (re_search_2): Don't check re_compile_fastmap for failure.
4301 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
4302 Now also sets the new value (passed in a new argument).
4303 (re_match_2_internal): Use it.
4304 Also, use a new var `reg' of type size_t when looping through regs
4305 rather than reuse the inappropriate `mcnt'.
4306
4307 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
4308 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
4309 (where_is_internal): Renamed from Fwhere_is_internal.
4310 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
4311 (Fwhere_is_internal): New function wrapping where_is_internal.
4312 (where_is_internal_1): Handle the case where we're filling the cache.
4313 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
4314
4315 2000-10-25 Miles Bader <miles@gnu.org>
4316
4317 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
4318
4319 2000-10-25 Gerd Moellmann <gerd@gnu.org>
4320
4321 * window.c (pos_fully_visible_p): Removed.
4322 (Fpos_visible_in_window_p): Use pos_visible_p to determine
4323 if position is visible and/or fully visible.
4324
4325 * lisp.h (pos_visible_p): Add prototype.
4326
4327 * xdisp.c (pos_visible_p): New function.
4328
4329 2000-10-25 Kenichi Handa <handa@etl.go.jp>
4330
4331 * process.c (send_process): If OBJECT is t, it means that the data
4332 is from C string, but we should encode it. Before calling
4333 setup_raw_text_coding_system, be sure to flush out data by the
4334 previous coding system.
4335
4336 2000-10-25 Miles Bader <miles@lsi.nec.co.jp>
4337
4338 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
4339 assignment of startpos to prev when startpos == pos.
4340
4341 * editfns.c (find_field): Set the field stickiness correctly from
4342 overlay fields. Use renamed `text_property_stickiness'.
4343 (text_property_stickiness): Renamed from `char_property_stickiness'.
4344 Only check text properties, not overlays.
4345 * textprop.c (get_char_property_and_overlay): New function.
4346 (Fget_char_property): Use it.
4347 * intervals.h (get_char_property_and_overlay): Add declaration.
4348
4349 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
4350
4351 * keymap.c: Use AREF, ASET and ASIZE macros.
4352 (Fmake_sparse_keymap): Docstring fix.
4353 (synkey): Remove.
4354 (shadow_lookup): Move up.
4355 Handle the case where lookup-key returns an integer.
4356 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
4357 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
4358 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
4359 Simplify/rewrite the keymap-finding code.
4360 Add check for command shadowing, using shadow_lookup.
4361
4362 2000-10-24 Stefan Monnier <monnier@cs.yale.edu>
4363
4364 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
4365 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
4366 a symbol.
4367
4368 2000-10-24 Andrew Innes <andrewi@gnu.org>
4369
4370 * dired.c (directory_files_internal_unwind): New function.
4371 (directory_files_internal): Use it to ensure closedir is called
4372 even if expand-file-name or file-attributes throw, eg. because of
4373 a user interrupt. Also enable immediate_quit while calling
4374 re_search, so that matching can be interrupted as well.
4375
4376 2000-10-24 Andrew Innes <andrewi@gnu.org>
4377
4378 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
4379 NT-Emacs only.
4380 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
4381 so that re_search functions only quit when callers expect them to.
4382
4383 2000-10-24 Kenichi Handa <handa@etl.go.jp>
4384
4385 * regex.c (regex_compile): Change the way of handling a range from
4386 a char less than 256 to a char not less than 256.
4387
4388 2000-10-24 Gerd Moellmann <gerd@gnu.org>
4389
4390 * window.c (size_window): Prevent setting window's width or
4391 height to a negative value (esp. with XSETFASTINT).
4392
4393 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
4394 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
4395 (protect_malloc_state) [GC_MALLOC_CHECK &&
4396 GC_PROTECT_MALLOC_STATE]: New function.
4397 (PROTECT_MALLOC_STATE): New macro.
4398 (__malloc_initialize, morecore, _malloc_internal)
4399 (_free_internal) _realloc_internal): Use it to make _heapinfo
4400 read-only outside of gmalloc.
4401
4402 * keymap.c: Update copyright.
4403
4404 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
4405 a symbol.
4406
4407 2000-10-24 Colin Walters <walters@cis.ohio-state.edu>
4408
4409 * filelock.c (unlock_all_files): Use unlock_file to expand each
4410 buffer's file_truename before trying remove its lock file.
4411
4412 2000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
4413
4414 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
4415 or CRLF, decode EOLs.
4416
4417 2000-10-24 Kenichi Handa <handa@etl.go.jp>
4418
4419 * window.c (Fdisplay_buffer): Fix doc.
4420
4421 2000-10-23 Jason Rumney <jasonr@gnu.org>
4422
4423 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
4424 ASCII font of default fontset on Windows.
4425
4426 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
4427 xterm.c comment below).
4428
4429 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
4430
4431 2000-10-23 Gerd Moellmann <gerd@gnu.org>
4432
4433 * xterm.c (x_connection_closed): Reset handling_signal.
4434
4435 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing null.
4436
4437 2000-10-23 Miles Bader <miles@gnu.org>
4438
4439 * window.c (window_scroll_pixel_based, window_scroll_line_based):
4440 Pass nil for FULLY argument to Fpos_visible_in_window_p to
4441 maintain old behavior.
4442 * minibuf.c (Fminibuffer_complete): Likewise.
4443
4444 2000-10-23 Miles Bader <miles@lsi.nec.co.jp>
4445
4446 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
4447 that when a font can't be exactly centered, it errs up rather than
4448 down.
4449
4450 2000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
4451
4452 * fns.c (Fbase64_decode_string): The decoded result should be unibyte.
4453
4454 2000-10-23 Andrew Choi <akochoi@i-cable.com>
4455
4456 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
4457
4458 * dispnew.c [macintosh]: Include macterm.h.
4459 (init_display) [macintosh]: Initialization for window system.
4460
4461 * emacs.c (main) [macintosh]: Call syms_of_textprop,
4462 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
4463 syms_of_search, x_term_init, and init_keyboard before calling
4464 init_window_once. Also, call syms_of_xmenu.
4465
4466 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
4467 default fontset to Monaco.
4468
4469 * frame.c [macintosh]: Include macterm.h. Remove declarations of
4470 NewMacWindow and DisposeMacWindow.
4471 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
4472 instead of calling NewMacWindow and setting fields of
4473 f->output_data.mac directly. Call init_frame_faces.
4474 (Fdelete_frame) [macintosh]: Remove unused code.
4475 (Fmodify_frame_parameters) [macintosh]: Call
4476 x_set_frame_parameters instead of mac_set_frame_parameters.
4477
4478 * frame.h [macintosh]: Define menu_bar_lines field in struct
4479 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
4480
4481 * keyboard.c [macintosh]: Include macterm.h.
4482 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
4483 and menu_bar_activate_event type events as for X and NT.
4484 (make_lispy_event) [macintosh]: Construct lisp events of type
4485 MENU_BAR_EVENT as for X and NT.
4486
4487 * sysdep.c [macintosh]: Remove declaration for sys_signal.
4488 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
4489 (sys_subshell) [macintosh]: Remove definition entirely.
4490 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
4491 Vwindow_system_version here. Remove initialization of
4492 Vx_bitmap_file_path.
4493 (read_input_waiting): Correct the number of parameters passed to
4494 read_socket_hook.
4495 Move all Macintosh functions to mac/mac.c.
4496
4497 * term.c [macintosh]: Include macterm.h.
4498
4499 * window.c [macintosh]: Include macterm.h.
4500
4501 * xdisp.c [macintosh]: Include macterm.h. Declare
4502 set_frame_menubar and pending_menu_activation.
4503 (echo_area_display) [macintosh]: Do not return if terminal frame
4504 is the selected frame.
4505 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
4506 Allow only the selected frame to set menu bar.
4507 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
4508 calling FRAME_EXTERNAL_MENU_BAR (f).
4509 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
4510
4511 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
4512 and check_x. Declare XCreateGC. Define x_create_gc and
4513 x_free_gc. Initialize font_sort_order.
4514 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
4515 but call x_list_fonts instead of w32_list_fonts.
4516 (Finternal_face_x_get_resource) [macintosh]: Do not call
4517 display_x_get_resource.
4518 (prepare_face_for_display) [macintosh]: Set xgcv.font.
4519 (realize_x_face) [macintosh]: Load the font if it is specified in
4520 ATTRS.
4521 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed to Qt.
4522
4523 2000-10-22 Stefan Monnier <monnier@cs.yale.edu>
4524
4525 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
4526 is nil: since we go to the end of submap anyway, we'd end up
4527 setting nil to nil.
4528 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
4529 doesn't obey autoload.
4530
4531 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
4532
4533 * msdos.c (dos_set_window_size): Update screen dimension variables.
4534
4535 2000-10-21 Jason Rumney <jasonr@gnu.org>
4536
4537 * w32term.c (w32_cache_char_metrics): Double check that font is
4538 really fixed pitch before trusting tmPitchAndFamily.
4539
4540 2000-10-21 Andrew Innes <andrewi@gnu.org>
4541
4542 * w32gui.h (w32_char_font_type): Move enum from w32term.c
4543
4544 * w32term.h: Extern decl for w32_cache_char_metrics.
4545
4546 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
4547
4548 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
4549 (w32_unload_font): Free per_char array if present.
4550
4551 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
4552 cached information in emulated XFontStruct to handle common cases
4553 quickly. Do not allocate XCharStruct for return.
4554 (w32_native_per_char_metric): New function.
4555 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
4556 allocating one.
4557 (x_produce_glyphs): Don't get an HDC. Change calls to
4558 w32_per_char_metric to match arg change above. Remove calls to
4559 free results.
4560 (w32_get_glyph_overhangs): Ditto.
4561 (w32_cache_char_metrics): New function.
4562
4563 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
4564 ($(BLD)/casefiddle.$(O)): Remove compile command.
4565 ($(BLD)/gmalloc.$(O)): Remove compile command.
4566 ($(BLD)/dispnew.obj):
4567 ($(BLD)/keyboard.obj):
4568 ($(BLD)/w32inevt.obj):
4569 ($(BLD)/w32bdf.obj):
4570 ($(BLD)/alloc.obj):
4571 ($(BLD)/buffer.obj):
4572 ($(BLD)/editfns.obj):
4573 ($(BLD)/emacs.obj):
4574 ($(BLD)/fileio.obj):
4575 ($(BLD)/fns.obj):
4576 ($(BLD)/indent.obj):
4577 ($(BLD)/insdel.obj):
4578 ($(BLD)/intervals.obj):
4579 ($(BLD)/minibuf.obj):
4580 ($(BLD)/print.obj):
4581 ($(BLD)/scroll.obj):
4582 ($(BLD)/sysdep.obj):
4583 ($(BLD)/textprop.obj):
4584 ($(BLD)/widget.obj):
4585 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
4586 ($(BLD)/term.obj): Add dependency on dispextern.h.
4587
4588 * makefile.nt ($(BLD)\dispnew.obj):
4589 ($(BLD)\keyboard.obj):
4590 ($(BLD)\w32inevt.obj):
4591 ($(BLD)\w32bdf.obj):
4592 ($(BLD)\alloc.obj):
4593 ($(BLD)\buffer.obj):
4594 ($(BLD)\editfns.obj):
4595 ($(BLD)\emacs.obj):
4596 ($(BLD)\fileio.obj):
4597 ($(BLD)\fns.obj):
4598 ($(BLD)\indent.obj):
4599 ($(BLD)\insdel.obj):
4600 ($(BLD)\intervals.obj):
4601 ($(BLD)\minibuf.obj):
4602 ($(BLD)\print.obj):
4603 ($(BLD)\scroll.obj):
4604 ($(BLD)\sysdep.obj):
4605 ($(BLD)\textprop.obj):
4606 ($(BLD)\widget.obj):
4607 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
4608 ($(BLD)\term.obj): Add dependency on dispextern.h
4609
4610 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
4611
4612 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
4613 with an additional argument of Qt.
4614
4615 2000-10-21 Miles Bader <miles@gnu.org>
4616
4617 * window.c (pos_fully_visible_in_window_p): New function.
4618 (Fpos_visible_in_window_p): Add FULLY argument.
4619 Use pos_fully_visible_in_window_p.
4620 (window_scroll_pixel_based, window_scroll_line_based): Update
4621 calls to Fpos_visible_in_window_p.
4622 * lisp.h (Fpos_visible_in_window_p): Update prototype
4623
4624 2000-10-20 Gerd Moellmann <gerd@gnu.org>
4625
4626 * alloc.c (toplevel): Conditionalize compilation of mem_*
4627 functions differently.
4628
4629 2000-10-20 Jason Rumney <jasonr@gnu.org>
4630
4631 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
4632 mem_init where it used to be. mem_z etc not defined otherwise.
4633
4634 2000-10-20 Gerd Moellmann <gerd@gnu.org>
4635
4636 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
4637 GC_MALLOC_CHECK.
4638 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
4639 structure definition and related variabled to the top of the file.
4640 Include this code when GC_MALLOC_CHECK is defined.
4641 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
4642 register/unregister allocated region.
4643 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
4644 which isn't allocated.
4645 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
4646 something which is already in use.
4647 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
4648 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
4649 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
4650 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
4651
4652 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
4653 _malloc_internal instead of malloc.
4654 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
4655 of free.
4656
4657 2000-10-20 Andrew Innes <andrewi@gnu.org>
4658
4659 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
4660 Windows.
4661 (my_strftime) <macro>: Don't use macro arg list when redefining as
4662 _strftime_copytm.
4663 (my_strftime) <function>: Supply 0 as ut argument.
4664
4665 2000-10-19 Jason Rumney <jasonr@altavista.net>
4666
4667 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
4668 including dispextern.h, as it stops faces from working.
4669
4670 * w32fns.c (Fx_create_frame): Don't bother calling
4671 face-set-after-frame-default since the caller does it for us
4672 anyway. Clean up calls to x_get_arg to be consistent with X.
4673
4674 * w32term.c (x_produce_glyphs): Handle
4675 unibyte_display_via_language_environment correctly.
4676 (w32_draw_box_rect): Fix the calculation of width and height.
4677
4678 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
4679 as it has stopped working.
4680 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
4681 menu-bar.
4682
4683 2000-10-19 Gerd Moellmann <gerd@gnu.org>
4684
4685 * eval.c (skip_debugger): Prevent a compiler warning.
4686 (Fcondition_case): Likewise.
4687 (Fbacktrace_frame): Use a null interactive spec.
4688
4689 2000-10-19 Kenichi Handa <handa@etl.go.jp>
4690
4691 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
4692
4693 2000-10-18 Gerd Moellmann <gerd@gnu.org>
4694
4695 * strftime.c: Sync with glibc, file version 1.78.
4696 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
4697 should no longer be used according to ISO 8601.
4698
4699 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
4700 no map for meta_prefix_char, don't try to use it as a keymap.
4701 Instead, if T_OK is non-zero, look up a default binding, if any,
4702 otherwise, if T_OK is zero, return nil.
4703
4704 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
4705 (x_to_xcolors, png_load): Use x_query_color.
4706
4707 * xterm.c (x_color_cells, x_query_colors, x_query_color):
4708 New functions.
4709 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
4710 which can be slow.
4711 (x_copy_color, x_alloc_lighter_color): Likewise.
4712
4713 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
4714 (x_query_color, x_query_colors): Add prototype.
4715
4716 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
4717 check_string_bytes only if not noninteractive, increase count to 50.
4718
4719 2000-10-18 Miles Bader <miles@lsi.nec.co.jp>
4720
4721 * insdel.c (adjust_markers_for_delete): Handle before-insertion
4722 markers correctly.
4723
4724 2000-10-17 Gerd Moellmann <gerd@gnu.org>
4725
4726 * alloc.c (pure_bytes_used): Renamed from pureptr.
4727 (ALIGN): New macro.
4728 (pure_alloc): New function.
4729 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
4730 Use it.
4731 (Fpurecopy): Use PURE_POINTER_P.
4732
4733 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
4734 PT has moved backward.
4735
4736 * xdisp.c (cursor_row_p): Take continued lines into account.
4737
4738 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
4739 string's size_byte.
4740 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
4741 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
4742 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
4743 string allocated.
4744
4745 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
4746 of selective display off while searching for the next line start.
4747
4748 2000-10-17 Kenichi Handa <handa@etl.go.jp>
4749
4750 * Makefile.in (term.o): Depend on dispextern.h.
4751
4752 2000-10-16 Stefan Monnier <monnier@cs.yale.edu>
4753
4754 * keymap.c (keymap_memberp): Ensure that nil is not a member.
4755
4756 2000-10-16 Gerd Moellmann <gerd@gnu.org>
4757
4758 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
4759 the iterator at the beginning, so that they can be set later on,
4760 for instance in reseat_at_next_visible_line_start, without being
4761 overwritten.
4762
4763 * xfns.c (pbm_format): Add :foreground and :background keywords.
4764 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
4765 (xbm_load): Recognize foreground and background color specifications.
4766
4767 2000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
4768
4769 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
4770
4771 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern declaration.
4772
4773 * msdos.c (IT_set_face): Compare highlighted face with the default
4774 face, and invert colors if these faces' colors are identical.
4775 (Fmsdos_remember_default_colors): Don't swap foreground and
4776 background colors in initial_colors[].
4777 (IT_set_frame_parameters): Don't swap frame's foreground and
4778 background pixels. If ALIST includes "(reverse . t)", swap
4779 foreground-color and background-color properties in frame's
4780 param_alist. If the original frame's param_alist doesn't specify
4781 the colors, store unspecified-fg and unspecified-bg, reversed if
4782 required.
4783
4784 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
4785 the colors are unspecified and reversed, reverse fore- and back-
4786 ground in the returned value.
4787 (Fframe_parameter): Ditto.
4788
4789 2000-10-16 Gerd Moellmann <gerd@gnu.org>
4790
4791 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
4792 get_last_unchanged_at_beg_row.
4793 (find_first_unchanged_at_end_row): Renamed from
4794 get_first_unchanged_at_end_row.
4795 (find_first_unchanged_at_end_row): Convert assertions to
4796 unconditional tests which abort. When looking for a row in
4797 unchanged text, don't go further back than first_text_row.
4798
4799 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
4800 Don't add in the last line's height when deciding if the new
4801 position is below the scroll margin.
4802
4803 2000-10-16 Miles Bader <miles@gnu.org>
4804
4805 * editfns.c (Fconstrain_to_field): Check carefully for field
4806 boundaries if either OLD_POS or NEW_POS has a non-nil field
4807 property, even if they're the same.
4808
4809 2000-10-16 Kenichi Handa <handa@etl.go.jp>
4810
4811 * xterm.c (x_draw_box_rect): Fix the calculation of width and
4812 height for XFillRectangle.
4813
4814 2000-10-15 Stefan Monnier <monnier@cs.yale.edu>
4815
4816 * syntax.c (Fstring_to_syntax): New function extracted from
4817 Fmodify_syntax_entry.
4818 (Fmodify_syntax_entry): Use it and document the ! and | fences.
4819 (skip_chars, Fforward_comment): Remove unused variables.
4820 (syms_of_syntax): Add defsubr for string-to-syntax.
4821 (describe_syntax): Add code for comment and string fences.
4822
4823 2000-10-14 Stefan Monnier <monnier@cs.yale.edu>
4824
4825 * keymap.c (access_keymap): Add AUTOLOAD parameter.
4826 Do the meta->esc mapping. Call get_keyelt before returning.
4827 Start scanning from the second element (the first is always `keymap')
4828 to make it easier to detect when we reach a parent map.
4829 Handle the case of inheriting from a symbol whose function is a map.
4830 (Fkeymap_parent): Also handle the `inherit from symbol' case.
4831 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
4832 (get_keyelt, Flookup_key): Update call to access_keymap.
4833 Remove the meta->esc mappings.
4834 (define_as_prefix): Delete old disabled code.
4835 (menu_item_p): New function.
4836 (where_is_internal_1): Skip over the few remaining menu items.
4837 * lisp.h (access_keymap): Update prototype.
4838 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
4839 Update call to access_keymap.
4840 (follow_key, read_key_sequence): Update calls to access_keymap.
4841 Remove the meta->esc mappings.
4842
4843 2000-10-13 Gerd Moellmann <gerd@gnu.org>
4844
4845 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
4846 with additional argument.
4847
4848 * xdisp.c (cursor_row_p): New function.
4849 (try_cursor_movement, display_line): Use it.
4850
4851 * xdisp.c (append_space): Also save/restore iterator's current
4852 character and its length.
4853
4854 * xdisp.c (init_from_display_pos): Add an assertion.
4855 (handle_stop): Don't set iterator's add_overlay_start.
4856 (handle_invisible_prop): Likewise.
4857 (load_overlay_strings): If text under an overlay is invisible,
4858 take both before- and after-strings into account when the iterator
4859 is positioned either at the start or at the end of the overlay.
4860 (forward_to_next_line_start): Rewritten.
4861 (reseat_at_next_visible_line_start): Rewritten.
4862 (set_iterator_to_next): Add parameter RESEAT_P.
4863
4864 * dispextern.h (struct it): Remove member add_overlay_start.
4865 (set_iterator_to_next): Change prototype.
4866
4867 2000-10-13 Kenichi Handa <handa@etl.go.jp>
4868
4869 * coding.c (code_convert_region): Be sure to initialize
4870 coding->category_idx.
4871 (decode_coding_string): Set coding->src_multibyte and
4872 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
4873 (encode_coding_string): Set coding->src_multibyte and
4874 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
4875
4876 2000-10-12 Stefan Monnier <monnier@cs.yale.edu>
4877
4878 * xfns.c (Fx_create_frame): Don't bother calling
4879 face-set-after-frame-default since the caller does it for us anyway.
4880
4881 2000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
4882
4883 * window.c (coordinates_in_window): Fix detection of vertical line
4884 on character terminals.
4885
4886 2000-10-12 Gerd Moellmann <gerd@gnu.org>
4887
4888 * editfns.c (save_excursion_save): Additionally record the
4889 selected window.
4890 (save_excursion_restore): If buffer was visible in a window, and a
4891 different window was selected, and the old selected window is
4892 still live, restore point in that window.
4893
4894 2000-10-12 Kenichi Handa <handa@etl.go.jp>
4895
4896 * xterm.c (x_produce_glyphs): Handle
4897 unibyte_display_via_language_environment correctly.
4898
4899 * regex.c (regex_compile): Change the way of handling a range from
4900 unibyte char to multibyte char.
4901
4902 * syntax.c (skip_chars): Change the way of handling a range from
4903 unibyte char to multibyte char.
4904
4905 * process.c (read_process_output): Cancel previous change.
4906
4907 2000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
4908
4909 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
4910
4911 * charset.c (Ffind_charset_string): Doc fix.
4912 (Ffind_charset_region): Doc fix.
4913
4914 2000-10-11 Kenichi Handa <handa@mule.m17n.org>
4915
4916 * process.c (read_process_output): Fix previous change. Adjust
4917 multibyteness of text to insert in a buffer by
4918 string_make_unibyte/multibyte instead of Fstring_as_unibyte/multibyte.
4919
4920 2000-10-10 Andreas Schwab <schwab@suse.de>
4921
4922 * alloc.c (mark_object): Remove all workarounds installed on
4923 1993-08-08.
4924
4925 2000-10-10 Kenichi Handa <handa@etl.go.jp>
4926
4927 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before returning.
4928 (base64_encode_1): Make it work for a text of multibyte form.
4929 (Fbase64_decode_region): Allocate sufficient memory for multibyte
4930 case. Don't call str_to_multibyte because base64_decode_1
4931 produces correct multibyte form for eight-bit codes.
4932 (Fbase64_decode_string): Adjusted for the change of base64_decode_1.
4933 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
4934 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
4935 codes.
4936
4937 * charset.h (CHAR_STRING): Optimized for single byte characters.
4938
4939 2000-10-09 Andreas Schwab <schwab@suse.de>
4940
4941 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
4942 -1 after socket is closed, to fall through to error processing.
4943
4944 2000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
4945
4946 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
4947 variables. If ALIST includes foreground-color or
4948 background-color, change also the colors of the default face for
4949 this frame.
4950
4951 2000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
4952
4953 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
4954 them extern (they are defined on xfaces.c).
4955 (syms_of_msdos): Don't intern and don't staticpro
4956 Qbackground_color and Qforeground_color.
4957
4958 2000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
4959
4960 * frame.c (Fframe_parameter): For non-windowed frames, if
4961 f->param_alist says foreground or background color is unspecified,
4962 call tty_color_name to return the color name computed from the
4963 frame's current colors.
4964
4965 2000-10-06 Dave Love <fx@gnu.org>
4966
4967 * terminfo.c (ospeed): Don't declare.
4968
4969 * sysdep.c: Don't include string.h.
4970 (h_errno): Declare conditional also on TRY_AGAIN.
4971
4972 * charset.c (Ffind_charset_string): Doc fix.
4973
4974 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
4975 (Fbase64_decode_region, Fbase64_decode_string): More explicit
4976 error messages.
4977
4978 2000-10-05 Dave Love <fx@gnu.org>
4979
4980 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
4981 position like menu-bar.
4982
4983 2000-10-05 Gerd Moellmann <gerd@gnu.org>
4984
4985 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
4986
4987 * xdisp.c (handle_single_display_prop): Use safe_call1.
4988 (safe_call): Renamed from call_function.
4989 (safe_call1): New function.
4990 (handle_fontified_prop): Use safe_call1 instead of call1.
4991 (safe_eval): Renamed from eval_form.
4992 (safe_eval_handler): Renamed from eval_handler.
4993 (handle_single_display_prop, display_mode_element): Use safe_eval
4994 instead of eval_form.
4995
4996 * xfaces.c (merge_face_heights): Use safe_call instead of
4997 call_function.
4998
4999 * keyboard.c (show_help_echo): Use safe_call instead of
5000 call_function; use safe_eval instead of eval_form.
5001
5002 * lisp.h (safe_call): Renamed from call_function.
5003 (safe_eval): Renamed from eval_form.
5004 (safe_call1): Add prototype.
5005
5006 2000-10-05 Miles Bader <miles@lsi.nec.co.jp>
5007
5008 * xfns.c (image_ascent): Rearrange ascent calculation for the
5009 has-a-font case.
5010
5011 2000-10-04 Stefan Monnier <monnier@cs.yale.edu>
5012
5013 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
5014 (where_is_internal_1): Don't bother ignoring menu-items any more.
5015
5016 2000-10-04 Gerd Moellmann <gerd@gnu.org>
5017
5018 * keyboard.c (update_menu_bindings): New variable.
5019 (parse_menu_item): Use AREF. If update_menu_bindings
5020 is 0, don't update menu bindings.
5021 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
5022
5023 2000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
5024
5025 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
5026 to `mark_object'.
5027
5028 2000-10-02 Stefan Monnier <monnier@cs.yale.edu>
5029
5030 * syntax.c (forw_comment): Match nestedness of ender/starter.
5031 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
5032 (prev_char_comstart_first): Remove.
5033 (back_comment): Check two-char comment markers more carefully
5034 to better handle overlapping cases like *//* or /* */* */ ...
5035 Match nestedness of ender/starter.
5036
5037 2000-10-02 Dave Love <fx@gnu.org>
5038
5039 * config.in (HAVE_GAI_STRERROR): Add undef.
5040
5041 * process.c (Fopen_network_stream): Use it.
5042
5043 * m/alpha.h (NO_REMAP): Don't define.
5044
5045 2000-10-02 Gerd Moellmann <gerd@gnu.org>
5046
5047 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
5048 return with a string converted to an integer or vice versa when
5049 Vmocklisp_arguments is t.
5050 (Fsignal): Likewise. The function can return for `quit'.
5051 (struct gcpro): Declare member `var' to point to a volatile
5052 Lisp_Object.
5053
5054 * eval.c (error): Prevent compiler warning.
5055
5056 2000-09-30 Stefan Monnier <monnier@cs.yale.edu>
5057
5058 * keymap.c (keymap_memberp): New function.
5059 (Fset_keymap_parent): Use it.
5060 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
5061 Use keymap_memberp to avoid creating cycles.
5062 (access_keymap): Use KEYMAPP.
5063
5064 2000-09-30 Gerd Moellmann <gerd@gnu.org>
5065
5066 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
5067 gai_strerror. Make sure xerrno is set if connect fails. Improve
5068 error recovery.
5069
5070 2000-09-29 Jason Rumney <jasonr@gnu.org>
5071
5072 * w32term.c (w32_char_font_type, w32_encode_char)
5073 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
5074 (w32_bdf_per_char_metric): New function.
5075 (w32_per_char_metric): Use it.
5076 (x_draw_glyph_string_background): Always draw background for BDF
5077 glyphs.
5078
5079 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
5080 GDI object which is a scarce resource.
5081
5082 * w32bdf.c (search_file_line): Fix skipping of whitespace.
5083 (get_quoted_string): Fix limit on memchr search.
5084 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
5085 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
5086 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
5087 (get_cached_font_char, cache_char_offset): Use macro
5088 BDF_CODEPOINT_RANGE_COVER_P.
5089 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
5090 (clear_cached_bitmap_slots): New function.
5091 (GET_HEX_VALUE): G-Z, g-z are not hex.
5092 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
5093 (get_bitmap_with_cache): Use new cache implementation.
5094 (create_offscreen_bitmap): New function.
5095 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
5096
5097 * w32term.c (x_produce_glyphs): If the distance from the current
5098 position to the next tab stop is less than a canonical character
5099 width, use the tab stop after that.
5100 (x_draw_glyphs): Handle case START and END are out of bounds more
5101 carefully.
5102 (x_clear_mouse_face): Block/unblock input.
5103 (x_display_and_set_cursor): Don't show a hollow box cursor for
5104 buffers whose cursor_type is nil.
5105
5106 2000-09-29 Gerd Moellmann <gerd@gnu.org>
5107
5108 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar disappears.
5109
5110 * dispextern.h (updating_frame): Declare extern.
5111
5112 2000-09-29 Andreas Schwab <schwab@suse.de>
5113
5114 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
5115
5116 2000-09-29 Gerd Moellmann <gerd@gnu.org>
5117
5118 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
5119 use its function definition.
5120 (tool_bar_items): Likewise.
5121
5122 * lisp.h (fatal): Declare NO_RETURN.
5123
5124 2000-09-29 Kenichi Handa <handa@etl.go.jp>
5125
5126 * keymap.c: Remove the line "#undef NULL".
5127
5128 2000-09-28 Gerd Moellmann <gerd@gnu.org>
5129
5130 * xterm.c (x_make_frame_visible): Try harder to make the frame visible.
5131
5132 2000-09-28 Dave Love <fx@gnu.org>
5133
5134 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
5135
5136 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
5137
5138 * .gdbinit (xreload): Note its need on GNU/Linux.
5139
5140 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
5141 r_alloc, r_alloc_free.
5142
5143 2000-09-28 Kenichi Handa <handa@etl.go.jp>
5144
5145 * syntax.c (skip_chars): Handle negation correctly.
5146
5147 2000-09-27 Gerd Moellmann <gerd@gnu.org>
5148
5149 * xfaces.c (realize_default_face): Call set_lface_from_font_name
5150 with non-zero FORCE_P argument.
5151
5152 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
5153 Add assertions.
5154
5155 * xdisp.c (window_box_height): Add an assertion.
5156
5157 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
5158 tool-bar than is available.
5159 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
5160
5161 2000-09-27 Dave Love <fx@gnu.org>
5162
5163 * s/irix6-5.h: Now works 64-bit. Tidied.
5164
5165 2000-09-26 Gerd Moellmann <gerd@gnu.org>
5166
5167 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
5168 instead of BITS_PER_INT.
5169 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
5170 EMACS_UINT, respectively.
5171 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
5172
5173 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
5174
5175 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
5176
5177 * window.c (freeze_window_starts): Construct last argument for
5178 foreach_window differently.
5179
5180 * xfns.c (x_decode_color): Don't return a Lisp_Object.
5181
5182 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
5183 EMACS_UINT instead of `int' and `unsigned int'.
5184 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
5185
5186 * frame.h (struct frame): Make the `nothing' member of union
5187 output_data an EMACS_INT.
5188
5189 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug hunting.
5190 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
5191 size in the sdata structure.
5192 (SDATA_NBYTES, SDATA_DATA): New macros.
5193 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
5194 differently for the different layout of the sdata structure.
5195 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
5196 in sdata.
5197 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
5198 Check that size recorded in the string size and size recorded in
5199 the sdata structure agree.
5200
5201 2000-09-25 Dave Love <fx@gnu.org>
5202
5203 * buffer.c: Include stdio.h.
5204
5205 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
5206
5207 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
5208
5209 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
5210 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as size_t.
5211 (__malloc_extra_blocks): Declare as __malloc_size_t.
5212
5213 2000-09-25 Gerd Moellmann <gerd@gnu.org>
5214
5215 * alloc.c (mark_image): Use GC_NILP instead of NILP.
5216
5217 * keyboard.c (show_help_echo): Set help_echo_showing_p.
5218 (read_char): If help-echo is showing, preserve the echo area
5219 when redisplaying.
5220
5221 * xdisp.c (help_echo_showing_p): New variable.
5222 (set_message): Reset it to 0.
5223 (init_xdisp): Initialize help_echo_showing_p.
5224
5225 * dispextern.h (help_echo_showing_p): Declare extern.
5226
5227 * config.in: Fix typo in __GNUC_MINOR__.
5228
5229 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
5230
5231 * s/freebsd.h (POSIX_SIGNALS): Define.
5232
5233 * xterm.c (x_clear_mouse_face): Block/unblock input.
5234
5235 2000-09-24 Dave Love <fx@gnu.org>
5236
5237 * fns.c (base64_encode_1): Fix last change.
5238
5239 2000-09-22 Gerd Moellmann <gerd@gnu.org>
5240
5241 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
5242
5243 * xdisp.c (try_window_reusing_current_matrix): More fixes
5244 for the case window has a header-line.
5245
5246 2000-09-22 Dave Love <fx@gnu.org>
5247
5248 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
5249 a doc string.
5250
5251 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
5252
5253 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
5254
5255 2000-09-21 Gerd Moellmann <gerd@gnu.org>
5256
5257 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
5258 for GCC >= 2.5.
5259
5260 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error):
5261 Declare NO_RETURN.
5262
5263 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
5264 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
5265 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
5266 warnings.
5267
5268 * marker.c (byte_char_debug_check): Return void.
5269
5270 * xfns.c (Fx_create_frame): Set default frame parameter value
5271 for tool-bar-lines to 1.
5272
5273 * dispnew.c (scrolling_window): Compare y-positions of rows
5274 equal at the start. Some simplification.
5275
5276 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
5277 reused rows' y-position in the case window has a header-line, and
5278 new window start is greater than old window start.
5279
5280 * process.c (process_sent_to): New variable.
5281 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
5282 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
5283 Declare more parameters volatile.
5284
5285 * lread.c (Vrecursive_load_depth_limit): New variable.
5286 (Fload): Check recursive loads whose recursion depth exceeds
5287 Vrecursive_load_depth_limit.
5288 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
5289
5290 2000-09-20 Gerd Moellmann <gerd@gnu.org>
5291
5292 * fileio.c (Fread_file_name): Doc fix.
5293
5294 * editfns.c (Fmessage_or_box): Doc fix.
5295
5296 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
5297
5298 * xfns.c (xbm_scan): Allow C-style comments.
5299
5300 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
5301 symbols are specified, add color translations to the cache.
5302 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New functions.
5303 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
5304 xpm_cache_color.
5305 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
5306 structures to xpm_init_color_cache.
5307
5308 2000-09-19 Gerd Moellmann <gerd@gnu.org>
5309
5310 * dispnew.c (update_window_line): Make sure to always draw mode-lines.
5311
5312 2000-09-19 Andrew Innes <andrewi@gnu.org>
5313
5314 * makefile.nt (bootstrap-emacs): Don't change directory.
5315
5316 2000-09-19 Kenichi Handa <handa@etl.go.jp>
5317
5318 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
5319
5320 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
5321 If output buffer is too small, signal an appropriated error.
5322
5323 2000-09-18 Dave Love <fx@gnu.org>
5324
5325 * keyboard.c (menu_bar_items, tool_bar_items)
5326 (current_active_maps): Remove redundant get_local_map call.
5327
5328 2000-09-18 Gerd Moellmann <gerd@gnu.org>
5329
5330 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
5331 cursor for buffers whose cursor_type is nil.
5332
5333 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
5334 a feature to implement that is already implemented.
5335 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
5336 warnings.
5337
5338 * xfns.c (x_clear_image_1): New function.
5339 (x_clear_image): Use it.
5340 (x_from_xcolors): Use x_clear_image_1; don't free the image's mask.
5341
5342 * dispnew.c (update_window): Move test for invisible lines
5343 at the top to update_window_line.
5344 (update_window_line): Handle invisible lines here.
5345
5346 * xfns.c (clear_image_cache): Clear current matrices of all
5347 frames sharing an image cache. Block input while freeing
5348 images. Fix timestamp comparison.
5349 (x_clear_image): Also free the mask.
5350
5351 * xfns.c (lookup_image): Block input while loading the image so
5352 that we won't get interrupted in a state where the image isn't yet
5353 set up completely.
5354 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
5355 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
5356 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
5357 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock input.
5358
5359 2000-09-16 Gerd Moellmann <gerd@gnu.org>
5360
5361 * dispnew.c (update_window): Make sure to make desired rows
5362 current even if they are completely invisible at the top
5363 of a window.
5364
5365 2000-09-15 Gerd Moellmann <gerd@gnu.org>
5366
5367 * xfns.c (lookup_image): Build mask before applying an algorithm.
5368 Recognize algorithm `disabled'.
5369 (cross_disabled_images): New variable.
5370 (COLOR_INTENSITY): New macro.
5371 (x_detect_edges): Use COLOR_INTENSITY.
5372 (x_disable_image): New function.
5373 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
5374
5375 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
5376 disabled state, don't apply an image transformation algorithm if
5377 the user specified an image for the disabled state. Use
5378 `:algorithm disabled' for creating a disabled item's image if the
5379 user hasn't specified an image.
5380
5381 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
5382 allocation functions with the XPM lib.
5383 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
5384 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
5385 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
5386 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
5387 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New functions.
5388 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
5389 functions, if possible, because these handle color allocation
5390 failure more gracefully.
5391 (Fimage_mask_p): New function.
5392
5393 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
5394 (Qedge_detection, Qheuristic): New symbols.
5395 (syms_of_xfns): Initialize new symbols.
5396 (lookup_image): Handle `:mask X', `:algorithm emboss', and
5397 `algorithm (edge-detection ...)'.
5398 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
5399 (tiff_format, gif_format, gs_format): Add `:mask'.
5400 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
5401 (GIF_MASK, GS_MASK): New enumerators.
5402 (x_laplace_read_row, x_laplace_write_row): Functions removed.
5403 (emboss_matrix, laplace_matrix): New variables.
5404 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
5405 (x_edge_detection): New functions.
5406 (x_laplace): Rewritten in terms of x_detect_edges.
5407 (x_build_heuristic_mask): If image has a mask, free it.
5408
5409 2000-09-14 Andrew Innes <andrewi@gnu.org>
5410
5411 * makefile.w32-in: Revert to Unix line endings.
5412
5413 2000-09-14 Andrew Innes <andrewi@gnu.org>
5414
5415 * makefile.w32-in: Standardize indentation somewhat.
5416 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
5417 cater for differences between shells.
5418
5419 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
5420
5421 2000-09-14 Gerd Moellmann <gerd@gnu.org>
5422
5423 * xterm.c (x_produce_glyphs): If the distance from the current
5424 position to the next tab stop is less than a canonical character
5425 width, use the tab stop after that.
5426
5427 2000-09-14 Dave Love <fx@gnu.org>
5428
5429 * buffer.c (alloc_buffer_text): Fix xmalloc call.
5430
5431 2000-09-14 Gerd Moellmann <gerd@gnu.org>
5432
5433 * xdisp.c (handle_fontified_prop): While running fontification
5434 functions, bind `fontification-functions' and
5435 `after-change-functions' to nil.
5436
5437 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
5438 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
5439
5440 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
5441
5442 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
5443 USE_MMAP_FOR_BUFFERS.
5444
5445 * insdel.c (make_gap): Use enlarge_buffer_text.
5446
5447 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
5448 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
5449 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
5450 from former r_alloc_* functions in ralloc.c.
5451 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New variables.
5452 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
5453 (mmap_init) [REL_ALLOC_MMAP]: New function.
5454 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
5455 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
5456 BUFFER_FREE.
5457
5458 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
5459 (enlarge_buffer_text): Add prototype.
5460
5461 * ralloc.c: Remove everything having to do with the use of mmap.
5462
5463 2000-09-13 Gerd Moellmann <gerd@gnu.org>
5464
5465 * sound.c (Fplay_sound): Doc fix.
5466
5467 * keyboard.c: Avoid some more compiler warnings.
5468 (parse_tool_bar_item): Ignore cached key bindings.
5469
5470 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
5471 and allocation of Lisp data.
5472
5473 2000-09-12 Gerd Moellmann <gerd@gnu.org>
5474
5475 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
5476 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
5477 defaults first.
5478
5479 * lread.c (Fload): Put code checking for recursive loads in #if 0.
5480
5481 2000-09-12 Miyashita Hisashi <himi@meadowy.org>
5482
5483 * ccl.c: Comment fixed.
5484 (MAX_MAP_SET_LEVEL): Increased to 30.
5485 (PUSH_MAPPING_STACK): Enclose with do-while block.
5486 (POP_MAPPING_STACK): Likewise.
5487 (stack_idx_of_map_multiple): New variable.
5488 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
5489 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
5490 call the corresponding CCL program by CCL_CALL_FOR_MAP_INSTRUCTION.
5491 (ccl_driver) <CCL_MapSingle>: Likewise.
5492 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
5493 with the case where looking up process reaches to the end of
5494 map-set, and call CCL programs as the above change.
5495
5496 2000-09-11 Gerd Moellmann <gerd@gnu.org>
5497
5498 * xfns.c (png_load, jpeg_load): Declare some variables volatile
5499 that might be clobbered by longjmp.
5500 (check_x_display_info, x_decode_color, create_frame_xic)
5501 (Fx_display_backing_store, Fx_display_visual_class)
5502 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler warnings.
5503
5504 * lread.c (init_lread): Set Vloads_in_progress to nil.
5505 (Fload): Show list of recursively loaded files, when signaling an
5506 error.
5507
5508 * lread.c (Vloads_in_progress): New variable.
5509 (record_load_unwind): New function.
5510 (Fload): Check for recursive loads.
5511 (syms_of_lread): Initialize Vloads_in_progress.
5512 (read_integer, read1): Avoid some compiler warnings.
5513
5514 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
5515 compiler warnings.
5516
5517 2000-09-11 Miles Bader <miles@gnu.org>
5518
5519 * editfns.c (Fbuffer_string): Doc fix.
5520
5521 2000-09-10 Gerd Moellmann <gerd@gnu.org>
5522
5523 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
5524
5525 2000-09-09 Ken Raeburn <raeburn@gnu.org>
5526
5527 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
5528 whether to include other header files.
5529
5530 2000-09-09 Gerd Moellmann <gerd@gnu.org>
5531
5532 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
5533 by Fmemq as a boolean.
5534
5535 2000-09-08 Stefan Monnier <monnier@cs.yale.edu>
5536
5537 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
5538
5539 2000-09-08 Gerd Moellmann <gerd@gnu.org>
5540
5541 * ralloc.c (mmap_fd): Remove initializer which can make it
5542 read-only in a dumped Emacs.
5543 (mmap_fd_1): New variable.
5544 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
5545 restore it from there.
5546 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
5547 unconditionally so that mmap_fd can be initialized there.
5548 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
5549 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
5550 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
5551
5552 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
5553
5554 * xdisp.c (dump_glyph_row): Fix printf format string.
5555 (display_line, move_it_in_display_line_to): Avoid compiler warnings.
5556
5557 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
5558
5559 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
5560 inheritance.
5561
5562 * xdisp.c (try_window_id): When trying to locate cursor in
5563 unchanged rows at the top, handle the case that we can't find it.
5564
5565 * xterm.c (x_draw_glyphs): Handle case START and END are out
5566 of bounds more carefully.
5567
5568 2000-09-08 Dave Love <fx@gnu.org>
5569
5570 * s/sol2.h (REL_ALLOC_MMAP): Define.
5571 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
5572
5573 * ralloc.c: Don't include string.h (redundant).
5574 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
5575 [!MAP_ANON]: Include fcntl.h.
5576 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
5577 (r_alloc, r_re_alloc, r_alloc_free)
5578 (mmap_enlarge, mmap_set_vars): Use it.
5579 (r_alloc_init_fd): New function.
5580 (__morecore) [SYSTEM_MALLOC]: Don't declare.
5581 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
5582 malloc type.
5583
5584 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
5585 Remove vm-limit.o.
5586
5587 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
5588 change to __NetBSD__.
5589
5590 2000-09-08 Kenichi Handa <handa@etl.go.jp>
5591
5592 * search.c (compile_pattern): Check the multibyteness of cached
5593 string and PATTERN.
5594
5595 2000-09-08 Miles Bader <miles@gnu.org>
5596
5597 * xfaces.c (default_face_vector): Function removed.
5598 (Finternal_merge_in_global_face): Restore old global/local
5599 attribute override order. Use inline loop instead of calling
5600 default_face_vector.
5601
5602 2000-09-07 Gerd Moellmann <gerd@gnu.org>
5603
5604 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
5605 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
5606 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
5607 where necessary, in case POINTER_TYPE is `void'.
5608
5609 2000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
5610
5611 * frame.c (make_terminal_frame): Initialize frame foreground and
5612 background colors to unspecified, for the initial instance of an
5613 MSDOS frame.
5614
5615 2000-09-07 Gerd Moellmann <gerd@gnu.org>
5616
5617 * ralloc.c (mmap_find): Fix overlap computation.
5618 (mmap_enlarge): Compute nbytes before trying to find an
5619 overlapping region.
5620
5621 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
5622 instead of `!='.
5623
5624 * lread.c (syms_of_lread): Change value of regexp
5625 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
5626
5627 * xmenu.c (xdialog_show): When looking up the selection in
5628 menu_items, take `quote' boundaries into account; this corresponds
5629 to a nil ITEM in x-popup-dialog.
5630
5631 2000-09-07 Kenichi Handa <handa@etl.go.jp>
5632
5633 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
5634 not 0x81.
5635 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
5636
5637 * coding.c (encode_coding_sjis_big5): Use translation table for
5638 encoding, not decoding. Fix the handling of latin-jisx0201.
5639 Check for the charset katakana-jisx0201 too.
5640 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
5641 (detect_coding_sjis): Check the byte sequence more rigidly.
5642
5643 2000-09-07 Gerd Moellmann <gerd@gnu.org>
5644
5645 * xfaces.c (Vparam_value_alist): New variable.
5646 (syms_of_xfaces): Initialize it.
5647 (Finternal_set_lisp_face_attribute): Avoid more consing.
5648
5649 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
5650 specially.
5651 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
5652 (Qbackground_mode): New variable.
5653 (syms_of_frame_1): Initialize Qbackground_mode.
5654
5655 * lisp.h (Qdisplay): Declare extern.
5656
5657 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
5658 change face on all frames, and change the default for new frames.
5659
5660 2000-09-07 Dave Love <fx@gnu.org>
5661
5662 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
5663
5664 2000-09-07 Kenichi Handa <handa@etl.go.jp>
5665
5666 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
5667
5668 * charset.c: Include composite.h
5669 (lisp_string_width): New function.
5670 (Fstring_width): Call lisp_string_width instead of strwidth.
5671
5672 * Makefile.in (charset.o): Depends on composite.h.
5673
5674 * process.c (read_process_output): Before inserting the decoded
5675 text in the buffer, adjust the multibyteness.
5676
5677 2000-09-06 Gerd Moellmann <gerd@gnu.org>
5678
5679 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
5680 buffer's text buffer is null, map new memory.
5681
5682 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
5683 POINTER_TYPE and size_t.
5684 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
5685 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
5686 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
5687 [REL_ALLOC_MMAP]: New macros.
5688 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
5689 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
5690 [REL_ALLOC_MMAP]: New functions.
5691
5692 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
5693 before and after unexec.
5694
5695 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
5696 text buffers if necessary.
5697
5698 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
5699 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
5700 in prototypes.
5701
5702 * config.in (HAVE_MMAP): Add #undef.
5703
5704 2000-09-05 Gerd Moellmann <gerd@gnu.org>
5705
5706 * frame.c (Qdisplay_type): New variable.
5707 (syms_of_frame_1): Initialize it.
5708 (Fframe_parameter): New function that avoids consing.
5709 (syms_of_frame): Defsubr it.
5710
5711 * buffer.c (Fother_buffer): Consider buffers as invisible when
5712 they are displayed in a window on an invisible frame.
5713
5714 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
5715 get-largest-window always return nil.
5716
5717 2000-09-04 Gerd Moellmann <gerd@gnu.org>
5718
5719 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
5720 variable; recognize Emacs 19 elc files.
5721
5722 2000-09-04 Miles Bader <miles@gnu.org>
5723
5724 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
5725 before initially popping up the menu, so the menu doesn't flash
5726 when the face settings are significantly different from the defaults.
5727
5728 2000-09-04 Stefan Monnier <monnier@cs.yale.edu>
5729
5730 * regex.c (WIDE_CHAR_SUPPORT): New macro.
5731 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
5732 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
5733 (BIT_UNIBYTE): Remove.
5734 (re_match_2_internal): Delete corresponding code and streamline the
5735 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
5736 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
5737 (re_wctype_t): New type.
5738 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
5739 (regex_compile): Use them and fix handling of overly long char classes.
5740
5741 2000-09-03 Andrew Innes <andrewi@gnu.org>
5742
5743 * makefile.w32-in: Change to DOS line endings.
5744
5745 * s/ms-w32.h (ORDINARY_LINK): New define.
5746
5747 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
5748 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
5749
5750 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
5751 (distclean): Delete them here instead.
5752
5753 * w32proc.c (compare_env): Convert to uppercase for comparison,
5754 not lowercase, to match how the native Windows shell works.
5755
5756 2000-09-03 Jason Rumney <jasonr@gnu.org>
5757
5758 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
5759 CVS changes the line-ends when checking in/out on DOS/Windows.
5760
5761 * makefile.nt (emacs): Do not change directory to run temacs, as
5762 the load-path is set relative to current directory.
5763
5764 2000-09-03 Miles Bader <miles@gnu.org>
5765
5766 * xterm.c (x_alloc_lighter_color_for_widget): New function.
5767
5768 2000-09-02 Gerd Moellmann <gerd@gnu.org>
5769
5770 * xdisp.c (redisplay_mode_lines): New function.
5771 (display_mode_lines): Return number of mode lines displayed.
5772 (echo_area_display): Use redisplay_mode_lines to draw garbaged
5773 mode lines. Don't temporarily bind redisplay-dont-pause to t.
5774
5775 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
5776 string.h and strings.h.
5777 (index) [HAVE_INDEX]: Add prototype.
5778
5779 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
5780 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
5781
5782 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
5783 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
5784
5785 2000-09-01 Gerd Moellmann <gerd@gnu.org>
5786
5787 * lread.c (read1): Accept `?' as symbol constituent, for
5788 compatiblity with XEmacs.
5789
5790 2000-08-31 Stefan Monnier <monnier@cs.yale.edu>
5791
5792 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
5793 (struct re_pattern_buffer): Remove newline_anchor.
5794 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
5795 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
5796 (re_max_failures, fail_stack): Use size_t rather than unsigned.
5797 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
5798 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
5799 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
5800 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
5801 Get rid of references to newline_anchor.
5802 (regcomp): Allocate and precompute a fastmap.
5803
5804 2000-08-31 Gerd Moellmann <gerd@gnu.org>
5805
5806 * lread.c (openp): GCPRO local variable `filename'.
5807
5808 2000-08-30 Stefan Monnier <monnier@cs.yale.edu>
5809
5810 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
5811
5812 * regex.c: Merge some changes from GNU libc. Add prototypes.
5813 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
5814 Use memcmp and memcpy instead of bcopy and bcmp.
5815 (init_syntax_once): Use ISALNUM.
5816 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
5817 (REG_UNSET_VALUE): Remove. Use NULL instead.
5818 (REG_UNSET, re_match_2_internal): Use NULL.
5819 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
5820 New macros.
5821 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
5822 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
5823 (regex_compile): In handle_interval, return an error rather than try to
5824 unfetch the interval if we can't find the closing brace.
5825 Obey the RE_NO_GNU_OPS syntax bit.
5826 (TOLOWER): New macro.
5827 (regcomp): Use it.
5828 (regexec): Allocate regs.start and regs.end as one block.
5829
5830 2000-08-30 Gerd Moellmann <gerd@gnu.org>
5831
5832 * xdisp.c (echo_area_display): Check display_completed instead
5833 of calling detect_input_pending.
5834
5835 * dispnew.c (update_frame): Only set display_completed here; move
5836 the update_begin and update_end calls here from update_frame_1.
5837 (update_frame_1): Don't set display_completed here, don't call
5838 update_begin/update_end.
5839
5840 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
5841 instead of store_frame_param.
5842
5843 2000-08-29 Gerd Moellmann <gerd@gnu.org>
5844
5845 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
5846 desired window matrix hasn't been displayed, use the current row
5847 instead. Make sure that only those frame rows are updated for
5848 which there exists a corresponding enabled desired row.
5849
5850 2000-08-29 Miles Bader <miles@gnu.org>
5851
5852 * xfaces.c (default_face_vector): New function.
5853 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
5854
5855 2000-08-29 Gerd Moellmann <gerd@gnu.org>
5856
5857 * lread.c (openp): Prevent temporary string passed to
5858 Ffile_readable_p from being garbage collected.
5859
5860 2000-08-28 Dave Love <fx@gnu.org>
5861
5862 * keymap.c (store_in_keymap): Add `static' to declaration.
5863
5864 2000-08-28 Gerd Moellmann <gerd@gnu.org>
5865
5866 * emacs.c, callint.c, doc.c, editfns.c
5867 (toplevel) [HAVE_STRING_H]: Include string.h.
5868 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
5869 (index): Remove prototypes which might conflict with non-standard
5870 definitions of index/strchr.
5871
5872 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
5873 (rindex): Define only if !HAVE_RINDEX.
5874
5875 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
5876
5877 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
5878
5879 2000-08-28 Miles Bader <miles@gnu.org>
5880
5881 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
5882 made inconsistent by a font-related attribute in FROM.
5883 (merge_face_inheritance): Add function comment.
5884
5885 2000-08-28 Kenichi Handa <handa@etl.go.jp>
5886
5887 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
5888 the 4th arg (PREV_EVENT) Qt to suppress input method.
5889
5890 2000-08-27 Stefan Monnier <monnier@cs.yale.edu>
5891
5892 * regex.c: Indent cpp directives and remove parens after `defined'.
5893 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
5894 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
5895 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
5896 (re_compile_pattern): Use size_t for length.
5897 (init_syntax_once): Move to a better place.
5898 * regex.h: Merge changes from GNU libc. Indent cpp directives.
5899 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
5900
5901 * syntax.c (back_comment): Detect cases where a comment-starter is
5902 actually inside another comment as in: /* a // b */ c // d \n.
5903 Make it clear that `comstart_pos' is unused for nested comments.
5904
5905 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
5906 (KEYMAPP): New macro.
5907 (Fkeymap_parent, Fset_keymap_parent): Use it.
5908 (fix_submap_inheritance): Mark it static.
5909 (define_as_prefix, describe_buffer_bindings, describe_command)
5910 (describe_translation, describe_map): Complete prototypes.
5911
5912 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
5913
5914 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
5915 to better match the key-lookup behavior.
5916
5917 2000-08-27 Gerd Moellmann <gerd@gnu.org>
5918
5919 * xfaces.c (lface_fully_specified_p): Handle :inherit.
5920 (Finternal_set_lisp_face_attribute): Fix typo in error message.
5921
5922 2000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
5923
5924 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
5925 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
5926 (xterm.o): Depend on coding.h
5927
5928 2000-08-26 Kenichi Handa <handa@etl.go.jp>
5929
5930 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
5931 the corresponding '#endif'.
5932
5933 2000-08-26 Miles Bader <miles@gnu.org>
5934
5935 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
5936 * xfaces.c (QCinherit): New variable.
5937 (syms_of_xfaces): Initialize it.
5938 (LFACE_INHERIT): New macro.
5939 (Finternal_get_lisp_face_attribute)
5940 (merge_face_vector_with_property)
5941 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
5942 (check_lface_attrs): Allow new types of face height. Check
5943 inherit attribute.
5944 (CYCLE_CHECK): New macro.
5945 (merge_face_inheritance): New function.
5946 (merge_face_vectors): Merge inherited faces too. Add F and
5947 CYCLE_CHECK arguments.
5948 (merge_face_vector_with_property, Finternal_merge_in_global_face)
5949 (lookup_named_face, lookup_derived_face, realize_named_face)
5950 (face_at_string_position, face_at_buffer_position): Supply
5951 new F and CYCLE_CHECK arguments to merge_face_vectors.
5952 (merge_face_heights): New function.
5953 (merge_face_vectors, merge_face_vector_with_property)
5954 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
5955 handle relative face heights.
5956 (lface_same_font_attributes_p): Compare heights using EQ.
5957
5958 2000-08-26 Kenichi Handa <handa@etl.go.jp>
5959
5960 * charset.c (char_to_string): Check the character validity.
5961 (char_valid_p): If C is not less than MAX_CHAR, be sure to return 0.
5962
5963 2000-08-25 Stefan Monnier <monnier@cs.yale.edu>
5964
5965 * regex.c (PUSH_FAILURE_COUNT): New macro.
5966 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
5967 Handle popping of a register's or a counter's data.
5968 (POP_FAILURE_POINT): Use the new name.
5969 (re_match_2_internal): Push counter data on the stack for succeed_n,
5970 jump_n and set_number_at and remove misleading dead code in succeed_n.
5971
5972 2000-08-25 Gerd Moellmann <gerd@gnu.org>
5973
5974 * xdisp.c (redisplay_internal): If considering all windows on all
5975 frames, update the display for each frame as soon as possible,
5976 instead of first building all desired matrices for all frames, and
5977 then updating them all.
5978 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
5979
5980 2000-08-24 Gerd Moellmann <gerd@gnu.org>
5981
5982 * bytecode.c (mark_byte_stack): Add a comment.
5983
5984 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
5985 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
5986 a graphical frame.
5987
5988 2000-08-24 Kenichi Handa <handa@etl.go.jp>
5989
5990 * minibuf.c (do_completion): Always use compare-string, not
5991 string-equal because the latter doesn't pay attention to
5992 multibyteness of strings.
5993
5994 * process.c (create_process): Don't setup raw-text coding here.
5995 (Fopen_network_stream): Don't set coding->src_multibyte and
5996 coding->dst_multibyte here.
5997 (read_process_output): For process filter, return unibyte string
5998 if default-enable-multibyte-characters is nil.
5999 (send_process): If OBJECT is multibyte text, be sure to encoded it
6000 by the specified coding system for the process. Otherwise, setup
6001 raw-text coding.
6002 (init_process): Don't initialize default-process-coding-system here.
6003
6004 2000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
6005
6006 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
6007 <scroll-down-aggressively>: Likewise.
6008
6009 2000-08-23 Kenichi Handa <handa@etl.go.jp>
6010
6011 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
6012 zero. Set coding->produced_char correctly.
6013
6014 2000-08-22 Andrew Innes <andrewi@gnu.org>
6015
6016 * makefile.w32-in: New file.
6017
6018 * unexw32.c (unexec): Ignore old_name, and use the actual location
6019 of the current executable instead. Base new_name on this.
6020
6021 * w32proc.c (create_child): Remove reference to security
6022 descriptor, which isn't needed and doesn't compile with mingw32.
6023
6024 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
6025 up dllimport attributes.
6026 (x_update_window_end): Update prototype.
6027
6028 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
6029 extern, which screws up dllimport attributes.
6030
6031 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
6032 up dllimport attributes.
6033
6034 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
6035 screws up dllimport attributes.
6036
6037 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
6038 up dllimport attributes.
6039 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
6040 screws up dllimport attributes.
6041
6042 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
6043 up dllimport attributes.
6044
6045 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
6046 screws up dllimport attributes.
6047
6048 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
6049 screws up dllimport attributes.
6050
6051 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
6052 up dllimport attributes.
6053
6054 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
6055 unnecessary extern, which screws up dllimport attributes.
6056 (main): Ditto.
6057
6058 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
6059 up dllimport attributes.
6060
6061 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
6062 unnecessary extern, which screws up dllimport attributes.
6063
6064 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
6065 screws up dllimport attributes.
6066
6067 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
6068 up dllimport attributes.
6069
6070 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
6071
6072 * w32bdf.c (search_file_line):
6073 (set_bdf_font_info):
6074 (seek_char):
6075 (w32_get_bdf_glyph):
6076 (w32_BDF_to_x_font): Fix compile warnings.
6077
6078 * w32menu.c: Include keyboard.h before frame.h. Fix compile warnings.
6079
6080 * w32select.c: Include keyboard.h before frame.h.
6081
6082 * w32fns.c (max): Define macro.
6083 (JOHAB_CHARSET): Define if not known.
6084 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
6085 (Fx_show_tip): Synch with X version.
6086
6087 * w32xfns.c: Include keyboard.h before frame.h.
6088
6089 * w32fns.c: Include keyboard.h before frame.h.
6090
6091 * w32term.c: Include keyboard.h before frame.h.
6092
6093 * fontset.c: Include keyboard.h before frame.h.
6094
6095 * w32inevt.c: Include keyboard.h before frame.h.
6096 (MOUSE_MOVED): Define if not known.
6097
6098 * minibuf.c: Include keyboard.h before frame.h.
6099
6100 * keyboard.c: Include keyboard.h before frame.h.
6101
6102 * indent.c: Include keyboard.h before frame.h.
6103
6104 * dispnew.c: Include keyboard.h before frame.h.
6105
6106 * buffer.c: Include keyboard.h before frame.h.
6107
6108 * alloc.c: Include keyboard.h before frame.h.
6109
6110 * print.c: Include keyboard.h before frame.h.
6111
6112 * process.c: Include keyboard.h before frame.h.
6113
6114 * scroll.c: Include keyboard.h before frame.h.
6115
6116 * sysdep.c: Include keyboard.h before frame.h.
6117
6118 * term.c: Include keyboard.h before frame.h.
6119
6120 * window.c: Include keyboard.h before frame.h.
6121
6122 * xdisp.c: Include keyboard.h before frame.h.
6123 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
6124
6125 * frame.c: Include keyboard.h before frame.h.
6126
6127 * w32heap.h: Undefine min, max.
6128
6129 * w32gui.h: Undefine min, max.
6130
6131 * unexw32.c: Change PUCHAR to PCHAR.
6132 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
6133 (relocate_offset):
6134 (get_section_info):
6135 (copy_executable_and_dump_data): Remove unnecessary static defs.
6136 (copy_executable_and_dump_data): Fix compile warnings.
6137
6138 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
6139
6140 * w32console.c (min): Define macro.
6141 (clear_frame, write_glyphs): Fix compile warning.
6142
6143 * w32proc.c (compare_env):
6144 (find_child_console): Fix compile warning.
6145
6146 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
6147 sys_errlist instead of _sys_errlist.
6148 (get_emacs_configuration_options): New function.
6149
6150 * s/ms-w32.h (sys_nerr): Provide default definition.
6151 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
6152 name with _ prepended.
6153 (NSIG): Define if not known.
6154 (get_emacs_configuration): Provide extern declaration.
6155 (get_emacs_configuration_options): Provide extern declaration.
6156 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
6157
6158 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
6159 (map_w32_filename):
6160 (read_unc_volume): Fix compile warning.
6161
6162 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
6163 definitions from being used.
6164
6165 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
6166
6167 * w32.c (unc_volume_file_attributes):
6168 (open_unc_volume): Make arg const.
6169
6170 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
6171 (read_input_waiting): Remove excess parameter.
6172
6173 * w32.c (init_environment): Call _access.
6174 (check_windows_init_file): Call _close.
6175 (init_user_info): Call _putenv.
6176 (init_environment): Call _putenv and _strdup.
6177 (init_ntproc): Reset volume info cache on startup.
6178
6179 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
6180 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
6181 cannot override the CRT malloc.
6182
6183 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
6184 (LINK_FLAGS): Append to original value of LINK_FLAGS.
6185
6186 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
6187 unless we are linking with a static CRT.
6188 (RVA_TO_PTR): Cast result to unsigned char*.
6189
6190 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
6191 (add_volume_info): Use xstrdup.
6192
6193 2000-08-22 Stefan Monnier <monnier@cs.yale.edu>
6194
6195 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
6196 (do_completion, Fminibuffer_complete_word): Use it.
6197 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
6198 var so it can take non-boolean values.
6199
6200 2000-08-21 Gerd Moellmann <gerd@gnu.org>
6201
6202 * editfns.c (find_field): Formatting changes.
6203 (toplevel): Some old-style function forward declarations
6204 changed to prototypes, some new protypes added, some functions
6205 made static.
6206
6207 * lisp.h (set_time_zone_rule): Add prototype.
6208 (use_dialog_box): External declaration.
6209
6210 * keyboard.c (gen_help_event): Add parameter SIZE.
6211 (kbd_buffer_events_waiting): Slightly rewritten.
6212 (clear_event): New function.
6213 (kbd_buffer_get_event): Use it, and clear the input_events of
6214 HELP_EVENTs.
6215 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
6216 don't fill the newly created array with nils.
6217 (toplevel): Convert some old-style function forward declarations
6218 to prototypes.
6219
6220 * keyboard.h (gen_help_event): Change prototype.
6221
6222 * xterm.c (XTread_socket): Change calls to gen_help_event.
6223
6224 * w32term.c (w32_read_socket): Change calls to gen_help_event.
6225
6226 * eval.c (Fmacroexpand): Doc fix.
6227
6228 2000-08-20 Jason Rumney <jasonr@gnu.org>
6229
6230 * w32term.h (x_display_info_for_display): Remove as this function
6231 does not exist on W32.
6232
6233 * w32term.c (help_echo_window): New variable.
6234 (syms_of_w32term): staticpro it.
6235 (note_mode_line_highlight): Set it.
6236 (XTextExtents16): Removed as there is no equivalent on W32.
6237 (x_compute_glyph_string_overhangs): Incomplete body removed, as
6238 the X way of doing this will not work for W32.
6239 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
6240 (x_draw_image_foreground): Avoid drawing outside of the clip area
6241 when image doesn't have a mask.
6242 (note_mouse_highlight): Process overlays in the right order of
6243 priority. Set help_echo_window.
6244 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
6245 because that's more visible for large images.
6246
6247 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
6248 name to single_keymap_panes.
6249 (w32_menu_show): Set wv->title when dealing with titles.
6250 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
6251
6252 2000-08-21 Miles Bader <miles@gnu.org>
6253
6254 * minibuf.c (do_completion): Try again if we rewrite the input
6255 string, but no completion was done, so that any completion message
6256 will be correct.
6257
6258 2000-08-20 Gerd Moellmann <gerd@gnu.org>
6259
6260 * xfaces.c (lface_equal_p): Compare strings differently.
6261 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
6262 (realize_tty_face): Use them.
6263 (syms_of_xfaces): Initialize new variables.
6264 (map_tty_color): New function, extracted from realize_tty_face.
6265 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
6266 foreground or background color, store the new color name in the
6267 realized face; previous code trying to do this had no effect.
6268 (realize_tty_face): Use map_tty_color.
6269 (Fclear_face_cache): Set face_change_count and ensure thorough
6270 redisplay.
6271
6272 2000-08-19 Gerd Moellmann <gerd@gnu.org>
6273
6274 * undo.c (record_first_change, record_marker_adjustment): Don't
6275 use XBUFFER on last_undo_buffer which might not be a buffer.
6276
6277 2000-08-18 Kenichi Handa <handa@etl.go.jp>
6278
6279 * coding.c (decode_coding_string): Set members consumed,
6280 consumed_char, produced, produced_char of *coding correctly. If
6281 decode_coding doesn't consume any byte, don't try anymore.
6282 (encode_coding_string): Likewise.
6283
6284 2000-08-18 Gerd Moellmann <gerd@gnu.org>
6285
6286 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
6287 conditional have void type, for Standard C compilers.
6288
6289 * xdisp.c (redisplay_internal): Compare windows for equality with
6290 EQ, instead of applying XWINDOW to something that might not
6291 be a window.
6292
6293 2000-08-18 Kenichi Handa <handa@etl.go.jp>
6294
6295 * fontset.c (Finternal_char_font): Search only the selected frame
6296 for a window of the current buffer.
6297
6298 2000-08-18 Gerd Moellmann <gerd@gnu.org>
6299
6300 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
6301 Lisp_Objects.
6302
6303 * keyboard.c (kbd_buffer_get_event): Handle the case that the
6304 second half of a HELP_EVENT is found at the start of kbd_buffer.
6305
6306 2000-08-18 Miles Bader <miles@gnu.org>
6307
6308 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
6309
6310 * editfns.c (save_restriction_save): Rewrite to use markers.
6311 (save_restriction_restore): Rewrite to understand new form of data
6312 saved by save_restriction_save.
6313 (Fsave_restriction): Remove cautionary note in doc-string.
6314
6315 2000-08-17 Gerd Moellmann <gerd@gnu.org>
6316
6317 * fileio.c (build_annotations): Add a comment explaining the
6318 return value of format-annotate-function. Replace a spurious call
6319 to Flength with a CONSP test. Call format-annotate-function with
6320 a fifth arg specifying how many times the function is been called
6321 in a row, to let it choose temporary buffers appropriately.
6322
6323 2000-08-17 Dave Love <fx@gnu.org>
6324
6325 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
6326 declare make_temp_name twice.
6327
6328 * lread.c: Prototype readevalloop, load_unwind, load_descriptor_unwind.
6329 (unreadpure): Give it an arg.
6330
6331 * unexalpha.c: Prototype fatal_unexec, mark_x,
6332 update_dynamic_symbols. Declare unexec as void.
6333
6334 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
6335 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
6336
6337 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
6338 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on DOUG_LEA_MALLOC.
6339
6340 * alloca.c: Use #error.
6341 [POINTER_TYPE]: Use it.
6342
6343 * eval.c (Fdefvar): Doc fix.
6344
6345 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
6346 INITIALIZE_INTERVAL.
6347
6348 * buffer.h: Avoid DECLARE_INTERVALS.
6349
6350 * config.in: Add size_t.
6351
6352 2000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
6353
6354 * w16select.c (set_clipboard_data): If there's not enough memory
6355 to put text into clipboard, return 1, as Fw16_set_clipboard_data
6356 expects. In case of other failures, return 3.
6357 (system_error_msg): New error message.
6358 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
6359 system_error_msg.
6360
6361 2000-08-16 Gerd Moellmann <gerd@gnu.org>
6362
6363 * term.c (write_glyphs): Also turn off inverse video after turning
6364 off other appearances in case TS_exit_attribute_mode is not equal
6365 to TS_end_standout_mode.
6366 (insert_glyphs): Turn inverse video on/off for each run of glyphs
6367 with the same face.
6368 (turn_off_face): Reset standout_mode only if
6369 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
6370 is equal to TS_end_standout_mode.
6371
6372 2000-08-16 Kenichi Handa <handa@etl.go.jp>
6373
6374 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
6375 sequence at the end of the source block.
6376
6377 * ccl.c (Fccl_program_p): Docstring modified.
6378 (Fccl_execute): Likewise.
6379 (Fccl_execute_on_string): Likewise.
6380
6381 2000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
6382
6383 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
6384
6385 2000-08-16 Kenichi Handa <handa@etl.go.jp>
6386
6387 The following changes are mainly to fix bugs of
6388 encode/decode-coding-string failing if encoding/decoding return
6389 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
6390 variable conversion_buffer.
6391
6392 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
6393 decrement dst_end to avoid buffer overflow in the later call of
6394 string_as_multibyte
6395
6396 * coding.h (conversion_buffer_size, conversion_buffer)
6397 (get_conversion_buffer): Extern deleted.
6398
6399 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
6400 (conversion_buffer, conversion_buffer_size): Variables deleted.
6401 (get_conversion_buffer): Function deleted.
6402 (struct conversion_buffer): New structure.
6403 (MAX_ALLOCA): New macro.
6404 (allocate_conversion_buffer): New macro.
6405 (extend_conversion_buffer, free_conversion_buffer): New functions.
6406 (ccl_coding_driver): Set coding->result.
6407 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
6408 this is the last block of source.
6409 (encode_coding): Likewise. Handle the source block as the last
6410 one only when the whole source text is consumed.
6411 (decode_coding_string): Handle the case that the output buffer is
6412 too small to decode the whole source text. Use
6413 allocate_conversion_buffer, extend_conversion_buffer and
6414 free_conversion_buffer, not get_conversion_buffer.
6415 (encode_coding_string): Likewise.
6416 (init_coding): Function deleted.
6417 (init_coding_once): Delete code to initialize conversion_buffer_size.
6418
6419 * emacs.c (main): Don't call init_coding.
6420
6421 * msdos.c (IT_write_glyphs): Use a locally declared conversion_buffer.
6422
6423 * term.c (write_glyphs): Use a locally declared conversion_buffer.
6424 (insert_glyphs): Likewise.
6425
6426 * w32console.c (write_glyphs): Use a locally declared
6427 conversion_buffer.
6428
6429 2000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
6430
6431 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
6432 member of display_info is NULL.
6433
6434 2000-08-15 Gerd Moellmann <gerd@gnu.org>
6435
6436 * alloc.c (compact_small_strings): Use safe_bcopy, add an assertion.
6437
6438 * term.c (turn_off_face): Reset standout_mode when resetting
6439 appearances with capability `me'.
6440 (write_glyphs): Switch on inverse video before each face change.
6441
6442 2000-08-14 Dave Love <fx@gnu.org>
6443
6444 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
6445 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
6446 (lisp_free): Declare and make static.
6447
6448 * window.c: Fix embedded comment.
6449 (syms_of_window): Fix doc string.
6450
6451 2000-08-14 Gerd Moellmann <gerd@gnu.org>
6452
6453 * keymap.c (push_key_description): If C without modifiers is < 32,
6454 make sure to print `C-' before `M-', like in the manual.
6455
6456 2000-08-11 Gerd Moellmann <gerd@gnu.org>
6457
6458 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
6459 since they aren't relocated anymore.
6460 (sxhash_string): Make sure returned hash code fits in a Lisp integer.
6461
6462 * xdisp.c (try_cursor_movement): Fix handling of cursor in
6463 partially visible line which is smaller than the window's height.
6464
6465 2000-08-11 Kenichi Handa <handa@etl.go.jp>
6466
6467 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
6468 the multibyte form of eight-bit-control characters.
6469 (Fccl_execute_on_string): Initialize ccl->multibyte.
6470
6471 * ccl.h (struct ccl_program): New member multibyte.
6472
6473 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
6474
6475 2000-08-11 Kenichi Handa <handa@etl.go.jp>
6476
6477 * regex.c (regex_compile) <normal_char>: Pay attention to
6478 multibyteness.
6479 (analyse_first) <exactn>: Setup fastmap correctly for
6480 eight-bit-control characters.
6481
6482 2000-08-11 Kenichi Handa <handa@etl.go.jp>
6483
6484 * termhooks.h (enum event_kind): New member multibyte_char_keystroke.
6485
6486 * keyboard.c (make_lispy_event): Handle the new event type
6487 multibyte_char_keystroke.
6488
6489 * xterm.c: Include coding.h.
6490 (XTread_socket): Work around a bug of XmbLookupString. If the
6491 input is from XIM, decode it according to the current locale. In
6492 that case, generate multibyte_char_keystroke events.
6493
6494 2000-08-11 Kenichi Handa <handa@etl.go.jp>
6495
6496 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
6497 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
6498
6499 2000-08-10 Gerd Moellmann <gerd@gnu.org>
6500
6501 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
6502 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
6503 (move_it_in_display_line_to): Record iterator's ascent and descent
6504 before producing glyphs, and restore them when we know the glyph
6505 doesn't fit on the line.
6506 (move_it_to): Restructured so that it's easier to debug. If
6507 moving to a vpos, and not moving to an x or character position,
6508 stop as soon as the specified vpos is reached; don't move further
6509 into that line because that might change the computed line height.
6510 (try_cursor_movement): New function, extracted from the cursor
6511 movement branch of redisplay_window. If ending on a partially
6512 visible line, don't try to scroll if the cursor line is taller
6513 than the window.
6514 (redisplay_window): Use try_cursor_movement.
6515
6516 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
6517 because that function doesn't cope with variable-height lines.
6518
6519 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
6520 box cursor because that's better visible for large images.
6521
6522 2000-08-10 Miles Bader <miles@gnu.org>
6523
6524 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
6525
6526 2000-08-10 Gerd Moellmann <gerd@gnu.org>
6527
6528 * xdisp.c (Vmessages_buffer_name): New variable.
6529 (message_dolog): Use it.
6530 (syms_of_xdisp): Initialize it.
6531
6532 2000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
6533
6534 * msdos.c (IT_note_mouse_highlight): Update the calls to overlays_at.
6535 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
6536 redundant now that keyboard.h is included.
6537
6538 2000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
6539
6540 * keyboard.c (kbd_buffer_events_waiting): New function.
6541
6542 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
6543
6544 * msdos.c: Include keyboard.h.
6545 (XMenuActivate): Empty no_event events from the event buffer. If
6546 no events are left after that, call clear_input_pending.
6547 (mouse_clear_clicks): New function, code moved from mouse_init.
6548 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
6549 mouse driver to ``forget'' any past clicks.
6550
6551 * Makefile.in (msdos.o): Depend on keyboard.h.
6552
6553 2000-08-09 Gerd Moellmann <gerd@gnu.org>
6554
6555 * lisp.h (input_pending): External declaration.
6556
6557 * dispextern.h (Qredisplay_dont_pause): Declare extern.
6558
6559 * xdisp.c (echo_area_display): Display thoroughly if input is
6560 pending. Bind redisplay-dont-pause to t during the redisplay.
6561 in case input is pending.
6562
6563 * dispnew.c (Qredisplay_dont_pause): New variable.
6564 (syms_of_display): Initialize and staticpro it.
6565 (update_frame_1): Don't interrupt the display for pending input if
6566 redisplay_dont_pause is set.
6567
6568 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
6569
6570 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
6571
6572 2000-08-09 Miles Bader <miles@lsi.nec.co.jp>
6573
6574 * callproc.c (Fcall_process): Terminate the unwind-protect around
6575 the post-read-conversion of coding system.
6576
6577 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
6578 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
6579 * buffer.h (overlays_at): Update prototype.
6580 * xdisp.c (next_overlay_change): Update call to overlays_at.
6581 * xfaces.c (face_at_buffer_position): Likewise.
6582 * textprop.c (Fget_char_property): Likewise.
6583 * xterm.c (note_mouse_highlight): Likewise.
6584
6585 * minibuf.c (do_completion): Don't consider a simple change of
6586 case as `completion'.
6587
6588 2000-08-08 Ken Raeburn <raeburn@gnu.org>
6589
6590 * keyboard.c (syms_of_keyboard): Initialize last_point_position_buffer.
6591 * undo.c (record_delete): Make sure last_point_position_buffer is
6592 a buffer before comparing pointers.
6593
6594 * coding.h (decode_coding_string): Declare.
6595
6596 * intervals.h (Fprevious_single_char_property_change): Declare.
6597
6598 * textprop.c (Fprevious_single_char_property_change): Don't do
6599 arithmetic directly on lisp objects.
6600
6601 * editfns.c (find_field): Use EQ, not ==, to compare Lisp objects.
6602
6603 * keyboard.h (menu_item_eval_property): Declare.
6604
6605 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
6606 reuse as buffer name, instead of recreating (and discarding) every
6607 time a message is logged.
6608 (with_echo_area_buffer): Make callback arg A2 a lisp object.
6609 (current_message_1, truncate_message_1, set_message_1)
6610 (display_echo_area_1, resize_mini_window_1): Signatures changed.
6611 (current_message, truncate_echo_area, display_echo_area)
6612 (resize_echo_area_axactly): Changed calls.
6613
6614 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
6615 Lisp object.
6616 (Ffind_coding_systems_region_internal): First argument to Fappend
6617 must be an integer, not a Lisp object.
6618
6619 2000-08-08 Kenichi Handa <handa@etl.go.jp>
6620
6621 * charset.c (Fchar_width): Doc fix.
6622
6623 2000-08-08 Gerd Moellmann <gerd@gnu.org>
6624
6625 * charset.c (Fstring_width): Doc fix.
6626
6627 2000-08-07 Gerd Moellmann <gerd@gnu.org>
6628
6629 * xdisp.c (start_display): When starting display on a continuation
6630 line, clear ascent and descent members of the iterator structure;
6631 the height of the continued line does not affect the height of the
6632 continuation line.
6633 (make_cursor_line_fully_visible): Do nothing if cursor is on a
6634 line taller than the window.
6635 (redisplay_window) <forced window start>: Handle case that the
6636 middle of the window is not found in any row.
6637 (dump_glyph_row): Show more information.
6638 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
6639 first text line in a glyph matrix.
6640
6641 * xterm.c (x_draw_image_foreground): Avoid drawing outside
6642 of the clip area when image doesn't have a mask.
6643
6644 * fns.c (sweep_weak_table): Fix survival conditions for
6645 key-or-value and key-and-value weakness.
6646
6647 * .gdbinit (xhashtable): New command.
6648
6649 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
6650 tables out of the list of all weak hash tables.
6651
6652 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
6653 a new buffer is created, make sure echo_area_buffer[] references
6654 the new buffer.
6655
6656 2000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
6657
6658 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
6659 the doc string.
6660
6661 2000-08-07 Kenichi Handa <handa@etl.go.jp>
6662
6663 * syntax.c (skip_chars): Fix previous change. Make the handling
6664 of unibyte string consistent with that of regex search.
6665
6666 2000-08-05 Gerd Moellmann <gerd@gnu.org>
6667
6668 * xmenu.c (popup_get_selection): Use xfree instead of free.
6669
6670 * fileio.c (Finsert_file_contents): Use xfree instead of free.
6671
6672 * editfns.c (Ftranspose_regions): Use xfree instead of free.
6673
6674 * callproc.c (child_setup): Use xfree instead of free.
6675
6676 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
6677 instead of malloc.
6678 (run_mac_command, closedir): Use `xfree' instead of `free'.
6679
6680 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
6681
6682 * eval.c (error): Use xfree instead of free.
6683
6684 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
6685
6686 * fns.c: Replace `illegal' with `invalid'.
6687 (Fmake_hash_table, make_hash_table): Allow table size of 0.
6688
6689 2000-08-05 Kenichi Handa <handa@etl.go.jp>
6690
6691 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
6692 conversion.
6693
6694 2000-08-04 Noah Friedman <friedman@splode.com>
6695
6696 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
6697 docstring.
6698
6699 2000-08-04 Gerd Moellmann <gerd@gnu.org>
6700
6701 * syntax.c (skip_chars): Fix typo in error message.
6702
6703 2000-08-04 Andreas Schwab <schwab@suse.de>
6704
6705 * m/ia64.h: Moved from s/ia64.h.
6706
6707 2000-08-04 Kenichi Handa <handa@etl.go.jp>
6708
6709 * process.c (read_process_output): Big simplification. Handle
6710 composition and post-read-conversion of coding system correctly.
6711 (send_process): Handle composition correctly.
6712
6713 * callproc.c (Fcall_process): Handle post-read-conversion of
6714 coding system if any.
6715
6716 * coding.c (decode_coding_iso2022): More strict check for handling
6717 single shifting.
6718 (coding_restore_composition): Pay attention to the case that
6719 cmp_data is not set properly (because of invalid code in the
6720 source text).
6721 (run_pre_post_conversion_on_str): Include text properties in the
6722 resulting string.
6723 (decode_coding_string): Set members of coding correctly.
6724
6725 2000-08-03 Gerd Moellmann <gerd@gnu.org>
6726
6727 * s/ia64.h: New file.
6728
6729 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
6730 Use NULL instead of 0 at the end of variable argument list of
6731 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
6732 sizeof (int) < sizeof (void *).
6733
6734 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
6735 of variable argument lists of XtVaGetValues and XtVaSetValues.
6736
6737 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
6738 variable argument lists of XtVaGetValues and XtVaSetValues.
6739
6740 2000-08-02 Gerd Moellmann <gerd@gnu.org>
6741
6742 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
6743 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
6744
6745 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
6746 prototype.
6747
6748 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
6749 in call to Fsingle_key_description.
6750
6751 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
6752 Callers changed.
6753
6754 2000-08-02 Colin Walters <walters@cis.ohio-state.edu>
6755
6756 * window.c (display_buffer_reuse_frames): New variable.
6757 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
6758 frames displaying BUFFER.
6759 (syms_of_window): Define Lisp variable display-buffer-reuse-frames.
6760
6761 2000-08-01 Miles Bader <miles@gnu.org>
6762
6763 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
6764 when to constrain NEW_POS (they were pretty screwed up before).
6765
6766 2000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
6767
6768 * msdos.c (run_msdos_command): Save and restore the master
6769 environment, for the case that child_setup signals an error.
6770 When mirroring slashes in DOS shell commands, don't fail when
6771 argv[2] has embedded blanks.
6772 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
6773 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
6774 (dos_ttraw): Call mouse_setup_buttons.
6775
6776 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
6777 using alloca; free it after run_msdos_command returns.
6778
6779 2000-07-27 Dave Love <fx@gnu.org>
6780
6781 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't define.
6782 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently working.
6783
6784 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
6785
6786 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
6787
6788 * editfns.c (lisp_time_argument): Fix last change.
6789
6790 2000-07-27 Gerd Moellmann <gerd@gnu.org>
6791
6792 * fns.c (Fdelete): Make it work on vectors and strings in addition
6793 to lists.
6794
6795 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
6796 (syms_of_fns): Initialize new variables.
6797 (sweep_weak_table): Handle weakness `key-or-value' and `key-and-value'.
6798 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
6799 weakness, with t meaning the same as `key-and-value'.
6800
6801 2000-07-27 Kenichi Handa <handa@etl.go.jp>
6802
6803 * coding.h (struct coding_system): Member safe_charset deleted.
6804
6805 * coding.c (Qsafe_charsets): This variable deleted.
6806 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system):
6807 New variables.
6808 (coding_safe_chars): New function.
6809 (CODING_SAFE_CHAR_P): New macro.
6810 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
6811 checking safe_charsets member of the coding system. Caller changed.
6812 (detect_coding_iso2022): New local variable safe_chars.
6813 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
6814 safe_charsets member of the coding system.
6815 (decode_coding_iso2022): New local variable safe_chars.
6816 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
6817 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
6818 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
6819 (ENCODE_UNSAFE_CHARACTER): New macro.
6820 (encode_coding_iso2022): New local variable safe_chars. Check
6821 unsafe chars.
6822 (setup_coding_system): Delete the code to initialize
6823 coding->safe_charses
6824 (intersection, find_safe_codings): New functions.
6825 (Ffind_coding_systems_region_internal): New function.
6826 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
6827 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
6828 variable and initialize it.
6829
6830 * fns.c (char_table_ref_and_index): New function.
6831
6832 * lisp.h (char_table_ref_and_index): Add prototype.
6833
6834 2000-07-26 Sam Steingold <sds@gnu.org>
6835
6836 * editfns.c (lisp_time_argument): Added third argument `usec'.
6837 (Ffloat_time): New built-in Lisp function.
6838
6839 2000-07-26 Gerd Moellmann <gerd@gnu.org>
6840
6841 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
6842 for the character code.
6843
6844 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
6845 GNU/Linux.
6846
6847 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
6848 if called for a popup menu.
6849 (xmenu_show): Store help string in widget values.
6850
6851 2000-07-26 Dave Love <fx@gnu.org>
6852
6853 * syswait.h: Move some definitions.
6854 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
6855 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
6856 perspicuous definitions.
6857 (WTERMSIG): Fix bit pattern used.
6858
6859 2000-07-26 Kenichi Handa <handa@etl.go.jp>
6860
6861 * print.c (print_object): If vector printing is truncated, print
6862 "..." to indicate it as well as the case of list printing.
6863
6864 2000-07-25 Gerd Moellmann <gerd@gnu.org>
6865
6866 * xdisp.c (next_element_from_display_vector): Improve comments.
6867
6868 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
6869 for the character code, and the rest for the face id as in 20.x.
6870 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
6871
6872 * window.c (window_display_table): Cleaned up.
6873
6874 * syntax.c (Fforward_word): Add last arg nil in call of
6875 Fconstrain_to_field.
6876
6877 2000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
6878
6879 * fileio.c (Frename_file) [DOS_NT]: If the file names are
6880 identical but for the letter-case, don't call
6881 barf_or_query_if_file_exists.
6882
6883 2000-07-25 Miles Bader <miles@gnu.org>
6884
6885 * editfns.c (find_field): Honor special `boundary' fields.
6886 (Qboundary): New variables.
6887 (syms_of_editfns): Initialize Qboundary.
6888 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
6889 Use scan_buffer instead of find_before_next_newline, because it
6890 allows us to detect the boundary case where there's a newline at
6891 the search limit.
6892 * lisp.h (Fconstrain_to_field): Update external declaration.
6893
6894 2000-07-24 Gerd Moellmann <gerd@gnu.org>
6895
6896 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
6897 if that is nil.
6898
6899 2000-07-24 Dave Love <fx@gnu.org>
6900
6901 * s/sunos4-0.h, s/sol2.h:
6902 (LIBS_TERMCAP): Move from m/sparc.h.
6903
6904 * m/sparc.h (TERMINFO): Moved to system files (probably only
6905 relevant for sunos4 judging by its vintage).
6906 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
6907 __arch64__.
6908
6909 2000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
6910
6911 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
6912 name to single_keymap_panes.
6913
6914 2000-07-24 Andreas Schwab <schwab@suse.de>
6915
6916 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
6917
6918 2000-07-24 Gerd Moellmann <gerd@gnu.org>
6919
6920 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
6921 parameters instead of using int parameters. Expect FN to accept
6922 EMACS_INT parameters.
6923 (display_echo_area, resize_echo_area_axactly, current_message)
6924 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
6925 with new argument list.
6926 (resize_mini_window_1): New callback function.
6927 (current_message_1, truncate_message_1, set_message_1): Change
6928 parameter lists to the new format expected by with_echo_area_buffer.
6929
6930 2000-07-24 Kenichi Handa <handa@etl.go.jp>
6931
6932 * fontset.c (fontset_ref): Remove INLINE declaration.
6933 (fontset_ref_via_base): Likewise.
6934 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
6935 to downcase.
6936
6937 2000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
6938
6939 * msdos.c (IT_note_mouse_highlight): Process overlays in the
6940 correct order of priority. If help echo was found in an overlay,
6941 use that overlay as the object in which the help echo was found.
6942
6943 2000-07-22 Miles Bader <miles@gnu.org>
6944
6945 * textprop.c (Fprevious_single_char_property_change): The initial
6946 property value should be from the position preceding POSITION, not
6947 following it.
6948
6949 2000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
6950
6951 * coding.c (syms_of_coding): Doc fix for
6952 inhibit-iso-escape-detection.
6953
6954 2000-07-21 Gerd Moellmann <gerd@gnu.org>
6955
6956 * xterm.c (note_mouse_highlight): Process overlays in the right
6957 order of priority.
6958
6959 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
6960
6961 * xterm.c (note_mouse_highlight): If help-echo was found in an
6962 overlay, use that overlay as the object in which the help was found.
6963
6964 * window.c (foreach_window_1): Fix typo reversing an if-condition.
6965
6966 * window.c (foreach_window): Instead of a fake variable argument
6967 list, take one USER_DATA argument.
6968 (foreach_window_1): Likewise, and call callback functions with two
6969 args, the window and USER_DATA.
6970 (struct check_window_data): New struct.
6971 (check_window_containing): Use it.
6972 (window_from_coordinates): Set up a struct check_window_data for
6973 foreach_window.
6974 (add_window_to_list, freeze_window_start): Change parameters
6975 according to new calling convention.
6976
6977 * window.h (foreach_window): Change prototype.
6978
6979 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
6980
6981 2000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
6982
6983 * xmenu.c (menu_help_callback): Call show_help_echo with
6984 additional arguments OBJECT and POS.
6985
6986 2000-07-21 Kenichi Handa <handa@etl.go.jp>
6987
6988 * data.c (Faset): Allow storing any multibyte character in a
6989 string. Convert unibyte string to multibyte if necessary.
6990
6991 * xfns.c (x_encode_text): New function.
6992 (x_set_name): Use x_encode_text.
6993 (x_set_title): Likewise.
6994
6995 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
6996
6997 * xterm.h (x_encode_text): Add prototype.
6998
6999 2000-07-20 Dave Love <fx@gnu.org>
7000
7001 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
7002 xfree, not free.
7003
7004 2000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
7005
7006 * msdos.c (help_echo_window): New variable.
7007 (syms_of_msdos): Initialize and staticpro it.
7008 (IT_note_mode_line_highlight): Set help_echo_window.
7009 (IT_note_mouse_highlight): Ditto.
7010 (dos_rawgetc): Store help_echo_window in the second event produced
7011 for HELP_EVENTs.
7012
7013 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
7014 Record the object that generated the help echo and the position of
7015 that object in help_echo_object and help_echo_pos. Record that
7016 some glyphs in a row are displayed in mouse-face.
7017 (IT_update_begin): Don't clear mouse highlight unless one of the
7018 enabled glyph rows is marked as being displayed in mouse-face.
7019 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
7020 and position recorded in help_echo_object and help_echo_pos to the
7021 event queue.
7022 (IT_menu_display): Accept a new argument PN: the pane number of
7023 the current menu pane. Record the pane number and the item
7024 number of the item which has associated help string.
7025 (XMenuActivate): Update the prototype for help_callback in
7026 function declaration. Call IT_menu_display with the current menu
7027 pane number as an additional argument. Call help_callback with
7028 two additional arguments: the pane number and the item number of
7029 the menu item associated with the help text.
7030 (help_echo_object, help_echo_pos): New variables.
7031 (syms_of_msdos): Initialize them and staticpro help_echo_object.
7032
7033 * msdos.h (XMenuActivate): Update prototype.
7034
7035 2000-07-19 Gerd Moellmann <gerd@gnu.org>
7036
7037 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
7038 Add some more prototypes.
7039
7040 * xterm.c, xterm.h: Add some more prototypes.
7041
7042 * lisp.h (Fnext_single_char_property_change): Add prototype.
7043
7044 * dispnew.c (direct_output_for_insert): Remove confusing
7045 outer local variable mouse_face_overwritten_p.
7046 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
7047
7048 * alloc.c (allocate_string_data): Don't copy old string contents.
7049
7050 2000-07-19 Kenichi Handa <handa@etl.go.jp>
7051
7052 * coding.c (code_convert_region): Delete text properties before
7053 shrinking the conversion region.
7054
7055 2000-07-18 Gerd Moellmann <gerd@gnu.org>
7056
7057 * dispnew.c (update_text_area): Write the whole row if it
7058 has mouse-face in it.
7059
7060 * xfaces.c (face-alternative-font-family-alist): Remove
7061 DEFVAR_LISP; staticpro instead.
7062
7063 * xmenu.c (menu_help_callback): Call show_help_echo with
7064 new arguments.
7065
7066 * keyboard.c (show_help_echo): Add parameter WINDOW.
7067 (read_char): Call show_help_echo with window extracted from Lisp
7068 help event.
7069 (gen_help_event): Add parameter WINDOW.
7070
7071 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
7072
7073 * xterm.c (help_echo_window): New variable.
7074 (note_mouse_highlight, note_tool_bar_highlight): Set help_echo_window.
7075 (XTread_socket): Pass help_echo_window to gen_help_event.
7076 (syms_of_xterm): Initialize and staticpro help_echo_window.
7077
7078 2000-07-18 Dave Love <fx@gnu.org>
7079
7080 * Makefile.in: Fix dependencies of blockinput.h on atimer.h, systime.h.
7081
7082 2000-07-18 Gerd Moellmann <gerd@gnu.org>
7083
7084 * alloc.c (allocate_string_data): If string had already data
7085 assigned, copy old contents to new string data.
7086
7087 * coding.c (syms_of_coding): Fix typo in spelling of variable
7088 `inhibit-iso-escape-detection'.
7089
7090 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
7091
7092 * Makefile.in: Add dependencies on dispextern.h.
7093 (alloca.o): Don't define malloc and define EMACS_FREE instead of
7094 `free'; both can conflict with system header files.
7095
7096 2000-07-18 Kenichi Handa <handa@etl.go.jp>
7097
7098 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
7099 undefined.
7100
7101 2000-07-18 Dave Love <fx@gnu.org>
7102
7103 * window.c (Fwindow_list): Declare arg `window'.
7104
7105 2000-07-18 Kenichi Handa <handa@etl.go.jp>
7106
7107 * coding.c (setup_coding_system): Don't override the explicitly
7108 specified designations.
7109
7110 2000-07-15 Miles Bader <miles@gnu.org>
7111
7112 * editfns.c (char_property_eq, char_property_stickiness): Renamed
7113 from `text_property_eq' and `text_property_stickiness', respectively.
7114 (find_field, Fconstrain_to_field, char_property_eq)
7115 (char_property_stickiness): Changed to call char-property functions
7116 instead of text-property-only ones.
7117
7118 * textprop.c (Fnext_single_char_property_change): Made a subr (was
7119 `next_single_char_property_change'). Do more error checking, and
7120 cleanup limit behavior.
7121 (Fprevious_single_char_property_change): New function.
7122 (syms_of_textprop): Initialize new subrs.
7123
7124 * xdisp.c (display_prop_end, invisible_text_between_p):
7125 Call Fnext_single_char_property_change instead of
7126 next_single_char_property_change.
7127
7128 2000-07-15 Jason Rumney <jasonr@gnu.org>
7129
7130 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
7131 after menu is finished with.
7132 (add_menu_item): Only consider wv->title as a menu title.
7133 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
7134
7135 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
7136 null title.
7137 (FONT_REGEXP): Remove unused macro, and its sub-components.
7138 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
7139
7140 * w32term.c (help_echo_object, help_echo_pos): New variables.
7141 (note_mode_line_highlight): Store additional information about the
7142 help-echo in help_echo_object and help_echo_pos. Check both
7143 `local-map' and `keymap' properties for changing the cursor
7144 (note_mouse_highlight): Store additional information about the
7145 help-echo in help_echo_object and help_echo_pos.
7146 (note_tool_bar_highlight): Set help_echo_object to nil and
7147 help_echo_pos to -1.
7148 (w32_read_socket): Use gen_help_event instead of filling
7149 input_events manually.
7150 (syms_of_w32term): Staticpro help_echo_object.
7151 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
7152 set, arrange for a mouse-highlight redisplay in XTframe_up_to_date.
7153 (x_clear_mouse_face): New function.
7154 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
7155 (x_update_window_begin): No need to turn off the mouse
7156 highlight here.
7157 (show_mouse_face): Set the mouse_face_p flag of glyph rows
7158 depending on whether they contain glyphs highlighted in mouse-face.
7159 (x_fill_stretch_glyph_string): Consume runs of stretch
7160 glyphs instead of a single one.
7161 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
7162 with new argument list.
7163 (x_set_glyph_string_gc): Make sure the face's GC is valid.
7164 (x_append_glyph, x_append_composite_glyph)
7165 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
7166 changes in struct glyph starting 1999-12-27. See comments for
7167 xterm.c on 2000-07-05.
7168
7169 2000-07-14 Sam Steingold <sds@gnu.org>
7170
7171 * xfaces.c (realize_x_face): Fix the last patch:
7172 check `default_face' before dereferencing.
7173
7174 2000-07-14 Dave Love <fx@gnu.org>
7175
7176 * syntax.c (back_comment): Add null default in switch (for pcc).
7177
7178 2000-07-14 Kenichi Handa <handa@etl.go.jp>
7179
7180 * xfaces.c (realize_x_face): Make fontset using the base of the
7181 default_face's fontset, not using the default fontset.
7182
7183 * coding.c (inhibit_iso_escape_detection): New variable.
7184 (syms_of_coding): Make it a Lisp variable.
7185 (detect_coding_iso2022): If inhibit_iso_escape_detection is
7186 nonzero, ignore ISO2022's escape sequence.
7187
7188 2000-07-14 Gerd Moellmann <gerd@gnu.org>
7189
7190 * alloca.c (malloc) [emacs]: Define as xmalloc.
7191
7192 * xfns.c (Fx_show_tip): If frame parameters contain a position,
7193 use that instead of the mouse position. Add parameters DX and DY.
7194
7195 * dispextern.h (Fx_show_tip): Adjust number of parameters
7196 in prototype.
7197
7198 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
7199 if HELP is a function, call it with OBJECT and POS as parameters
7200 to get the help to display.
7201 (gen_help_event, kbd_buffer_store_help_event): New functions.
7202 (kbd_buffer_get_event): Construct the Lisp help-event differently.
7203 (read_char): Call show_help_echo with new parameters.
7204
7205 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
7206 Add prototypes.
7207
7208 * xterm.c (help_echo_object, help_echo_pos): New variables.
7209 (note_mode_line_highlight): Store additional information about the
7210 help-echo in help_echo_object and help_echo_pos. Check both
7211 `local-map' and `keymap' properties for changing the cursor
7212 (note_mouse_highlight): Store additional information about the
7213 help-echo in help_echo_object and help_echo_pos.
7214 (note_tool_bar_highlight): Set help_echo_object to nil and
7215 help_echo_pos to -1.
7216 (XTread_socket): Use gen_help_event instead of filling
7217 input_events manually.
7218 (syms_of_xterm): Staticpro help_echo_object.
7219
7220 * xmenu.c (menu_highlight_callback): Use
7221 kbd_buffer_store_help_event instead of setting up and input_event
7222 structure manually.
7223
7224 * xdisp.c (eval_form): GCPRO argument sexpr.
7225 (call_function): New function.
7226 (handle_single_display_prop): Use call_function and FUNCTIONP
7227 instead of checking whether if font_height is a symbol and
7228 using eval_form.
7229
7230 * eval.c (internal_condition_case_2): New function.
7231
7232 * lisp.h (FUNCTIONP): New macro.
7233 (internal_condition_case_2, call_function): Add prototypes.
7234
7235 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
7236 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
7237 Always set `arg' member of input_events.
7238 (construct_menu_click): Unused function removed.
7239
7240 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
7241
7242 * w32term.c (construct_mouse_click, construct_mouse_wheel)
7243 (construct_drag_n_drop, x_scroll_bar_handle_click)
7244 (w32_read_socket): Always set `arg' member of input_events.
7245
7246 * keyboard.c (show_help_echo): Use eval_form. Add comment.
7247
7248 * lisp.h (eval_form): Add prototype.
7249
7250 * xdisp.c (eval_form): Make it externally visible.
7251
7252 2000-07-13 Gerd Moellmann <gerd@gnu.org>
7253
7254 * xterm.c (x_handle_tool_bar_click): Store the frame in the
7255 frame_or_window slot of TOOL_BAR_EVENT input events instead of
7256 consing. For prefix events, store the frame in the `arg' slot of
7257 the event, otherwise store the key there.
7258 (XTread_socket): Instead of consing, use the frame_or_window slot
7259 of HELP_EVENTs for the frame, and the `arg' slot for the help string.
7260
7261 * xmenu.c (menu_highlight_callback): Store help string in the
7262 `arg' member of the input event; don't cons.
7263 (menubar_selection_callback): Use the `arg' slot of input events
7264 to queue additional information, instead of consing.
7265
7266 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
7267
7268 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
7269 TOOL_BAR_EVENTs.
7270 (w32_read_socket): Adapt to changes in HELP_EVENTs.
7271
7272 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
7273 input events to queue additional information, instead of consing.
7274
7275 * keyboard.c (kbd_buffer_gcpro): Renamed from
7276 kbd_buffer_frame_or_window. Now used for all Lisp objects
7277 referenced from the input queue.
7278 (kbd_buffer_store_event): Always use structure assignment for
7279 copying input events. Record all Lisp objects referenced from
7280 events in kbd_buffer_gcpro.
7281 (kbd_buffer_get_event): Construct Lisp `help-echo' events
7282 differently from input events. Test for prefix menu_bar_events
7283 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
7284 event in kbd_buffer_gcpro to nil.
7285 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
7286 frame_or_window is equal to its arg member as prefix events.
7287 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
7288 used by an input event to nil.
7289 (init_keyboard): Use two times the size of the input queue
7290 for kbd_buffer_gcpro.
7291 (syms_of_keyboard): Likewise.
7292
7293 * emacs.c (handle_USR2_signal, handle_USR1_signal):
7294 Use USER_SIGNAL_EVENT.
7295
7296 * termhooks.h (struct input_event): Add member `arg'.
7297 (MENU_BAR_EVENT): Renamed from menu_bar_event.
7298 (USER_SIGNAL_EVENT): Renamed from user_signal.
7299
7300 * xfaces.c (ASET): Remove definition.
7301
7302 * lisp.h (AREF, ASET, ASIZE): New macros.
7303
7304 * fontset.c (AREF, ASIZE): Remove definitions.
7305
7306 * fns.c (AREF): Remove definition.
7307
7308 * composite.c (AREF): Remove definition.
7309
7310 2000-07-12 Gerd Moellmann <gerd@gnu.org>
7311
7312 * dispnew.c (redraw_overlapped_rows): Add missing local.
7313 (scrolling_window): Remove debug code.
7314
7315 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
7316 Before scrolling, turn off a mouse-highlight in the window
7317 being scrolled.
7318
7319 * xterm.c (x_update_window_end): Add parameter
7320 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
7321 redisplay in XTframe_up_to_date.
7322 (x_clear_mouse_face): New function.
7323 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
7324
7325 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
7326 current glyph row.
7327 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
7328 it when any row is written to that contains glyphs highlighted in
7329 mouse-face.
7330 (update_window): Call the window update end hook with new
7331 parameter MOUSE_FACE_OVERWRITTEN_P.
7332 (direct_output_for_insert): Give up if row contains mouse-face.
7333
7334 * dispextern.h (struct redisplay_interface): Add parameter
7335 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
7336 (clear_mouse_face): New function pointer member.
7337
7338 2000-07-11 Stefan Monnier <monnier@cs.yale.edu>
7339
7340 * syntax.c (back_comment): Use one switch rather than a few `if's.
7341 Obey open_paren_in_column_0_is_defun_start.
7342 When reverting to the `slow' method, try to nicely handle the case
7343 of nested comments by checking that the comment-starter we found
7344 does indeed match the comment-ender.
7345 (scan_sexps_forward, scan_sexps_forward):
7346 Ignore excessive opening parenthesis rather than throwing an error.
7347
7348 2000-07-11 Gerd Moellmann <gerd@gnu.org>
7349
7350 * doc.c (Fsubstitute_command_keys): Handle case that a GC
7351 in Fwhere_is_internal or get_keymap_1 relocates string contents.
7352
7353 * dispnew.c (direct_output_forward_char): Give up if currently
7354 displaying a message instead of the minibuffer contents.
7355
7356 * xterm.c (x_update_window_begin): No need to turn off the mouse
7357 highlight here.
7358 (show_mouse_face): Set the mouse_face_p flag of glyph rows
7359 depending on whether they contain glyphs highlighted in mouse-face.
7360
7361 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
7362 compare the mouse_face_p flags of both rows.
7363
7364 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
7365
7366 2000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
7367
7368 * keyboard.c (show_help_echo): Accept additional parameter
7369 ok_to_overwrite_keystroke_echo.
7370 (read_char): Call show_help_echo with a zero
7371 ok_to_overwrite_keystroke_echo argument.
7372 * keyboard.h (show_help_echo): Update prototype of show_help_echo.
7373 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
7374 ok_to_overwrite_keystroke_echo argument.
7375 * w32menu.c (w32_menu_display_help): Call show_help_echo with
7376 non-zero ok_to_overwrite_keystroke_echo argument.
7377
7378 2000-07-10 Gerd Moellmann <gerd@gnu.org>
7379
7380 * xdisp.c (try_window_id): If changes are all below what is
7381 displayed in the window, and point is in the window, we still
7382 might have to find point on the display.
7383
7384 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
7385 glyphs instead of a single one.
7386 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
7387 with new argument list.
7388 (x_set_glyph_string_gc): Make sure the face's GC is valid.
7389
7390 * keymap.c (get_keymap_1): Add comment that this function can GC.
7391 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
7392 comment that functions can GC.
7393 (Fset_keymap_parent): GCPRO arg KEYMAP.
7394
7395 2000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
7396
7397 * msdos.c (XMenuActivate): After exiting the menu, restore the
7398 echo area message and erase it.
7399
7400 2000-07-10 Kenichi Handa <handa@etl.go.jp>
7401
7402 * fontset.c (Ffontset_info): Make the return value more compatible
7403 with that of Emacs 20.
7404
7405 2000-07-07 Gerd Moellmann <gerd@gnu.org>
7406
7407 * eval.c (Fsignal): Handle case that backtrace_list is null.
7408
7409 2000-07-07 Kenichi Handa <handa@etl.go.jp>
7410
7411 * ccl.c (Fccl_execute): Typo fixed.
7412
7413 2000-07-06 Gerd Moellmann <gerd@gnu.org>
7414
7415 * window.c (window_loop): Add missing gcpro1 local variable.
7416
7417 * window.c (Fwindow_list): Reverse list at the end.
7418 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
7419 means allow windows on OWINDOW's frame, only.
7420 (window_loop): Simplified; use Fwindow_list.
7421
7422 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
7423
7424 2000-07-05 Gerd Moellmann <gerd@gnu.org>
7425
7426 * xterm.c (XTread_socket): Increment handling_signal at the start,
7427 decrement it at the end.
7428
7429 * eval.c (handling_signal): New variable.
7430 (Fsignal): Abort if handling_signal is non-zero.
7431
7432 * lisp.h (handling_signal): External declaration.
7433
7434 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
7435
7436 2000-07-05 Ken Raeburn <raeburn@gnu.org>
7437
7438 Sound support for NetBSD through "Linux emulation" support:
7439 * config.in (HAVE_SOUNDCARD_H): Undef.
7440 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
7441 * Makefile.in (LIBSOUND): New variable.
7442 (LIBES): Include it.
7443 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and <soundcard.h>.
7444 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined elsewhere.
7445 (vox_open): Use DEFAULT_SOUND_DEVICE.
7446 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
7447
7448 2000-07-05 Gerd Moellmann <gerd@gnu.org>
7449
7450 * print.c (print_error_message): If Vsignaling_function is set,
7451 show it in *Messages*.
7452
7453 * lisp.h (Vsignaling_function): External declaration.
7454
7455 * eval.c (Vsignaling_function): New variable.
7456 (Fsignal): Compute it.
7457 (syms_of_eval): Staticpro it.
7458
7459 2000-07-05 Dave Love <fx@gnu.org>
7460
7461 * syswait.h: Use the autoconf recommended approach. Old code
7462 #if'd out in case we need to revert.
7463
7464 * config.in (HAVE_SYS_WAIT_H): Added.
7465
7466 2000-07-05 Andrew Innes <andrewi@gnu.org>
7467
7468 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
7469 when non-NULL instead of __morecore, to take account of buffer
7470 memory. This also solves a problem with spurious memory warnings
7471 on Windows.
7472
7473 * ralloc.c: Make real_morecore non-static.
7474
7475 * eval.c (internal_condition_case): Comment out abort if
7476 interrupt_input_blocked is not zero.
7477
7478 * makefile.nt: Add support for `bootstrap' and related targets.
7479 Include minimal debug info in emacs.exe in release build.
7480 Remove all dependencies on lisp.h, and fixup some others.
7481
7482 * w32.c (init_environment): Install code from 20.7 for providing
7483 default values for environment variables, based on the
7484 executable's own location.
7485 (map_w32_filename): Handle filenames that are longer than MAX_PATH.
7486 (sys_socket): Install socket inheritance bug fix from 20.7.
7487
7488 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
7489 here via blockinput.h).
7490
7491 2000-07-05 Stefan Monnier <monnier@cs.yale.edu>
7492
7493 * w32menu.c (w32_menu_display_help):
7494 * xmenu.c (menu_help_callback): Use show_help_echo.
7495
7496 * keyboard.h (show_help_echo): Declare.
7497
7498 * keyboard.c (show_help_echo): New function, extracted from read_char.
7499 Feval its `msg' argument if it's a cons cell.
7500 (read_char): Use it.
7501 (follow_key): Pass `autoload' to get_keyelt.
7502
7503 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
7504 (note_tool_bar_highlight, XTread_socket):
7505 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
7506 (dos_rawgetc):
7507 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
7508 (note_tool_bar_highlight, w32_read_socket):
7509 Do not gratuitously ignore non-string `help-echo' properties.
7510
7511 2000-07-05 Gerd Moellmann <gerd@gnu.org>
7512
7513 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
7514
7515 * window.c (delete_all_subwindows): Reset Vwindow_list.
7516
7517 * xterm.c (x_append_glyph, x_append_composite_glyph)
7518 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
7519 changes in struct glyph starting 1999-12-27. Some bit-fields of
7520 struct glyph were not set, which made glyphs unequal when compared
7521 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
7522 effects were the result. This also depended on the contents of
7523 memory returned by xmalloc. If flickering happens again, activate
7524 the code in clear_glyph_row that's in #if 0. If the flickering is
7525 gone with that, chances are that it is caused by something similar.
7526
7527 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
7528
7529 * dispextern.h: Add some comments.
7530
7531 * window.c (add_window_to_list): Add parameter LIST.
7532 (window_list): Order list so that, for each frame, windows are
7533 in canonical order, and so that frames appear in the list in
7534 the order given by Vframe_list.
7535 (next_window): Reverse the handling of NEXT_P.
7536
7537 2000-07-04 Gerd Moellmann <gerd@gnu.org>
7538
7539 * window.c (Vwindow_list): New variable.
7540 (make_window, delete_window): Set Vwindow_list to nil.
7541 (check_window_containing): New function.
7542 (window_from_coordinates): Rewritten.
7543 (add_window_to_list, window_list, candidate_window_p)
7544 (decode_next_window_args, next_window): New functions.
7545 (Fnext_window, Fprevious_window): Rewritten in terms of next_window.
7546 (Fwindow_list): New function.
7547 (Fother_window): Cleaned up.
7548 (foreach_window): Add a longer "variable argument list". Let
7549 callback function return 0 to indicate that cycling over windows
7550 should stop.
7551 (foreach_window_1): Likewise.
7552 (freeze_window_start): Return int.
7553 (init_window): New function.
7554 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
7555
7556 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
7557 input_event with bzero.
7558 (main): Call init_window.
7559
7560 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
7561 a menu filter.
7562
7563 2000-07-04 Kenichi Handa <handa@etl.go.jp>
7564
7565 * composite.h (make_composition_value_copy): Extern it.
7566
7567 * composite.c (make_composition_value_copy): New function.
7568
7569 * editfns.c (Fformat): While copying text properties, make each
7570 composition property value a copy.
7571
7572 * fns.c (concat): While copying text properties, make each
7573 composition property value a copy.
7574
7575 2000-07-03 Gerd Moellmann <gerd@gnu.org>
7576
7577 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
7578
7579 * fns.c (sweep_weak_table): Mark only objects that are not
7580 marked already.
7581
7582 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
7583 include those frames as candidates which have their focus
7584 redirected to the minibuffer frame.
7585
7586 2000-07-03 Stefan Monnier <monnier@cs.yale.edu>
7587
7588 * fns.c (Fputhash): Return `value' rather than nil.
7589
7590 2000-06-30 Gerd Moellmann <gerd@gnu.org>
7591
7592 * frame.c (next_frame): Don't check focus redirection in case
7593 MINIBUF is a window. Doing so excludes frames using MINIBUF
7594 unless their focus is redirected, which contradicts the
7595 specification of next-frame, and leads to infinite loops in
7596 certain situations when cycling through windows with next-window.
7597
7598 2000-06-30 Kenichi Handa <handa@etl.go.jp>
7599
7600 * coding.c (code_convert_region): Even if the length of text is
7601 zero, try to convert it if coding->type is coding_type_ccl.
7602 (decode_coding_string, encode_coding_string): Likewise.
7603
7604 2000-06-28 Gerd Moellmann <gerd@gnu.org>
7605
7606 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
7607 the display if windows_or_buffers_changed.
7608
7609 * dispnew.c (struct row_entry): New structure.
7610 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
7611 (row_table_size, old_lines, new_lines, old_lines_size)
7612 (new_lines_size, run_pool, runs_size, runs): New variables.
7613 (add_row_entry): New function.
7614 (scrolling_window): Use data structures allocated with xmalloc and
7615 held in global variables, instead of allocating them with alloca and
7616 holding them in local variables. Use a larger hash table whose
7617 size depends on glyph matrix sizes. Don't use bzero to clear the
7618 hash table; instead, clear used slots only.
7619
7620 * fns.c (next_almost_prime): Make it externally visible.
7621
7622 * lisp.h (next_almost_prime): Add prototype.
7623
7624 * s/isc4-0.h (sigunblock): Define.
7625
7626 * s/sco5.h (sigunblock): Define.
7627
7628 2000-06-27 Dave Love <fx@gnu.org>
7629
7630 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
7631 (moved to osf5-0.h).
7632 [!NOT_C_CODE]: Protect string.h stuff.
7633
7634 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
7635 (sys_siglist, NSIG): Definitions moved here from osf1.h.
7636
7637 2000-06-27 Gerd Moellmann <gerd@gnu.org>
7638
7639 * xdisp.c (resize_mini_window): Subtract the extra line spacing
7640 below the last line from the needed window height.
7641
7642 2000-06-26 Stefan Monnier <monnier@cs.yale.edu>
7643
7644 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
7645 (Fwidget_get): Use it.
7646 (syms_of_fns): Defsubr it.
7647
7648 2000-06-26 Gerd Moellmann <gerd@gnu.org>
7649
7650 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
7651 display info for XIM.
7652 (xim_open_dpy): Likewise.
7653 (xim_close_dpy): Don't free the display info's XIM.
7654
7655 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
7656
7657 * config.in (USE_XIM): New define.
7658
7659 * keymap.c (get_keyelt): For menu-items containing a `:filter
7660 FILTER', apply FILTER to the menu-item's definition to get the
7661 real definition to use.
7662
7663 * lisp.h (QCfilter): External declaration.
7664
7665 * xfns.c (Fimage_size): New function.
7666 (syms_of_xfns): Defsubr it.
7667
7668 2000-06-26 Andreas Schwab <schwab@suse.de>
7669
7670 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
7671 Fstring_as_unibyte.
7672
7673 2000-06-25 Dave Love <fx@gnu.org>
7674
7675 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag, tgetnum.
7676
7677 * Makefile.in (blockinput.h): Depend on atimer.h.
7678 (atimer.h): Depend on systime.h.
7679
7680 * blockinput.h: Protect against multiple inclusion. Include atimer.h.
7681
7682 * atimer.h: Protect against multiple inclusion. Include systime.h.
7683
7684 * lisp.h (swap_in_global_binding): Declare.
7685
7686 2000-06-24 Ken Raeburn <raeburn@gnu.org>
7687
7688 * process.c (Fopen_network_stream): Turn off atimers for duration
7689 of call to connect. (Patch from Gerd.)
7690
7691 2000-06-23 Dave Love <fx@gnu.org>
7692
7693 * ralloc.c: Maybe include unistd.h
7694
7695 * emacs.c (setgrp): Undefine before defining.
7696 (malloc_warning, set_time_zone_rule, index): Prototype.
7697
7698 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
7699 HAVE_STRUCT_TIMEZONE.
7700
7701 * s/osf1.h: Move string.h hack here from alpha.h and make it
7702 conditional.
7703 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
7704 _XOPEN_SOURCE.
7705 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
7706 (SOCKLEN_TYPE): Don't define.
7707
7708 * m/alpha.h: Remove string.h hack.
7709
7710 * s/osf5-0.h: New file.
7711
7712 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
7713 include time.h, done by systime.h.
7714 [__FreeBSD__]: Remove redundant includes.
7715
7716 * callproc.c (setpgrp): Undefine before defining.
7717 (delete_temp_file): Return Qnil to avoid warning.
7718
7719 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
7720
7721 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
7722 HAVE_X_WINDOWS.
7723
7724 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
7725
7726 * composite.h (compose_text): Declare.
7727
7728 * xterm.c: Don't include sys/types.h unconditionally. Don't
7729 protect its inclusion with !USG (following xmenu.c).
7730
7731 2000-06-23 Gerd Moellmann <gerd@gnu.org>
7732
7733 * xfns.c (x_create_tip_frame): Initialize frame's colors like
7734 in x_create_frame.
7735
7736 2000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
7737
7738 * coding.c (decode_eol_post_ccl): Special handling for undecided
7739 and inconsistent EOL types.
7740
7741 2000-06-22 Gerd Moellmann <gerd@gnu.org>
7742
7743 * xrdb.c (x_load_resources): Add default resource for scroll bar's
7744 trough color and main window's background color.
7745
7746 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events differently.
7747
7748 * xterm.h (Xt_app_con): External declaration.
7749
7750 * widget.c (EmacsFrameRealize): Fix typo.
7751
7752 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
7753
7754 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
7755 (handle_invisible_prop): Record the start of invisible text in
7756 it->add_overlay_start.
7757 (struct overlay_entry): Add member `overlay'.
7758 (handle_overlay_change): Simplify.
7759 (next_overlay_string): After having processed overlay strings at the
7760 end of the buffer, record that fact in
7761 it->overlay_strings_at_end_processed_p.
7762 (compare_overlay_entries): If before- and after-strings come
7763 from the same overlay, let before-strings come first.
7764 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
7765 (load_overlay_strings): Take it->add_overlay_start into account
7766 when adding overlay strings.
7767
7768 * dispextern.h (struct it): Add member add_overlay_start.
7769
7770 2000-06-22 Dave Love <fx@gnu.org>
7771
7772 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
7773
7774 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
7775
7776 2000-06-22 Kenichi Handa <handa@etl.go.jp>
7777
7778 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
7779 is greater than 0.
7780
7781 2000-06-21 Dave Love <fx@gnu.org>
7782
7783 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
7784
7785 2000-06-21 Stefan Monnier <monnier@cs.yale.edu>
7786
7787 * syntax.c (back_comment): Simplify string-parity counting (with
7788 the added benefit of handling multiple string-styles as long as
7789 they are not intertwined).
7790 Jump to the slow code as soon as a comment starter is found in
7791 a "string_lossage" position. Fixes the case: " /* " /* " */.
7792
7793 2000-06-21 Dave Love <fx@gnu.org>
7794
7795 * Makefile.in: Use GETLOADAVG_LIBS.
7796
7797 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
7798 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
7799
7800 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
7801
7802 * syntax.c (describe_syntax): Recognize the `n'estable bit.
7803 (Fforward_comment, scan_lists):
7804 Check the comstyle of single-char comment-starters.
7805 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
7806 we're just at the beginning of the comment (f.ex with (*) ... (*)).
7807 Check the comstyle of single-char comment-starters.
7808 Clarify control-flow around the Scomment case.
7809
7810 2000-06-20 Dave Love <fx@gnu.org>
7811
7812 * fns.c (make_hash_table, maybe_resize_hash_table):
7813 Cast arg of next_almost_prime.
7814
7815 * tparam.c [emacs]: Include lisp.h.
7816
7817 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
7818 and unistd.h.
7819
7820 2000-06-20 Gerd Moellmann <gerd@gnu.org>
7821
7822 * keyboard.c (adjust_point_for_property): Check if display
7823 property should be treated as intangible by looking at its value.
7824
7825 * xdisp.c (single_display_prop_intangible_p)
7826 (display_prop_intangible_p): New functions.
7827
7828 * dispextern.h (display_prop_intangible_p): Add prototype.
7829
7830 * xdisp.c (dump_glyph_row): Show type of glyph->object.
7831
7832 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
7833 argument to sigprocmask.
7834
7835 * s/sco5.h (sigblock): Redefined to pass a pointer as second
7836 argument to sigprocmask.
7837
7838 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
7839 sigprocmask_set, and pass a pointer to it to sigprocmask.
7840
7841 * sysdep.c (sigprocmask_set): New variable.
7842
7843 * fileio.c (make_temp_name): Don't use `%s' in string passed to
7844 report_file_error.
7845
7846 2000-06-20 Sam Steingold <sds@gnu.org>
7847
7848 * xrdb.c: Don't declare xmalloc, xrealloc.
7849
7850 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
7851
7852 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
7853 (re_comp): Cast gettext return value to avoid complaints when
7854 !HAVE_LIBINTL.
7855
7856 2000-06-20 Dave Love <fx@gnu.org>
7857
7858 * m/stride.h, m/mips.h: Don't define HAVE_GETWD, HAVE_GETTIMEOFDAY.
7859
7860 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
7861
7862 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
7863
7864 * m/alpha.h: Don't declare xmalloc, xrealloc.
7865
7866 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
7867
7868 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
7869
7870 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
7871
7872 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
7873 HAVE_GETWD.
7874
7875 * keyboard.h (poll_for_input_1): Declare.
7876
7877 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
7878
7879 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
7880
7881 * doprnt.c: Don't declare xmalloc, xrealloc.
7882
7883 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
7884 (getenv, ctime, getwd): Removed.
7885 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
7886
7887 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
7888 x_set_tool_bar_lines.
7889
7890 * config.in: Add HAVE_GETWD. Move some definitions above
7891 machine/system includes.
7892
7893 2000-06-20 Kenichi Handa <handa@etl.go.jp>
7894
7895 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
7896
7897 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
7898 contain information about ENCODING.
7899
7900 * fontset.c (FONTSET_ASCII): Use the first element of char table
7901 for an ASCII font, not defalt slot.
7902 (fontset_ref_via_base): If FONTSET doesn't contain information for
7903 C, try the default fontset.
7904 (make_fontset): Don't copy the default fontset.
7905 (fontset_font_pattern): Likewise.
7906 (accumulate_font_info): If ELT is nil, use the corresponding
7907 element in the default fontset.
7908
7909 2000-06-19 Dave Love <fx@gnu.org>
7910
7911 * syntax.c (Fparse_partial_sexp): Doc fix.
7912
7913 * regex.h: Test PROTOTYPES as well as __STDC__.
7914
7915 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
7916 errno, strerror. Put text after #endif in comment.
7917
7918 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for pcc).
7919
7920 * xterm.c (x_frame_of_widget): Likewise.
7921
7922 2000-06-19 Gerd Moellmann <gerd@gnu.org>
7923
7924 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
7925 to Vfundamental_mode_abbrev_table.
7926
7927 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
7928 bogus objects are marked. This slows down GC by ~80 percent, but
7929 it might be worth trying when debugging GC-related problems.
7930 This feature requires conservative stack marking to be enabled.
7931
7932 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
7933 returns XLookupChars, reset `modifiers' to zero.
7934
7935 2000-06-19 Dave Love <fx@gnu.org>
7936
7937 * mktime.c: Unprotoized.
7938
7939 2000-06-19 Richard Stallman <rms@gnu.org>
7940
7941 * data.c (set_internal): If variable is frame-local,
7942 store the new value immediately into the frame parameter alist.
7943
7944 2000-06-19 Ken Raeburn <raeburn@gnu.org>
7945
7946 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
7947 in the custom handler pointer.
7948
7949 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
7950 value, or checks for CHAR_META can fail when Lisp_Object is a
7951 union type.
7952 * keymap.c (get_keyelt): Likewise.
7953
7954 2000-06-19 Kenichi Handa <handa@etl.go.jp>
7955
7956 * ccl.h (struct ccl_program): New member eol_type.
7957 (struct ccl_spec): New member cr_carryover.
7958
7959 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
7960 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
7961
7962 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
7963 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
7964 (decode_eol_post_ccl): New function.
7965 (decode_coding): Don't detect EOL format here for CCL based coding
7966 systems.
7967 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
7968 decode_eol_post_ccl after running the CCL program.
7969 (code_convert_region): Don't detect EOL format here for CCL based
7970 coding systems.
7971 (decode_coding_string): Likewise.
7972
7973 2000-06-18 Ken Raeburn <raeburn@gnu.org>
7974
7975 * charset.c (update_charset_table): Use XINT on "iso_final_char"
7976 when treating it as an integer.
7977
7978 * coding.h (encode_coding_string): Declare.
7979
7980 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
7981 it as an integer.
7982
7983 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
7984 "xkeymap" to avoid shadowing the "enum map_type" value that needs
7985 to be passed to get_local_map.
7986
7987 * sound.c (Fplay_sound): Don't call make_number on
7988 Frun_hook_with_args count argument.
7989
7990 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
7991 for lisp objects in X event structure data field, when lisp
7992 objects are represented with unions.
7993 (x_scroll_bar_to_input_event): Ditto.
7994
7995 2000-06-16 Ken Raeburn <raeburn@gnu.org>
7996
7997 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
7998 termination of string. Fix sense of test whether
7999 Vline_number_display_limit is an integer.
8000
8001 2000-06-16 Gerd Moellmann <gerd@gnu.org>
8002
8003 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
8004 only if HAVE_X_WINDOWS.
8005
8006 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
8007 of titles.
8008
8009 * dispnew.c (update_frame_1): Handle case that cursor vpos is
8010 out of bounds.
8011
8012 2000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
8013
8014 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
8015 of its headers.
8016
8017 2000-06-15 Kenichi Handa <handa@etl.go.jp>
8018
8019 * coding.c (decode_coding_emacs_mule): Always set src_base at the
8020 start of the while loop.
8021
8022 2000-06-15 Gerd Moellmann <gerd@gnu.org>
8023
8024 * atimer.c (alarm_signal_handler): Add forward declaration.
8025
8026 * data.c (set_internal): Remove debug code.
8027
8028 2000-06-14 Gerd Moellmann <gerd@gnu.org>
8029
8030 * Makefile.in (bootstrap-temacs): Add `-I../src'.
8031
8032 * unexec.c (toplevel) [COFF]: Include coff.h.
8033
8034 * s/lynxos.h: New file.
8035
8036 * keymap.c (Fsingle_key_description): Enclose function key and
8037 event symbol names in angle brackets.
8038
8039 * xdisp.c (setup_echo_area_for_printing): Call
8040 message_log_maybe_newline if message_buf_print is not set.
8041
8042 * print.c (printchar, strout): Don't check message_buf_print
8043 before calling setup_echo_area_for_printing because that
8044 function does something useful even when message_buf_print is
8045 already set.
8046
8047 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines):
8048 New variables.
8049 (ensure_echo_area_buffers): Initialize echo buffer's
8050 truncate lines setting to nil.
8051 (with_echo_area_buffer): Don't set the echo buffer's truncate
8052 lines setting here.
8053 (set_message_1): Set it here instead, based on the value
8054 of message_truncate_lines.
8055 (resize_mini_window): Handle case that lines are truncated.
8056 (syms_of_xdisp): Initialize Qmessage_truncate_lines.
8057 DEFVAR_BOOL message-truncate-lines.
8058
8059 * keyboard.c (read_char): Bind message-truncate-lines to t
8060 while displaying a help-echo.
8061
8062 * lisp.h (Qmessage_truncate_lines): External declaration.
8063
8064 2000-06-13 Gerd Moellmann <gerd@gnu.org>
8065
8066 * xdisp.c (Vline_number_display_limit): Renamed from
8067 line_number_display_limit.
8068 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
8069 Extend documentation string. Initialize
8070 Vline_number_display_limit to nil meaning no limit.
8071 (decode_mode_spec): Use Vline_number_display_limit with its new
8072 meaning.
8073
8074 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
8075
8076 2000-06-13 Richard Stallman <rms@gnu.org>
8077
8078 * frame.c (Fmodify_frame_parameters): Doc fix.
8079
8080 * xfns.c (x_set_frame_parameters): Comment fix.
8081
8082 * frame.c (store_frame_param): Call swap_in_global_binding if the
8083 variable's current binding was chosen based on this frame.
8084
8085 * data.c (swap_in_global_binding): New function.
8086
8087 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
8088
8089 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
8090 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
8091
8092 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
8093
8094 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
8095
8096 2000-06-12 Jason Rumney <jasonr@gnu.org>
8097
8098 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
8099
8100 * w32.h (EMACS_W32_H): Renamed from _NT_H_
8101
8102 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
8103
8104 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
8105
8106 2000-06-12 Gerd Moellmann <gerd@gnu.org>
8107
8108 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
8109 (syms_of_xfaces): Defsubr Sdump_colors.
8110 (x_free_colors): Don't treat b&w specially on default visual.
8111 (x_free_dpy_colors): New function.
8112 (free_face_colors): Don't check visual class; it's done
8113 in x_free_colors.
8114
8115 * xterm.c (x_frame_of_widget): New function.
8116 (x_alloc_nearest_color_for_widget): Use it.
8117 (x_copy_dpy_color): New function.
8118 (x_destroy_window): Free various colors.
8119
8120 2000-06-12 Kenichi Handa <handa@etl.go.jp>
8121
8122 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
8123
8124 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
8125
8126 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
8127
8128 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
8129
8130 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
8131
8132 2000-06-11 Dave Love <fx@gnu.org>
8133
8134 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
8135
8136 2000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
8137
8138 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
8139
8140 2000-06-11 Gerd Moellmann <gerd@gnu.org>
8141
8142 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
8143 to `XEvent *'.
8144
8145 2000-06-10 Kenichi Handa <handa@etl.go.jp>
8146
8147 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
8148 (regex_compile): Fix the code for handling the case of single byte
8149 char and multibyte char being mixed in a range within [...].
8150
8151 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
8152 and dst_multibyte members of coding.
8153
8154 * charset.c (update_charset_table): Update the table
8155 bytes_by_char_head.
8156 (init_charset_once): Initialize elements of bytes_by_char_head to
8157 1 except for leading codes for private charases.
8158
8159 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
8160 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte sequence.
8161
8162 2000-06-09 Ken Raeburn <raeburn@gnu.org>
8163
8164 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
8165 access the data it doesn't point to.
8166
8167 2000-06-08 Gerd Moellmann <gerd@gnu.org>
8168
8169 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
8170 will be translated to a switch-frame event when reading the
8171 event queue. This is necessary because Emacs otherwise won't
8172 perform a switch-frame to a new frame until some other event, for
8173 example a keystroke event, forces it to do so. This has various
8174 effects, one visible being that the cursor of a frame created with
8175 C-x 5 2 or switched to with a window manager key binding like
8176 A-TAB stays hollow because selected_window isn't on the newly
8177 focused frame until the switch-frame is performed.
8178
8179 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
8180 generating a switch-frame event if necessary.
8181
8182 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
8183
8184 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
8185 it's an integer.
8186
8187 2000-06-08 Kenichi Handa <handa@etl.go.jp>
8188
8189 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a charset.
8190
8191 2000-06-07 Gerd Moellmann <gerd@gnu.org>
8192
8193 * window.c (displayed_window_lines): Take empty lines at
8194 the bottom of a window into account.
8195
8196 * window.c (displayed_window_lines): New function.
8197 (Fmove_to_window_line): Use displayed_window_lines to determine
8198 the number of lines to move, instead of using the window's height.
8199
8200 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
8201 to stop reading, even if the form read sets point to a different
8202 value when evaluated.
8203
8204 * xdisp.c (display_line): Fix code deciding in which line to
8205 put the cursor.
8206
8207 2000-06-07 Kenichi Handa <handa@etl.go.jp>
8208
8209 * fileio.c (e_write): Free composition data if stored in
8210 coding->cmp_data.
8211
8212 2000-06-06 Gerd Moellmann <gerd@gnu.org>
8213
8214 * xdisp.c (display_line): Set row's and iterator's
8215 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
8216 Set cursor even if row ends in the middle of a character.
8217 (dump_glyph_row): Print values of new flags.
8218 (redisplay_window) <cursor movement in unchanged window>: When
8219 point has been moved forward, and PT is at the end of the cursor
8220 row, don't place the cursor in the next row if the cursor row ends
8221 in the middle of a character or at ZV.
8222
8223 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
8224 (struct glyph_row): Add starts_in_middle_of_char_p and
8225 ends_in_middle_of_char_p.
8226 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
8227 ends_in_middle_of_char_p flag.
8228 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
8229
8230 * term.c (append_glyph): Revert change of 2000-06-06.
8231
8232 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
8233 padding glyph not fitting on line as whole character not
8234 fitting on line.
8235
8236 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
8237 this isn't true for images with `:ascent 100'.
8238
8239 2000-06-06 Kenichi Handa <handa@etl.go.jp>
8240
8241 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
8242 as modified if it is originally unmodified.
8243
8244 * term.c (encode_terminal_code): Change the way to check if
8245 terminal coding does any conversion.
8246 (append_glyph): Set glyph->pixel_width correctly.
8247
8248 * xdisp.c (display_line): While checking line continuation, pay
8249 attention to a padding glyph.
8250
8251 2000-06-05 Gerd Moellmann <gerd@gnu.org>
8252
8253 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
8254
8255 2000-06-05 Dave Love <fx@gnu.org>
8256
8257 * xdisp.c: Include fontset.h.
8258
8259 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
8260
8261 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
8262
8263 * dispnew.c: Conditionally include term.h.
8264
8265 * coding.h: Declare code_convert_string_norecord.
8266
8267 * frame.h (struct frame): Use volatile unconditionally.
8268
8269 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
8270
8271 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
8272
8273 * systime.h: Protect against multiple inclusion.
8274 (timezone) [USG5_4]: Define as time_t.
8275
8276 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
8277 (Foptimize_char_table, make_temp_name): Declare.
8278
8279 * Makefile.in (xdisp.o): Depend on fontset.h.
8280
8281 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
8282
8283 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
8284 (Foptimize_char_table, make_temp_name): Declare.
8285
8286 * s/irix4-0.h:
8287 * s/irix5-0.h:
8288 * s/netbsd.h: Don't define autoconfiscated MATHERR.
8289
8290 2000-06-02 Dave Love <fx@gnu.org>
8291
8292 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
8293
8294 2000-06-02 Gerd Moellmann <gerd@gnu.org>
8295
8296 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
8297 result face, set flags in that face indicating that colors may not
8298 be freed.
8299
8300 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
8301 glyph, use the ASCII NUL character to determine the face.
8302
8303 2000-06-02 Dave Love <fx@gnu.org>
8304
8305 * sysdep.c: Conditionally include stdlib.h, unistd.h.
8306 (VFORK_RETURN_TYPE): Remove.
8307
8308 * config.in: Add NO_MATHERR.
8309
8310 2000-06-01 Dave Love <fx@gnu.org>
8311
8312 * cmds.c (internal_self_insert): Don't check
8313 Vbefore_change_function, Vafter_change_function.
8314
8315 * insdel.c (signal_before_change, signal_after_change): Likewise.
8316
8317 * buffer.c (Vbefore_change_function, Vafter_change_function):
8318 Variables and their initializations deleted.
8319
8320 * callint.c (Fcall_interactively): Doc fix.
8321
8322 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
8323
8324 2000-05-31 Dave Love <fx@gnu.org>
8325
8326 * textprop.c: Revert last change -- duplicated.
8327
8328 2000-05-31 Gerd Moellmann <gerd@gnu.org>
8329
8330 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
8331 in #if 0.
8332
8333 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
8334
8335 2000-05-31 Jason Rumney <jasonr@gnu.org>
8336
8337 * search.c (Fre_search_forward, Fre_search_backward)
8338 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
8339
8340 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
8341
8342 2000-05-30 Jason Rumney <jasonr@gnu.org>
8343
8344 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
8345 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
8346
8347 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type member.
8348
8349 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
8350 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
8351 expand a nil default_filename.
8352
8353 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
8354 pointer to glyph_to_pixel_coords, not a frame.
8355
8356 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
8357 coding.h to dependencies.
8358
8359 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
8360
8361 * w32console.c (glyph_to_pixel_coords): Change first parameter to
8362 window pointer to be consistent with w32term.c and xterm.c.
8363
8364 * w32fns.c: Format and doc changes to bring closer to xfns.c.
8365 (VIETNAMESE_CHARSET): Define if not defined in system headers.
8366 (Qline_spacing, Qcenter): New variables.
8367 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
8368 (x_set_line_spacing): New function.
8369 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT macros.
8370 (x_specified_cursor_type): New function.
8371 (x_set_cursor_type): Use it.
8372 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
8373 and icon strings.
8374 (validate_x_resource_name, x_get_resource_string): Measure lengths
8375 of external strings in bytes.
8376 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
8377 GetTextExtentPoint32 with NULL title.
8378 (Fx_create_frame): Initialize Qline_spacing.
8379 (w32_load_system_font): Initialize font->double_byte_p.
8380 (x_to_w32_charset): Use Vw32_charset_info_alist.
8381 (Image, busy cursor, tooltip functions): Merged changes from
8382 xfns.c. Not yet functional on Windows.
8383
8384 * w32gui.h (W32FontStruct): Add double_byte_p member.
8385
8386 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
8387 (emacs_button_translation): Use it.
8388 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
8389 in `mask' to be set.
8390
8391 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
8392 menu strings.
8393
8394 * w32term.c: Format and doc changes to bring closer to xterm.c.
8395 (w32_char_font_type): New enum.
8396 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
8397 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
8398 (w32_encode_char): New function.
8399 (x_encode_char): Removed.
8400 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
8401 x_encode_char and w32_font_is_double_byte.
8402 (x_produce_image_glyph): Use image_ascent.
8403 (x_produce_glyphs): Use new version of w32_per_char_metric and
8404 handle NULL return value. Allow extra line spacing.
8405 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
8406 (w32_get_glyph_overhangs): Remove unicode_p param. Use
8407 w32_font_type member of glyph instead.
8408 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
8409 (fast_find_position): Make sure not to consider rows not visible
8410 in the window.
8411 (w32_read_socket) [WM_MENUSELECT]: Cannot call
8412 w32_menu_display_help with input blocked, as it can abort.
8413 (x_display_and_set_cursor): Choose cursor depending
8414 on buffer-local value of cursor_type.
8415 (x_draw_bar_cursor): Add parameter WIDTH.
8416
8417 * w32term.h (CP_DEFAULT): Define.
8418 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
8419
8420 2000-05-30 Gerd Moellmann <gerd@gnu.org>
8421
8422 * search.c (Fre_search_forward, Fre_search_backward)
8423 (Fposix_search_backward, Fposix_search_forward): Doc fix.
8424
8425 2000-05-30 Kenichi Handa <handa@etl.go.jp>
8426
8427 * coding.c (detect_coding_iso2022): Fix code for checking
8428 CODING_CATEGORY_MASK_ISO_8_2.
8429
8430 2000-05-29 Stefan Monnier <monnier@cs.yale.edu>
8431
8432 * regex.c (PREFETCH_NOLIMIT): New function.
8433 (re_match_2_internal): Use it and adjust the end_match_2 logic.
8434
8435 2000-05-29 Gerd Moellmann <gerd@gnu.org>
8436
8437 * syntax.c (find_defun_start): Move test for
8438 open_paren_in_column_0_is_defun_start outside of the loop.
8439
8440 * xdisp.c (redisplay_window): Really switch buffers when
8441 displaying mode lines, and temporarily set selected_frame to the
8442 frame of the window that's redisplayed.
8443
8444 * xfaces.c (free_realized_faces): Block/unblock input.
8445 (free_realized_multibyte_face): Ditto.
8446
8447 2000-05-29 Dave Love <fx@gnu.org>
8448
8449 * textprop.c (Qkeymap): New variable.
8450 (syms_of_textprop): Intern it.
8451
8452 * keymap.c: Include intervals.h.
8453 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
8454
8455 * Makefile.in (keymap.o): Depend on intervals.h.
8456
8457 * keyboard.c (menu_bar_items, tool_bar_items)
8458 (Fexecute_extended_command): Deal with `keymap' property.
8459 (read_key_sequence): Track map from `keymap' property as well as
8460 `local_map'.
8461
8462 * intervals.c (get_local_map): Extra arg to allow looking for
8463 `keymap' too.
8464
8465 * intervals.h (map_property): New enum.
8466 (get_local_map): Extra arg using it.
8467 (Qkeymap): Declare.
8468
8469 * lisp.h (get_local_map): Don't declare here.
8470
8471 2000-05-29 Kenichi Handa <handa@etl.go.jp>
8472
8473 * Makefile.in (callproc.o): Depend on composite.h.
8474
8475 * callproc.c: Include composite.h.
8476 (Fcall_process): Handle composition correctly.
8477
8478 * coding.h (coding_allocate_composition_data): Extern it.
8479 (coding_restore_composition): Likewise.
8480
8481 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
8482 yet allocated, finish decoding with result
8483 CODING_FINISH_INSUFFICIENT_CMP.
8484 (coding_allocate_composition_data): Make it non-static.
8485 (coding_restore_composition): Likewise.
8486
8487 2000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
8488
8489 * charset.c (syms_of_charset): Revert last change.
8490
8491 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
8492
8493 * term.c (produce_glyphs): Treat characters from the eight-bit-*
8494 charsets as unibyte, with 1-column screen width. Sent by Kenichi
8495 Handa.
8496
8497 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
8498
8499 * charset.c (syms_of_charset): Set width of character sets
8500 eight-bit-control and eight-bit-graphic to 1 column.
8501
8502 2000-05-26 Gerd Moellmann <gerd@gnu.org>
8503
8504 * config.in (HAVE_SPEED_T): New define.
8505
8506 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
8507 `extern speed_t'.
8508
8509 2000-05-26 Dave Love <fx@gnu.org>
8510
8511 * coding.c (shrink_decoding_region): Initialize eol_conversion.
8512
8513 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
8514 (Fsubr_arity): New function.
8515 (syms_of_data): Install them.
8516
8517 2000-05-26 Kenichi Handa <handa@etl.go.jp>
8518
8519 * charset.c (init_charset_once): Set the table bytes_by_char_head
8520 correctly.
8521
8522 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
8523 the default fontset to what Emacs uses by default.
8524 (check_registry_encoding): This function deleted.
8525 (Fset_fontset_font): Remove the adhoc condition for the default
8526 fontset. Allow cons in FONTNAME.
8527
8528 * fns.c (map_char_table): Ignore char-table entries for
8529 charsets eight-bit-control and eight-bit-graphic.
8530
8531 2000-05-25 Ken Raeburn <raeburn@gnu.org>
8532
8533 * emacs.c (main): Initialize keyboard syms before initializing
8534 window code, so face names are available.
8535
8536 2000-05-25 Stefan Monnier <monnier@cs.yale.edu>
8537
8538 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
8539 of an anchor at the beginning of a shy-group.
8540
8541 2000-05-25 Gerd Moellmann <gerd@gnu.org>
8542
8543 * xdisp.c (handle_invisible_prop): Don't try to skip over
8544 invisible text if end of text is already reached.
8545
8546 2000-05-25 Dave Love <fx@gnu.org>
8547
8548 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
8549
8550 * coding.c (encode_eol): Add null statement after label.
8551
8552 2000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
8553
8554 * w16select.c (Fw16_set_clipboard_data): Fix the change from
8555 2000-05-20.
8556
8557 2000-05-25 Kenichi Handa <handa@etl.go.jp>
8558
8559 * ccl.c (ccl_driver): Fix previous change.
8560
8561 2000-05-25 Kenichi Handa <handa@etl.go.jp>
8562
8563 * coding.c (run_pre_post_conversion_on_str): Set point to the
8564 beginning of buffer before calling coding->post_read_conversion.
8565 (decode_coding_string): Give correct args to
8566 run_pre_post_conversion_on_str.
8567 (encode_coding_string): Likewise.
8568
8569 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
8570 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
8571 eight-bit-graphic correctly.
8572
8573 2000-05-24 Kenichi HANDA <handa@etl.go.jp>
8574
8575 * fileio.c (Finsert_file_contents): Even if a file is not found,
8576 execute codes for setting up coding system. Call
8577 after-insert-file-functions unconditionally.
8578
8579 2000-05-24 Gerd Moellmann <gerd@gnu.org>
8580
8581 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
8582 BSD_PGRPS are not defined.
8583
8584 2000-05-24 Kenichi Handa <handa@etl.go.jp>
8585
8586 * charset.c (update_charset_table): Accept nil in LONG_NAME and
8587 DESCRIPTION.
8588 (syms_of_charset): Avoid building same strings.
8589
8590 2000-05-23 Gerd Moellmann <gerd@gnu.org>
8591
8592 * lread.c (Fload): Add a comment about the meaning of
8593 Vuser_init_file being t.
8594
8595 * puresize.h (BASE_PURESIZE): Increase to 675000.
8596
8597 * s/gnu-linux.h (setpgrp): Don't define it here because this
8598 prevents compilation on GNU/Linux systems with glib 2.2.
8599
8600 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
8601 as setpgid.
8602
8603 2000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
8604
8605 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
8606 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
8607 version.
8608 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
8609
8610 2000-05-23 Kenichi Handa <handa@etl.go.jp>
8611
8612 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8613
8614 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
8615
8616 * term.c (encode_terminal_code): Set coding->src_multibyte properly.
8617
8618 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
8619
8620 2000-05-22 Kenichi Handa <handa@etl.go.jp>
8621
8622 * keyboard.c (read_char): Allow character codes 128..255 to be
8623 handled by input-method-function.
8624
8625 * insdel.c (adjust_markers_for_replace): Fix previous change.
8626 (adjust_after_replace): If PREV_TEXT is nil, call
8627 adjust_markers_for_insert, not adjust_markers_for_replace.
8628
8629 2000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
8630
8631 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
8632 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
8633 [HAVE_GRANDPT]: Define.
8634 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
8635
8636 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
8637 like SYSV_PTYS.
8638
8639 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
8640
8641 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
8642
8643 2000-05-20 Kenichi Handa <handa@etl.go.jp>
8644
8645 The following changes are to handle 8-bit characters in a
8646 multibyte buffer/string without facing with byte combining
8647 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
8648 eight-bit-graphic (for 0xA0..0xFF) are introduced.
8649
8650 * Makefile.in (fns.o): Depend on charset.h.
8651
8652 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
8653 convert it to unibyte.
8654 (make_string): Use parse_str_as_multibyte, not chars_in_text.
8655
8656 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
8657 apparent char boundary.
8658 (Fset_buffer_multibyte): Convert 8-bit characters in the range
8659 0x80..0x9F to/from multibyte form.
8660
8661 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
8662 to unibyte.
8663
8664 * callproc.c (Fcall_process): Always encode an argument string if
8665 it is multibyte. Setup src_multibyte and dst_multibyte members of
8666 process_coding properly.
8667
8668 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
8669 SPLIT_NON_ASCII_CHAR.
8670
8671 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
8672 as is.
8673 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
8674
8675 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New variables.
8676 (SPLIT_CHARACTER_SEQ): This macro deleted.
8677 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is valid.
8678 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
8679 and eight-bit-graphic.
8680 (char_to_string): Likewise. Signal an error for too large
8681 character code.
8682 (char_printable_p): Return 0 for 8-bit characters.
8683 (update_charset_table): Update iso_charset_table only when a final
8684 character is non-negative.
8685 (find_charset_in_text): Renamed from find_charset_in_str.
8686 Arguments and return value changed. Callers changed.
8687 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
8688 be -1 if CHARSET is used only internally.
8689 (Fmake_char_internal): Handle new charsets; eight-bit-control and
8690 eight-bit-graphic.
8691 (Fcharset_after): Simplified.
8692 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
8693 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
8694 (multibyte_chars_in_text): Simplified by assuming there's no
8695 invalid multibyte sequence.
8696 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
8697 (str_as_unibyte): New functions.
8698 (Fstring): Simpified by assuming that byte combining never happens.
8699 (init_charset_once): Initialization for
8700 LEADING_CODE_8_BIT_CONTROL.
8701 (syms_of_charset): Intern and staticpro Qeight_bit_control and
8702 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
8703 eight-bit-control and eight-bit-graphic.
8704
8705 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL)
8706 (CHARSET_8_BIT_GRAPHIC): New macros.
8707 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
8708 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
8709 (CHARSET_REVERSE_CHARSET): Likewise.
8710 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
8711 eight-bit-graphic.
8712 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
8713 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
8714 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
8715 encounter an invalid multibyte sequence.
8716 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
8717 sequence is always valid.
8718 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
8719 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New macros.
8720 (CHAR_STRING): For 8-bit characters, call char_to_string.
8721 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
8722 multibyte sequence is always valid.
8723 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
8724 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
8725 (str_as_unibyte): Extern them.
8726 (BCOPY_SHORT): Fix a bug.
8727 (CHAR_LEN): This macro deleted. Callers changed to use CHAR_BYTES.
8728 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
8729 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
8730 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
8731
8732 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
8733 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
8734 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE)
8735 (EMIT_BYTES): New macros.
8736 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII)
8737 (DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
8738 macros deleted.
8739 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
8740 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
8741 check the validity of multibyte sequence.
8742 (decode_coding_emacs_mule): New function.
8743 (encode_coding_emacs_mule): New macro.
8744 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
8745 the source.
8746 (DECODE_ISO_CHARACTER): Just return a character code.
8747 (DECODE_COMPOSITION_START): Set coding->result instead of result.
8748 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
8749 EMIT_CHAR to produced decoded characters. Exit the loop only by
8750 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
8751 block here.
8752 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
8753 only position codes for an invalid character.
8754 (encode_designation_at_bol): Return new destination pointer. 5th
8755 arg DSTP is changed to DST.
8756 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
8757 from the source by ONE_MORE_CHAR. Don't handle the case of last
8758 block here.
8759 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
8760 macros deleted.
8761 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
8762 (detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
8763 TWO_MORE_BYTES to fetch a byte from the source.
8764 (encode_eol): Pay attention to coding->src_multibyte.
8765 (detect_coding, detect_eol): Preserve members src_multibyte and
8766 dst_multibyte.
8767 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
8768 (encoding_buffer_size): Set magnification to 3 for all coding
8769 systems that require encoding.
8770 (ccl_coding_driver): For decoding, be sure that the result is
8771 valid multibyte sequence.
8772 (decode_coding): Initialize coding->errors and coding->result.
8773 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
8774 and raw-text, always call decode_eol. Handle the case of last
8775 block here. If not coding->dst_multibyte, convert the resulting
8776 sequence to unibyte.
8777 (encode_coding): Initialize coding->errors and coding->result.
8778 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
8779 and raw-text, always call encode_eol. Handle the case of last
8780 block here.
8781 (shrink_decoding_region, shrink_encoding_region): Detect cases
8782 that we can't skip data more rigidly.
8783 (code_convert_region): Setup src_multibyte and dst_multibyte
8784 members of coding. For decoding, if the buffer is multibyte,
8785 convert the source sequence to unibyte in advance. For encoding,
8786 if the buffer is multibyte, convert the resulting sequence to
8787 multibyte afterward.
8788 (run_pre_post_conversion_on_str): New function.
8789 (code_convert_string): Deleted and divided into the following two.
8790 (decode_coding_string, encode_coding_string): New functions.
8791 (code_convert_string1, code_convert_string_norecord): Call one of
8792 above.
8793 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
8794 MAKE_NON_ASCII_CHAR.
8795 (Fset_terminal_coding_system_internal)
8796 (Fset_safe_terminal_coding_system_internal): Setup src_multibyte
8797 and dst_multibyte members.
8798 (init_coding_once): Initialize iso_code_class with new enum
8799 ISO_control_0 and ISO_control_1.
8800
8801 * coding.h (enum iso_code_class_type): Member ISO_control_code is
8802 devided into ISO_control_0 and ISO_control_1.
8803 (struct coding_system): New members src_multibyte, dst_multibyte,
8804 errors, and result. Delete member fake_multibyte.
8805 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
8806 nonzero.
8807 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
8808 nonzero.
8809
8810 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
8811 (Faset): Likewise.
8812
8813 * editfns.c (Fformat): Be sure to convert 8-bit characters to
8814 multibyte form.
8815 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
8816 combining occurs.
8817 (Ftranspose_region): Delete codes for handling byte combining.
8818
8819 * fileio.c (Finsert_file_contents): Setup src_multibyte and
8820 dst_multibyte members of coding. On handling REPLACE on unibyte
8821 buffer, convert the result of decode_coding to unibyte. On
8822 inserting into a mutibyte buffer, always call code_convert_region.
8823 (e_write): Setup coding->src_multibyte according to the
8824 multibyteness of the source (buffer or string).
8825
8826 * fns.c (concat): Handle 8-bit characters correctly.
8827 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
8828 unibyte in the result.
8829 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
8830 valid multibyte form in the result.
8831 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
8832 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
8833 return -1, signal an error.
8834 (base64_encode_1): New arg MULTIBYTE. Get each character by
8835 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
8836 character is found, return -1.
8837 (Fbase64_decode_region): Delete codes for handling byte-combining.
8838 Treat each decoded byte as a unibyte character.
8839 (Fbase64_decode_string): Return unibyte string.
8840 (Fcompare_strings, concat, string_byte_to_char): Use
8841 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
8842 FETCH_STRING_CHAR_ADVANCE.
8843 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8844 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
8845
8846 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
8847 SPLIT_NON_ASCII_CHAR.
8848 (fontset_ref_via_base, fontset_set): Likewise
8849
8850 * insdel.c (adjust_markers_for_record_delete): Deleted.
8851 (adjust_markers_for_insert): Argument changed. Caller changed.
8852 (adjust_markers_for_replace): Likewise.
8853 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error)
8854 (CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
8855 (copy_text): Delete unused local varialbe c_save. For converting
8856 to multibyte, be sure to make all 8-bit characters in valid
8857 multibyte form.
8858 (count_size_as_multibyte): Handle 8-bit characters correctly.
8859 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
8860 (adjust_after_replace, replace_range, del_range_2)
8861 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
8862 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
8863 (adjust_after_replace, replace_range, del_range_2) Delete codes for
8864 handling byte combining.
8865 (adjust_before_replace): Deleted.
8866
8867 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
8868 SPLIT_NON_ASCII_CHAR.
8869 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
8870 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8871 (Fkey_description): Likewise.
8872
8873 * lread.c (read1): On reading multibyte string, be sure to make
8874 all 8-bit chararacters in valid multibyte form.
8875 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8876
8877 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
8878 unconditionally.
8879
8880 * process.c (Fstart_process): GCPRO current_dir before calling
8881 Ffind_operation_coding_system. Encode arguments here.
8882 (create_process): Don't encode arguments here. Setup
8883 src_multibyte and dst_multibyte members of struct coding.
8884 (read_process_output): Setup src_multibyte and dst_multibyte
8885 members of struct coding. If the output is to multibyte buffer,
8886 always decode the output of the process. Adjust the
8887 representation of 8-bit characters to the multibyteness of the output.
8888 (send_process): Setup coding->src_multibyte according to the
8889 multibyteness of the source.
8890
8891 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8892 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
8893 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
8894
8895 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of CHAR_LEN.
8896
8897 * w16select.c (Fw16_set_clipboard_data): Setup members
8898 src_multibyte and dst_multibyte of coding. Adjusted for the
8899 change for find_charset_in_str.
8900 (Fw16_get_clipboard_data): Likewise.
8901
8902 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
8903 dst_multibyte of coding.
8904 (x_to_w32_font): Likewise.
8905
8906 * w32select.c (Fw32_set_clipboard_data): Setup members
8907 src_multibyte and dst_multibyte of coding. Adjusted for the
8908 change for find_charset_in_str.
8909 (Fw32_get_clipboard_data): Likewise.
8910
8911 * xdisp.c (get_next_display_element): Handle 8-bit characters
8912 correctly.
8913 (next_element_from_display_vector): Use CHAR_BYTES instead of CHAR_LEN.
8914 (disp_char_vector): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
8915
8916 * xselect.c (selection_data_to_lisp_data): Setup members
8917 src_multibyte and dst_multibyte of coding. Adjusted for the
8918 change for find_charset_in_str.
8919 (lisp_data_to_selection_data): Likewise.
8920
8921 2000-05-19 Gerd Moellmann <gerd@gnu.org>
8922
8923 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed buffer.
8924
8925 * dispextern.h (Vimage_types): Add extern declaration.
8926
8927 * xdisp.c (Vimage_types): Moved here from xfns.c.
8928 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
8929
8930 * xfns.c (Vimages_types): Moved to xdisp.c.
8931 (syms_of_xfns): Move `image-types' to xdisp.c.
8932
8933 * w32fns.c (Vimage_types): Removed.
8934 (syms_of_w32fns): Remove `image-types'.
8935
8936 2000-05-18 Kenichi Handa <handa@etl.go.jp>
8937
8938 * fns.c (map_char_table): Pay attention to character number of
8939 charset. Check the validity of charset at the first level. For
8940 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
8941 the default value.
8942
8943 * fontset.c: Include "buffer.h".
8944 (fs_load_font): If the face has fontset, record the face ID in
8945 that fontset.
8946 (Finternal_char_font): New function.
8947 (accumulate_font_info): New function.
8948 (Ffontset_info): Rewritten for the new fontset implementation.
8949 (syms_of_fontset): Register Vdefault_fontset in the first element
8950 of Vfontset_table. Include Vdefault_fontset in
8951 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
8952 function.
8953
8954 2000-05-16 Dave Love <fx@gnu.org>
8955
8956 * m/iris5d.h: Deleted -- unused.
8957
8958 2000-05-16 Gerd Moellmann <gerd@gnu.org>
8959
8960 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
8961 `invalid' instead of `illegal'.
8962
8963 * indent.c (Fmove_to_column): When ending within a tab, insert
8964 spaces first so that markers at the end of the tab get adjusted.
8965
8966 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
8967 buffer list that wasn't selected in that frame.
8968
8969 * filelock.c (get_boot_time): To obtain an 8 char file name, which
8970 is needed on mescaline, use a 2 char prefix, and call
8971 make_temp_name with second arg non-zero.
8972
8973 * fileio.c (make_temp_name): New function, extracted from
8974 Fmake_temp_name.
8975 (Fmake_temp_name): Use it.
8976
8977 2000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
8978
8979 * window.c (coordinates_in_window): Subtract 1 when computing right_x.
8980
8981 2000-05-15 Gerd Moellmann <gerd@gnu.org>
8982
8983 * Makefile.in (lisp): Add env.elc.
8984
8985 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
8986
8987 2000-05-12 Gerd Moellmann <gerd@gnu.org>
8988
8989 * search.c (Freplace_match): Handle case of `\N' in the
8990 replacement when there's no group N.
8991
8992 2000-05-11 Gerd Moellmann <gerd@gnu.org>
8993
8994 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
8995 of the message to message_dolog.
8996
8997 * keyboard.c (read_char): Don't clear current message for help
8998 events; let the code handling help events handle this. Change
8999 code detecting help events that should be ignored.
9000
9001 * xdisp.c (handle_single_display_prop): Don't try to set PT if
9002 we're interating over a string.
9003
9004 2000-05-09 Dave Love <fx@gnu.org>
9005
9006 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
9007 that offset before writing. Move gcpro region past call of
9008 Ffile_regular_p.
9009
9010 2000-05-04 Dave Love <fx@gnu.org>
9011
9012 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
9013
9014 2000-05-04 Gerd Moellmann <gerd@gnu.org>
9015
9016 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
9017 of inserted characters when BUF equals the current buffer, and PT
9018 is in front of or equal to FROM.
9019
9020 2000-05-03 Gerd Moellmann <gerd@gnu.org>
9021
9022 * xdisp.c (handle_single_display_prop): If display property value
9023 is invalid, or something not supported on the frame, restore
9024 iterator's position to what it was initially. Make sure to return
9025 0 for invalid and unsupported property values.
9026
9027 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
9028 that x_per_char_metric returns null.
9029
9030 2000-05-02 Gerd Moellmann <gerd@gnu.org>
9031
9032 * xterm.h (struct face): Add forward declaration.
9033 (struct image): Ditto.
9034 (image_ascent): Add prototype.
9035
9036 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
9037 (x_draw_image_relief, x_draw_image_foreground_1): Call function
9038 image_ascent instead of using IMAGE_ASCENT.
9039
9040 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
9041 (IMAGE_ASCENT): Removed.
9042
9043 * xfns.c (Qcenter): New variable.
9044 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
9045 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
9046 (image_ascent): New function.
9047 (lookup_image): Recognize `:ascent center'.
9048 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
9049 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
9050 (xbm_load): Don't set image's ascent here.
9051 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
9052 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
9053 check ascent values here.
9054 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
9055 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
9056 (syms_of_xfns): Initialize Qcenter.
9057
9058 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
9059 to the limits, increase the limits.
9060
9061 2000-05-01 Kenichi Handa <handa@etl.go.jp>
9062
9063 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
9064 Check Vfont_encoding_alist against the full name of the opened font.
9065
9066 2000-04-28 Gerd Moellmann <gerd@gnu.org>
9067
9068 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
9069 taller than the window.
9070
9071 2000-04-28 Kenichi Handa <handa@etl.go.jp>
9072
9073 * xfaces.c (realize_x_face): Fix the argument of the second
9074 xassert. BASE_FACE may not be a face for ASCII.
9075
9076 2000-04-27 Gerd Moellmann <gerd@gnu.org>
9077
9078 * print.c (print_object): Treat print-length < 0 as nil.
9079
9080 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
9081
9082 * s/freebsd.h (TERMCAP_OBJ): Removed.
9083 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
9084
9085 * lread.c (read1): Don't treat period followed by certain
9086 characters as symbol start.
9087
9088 * xfns.c (slurp_file): New function.
9089 (xbm_image_p): Handle case of in-memory XBM files.
9090 (xbm_scan): Rewritten to work on memory buffers instead of files.
9091 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
9092 Work on memory buffers instead of files. If DATA is null test
9093 if buffer looks like an in-memory XBM file.
9094 (xbm_load_image): Renamed from xbm_load_image_file. Work on
9095 memory buffers instead of files.
9096 (xbm_file_p): New function.
9097 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
9098
9099 * lread.c (end_of_file_error): New function.
9100 (read1): Call it instead of signaling `end-of-file' directly.
9101
9102 * print.c (print_error_message): Print data of `end-of-file'
9103 with Fprinc instead of Fprin1.
9104
9105 2000-04-26 Ken Raeburn <raeburn@gnu.org>
9106
9107 * window.c (freeze_window_start): Check that minibuffer scroll
9108 window isn't nil before extracting the window structure pointer
9109 from it.
9110
9111 * undo.c (record_delete): If we hit the end of the undo list, stop
9112 picking elements apart.
9113
9114 2000-04-26 Gerd Moellmann <gerd@gnu.org>
9115
9116 * xdisp.c (display_line): If lines are continued, restore
9117 iterator's ascent/descent information to the values before the
9118 first glyph not fitting on the line.
9119
9120 2000-04-25 Gerd Moellmann <gerd@gnu.org>
9121
9122 * xdisp.c (try_window_id) <all changes above window start>: Adjust
9123 positions in glyph matrix. Don't compute new window end positions.
9124
9125 * dispnew.c (increment_matrix_positions): Renamed from
9126 increment_glyph_matrix_buffer_positions.
9127 (increment_row_positions): Renamed from
9128 increment_glyph_row_buffer_positions.
9129
9130 * dispextern.h: Change names of renamed functions from dispnew.c
9131 in prototypes.
9132
9133 2000-04-24 Gerd Moellmann <gerd@gnu.org>
9134
9135 * fileio.c (Fdo_auto_save): Create directories for auto-save
9136 list file if necessary.
9137
9138 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
9139 from buffer or frame.
9140 (automatic_hscrolling_p): New variable.
9141 (hscroll_windows): Scroll windows horizontally only if automatic
9142 hscrolling is allowed.
9143 (syms_of_xdisp): New variable `automatic-hscrolling'.
9144
9145 * frame.h (struct frame): Add member extra_line_spacing.
9146
9147 * xfns.c (x_set_line_spacing): New function.
9148 (Fx_create_frame): Set line spacing from resources.
9149 (Qline_spacing): New variable.
9150 (syms_of_xfns): Initialize Qline_spacing.
9151
9152 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
9153
9154 * buffer.c (init_buffer_once): Handle extra_line_spacing.
9155 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
9156 (reset_buffer): Don't initialize extra2 and extra3. Initialize
9157 extra_line_spacing from default value.
9158 (init_buffer_once): Initialize default value of extra_line_spacing.
9159
9160 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
9161 and extra3.
9162
9163 * xterm.c (x_produce_glyphs): Remove reference to struct it's
9164 prompt_width. Add extra line spacing.
9165
9166 * term.c (produce_glyphs): Remove reference to struct it's
9167 prompt_width.
9168
9169 * dispextern.h (struct it): Remove member prompt_width, add
9170 extra_line_spacing.
9171
9172 2000-04-22 Gerd Moellmann <gerd@gnu.org>
9173
9174 * dispnew.c (update_frame_line): When writing a whole line, make
9175 sure cursor is in the right row afterwards, otherwise a use of
9176 capability `ch' in cmgoto might leave the cursor in the row below.
9177
9178 2000-04-21 Gerd Moellmann <gerd@gnu.org>
9179
9180 * lisp.h (struct Lisp_Buffer_Cons): Remove.
9181
9182 * keyboard.c (timer_check): Fix typo in comment.
9183
9184 2000-04-21 Kenichi Handa <handa@etl.go.jp>
9185
9186 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
9187 name change: ch -> character.
9188
9189 2000-04-20 Gerd Moellmann <gerd@gnu.org>
9190
9191 * keyboard.c (echo_message_buffer): New variable.
9192 (echo_now): Set echo_message_buffer to the echo area buffer used
9193 to display the echo.
9194 (cancel_echoing): Reset echo_message_buffer to nil.
9195 (read_char): Code rewritten that handles canceling an echo or
9196 echoing a dash, respectively.
9197
9198 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
9199 directory doesn't exist.
9200
9201 2000-04-19 Dave Love <fx@gnu.org>
9202
9203 * fns.c (syms_of_fns): Defsubr mapc.
9204 (concat): Don't allow numeric args.
9205 (Fconcat): Doc change.
9206
9207 2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
9208
9209 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
9210 instead define end_match(1|2) more carefully.
9211 Use GET_CHAR_BEFORE_2 for `begline'.
9212
9213 2000-04-19 Gerd Moellmann <gerd@gnu.org>
9214
9215 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
9216 on 64-bit systems where NULL is defined as `0'.
9217
9218 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
9219 the `variable argument list' to make it work on Alpha.
9220
9221 * m/alpha.h (_LP64) [!_LP64]: Define.
9222 (ORDINARY_LINK): Define for NetBSD.
9223
9224 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
9225
9226 2000-04-19 Dave Love <fx@gnu.org>
9227
9228 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
9229 change.
9230
9231 * Makefile.in (LIBS): Don't use.
9232 (GETLOADAVG_OBJ): Define again.
9233 (otherobj): Add GETLOADAVG_OBJ.
9234
9235 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
9236
9237 2000-04-18 Gerd Moellmann <gerd@gnu.org>
9238
9239 * lread.c (read_filtered_event): Cancel and start busy cursor.
9240
9241 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
9242 that the per-character metrics may be null.
9243
9244 2000-04-17 Gerd Moellmann <gerd@gnu.org>
9245
9246 * buffer.c (clone_per_buffer_values): New function.
9247 (Fmake_indirect_buffer): Add optional argument CLONE. Call
9248 clone_per_buffer_values if CLONE is not nil.
9249
9250 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
9251
9252 2000-04-16 Dave Love <fx@gnu.org>
9253
9254 * Makefile.in: Remove obsolete localcpp stuff.
9255 (GETLOADAVG_OBJ): Don't define.
9256 (obj): Move LIBOBJS...
9257 (otherobj): ... to here.
9258 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
9259 whitespace-only lines after the continuation (Irix).
9260
9261 2000-04-14 Gerd Moellmann <gerd@gnu.org>
9262
9263 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
9264
9265 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
9266
9267 2000-04-14 Dave Love <fx@gnu.org>
9268
9269 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
9270 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
9271 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
9272 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
9273 NLIST_STRUCT.
9274
9275 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
9276 autoconfiscated HAVE_GETLOADAVG.
9277
9278 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
9279 BROKEN_MKTIME.
9280
9281 2000-04-14 Gerd Moellmann <gerd@gnu.org>
9282
9283 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
9284 (fill_in_lock_file_name): Avoid existing files that aren't links.
9285
9286 2000-04-14 Dave Love <fx@gnu.org>
9287
9288 * Makefile.in (LIBS, LIBOBJS): New variable.
9289 (INTERVAL_SRC): Convert to make variable.
9290 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
9291 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
9292 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
9293 add LIBOBJS.
9294 (SOME_MACHINE_OBJECTS): Remove interval stuff.
9295 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
9296 (shortlisp): Add facemenu, float-sup, frame.
9297 (SOME_MACHINE_LISP): Remove them from here.
9298 (LIBES): Change unused LDLIBS to autoconf LIBS.
9299
9300 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
9301
9302 2000-04-14 Kenichi Handa <handa@etl.go.jp>
9303
9304 * composite.c (update_compositions): If FROM and TO are not in a
9305 valid range, do nothing.
9306
9307 2000-04-13 Gerd Moellmann <gerd@gnu.org>
9308
9309 * tparam.c (tparam1): Abort when encountering an unknown `%'-specifier.
9310
9311 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as terminfo.o.
9312
9313 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
9314 as TERMCAP_OBJ.
9315
9316 2000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
9317
9318 * fileio.c (a_write): Remove redundant semi-colons.
9319 (e_write): Return -1 if failed to write all the data.
9320 This fixes the changes made at 1999-12-15.
9321
9322 2000-04-12 Dave Love <fx@gnu.org>
9323
9324 * fns.c (mapcar1): Test for null vals to support mapc.
9325 (Fmapc): New function.
9326
9327 2000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
9328
9329 * msdos.c (NUM_MOUSE_BUTTONS): Define.
9330 (IT_frame_up_to_date): Support the buffer local value of
9331 cursor-type, if defined.
9332
9333 2000-04-10 Dave Love <fx@gnu.org>
9334
9335 * editfns.c (preceding-char, following-char): Doc fix.
9336
9337 2000-04-10 Ken Raeburn <raeburn@gnu.org>
9338
9339 * Makefile.in (temacs): Revert 2000-03-12 change.
9340
9341 2000-04-10 Jason Rumney <jasonr@gnu.org>
9342
9343 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
9344
9345 2000-04-10 Gerd Moellmann <gerd@gnu.org>
9346
9347 * xdisp.c (setup_echo_area_for_printing): Choose an echo
9348 area buffer, if it's not set up yet.
9349
9350 * indent.c (compute_motion): Set immediate_quit.
9351
9352 2000-04-09 Gerd Moellmann <gerd@gnu.org>
9353
9354 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New variable.
9355 (realize_tty_face): Suppress boldness if colors are the inverse of
9356 the default colors, and tty_suppress_bold_inverse_default_colors_p
9357 is set.
9358 (Ftty_suppress_bold_inverse_default_colors): New function.
9359 (syms_of_xfaces): Defsubr it.
9360
9361 * buffer.c (Frestore_buffer_modified_p): New function.
9362 (syms_of_buffer): Defsubr it.
9363
9364 2000-04-08 Ken Raeburn <raeburn@gnu.org>
9365
9366 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
9367 charset id (int) argument, not a charset (Lisp_Object).
9368
9369 * coding.h (code_convert_string): Declare.
9370 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
9371 object, as the fourth argument to code_convert_string.
9372
9373 * fontset.c (make_fontset_for_ascii_face): Use XINT on return value.
9374 (Fset_fontset_font): Use EQ to compare lisp objects.
9375
9376 2000-04-05 Ken Raeburn <raeburn@gnu.org>
9377
9378 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
9379 a pointer that looks like a lisp object.
9380 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
9381 zero, instead see whether it's an integer object, since they can't
9382 have intervals.
9383 (GET_INTERVAL_OBJECT): Simply assign to the destination.
9384
9385 * dispnew.c (allocate_matrices_for_frame_redisplay)
9386 (direct_output_forward_char): Use X(U)INT and make_number as needed
9387 to convert between (unsigned) int values and lisp integers.
9388 * keyboard.c (read_key_sequence): Likewise.
9389 * lread.c (substitute_object_recurse): Likewise.
9390 * fns.c (concat, hash_lookup, hash_remove): Likewise.
9391 * minibuf.c (do_completion, Fminibuffer_complete_word)
9392 (Fminibuffer_completion_help): Likewise.
9393 * term.c (produce_special_glyphs): Likewise.
9394
9395 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
9396 * print.c (print_preprocess, print_object): Likewise.
9397
9398 * search.c (compile_pattern): Use NILP when checking for nil.
9399
9400 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
9401 __OPTIMIZE__]: Provide a GNU C macro version that handles
9402 lisp-object unions.
9403 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
9404 field, to better cope with ENABLE_CHECKING and calls that modify a
9405 Lisp_Object using its old value.
9406
9407 2000-04-04 Gerd Moellmann <gerd@gnu.org>
9408
9409 * window.c (compare_window_configurations): Signal an error
9410 if parameters C1 or C2 aren't window configurations.
9411
9412 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
9413 AFTER_POTENTIAL_GC calls around calls to functions that can
9414 signal an error and thus invoke the debugger.
9415
9416 2000-04-03 Gerd Moellmann <gerd@gnu.org>
9417
9418 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
9419 an error if decoding fails.
9420
9421 * keyboard.c (lispy_mouse_names): Variable removed.
9422 (Vlispy_mouse_stem): New variable.
9423 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
9424 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
9425 for any mouse button number. Increase size of mouse_syms and
9426 button_down_location as needed. Call modify_event_symbol with
9427 different arguments.
9428 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
9429 Call modify_event_symbol with different arguments.
9430 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
9431 for any button number. Call modify_event_symbol with different
9432 arguments.
9433 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
9434 Accept a string for NAME_ALIST_OR_STEM.
9435
9436 * lisp.h (larger_vector): Add prototype.
9437
9438 * fns.c (larger_vector): Make externally visible.
9439
9440 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
9441
9442 2000-04-02 Stefan Monnier <monnier@cs.yale.edu>
9443
9444 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
9445 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
9446 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
9447 we are between str1 and str2.
9448 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
9449 (PATFETCH): Use `TRANSLATE'.
9450 (PATFETCH_RAW): Fetch multibyte char if applicable.
9451 (PATUNFETCH): Remove.
9452 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
9453 When writing a char, write it directly into the pattern buffer rather
9454 than going needlessly through a temp char-array.
9455 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
9456 multibyte magic and remove the useless `#ifdef emacs'.
9457 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
9458 buffer.
9459
9460 * regex.h (struct re_pattern_buffer): Make field `multibyte'
9461 conditional on `emacs'.
9462
9463 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
9464
9465 2000-04-01 Ken Raeburn <raeburn@gnu.org>
9466
9467 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
9468 non-union-type versions of XMARK and friends here, because XMARK
9469 and friends won't work on an integer field if NO_UNION_TYPE is not
9470 defined.
9471 (make_number): Define as a function if it's not defined as a macro.
9472
9473 * composite.c (run_composite_function): Use NILP when checking for nil.
9474 (syms_of_composite): Delete local var NARGS, pass an int as first
9475 argument to Fmake_hash_table.
9476
9477 * editfns.c (text_property_stickiness): Use NILP to test
9478 Lisp_Object boolean value.
9479 (Fmessage_or_box): Don't use NILP to test int variable.
9480 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
9481 problems reading from and changing the same lisp value in an
9482 XSETSTRING call.
9483
9484 2000-04-01 Gerd Moellmann <gerd@gnu.org>
9485
9486 * term.c (TN_no_color_video): New variable.
9487 (term_init): Intitialize TN_no_color_video.
9488 (enum no_color_bit): New enumeration.
9489 (MAY_USE_WITH_COLORS_P): New macro.
9490 (turn_on_face): Use it to determine if attributes may be used
9491 combined with colors.
9492
9493 2000-04-01 Ken Raeburn <raeburn@gnu.org>
9494
9495 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
9496 with int lvalues via casts; instead, just yield lisp object lvalues.
9497 (enlarge_window): Variable sizep now points to Lisp_Object. Use
9498 proper accessor macros.
9499 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
9500 (grow_mini_window): Fix typo getting int value of root->height.
9501
9502 * xdisp.c (compute_string_pos): Fix order of arguments to
9503 string_pos_nchars_ahead.
9504 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
9505 count arg to variable-arg routines like Frun_hook_with_args and
9506 Fformat.
9507 (back_to_previous_visible_line_start)
9508 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
9509 fixed-arg routines like Fget_char_property and Fmake_string.
9510 (reconsider_clip_changes): Use XINT when comparing integer lisp
9511 objects, or passing them as int arguments.
9512 (mark_window_display_accurate, insert_left_trunc_glyphs)
9513 (append_space, extend_face_to_end_of_line): Use make_number when
9514 storing or passing integer values as lisp objects.
9515 (set_cursor_from_row, highlight_trailing_whitespace): Use
9516 INTEGERP, not implicit test against zero, for glyph object.
9517 (try_window_id): Don't use make_number when we want an int value.
9518
9519 * xfaces.c (xlfd_symbolic_value): Make last argument a
9520 Lisp_Object, to be consistent with callers.
9521 (Fbitmap_spec_p): Use XINT to get numeric value of height.
9522 (lface_hash): Apply XFASTINT to lisp values before folding in.
9523
9524 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
9525 fill in window width and height. Pass an int, not a lisp object,
9526 as first arg to Finsert.
9527
9528 2000-04-01 Gerd Moellmann <gerd@gnu.org>
9529
9530 * xfaces.c (realize_basic_faces): Block input while realizing
9531 the faces.
9532
9533 * keyboard.c (lispy_mouse_names): Add additional mouse names.
9534
9535 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
9536
9537 2000-03-31 Gerd Moellmann <gerd@gnu.org>
9538
9539 * xterm.c (x_produce_glyphs): When displaying unibyte text
9540 or ASCII, handle case that per-char metric is null.
9541
9542 2000-03-30 Ken Raeburn <raeburn@gnu.org>
9543
9544 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
9545
9546 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW)
9547 (XSUBR, XBUFFER): Verify correct object type before returning
9548 pointer, using eassert.
9549 * frame.h (XFRAME): Likewise.
9550
9551 * buffer.c (Frename_buffer, Fset_buffer_multibyte)
9552 (swap_out_buffer_local_variables, Fmove_overlay): Don't apply
9553 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong type.
9554 * data.c (set_internal): Likewise.
9555 * dispextern.h (WINDOW_WANTS_MODELINE_P)
9556 (WINDOW_WANTS_HEADER_LINE_P): Likewise.
9557 * fileio.c (auto_save_1): Likewise.
9558 * insdel.c (check_markers): Likewise.
9559 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
9560 * undo.c (record_insert): Likewise.
9561 * vmsproc.c (child_sig): Likewise.
9562 * window.c (unshow_buffer, window_loop): Likewise.
9563 * xterm.c (x_erase_phys_cursor): Likewise.
9564
9565 2000-03-30 Gerd Moellmann <gerd@gnu.org>
9566
9567 * xfns.c (free_image_cache): Free the cache structure itself
9568 last, after all its members have been freed.
9569
9570 * lisp.h (xstrdup): Add prototype.
9571
9572 * alloc.c (xstrdup): Moved here from xfaces.c.
9573 (allocating_for_lisp): Variable removed.
9574 (lisp_malloc): Block input around the calls to malloc and mem_insert.
9575
9576 * xfaces.c (realize_tty_face): Use find_symbol_value instead
9577 of Fsymbol_value.
9578 (xstrdup): Moved to alloc.c.
9579
9580 2000-03-29 Ken Raeburn <raeburn@gnu.org>
9581
9582 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
9583
9584 * emacs.c (main): Fix sense of no-loadup test.
9585
9586 * config.in (ENABLE_CHECKING): Undef.
9587
9588 * lisp.h (struct interval): Replace "parent" field with a union of
9589 interval pointer and Lisp_Object; add new bitfield to use as
9590 discriminant. Change other flag fields to bitfields.
9591 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
9592 is defined and the supplied test fails, print a message and abort.
9593 (eassert): New macro. Use CHECK to provide an assert-like facility.
9594
9595 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
9596 pointers; abort if the value looks like a lisp object.
9597 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT)
9598 (SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
9599 Modify for new interval parent definition.
9600
9601 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE)
9602 (UNMARK_BALANCE_INTERVALS): Update references that need an
9603 addressable lisp object in the interval structure.
9604 (die): New function.
9605 (suppress_checking): New variable.
9606
9607 * intervals.c (interval_start_pos): Just return 0 if there's no
9608 parent object.
9609
9610 2000-03-29 Gerd Moellmann <gerd@gnu.org>
9611
9612 * lread.c (read1): Accept `.' (period) as symbol start like in CL
9613 and earlier Emacs versions.
9614
9615 * keyboard.c (Ftop_level): Cancel busy-cursor.
9616
9617 * eval.c (call_debugger): Cancel busy-cursor.
9618
9619 2000-03-29 Kenichi Handa <handa@etl.go.jp>
9620
9621 * search.c (Freplace_match): Adjust multibyteness of the current
9622 buffer and NEWTEXT. Free allocated memory before signaling an error.
9623
9624 2000-03-28 Stefan Monnier <monnier@cs.yale.edu>
9625
9626 * regex.c (analyse_first): New function obtained by ripping out most
9627 of re_compile_fastmap and generalizing it a little bit so that it
9628 can also just return whether a given (sub)pattern can match the empty
9629 string or not.
9630 (regex_compile): Use `analyse_first' to decide whether the loop-check
9631 needs to be done or not for *, +, *? and +? (the loop check is costly
9632 for non-greedy repetition).
9633 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
9634
9635 2000-03-28 Dave Love <fx@gnu.org>
9636
9637 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k, alpha.
9638
9639 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
9640
9641 2000-03-27 Stefan Monnier <monnier@cs.yale.edu>
9642
9643 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
9644 an expression.
9645 (enum re_opcode_t): Update description of succeed_n.
9646 (PATFETCH): Always define.
9647 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
9648 operators, char classes, shy-groups and intervals).
9649 Optimize special cases of intervals so as to only use succeed_n and
9650 jump_n when really needed.
9651 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
9652 that we don't have to handle the special cases any more.
9653 Simplify on_failure_jump handling as well.
9654
9655 2000-03-28 Jason Rumney <jasonr@gnu.org>
9656
9657 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
9658
9659 2000-03-27 Gerd Moellmann <gerd@gnu.org>
9660
9661 * s/freebsd.h (GC_SETJMP_WORKS): Define.
9662
9663 * s/msdos.h (GC_SETJMP_WORKS): Define.
9664
9665 * alloc.c (mark_maybe_object): New function.
9666 (mark_memory): Use it.
9667 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
9668 (setjmp_tested_p, longjmp_done): New variables.
9669 (test_setjmp): New function.
9670 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
9671 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
9672
9673 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
9674 to DEC_TEXT_POS and INC_TEXT_POS.
9675
9676 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
9677 with parameter MULTIBYTE_P.
9678
9679 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter MULTIBYTE_P.
9680
9681 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
9682 buffers because it looks for multibyte character byte sequences
9683 which don't exist in unibyte text.
9684
9685 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
9686
9687 * xfaces.c (register_color, unregister_color, unregister_colors)
9688 [DEBUG_X_COLORS]: New functions.
9689 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
9690
9691 * xfns.c (x_set_cursor_color): Get color reference counts right.
9692
9693 * xterm.c (x_copy_color): New function.
9694 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
9695
9696 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
9697 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
9698 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
9699 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
9700 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
9701 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
9702 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
9703 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
9704 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
9705 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
9706
9707 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
9708 names for handling per-buffer variables.
9709
9710 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
9711 instead of MAX_BUFFER_LOCAL_VARS.
9712 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
9713
9714 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
9715
9716 * xfns.c (x_specified_cursor_type): New function.
9717 (x_set_cursor_type): Use it.
9718
9719 * buffer.h (struct buffer): Add cursor_type.
9720
9721 2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
9722
9723 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
9724 (print_partial_compiled_pattern, re_compile_fastmap):
9725 Handle new opcode.
9726 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
9727 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
9728 executing it as well as when popping it off the stack to find infinite
9729 loops in non-greedy repetition operators.
9730
9731 2000-03-26 Gerd Moellmann <gerd@gnu.org>
9732
9733 * doc.c (Qfunction_documentation): New variable.
9734 (syms_of_doc): Initialize Qfunction_documentation.
9735 (Fdocumentation): If FUNCTION is a symbol with non-nil
9736 `function-documentation' property, return a documentation derived
9737 from that.
9738
9739 * buffer.c (syms_of_buffer): Add default-cursor-type.
9740 (init_buffer_once): Don't let cursor_type have a local value
9741 in every buffer.
9742
9743 * xterm.c (x_display_and_set_cursor): Choose cursor depending
9744 on buffer-local value of cursor_type.
9745 (x_draw_bar_cursor): Add parameter WIDTH.
9746
9747 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
9748 (init_buffer_once): Set default cursor_type value to t.
9749 Mark cursor_type as local everywhere.
9750 (syms_of_buffer): New per-buffer variable cursor-type.
9751
9752 * buffer.h (struct buffer): Remove member local_var_flags,
9753 add local_flags.
9754 (MAX_BUFFER_LOCAL_VARS): New macro.
9755 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
9756 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
9757 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
9758 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
9759
9760 * print.c (print_object): Use new macros for per-buffer variables.
9761
9762 * category.c (Fset_category_table): Use new macros for per-buffer
9763 variables.
9764
9765 * buffer.c (buffer_permanent_local_flags): Make a char array.
9766 (max_buffer_local_idx): New variable.
9767 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
9768 for new handling of per-buffer variables.
9769 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
9770 (init_buffer_once): Initialize per-buffer vars differently.
9771 Set max_buffer_local_idx.
9772
9773 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
9774 variables.
9775
9776 * lread.c (defvar_per_buffer): Use new macros for per-buffer variables.
9777
9778 * data.c (do_symval_forwarding, store_symval_forwarding)
9779 (find_symbol_value, set_internal, default_value, Fset_default)
9780 (Fkill_local_variable, Flocal_variable_p): Use new macros for
9781 per-buffer variables.
9782
9783 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
9784
9785 2000-03-24 Gerd Moellmann <gerd@gnu.org>
9786
9787 * xterm.c (x_term_init): Unblock input around call1 of
9788 Qvendor_specific_keysyms.
9789
9790 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
9791 (find_defun_start): Consider an open parenthesis in column 0
9792 a defun start only if open_paren_in_column_0_is_defun_start is set.
9793 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
9794
9795 2000-03-24 Stefan Monnier <monnier@cs.yale.edu>
9796
9797 * eval.c (Fautoload): Add entry in load-history (if after dump).
9798 * lread.c (load-history): Update docstring.
9799
9800 2000-03-24 Gerd Moellmann <gerd@gnu.org>
9801
9802 * indent.c (Fvertical_motion): Always use the current buffer.
9803 Temporarily change the window's buffer, if necessary.
9804
9805 2000-03-23 Gerd Moellmann <gerd@gnu.org>
9806
9807 * xterm.c (fast_find_position): Make sure not to consider rows
9808 not visible in the window.
9809
9810 2000-03-22 Stefan Monnier <monnier@cs.yale.edu>
9811
9812 * regex.c (enum syntaxcode): Provide default for non-Emacs.
9813 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
9814
9815 2000-03-22 Jason Rumney <jasonr@gnu.org>
9816
9817 * w32menu.c (single_submenu): Set help string to NULL if none.
9818 (w32_menu_show): Set help string correctly.
9819 (add-menu-item): Set help string in MIIM_DATA for menu item.
9820 Load SetMenuItemInfoA explicitly.
9821 (w32_menu_display_help): New function.
9822
9823 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
9824 (QCdata): Moved to xdisp.c.
9825
9826 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
9827 (Vw32_charset_to_codepage_alist): Removed.
9828 (Vw32_charset_info_alist): New variable.
9829 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312)
9830 (chinesebig5, oem, easteurope, turkish, baltic, russian, arabic)
9831 (greek, hebrew, thai, johab, mac, unicode]): New symbols.
9832 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
9833 with TODO comment.
9834 (w32_codepage_for_font): Use Vw32_charset_info_alist.
9835 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
9836 Define Vw32_charset_info_alist and w32_charset symbols.
9837
9838 2000-03-22 Jason Rumney <jasonr@gnu.org>
9839
9840 * makefile.nt (w32bdf.obj): Update dependencies.
9841
9842 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
9843
9844 * w32fns.c: Include fontset.h after dispextern.h.
9845 (Fx_create_frame): Do not create fontset.
9846 (w32_load_system_font): Doc fix.
9847 (Fx_close_connection): Free full_name if it is not shared.
9848
9849 * w32term.c: Include fontset.h after dispextern.h.
9850 (x_get_glyph_face_and_encoding): New parameter two_byte_p.
9851 Callers updated.
9852 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
9853 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
9854 (w32_font_is_double_byte): New function, needs body.
9855 (x_append_glyph): Set glyph->glyph_not_available_p.
9856 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
9857 it->charset. If it->multibyte_p is zero and it->c is a multibyte
9858 character, convert it to a unibyte character.
9859 (struct glyph_string): Delete member `charset'.
9860 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
9861 calculating it is found.
9862 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
9863 the case that per char metric is not available correctly.
9864 (x_fill_glyph_string): Handle the case that the specific glyph is
9865 not available correctly.
9866 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
9867 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
9868 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
9869 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
9870 fontset. Don't call FS_LOAD_FONT.
9871
9872 2000-03-22 Ken Raeburn <raeburn@gnu.org>
9873
9874 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
9875 (INT_LISPLIKE): New macro.
9876 (NULL_INTERVAL_P): Use it.
9877 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT)
9878 (SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT)
9879 (GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
9880
9881 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
9882 explicit references to "parent" field of struct interval and
9883 associated unclean type conversions.
9884 * intervals.c (create_root_interval, root_interval, rotate_right)
9885 (rotate_left, balance_possible_root_interval, split_interval_right)
9886 (split_interval_left, interval_start_pos, find_interval)
9887 (next_interval, previous_interval, update_interval)
9888 (adjust_intervals_for_insertion, delete_node, delete_interval)
9889 (adjust_intervals_for_deletion, merge_interval_right)
9890 (merge_interval_left, reproduce_tree, graft_intervals_into_buffer)
9891 (copy_intervals_to_string): Likewise.
9892 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
9893 Likewise.
9894 * syntax.c (update_syntax_table): Likewise.
9895
9896 * intervals.c (reproduce_tree_obj): New function, like
9897 reproduce_tree but takes a Lisp_Object for the parent. Declare
9898 with prototype.
9899 (graft_intervals_into_buffer): Use it when appropriate.
9900 (reproduce_tree): Declare with prototype.
9901 (balance_possible_root_interval): Check that the parent is a lisp
9902 object before trying to examine its type.
9903
9904 2000-03-22 Gerd Moellmann <gerd@gnu.org>
9905
9906 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
9907 as strings only if both are known to be strings.
9908
9909 * s/openbsd.h (LIBS_TERMCAP): Undef.
9910
9911 2000-03-21 Stefan Monnier <monnier@cs.yale.edu>
9912
9913 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
9914 definitions for non-Emacs compilation.
9915 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
9916 outside of `#ifdef emacs'.
9917 (print_partial_compiled_pattern): Update.
9918 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
9919 (re_compile_fastmap): Merge handling of charset and charset_not (for
9920 emacs and non-emacs compilation as well).
9921 Similarly for (not)categoryspec and (not)syntaxspec.
9922 Don't use the fastmap when reaching `anychar' since the added
9923 complexity is not justified.
9924 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
9925 and (not)syntaxspec. Merge (not)categoryspec.
9926
9927 2000-03-22 Kenichi Handa <handa@etl.go.jp>
9928
9929 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P)
9930 (FACE_FOR_CHAR): Define them differently for the configuration of
9931 --without-x.
9932
9933 2000-03-21 Dave Love <fx@gnu.org>
9934
9935 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
9936 doc string.
9937
9938 2000-03-21 Gerd Moellmann <gerd@gnu.org>
9939
9940 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
9941 (lface_fully_specified_p): Don't check contents of
9942 LFACE_FONT_INDEX because that attribute is optional.
9943 (realize_x_face): Remove now unwarranted xassert.
9944
9945 2000-03-21 Kenichi HANDA <handa@etl.go.jp>
9946
9947 The following changes are to make font selection based on
9948 characters, not charset. In addition, they recover fontset
9949 facilities while utilizing the new font selection mechanism.
9950
9951 * Makefile.in (fontset.o): Depend on dispextern.h.
9952
9953 * alloc.c (mark_face_cache): Don't mark face->registry.
9954
9955 * dispextern.h (struct glyph): New member glyph_not_available_p.
9956 Use 22 bits for face_id.
9957 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
9958 (struct face): Delete member registry, new member ascii_face.
9959 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
9960 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
9961 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
9962 (struct it): Delete member charset, new member glyph_not_available_p.
9963
9964 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
9965 (struct fontset_info, struct fontset_data): Structs removed.
9966 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset)
9967 (Vglobale_fontset_alist, font_idx_temp): Externs removed.
9968 (fs_load_font, fs_query_fontset): Adjusted for new argument.
9969 (fs_free_face_fontset, fontset_font_pattern)
9970 (face_suitable_for_char_p, face_for_char)
9971 (make_fontset_for_ascii_face): Extern them.
9972 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
9973 (FS_LOAD_FACE_FONT): New macro.
9974
9975 * fontset.c: All codes rewritten or adjusted for the change of
9976 fontset implementation. Now fontset is represented by char table.
9977 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl):
9978 Variables removed.
9979 (my_strcasecmp): Function removed.
9980 (Vfontset_table, next_fontset_id, Vdefault_fontset): New variables.
9981 (AREF, ASIZE): New macros.
9982 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME)
9983 (FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF)
9984 (FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
9985 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset)
9986 (fontset_id_valid_p, font_family_registry, fontset_name)
9987 (fontset_ascii, free_face_fontset, face_suitable_for_char_p)
9988 (face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
9989 New functions.
9990 (fs_load_font): New arg FACE. Caller changed.
9991 (fs_query_fontset): Argument changed. Caller changed.
9992 (Fquery_fontset): call fs_query_fontset.
9993 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
9994 Functions removed.
9995 (clear_fontset_elements, check_registry_encoding)
9996 (check_fontset_name): New functions.
9997 (syms_of_fontset): Set char-table-extra-slots property of fontset
9998 to 3. Staticpro and initialize Vfontset_table and
9999 Vdefault_fontset. Defsubr fontset_font and fontset_list.
10000
10001 * frame.h (struct frame): Member `fontset_data' removed.
10002 (FRAME_FONTSET_DATA): Macro removed.
10003
10004 * frame.c (make_frame): Don't allocate f->fontset_data.
10005 (Fdelete_frame): Don't free f->fontset_data.
10006
10007 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
10008
10009 * xdisp.c (charset_at_position): Function removed.
10010 (init_iterator): Don't set member charset of struct `it'.
10011 (handle_face_prop, reseat_to_string, set_iterator_to_next)
10012 (next_element_from_display_vector, insert_left_trunc_glyphs):
10013 Likewise.
10014 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
10015 FACE_FOR_CHARSET.
10016 (get_next_display_element, append_space)
10017 (extend_face_to_end_of_line): Likewise.
10018
10019 * xfaces.c (Qx_charset_registry, Vface_default_registry):
10020 Variables removed.
10021 (clear_font_table, frame_update_line_height, load_face_font):
10022 Adjusted for the change of fontset implementation.
10023 (load_face_fontset_font): Function removed.
10024 (pixel_point_size): New function.
10025 (font_list): Argument type changed. Caller changed.
10026 (LFACE_FONT): New macro.
10027 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
10028 (set_lface_from_font_name): Type of arg FONTNAME is changed to
10029 Lisp_Object. Determine the font name by actually loading a font
10030 by the specified pattern. Set LFACE_FONT (lface) to the specified
10031 pattern. Even if a font is not found, don't try alternatives.
10032 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
10033 (set_font_frame_param): If `font' is specified in lface, use it.
10034 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
10035 (lface_same_font_attributes_p): Likewise.
10036 (make_realized_face): Arguent changed. Caller changed. Set
10037 face->ascii_face to face itself.
10038 (free_realized_face): Free face->fontset if face is for ASCII.
10039 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p)
10040 (deduce_unibyte_registry, x_charset_registry): Functions removed.
10041 (free_realized_multibyte_face): New function.
10042 (lookup_face, lookup_named_face, lookup_derived_face): Argument
10043 changed. Caller changed.
10044 (try_font_list): Argument type changed.
10045 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
10046 (choose_face_font): Argument changed. Handle fontset properly.
10047 (choose_face_fontset_font): Function removed.
10048 (realize_default_face, realize_named_face): Don't remove the
10049 former face here.
10050 (realize_face): Argument changed. Caller changed. Remove face
10051 with the arg former_face_id in advance. Load font for the new face.
10052 (realize_x_face): Argument changed. Caller changed. For a
10053 multibyte character, share fontset with base_face. For a single
10054 byte character, make a new realized fontset. Don't load a font here.
10055 (realize_tty_face): Argument changed. Caller changed.
10056 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
10057 (face_at_buffer_position): Don't check multibyte_p for returning
10058 DEFAULT_FACE_ID.
10059 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
10060 FACE_SUITABLE_FOR_CHARSET_P.
10061 (syms_of_xfaces): Remove code for Qx_charset_registry and
10062 Vface_default_registry.
10063
10064 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
10065 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
10066 (x_per_char_metric): Don't try FONT->default_char. Even if
10067 pcm->width is zero, glyph bits may exist.
10068 (x_encode_char): Always initialize char2b->byte1.
10069 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
10070 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller changed.
10071 (x_append_glyph): Set glyph->glyph_not_available_p.
10072 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
10073 it->charset. Handle the case that per char metric is not
10074 available. If it->multibyte_p is zero and it->c is a multibyte
10075 character, convert it to a unibyte character.
10076 (struct glyph_string): Delete member `charset'.
10077 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
10078 the case that per char metric is not available correctly.
10079 (x_fill_glyph_string): Handle the case that the specific glyph is
10080 not available correctly.
10081 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
10082 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
10083 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
10084 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
10085 fontset. Don't call FS_LOAD_FONT.
10086
10087 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
10088 (x_create_tip_frame): Likewise.
10089 (Fx_close_connection): Free full_name of font_info.
10090
10091 * fns.c (optimize_sub_char_table): New function.
10092 (Foptimize_char_table): New function.
10093 (syms_of_fns): Defsubr Soptimize_char_table.
10094
10095 2000-03-20 Gerd Moellmann <gerd@gnu.org>
10096
10097 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
10098 only if buffer is displayed in some window.
10099
10100 * xdisp.c (handle_single_display_prop): Initialize local `value'.
10101 (try_window_reusing_current_matrix): Don't call scroll run
10102 function if run's current and desired position are the same;
10103 this prevents cursor flickering.
10104
10105 2000-03-19 Stefan Monnier <monnier@cs.yale.edu>
10106
10107 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
10108
10109 * regex.c (RE_STRING_CHAR): New macro.
10110 (GET_CHAR_AFER_2): Remove.
10111 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
10112 (enum re_opcode_t): Remove on_failure_jump_exclusive.
10113 (print_partial_compiled_pattern, re_compile_fastmap)
10114 (re_match_2_internal): Remove on_failure_jump_exclusive.
10115 (regex_compile): Turn optimizable P+ loops into PP*, so that the
10116 optimization only need to work for * (ie. can use of_keep_string_jump).
10117 Remove the special case for .*\n since it is now covered by the general
10118 optimization.
10119 (re_search_2): Don't bother with `room'.
10120 (skip_one_char): New function.
10121 (skip_noops): Simplify since `memory' is not needed any more.
10122 (mutually_exclusive_p): Restructure slightly to use `switch' and
10123 add handling for "all" remaining cases.
10124 (re_match_2_internal): Change on_failure_jump_smart to use
10125 on_failure_keep_string_jump (and redirect the end-of-loop jump)
10126 rather than on_failure_jump_exclusive.
10127
10128 2000-03-19 Gerd Moellmann <gerd@gnu.org>
10129
10130 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
10131 number of bits per RGB because it's everywhere used as the depth
10132 of the visual.
10133
10134 * term.c (calculate_costs): Remove code dealing with X frames.
10135
10136 2000-03-19 Richard M. Stallman <rms@gnu.org>
10137
10138 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
10139
10140 2000-03-18 Gerd Moellmann <gerd@gnu.org>
10141
10142 * lread.c (read_integer): Unread the last char not consumed.
10143
10144 2000-03-17 Gerd Moellmann <gerd@gnu.org>
10145
10146 * xterm.c (x_update_window_cursor): Don't update in frames
10147 which are in the process of being deleted.
10148
10149 2000-03-16 Gerd Moellmann <gerd@gnu.org>
10150
10151 * Makefile.in (mostlyclean): Add `*.core'.
10152 (clean): Add `bootstrap-emacs'.
10153
10154 * lread.c (read_integer): New function.
10155 (read1): Support read syntax #o, #x, #b, #r.
10156
10157 2000-03-15 Stefan Monnier <monnier@cs.yale.edu>
10158
10159 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
10160 make sure POINTER_TO_OFFSET gives the same value before and after
10161 PREFETCH. Use `dfail' to guarantee "atomic" matching.
10162 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
10163 (debug): Now only active if > 0 rather than if != 0.
10164 (DEBUG_*): Update for the new meaning of `debug'.
10165 (print_partial_compiled_pattern): Add missing `succeed' case. Use
10166 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
10167 in `succeed_n', `jump_n' and `set_number_at'.
10168 (store_op1, store_op2, insert_op1, insert_op2)
10169 (at_begline_loc_p, at_endline_loc_p): Add prototype.
10170 (group_in_compile_stack): Move to after its arg's types are
10171 declared and add a prototype.
10172 (PATFETCH): Define in terms of PATFETCH_RAW.
10173 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)' wrapper.
10174 (QUIT): Redefine as a nop except for NTemacs.
10175 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
10176 indentation of the greedy-op and shy-group code.
10177 (at_(beg|end)line_loc_p): Fix argument's types.
10178 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
10179 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
10180 (MATCHING_IN_FIRST_STRING): Remove.
10181 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
10182 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
10183 QUIT unconditionally.
10184
10185 2000-03-15 Gerd Moellmann <gerd@gnu.org>
10186
10187 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
10188 a sole completion.
10189
10190 * process.c (send_process): Add a hint that the function
10191 can call Lisp code to its comment.
10192
10193 * lread.c (load_dangerous_libraries): New variable.
10194 (Vbytecomp_version_regexp): New variable.
10195 (safe_to_load_p): New function.
10196 (Fload): Handle files not compiled with Emacs specially.
10197 (syms_of_lread): New Lisp variable load-dangerous-libraries.
10198
10199 2000-03-14 Gerd Moellmann <gerd@gnu.org>
10200
10201 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
10202
10203 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
10204 support functions only if HAVE_X11R6_XIM is defined.
10205 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
10206
10207 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
10208
10209 * xfns.c (X_I18N_INHIBITED): Don't define.
10210 (create_frame_xic): Remove conditional compilation on X_I18N_INHIBITED.
10211 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
10212
10213 * config.in (HAVE_X_I18N): Moved here from xterm.h.
10214 (HAVE_X11R6_XIM): Define.
10215
10216 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
10217
10218 * xterm.c (x_term_init): Add support for X resource `synchronous'.
10219 If set, call XSynchronize.
10220
10221 2000-03-13 Stefan Monnier <monnier@cs.yale.edu>
10222
10223 * regex.c: Declare a new type `re_char' used throughout the code
10224 for the string char type. It's `const unsigned char' to match the
10225 rest of Emacs. Consistently make sure all pointers to strings use
10226 it and make sure all pointers into the pattern use `unsigned char'.
10227 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
10228 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
10229 code duplication.
10230
10231 * charset.h (GET_CHAR_AFTER_2): Remove.
10232 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
10233
10234 2000-03-12 Ken Raeburn <raeburn@gnu.org>
10235
10236 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
10237 variable before the invocation of YMF_PASS_LDFLAGS, in case both
10238 of them try to use backquotes.
10239
10240 2000-03-12 Dave Love <fx@gnu.org>
10241
10242 * unexelf.c: Restore changes of 1999-10-19.
10243 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
10244 fix its type and alignment; copy it from current process.
10245
10246 2000-03-12 Gerd Moellmann <gerd@gnu.org>
10247
10248 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
10249 has been found. Fix bug not computing timer's predecessor.
10250
10251 * fileio.c (Fread_file_name): Handle case that DIR contains a
10252 file name.
10253
10254 * window.c (Fsave_window_excursion): Doc fix.
10255
10256 * xfns.c (x_defined_color): Rewritten to use x_allocate_nearest_color.
10257
10258 2000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
10259
10260 * msdos.c (vga_installed): New function, code moved from
10261 dos_set_window_size.
10262 (Qbar, Qcursor_type, outside_cursor): New variables.
10263 (syms_of_msdos): Intern and staticpro them.
10264 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
10265 shape used outside Emacs when called for the first time.
10266 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
10267 cursor shape used outside Emacs.
10268 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
10269 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
10270 type has changed.
10271 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
10272 parameters specify the cursor. Make qreverse a global
10273 variable (renamed to Qreverse).
10274
10275 2000-03-09 Gerd Moellmann <gerd@gnu.org>
10276
10277 * fns.c (Fy_or_n_p): Cancel busy-cursor.
10278
10279 2000-03-08 Stefan Monnier <monnier@cs.yale.edu>
10280
10281 This is a big redesign of failure-stack and register handling, prompted
10282 by bugs revealed when trying to add shy-groups. Overall, what happened
10283 is that loops are now structured a little differently, groups can be
10284 shy and the code is a little simpler.
10285
10286 * regex.h: Update the copyright.
10287 (RE_SHY_GROUPS): New value.
10288 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
10289 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
10290
10291 * regex.c (enum re_opcode_t): Remove jump_past_alt,
10292 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
10293 on_failure_jump_(exclusive, loop and smart). Also fix the comment
10294 for (start|stop)_memory since they now only take one argument (the
10295 second has becomes unnecessary).
10296 (print_partial_compiled_pattern): Adjust for changes in re_opcode_t.
10297 (print_compiled_pattern): Use %ld to printf long ints and flush to
10298 make debugging a little easier.
10299 (union fail_stack_elt): Make the integer unsigned.
10300 (struct fail_stack_type): Add a `frame' element.
10301 (INIT_FAIL_STACK): Init `frame' as well.
10302 (POP_PATTERN_OP): New macro for re_compile_fastmap.
10303 (DEBUG_PUSH, DEBUG_POP): Remove.
10304 (NUM_REG_ITEMS): Remove.
10305 (NUM_NONREG_ITEMS): Adjust.
10306 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
10307 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
10308 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
10309 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP):
10310 New macros.
10311 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
10312 address pushed is not the destination of the jump but the source
10313 of it instead.
10314 (NUM_FAILURE_ITEMS): Remove.
10315 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
10316 registers before the actual failure point). Don't hardcode any
10317 meaning for str==NULL anymore.
10318 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
10319 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
10320 Remove.
10321 (REG_UNSET_VALUE): Use NULL (why not?).
10322 (compile_range): Remove declaration since it doesn't exist.
10323 (struct compile_stack_elt_t): Remove inner_group_offset.
10324 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
10325 (regex_grow_registers): Remove dead code.
10326 (FIXUP_ALT_JUMP): New macro.
10327 (regex_compile): Add shy-groups Change loops to use
10328 on_failure_jump_smart&jump instead of
10329 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
10330 initial (dummy_failure_)jump. Remove c1_base (looks like unused
10331 variable to me). Use `jump' instead of `jump_past_alt' and don't
10332 bother with push_dummy_failure in alternatives since it is now
10333 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
10334 emacs' for (re)allocating the stack.
10335 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
10336 from loop when bufp->can_be_null rather than jumping to `done'.
10337 Avoid jumping backwards so as to ensure termination. Use
10338 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
10339 backreferences. Remove dead code in handling of `anychar'.
10340 (skip_noops, mutually_exclusive_p): New functions taken from the
10341 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
10342 improve mutually_exclusive_p to handle ".+\n".
10343 (lowest_active_reg, highest_active_reg)
10344 (NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
10345 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
10346 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
10347 variables. Push register (in `start_memory') on the stack rather
10348 than storing it in old_reg(start|end). Remove the cycle detection
10349 from `stop_memory', replaced by the use of on_failure_jump_loop
10350 for greedy loops. Add code for the new on_failure_jump_<foo>.
10351 Remove ad-hoc code in `on_failure_jump' to push more registers in
10352 the case of a loop. Take out code from `maybe_pop_jump' into
10353 separate functions and adapt it to the semantics of
10354 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
10355 and push_dummy_failure. Remove dummy_failure handling and
10356 handling of `failures to jump to on_failure_jump' (this last one
10357 was already dead code, it seems).
10358 (group_match_null_string_p, alt_match_null_string_p)
10359 (common_op_match_null_string_p): Remove.
10360
10361 2000-03-08 Dave Love <fx@gnu.org>
10362
10363 * config.in: Don't depend on __STDC__ for volatile.
10364 Add POINTER_TYPE, PTR, PROTOTYPES.
10365
10366 * hftctl.c, strftime.c: Use PROTOTYPES.
10367 * eval.c (find_handler_clause): Likewise.
10368
10369 * mem-limits.h: Use POINTER_TYPE.
10370
10371 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
10372 (memory_warnings): Declare using POINTER_TYPE.
10373
10374 2000-03-08 Gerd Moellmann <gerd@gnu.org>
10375
10376 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
10377
10378 * xdisp.c (display_echo_area): Temporarily inhibit garbage collection.
10379
10380 * xfns.c: Remove obsolete code in #if 0.
10381 (Fx_focus_frame): New function.
10382
10383 2000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
10384
10385 * coding.c (coding_category_name): Add coding-category-utf-8,
10386 coding-category-utf-16-be, coding-category-utf-16-le.
10387 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
10388 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
10389 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
10390 (detect_coding_utf_8): New function.
10391 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
10392 UTF_16_LOW_SURROGATE_P): New macros.
10393 (detect_coding_utf_16): New function
10394 (detect_coding_mask): When priorities are specified, skip any
10395 categories that have `nil' coding-system. Fix bug of returning
10396 wrong mask when PRIORITIES is specified and detect_coding_XXX()
10397 returns a mask not set in PRIORITIES.
10398 (detect_eol_type_in_2_octet_form): New function.
10399 (detect_eol): selects detect_eol_type_XXX to call according to
10400 cooding->category_idx.
10401 (detect_coding_system): Remove `nil' coding-system in the result.
10402 (Fupdate_coding_systems_internal): Update all coding-categories.
10403
10404 * coding.h (CODING_CATEGORY_IDX_UTF_8)
10405 (CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE):
10406 New macros.
10407 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY)
10408 (CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
10409 (CODING_CATEGORY_IDX_UTF_16_LE)
10410 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE)
10411 (CODING_CATEGORY_MASK_UTF_16_LE): New macros.
10412 (CODING_CATEGORY_MASK_ANY): Include the above macros.
10413 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
10414
10415 2000-03-07 Gerd Moellmann <gerd@gnu.org>
10416
10417 * doc.c (Fdocumentation_property): If value is not a string,
10418 and doesn't refer to etc/DOC, evaluate it to obtain a string.
10419
10420 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
10421 close the display with XtCloseDisplay. This caused a bus error
10422 on OpenWindows.
10423
10424 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
10425 complete but not unique.
10426
10427 2000-03-06 Gerd Moellmann <gerd@gnu.org>
10428
10429 * process.c (send_process): Remove local variable `procname' that
10430 might become invalid when a GC happens. Instead, access the
10431 process name slot directly.
10432
10433 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
10434 orig_height if set.
10435
10436 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
10437 orig_height if set.
10438
10439 2000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
10440
10441 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
10442 glyph matrices have been freed.
10443
10444 2000-03-05 Gerd Moellmann <gerd@gnu.org>
10445
10446 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
10447 (bootstrap-temacs): Set LC_ALL to C like for temacs.
10448
10449 * xfns.c (QCdata): Moved to xdisp.c.
10450
10451 * xdisp.c (QCdata): Moved here from xfns.c.
10452 (syms_of_xdisp): Initialize QCdata.
10453
10454 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
10455
10456 * window.c (coordinates_in_window): Use
10457 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
10458 FRAME_INTERNAL_BORDER_WIDTH.
10459
10460 * xdisp.c (try_window_id): Recompute unchanged information if
10461 it is obviously invalid.
10462
10463 * xterm.c (x_term_init): Create a colormap if not using the
10464 default visual.
10465
10466 * xterm.h (select_visual): Change prototype.
10467
10468 * xfns.c (select_visual): Rewritten. Recognize user-specified
10469 visual classes.
10470 (visual_classes): New variable.
10471
10472 2000-03-04 Gerd Moellmann <gerd@gnu.org>
10473
10474 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
10475 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
10476 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
10477 (x_decode_color): Don't handle allocation of white and black specially.
10478 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
10479 XtNcolormap resources.
10480 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
10481 (Fx_create_frame): Initialize color members of x_output structure.
10482 (xpm_load): Pass colormap to XPM lib.
10483
10484 * xfaces.c (x_free_colors): Access colormap of frame using
10485 FRAME_X_COLORMAP. Be paranoid about freeing black and white
10486 when default colormap is used.
10487
10488 * xterm.c (x_term_init): Set Colormap member of x_display_info
10489 structure. Copy colormap if resource `privateColormap' is
10490 specified (PseudoColor only).
10491 (x_setup_relief_color): Access colormap of frame using
10492 FRAME_X_COLORMAP.
10493
10494 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
10495 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
10496
10497 2000-03-04 Jason Rumney <jasonr@gnu.org>
10498
10499 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
10500 other non-platform-specific equivalents.
10501 [WINDOWSNT]: Include w32term.h, fontset.h and define X
10502 specific functions and macros as their w32 equivalents where
10503 non-platform-specifics are not available.
10504 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
10505 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
10506 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
10507 (frame_update_line_height): Use macros to access f->output_data.
10508 (defined_color): Remove FIXME comments; fixed.
10509 (x_face_list_fonts, prepare_face_for_display): Put X specifics
10510 into #ifdef blocks. Add WINDOWSNT blocks.
10511 (Fx_list_fonts): Use macros for accessing font data.
10512 (set_lface_from_font_name): Different default fonts for X and
10513 WINDOWSNT.
10514 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
10515 scalable for backward compatibility.
10516 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
10517 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
10518
10519 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
10520 syms_of_w32faces.
10521
10522 * makefile.nt (w32faces.obj): Remove.
10523 (xfaces.obj): Add.
10524
10525 2000-03-03 Jason Rumney <jasonr@gnu.org>
10526
10527 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
10528 correct parameters.
10529
10530 2000-03-03 Ken Raeburn <raeburn@gnu.org>
10531
10532 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
10533 standard ELF definitions here if the system header does not.
10534
10535 2000-03-03 Gerd Moellmann <gerd@gnu.org>
10536
10537 * xterm.c (PER_CHAR_METRIC): Removed.
10538 (x_per_char_metric_1, x_default_char): New functions.
10539 (x_per_char_metric): If font's default char is invalid, return
10540 metrics of a suitably chosen usable default char.
10541 (x_draw_glyph_string_foreground): If font has an invalid default
10542 char, replace occurrences of unprintable chars with a suitably
10543 chosen usable default char.
10544
10545 2000-03-02 Gerd Moellmann <gerd@gnu.org>
10546
10547 * xterm.c (note_mouse_highlight): Return quickly if frame's
10548 glyph matrices have been freed.
10549
10550 * dispnew.c (free_glyphs): Block input while freeing matrices.
10551
10552 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
10553
10554 * xterm.c (x_alloc_lighter_color, x_setup_relief_color):
10555 Use x_free_colors.
10556
10557 * dispextern.h (x_free_colors): Add prototype.
10558
10559 * xfaces.c (x_free_colors): New function.
10560 (unload_color, free_face_colors): Use it.
10561
10562 2000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
10563
10564 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
10565
10566 * window.c [MSDOS]: Include msdos.h.
10567
10568 2000-03-02 Dave Love <fx@gnu.org>
10569
10570 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
10571
10572 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
10573 set C_OPTIMIZE_SWITCH for gcc.
10574
10575 2000-03-02 Kenichi Handa <handa@etl.go.jp>
10576
10577 * coding.c (coding_save_composition): Be sure to allocate
10578 composition data area in coding even if there's no composition in
10579 the current run.
10580
10581 2000-03-01 Jason Rumney <jasonr@gnu.org>
10582
10583 * w32term.c: Equivalent changes to those made to xterm.c on
10584 2000-02-25 and 2000-02-24.
10585
10586 * w32fns.c: Equivalent changes to those made to xfns.c on
10587 2000-02-25 and 2000-02-21.
10588
10589 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
10590 correct line-end convention is followed.
10591
10592 * w32menu.c [HAVE_BOXES]: Remove #undef.
10593 (single_keymap_panes): Remove code for simulating checkmarks.
10594 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
10595 Remove code for drawing simulated checkmarks.
10596 (w32_menu_show): make unibyte help string correctly.
10597 (add_menu_item): draw standard Windows checkmarks. Draw radio
10598 buttons as radio buttons if possible.
10599
10600 2000-03-01 Gerd Moellmann <gerd@gnu.org>
10601
10602 * sysdep.c (start_of_text): Don't define this function for NetBSD
10603 with ELF.
10604
10605 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
10606 Don't define.
10607 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
10608 (LINKER): Don't undef if __NetBSD__ is defined.
10609
10610 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
10611
10612 * fileio.c [__NetBSD__]: Define `unix'.
10613
10614 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
10615
10616 2000-02-29 Gerd Moellmann <gerd@gnu.org>
10617
10618 * atimer.c (start_atimer): Don't abort when timers are stopped.
10619 (append_atimer_lists): New function.
10620 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
10621 arbitrary lists of stopped and running atimers.
10622
10623 * atimer.c (cancel_atimer): Handle canceling an atimer when
10624 some timers are stopped.
10625
10626 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
10627 after canceling it.
10628
10629 * fns.c (maybe_resize_hash_table): Handle case of new size
10630 coming out as being the same as old size.
10631
10632 2000-02-27 Jason Rumney <jasonr@gnu.org>
10633
10634 * makefile.nt: Add atimer.h to dependencies.
10635 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
10636 * w32console.c: Only disable window system features for dispextern.h
10637 (initialize_w32_display): Build a display info for the console.
10638 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
10639 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
10640 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
10641 as 2 button mice.
10642 * w32gui.h (struct W32FontStruct): Revert last change after change
10643 to xdisp.c.
10644 * w32menu.c (single_submenu): Set up help string.
10645 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
10646 (w32_dialog_show): Set up help string.
10647 * w32term.c (w32_display_info_for_display): Remove unused function.
10648 (w32_draw_bitmap): Use pre-built bitmaps.
10649 (w32_initialize_display_info): New function to initialize parts of
10650 display info that are common to both GUI and console frames.
10651 (w32_term_init): Use w32_initialize_display_info. Do not set
10652 Vw32_num_mouse_buttons here, as it is not called for console
10653 frames. Build bitmaps for indicating truncated lines etc.
10654 (x_delete_display): Destroy pre-built bitmaps.
10655 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
10656 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
10657
10658 2000-02-27 Dave Love <fx@gnu.org>
10659
10660 * lisp.h: Add a bunch of prototypes.
10661
10662 2000-02-26 Kenichi Handa <handa@etl.go.jp>
10663
10664 * keyboard.c (read_char): Set `usec' correctly.
10665
10666 2000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
10667
10668 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
10669 `lambda', set reg[RRR] to the map index.
10670 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
10671 reg[RRR] to 0. Otherwise, set it to -1.
10672
10673 2000-02-25 Gerd Moellmann <gerd@gnu.org>
10674
10675 * emacs.c (main): Remove code snippet commented out with `//'.
10676
10677 2000-02-25 Richard M. Stallman <rms@gnu.org>
10678
10679 * fileio.c (Ffile_symlink_p): If result starts with a `/'
10680 and contains a `:', prepend `/:'.
10681
10682 * window.c (select_window_1): If selected_window is nil,
10683 don't "swap out" the buffer's point.
10684 (Fset_window_configuration): Set selected_window to nil
10685 before calling Fselect_window.
10686 (unshow_buffer): Don't set point in buffer from window's point
10687 if another more recently selected window also shows the buffer.
10688
10689 2000-02-25 Gerd Moellmann <gerd@gnu.org>
10690
10691 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
10692
10693 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
10694 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
10695 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay):
10696 New variables.
10697 (DEFAULT_BUSY_CURSOR_DELAY): New define.
10698 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
10699 (hide_busy_cursor): New functions.
10700 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
10701
10702 * minibuf.c (read_minibuf): Cancel busy-cursor.
10703
10704 * keyboard.c (command_loop_1): Call start_busy_cursor before
10705 Fcommand_execute and cancel_busy_cursor after it.
10706 (timer_check): Remove busy-cursor code.
10707 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
10708 cursor timer.
10709
10710 * process.c (wait_reading_process_input): Remove busy-cursor code.
10711
10712 * eval.c (Fsignal): Call cancel_busy_cursor instead of
10713 Fx_hide_busy_cursor.
10714
10715 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
10716 Remove prototyoes.
10717 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
10718
10719 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
10720
10721 * xterm.c (XTread_socket): Remove busy-cursor code.
10722
10723 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
10724 (build_frame_matrix_from_leaf_window): Put code handling
10725 glyph row's not being a slice of a frame row in #if 0.
10726 (sync_window_with_frame_matrix_rows): New function.
10727 (frame_row_to_window): New function.
10728 (mirror_line_dance): Handle copies between windows.
10729
10730 * lread.c (Fload): Use `xfree' instead of `free'.
10731 (init_obarray): Use `xmalloc' instead of `malloc'.
10732
10733 * window.c (Fset_window_buffer): Set WINDOW to the window
10734 after decoding.
10735 (coordinates_in_window): Take frame's internal border width
10736 into account.
10737
10738 2000-02-24 Gerd Moellmann <gerd@gnu.org>
10739
10740 * xterm.c (x_display_and_set_cursor): Display cursor of
10741 non-selected windows depending on the setting of
10742 cursor_in_non_selected_windows.
10743
10744 * xdisp.c (cursor_in_non_selected_windows): New variable.
10745 (syms_of_xdisp): DEFVAR_BOOL it.
10746
10747 2000-02-23 Gerd Moellmann <gerd@gnu.org>
10748
10749 * data.c (Fstring_to_number): If number is greater than what
10750 fits into an integer, return a float.
10751
10752 * eval.c (specbind): Remove references to
10753 keyword_symbols_constant_flag.
10754
10755 * data.c (keyword_symbols_constant_flag): Removed.
10756 (Fmakunbound, set_internal, syms_of_data): Remove references to
10757 keyword_symbols_constant_flag.
10758
10759 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
10760
10761 2000-02-23 Kenichi Handa <handa@etl.go.jp>
10762
10763 * syntax.c (multibyte_syntax_as_symbol): New variable.
10764 (syms_of_syntax): Declare it as a Lisp variable.
10765 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
10766 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
10767 nonzero, treat all multibyte characters as symbol.
10768 (init_syntax_once): Give syntax `word' to all multibyte characters.
10769
10770 2000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
10771
10772 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
10773 a deleted frame.
10774
10775 2000-02-21 Gerd Moellmann <gerd@gnu.org>
10776
10777 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
10778
10779 * xfns.c (x_window_to_frame, x_any_window_to_frame)
10780 (x_non_menubar_window_to_frame): Check the busy-cursor window.
10781
10782 2000-02-21 Dave Love <fx@gnu.org>
10783
10784 * frame.c (Vmouse_position_function): New variable.
10785 (Fmouse_position): Use it.
10786 (syms_of_frame): Install it.
10787
10788 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
10789
10790 2000-02-20 Gerd Moellmann <gerd@gnu.org>
10791
10792 * fileio.c (Finsert_file_contents): Unbind the binding of
10793 standard-output done by temp_output_buffer_setup.
10794
10795 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
10796 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
10797 (specbind, unbind_to): Handle most common case of non-constant
10798 symbol with trivial value specially.
10799
10800 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
10801
10802 2000-02-20 Richard M. Stallman <rms@gnu.org>
10803
10804 * data.c (Fmake_variable_buffer_local): Doc fix.
10805 Init found_for_buffer to 0.
10806 (Fmake_variable_frame_local): If the variable has already
10807 been buffer-local, set the check_frame field.
10808
10809 2000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
10810
10811 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
10812 produced for CODING_MODE_LAST_BLOCK requires.
10813
10814 2000-02-18 Dave Love <fx@gnu.org>
10815
10816 * keyboard.c (echo_keystrokes): Remove declaration.
10817 (Vecho_keystrokes) New variable.
10818 (read_char, record_menu_key, read_key_sequence): Use it to allow
10819 use of float value.
10820 (syms_of_keyboard): Change Vecho_keystrokes declaration.
10821
10822 * lread.c: Undef feature selection macros before defining.
10823
10824 2000-02-18 Gerd Moellmann <gerd@gnu.org>
10825
10826 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
10827 for symbols other than the symbol in question.
10828
10829 2000-02-17 Dave Love <fx@gnu.org>
10830
10831 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
10832
10833 2000-02-17 Gerd Moellmann <gerd@gnu.org>
10834
10835 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
10836
10837 * alloc.c (enum mem_type): Compile unconditionally.
10838
10839 2000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
10840
10841 * xfaces.c (tty_defined_color): Don't return faulire indication
10842 for unspecified-fg and unspecified-bg pseudo-colors.
10843
10844 2000-02-17 Gerd Moellmann <gerd@gnu.org>
10845
10846 * alloc.c (mark_object): Don't mark symbol names in pure space.
10847 (gc_sweep): Don't unmark symbol names in pure space.
10848
10849 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
10850 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
10851 [GC_MARK_STACK]: New defines.
10852 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
10853 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
10854
10855 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
10856
10857 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
10858 allocate_buffer instead of xmalloc.
10859
10860 * alloc.c (toplevel): Include setjmp.h.
10861 (PURE_POINTER_P): New define.
10862 (enum mem_type) [GC_MARK_STACK]: New enumeration.
10863 (Vdead) [GC_MARK_STACK]: New variable.
10864 (lisp_malloc): Add parameter TYPE, call mem_insert if
10865 GC_MARK_STACK is defined.
10866 (allocate_buffer): New function.
10867 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
10868 (free_float) [GC_MARK_STACK]: Set type to Vdead.
10869 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
10870 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
10871 (MEM_NIL) [GC_MARK_STACK]: New define.
10872 (struct mem_node) [GC_MARK_STACK]: New structure.
10873 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
10874 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
10875 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
10876 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
10877 (mark_stack) [GC_MARK_STACK]: New functions.
10878 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
10879 (clear_marks): Removed.
10880 (gc_sweep): Set free conses' car, free floats' type, free
10881 symbols' function to Vdead. Use lisp_free to free buffers.
10882 (init_alloc_once): Initialize Vdead.
10883 (survives_gc_p): Return non-zero for pure objects.
10884
10885 * alloc.c: Add comments throughout the file.
10886
10887 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
10888 that unblocks alarms.
10889
10890 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
10891 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
10892 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
10893
10894 * frame.c (make_frame): Set frame initiallly to `garbaged'.
10895
10896 2000-02-17 Kenichi Handa <handa@etl.go.jp>
10897
10898 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
10899 avoid infinite error signaling. Allocate sufficient memory for
10900 eol_str in the case that eoltype is Lisp_Int.
10901
10902 2000-02-17 Stefan Monnier <monnier@cs.yale.edu>
10903
10904 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
10905 depends on the previous behavior.
10906
10907 2000-02-16 Gerd Moellmann <gerd@gnu.org>
10908
10909 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
10910
10911 2000-02-15 Gerd Moellmann <gerd@gnu.org>
10912
10913 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
10914
10915 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
10916 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
10917 write(2).
10918
10919 2000-02-15 Richard M. Stallman <rms@gnu.org>
10920
10921 * data.c (set_internal): Don't make variable buffer-local
10922 if within a let-binding for the same buffer.
10923 (let_shadows_buffer_binding_p): New function.
10924
10925 * eval.c (specbind): For buffer-local value,
10926 record the current buffer also.
10927 (unbind_to): Cope with that change.
10928
10929 2000-02-15 Gerd Moellmann <gerd@gnu.org>
10930
10931 * window.c (Fsave_window_excursion): Doc fix.
10932
10933 2000-02-15 Stefan Monnier <monnier@cs.yale.edu>
10934
10935 * syntax.c (back_comment): Make sure we only consider comment-starters
10936 of the relevant style and return -1 in case of a failure to find the
10937 beginning of the comment.
10938 (Fforward_comment): If back_comment fails, go back to the position just
10939 after the comment-end.
10940 (scan_lists): Add comment describing a very minor bug.
10941
10942 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
10943
10944 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
10945 `completion-regexp-list' in the docstring.
10946
10947 2000-02-14 Dave Love <fx@gnu.org>
10948
10949 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
10950
10951 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
10952
10953 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
10954 to Emacs' syntax. Also fix the comment about set/not-set meanings
10955 since Emacs syntax is not the value 0 any more.
10956 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
10957 since it's now part of RE_SYNTAX_EMACS.
10958
10959 2000-02-12 Dave Love <fx@gnu.org>
10960
10961 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on Alpha.
10962
10963 2000-02-12 Gerd Moellmann <gerd@gnu.org>
10964
10965 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
10966
10967 2000-02-12 Dave Love <fx@gnu.org>
10968
10969 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
10970
10971 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
10972 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
10973 * s/hpux.h: Don't define HAVE_VFORK.
10974
10975 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
10976
10977 * s/nextstep.h: Don't define HAVE_ALLOCA.
10978
10979 * config.in: Add vfork bits.
10980
10981 2000-02-12 Gerd Moellmann <gerd@gnu.org>
10982
10983 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
10984 unwind function to undo the effect of stopping atimers.
10985
10986 * keyboard.c (bind_polling_period): Stop all timers except poll_timer.
10987
10988 * atimer.c (stopped_atimers): New variable.
10989 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
10990 New functions.
10991
10992 * atimer.h (stop_other_atimers, run_all_atimers)
10993 (unwind_stop_other_atimers): Add function prototypes.
10994
10995 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
10996
10997 2000-02-11 Ken Raeburn <raeburn@gnu.org>
10998
10999 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
11000 library may depend on jpeg.
11001 (atimer.o): Depends on atimer.c.
11002
11003 2000-02-11 Kenichi Handa <handa@etl.go.jp>
11004
11005 * insdel.c (del_range_1): Call update_compositions.
11006 (del_range_both): Call update_compositions just once..
11007
11008 2000-02-10 Dave Love <fx@gnu.org>
11009
11010 * xfns.c (create_frame_xic): Fix initialization of automatic
11011 aggregates for pcc.
11012
11013 2000-02-09 Kenichi Handa <handa@etl.go.jp>
11014
11015 * ccl.c (CCL_MAKE_CHAR): New macro.
11016 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
11017 registers by CCL_MAKE_CHAR before calling translate_char.
11018 <CCL_TranslateCharacterConstTbl> Likewise.
11019
11020 2000-02-08 Dave Love <fx@gnu.org>
11021
11022 * lread.c (__EXTENSIONS__): Define.
11023
11024 2000-02-08 Gerd Moellmann <gerd@gnu.org>
11025
11026 * puresize.h (BASE_PURESIZE): Increase to 650000.
11027
11028 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
11029
11030 * msdos.c (XMenuActivate): Turn off the cursor after displaying
11031 the help message.
11032
11033 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
11034
11035 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
11036 md, mh, mb, mr, and me to the fake termcap entry.
11037
11038 2000-02-06 Ken Raeburn <raeburn@gnu.org>
11039
11040 * sound.c (sound_cleanup): Don't call device close routine if the
11041 function pointer is null.
11042
11043 2000-02-06 Andrew Innes <andrewi@gnu.org>
11044
11045 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
11046 around image definitions and prototypes.
11047 (gamma_correct) [WINDOWSNT]: New prototype.
11048
11049 * w32term.c (x_make_frame_visible): Replace call to
11050 input_poll_signal with poll_for_input.
11051
11052 * window.c [WINDOWSNT]: Include w32term.h.
11053
11054 * xdisp.c [WINDOWSNT]: Include w32term.h.
11055
11056 * makefile.nt: Add dependencies on w32gui.h.
11057 (OBJ1): Include atimer.obj.
11058 ($(BLD)\atimer.obj): New dependency rule.
11059
11060 * w32.c (sigmask): New function (does nothing).
11061 (sigunblock): Ditto.
11062
11063 * frame.c [WINDOWSNT]: Include w32term.h.
11064
11065 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
11066
11067 * lread.c (syms_of_lread): Fix literal newlines.
11068
11069 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
11070 the string constant limit (2048 bytes) in MSVC.
11071 (main): Ditto.
11072
11073 2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
11074
11075 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit area.
11076 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
11077 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
11078 dispatch the event.
11079
11080 2000-02-04 Dave Love <fx@gnu.org>
11081
11082 * fileio.c: Remove some unused vars.
11083 (_GNU_SOURCE): Define (for euidaccess).
11084
11085 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
11086
11087 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
11088 gcpro1, gcpro2.
11089 (read_minibuf): Deal with allow_props correctly.
11090
11091 2000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
11092
11093 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
11094
11095 2000-02-03 Ken Raeburn <raeburn@gnu.org>
11096
11097 * search.c (compile_pattern): If a cache entry has a nil regexp,
11098 fill in that entry instead of clobbering a previously cached
11099 string regexp.
11100
11101 2000-02-02 Ken Raeburn <raeburn@gnu.org>
11102
11103 * puresize.h (BASE_PURESIZE): Increase to 610000.
11104
11105 2000-02-02 Gerd Moellmann <gerd@gnu.org>
11106
11107 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
11108 can GC.
11109
11110 2000-02-02 Kenichi Handa <handa@etl.go.jp>
11111
11112 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
11113 instead of incrementing ic directly.
11114 <CCL_WriteExprConst> Likewise.
11115 <ccl_set_expr>: Set ic to jump_address.
11116
11117 * fileio.c (e_write): Fix the handling of
11118 CODING_FINISH_INSUFFICIENT_SRC.
11119
11120 2000-02-01 Dave Love <fx@gnu.org>
11121
11122 * editfns.c (Fpropertize): Doc fix.
11123
11124 * process.c (Fstart_process): Doc fix.
11125
11126 * eval.c: Fix various doc strings not to duplicate information
11127 from help-manyarg-func-alist.
11128
11129 * window.c (Fset_window_margins): Don't make interactive. Doc fix.
11130
11131 * doc.c (Vhelp_manyarg_func_alist): New variable.
11132 (Fdocumentation): Use it.
11133 (syms_of_doc): Define it.
11134
11135 2000-01-31 Gerd Moellmann <gerd@gnu.org>
11136
11137 * xterm.c (xim_open_dpy): Remove unused local variable.
11138
11139 * emacs.c (USAGE): Use term `display options' instead of `X options'.
11140
11141 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
11142 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
11143
11144 * fns.c (sweep_weak_table): New function.
11145 (sweep_weak_hash_tables): Use it. Keep on marking until there
11146 is no more change.
11147
11148 2000-01-30 Gerd Moellmann <gerd@gnu.org>
11149
11150 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
11151 that XTread_socket does not crash by trying to call XNoOp on a
11152 closed display.
11153
11154 2000-01-30 Jason Rumney <jasonr@gnu.org>
11155
11156 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
11157 Change selected_frame to SELECTED_FRAME ().
11158 (w32_console_mouse_position): Remove #ifndef MULE from around
11159 `insist' parameter.
11160
11161 * makefile.nt: Remove dosfns.obj.
11162
11163 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
11164
11165 * w32fns.c (w32_defined_color): Check for valid frame before
11166 applying gamma correction. Eliminate dependency on frame elsewhere.
11167 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
11168 (w32_to_x_font): Use resx and resy not height_in and width_in.
11169 (x_to_w32_font): Doc fix.
11170 (xlfd_strip_height): New function to strip and return font height.
11171 (w32_font_match): Compare height separately from rest of xlfd
11172 spec, using xlfd_strip_height.
11173
11174 * w32term.c (w32_term_init): Swap resx and height_in, resy and
11175 width_in. Use w32_defined_color in place of defined_color.
11176
11177 * w32faces.c: Merge more of DOS and X specifics in preparation for
11178 merge with xfaces.c.
11179 (defined_color): Remove FIXME comment.
11180 (tty_color_name): Provide w32-specific function.
11181 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
11182
11183 * w32console.c (turn_on_face, turn_off_face): Removed.
11184 (w32_face_attributes): New function.
11185 (Global_variables): Reduce scope where possible.
11186 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
11187 fill attribute.
11188 (hl_mode): Don't modify text attributes.
11189 (write_glyphs): Don't do anything if len <= 0. Use
11190 w32_face_attributes to get attributes for drawing. Write
11191 terminating codes using char_attr_normal.
11192 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
11193 (update_begin, update_end): Likewise.
11194 (vga_stdcolor_name): New function.
11195 (initialize_w32_display): Remove char_attr_reverse and char_attr.
11196 (Fset_screen_color): Remove char_attr_reverse.
11197
11198 2000-01-29 Gerd Moellmann <gerd@gnu.org>
11199
11200 * xfns.c (xic_set_preeditarea): Take window parameter and
11201 window-relative pixel-positions.
11202
11203 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
11204 is its frame's selected window.
11205 (xim_instantiate_callback): Likewise.
11206
11207 * xfns.c (x_create_im): Removed.
11208 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
11209 (supported_xim_styles): Renamed from supported_styles.
11210 (best_xim_style): Renamed from best_style.
11211 (create_frame_xic): Renamed from xic_create_frame.
11212 (free_frame_xic): Renamed from xic_destroy_frame.
11213
11214 2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
11215
11216 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
11217 our frames, call XFilterEvent with 2nd parameter `None'.
11218 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
11219 returning XBufferOverflow.
11220 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status area.
11221 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
11222 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
11223 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
11224 (xim_initialize, xim_close)
11225 [HAVE_X_I18N && HAVE_X11R6]: New functions.
11226 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
11227 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
11228 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
11229
11230 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
11231 and `xim_styles'.
11232 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
11233 `xic_style' and `xic_xfs'.
11234 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
11235 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
11236 (FRAME_XIM): Removed.
11237
11238 * xfns.c (supported_styles): New variable.
11239 (DEFAULT_STYLE, DEFAULT_FONT): New macros
11240 (xic_create_xfontset, best_style, xic_create_frame)
11241 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
11242 (xic_set_xfontset): New functions.
11243
11244 2000-01-28 Dave Love <fx@gnu.org>
11245
11246 * s/irix6-5.h: Revert last change after change to irix5-0.h.
11247
11248 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
11249
11250 2000-01-28 Gerd Moellmann <gerd@gnu.org>
11251
11252 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
11253 for *scratch* if it already existed.
11254
11255 * emacs.c (USAGE): New macro.
11256 (main): Use it to display usage information.
11257
11258 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
11259
11260 Support for the menu-help feature:
11261
11262 * msdos.h: Change prototypes of XMenuAddSelection and XMenuActivate.
11263
11264 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
11265 part of the line to the termscript file.
11266 (IT_clear_to_end): Clear the entire line, not just its beginning.
11267 (menu_help_message, prev_menu_help_message): New variables.
11268 (IT_menu_make_room): Make room for the help_text member.
11269 (IT_menu_display): New argument disp_help; all callers changed.
11270 If disp_help is non-zero, store the help text of the active menu
11271 item in menu_help_message.
11272 (XMenuAddPane): Initialize the help_text member to NULL.
11273 (XMenuAddSelection): New argument help_text. Store it in the
11274 XMenu structure.
11275 (XMenuActivate): New argument help_callback. If the value of
11276 menu_help_message has changed since the last time, display the
11277 menu help message text while waiting for the mouse to move. Clear
11278 the echo area before exiting.
11279 (XMenuDestroy): Free the help_text member.
11280
11281 2000-01-27 Gerd Moellmann <gerd@gnu.org>
11282
11283 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
11284 XMenuAddSelection. Pass help callback to XMenuActivate.
11285 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
11286
11287 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
11288
11289 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
11290 and EMACS_SET_USECS.
11291
11292 2000-01-26 Dave Love <fx@gnu.org>
11293
11294 * editfns.c (Fchar_after, Fchar_before): Doc fix.
11295
11296 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
11297 an error may be signalled.
11298
11299 2000-01-26 Gerd Moellmann <gerd@gnu.org>
11300
11301 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
11302 LD_SWITCH_SYSTEM inherited from irix5-0.h.
11303
11304 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
11305
11306 2000-01-25 Gerd Moellmann <gerd@gnu.org>
11307
11308 * charset.c (Fstring): If there is a multibyte char among
11309 the args, always return a multibyte string.
11310
11311 2000-01-25 Gerd Moellmann <gerd@gnu.org>
11312
11313 * sysdep.c (sys_select): Turn atimers off and on instead of
11314 recording and restoring old alarm handler
11315
11316 * process.c (toplevel): Include atimer.h.
11317 (create_process_1): Rewritten.
11318 (create_process): Use atimers instead of alarm.
11319 (wait_reading_process_input) [hpux]: Turn atimers off instead
11320 of turning off SIGALRM.
11321 (wait_reading_process_input): Turn off atimers instead off
11322 calling stop_polling.
11323
11324 * emacs.c (main): Call init_atimer.
11325
11326 * keyboard.c (toplevel): Include systime.h and atimer.h.
11327 (polling_for_input): Removed because unused.
11328 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
11329 (poll_timer): New variable.
11330 (poll_for_input, poll_for_input_1): New functions.
11331 (start_polling, stop_polling): Rewritten.
11332
11333 * keyboard.h (polling_for_input): Removed.
11334
11335 * atimer.h, atimer.c: New files.
11336
11337 * Makefile.in (obj): Add atimer.o.
11338 (atimer.o): New target.
11339
11340 * blockinput.h (pending_atimers): Add extern declaration.
11341 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
11342
11343 * lisp.h (popup_activated_flag): Add extern declaration.
11344
11345 * xmenu.c (popup_activated_flag): Make externally visible.
11346 (popup_activate_callback) [USE_MOTIF]: Increment popup_activated_flag.
11347 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
11348
11349 * xterm.c (toplevel): Include atimer.h.
11350 (toolkit_scroll_bar_interaction): New variable.
11351 (Fxt_process_timeouts): Removed.
11352 (x_process_timeouts): New function.
11353 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
11354 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
11355 (x_make_frame_visible): Call poll_for_input_1 instead of
11356 input_poll_signal. Don't call alarm.
11357 (x_initialize): Install timer calling x_process_timeouts.
11358
11359 2000-01-24 Dave Love <fx@gnu.org>
11360
11361 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
11362 Don't use -cckr -- apparently not now necessary.
11363
11364 2000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
11365
11366 * msdos.c (IT_menu_display): Truncate long menu lines at the right
11367 screen boundary.
11368
11369 2000-01-23 Jason Rumney <jasonr@gnu.org>
11370
11371 * w32fns.c (w32_defined_color): Apply gamma correction before
11372 trying to map to the palette.
11373 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
11374 to w32_clear_rect.
11375
11376 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
11377 here. Callers changed to always pass real device context.
11378 (w32_draw_bitmap): Likewise.
11379 (w32_get_glyph_overhangs): Likewise.
11380 (w32_draw_box_rect): Make use of s->hdc rather than getting a new one.
11381 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
11382 pfnSetScrollInfo and SetScrollRange.
11383 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
11384 back into MULE characters after decoding them.
11385 (x_get_glyph_face_and_encoding): Likewise.
11386 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
11387 GetCharABCWidthsW fails, since this is defined on Windows 9x.
11388 (x_produce_glyphs): Calculate per char metrics for a character
11389 that we know exists in default font when font_not_found_p is true.
11390
11391 2000-01-22 Jason Rumney <jasonr@gnu.org>
11392
11393 * makefile.nt (intervals.obj, composite.obj): New modules.
11394 (composite.h): Added as dependency where appropriate.
11395
11396 * w32gui.h (XGCValue): New struct for emulating X GCs.
11397
11398 * w32term.h (XCharStruct): New struct for emulating X.
11399
11400 * w32console.c (turn_on_face, turn_off_face): New functions.
11401 (change_line_highlight): New prototype for new redisplay.
11402 (write_glyphs): Support multibyte text. Support faces.
11403
11404 * w32faces.c: Complete rewrite for new redisplay based on new xfaces.c.
11405
11406 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
11407 throughout. struct frame * in place of FRAME_PTR.
11408 Skeleton support for images, toolbars, tooltips from xfns.c.
11409 (Fx_create_frame): Use system default for default scroll bar width.
11410 (w32_get_arg): Renamed from x_get_arg.
11411 (Fx_file_dialog): New function.
11412 (w32_list_fonts): Check cache before asking system.
11413 (Vw32_enable_synthesized_fonts): New variable.
11414 (Vw32_enable_italics): Obsolete, removed.
11415
11416 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
11417 Use SELECTED_FRAME macro.
11418
11419 * w32menu.c: Add skeleton support for help strings on menus.
11420 (add_menu_item): Native checkbox and radio support added, but not
11421 yet enabled due to bugs.
11422 (push_menu_item): Add parameters type, selection and help.
11423 Callers updated.
11424 Formatting changes to reduce unnecessary diffs with xmenu.c.
11425
11426 * w32select.c (Fw32_set_clipboard_data): Update call to
11427 find_charset_in_str.
11428
11429 * w32term.c: Complete rewrite for new redisplay based on new
11430 xterm.c with necessary sections merged back in from old w32term.c.
11431
11432 2000-01-21 Richard M. Stallman <rms@gnu.org>
11433
11434 * data.c (set_internal): Further fix in same criterion.
11435
11436 2000-01-20 Richard M. Stallman <rms@gnu.org>
11437
11438 * data.c (set_internal): Fix the criteria for whether
11439 to swap out the old cached binding.
11440
11441 2000-01-19 Dave Love <fx@gnu.org>
11442
11443 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
11444
11445 2000-01-18 Kenichi Handa <handa@etl.go.jp>
11446
11447 * regex.c (re_compile_fastmap): While checking a range table for
11448 `charset', skip flag bits for a character class correctly.
11449
11450 2000-01-17 Gerd Moellmann <gerd@gnu.org>
11451
11452 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
11453
11454 * xfns.c (x_window): Call lw_create_widget with new parameter list.
11455
11456 * widget.c (EmacsFrameSetCharSize): Change size of children first
11457 because of problems with main window geometry management under Lesstif.
11458
11459 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
11460 MENU_ITEMS_ITEM_.*.
11461 (MENU_ITEMS_ITEM_HELP): New enumerator.
11462 (push_menu_item): Add parameter HELP. Record help in menu_items.
11463 (single_menu_item, single_submenu, list_of_items): Call
11464 push_menu_item with new parameter.
11465 (single_submenu): Set help string in widget value.
11466 (menu_highlight_callback): New function.
11467 (set_frame_menubar): Call lw_create_widget with new
11468 parameter list.
11469 (xmenu_show, xdialog_show): Ditto.
11470
11471 2000-01-13 Gerd Moellmann <gerd@gnu.org>
11472
11473 * sound.c (Fplay_sound): Improve doc string.
11474
11475 2000-01-11 Richard M. Stallman <rms@gnu.org>
11476
11477 * lisp.h (set_internal): Enter the new arg.
11478
11479 * eval.c (specbind): Record buffer-local variables specially,
11480 indicating which buffer's binding was saved.
11481 (unbind_to): Restore buffer-local variables specially
11482 in the proper buffer.
11483
11484 * data.c (set_internal): New arg BUF.
11485
11486 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
11487 * data.c (Fset): Pass new arg to set_internal.
11488 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
11489
11490 2000-01-11 Gerd Moellmann <gerd@gnu.org>
11491
11492 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload, xprintsym.
11493
11494 2000-01-11 Richard M. Stallman <rms@gnu.org>
11495
11496 * minibuf.c (Ftry_completion): Doc fix.
11497
11498 2000-01-11 Gerd Moellmann <gerd@gnu.org>
11499
11500 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
11501 vector, too.
11502
11503 2000-01-11 Andreas Schwab <schwab@suse.de>
11504
11505 * coding.c (code_convert_region): Initialize total_skip.
11506
11507 2000-01-08 Dave Love <fx@gnu.org>
11508
11509 * eval.c (Fuser_variable_p): Check customizability too.
11510
11511 2000-01-07 Gerd Moellmann <gerd@gnu.org>
11512
11513 * minibuf.c (Fcompleting_read): Doc fix.
11514
11515 2000-01-05 Gerd Moellmann <gerd@gnu.org>
11516
11517 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
11518 -L /usr/local/lib.
11519
11520 * xfns.c (x_create_im): New function to set IM and IC of a frame.
11521 Check that input style is supported before trying to create an
11522 IC for it.
11523 (x_window): Call x_create_im.
11524
11525 2000-01-04 Gerd Moellmann <gerd@gnu.org>
11526
11527 * xfns.c (current_gif_memory_src): New variable.
11528 (gif_load): Record the address of the current memory source
11529 in current_gif_memory_src.
11530 (gif_read_from_memory): Use current_gif_memory_src.
11531
11532 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
11533 macros statement form.
11534
11535 * sound.c (struct sound): Renamed from struct sound_file.
11536 (struct sound): Add members `data' and `header_size'.
11537 (enum sound_attr): Add SOUND_DATA.
11538 (current_sound, current_sound_device): Variables renamed from
11539 sound_file and sound_device.
11540 (parse_sound): Parse :data.
11541 (parse_sound): Handle sound data in strings.
11542 (find_sound_type): Function renamed from find_sound_file_type.
11543 (wav_init, au_init): Fail if sound's header_size is smaller than
11544 needed header size.
11545 (wav_play, au_play): Play sounds from string data.
11546
11547 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
11548
11549 * lisp.h: Add prototype for allocate_string_data.
11550
11551 * alloc.c (Fgarbage_collect): Return number of live and free strings.
11552
11553 * alloc.c (mark_buffer): Remove code in #if 0.
11554 (gc_sweep): Ditto.
11555 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
11556 (strings_consed): New variable.
11557 (allocate_string): Set it.
11558 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
11559 (Fmemory_use_counts): Return strings_consed. Use Flist.
11560
11561 * alloc.c: General cleanup in comments etc. Remove conditional
11562 compilation for `standalone'.
11563
11564 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
11565
11566 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
11567 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
11568 (DONT_COPY_FLAG): Removed.
11569 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
11570 (struct sdata, struct sblock): New
11571 (struct string_block): Rewritten.
11572 (STRINGS_IN_STRING_BLOCK): New macro.
11573 (oldest_sblock, current_sblock, total_strings, total_free_strings)
11574 (large_sblocks, string_blocks, string_free_list): New variables.
11575 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
11576 (init_strings): Rewritten.
11577 (allocate_string, allocate_string_data, compact_small_strings)
11578 (free_large_strings, sweep_strings): New functions.
11579 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
11580 (struct string_block_head, current_string_block)
11581 (first_string_block, large_string_blocks, STRING_FULLSIZE)
11582 (STRING_PAD): Removed.
11583 (make_uninit_multibyte_string, make_pure_string): Rewritten.
11584 (Fgarbage_collect): Don't set mark bit in large strings.
11585 (mark_object): Mark strings differently. Mark symbol names
11586 differently.
11587 (survives_gc_p): Test marked strings differently.
11588 (gc_sweep): Sweep strings differently, unmark strings in
11589 symbol names.
11590 (compact_strings): Removed.
11591
11592 2000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
11593
11594 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
11595 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
11596
11597 2000-01-04 Kenichi Handa <handa@etl.go.jp>
11598
11599 * fileio.c (Finsert_file_contents): Signal error if visiting file
11600 in a non-empty buffer.
11601
11602 * term.c (encode_terminal_code): Fix the previous change.
11603
11604 2000-01-03 Gerd Moellmann <gerd@gnu.org>
11605
11606 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
11607 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
11608
11609 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
11610
11611 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11612
11613 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
11614 need to test for MSDOS frames.
11615
11616 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11617
11618 * dosfns.c (unspecified_colors): Remove.
11619 (msdos_stdcolor_idx): Use global variables unspecified_fg and
11620 unspecified_bg.
11621 (msdos_stdcolor_name): Return strings for unspecified fore- and
11622 back-ground colors.
11623
11624 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
11625 (syms_of_xfaces): Remove their staticpro's.
11626 (tty_color_name): Return Lisp strings for unspecified fore- and
11627 back-ground colors.
11628 (Finternal_set_lisp_face_attribute): Remove the special treatment
11629 for Qunspecified_{f,b}g.
11630 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp string.
11631
11632 2000-01-03 Gerd Moellmann <gerd@gnu.org>
11633
11634 * xdisp.c (reseat_at_next_visible_line_start): Position before
11635 newline only if ending up on a newline.
11636 (next_element_from_ellipsis): Return success. Handle case of
11637 displaying no ellipsis. Fix case of ellipsis defined in display table.
11638 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
11639 returns 0.
11640
11641 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11642
11643 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
11644 (Fcolor_supported_p): Renamed from face-color-supported-p.
11645
11646 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11647
11648 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
11649 list of colors renamed to tty-defined-color-alist.
11650 (tty_color_name): Pass the frame to tty-color-by-index.
11651 (realize_tty_face): tty-color-alist is now a function which
11652 accepts the frame as argument.
11653
11654 * term.c (Ftty_display_color_p): Accept an optional argument FRAME.
11655
11656 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11657
11658 * term.c (insert_glyphs): Pass glyph, not &glyph, to
11659 encode_terminal_code.
11660
11661 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11662
11663 * dispnew.c (mode_line_string): Support termcap frames as well.
11664
11665 2000-01-01 Gerd Moellmann <gerd@gnu.org>
11666
11667 * syntax.c (Fforward_word): Undo previous change.
11668
11669 * editfns.c (Fconstrain_to_field): Don't constrain if
11670 inhibit-field-text-motion is non-nil.
11671 (Fline_beginning_position): Undo previous change.
11672 (Fline_end_position): Ditto.
11673
11674 * syntax.c (Fforward_word): Notice field boundaries only if
11675 inhibit-field-text-motion is nil.
11676
11677 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
11678
11679 * editfns.c (Vinhibit_field_text_motion): New variable.
11680 (inhibit-field-text-motion): New DEFVAR_LISP.
11681 (Fline_beginning_position, Fline_end_position): Notice field
11682 boundaries only if inhibit-field-text-motion is nil.
11683
11684 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
11685 All calls adjusted.
11686 (x_build_heuristic_mask): Likewise.
11687 (xbm_load_image_from_file): Change error output.
11688 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
11689 (gif_load, gs_load, x_kill_gs_process): Ditto.
11690
11691 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
11692 color indices when accessing raster pixels.
11693 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
11694 one of :file or :data.
11695 (enum pbm_keyword_index): Add PBM_DATA.
11696 (pbm_format): Add :data.
11697 (pbm_image_p): Allow either :file or :data.
11698 (pbm_read_file): New function.
11699 (pbm_scan_number): Rewritten to read from string.
11700 (pbm_load): Support :data.
11701
11702 See ChangeLog.8 for earlier changes.
11703
11704 ;; Local Variables:
11705 ;; coding: iso-2022-7bit
11706 ;; End: