]> code.delx.au - gnu-emacs/blob - src/ChangeLog
*** empty log message ***
[gnu-emacs] / src / ChangeLog
1 2001-06-18 Gerd Moellmann <gerd@gnu.org>
2
3 * composite.c (Ffind_composition_internal): Check POS
4 for validity.
5
6 2001-06-15 Eli Zaretskii <eliz@is.elta.co.il>
7
8 * editfns.c (Fmessage_box): If the frame is not under a window
9 system, output the message in the echo area.
10
11 2001-06-14 Richard M. Stallman <rms@gnu.org>
12
13 * xdisp.c (try_window_id): When EOB is visible, don't treat
14 insertion at EOB as if it were "off the bottom of the screen."
15
16 2001-06-11 Andrew Innes <andrewi@gnu.org>
17
18 * w32proc.c (create_child): Add new parameter is_gui_app.
19 (w32_executable_type): Add new parameter is_gui_app.
20 (sys_spawnve): Use it.
21 (sys_kill): Fake ^C for SIGINT, and ^Break (if possible) for
22 SIGQUIT. This matches better how the signals are interpreted by
23 MSVC compiled programs.
24 (syms_of_ntproc): Update docstring.
25
26 2001-06-02 Stefan Monnier <monnier@cs.yale.edu>
27
28 * xterm.c (clear_mouse_face): Reset dpyinfo->mouse_face_overlay as
29 well otherwise note_mouse_highlight might optimize away highlighting
30 if we pass over that same overlay again.
31
32 2001-06-02 Eli Zaretskii <eliz@is.elta.co.il>
33
34 * lread.c (Fload): Document that the argument is run via
35 substitute-in-file-name.
36
37 2001-05-31 Gerd Moellmann <gerd@gnu.org>
38
39 * Makefile.in (bootstrap-doc): New target.
40 (bootstrap-emacs): Depend on it.
41
42 * fileio.c (Fdo_auto_save): Don't try to create the directory of
43 auto-save-list-file-name when shutting down Emacs, because
44 creating the directory might signal an error, and leaves
45 Emacs in a strange state.
46
47 * term.c: (tty_cursor_hidden): New variable.
48 (update_begin): Don't call tty_hide_cursor. Clean up.
49 (update_end, set_terminal_window, set_scroll_region): Clean up.
50 (ring_bell, reset_terminal_modes): Clean up.
51 (tty_hide_cursor, tty_show_cursor): Hide/show cursor depending
52 on tty_cursor_hidden.
53 (write_glyphs): Call tty_hide_cursor.
54
55 2001-05-30 Stefan Monnier <monnier@cs.yale.edu>
56
57 * buffer.c (copy_overlays): Make ENABLE_CHECKING happy.
58
59 2001-05-30 Gerd Moellmann <gerd@gnu.org>
60
61 * xfns.c (enum image_value_type): New enumerator
62 IMAGE_STRING_OR_NIL_VALUE.
63 (parse_image_spec): Handle it.
64 (xbm_format, pbm_format): Use it for :foreground and :background.
65 (xbm_load, pbm_load): Check for nil color names.
66
67 * xterm.c (note_mouse_highlight): If an overlapping overlay
68 exists, but we find that we highlight the same overlay as before,
69 don't do the highlighting again.
70
71 2001-05-29 Gerd Moellmann <gerd@gnu.org>
72
73 * xmenu.c (single_submenu, xmenu_show) [!HAVE_MULTILINGUAL_MENU]:
74 Protect unibyte strings created by replacing their multibyte
75 equivalents in menu_items.
76
77 * keymap.c (Fsingle_key_description): NUL-terminate the string
78 buffer before calling build_string.
79
80 * callproc.c (Fcall_process): Deal with decode_coding returning
81 CODING_FINISH_INCONSISTENT_EOL.
82
83 2001-05-28 Gerd Moellmann <gerd@gnu.org>
84
85 * xmenu.c (xmenu_show) [!HAVE_MULTILINGUAL_MENU]: Don't overwrite
86 an item's name with its key description in case the description
87 is a multibyte string.
88
89 * keymap.c (Fsingle_key_description): Create a multibyte string
90 only if necessary.
91
92 * macros.c (Fstart_kbd_macro): Doc fix.
93
94 * xterm.c (cursor_in_mouse_face_p): New function.
95 (x_draw_stretch_glyph_string): Use it to choose a different GC
96 when drawing a cursor within highlighted text.
97
98 * editfns.c (char_property_eq): Put in #if 0.
99
100 * indent.c (string_display_width): Put in #if 0.
101
102 * lread.c (Fload): Remove unused label.
103
104 * termcap.c (speeds): Put in #if 0.
105
106 2001-05-18 Gerd Moellmann <gerd@gnu.org>
107
108 * eval.c (call_debugger): Don't bind inhibit-eval-during-redisplay.
109
110 * xfaces.c (xlfd_point_size): Don't divide pixel size from
111 transformation matrix by 10.
112
113 2001-05-16 Gerd Moellmann <gerd@gnu.org>
114
115 * xfns.c (x_set_foreground_color): Change frame's cursor_pixel
116 only if it's equal to the former foreground pixel color.
117 (x_set_foreground_color, x_set_background_color)
118 (x_set_mouse_color, x_set_cursor_color): Cleaned up.
119
120 2001-05-16 Dave Love <fx@gnu.org>
121
122 * insdel.c (signal_before_change, signal_after_change): Consider a
123 local change hook which changes the buffer.
124
125 * process.c (read_process_output): Don't call signal_after_change
126 and update_compositions after insert_from_string_before_markers.
127
128 2001-05-16 Gerd Moellmann <gerd@gnu.org>
129
130 * xfaces.c (split_font_name): Use the right field when
131 checking for `[...]' syntax.
132
133 * buffer.c (copy_overlays): New function.
134 (clone_per_buffer_values): Use it.
135
136 * buffer.h (OVERLAY_PLIST): New macro.
137
138 * keymap.c (Fsingle_key_description): Replace a build_string with
139 a make_multibyte_string. From Kenichi Handa <handa@etl.go.jp>.
140
141 * fontset.c (Ffontset_info): Check that face is non-null
142 before accessing its fields.
143
144 2001-05-15 Gerd Moellmann <gerd@gnu.org>
145
146 * keyboard.c (read_key_sequence): Prevent generating a fake
147 prefix key twice.
148
149 * xfaces.c (split_font_name): Handle `[...]' for the right
150 font name fields.
151
152 * ccl.c (ccl_driver): Don't copy remaining bytes in case
153 of CCL_STAT_INVALID_CMD.
154
155 2001-05-14 Stefan Monnier <monnier@cs.yale.edu>
156
157 * eval.c (Fdefvar): Only record (defvar <var>) in the load-history
158 in <var> has no default value yet.
159
160 * xfaces.c (try_alternative_families): First try the FAMILY.
161 And if nothing is found in the end, try again with scalable fonts.
162 (try_font_list): Let try_alternative_families do a bit more of
163 the work. Only use FAMILY if it is not nil.
164 (syms_of_xfaces) <scalable-fonts-allowed>: Fix docstring.
165
166 2001-05-14 Gerd Moellmann <gerd@gnu.org>
167
168 * xterm.c (note_mouse_highlight): Avoid changing the mouse
169 pointer shape when show_mouse_face has already done it.
170
171 * xterm.c (x_draw_glyphs): Fix computation of rightmost x for
172 full-width rows.
173
174 * xfaces.c (split_font_name): Make sure to leave the loop
175 with the right value of `i'.
176
177 * xfaces.c (split_font_name): Handle matrix transformations
178 in the pixel and point size fields of XLFD font names.
179 (xlfd_point_size): Likewise.
180
181 2001-05-12 Eli Zaretskii <eliz@is.elta.co.il>
182
183 * w32fns.c (w32_to_x_font): Change prototype to fit the declaration.
184 (x_to_w32_font): Add prototype.
185
186 * regex.c (malloc, realloc, free) [emacs]: Undefine before
187 redefining, to avoid compiler warnings.
188
189 * w32proc.c: Include syssignal.h, to avoid compiler warnings.
190
191 * w32bdf.c (search_file_line, set_bdf_font_info, seek_char)
192 (w32_get_bdf_glyph): Cast between unsigned char and char when
193 passing arguments to subroutines, to shut up compiler warnings.
194 (w32_get_bdf_glyph): Don't mix signed and unsigned when calling
195 GET_HEX_VAL.
196
197 * xfaces.c: Include keyboard.h before frame.h, not after it.
198
199 * widget.c: Include keyboard.h before frame.h.
200
201 * w32term.h (struct image, struct face): Forward declaration, to
202 avoid compiler warnings.
203
204 2001-05-11 Gerd Moellmann <gerd@gnu.org>
205
206 * keyboard.c (read_key_sequence): Don't modify events when
207 generating fake prefix keys (mode-line, scroll-bar, ...) since
208 this prevents proper processing of such events when pushed back
209 into unread-command-events.
210
211 * xterm.c (clear_mouse_face): Return 1 if text with mouse face was
212 actually redrawn. Make the function static.
213 (note_mouse_highlight): Fix a case where the mouse cursor
214 was changed back to the text cursor.
215
216 * xterm.h (clear_mouse_face): Remove prototype.
217
218 * xdisp.c (try_window_id): Fix the fix and set the right
219 window_end_vpos.
220
221 * xdisp.c (try_window_id): Fix computation of window end in the
222 case that lines were deleted at the end of the window. Add some
223 more debug_method_adds.
224
225 * xfaces.c (try_alternative_families): New function.
226 (try_font_list): Use it. If ATTRS specifies a family, check
227 fonts from that family first.
228 (choose_face_font): Remove code setting the family part of
229 the pattern to nil.
230
231 2001-05-10 Gerd Moellmann <gerd@gnu.org>
232
233 * xdisp.c (try_window_id): Fix case of all changes before
234 the window start.
235
236 * xdisp.c (try_window_id): Add some xasserts.
237
238 2001-05-09 Gerd Moellmann <gerd@gnu.org>
239
240 * lisp.h (GLYPH_CHAR_VALID_P): Use CHAR_VALID_P.
241
242 2001-05-09 Dave Love <fx@gnu.org>
243
244 * xdisp.c (GIVE_UP): Fix for K&R C.
245
246 2001-05-09 Gerd Moellmann <gerd@gnu.org>
247
248 * print.c (syms_of_print) <print-length, print-level>: Doc fix.
249
250 * xterm.c (note_mouse_highlight): Don't change the mouse cursor
251 back to the text cursor shape without need.
252
253 2001-05-07 Gerd Moellmann <gerd@gnu.org>
254
255 * xfns.c (x_set_foreground_color): Set frame's cursor_pixel.
256
257 * dispextern.h (inverse_video): Declare extern.
258
259 * keyboard.c (delete_kboard): Handle the case that selected_frame
260 has been deleted in the course of x_connection_closed.
261
262 2001-05-03 Eli Zaretskii <eliz@is.elta.co.il>
263
264 * xterm.c (XTread_socket) <Expose> [!USE_TOOLKIT_SCROLL_BARS]:
265 Fix the change from 2001-04-30.
266
267 2001-05-03 Gerd Moellmann <gerd@gnu.org>
268
269 * xfns.c (file_dialog_unmap_cb): New function.
270 (Fx_file_dialog): Use it as XmNunmapCallback to capture the case
271 where a dialog is closed via the window manager.
272
273 * xdisp.c (try_window_id): Cases of changes all in front of
274 the window start or all below the window end mostly rewritten.
275 (redisplay_window): Move the tests if try_window_id is
276 applicable to try_window_id.
277 (GIVE_UP): New macro.
278
279 2001-05-02 Gerd Moellmann <gerd@gnu.org>
280
281 * xterm.c (expose_window): Return int. If W is the window
282 currently being updated, mark the frame garbaged.
283 Fix computation of rows intersecting the exposed rectangle.
284 (expose_window_tree): Stop when expose_window returns 0.
285
286 * xterm.c (x_draw_stretch_glyph_string): Don't draw background
287 again if it has already been drawn.
288
289 2001-05-01 Stefan Monnier <monnier@cs.yale.edu>
290
291 * syntax.c (update_syntax_table): Check that oldi has the same
292 properties as old_prop before deciding not to invalidate.
293
294 2001-04-30 Gerd Moellmann <gerd@gnu.org>
295
296 * undo.c (Fprimitive_undo): In a writable buffer, enable undoing
297 read-only text that is so because of text properties.
298
299 * xterm.c (x_window_to_menu_bar) [USE_LUCID]: New function.
300 (XTread_socket) <Expose> [USE_LUCID]: Handle events for
301 windows that are components of a Lucid menu bar.
302
303 2001-04-27 Gerd Moellmann <gerd@gnu.org>
304
305 * term.c (turn_on_face): Fix reverse video handling on terminals
306 that don't support colors.
307
308 2001-04-26 Gerd Moellmann <gerd@gnu.org>
309
310 * editfns.c (save_excursion_restore): Don't use XBUFFER on
311 a non-buffer.
312
313 2001-04-25 Gerd Moellmann <gerd@gnu.org>
314
315 * term.c (toggle_highlight): New function.
316 (turn_on_face): Change handling of reverse video.
317
318 * process.c (wait_reading_process_input):
319 Call record_asynch_buffer_change only if a timer really changed buffers.
320
321 * buffer.c (mouse_face_overlay_overlaps): Fix the computation
322 of the number of overlays to check.
323
324 * keyboard.c (command_loop_1): Redo change of 2001-03-12.
325
326 * xdisp.c (try_window_id): Fix a case where window_end_pos
327 and window_end_bytepos were not adjusted.
328
329 2001-04-23 Gerd Moellmann <gerd@gnu.org>
330
331 * xfaces.c (compute_char_face): If buffer is unibyte, set CH to
332 zero instead of -1.
333
334 2001-04-21 Eli Zaretskii <eliz@is.elta.co.il>
335
336 * process.c (wait_reading_process_input) [!subprocesses]:
337 Don't reference waiting_for_user_input_p, it's not defined in the
338 branch without async subprocesses support.
339
340 2001-04-19 Gerd Moellmann <gerd@gnu.org>
341
342 * keyboard.c (delete_kboard): Prevent a dangling reference
343 from current_kboard to KB, which is freed.
344
345 * process.c (wait_reading_process_input):
346 Call record_asynch_buffer_change after running timers, to make
347 read_key_sequence aware of buffer changes from under it.
348
349 2001-04-18 Gerd Moellmann <gerd@gnu.org>
350
351 * xfaces.c (Qscalable_fonts_allowed): New variable.
352 (realizing_basic_faces_p): Removed.
353 (x_face_list_fonts): Special handling for realizing_basic_faces_p
354 removed.
355 (realize_basic_faces): Specbind Qscalable_fonts_allowed to t.
356 (syms_of_xfaces): Initialize Qscalable_fonts_allowed. Change default
357 for scalable-fonts-allowed to t.
358
359 * fileio.c (Finsert_file_contents): If the file size returned from
360 stat is zero, set END to READ_BUF_SIZE. This makes sure we can
361 read from files on a procfs whose contents are generated dynamically.
362
363 2001-04-18 Eli Zaretskii <eliz@is.elta.co.il>
364
365 * gmalloc.c (__malloc_size_t) [__GNUC__]: If STDC_HEADERS is not
366 defined, include stddef.h and use __SIZE_TYPE__ instead of size_t.
367 (__memalign_hook): Make the two prototypes consistent.
368
369 2001-04-17 Gerd Moellmann <gerd@gnu.org>
370
371 * xdisp.c (redisplay_window): Make sure to clear the desired glyph
372 matrix of mini-windows.
373
374 2001-04-12 Stefan Monnier <monnier@cs.yale.edu>
375
376 * intervals.c (find_interval): Don't rebalance during signal handling.
377
378 2001-04-11 Gerd Moellmann <gerd@gnu.org>
379
380 * fns.c: Include blockinput.h.
381
382 * fns.c (Fplist_get): Don't QUIT if interrupt_input_blocked.
383
384 2001-04-10 Gerd Moellmann <gerd@gnu.org>
385
386 * fns.c (Fcompare_strings): Fix return values.
387
388 * window.c (window_scroll): Change the meaning of N to mean
389 N screen-fulls or N lines.
390 (window_scroll_pixel_based, window_scroll_line_based)
391 (scroll_command, Fscroll_other_window): Change accordingly.
392
393 * window.c (window_scroll_pixel_based, Frecenter):
394 Call window_box_height instead of using it.last_visible_y for the
395 height of the window.
396
397 * xdisp.c (redisplay_window) <recenter>: Call window_box_height
398 instead of using it.last_visible_y for the height of the window.
399
400 * w32proc.c (sys_spawnve): Quote more chars for Cygwin.
401 From Dan Holmsand <dan@eyebee.com>.
402
403 * w32.c (sys_open): Try to open file without _O_CREAT first, to be
404 able to write to hidden and system files. From Dan Holmsand
405 <dan@eyebee.com>.
406
407 * fileio.c (Fcopy_file) [WINDOWSNT]: Use CopyFile. From Dan
408 Holmsand <dan@eyebee.com>.
409
410 2001-04-09 Gerd Moellmann <gerd@gnu.org>
411
412 * fns.c (Fplist_get, Fplist_put): Add QUITs.
413
414 * window.c (window_internal_height): Return 1 less if the
415 window has a header line.
416
417 * xdisp.c (try_window_id): When scrolling on a terminal, take
418 the change of window_internal_height into account.
419
420 2001-04-09 Eli Zaretskii <eliz@is.elta.co.il>
421
422 * gmalloc.c (align): If the argument SIZE would overflow
423 __malloc_ptrdiff_t, fail right away.
424
425 2001-04-06 Gerd Moellmann <gerd@gnu.org>
426
427 * xfns.c (compute_tip_xy): Add parameters WIDTH and HEIGHT.
428 Make sure the tooltip is completely visible.
429 (x_make_gc): Use FRAME_X_SCREEN_NUMBER.
430
431 * xterm.h (FRAME_X_SCREEN_NUMBER): New macro.
432
433 * xmenu.c (xmenu_show): Use FRAME_X_SCREEN_NUMBER.
434
435 2001-04-06 Dave Love <fx@gnu.org>
436
437 * composite.c (update_compositions) <check_mask & CHECK_HEAD>:
438 Fix test of `from'.
439
440 2001-04-06 Gerd Moellmann <gerd@gnu.org>
441
442 * composite.h (COMPOSITION_VALID_P): Allow integers as cdrs of PROP.
443
444 * xdisp.c (Qinhibit_eval_during_redisplay): Make it a Lisp_Object.
445
446 2001-04-05 Gerd Moellmann <gerd@gnu.org>
447
448 * sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
449
450 * editfns.c (Fcurrent_time_zone): Accept spaces in timezone names.
451
452 * xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
453 (syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
454
455 * xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
456 shell widget's position only if it is non-null.
457
458 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]:
459 Set f->output_data.x->widget to null after destroying it.
460
461 * fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
462 FILENAME to bring it in synch with the documentation.
463
464 * xfaces.c (realizing_basic_faces_p): Renamed from
465 realize_default_face_p.
466 (realize_basic_faces): Set/clear realizing_basic_faces_p.
467 (realize_default_face): Don't set the flag.
468
469 2001-04-04 Gerd Moellmann <gerd@gnu.org>
470
471 * lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
472
473 * keyboard.c (echoing, echo_message_buffer): Make externally visible.
474
475 * xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
476 the buffer that was used for echoing.
477
478 * xfaces.c (best_matching_font): Remove unused parameter PATTERN.
479 (first_font_matching): Removed unused function.
480 (x_face_list_fonts): Remove unused parameter SCALABLE_P.
481 (may_use_scalable_font_p): Remove parameter FONT; rename
482 parameter NAME to FONT.
483 (x_face_list_fonts): Fix missing bounds check.
484 (realizing_default_face_p): New variable.
485 (realize_default_face): Set and clear that flag.
486 (x_face_list_fonts): When called during the realization of the
487 default face, and no matching fonts are found when ignoring
488 scalable fonts and fonts matching a regexp from
489 face-ignored-fonts, try without ignoring fonts.
490
491 2001-04-03 Gerd Moellmann <gerd@gnu.org>
492
493 * xfns.c (postprocess_image): New function.
494 (lookup_image): Call it for all image types except PostScript.
495 (x_kill_gs_process): Call postprocess_image.
496
497 * xterm.c (x_use_underline_position_properties): New variable.
498 (x_draw_glyph_string): Use it.
499 (syms_of_xterm): DEFVAR_BOOL it.
500
501 2001-04-02 Gerd Moellmann <gerd@gnu.org>
502
503 * xterm.c (x_alloc_nearest_color_1): New function.
504 (x_alloc_nearest_color): Use it.
505 (x_color_cells): Take a Display as argument, instead of a frame.
506 (cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
507 (cvt_string_to_pixel, cvt_pixel_dtor): New functions.
508 (x_initialize): Register cvt_string_to_pixel as resource converter
509 string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
510
511 2001-03-30 Gerd Moellmann <gerd@gnu.org>
512
513 * xdisp.c (get_overlay_strings): Set iterator's end_charpos.
514 (set_iterator_to_next): If a string from a display property ends,
515 consider the case that this might also be the end of an
516 overlay string having the display property.
517
518 * xdisp.c (handle_display_prop): Fix recognition of subproperty lists.
519
520 * xdisp.c (reseat_to_string): Undo last change.
521
522 * dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
523 matrix of a window when the header line changes, when
524 new rows are allocated, or when the width changes.
525
526 2001-03-30 Eli Zaretskii <eliz@is.elta.co.il>
527
528 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last change.
529
530 2001-03-29 Eli Zaretskii <eliz@is.elta.co.il>
531
532 * fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
533 deprecated.
534
535 2001-03-29 Gerd Moellmann <gerd@gnu.org>
536
537 * data.c (Fsubr_interactive_form): New function.
538 (syms_of_data): Defsubr it.
539
540 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
541 (live_float_p, live_misc_p): Return 1 only if the offset of the
542 pointer in its block is >= 0.
543
544 2001-03-28 Paul Eggert <eggert@twinsun.com>
545
546 * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
547 microseconds calcuation. Avoid double-rounding problem.
548 In doc string, warn that the result is approximate.
549
550 2001-03-28 Gerd Moellmann <gerd@gnu.org>
551
552 * eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
553 bind `inhibit-eval-during-redisplay' to t.
554
555 * lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
556
557 * xdisp.c (inhibit_eval_during_redisplay)
558 (Qinhibit_eval_during_redisplay): New variables.
559 (safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
560 don't eval, return nil instead.
561 (syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
562 Initialize Qinhibit_eval_during_redisplay.
563
564 * xdisp.c (reseat_to_string): If STRING is multibyte, set
565 the iterator's multibyte_p flag.
566
567 * xfaces.c (realize_basic_faces): Decrement menu_face_change_count
568 instead of setting it to zero; it's incremented for each frame
569 where the menu face is changed.
570
571 * xterm.c (x_draw_relief_rect): Extend left shadow to the bottom;
572 change bottom shadow accordingly.
573
574 * xterm.c (expose_window_tree, expose_frame): Don't compute
575 intersections here.
576 (expose_window): Do it here instead.
577 (x_draw_glyph_string): Fix a computation of the underline position.
578
579 * bytecode.c (BYTE_CODE_QUIT): New macro.
580 (Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
581
582 2001-03-27 Gerd Moellmann <gerd@gnu.org>
583
584 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
585 Give up if matrix starts in an ellipsis.
586 (init_from_display_pos): Do nothing if POS doesn't specify
587 a dpvec_index but the iterator has such a position.
588
589 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
590
591 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
592 x/y position is (0, 0) after destroying the menu bar, restore
593 its original position.
594
595 * xdisp.c (in_ellipses_for_invisible_text_p): New function.
596 (init_from_display_pos): Use it.
597 (try_window_reusing_current_matrix): Don't use cursor_row_p.
598
599 2001-03-26 Gerd Moellmann <gerd@gnu.org>
600
601 * xdisp.c (try_window_id): Undo last change.
602
603 2001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
604
605 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
606
607 * buffer.c (syms_of_buffer): Doc fix.
608
609 2001-03-26 Gerd Moellmann <gerd@gnu.org>
610
611 * xfaces.c (x_update_menu_appearance): Use local variable
612 popup_path for setting font resources.
613
614 2001-03-25 Eli Zaretskii <eliz@is.elta.co.il>
615
616 * frame.c (Fframe_list): Don't reference tip_frame if
617 HAVE_WINDOW_SYSTEM is not defined.
618
619 * emacs.c (main): Update the copyright year. From Werner LEMBERG
620 <wl@gnu.org>.
621
622 2001-03-25 Gerd Moellmann <gerd@gnu.org>
623
624 * xdisp.c (init_from_display_pos): Test invisible property
625 with TEXT_PROP_MEANS_INVISIBLE instead of NILP.
626
627 * xdisp.c (redisplay_internal) <update one window>: Make sure
628 last_arrow_position and last_arrow_string are set.
629
630 * frame.c (Fframe_list): Don't return a tooltip frame.
631
632 2001-03-23 Gerd Moellmann <gerd@gnu.org>
633
634 * xdisp.c (mark_window_display_accurate_1): New function,
635 extracted from mark_window_display_accurate.
636 Compute BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED,
637 BUF_BEG_UNCHANGED, BUF_END_UNCHANGED.
638 (mark_window_display_accurate): Use it.
639 (redisplay_internal): Use it for the selected window.
640 (redisplay_internal): Avoid duplicate mark_window_display_accurate
641 for the selected frame.
642
643 * xdisp.c Use make_number, for readability.
644 (try_window_id): Disable rows below the window end.
645 (try_window_reusing_current_matrix): Use cursor_row_p.
646 (try_window_reusing_current_matrix) <scrolling up>: Fix disabling
647 of rows.
648 (init_from_display_pos): If POS specifies a position in a display
649 vector, maybe get the iterator set up for that ellipsis.
650
651 * xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
652
653 2001-03-23 Eli Zaretskii <eliz@is.elta.co.il>
654
655 * xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
656
657 2001-03-23 Gerd Moellmann <gerd@gnu.org>
658
659 * xfaces.c (x_update_menu_appearance): Use a different path
660 for Lucid popup menus.
661
662 2001-03-22 Stefan Monnier <monnier@cs.yale.edu>
663
664 * xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
665
666 * xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
667 (string_buffer_position): Use `make_number'.
668
669 2001-03-22 Gerd Moellmann <gerd@gnu.org>
670
671 * xfaces.c (x_update_menu_appearance): Renamed from
672 x_set_menu_face_resources. Use different resources for popups.
673
674 * lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
675 (GC_CHECK_STRING_BYTES): Don't define.
676
677 * xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
678 Removed, together with subroutines.
679 (x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
680 (realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
681
682 * dispextern.h (x_set_menu_resources_from_menu_face):
683 Remove prototype.
684
685 * xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
686 Remove calls to x_set_menu_resources_from_menu_face.
687
688 * xfaces.c (xm_set_menu_resources_from_menu_face):
689 Remove #ifndef LESSTIF_VERSION.
690
691 * xmenu.c: Include widget.h.
692 (single_submenu): Return int. Some cleanup.
693 (set_frame_menubar): Call x_set_menu_resources_from_menu_face.
694
695 2001-03-21 Gerd Moellmann <gerd@gnu.org>
696
697 * xterm.c (x_update_window_end): Handle overwritten mouse face
698 also for tool bar windows.
699 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
700 DRAW is DRAW_IMAGE_RAISED.
701
702 2001-03-20 Gerd Moellmann <gerd@gnu.org>
703
704 * print.c (syms_of_print): Doc fixes.
705
706 * fns.c (Fmd5): Doc fix.
707
708 2001-03-19 Gerd Moellmann <gerd@gnu.org>
709
710 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
711 Clear area of the frame not occupied by the scroll bar.
712
713 * xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
714 tip frame's root window buffer to *tip* right after creating
715 the frame.
716
717 * xdisp.c (highlight_trailing_whitespace): Glyphs whose object
718 is an integer don't have to be for space characters.
719
720 2001-03-16 Gerd Moellmann <gerd@gnu.org>
721
722 * indent.c (current_column, current_column_1, Fmove_to_column)
723 (compute_motion): Handle characters from display vectors differently.
724
725 2001-03-15 Kenichi Handa <handa@etl.go.jp>
726
727 * xterm.c (x_draw_glyph_string): Draw relief (if any) before
728 drawing glyph string.
729
730 2001-03-15 Gerd Moellmann <gerd@gnu.org>
731
732 * keyboard.c (timer_check): Preserve the value of deactivate-mark.
733 (command_loop_1): Undo last change.
734
735 * xterm.c (fast_find_position): Return the correct vpos.
736
737 * data.c (store_symval_forwarding): Add parameter BUF. If BUF is
738 non-null, set a per-buffer value in BUF instead of the current buffer.
739 (swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
740 Call store_symval_forwarding with BUF null.
741 (set_internal): Call store_symval_forwarding with the BUF
742 parameter passed to set_internal. Formerly, the value was always
743 set in the current buffer; the buffer recorded in specbind for
744 this case wasn't used.
745 (arith_driver): Reindent.
746
747 * buffer.c (swap_out_buffer_local_variables):
748 Call store_symval_forwarding with BUF null.
749
750 * lisp.h (store_symval_forwarding): Change prototype.
751
752 * eval.c (specbind): Call store_symval_forwarding with BUF null.
753
754 2001-03-14 Gerd Moellmann <gerd@gnu.org>
755
756 * frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
757 FOR_DELETION. Avoid resizing the mini-window of the selected
758 frame if FOR_DELETION is set.
759 (Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
760 (Fmake_frame_invisible): Change calls to do_switch_frame for new
761 signature.
762
763 * window.c (Fset_window_configuration): Change call to
764 do_switch_frame to new format.
765
766 * keyboard.c (quit_throw_to_read_char): Change call to
767 do_switch_frame to new format.
768
769 * lisp.h (do_switch_frame): Change prototype.
770
771 * frame.c (Fframe_parameters): In the `buffer-list' frame
772 parameter, store the buffer list of FRAME, not the list of the
773 selected frame.
774
775 * xterm.c (x_draw_glyph_string_box): Don't draw a full-width
776 box just because the glyph row's full_width_p flag is set.
777
778 2001-03-14 Eli Zaretskii <eliz@is.elta.co.il>
779
780 * xdisp.c (highlight_trailing_whitespace): On character terminals,
781 skip the padding blanks inserted in extend_face_to_end_of_line,
782 before checking for trailing whitespace.
783
784 2001-03-13 Gerd Moellmann <gerd@gnu.org>
785
786 * xmenu.c (popup_activate_callback, popup_deactivate_callback):
787 Remove special handling for LessTif/Motif.
788 (toplevel): Don't include Xm/Xm.h.
789
790 * xterm.c (XTread_socket) <LeaveNotify, EnterNotify>:
791 Remove workaround code for LessTif; it doesn't work anymore.
792
793 * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
794 Xm/ScrollBarP.h.
795
796 * xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]:
797 Don't access private scroll bar data; it's no longer necessary with
798 contemporary LessTif.
799
800 * xfaces.c (xm_set_menu_resources_from_menu_face):
801 Change #if 0 to #ifndef LESSTIF_VERSION.
802
803 * xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
804 removing button grabs.
805
806 2001-03-13 Kenichi Handa <handa@etl.go.jp>
807
808 * fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
809 and clip-large-size-font as obsolete.
810
811 * lread.c (read_multibyte): Check the validity of multibyte
812 sequence. If invalid, return the first byte.
813
814 2001-03-12 Gerd Moellmann <gerd@gnu.org>
815
816 * keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
817 before running the command; timer functions or process
818 filters may have set it.
819
820 2001-03-12 Eli Zaretskii <eliz@is.elta.co.il>
821
822 * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
823 Doc fix.
824
825 2001-03-12 Gerd Moellmann <gerd@gnu.org>
826
827 * xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
828 to sprintf.
829
830 2001-03-09 Gerd Moellmann <gerd@gnu.org>
831
832 * dispextern.h (string_buffer_position): Add prototype.
833
834 * xdisp.c (string_buffer_position, display_prop_string_p)
835 (single_display_prop_string_p): New functions.
836
837 * xterm.c (note_mouse_highlight): If there's no help-echo on
838 a string, look at the buffer text ``under'' it.
839
840 * keyboard.c (make_lispy_event): Add string info to the event,
841 analogous to what's done on mode lines.
842 (read_key_sequence): For a click on a string, consider `local-map'
843 and `keymap' of that string.
844
845 * keyboard.c (make_lispy_event, make_lispy_movement):
846 Adjust calls to buffer_posn_from_coords to new format.
847
848 * dispextern.h (buffer_posn_from_coords): Adjust prototype.
849
850 * dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
851 POS; return void.
852
853 * fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
854 flags argument to emacs_open; it seems to conflict with O_EXCL.
855
856 2001-03-09 Kenichi Handa <handa@etl.go.jp>
857
858 * composite.h (struct composition): Change types of members;
859 glyph_len to unsigned, width to unsigned short.
860
861 2001-03-08 Andrew Innes <andrewi@gnu.org>
862
863 * w32menu.c (add_menu_item): Fix problems with using ownerdraw for
864 menu titles.
865
866 2001-03-08 Gerd Moellmann <gerd@gnu.org>
867
868 * xdisp.c (handle_display_prop): Use it->w->buffer as object,
869 instead of nil.
870
871 * xterm.c (note_mouse_highlight): Handle mouse-face and
872 help-echo in strings.
873 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
874 (fast_find_string_pos): New function.
875
876 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
877 (display_string): Call face_at_string_position with new parameter.
878
879 * xfaces.c (face_at_string_position): Add parameter MOUSE_P.
880 Handle `mouse-face'.
881
882 * dispextern.h (face_at_string_position): Change prototype.
883
884 * dired.c (directory_files_internal): Handle EAGAIN more efficiently.
885
886 * keyboard.c (make_lispy_event): Avoid generating drag events
887 if the mouse hasn't actually moved to another buffer position.
888
889 2001-03-08 Dave Love <fx@gnu.org>
890
891 * eval.c (syms_of_eval) <debug-on-error>: Doc fix.
892
893 2001-03-08 Gerd Moellmann <gerd@gnu.org>
894
895 * process.c (Fset_process_window_size): Fix a typo.
896
897 2001-03-08 Kenichi Handa <handa@etl.go.jp>
898
899 * coding.c (detect_coding_sjis): Do more rigid check.
900 (detect_coding_big5): Likewise.
901 (decode_coding_sjis_big5): Likewise.
902 (Fdetect_coding_region): Call detect_coding_system with tailing
903 anchor byte `\0' for more rigid detection.
904 (detect_coding_mask): Fix the incorrect handling of arg MULTIBYTEP.
905 (Fdetect_coding_string): Likewise.
906
907 2001-03-07 Stefan Monnier <monnier@cs.yale.edu>
908
909 * bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
910 a string before extracting its data.
911
912 2001-03-07 Gerd Moellmann <gerd@gnu.org>
913
914 * window.c (Frecenter): Rewrite code handling negative values
915 of ARG on graphical frames.
916
917 2001-03-07 Eli Zaretskii <a34785@is.elta.co.il>
918
919 * window.c (displayed_window_lines): If W->start is outside the
920 accessible portion of the buffer, call start_display with BEGV or
921 ZV instead of W->start.
922
923 2001-03-07 Gerd Moellmann <gerd@gnu.org>
924
925 * buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
926
927 * process.c (Fset_process_filter): Don't crash if the input
928 file descriptor of PROCESS is closed.
929 (Fset_process_window_size): Likewise.
930
931 2001-03-06 Kenichi Handa <handa@etl.go.jp>
932
933 * xterm.c (XTflash): Make the timeout of select shorter, and call
934 select repeatedly until the desired time expires.
935
936 2001-03-06 Gerd Moellmann <gerd@gnu.org>
937
938 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
939
940 * xfns.c (Fx_create_frame): Clear Vwindow_list.
941
942 * lisp.h (Vwindow_list): Declare extern.
943
944 2001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
945
946 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
947
948 2001-03-06 Gerd Moellmann <gerd@gnu.org>
949
950 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
951 to detect a case where we have to highlight a different region
952 despite not having left the currently highlighted region.
953 Set mouse_face_overlay in the x_display_info.
954 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
955
956 * xterm.h (struct x_display_info): Add mouse_face_overlay.
957
958 * buffer.c (mouse_face_overlay_overlaps): New function.
959
960 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
961 (Qmouse_face): Declare extern.
962
963 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
964 if face_change_count is non-zero.
965
966 2001-03-06 Kenichi Handa <handa@etl.go.jp>
967
968 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
969 that the source is unibyte.
970
971 2001-03-05 Dave Love <fx@gnu.org>
972
973 * xterm.c (XTmouse_position): Fix typo.
974
975 2001-03-05 Gerd Moellmann <gerd@gnu.org>
976
977 * minibuf.c (read_minibuf): Clean up the binding stack if
978 called noninteractively.
979
980 2001-03-05 Kenichi Handa <handa@etl.go.jp>
981
982 * coding.c (syms_of_coding): Docstring modified.
983
984 2001-03-05 Kenichi Handa <handa@etl.go.jp>
985
986 * charset.c (char_to_string): If a single byte char has modifier
987 bits that can't be reflected to the character code, ignore them
988 instead of signaling an error.
989
990 2001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
991
992 * s/msdos.h: Update copyright notice.
993
994 * dosfns.h: Update copyright notice.
995
996 * dosfns.c: Update copyright notice.
997
998 * msdos.c: Update copyright notice.
999
1000 2001-03-02 Gerd Moellmann <gerd@gnu.org>
1001
1002 * xterm.c (glyph_rect): New function.
1003 (XTmouse_position): Use it to raise the threshold for mouse
1004 movement event generation.
1005
1006 2001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
1007
1008 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
1009 specifies (reverse . t), reverse the initial screen colors.
1010 (IT_set_frame_parameters): If the property is foreground-color,
1011 but we are reversing the colors, set bg_set, not fg_set.
1012 Likewise for setting background-color and reversing: set fg_set.
1013 Set unspecified-fg and unspecified-bg correctly when (reverse . t) is
1014 in effect.
1015
1016 * xfaces.c (Finternal_set_lisp_face_attribute)
1017 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
1018 parameters alist.
1019
1020 2001-03-02 Gerd Moellmann <gerd@gnu.org>
1021
1022 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
1023 to a single slash in the middle of file names.
1024
1025 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
1026 Accept only alphanumeric time zone names.
1027
1028 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
1029 or width area.
1030 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
1031 a widget to zero height.
1032
1033 2001-03-01 Gerd Moellmann <gerd@gnu.org>
1034
1035 * window.c (Fwindow_end): Call move_it_past_eol only if
1036 ending up on a partially visible line.
1037
1038 2001-03-01 Dave Love <fx@gnu.org>
1039
1040 * ccl.c (Fccl_execute): Doc fix.
1041
1042 2001-03-01 Gerd Moellmann <gerd@gnu.org>
1043
1044 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
1045 of the tool bar before calling x_figure_window_size.
1046
1047 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
1048 NULL after destroying it, otherwise XTread_socket can access a
1049 destroyed widget when input is unblocked.
1050
1051 * xfns.c (x_set_foreground_color): Set the background of the cursor GC.
1052
1053 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
1054 same name as before, although there was a change in fontsets.
1055
1056 2001-02-28 Ken Raeburn <raeburn@gnu.org>
1057
1058 * lisp.h (Fframe_parameter): Declare.
1059
1060 * window.c (set_window_buffer): Field vscroll is an int, not a
1061 Lisp_Object.
1062
1063 2001-02-28 Gerd Moellmann <gerd@gnu.org>
1064
1065 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
1066 NULL instead.
1067
1068 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
1069 NULL instead.
1070
1071 * alloc.c (toplevel): Include process.h.
1072 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
1073 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
1074 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
1075 (allocate_vector, allocate_hash_table, allocate_window)
1076 (allocate_frame, allocate_process, allocate_other_vector):
1077 New functions.
1078 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
1079 (mark_maybe_pointer): New function.
1080 (mark_memory): Also mark Lisp data to which only pointers
1081 remain and not Lisp_Objects.
1082 (min_heap_address, max_heap_address): New variables.
1083 (mem_find): Return MEM_NIL if START is below min_heap_address or
1084 above max_heap_address.
1085 (mem_insert): Compute min_heap_address and max_heap_address.
1086
1087 * process.c (make_process): Use allocate_process.
1088
1089 * frame.c (make_frame): Use allocate_frame.
1090
1091 * window.c (make_window, make_dummy_parent): Use allocate_window.
1092 (Fcurrent_window_configuration): Use allocate_other_vector.
1093
1094 * lisp.h (allocate_vectorlike): Remove prototype.
1095 (allocate_vector, allocate_other_vector, allocate_frame)
1096 (allocate_window, allocate_process, allocate_hash_table):
1097 Add prototypes.
1098
1099 * fns.c (Fdelete, larger_vector): Use allocate_vector.
1100 (make_hash_table, copy_hash_table): Use allocate_hash_table.
1101
1102 2001-02-27 Kenichi Handa <handa@etl.go.jp>
1103
1104 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
1105 treat the produced bytes as a valid multibyte sequence.
1106
1107 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
1108 (ccl_driver) <CCL_WriteMultibyteChar2>:
1109 Use CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
1110 <ccl_finish>: Set ccl->eight_bit_control properly.
1111
1112 * ccl.h (struct ccl_program): New member eight_bit_control.
1113
1114 2001-02-26 Stefan Monnier <monnier@cs.yale.edu>
1115
1116 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
1117 accessible_keymaps_char_table.
1118 (accessible_keymaps_char_table): Obey `is_metized'.
1119 (where_is_internal, Fwhere_is_internal): Don't confuse int and
1120 Lisp_Object.
1121
1122 2001-02-26 Gerd Moellmann <gerd@gnu.org>
1123
1124 * dispnew.c: Check HAVE_TERM_H before including term.h.
1125
1126 2001-02-24 Andrew Innes <andrewi@gnu.org>
1127
1128 * makefile.w32-in: Update copyright notice.
1129
1130 2001-02-24 Stefan Monnier <monnier@cs.yale.edu>
1131
1132 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
1133
1134 2001-02-24 Kenichi Handa <handa@etl.go.jp>
1135
1136 * Makefile.in (lisp): Add international/utf-8.elc.
1137
1138 * fontset.c (Fnew_fontset): Fix handling of the case that an
1139 element of FONTLIST is a cons of family and registry.
1140
1141 2001-02-23 Jason Rumney <jasonr@gnu.org>
1142
1143 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
1144 to height unconditionally.
1145
1146 * w32term.c (x_set_glyph_string_background_width): Extend the
1147 background face to the end of the drawing area in the text area, only.
1148 (x_insert_glyphs): Call window_box_left to obtain the left
1149 x-coordinate of the area to shift.
1150
1151 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
1152 safe_run_hooks.
1153
1154 2001-02-22 Andrew Innes <andrewi@gnu.org>
1155
1156 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header files.
1157 ($(BLD)\dispnew.obj):
1158 ($(BLD)\editfns.obj):
1159 ($(BLD)\fileio.obj):
1160 ($(BLD)\filelock.obj):
1161 ($(BLD)\keyboard.obj):
1162 ($(BLD)\w32proc.obj):
1163 ($(BLD)\process.obj):
1164 ($(BLD)\sysdep.obj): Ditto.
1165
1166 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
1167 header files.
1168 ($(BLD)/dispnew.$(O)):
1169 ($(BLD)/editfns.$(O)):
1170 ($(BLD)/fileio.$(O)):
1171 ($(BLD)/filelock.$(O)):
1172 ($(BLD)/keyboard.$(O)):
1173 ($(BLD)/w32proc.$(O)):
1174 ($(BLD)/process.$(O)):
1175 ($(BLD)/sysdep.$(O)): Ditto.
1176
1177 2001-02-22 Gerd Moellmann <gerd@gnu.org>
1178
1179 * xdisp.c (forward_to_next_line_start): When taking the shortcut
1180 at the start of the function, check that the \n in it->c is
1181 from the iterator's current position.
1182
1183 * xdisp.c (handle_single_display_prop): Add parameter
1184 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
1185 properties which replace the display of text with something else.
1186 (handle_display_prop): Call handle_single_display_prop with
1187 additional argument saying if we already replaced text display
1188 with something else. Use AREF.
1189 (with_echo_area_buffer_unwind_data, display_menu_bar)
1190 (decode_mode_spec_coding): Use AREF and ASIZE.
1191
1192 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
1193 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
1194 * vmstime.h: Files removed.
1195
1196 * unexencap.c, unexfx2800.c: Files removed.
1197
1198 * dispnew.c (direct_output_for_insert): Give up if we are showing
1199 a message or just cleared the message because we might need to
1200 resize the echo area window or display an empty echo area.
1201
1202 2001-02-21 Gerd Moellmann <gerd@gnu.org>
1203
1204 * xdisp.c (redisplay_internal): Do the
1205 mark_window_display_accurate after all windows have been
1206 redisplayed because this call resets flags in buffers which are
1207 needed for proper redisplay.
1208
1209 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c:
1210 Use display_hourglass_p, start_hourglass, cancel_hourglass instead of
1211 the old names.
1212
1213 * w32term.h (struct x_output): Rename busy_cursor to hourglass_cursor,
1214 busy_window to hourglass_window, busy_p to hourglass_p.
1215
1216 * msdos.h (struct x_output): Rename busy_window to
1217 hourglass_window, busy_p to hourglass_p.
1218
1219 * xterm.h (struct x_output): Rename busy_cursor to hourglass_cursor,
1220 busy_window to hourglass_window, busy_p to hourglass_p.
1221
1222 * xfns.c: Rename everything containing *busy_cursor* and similar
1223 to *hourglass*.
1224 (syms_of_w32fns): Rename x-busy-pointer-shape to
1225 x-hourglass-pointer-shape, display-busy-cursor to
1226 display-hourglass, busy-cursor-delay to hourglass-delay.
1227
1228 * w32fns.c: Rename everything containing *busy_cursor* and similar
1229 to *hourglass*.
1230 (syms_of_w32fns): Rename x-busy-pointer-shape to
1231 x-hourglass-pointer-shape, display-busy-cursor to
1232 display-hourglass, busy-cursor-delay to hourglass-delay.
1233
1234 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
1235 of its busy_p flag.
1236
1237 * dispextern.h (start_hourglass, cancel_hourglass)
1238 (display_hourglass_p): Renamed from *busy_cursor*.
1239
1240 2001-02-20 Gerd Moellmann <gerd@gnu.org>
1241
1242 * keyboard.c (read_char): When an event from unread-command-events
1243 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
1244
1245 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
1246 equal to the current buffer.
1247
1248 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
1249 nil, otherwise we're left with truncate_lines t when a message
1250 is printed with message-truncate-lines bound to t.
1251
1252 2001-02-19 Gerd Moellmann <gerd@gnu.org>
1253
1254 * window.c (Fmove_to_window_line): Undo last change.
1255 (displayed_window_lines): Call line_bottom_y to determine
1256 the line's bottom position.
1257
1258 * dispextern.h (line_bottom_y): Add prototype.
1259
1260 * xdisp.c (line_bottom_y): New function extracted from pos_visible_p.
1261 (pos_visible_p): Use it.
1262
1263 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
1264 set redisplaying_p to 0 here instead of in Frecursive_edit.
1265 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
1266 set redisplaying_p.
1267
1268 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
1269 New variables.
1270 (syms_of_xdisp): Initialize new variables.
1271 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
1272 Specbind `inhibit-menubar-update' when updating the menu bar.
1273
1274 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
1275 safe_run_hooks.
1276
1277 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
1278 safe_run_hooks.
1279
1280 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
1281 is null.
1282
1283 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
1284 to the start of the file.
1285
1286 2001-02-16 Gerd Moellmann <gerd@gnu.org>
1287
1288 * window.c (set_window_buffer): Fix last change.
1289
1290 * window.c (set_window_buffer): Set window's vscroll to 0.
1291
1292 * window.c (coordinates_in_window): Increase width of area
1293 where the vertical line can be dragged.
1294
1295 * xterm.c (x_set_glyph_string_background_width): Extend the
1296 background face to the end of the drawing area in the text
1297 area, only.
1298
1299 * xdisp.c (handle_single_display_prop): Set iterator's position
1300 to where the `display' property starts, like for images.
1301 (dump_glyph): New function.
1302 (dump_glyph_row): Use it. Dump info about marginal areas.
1303
1304 * dispnew.c (direct_output_for_insert): Recognize more cases where
1305 glyphs can be written instead of being inserted.
1306
1307 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
1308 the left x-coordinate of the area to shift.
1309
1310 * dired.c (directory_files_internal): Set result list to nil
1311 before retrying.
1312
1313 2001-02-15 Kenichi Handa <handa@etl.go.jp>
1314
1315 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
1316 invalid multibyte sequence, treat *SRC as a character of
1317 eight-bit-graphic.
1318
1319 2001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
1320
1321 * textprop.c (Fset_text_properties): Doc fix.
1322
1323 2001-02-15 Gerd Moellmann <gerd@gnu.org>
1324
1325 * dispnew.c (update_text_area): Undo change of 2001-01-12.
1326
1327 2001-02-14 Dave Love <fx@gnu.org>
1328
1329 * coding.c: Doc and message fixes.
1330
1331 2001-02-14 Andrew Innes <andrewi@gnu.org>
1332
1333 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
1334 Emacs frame above the screen size.
1335
1336 2001-02-14 Gerd Moellmann <gerd@gnu.org>
1337
1338 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
1339
1340 2001-02-13 Gerd Moellmann <gerd@gnu.org>
1341
1342 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
1343 case that TO ends up beyond ZV after running before-change-functions.
1344
1345 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
1346 the selected window if it is showing the buffer in question.
1347
1348 * dired.c (directory_files_internal): Initialize errno.
1349 (toplevel): Include errno.h.
1350
1351 2001-02-13 Kenichi Handa <handa@etl.go.jp>
1352
1353 * xfaces.c (best_matching_font): New parameter width_ratio.
1354 Multiply avgwidth by width_ratio.
1355 (choose_face_font): Call best_matching_font with width_ratio
1356 calculated from the column width of C.
1357
1358 2001-02-12 Andrew Innes <andrewi@gnu.org>
1359
1360 The following changes are to draw box lines inside characters area
1361 if line-width is negative.
1362
1363 * w32term.c (x_produce_image_glyph): Pay attention to the case that
1364 face->box_line_width is negative.
1365 (x_produce_stretch_glyph): Likewise.
1366 (x_produce_glyphs): Likewise.
1367 (x_estimate_mode_line_height): Likewise.
1368 (x_draw_glyph_string_background): Likewise.
1369 (x_draw_glyph_string_foreground): Likewise.
1370 (x_draw_composite_glyph_string_foreground): Likewise.
1371 (x_draw_glyph_string_box): Likewise.
1372 (x_draw_image_foreground): Likewise.
1373 (x_draw_image_relief): Likewise.
1374 (x_draw_image_foreground_1): Likewise.
1375 (x_draw_image_glyph_string): Likewise.
1376
1377 2001-02-09 Kenichi Handa <handa@etl.go.jp>
1378
1379 The following changes are to draw box lines inside characters area
1380 if line-width is negative.
1381
1382 * xterm.c (x_produce_image_glyph): Pay attention to the case that
1383 face->box_line_width is negative.
1384 (x_produce_stretch_glyph): Likewise.
1385 (x_produce_glyphs): Likewise.
1386 (x_estimate_mode_line_height): Likewise.
1387 (x_draw_glyph_string_background): Likewise.
1388 (x_draw_glyph_string_foreground): Likewise.
1389 (x_draw_composite_glyph_string_foreground): Likewise.
1390 (x_draw_glyph_string_box): Likewise.
1391 (x_draw_image_foreground): Likewise.
1392 (x_draw_image_relief): Likewise.
1393 (x_draw_image_foreground_1): Likewise.
1394 (x_draw_image_glyph_string): Likewise.
1395
1396 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
1397 and :line-width can be negative.
1398 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be negative.
1399
1400 2001-02-09 Jason Rumney <jasonr@gnu.org>
1401
1402 * w32term.c (w32_encode_char): Treat eight bit graphic and control
1403 characters the same as ASCII and latin-1.
1404 (x_display_and_set_cursor): Check for the focus frame's selected
1405 window instead of selected_window.
1406 (x_after_update_window_line): Don't clear if frame's internal
1407 border width is zero.
1408 (x_new_font): Don't change a tooltip's size.
1409 (w32_initialize): Set char_ins_del_ok to 1.
1410
1411 * w32fns.c (Fx_show_tip): Fix calls to make_number.
1412 (x_set_font): If font hasn't changed, avoid recomputing
1413 faces and other things.
1414 (x_set_tool_bar_lines): Do nothing if frame is minibuffer-only,
1415 (Fx_create_frame): Add the tool bar height to the frame height.
1416 (x_create_tip_frame): Prevent changing the tooltip's
1417 background color by specifying a color for the default font
1418 in .Xdefaults.
1419 (Qcancel_timer): New variable.
1420 (syms_of_w32fns): Initialize and staticpro it.
1421 (Fx_hide_tip, Fx_show_tip): Use it.
1422 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
1423 the timer.
1424 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
1425
1426 * w32.c (init_environment): Duplicate local string before putenv.
1427
1428 2001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
1429
1430 * charset.c (Fstring): A typo.
1431
1432 2001-02-09 Kenichi Handa <handa@etl.go.jp>
1433
1434 * charset.c (Fstring): If all arguments are less than 256, return
1435 a unibyte string.
1436
1437 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
1438 return a unibyte string.
1439
1440 * coding.c (code_convert_region): After detecting a coding, if
1441 nothing found, set coding->composing to COMPOSITION_NO.
1442 (decode_coding_string): Likewise.
1443
1444 2001-02-08 Stefan Monnier <monnier@cs.yale.edu>
1445
1446 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
1447 to avoid overflow.
1448
1449 2001-02-07 Kenichi Handa <handa@etl.go.jp>
1450
1451 * charset.c (parse_str_to_multibyte): New function.
1452
1453 * charset.h (parse_str_to_multibyte): Extern it.
1454
1455 * print.c (print_string): If we are going to print a unibyte
1456 string into a multibyte buffer, convert the string to multibyte by
1457 str_to_multibyte.
1458
1459 2001-02-06 Andrew Innes <andrewi@gnu.org>
1460
1461 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
1462 been created. It seems we can get sent window messages such as
1463 WM_ERASEBKGND before we properly update a frame.
1464
1465 2001-02-06 Gerd Moellmann <gerd@gnu.org>
1466
1467 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
1468 Avoid some unnecessary cursor positioning.
1469
1470 2001-02-05 Gerd Moellmann <gerd@gnu.org>
1471
1472 * xfaces.c (split_font_name): Compute numeric value of XLFD_AVGWIDTH.
1473 (LFACE_AVGWIDTH): New macro.
1474 (LFACEP): Use AREF.
1475 (check_lface_attrs): Check LFACE_AVGWIDTH.
1476 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
1477 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
1478 (merge_face_vectors): Check LFACE_AVGWIDTH.
1479 (Finternal_make_lisp_face): Use AREF.
1480 (xm_set_menu_resources_from_menu_face)
1481 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
1482 (Finternal_lisp_face_empty_p): Use AREF.
1483 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
1484 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
1485 Compare average widths..
1486 (best_matching_font): Arrange for comparing average widths.
1487
1488 * dispextern.h (enum lface_attribute_index):
1489 Add LFACE_AVGWIDTH_INDEX (invisible from Lisp).
1490
1491 2001-02-05 Dave Love <fx@gnu.org>
1492
1493 * puresize.h: Revert last change following loadup.el change.
1494
1495 2001-02-05 Andrew Innes <andrewi@gnu.org>
1496
1497 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
1498 invocation of temacs, to work with Windows 2000.
1499 (bootstrap-emacs): Ditto.
1500
1501 2001-02-05 Gerd Moellmann <gerd@gnu.org>
1502
1503 * xterm.c (x_display_and_set_cursor): Check for the focus
1504 frame's selected window instead of selected_window.
1505
1506 * xdisp.c (try_scrolling): If point is in the line below the
1507 window, make sure to move the iterator at least a canonical
1508 char height down.
1509
1510 * window.c (Fmove_to_window_line): Don't add 1 if window is vscrolled.
1511
1512 2001-02-05 Kenichi Handa <handa@etl.go.jp>
1513
1514 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not.
1515 If invalid, execute CCL_INVALID_CMD.
1516 (ccl_driver): If the CCL program is terminated because of
1517 CCL_STAT_INVALID_CMD, copy the remaining source data to the
1518 destination instead of throwing them away.
1519
1520 2001-02-02 Gerd Moellmann <gerd@gnu.org>
1521
1522 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
1523 faces and other things.
1524
1525 * xdisp.c (get_next_display_element): Fix case of empty
1526 display table entry.
1527
1528 2001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
1529
1530 * editfns.c (Fconstrain_to_field): Doc fix.
1531
1532 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
1533 into `thoroughly', to make it consistent with the doc string.
1534
1535 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
1536
1537 2001-02-01 Gerd Moellmann <gerd@gnu.org>
1538
1539 * search.c (search_buffer): Call set_search_regs with a byte
1540 position, not a character position.
1541
1542 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
1543 minibuffer-only,
1544
1545 2001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
1546
1547 * frame.c (Fmodify_frame_parameters): Doc fix.
1548
1549 2001-01-31 Gerd Moellmann <gerd@gnu.org>
1550
1551 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
1552 identifier which is not reserved by Standard C.
1553
1554 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
1555
1556 * window.c (enum window_part): New enumeration.
1557 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
1558 Qright_bitmap_area.
1559 (coordinates_in_window): Return an enumerator from enum
1560 window_part. Fix handling of right scroll bar.
1561 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
1562 `right-fringe' instead of `left-bitmap-area' and
1563 `right-bitmap-area'. Use enumerators from enum window_part
1564 instead of hard-coded integers.
1565 (check_window_containing, window_from_coordinates):
1566 Use enumerators from enum window_part instead of hard-coded integers.
1567 (syms_of_window): Replace Qleft_bitmap_area and
1568 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
1569
1570 2001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
1571
1572 * editfns.c (Fformat_time_string): Doc fix.
1573
1574 2001-01-31 Stefan Monnier <monnier@cs.yale.edu>
1575
1576 * keymap.c (Fwhere_is_internal): Use the first valid binding
1577 if no ascii binding is found (when firstonly is t).
1578
1579 2001-01-31 Gerd Moellmann <gerd@gnu.org>
1580
1581 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
1582 instead of Finteractive_p.
1583
1584 * lisp.h (interactive_p): Add prototype.
1585
1586 * eval.c (interactive_p): New function.
1587 (Finteractive_p): Use it.
1588
1589 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
1590
1591 2001-01-31 Dave Love <fx@gnu.org>
1592
1593 * .gdbinit (hook-run): Define to run xreload.
1594
1595 * textprop.c (Fset_text_properties): Fix newline in doc string.
1596
1597 2001-01-30 Gerd Moellmann <gerd@gnu.org>
1598
1599 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp):
1600 Use DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
1601
1602 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
1603 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
1604 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
1605
1606 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
1607 height.
1608
1609 2001-01-30 Dave Love <fx@gnu.org>
1610
1611 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
1612 AFTER_POTENTIAL_GC.
1613
1614 2001-01-29 Gerd Moellmann <gerd@gnu.org>
1615
1616 * bytecode.c (Fbyte_code) <Bcurrent_column>:
1617 Add BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
1618
1619 2001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
1620
1621 * textprop.c (Fset_text_properties): Doc fix.
1622
1623 2001-01-29 Gerd Moellmann <gerd@gnu.org>
1624
1625 * xdisp.c (forward_to_next_line_start): Remove xassert.
1626
1627 2001-01-29 Jason Rumney <jasonr@gnu.org>
1628
1629 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
1630 returning without releasing it.
1631
1632 2001-01-29 Kenichi Handa <handa@etl.go.jp>
1633
1634 * w32fns.c (w32_font_match): Allocate three more bytes to regex
1635 for '^', '$', and '\0'.
1636
1637 2001-01-28 Andrew Choi <akochoi@i-cable.com>
1638
1639 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
1640 regex for '^', '$', and '\0'.
1641
1642 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
1643 only if current_sblock has been initialized.
1644
1645 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
1646 terminal frame even if it is the only visible frame.
1647
1648 2001-01-28 Kenichi Handa <handa@etl.go.jp>
1649
1650 * fontset.c (font_family_registry): Even if FONTNAME conform to
1651 XLFD, if it specifies other fields than family and registry,
1652 return FONTANME. New argument FORCE if nonzero cancel that feature.
1653 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
1654 a signle byte character. Don't set FAMILY part to nil here.
1655 It is handled by the caller choose_face_font.
1656 (Fnew_fontset): Call font_family_registry with FORCE 0.
1657 (Fset_fontset_font): Likewise.
1658
1659 2001-01-27 Gerd Moellmann <gerd@gnu.org>
1660
1661 * xdisp.c (display_line): Don't treat a newline as fitting
1662 on the line.
1663
1664 2001-01-26 Gerd Moellmann <gerd@gnu.org>
1665
1666 * window.c (size_window): Set the window's orig_top to nil when
1667 changing heights, so that a future shrink_mini_window won't
1668 restore a bogus height.
1669
1670 * frame.c (do_switch_frame): If selected frame has a mini-window,
1671 resize that to exact size.
1672
1673 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
1674
1675 * xdisp.c (display_line): Simplify check for glyphs fitting
1676 entirely in the line.
1677
1678 * xfns.c (xic_style): New variable.
1679 (create_frame_xic): Move static variable to global scope for
1680 the case that `static' gets defined away.
1681
1682 2001-01-26 Kenichi Handa <handa@etl.go.jp>
1683
1684 * coding.c (decode_coding): Set a flag for inhibiting
1685 inconsistent eol.
1686 (code_convert_region): Always set saved_coding_symbol.
1687 (decode_coding_string): Likewise. Update coding->symbol when we
1688 encounter a inconsistent eol by the same way as code_convert_region.
1689
1690 2001-01-25 Gerd Moellmann <gerd@gnu.org>
1691
1692 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
1693 XClearArea.
1694
1695 * xterm.c (x_after_update_window_line): Don't clear if frame's
1696 internal border width is zero.
1697 (x_clear_area): New function.
1698 (x_after_update_window_line, x_clear_end_of_line)
1699 (x_scroll_bar_create, x_scroll_bar_set_handle)
1700 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
1701 instead of XClearArea.
1702
1703 * xterm.h (x_clear_area): Add prototype.
1704
1705 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
1706 which doesn't seem necessary anymore with Lesstif 0.92.
1707
1708 2001-01-25 Dave Love <fx@gnu.org>
1709
1710 * puresize.h (BASE_PURESIZE): Up to 720000.
1711
1712 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
1713
1714 2001-01-25 Gerd Moellmann <gerd@gnu.org>
1715
1716 * xdisp.c (echo_area_display): Don't call redisplay_internal
1717 when Emacs is shutting down. We can't run hooks etc. that
1718 would be necessary to do a redisplay.
1719
1720 * lread.c (read_integer): Use type EMACS_INT instead of int.
1721
1722 2001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
1723
1724 * ccl.c (ccl_driver): Fix last change.
1725
1726 2001-01-25 Kenichi Handa <handa@etl.go.jp>
1727
1728 * ccl.h (sturct ccl_program): New member suppress_error.
1729
1730 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
1731 insert error message to the output.
1732 (setup_ccl_program): Initialize ccl->suppress_error to 0.
1733
1734 * coding.h (struct coding_system): New member suppress_error.
1735
1736 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
1737 (Fset_terminal_coding_system_internal): Set the member
1738 suppress_error to 1.
1739 (Fset_safe_terminal_coding_system_internal): Likewise.
1740
1741 2001-01-24 Stefan Monnier <monnier@cs.yale.edu>
1742
1743 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
1744 as if it was a `charset'.
1745
1746 2001-01-24 Gerd Moellmann <gerd@gnu.org>
1747
1748 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
1749 value in where_is_cache; the next lookup in the cache returns
1750 something bogus if we do.
1751
1752 2001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
1753
1754 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
1755 if HAVE_WINDOW_SYSTEM isn't defined.
1756
1757 2001-01-24 Gerd Moellmann <gerd@gnu.org>
1758
1759 * fns.c (sweep_weak_table): Fix code taking items out of
1760 the hash collision chain. Some cleanup.
1761
1762 * xterm.c (x_new_font): Don't change a tooltip's size.
1763
1764 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
1765 background color by specifying a color for the default font
1766 in .Xdefaults.
1767
1768 2001-01-24 Kenichi Handa <handa@etl.go.jp>
1769
1770 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
1771 a workaround for SunOS 4's cc.
1772 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
1773 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
1774 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
1775 statement.
1776
1777 2001-01-23 Gerd Moellmann <gerd@gnu.org>
1778
1779 * xterm.c (x_set_window_size_1): New function extracted from
1780 x_set_window_size.
1781 (x_set_window_size): Use it.
1782 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
1783 doesn't have a widget, like tooltips.
1784
1785 2001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
1786
1787 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
1788
1789 2001-01-23 Kenichi Handa <handa@etl.go.jp>
1790
1791 * fns.c (Fset_char_table_default): Fix to make sub char-table
1792 correctly.
1793
1794 2001-01-22 Gerd Moellmann <gerd@gnu.org>
1795
1796 * xdisp.c (build_desired_tool_bar_string): Make sure we have
1797 a desired tool bar string, even if there are no tool bar items.
1798
1799 * xdisp.c (Ftool_bar_lines_needed): New function.
1800 (syms_of_xdisp): Defsubr it.
1801
1802 * editfns.c (Fformat): Don't extend text properties from arguments
1803 to padding chars in the result.
1804
1805 2001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
1806
1807 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
1808
1809 2001-01-20 Andrew Innes <andrewi@gnu.org>
1810
1811 * w32term.c (w32_ring_bell): Only support visible bell on w32 frames.
1812 (w32_initialize): Don't set term hooks that aren't actually needed
1813 in windowed mode.
1814
1815 * xfaces.c (realize_default_face):
1816 (realize_face):
1817 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
1818
1819 * xdisp.c (handle_single_display_prop): Remove references to
1820 FRAME_W32_CONSOLE_P.
1821
1822 * dispnew.c (Fredraw_frame): Remove reference to FRAME_W32_CONSOLE_P.
1823
1824 * frame.h (output_method): Remove output_w32_console method.
1825 (FRAME_W32_CONSOLE_P): Remove macro.
1826
1827 * frame.c (Qw32_console): Remove variable.
1828 (Fframep): Remove references to it.
1829 (syms_of_frame): Ditto.
1830 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
1831
1832 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
1833 redefinition.
1834
1835 2001-01-20 Kenichi Handa <handa@etl.go.jp>
1836
1837 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
1838
1839 2001-01-19 Andrew Innes <andrewi@gnu.org>
1840
1841 * w32.c (init_environment): Add a version-independent site-lisp
1842 directory to EMACSLOADPATH, after the version dependent one.
1843
1844 2001-01-19 Gerd Moellmann <gerd@gnu.org>
1845
1846 * editfns.c (Fbuffer_substring): Doc fix.
1847
1848 * xdisp.c (message_dolog, message2, message2_nolog):
1849 Rename parameter LEN to NBYTES.
1850
1851 2001-01-19 Kenichi Handa <handa@etl.go.jp>
1852
1853 * charset.c (strwidth): Use c_string_width.
1854 (c_string_width): New function.
1855 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
1856 Caller changed.
1857
1858 * charset.h (c_string_width, lisp_string_width): Extern them.
1859
1860 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
1861
1862 * indent.c (check_composition): Check validity of composition.
1863
1864 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
1865 characters by calling c_string_width.
1866 (x_consider_frame_title): Get byte length of frame tile string
1867 correctly.
1868 (display_mode_element): Pay attention to width of non-ASCII
1869 characters by calling strwidth.
1870
1871 2001-01-18 Gerd Moellmann <gerd@gnu.org>
1872
1873 * xfns.c (Qcancel_timer): New variable.
1874 (syms_of_xfns): Initialize and staticpro it.
1875 (Fx_hide_tip, Fx_show_tip): Use it.
1876 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
1877 the timer.
1878 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
1879
1880 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
1881
1882 * window.h (WINDOW_LIVE_P): New macro.
1883
1884 * window.c (window_size_fixed): New variable.
1885 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
1886 the doc string.
1887
1888 * eval.c (specbind): If binding a per-buffer variable which
1889 doesn't have a buffer-local value in the current buffer, change
1890 the global value by changing the value of the symbol bound in all
1891 buffers not having their own value, to make it consistent with
1892 what happens with other buffer-local variables.
1893
1894 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
1895
1896 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
1897 when searching for a newline.
1898
1899 2001-01-18 Kenichi Handa <handa@etl.go.jp>
1900
1901 * xdisp.c (display_string): Fix previous change.
1902
1903 2001-01-18 Jason Rumney <jasonr@gnu.org>
1904
1905 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
1906 GLYPH_DEBUG is defined.
1907 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
1908 true for images with `:ascent 100'.
1909 (x_set_mouse_face_gc): If the last used mouse face has gone in the
1910 meantime, use face MOUSE_FACE_ID.
1911 If first glyph isn't a character glyph, use the ASCII NUL
1912 character to determine the face.
1913 (expose_area): Do not treat left margin specially.
1914 (note_mode_line_highlight): If no local_map, check global keymap.
1915 (note_mouse_highlight): Initialize overlay.
1916 (clear_mouse_face): Don't return if tip_frame is non-nil.
1917 (show_scroll_bars): Remove unused function.
1918 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
1919 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
1920 Clip to row.
1921 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be nil.
1922 (x_free_frame_resources): Unload relief colors.
1923
1924 2001-01-17 Gerd Moellmann <gerd@gnu.org>
1925
1926 * xdisp.c (forward_to_next_line_start): Avoid calling
1927 get_next_display_element when the newline is already found.
1928 This may change the iterator's position, when its current position is
1929 equal to the iterator's stop_charpos.
1930
1931 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
1932 zero, use this method only at the end of a line.
1933
1934 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
1935 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
1936 if SCALABLE_FONTS_P is set.
1937
1938 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
1939 so that scalable fonts are included.
1940
1941 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
1942 In the cache, use a key containing the information if scalable
1943 fonts are included.
1944 (x_load_font): Adapt to change of keys in the font cache.
1945
1946 2001-01-17 Kim F. Storm <storm@filanet.dk>
1947
1948 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
1949 XListFonts to take advantage of font caching.
1950
1951 * xterm.c (x_list_fonts): Ensure caching font information when
1952 called for a null frame, which is the case frequently when Emacs
1953 starts.
1954
1955 2001-01-17 Gerd Moellmann <gerd@gnu.org>
1956
1957 * xfns.c (QCconversion): Replaces QCalgorithm.
1958
1959 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
1960
1961 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
1962 of :algorithm.
1963
1964 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
1965 not everything could be displayed.
1966
1967 * line.h, x-list-font.c: Files removed because unused.
1968
1969 2001-01-17 Andrew Innes <andrewi@gnu.org>
1970
1971 * dired.c (directory_files_internal): Convert result from readdir
1972 to a unibyte string initially, to avoid possible misinterpretation
1973 of some bytes as the internal form of Emacs characters.
1974
1975 2001-01-17 Kenichi Handa <handa@etl.go.jp>
1976
1977 * fns.c (concat): Be sure to avoid putting the same `composition'
1978 property on the adjacent regions.
1979
1980 2001-01-16 Gerd Moellmann <gerd@gnu.org>
1981
1982 * window.c (Fset_window_hscroll): Don't set window's min_hscroll here.
1983 (Fscroll_right, Fscroll_left): Set it here instead, if called
1984 interactively.
1985
1986 * buffer.c (Fset_buffer_modified_p): Set buffer's
1987 prevent_redisplay_optimizations_p flag.
1988
1989 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
1990 * sysdep.c, vmsproc.c, xselect.c: Call redisplay_preserve_echo_area
1991 with additional arg.
1992
1993 * dispextern.h, lisp.h (redisplay_preserve_echo_area):
1994 Change prototype.
1995
1996 * xdisp.c (redisplay_preserve_echo_area): Add parameter
1997 FROM_WHERE, for debugging.
1998
1999 2001-01-16 Kenichi Handa <handa@etl.go.jp>
2000
2001 * ccl.c (Fregister_ccl_program): Handle the return value of
2002 resolve_symbol_ccl_program correctly.
2003 (CCL_Extension): Fix typo (originally CCL_Extention). Caller changed.
2004
2005 2001-01-15 Gerd Moellmann <gerd@gnu.org>
2006
2007 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
2008 has gone in the meantime, use face MOUSE_FACE_ID.
2009
2010 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]:
2011 If x_display_info_for_display returns null, don't try to close
2012 the display; we didn't open it.
2013
2014 * dispnew.c (save_or_restore_current_matrices): Function removed.
2015 (save_current_matrix, restore_current_matrix): New functions.
2016 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
2017 restore the frame's current matrix. Due to the glyph pointer
2018 setup done in adjust_glyph_matrix, there is no easy way to make
2019 saving the current matrix in the desired matrix generally correct,
2020 so don't try it.
2021
2022 2001-01-15 Kenichi Handa <handa@etl.go.jp>
2023
2024 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
2025 truncation glyphs.
2026 (display_line): Optimize for wide characters.
2027 (display_string): Don't try to display a multi-column character
2028 partially. On ttys, produce more than one truncation glyph for
2029 multi-column characters that don't fit on the line.
2030
2031 2001-01-13 Kenichi Handa <handa@etl.go.jp>
2032
2033 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]:
2034 Define it instead of WORDS_BIGENDIAN. Caller changed.
2035
2036 2001-01-13 Jason Rumney <jasonr@gnu.org>
2037
2038 * w32fns.c (Fimage_size, image_ascent, lookup_image)
2039 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
2040 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
2041 (tiff_format, gif_format, gs_format): Adapt to change of image margins.
2042
2043 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
2044 (x_draw_image_relief, x_draw_image_foreground_1)
2045 (x_draw_image_glyph_string): Adapt to change of image margins.
2046
2047 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
2048 variables.
2049
2050 * w32bdf.c (search_file_line, get_cached_font_char)
2051 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
2052
2053 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
2054
2055 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
2056 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
2057 (Fw32_send_sys_command): Remove unused variables.
2058 (w32_msg_pump): Add parentheses.
2059
2060 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
2061 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
2062 Add parentheses.
2063
2064 2001-01-12 Gerd Moellmann <gerd@gnu.org>
2065
2066 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
2067 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
2068 being a pair of margins.
2069 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
2070 to DEFVAR_LISP. Extend doc.
2071
2072 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
2073 margins.
2074 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
2075 pair of integers `(X . Y)', use X for the horizontal and Y for the
2076 vertical margin.
2077 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
2078 (parse_image_spec): Check it.
2079 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
2080 (tiff_format, gif_format, gs_format):
2081 Use IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
2082
2083 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
2084 (x_draw_image_relief, x_draw_image_foreground_1)
2085 (x_draw_image_glyph_string): Adapt to the change of image margins.
2086
2087 * dispextern.h (struct image): Replace member `margin' with
2088 `hmargin' and `vmargin'.
2089
2090 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
2091 and GLYPHS.
2092
2093 * dispnew.c (update_text_area): Put code which decrements the
2094 stop position when the row's face extends to the end of the
2095 line in #if 0.
2096
2097 * xfns.c (x_set_mouse_color): Fix color allocation.
2098
2099 * keyboard.c: Call get_local_map with new argument list.
2100
2101 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
2102
2103 * intervals.h (enum map_property): Removed.
2104 (get_local_map): Change prototype.
2105
2106 * keymap.c: Call get_local_map with new argument list.
2107 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
2108
2109 2001-01-11 Gerd Moellmann <gerd@gnu.org>
2110
2111 * xdisp.c (build_desired_tool_bar_string): Correct the computation
2112 of the size needed for the tool bar string. For the last image,
2113 use a `display' property that reaches to the end of the string.
2114
2115 * xselect.c (selection_request_dpyinfo): New variable.
2116 (x_handle_selection_request): Set it.
2117 (x_selection_request_lisp_error): Don't call
2118 x_decline_selection_request if selection request's display has
2119 been closed.
2120
2121 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]:
2122 Do the unregister_colors before calling XFreeColors.
2123
2124 2001-01-10 Dave Love <fx@gnu.org>
2125
2126 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
2127 ${SOME_MACHINE_LISP}, not ${lisp}.
2128
2129 2001-01-10 Gerd Moellmann <gerd@gnu.org>
2130
2131 * xdisp.c (display_line): On ttys, produce more than one truncation
2132 glyph for multi-column characters that don't fit on the line.
2133
2134 * xselect.c (x_reply_selection_request): Add a comment.
2135
2136 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
2137 XkbGetNames instead of XkbGetKeyboard.
2138
2139 2001-01-10 Dave Love <fx@gnu.org>
2140
2141 * sysdep.c (random): Revert the declaration.
2142
2143 2001-01-09 Gerd Moellmann <gerd@gnu.org>
2144
2145 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]:
2146 Call function string_bytes.
2147 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
2148
2149 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
2150 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
2151 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
2152 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
2153 the current sblock.
2154 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
2155 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
2156 after sweeping strings, and at the end.
2157 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
2158
2159 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
2160 ensure that pop_message is called.
2161
2162 * keyboard.c (Fexecute_extended_command): Use a
2163 record_unwind_protect to ensure that pop_message is called.
2164
2165 * lisp.h (push_message_unwind): Add prototype.
2166
2167 * xdisp.c (push_message_unwind): New function.
2168
2169 * fileio.c (do_auto_save_unwind): Do the pop_message here
2170 instead of in Fdo_auto_save.
2171 (Fdo_auto_save): Don't call pop_message.
2172
2173 2001-01-08 Ken Raeburn <raeburn@gnu.org>
2174
2175 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
2176 in inner block.
2177
2178 2001-01-08 Gerd Moellmann <gerd@gnu.org>
2179
2180 * window.c (window_scroll_pixel_based): Adjust glyph matrices
2181 when increasing window's vscroll.
2182
2183 * macros.c (Qkbd_macro_termination_hook): New variable.
2184 (syms_of_macros): Initialize and staticpro it.
2185 (pop_kbd_macro): Run kbd-macro-termination-hook.
2186
2187 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
2188
2189 2001-01-07 Dave Love <fx@gnu.org>
2190
2191 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
2192 arglist, for documentation's sake.
2193
2194 2001-01-06 Andrew Innes <andrewi@gnu.org>
2195
2196 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
2197 of *.pdb.
2198
2199 2001-01-05 Andrew Innes <andrewi@gnu.org>
2200
2201 * term.c (update_end): Don't check updating_frame; for some reason
2202 this can be 0 sometimes, such as after dismissing a popup menu,
2203 and isn't necessary given the explicit frame argument.
2204
2205 2001-01-05 Gerd Moellmann <gerd@gnu.org>
2206
2207 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
2208 on some systems, and an unsigned long on others, like FreeBSD 4.1.
2209
2210 2001-01-04 Gerd Moellmann <gerd@gnu.org>
2211
2212 * xterm.c (clear_mouse_face): Don't return if tip_frame is non-nil.
2213
2214 * xfns.c (x_create_tip_frame): Preserve the value of
2215 face_change_count around the creation of the tip frame.
2216
2217 * xfns.c (last_show_tip_args): New variable.
2218 (compute_tip_xy): New function.
2219 (Fx_show_tip): Reuse an existing tip frame, if possible.
2220 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
2221
2222 2001-01-04 Dave Love <fx@gnu.org>
2223
2224 * editfns.c (Fformat): Doc fix.
2225
2226 * systime.h (set_file_times): Prototype.
2227
2228 * widget.h (EmacsFrameSetCharSize_): Prototype.
2229
2230 * sysdep.c (random, srandom): Declare explicitly.
2231
2232 * dispextern.h (move_it_vertically_backward): Declare.
2233
2234 2001-01-04 Gerd Moellmann <gerd@gnu.org>
2235
2236 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
2237 like in Fx_create_frame.
2238
2239 * xfaces.c (set_font_frame_param): Don't do anything for
2240 non-graphical frames.
2241
2242 * window.c (Fdelete_other_windows): Set window's window_end_valid
2243 to nil when changing the window's start. Don't change the
2244 window's start when its top position hasn't changed. If we do,
2245 this will set the window's optional_new_start, which act's like a
2246 force_start during redisplay with C-x 1 M-> under particular
2247 circumstances (see report from Per Starback to emacs-pretest-bug
2248 from 2000-12-13.).
2249
2250 2001-01-03 Gerd Moellmann <gerd@gnu.org>
2251
2252 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
2253 short cut at the start of the function. Add an assertion.
2254 (reseat_at_next_visible_line_start): Add an assertion.
2255
2256 * window.c (Frecenter): When changing the window start, set the
2257 window's window_end_valid to nil.
2258 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
2259
2260 * dispextern.h (move_it_past_eol): Add prototype.
2261
2262 * xdisp.c (move_it_past_eol): New function.
2263
2264 * window.c (Fwindow_end): Doc fix.
2265
2266 2001-01-03 Dave Love <fx@gnu.org>
2267
2268 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3 kluge.
2269
2270 2001-01-03 Gerd Moellmann <gerd@gnu.org>
2271
2272 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
2273 the enabled_p flag of the glyph row at window_end_vpos to 0.
2274 (handle_single_display_prop): Fix last change.
2275
2276 2001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2277
2278 * window.c (Frecenter): Doc fix.
2279
2280 2001-01-02 Andrew Innes <andrewi@gnu.org>
2281
2282 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
2283
2284 * frame.h (output_method): Add output_w32_console method.
2285 (FRAME_W32_CONSOLE_P): New macro.
2286
2287 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
2288 use output_w32_console method.
2289 (Qw32_console): New Lisp_Object.
2290 (Fframep): Return it.
2291 (syms_of_frame): Init it.
2292 (Fframe_parameters): Report w32console as font for w32_console frames.
2293
2294 * xfaces.c (realize_default_face): Set face foreground and
2295 background to unspecified for w32_console frames.
2296 (realize_face): Realize face cache for w32_console frames.
2297 (realize_tty_face): Accept w32_console frames.
2298
2299 * xdisp.c (handle_single_display_prop): Return if frame is w32_console.
2300 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
2301 necessary, even if running interactively.
2302
2303 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
2304 w32_console frames.
2305
2306 * w32term.c (x_update_begin):
2307 (x_update_end):
2308 (x_clear_frame):
2309 (x_ins_del_lines):
2310 (x_change_line_highlight):
2311 (x_delete_glyphs):
2312 (w32_ring_bell):
2313 (x_update_begin):
2314 (x_update_end):
2315 (w32_reassert_line_highlight):
2316 (w32_frame_rehighlight):
2317 (w32_frame_raise_lower): Do nothing if not w32 frame.
2318
2319 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
2320
2321 * w32fns.c (Fx_display_color_cells): Determine correct value, when
2322 system doesn't tell us directly.
2323 (Fx_display_visual_class): Implement properly.
2324
2325 2001-01-02 Gerd Moellmann <gerd@gnu.org>
2326
2327 * window.c (Frecenter): Handle centering in graphical frames
2328 specially. Centering on the basis of line counts doesn't work
2329 reliably with variable-height lines.
2330
2331 2001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
2332
2333 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
2334 and al[].
2335
2336 * composite.c (run_composition_function): Remove unused var `val'.
2337 (update_compositions): Remove unused variable `hook'.
2338
2339 * intervals.c (get_local_map): Remove unused variable `tem'.
2340
2341 * doprnt.c (doprnt1): Remove unused variable `size'.
2342
2343 * fns.c (Flength): Remove unused variable `tail'.
2344 (Fdelete): Remove unused variable `size'.
2345
2346 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
2347 and `gcpro2'.
2348
2349 * doc.c (Fsnarf_documentation): Remove unused vars `fun' and `tem'.
2350
2351 * data.c (find_symbol_value): Remove extra 3rd argument in the
2352 call to swap_in_symval_forwarding.
2353
2354 * undo.c (Fprimitive_undo): Remove unused block-scope variable `end'.
2355
2356 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
2357 (trivial_regexp_p): Remove unused variable `c'.
2358 (boyer_moore): Remove unused variable `k'.
2359
2360 * indent.c (current_column): Remove unused variable `stopchar'.
2361 (Fcompute_motion): Remove unused variable `contin'.
2362
2363 * casefiddle.c (casify_object): Remove unused variable `tolen'.
2364
2365 * dired.c (directory_files_internal): Fix a typo in a comment.
2366 Remove an unused variable `handler'.
2367 (file_name_completion): Remove unused function-scope variable `dp'.
2368 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
2369 on BSD4_2.
2370
2371 * fileio.c (e_write): Remove unused variable `require_encoding_p'.
2372
2373 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
2374 and `buf'.
2375 (Fmarker_insertion_type): Remove unused variable `buf'.
2376
2377 * insdel.c (make_gap): Remove unused variable `result'.
2378
2379 * keyboard.c (record_char): Remove unused function-scope var `help'.
2380 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
2381 (menu_bar_items): Remove unused function-scope variable `tem'.
2382
2383 * fontset.c (fontset_ref): Remove unused variable `i'.
2384 (fontset_set): Remove unused variables `j' and `tmp'.
2385 (make_fontset): Remove unused variables `i', `j', `elt' and `base_elt'.
2386 (make_fontset_for_ascii_face): Remove unused variable `name'.
2387 (fs_load_font): Remove unused variable `font_idx'.
2388 (fs_query_fontset): Remove unused function-local variable `fontset'.
2389 (list_fontsets): Remove unused variable `tail'.
2390 (Fnew_fontset): Remove unused variables `family' and `registry'.
2391 (accumulate_font_info): Remove unused variable `tmp'.
2392 (Ffontset_font): Remove unused variable `id'.
2393 (syms_of_fontset): Remove unused variable `i'.
2394
2395 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
2396 to x_term_init.
2397 (lookup_image): Remove unused variable `file'.
2398 (xbm_load): Remove unused variables `bitmap_data', `height', and
2399 `width'. Remove function-local variable `i', leave the
2400 block-local one.
2401 (gif_load): Remove unused variable `inc'.
2402
2403 * xterm.c (XTread_socket): Remove unused variables `p' and `pend'.
2404 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
2405 leave only the one in the inner block.
2406
2407 * xfaces.c (face_fontset, realize_default_face): Remove unused
2408 variable `fontset'.
2409 (face_at_buffer_position): Remove unused variable `multibyte_p'.
2410
2411 * term.c (encode_terminal_code): Remove unused variable `c'.
2412
2413 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
2414 char *' instead of `char *'.
2415
2416 * category.c (Fcategory_docstring): Remove unused variable `doc'.
2417 (Fget_unused_category): Remove unused variable `docstring_vector'.
2418 (Fchar_category_set): Remove unused variables `val', `charset',
2419 `c1' and `c2'.
2420
2421 * coding.c (detect_coding_iso2022, setup_coding_system):
2422 Remove unused variable `i'.
2423 (detect_coding_mask): Remove unused variable `idx'.
2424 (detect_coding): Remove unused variable `i'.
2425 (ccl_coding_driver): Remove unused variable `result'.
2426 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
2427 (decode_coding_string): Remove unused variables `to' and `gcpro1'.
2428 (encode_coding_string): Remove unused variables `gcpro1' and
2429 `saved_coding_symbol'.
2430 (Ffind_coding_systems_region_internal): Remove function-local
2431 variable args[], leave only the block-local one.
2432 (code_convert_region1): Remove unused variable `len'.
2433
2434 * charset.c (char_printable_p): Remove unused variable `chars'.
2435 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
2436 (str_to_multibyte): Remove unused variable `c'.
2437
2438 * window.c (size_window): Remove block-local variable `min_size'.
2439
2440 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
2441 `header_line_height'.
2442 (append_space, extend_face_to_end_of_line): Declare `saved_what'
2443 enum display_element_type.
2444
2445 2001-01-02 Gerd Moellmann <gerd@gnu.org>
2446
2447 * xterm.c (x_connection_closed): Catch X errors around all
2448 statements that call X. Save away the error message in a local copy.
2449
2450 * xterm.c (x_connection_closed): Set handling_signal to 0 at
2451 the start.
2452
2453 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
2454 in or at the start of invisible text.
2455
2456 * dispnew.c (update_window): Don't check_current_matrix_flags.
2457
2458 2001-01-01 Jason Rumney <jasonr@gnu.org>
2459
2460 * w32fns.c (x_figure_window_size): Do not allow new_height and
2461 new_width of frame to override specified values.
2462
2463 2000-12-30 Kenichi Handa <handa@etl.go.jp>
2464
2465 * composite.c (find_composition): Fix a code for searching backward.
2466
2467 2000-12-29 Gerd Moellmann <gerd@gnu.org>
2468
2469 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New function.
2470 (update_window) [GLYPH_DEBUG]: Call it.
2471 (scrolling_window): Prevent including current rows which are below
2472 what's displayed in the window.
2473
2474 * xdisp.c (try_window_reusing_current_matrix)
2475 <new start <= old start>: Disable rows in the current matrix
2476 which are below the window after scrolling.
2477
2478 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
2479 is zero. It's not worth the complexity.
2480 (invisible_text_between_p): Put in #if 0 because unused.
2481
2482 2000-12-28 Gerd Moellmann <gerd@gnu.org>
2483
2484 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
2485 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
2486
2487 * keyboard.c (echo_char): If C is an integer, always call
2488 push_key_description. Former code could signal an invalid
2489 character error.
2490
2491 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
2492 If set, print multibyte text.
2493 (Fsingle_key_description): Call push_key_description with
2494 FORCE_MULTIBYTE set.
2495 (describe_buffer_bindings): Likewise.
2496
2497 * lisp.h (push_key_description): Add prototype.
2498
2499 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
2500 around the call to redisplay_internal.
2501
2502 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
2503
2504 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
2505
2506 2000-12-28 Kenichi Handa <handa@etl.go.jp>
2507
2508 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
2509 (ccl_driver): New local variable `extra_bytes'.
2510
2511 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
2512
2513 * coding.c (setup_coding_system):
2514 Initialize coding->spec.ccl.eight_bit_carryover.
2515 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
2516
2517 2000-12-28 Kenichi Handa <handa@etl.go.jp>
2518
2519 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
2520 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
2521 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
2522 (decode_composition_emacs_mule): New function.
2523 (decode_coding_emacs_mule): Decode composition sequence by calling
2524 decode_composition_emacs_mule.
2525 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
2526 (encode_coding_emacs_mule): Changed from macro to function.
2527 If a text contains compositions, encode them correctly.
2528 (setup_coding_system): Set coding->commong_flags for emacs-mule so
2529 that decoding and encoding are required.
2530
2531 2000-12-27 Gerd Moellmann <gerd@gnu.org>
2532
2533 * xfaces.c (PT_PER_INCH): New macro.
2534 (xlfd_point_size): Compute real point size from font's pixel size.
2535 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
2536 instead of 72.
2537
2538 * .gdbinit: Comment out the line pointing to the Lesstif source
2539 directory.
2540
2541 * window.c (Frecenter): Use displayed_window_lines instead
2542 of window_internal_height.
2543
2544 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
2545 instead of x-toolkit-scroll-bars-p.
2546 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
2547
2548 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
2549 instead of x-toolkit-scroll-bars-p.
2550 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
2551
2552 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
2553 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
2554 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]:
2555 New variables.
2556 (add_window_display_history, add_frame_display_history)
2557 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
2558 (build_frame_matrix_from_leaf_window): Remove unused code.
2559 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
2560 redisplay history.
2561 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
2562 (update_window) [GLYPH_DEBUG]: Likewise.
2563 (syms_of_display): Defsubr dump-redisplay-history.
2564
2565 2000-12-23 Gerd Moellmann <gerd@gnu.org>
2566
2567 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
2568 the end of the prompt. Set echo_after_prompt to the offset
2569 of echoptr in echobuf.
2570
2571 * xdisp.c (init_from_display_pos): Pop until the iterator's
2572 stack is empty; there may be frames for stretch or images
2573 on the stack.
2574
2575 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
2576 (save_or_restore_current_matrix): New function for the same
2577 purpose, but more efficient.
2578 (adjust_frame_glyphs_for_frame_redisplay): Use it.
2579
2580 2000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
2581
2582 * xdisp.c (syms_of_xdisp): Fix last change.
2583
2584 2000-12-23 Gerd Moellmann <gerd@gnu.org>
2585
2586 * xdisp.c (syms_of_xdisp): Doc fix.
2587
2588 * xdisp.c (redisplay_window): Remove label restore_buffers;
2589 use finish_scroll_bars instead to make sure that scroll bars
2590 are redeemed. If we don't do this, flickering can result from
2591 scroll bars being destroyed and recreated.
2592
2593 2000-12-22 Jason Rumney <jasonr@gnu.org>
2594
2595 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
2596 in the wrong colors when the foreground is not black.
2597 (expose_window): Don't redraw the window that's currently being
2598 updated.
2599
2600 2000-12-22 Gerd Moellmann <gerd@gnu.org>
2601
2602 * window.c (size_window): When setting the window's too_small_ok
2603 flag, compare old size with minimum size depending on WIDTH_P,
2604 don't compare with window_min_width.
2605
2606 * window.c (delete_window): Simplify somewhat.
2607 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
2608 freeing window matrices. The flag windows_or_buffers_changed is
2609 set, so the next redisplay will consider all windows; this should
2610 suffice.
2611
2612 2000-12-22 Kenichi Handa <handa@etl.go.jp>
2613
2614 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
2615
2616 * ccl.h (struct ccl_program): New member cr_consumed.
2617
2618 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
2619 (CCL_READ_CHAR): Handle EOL conversion here.
2620 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
2621
2622 2000-12-21 Gerd Moellmann <gerd@gnu.org>
2623
2624 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg GLYPHS.
2625
2626 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
2627 otherwise tabs of different size compare equal.
2628
2629 * callint.c (Fcall_interactively): Prevent a compiler warning.
2630
2631 * print.c (print_unwind): Return nil.
2632 (PRINTDECLARE): Initialize all local variables.
2633 (print_preprocess): Add a default case.
2634
2635 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
2636
2637 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
2638
2639 * window.c (delete_window, Fsplit_window)
2640 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
2641
2642 * dispextern.h (ensure_frame_matrix): Function declaration removed.
2643
2644 * dispnew.c (ensure_frame_matrix): Removed.
2645 (save_frame_matrix, restore_frame_matrix): New functions.
2646 (adjust_frame_glyphs_for_frame_redisplay): Use them.
2647
2648 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
2649 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
2650
2651 2000-12-21 Andrew Innes <andrewi@gnu.org>
2652
2653 * w32term.c (x_update_begin): Regenerate the palette here, rather
2654 than for each window.
2655
2656 * w32xfns.c (select_palette): Avoid calling SelectPalette if
2657 palette is NULL, since this corrupts memory! Also get
2658 display_info reference from frame.
2659
2660 2000-12-21 Jason Rumney <jasonr@gnu.org>
2661
2662 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
2663
2664 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
2665 to avoid returning without releasing it.
2666
2667 2000-12-21 Kenichi Handa <handa@etl.go.jp>
2668
2669 * keymap.c (push_key_description): Don't convert eight-bit-control
2670 and eight-bit-graphic to multibyte character.
2671
2672 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
2673 generic character and CODE1 is nil, return the smallest character
2674 in CHARSET.
2675
2676 2000-12-20 Dave Love <fx@gnu.org>
2677
2678 * s/osf5-0.h (NSIG): Don't redefine.
2679
2680 2000-12-20 Stefan Monnier <monnier@cs.yale.edu>
2681
2682 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
2683 excluding menu-bar and tool-bar.
2684 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
2685 (menu_item_p): Remove.
2686 (where_is_internal_1): Don't ignore menu-items.
2687
2688 2000-12-20 Gerd Moellmann <gerd@gnu.org>
2689
2690 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
2691 into account.
2692
2693 * window.c (make_window): Initialize window's min_hscroll.
2694 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
2695 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
2696 to zero.
2697 (struct saved_window): New member min_hscroll.
2698 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
2699 (Fset_window_configuration): Set window's min_hscroll.
2700 (save_window_save): Save window's min_hscroll.
2701 (compare_window_configurations): Compare min_hscroll values.
2702
2703 * window.h (struct window): New member min_hscroll.
2704
2705 * keyboard.c (echo_prompt): Prevent a compiler warning.
2706
2707 * xdisp.c (try_cursor_movement): Fix last change. The real
2708 condition is that PT is at the end of the row, and should
2709 be displayed at the start of the next row.
2710
2711 * xdisp.c (try_cursor_movement): If we end on a partially
2712 visible line, end we already decided to scroll, return -1.
2713
2714 * dispextern.h (ensure_frame_matrix): Add prototype.
2715
2716 * window.c (delete_window, Fsplit_window)
2717 (Fset_window_configuration): Call ensure_frame_matrix.
2718
2719 * dispnew.c (fake_current_matrices, ensure_frame_matrix):
2720 New functions.
2721 (adjust_frame_glyphs_for_frame_redisplay): If display has been
2722 completed, call fake_current_matrices instead of marking frame
2723 garbaged.
2724
2725 2000-12-20 Jason Rumney <jasonr@gnu.org>
2726
2727 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
2728
2729 2000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
2730
2731 * fns.c (Frequire): Doc fix.
2732
2733 2000-12-19 Gerd Moellmann <gerd@gnu.org>
2734
2735 * window.c (window_scroll_pixel_based): Don't use move_it_vertically.
2736
2737 * dispnew.c (direct_output_for_insert): Fix check for mini-window
2738 currently displaying a message.
2739
2740 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
2741 xterm.h.
2742 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
2743
2744 2000-12-18 Andrew Innes <andrewi@gnu.org>
2745
2746 * w32.c (w32_strerror): New function.
2747
2748 * w32.h (w32_strerror): New extern.
2749
2750 * w32fns.c (Fw32_shell_execute): Use it.
2751
2752 2000-12-18 Gerd Moellmann <gerd@gnu.org>
2753
2754 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
2755
2756 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
2757
2758 * msdos.c (IT_set_face): Obey inverse_video.
2759
2760 2000-12-18 Kenichi Handa <handa@etl.go.jp>
2761
2762 * dired.c (directory_files_internal): Always return decoded filenames.
2763
2764 2000-12-18 Gerd Moellmann <gerd@gnu.org>
2765
2766 * xterm.c (x_connection_closed): Prevent being called recursively
2767 because of an error condition in XtCloseDisplay.
2768
2769 * xdisp.c (init_iterator): If noninteractive, and the frame's
2770 face cache is null, make one.
2771
2772 * xfns.c (show_busy_cursor): Check for live frames more thoroughly.
2773
2774 * process.c (wait_reading_process_input): Check for pending
2775 input when running timers.
2776
2777 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
2778
2779 * msdos.c (IT_write_glyphs): Compute the glyph face from str->face_id.
2780
2781 2000-12-18 Kenichi Handa <handa@etl.go.jp>
2782
2783 * process.c (read_process_output): Don't run a filter if the code
2784 decoder produces nothing but carryover.
2785
2786 2000-12-17 Andrew Innes <andrewi@gnu.org>
2787
2788 * w32.c (sys_rename): Only check errno against EEXIST, and not
2789 EACCES, when determining whether rename failed because the target
2790 exists. This was resulting in indefinite looping on Windows 9x if
2791 the source file was locked by another process.
2792
2793 * w32fns.c (Ffile_system_info): New function.
2794 (syms_of_w32fns): Defsubr it.
2795
2796 2000-12-17 Gerd Moellmann <gerd@gnu.org>
2797
2798 * window.c (coordinates_in_window): Fix computation for
2799 position on vertical line between mode lines.
2800
2801 * xfns.c (unwind_create_frame): Return t if frame was deleted.
2802 Don't alter tip_frame or tip_window.
2803 (unwind_create_tip_frame): Set tip_frame to nil only if frame
2804 was deleted.
2805
2806 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
2807 Don't alter tip_frame or tip_window.
2808 (unwind_create_tip_frame): Set tip_frame to nil only if frame
2809 was deleted.
2810
2811 2000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
2812
2813 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
2814 be consistent with the doc string. Reported by NAKAJIMA Mikio
2815 <minakaji@osaka.email.ne.jp>.
2816
2817 2000-12-16 Kenichi Handa <handa@etl.go.jp>
2818
2819 * xfaces.c (Vface_ignored_fonts): New variable.
2820 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
2821 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
2822
2823 2000-12-15 Gerd Moellmann <gerd@gnu.org>
2824
2825 * dispnew.c (update_window): Detect pending input every nth line
2826 updated, i.e. do it depending on real work done, and not on the
2827 vpos of the line.
2828
2829 * xterm.c (expose_window): Don't redraw the window that's
2830 currently being updated.
2831
2832 * window.c (Fset_window_point): Remove test for
2833 cursor_in_non_selected_windows.
2834
2835 * lread.c (read1): Recognize end of file after `\\'.
2836
2837 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
2838 not unwind_create_frame.
2839
2840 2000-12-15 Dave Love <fx@gnu.org>
2841
2842 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
2843 bcopy & al.
2844
2845 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
2846
2847 2000-12-15 Kenichi Handa <handa@etl.go.jp>
2848
2849 * coding.c (setup_coding_system): Clear all members of the struct
2850 coding_system at first.
2851 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
2852 argument.
2853 (code_convert_region): Don't override coding->src_multibyte and
2854 coding->dst_multibyte.
2855
2856 * fns.c (Fmd5): Docstring improved.
2857
2858 2000-12-15 Miles Bader <miles@gnu.org>
2859
2860 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
2861 are actually marked as mode-lines; otherwise use
2862 estimate_mode_line_height.
2863
2864 2000-12-14 Gerd Moellmann <gerd@gnu.org>
2865
2866 * editfns.c (Fformat): Prevent a buffer overrun when the format
2867 specifies a precision.
2868
2869 2000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
2870
2871 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
2872 argument is outside the range [2..3].
2873
2874 2000-12-14 Andrew Innes <andrewi@gnu.org>
2875
2876 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
2877 nothing to do. Bind inhibit-quit.
2878 (tip_frame): Make it a Lisp_Object.
2879 (x_create_tip_frame): Set tip_frame after it has been added to
2880 Vframe_list.
2881 (Fx_show_tip): Don't set tip_frame here.
2882 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New variables.
2883 (unwind_create_frame, unwind_create_tip_frame): New functions.
2884 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
2885 while a frame is only partially constructed.
2886
2887 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
2888 (x_free_frame_resources): New function.
2889 (x_destroy_window): Use it.
2890
2891 2000-12-14 Gerd Moellmann <gerd@gnu.org>
2892
2893 * xfns.c (Fx_backspace_delete_keys_p): New function.
2894 (syms_of_xfns): Defsubr it.
2895
2896 * config.in (HAVE_XKBGETKEYBOARD): Add.
2897
2898 2000-12-14 Kenichi Handa <handa@etl.go.jp>
2899
2900 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
2901 Always store string in multibyte representation in echobuf.
2902 (echo_char): Always store string in multibyte representation in
2903 echobuf.
2904 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
2905 (read_key_sequence): Adjusted for the change of echo_prompt.
2906
2907 * fns.c (Fmd5): Docstring improved.
2908
2909 * lisp.h (detect_coding_system): Prototype adjusted.
2910
2911 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
2912 (detect_coding_emacs_mule, detect_coding_iso2022,)
2913 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
2914 (detect_coding_utf_16, detect_coding_ccl): Make them static.
2915 New argument MULTIBYTEP. Callers changed.
2916 (detect_coding_mask, detect_coding_system): New argument
2917 MULTIBYTEP. Callers changed.
2918 (decode_coding_string): Set coding->src_multibyte and
2919 coding->dst_multibyte before calling detect_coding and detect_eol.
2920 Update them after some coding system is detected.
2921
2922 2000-12-13 Stefan Monnier <monnier@cs.yale.edu>
2923
2924 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
2925
2926 * keyboard.c (menu_bar_items, tool_bar_items):
2927 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
2928
2929 2000-12-13 Gerd Moellmann <gerd@gnu.org>
2930
2931 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
2932 New variables.
2933 (unwind_create_frame, unwind_create_tip_frame): New functions.
2934 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
2935 while a frame is only partially constructed.
2936
2937 * xterm.h (x_free_frame_resources): Declare.
2938
2939 * xterm.c (x_free_frame_resources): New function.
2940 (x_destroy_window): Use it.
2941
2942 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
2943 don't interrupt the update for pending input initially, i.e.
2944 update at least some lines.
2945
2946 * keyboard.c (do_mouse_tracking): Make externally visible.
2947
2948 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
2949
2950 * xfns.c (gray_bitmap_bits): Declare `char *'.
2951
2952 2000-12-12 Gerd Moellmann <gerd@gnu.org>
2953
2954 * xdisp.c (display_tool_bar_line): Make sure that tool bar
2955 lines start with a relief line.
2956
2957 2000-12-12 Dave Love <fx@gnu.org>
2958
2959 * window.c (Fdisplay_buffer): Doc fix.
2960 (Fwindow_list): Remove unused var.
2961
2962 * buffer.h (mmap_set_vars): Declare.
2963
2964 * window.h (Fset_window_point): Declare.
2965
2966 2000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
2967
2968 * msdos.c (fast_find_position): Don't overstep the last window row.
2969 (IT_note_mouse_highlight): Initialize portion to -1. Remove unused
2970 variable `area'. When looking for a row under (X,Y), give up if some
2971 of the previous rows is not enabled.
2972
2973 2000-12-12 Gerd Moellmann <gerd@gnu.org>
2974
2975 * window.c (Fset_window_point): If displaying cursors in windows
2976 other than the selected window, make sure redisplay updates
2977 other windows to show the new value of point in the window.
2978
2979 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
2980
2981 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
2982 the buffer is the sole visible buffer when in the mini-buffer.
2983
2984 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
2985 Bind `inhibit-read-only' to t.
2986 (unwind_with_echo_area_buffer): Use AREF.
2987
2988 * xfns.c (Fx_hide_tip): Simplified.
2989
2990 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use GC_MAKE_GCPROS_NOOPS
2991 instead of `1'.
2992
2993 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
2994
2995 2000-12-11 Gerd Moellmann <gerd@gnu.org>
2996
2997 * xfns.c (Fx_hide_tip): Fix last change.
2998
2999 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
3000 nothing to do. Bind inhibit-quit.
3001 (tip_frame): Make it a Lisp_Object.
3002 (x_create_tip_frame): Set tip_frame after it has been added to
3003 Vframe_list.
3004 (Fx_show_tip): Don't set tip_frame here.
3005
3006 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
3007
3008 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
3009 Lisp_Object.
3010
3011 * dispextern.h: Change external declaration of tip_frame.
3012
3013 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
3014 return an empty string.
3015
3016 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
3017 of the window's update_mode_line flag, since the former is set by
3018 force-mode-line-update, not the latter. This makes
3019 column-number-mode slightly faster.
3020
3021 * xdisp.c (try_window_id) <all changes above window start>:
3022 Set the cursor.
3023
3024 2000-12-11 Paul Eggert <eggert@twinsun.com>
3025
3026 * config.in (HAVE_FTELLO): Remove.
3027 (HAVE_FSEEKO): Add.
3028 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
3029 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
3030 HAVE_FTELLO.
3031 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
3032 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
3033
3034 2000-12-11 Miles Bader <miles@gnu.org>
3035
3036 * window.c (displayed_window_lines): Don't round up when
3037 converting empty space at bottom to lines.
3038 Handle non-newline-terminated final lines properly.
3039 (Fwindow_text_height): New function (used to be in lisp).
3040 (syms_of_window): Initialize it.
3041
3042 2000-12-09 Stefan Monnier <monnier@cs.yale.edu>
3043
3044 * syntax.c (scan_lists): Check that the right quote char has the
3045 right Sstring syntax when jumping over strings.
3046 (init_syntax_once): Use Smax rather than 13.
3047
3048 2000-12-09 Miles Bader <miles@gnu.org>
3049
3050 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
3051 with PARTIALLY, inverting the sense.
3052 (window_scroll_pixel_based): Scroll partially visible lines into
3053 place if we hit the beginning or end of the buffer.
3054 (displayed_window_lines): Don't include partially visible lines.
3055 (Fmove_to_window_line): Skip past any partially visible first line.
3056
3057 2000-12-08 Gerd Moellmann <gerd@gnu.org>
3058
3059 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
3060
3061 * tparam.c (tparam1): Change the way buffers are reallocated to be
3062 portable and less obfuscated.
3063
3064 * termcap.c (tgetent): Change the way buffers are reallocated to
3065 be portable and less obfuscated.
3066
3067 * macros.c (store_kbd_macro_char): Change the way buffers are
3068 reallocated to be portable and less obfuscated.
3069
3070 * lread.c (read1): Change the way buffers are reallocated to be
3071 portable and less obfuscated.
3072
3073 * doc.c (Fsubstitute_command_keys): Change the way buffers
3074 are reallocated so that it is portable.
3075
3076 2000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
3077
3078 * dosfns.c (Ffile_system_info): New function.
3079 (syms_of_dosfns): Defsubr it.
3080
3081 2000-12-07 Stefan Monnier <monnier@cs.yale.edu>
3082
3083 * alloc.c (gc_sweep): Add comment.
3084
3085 2000-12-07 Gerd Moellmann <gerd@gnu.org>
3086
3087 * sound.c (vox_configure): Change order of ioctls.
3088 Don't set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
3089 Ignore errors when changing volume.
3090 (vox_close): Don't reset the device.
3091
3092 * process.c (read_process_output): Make sure the process marker's
3093 position is valid when the process buffer is changed in
3094 after-change functions. W3 does that.
3095
3096 * xfns.c (x_free_gcs): New function.
3097
3098 * xterm.h (x_free_gcs): Add prototype.
3099
3100 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
3101 freeing GCs here.
3102
3103 * xterm.c (x_destroy_window): Call x_free_gcs so that
3104 resources of non-toolkit X windows will be freed.
3105
3106 2000-12-07 Andrew Innes <andrewi@gnu.org>
3107
3108 * w32fns.c (xlfd_charset_of_font): Fix last change.
3109
3110 2000-12-06 Dave Love <fx@gnu.org>
3111
3112 * md5.h (__P): Don't define -- it comes from config.h.
3113
3114 * strftime.c: Change some #if foo to #ifdef foo.
3115
3116 2000-12-06 Andrew Innes <andrewi@gnu.org>
3117
3118 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
3119
3120 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname argument.
3121 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
3122 (w32_list_fonts): Don't choke if pattern doesn't specify a codepage.
3123
3124 2000-12-06 Gerd Moellmann <gerd@gnu.org>
3125
3126 * alloc.c (gc_sweep): Prevent symbols read during loadup
3127 from being freed.
3128
3129 * xdisp.c (underlying_face_id): New function.
3130 (handle_face_prop, face_before_or_after_it_pos): Use it
3131 to determine the face ``under'' a string. Let strings inherit
3132 the face of the buffer under them.
3133
3134 * xfaces.c (face_at_string_position): Update function comment.
3135
3136 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
3137 matrix if the window's left position has changed; we need to
3138 redraw it in this case.
3139
3140 * dispextern.h (struct glyph_matrix): Add member window_left_x.
3141
3142 * window.c (coordinates_in_window): Check mouse on mode-line or
3143 header-line first.
3144
3145 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
3146 advertized by the function documentation.
3147
3148 * window.c (syms_of_window): Doc fix.
3149
3150 * sound.c (vox_configure): Set volume for left and right channel.
3151 (sound_cleanup): Return nil.
3152
3153 * xdisp.c (move_it_by_lines): Fix paren typo.
3154
3155 * xterm.c (x_load_font): Don't use the font's max_bounds for
3156 computing the height of the font. If max_bounds' ascent or
3157 descent are greater than the font's ascent or descent, this means
3158 glyphs overlap, which should be handled now by redisplay.
3159
3160 * window.c (Veven_window_heights): New variable.
3161 (syms_of_window): DEFVAR_LISP it.
3162 (Fdisplay_buffer): Check Veven_window_heights before evening the
3163 window heights.
3164
3165 2000-12-06 Miles Bader <miles@gnu.org>
3166
3167 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
3168 update `default-frame-alist' instead of setting no frame parameters.
3169
3170 2000-12-06 Kenichi Handa <handa@etl.go.jp>
3171
3172 * composite.c (update_compositions): Fix typo (use the correct
3173 variable).
3174
3175 2000-12-05 Jason Rumney <jasonr@gnu.org>
3176
3177 * md5.h: Remove underscores from function declarations.
3178 (__attribute__, __alignof__) [!__GNUC__]: Define.
3179
3180 * md5.c: Delay include of md5.h until after namespace cleaning.
3181
3182 * makefile.w32-in (fns.o): Depend on md5.h
3183 (md5.o): New target.
3184 (sunfns.o): Remove.
3185
3186 * makefile.nt: Likewise.
3187
3188 2000-12-05 Jason Rumney <jasonr@altavista.net>
3189
3190 * w32term.c (expose_area): Complete last change.
3191
3192 2000-12-05 Ken Raeburn <raeburn@gnu.org>
3193
3194 * minibuf.c: Include intervals.h.
3195
3196 2000-12-05 Jason Rumney <jasonr@gnu.org>
3197
3198 * w32term.c (x_produce_glyphs): If a font for a component of
3199 a composition is not found, use 1 pixel dot ascent and 0 dot
3200 descent value to avoid displaying terribly tall empty boxes.
3201 (expose_area): Pass x-coordinate relative to the exposed
3202 area to x_draw_glyphs instead of a window-relative coordinate.
3203
3204 2000-12-05 Gerd Moellmann <gerd@gnu.org>
3205
3206 * xdisp.c (next_element_from_ellipsis): Save face before selective
3207 display in saved_face_id, and set face_before_selective_p.
3208 (reseat_1): Reset face_before_selective_p.
3209 (append_space, extend_face_to_end_of_line): If iterator's
3210 face_before_selective_p is set, use the face from saved_face_id.
3211 (extend_face_to_end_of_line): For tty frames, make sure to
3212 use the right face id when producing spaces at the end of
3213 the line.
3214
3215 * dispextern.h (struct it): Add face_before_selective_p.
3216
3217 * keyboard.c (record_char): Don't record identical help-echo
3218 events in recent_keys.
3219
3220 * xterm.c [USE_X_TOOLKIT]: Close the display.
3221 (xim_close_dpy): Handle case that the display has been closed.
3222
3223 * xterm.c (x_destroy_window): Reset the frame's X window after
3224 destroying it.
3225
3226 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
3227 variable window_width.
3228 (line_draw_cost): Fix code skipping over spaces at the end of the
3229 line when must_write_spaces is not set.
3230 (scrolling_window): Fix code inserting runs in list of all runs.
3231
3232 2000-12-05 Kenichi Handa <handa@etl.go.jp>
3233
3234 * coding.c (setup_coding_system): Be sure to initialize
3235 coding->category_idx.
3236
3237 2000-12-04 Gerd Moellmann <gerd@gnu.org>
3238
3239 * xterm.c (PER_CHAR_METRIC): Removed because not used.
3240
3241 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
3242 area to x_draw_glyphs instead of a window-relative coordinate.
3243
3244 * fileio.c (auto_save_error): Add parameter ERROR. Show the
3245 error in the message.
3246
3247 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
3248 timer after having read a key. It's not good for code reading
3249 several keys in a loop, like an input method.
3250
3251 * fileio.c (Finsert_file_contents): When VISIT is t, don't
3252 record undo information for format-decode.
3253
3254 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
3255 current buffer is read-only, not if it isn't.
3256
3257 * keyboard.c (record_char): Record `help-echo' input events
3258 in recent_keys only if they display some help. Don't record
3259 `help-echo' events as macro char.
3260
3261 2000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3262
3263 * editfns.c (save_excursion_restore): Don't move point
3264 in another window if it is showing the wrong buffer.
3265 Avoid the call to Fwindow_live_p, for speed.
3266
3267 2000-12-04 Kenichi Handa <handa@etl.go.jp>
3268
3269 * xfaces.c (struct font_name): New member registry_priority.
3270 (split_font_name): Initialize the above member to zero.
3271 (concat_font_list): New function.
3272 (font_list): Include fonts of all alternative registries.
3273 (FONT_POINT_SIZE_QUANTUM): New macro.
3274 (better_font_p): Ignore point size difference less than
3275 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
3276
3277 * xterm.c (x_produce_glyphs): If a font for a component of
3278 a composition is not found, use 1 pixel dot ascent and 0 dot
3279 descent value to avoid displaying terribly tall empty boxes.
3280
3281 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
3282
3283 2000-12-03 Ken Raeburn <raeburn@gnu.org>
3284
3285 * coding.h (code_convert_string1): Declare.
3286
3287 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
3288
3289 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name): Declare.
3290
3291 2000-12-02 Jason Rumney <jasonr@gnu.org>
3292
3293 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
3294 correctly for single byte character case.
3295 (w32_per_char_metric): Do not try to make any assumptions about
3296 the metrics of BDF fonts.
3297 (x_estimate_mode_line_height): If `mode-line' face
3298 hasn't a font, use that of the frame, as drawing glyphs does.
3299 (note_mouse_highlight): Change the cursor shape on the vertical
3300 border between windows [not enabled].
3301
3302 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
3303
3304 * w32fns.c (Fx_create_frame): Reintroduce the call to
3305 face-set-after-frame-defaults.
3306 (Vx_window_horizontal_drag_shape): New variable.
3307 (syms_of_xfns): DEFVAR_LISP it.
3308 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
3309 enabled].
3310
3311 2000-12-02 Simon Josefsson <simon@josefsson.org>
3312
3313 * fns.c (Fmd5): Use a different logic to decide the coding system
3314 to use.
3315
3316 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
3317
3318 2000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
3319
3320 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is NULL.
3321
3322 2000-12-01 Gerd Moellmann <gerd@gnu.org>
3323
3324 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
3325 height for YNegative.
3326 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
3327 height; also see comment there.
3328
3329 * window.c (coordinates_in_window): Handle computations for
3330 positions on the vertical bar and fringes differently for
3331 window-system frames. Consider some pixels near the vertical bar
3332 as on the bar if the frame doesn't have vertical scroll bars.
3333 Associate positions between mode or header lines with the
3334 right window, the left one.
3335
3336 2000-12-01 Jason Rumney <jasonr@gnu.org>
3337
3338 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
3339
3340 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
3341 invalid frame.
3342
3343 2000-12-01 Gerd Moellmann <gerd@gnu.org>
3344
3345 * window.c (struct saved_window): Add members orig_top and orig_height.
3346 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
3347 (save_window_save, Fset_window_configuration): Save/restore
3348 window's orig_top and orig_height.
3349
3350 2000-12-01 Jason Rumney <jasonr@gnu.org>
3351
3352 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
3353
3354 * w32fns.c (x_set_cursor_color): Fix last change.
3355
3356 2000-11-30 Gerd Moellmann <gerd@gnu.org>
3357
3358 * xdisp.c (echo_area_display): If cursor is in the echo area, make
3359 sure that the next redisplay displays the minibuffer, so that
3360 the cursor will be replaced with what the minibuffer wants.
3361
3362 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
3363 #ifndef instead of using #if.
3364 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
3365 USE_TOOLKIT_SCROLL_BARS is defined.
3366
3367 2000-11-30 Jason Rumney <jasonr@gnu.org>
3368
3369 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
3370 x_display_cursor.
3371
3372 2000-11-30 Gerd Moellmann <gerd@gnu.org>
3373
3374 * fns.c (Fmd5): Doc fix.
3375
3376 2000-11-30 Simon Josefsson <simon@josefsson.org>
3377
3378 * fns.c (Fmd5): New function.
3379 (syms_of_fns): Defsubr md5.
3380
3381 * Makefile.in (obj): Add md5.o
3382
3383 2000-11-30 Gerd Moellmann <gerd@gnu.org>
3384
3385 * md5.h, md5.c: New files, taken from glibc.
3386
3387 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
3388
3389 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
3390 hasn't a font, use that of the frame, as drawing glyphs does.
3391
3392 2000-11-29 Stefan Monnier <monnier@cs.yale.edu>
3393
3394 * eval.c (Frun_hooks): Allow 0 arguments.
3395
3396 2000-11-29 Gerd Moellmann <gerd@gnu.org>
3397
3398 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
3399 is over the menu bar widget, say it's not on the frame.
3400
3401 * xfns.c (Fx_create_frame): Reintroduce the call to
3402 face-set-after-frame-defaults.
3403
3404 * eval.c (Fsignal): Reset handling_signal.
3405
3406 2000-11-28 Jason Rumney <jasonr@gnu.org>
3407
3408 * w32menu.c (add_menu_item): Reset menu item text when changing
3409 type to radio button.
3410
3411 2000-11-28 Gerd Moellmann <gerd@gnu.org>
3412
3413 * xselect.c: Update copyright.
3414
3415 * window.c (coordinates_in_window): If on a mode or header line,
3416 but sufficiently close to its start, return ``on vertical
3417 border''. This gives us a way to drag windows horizontally when
3418 using toolkit scroll bars.
3419
3420 * xterm.c (note_mouse_highlight): Change the cursor shape
3421 on the vertical border between windows.
3422
3423 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
3424
3425 * xfns.c (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.
3428
3429 * textprop.c (text_read_only): New function.
3430 (verify_interval_modification): Use it instead of signaling
3431 `text-read-only'. This makes it easier to catch this error
3432 with a breakpoint.:
3433
3434 * xdisp.c (forward_to_next_line_start): Check for newlines,
3435 not end of line, which includes CR.
3436
3437 2000-11-28 Kenichi Handa <handa@etl.go.jp>
3438
3439 * coding.c (Ffind_coding_systems_region_internal): Be sure to
3440 include no-conversion.
3441
3442 2000-11-27 Jason Rumney <jasonr@gnu.org>
3443
3444 * w32fns.c (w32_load_system_font): Always mark font as double byte
3445 if codepage is unicode.
3446
3447 2000-11-27 Gerd Moellmann <gerd@gnu.org>
3448
3449 * xdisp.c (forward_to_next_line_start): If already on a newline,
3450 just consume it to avoid unintended skipping over invisible text below.
3451
3452 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
3453 `vertical-line', `mode-line' and `header-line' events.
3454
3455 * xdisp.c (try_window_id): Avoid starting to display in the middle
3456 of a character, a TAB for instance. This is easier than to set
3457 up the iterator exactly, and it's not a frequent case, so the
3458 additional effort wouldn't really pay off.
3459
3460 2000-11-26 Andrew Choi <akochoi@i-cable.com>
3461
3462 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
3463 init_window_once.
3464
3465 2000-11-25 Jason Rumney <jasonr@gnu.org>
3466
3467 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]:
3468 Args to window_from_coordinates should be pixel coordinates.
3469
3470 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
3471 redisplay handles them properly.
3472
3473 2000-11-25 Miles Bader <miles@gnu.org>
3474
3475 * indent.c (compute_motion): Keep pos_byte in sync with pos.
3476
3477 2000-11-24 Jason Rumney <jasonr@gnu.org>
3478
3479 * w32.c (init_environment): Set LANG environment variable based on
3480 locale settings, if not set.
3481
3482 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
3483 making tool bar smaller. When clearing the frame, also
3484 clear current matrices. Clear frame when tool bar disappears.
3485 Don't use more lines for the tool-bar than is available.
3486 (x_change_window_heights): New function.
3487
3488 2000-11-24 Gerd Moellmann <gerd@gnu.org>
3489
3490 * xdisp.c (init_from_display_pos): If POS says we're already after
3491 an overlay string ending at POS, make sure to pop the iterator
3492 because it will be in front of that overlay string. When POS is
3493 ZV, we've thereby also ``processed'' overlay strings at ZV.
3494
3495 * xfaces.c (lface_from_face_name): Function comment fix.
3496
3497 2000-11-24 Miles Bader <miles@gnu.org>
3498
3499 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
3500 apply `mode-line-inverse-video' -- zero means force display using
3501 the default face, non-zero means display using the specialized face.
3502 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
3503
3504 2000-11-23 Kenichi Handa <handa@etl.go.jp>
3505
3506 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
3507 hard coded `4'.
3508
3509 2000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
3510
3511 * coding.c (decode_coding_emacs_mule): Fix the case of
3512 CODING_EOL_LF, which used uninitialized value of c.
3513
3514 2000-11-23 Stefan Monnier <monnier@cs.yale.edu>
3515
3516 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
3517
3518 2000-11-22 Gerd Moellmann <gerd@gnu.org>
3519
3520 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
3521 buffer object.
3522
3523 * frame.h (struct frame): Replace desired_tool_bar_items,
3524 current_tool_bar_items, n_desired_tool_bar_items,
3525 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
3526
3527 * frame.c (make_frame): Change initialization of tool bar
3528 items accordingly.
3529
3530 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
3531 Change references to members deleted from struct frame to use the
3532 new ones.
3533
3534 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
3535 references to members deleted from struct frame to use the new ones.
3536
3537 * dispnew.c (update_frame): Do nothing with frame's tool bar items.
3538
3539 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
3540
3541 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
3542 (note_tool_bar_highlight): Change references to members deleted
3543 from struct frame to use the new ones.
3544
3545 2000-11-23 Miles Bader <miles@gnu.org>
3546
3547 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
3548 the face's inverse-video attribute, rather than overriding it.
3549
3550 2000-11-22 Gerd Moellmann <gerd@gnu.org>
3551
3552 * xfns.c (x_set_tool_bar_lines): Clear internal border when
3553 making tool bar smaller.
3554
3555 2000-11-22 Dave Love <fx@gnu.org>
3556
3557 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
3558
3559 2000-11-22 Miles Bader <miles@gnu.org>
3560
3561 * keyboard.c (Vminibuffer_message_timeout): New variable.
3562 (command_loop_1): Use it to determine message timeout.
3563 (syms_of_keyboard): Initialize it.
3564
3565 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
3566
3567 2000-11-22 Kenichi Handa <handa@etl.go.jp>
3568
3569 * sysdep.c: Move the code for declaring h_errno after #include
3570 <netdb.h>.
3571
3572 2000-11-21 Gerd Moellmann <gerd@gnu.org>
3573
3574 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
3575 the menu bar when the tooltip is unmapped.
3576
3577 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
3578 sole visible buffer when we're currently in the mini-buffer, and
3579 give up if so.
3580
3581 2000-11-21 Jason Rumney <jasonr@gnu.org>
3582
3583 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
3584 put on the clipboard.
3585 (Fw32_get_clipboard_data): Compare data on clipboard with saved
3586 copy of what Emacs last put there. If they are the same, do not
3587 use the clipboard copy to avoid losing data due to coding conversions.
3588
3589 2000-11-22 Miles Bader <miles@gnu.org>
3590
3591 * minibuf.c (Vminibuffer_prompt_properties): New variable.
3592 (syms_of_minibuf): Initialize it.
3593 (read_minibuf): Add properties from Vminibuffer_prompt_properties
3594 to prompt, don't make read-only.
3595
3596 2000-11-21 Gerd Moellmann <gerd@gnu.org>
3597
3598 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>:
3599 Add BEFORE/AFTER_POTENTIAL_GC.
3600
3601 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
3602
3603 * buffer.c (mmap_free_1): Avoid a compiler warning.
3604
3605 * term.c, cm.c: Don't try to include termcap.h; see comment there.
3606
3607 2000-11-21 Kenichi Handa <handa@etl.go.jp>
3608
3609 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
3610 ... #endif scope.
3611
3612 2000-11-20 Gerd Moellmann <gerd@gnu.org>
3613
3614 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
3615 screen supports it.
3616
3617 * s/gnu-linux.h: Don't use `#cpu'.
3618
3619 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
3620 not defined in mman.h.
3621
3622 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New variables.
3623 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
3624 and store an index in the XClientMessageEvent. Storing a
3625 Lisp_Object or pointer can fail on a 64 bit system, since X only
3626 transfers 32 bits.
3627 (x_scroll_bar_to_input_event): Get the window from scroll_bar_windows.
3628
3629 2000-11-20 Dave Love <fx@gnu.org>
3630
3631 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
3632
3633 2000-11-20 Gerd Moellmann <gerd@gnu.org>
3634
3635 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
3636
3637 2000-11-20 Kenichi Handa <handa@etl.go.jp>
3638
3639 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
3640 by WIDTH.
3641
3642 * alloc.c (make_string): Fix previous change. Be sure to make
3643 unibyte string correctly.
3644
3645 2000-11-19 Gerd Moellmann <gerd@gnu.org>
3646
3647 * window.c (Fwindow_list): Change parameter list to be XEmacs
3648 compatible.
3649 (window_list_1): New function.
3650 (window_loop): Use it instead of Fwindow_list.
3651
3652 * sysdep.c (emacs_ospeed): New variable.
3653 (toplevel): Don't declare ospeed extern.
3654 (init_baud_rate): Use emacs_ospeed instead of ospeed.
3655
3656 * termcap.c (ospeed): Remove.
3657 (tputs) [!emacs]: Remove unused code.
3658 (tgetent): Avoid a compiler warning.
3659
3660 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
3661 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
3662 SCROLL_BAR_X_WIDGET with additional argument DPY.
3663
3664 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
3665 removed.
3666 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
3667 Take the X display as additional argument.
3668 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
3669 `Widget' is a pointer type that's not easily stored in Lisp_Object
3670 form in a portable way.
3671
3672 * dispnew.c (update_text_area): Fix last change.
3673
3674 2000-11-18 Gerd Moellmann <gerd@gnu.org>
3675
3676 * xdisp.c: Use BINDING_STACK_SIZE throughout.
3677
3678 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
3679 clear current matrices.
3680
3681 * buffer.c (mmap_enlarge): Don't print a message on stderr
3682 if mapping new memory at the end of the existing region fails.
3683
3684 * dispnew.c (update_text_area): Don't skip over equal glyphs
3685 when the last current glyph overlaps the glyph to its right.
3686
3687 2000-11-18 Miles Bader <miles@gnu.org>
3688
3689 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
3690 lines that *end* with "..." too (that's the most common case!).
3691
3692 2000-11-18 Gerd Moellmann <gerd@gnu.org>
3693
3694 * xdisp.c (resize_mini_window): Temporarily change to the
3695 mini-window's buffer if necessary.
3696
3697 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
3698 the tooltip obscures less text under it.
3699
3700 2000-11-17 Gerd Moellmann <gerd@gnu.org>
3701
3702 * puresize.h (BASE_PURESIZE): Increase to 700000.
3703
3704 2000-11-18 Jason Rumney <jasonr@gnu.org>
3705
3706 * w32term.c (w32_draw_bitmap): Use face to set colors.
3707
3708 2000-11-17 Dave Love <fx@gnu.org>
3709
3710 * lread.c (Fload): Fix #ifdef for pcc.
3711
3712 2000-11-17 Gerd Moellmann <gerd@gnu.org>
3713
3714 * xdisp.c (pos_visible_p): Compute the default character height
3715 differently.
3716
3717 2000-11-16 Gerd Moellmann <gerd@gnu.org>
3718
3719 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
3720 knowing the line's height; use the default font's height in that case.
3721
3722 * xfaces.c (weight_table): Add `demi' with the same meaning as
3723 `demibold'.
3724
3725 2000-11-16 Kenichi Handa <handa@etl.go.jp>
3726
3727 * dispnew.c (null_row): New global static variable.
3728 (clear_glyph_row): Delete local static variable null_row.
3729
3730 2000-11-15 Jason Rumney <jasonr@gnu.org>
3731
3732 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
3733 (w32_alloc_lighter_color): Use new brightness calculations from
3734 xterm.c. Scale delta to be in the range expected by W32.
3735 (w32_draw_relief_rect): Use frame relief colors.
3736
3737 2000-11-15 Gerd Moellmann <gerd@gnu.org>
3738
3739 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
3740 (Qinhibit_default_face_x_resources): New variable.
3741 (syms_of_frame): Initialize it.
3742 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
3743
3744 * xdisp.c (pos_visible_p): Improve function comment.
3745
3746 * lisp.h (BINDING_STACK_SIZE): New macro.
3747
3748 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
3749 reading the directory if readdir returns null and errno is EAGAIN
3750 or EINTR.
3751
3752 2000-11-14 Stefan Monnier <monnier@cs.yale.edu>
3753
3754 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
3755 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
3756 Set amount_to_scroll to max of dx and scroll_step so that
3757 scroll-conservatively doesn't defeat scroll-step>1.
3758 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
3759 scroll-conservatively for line-at-a-time scrolling.
3760
3761 2000-11-14 Gerd Moellmann <gerd@gnu.org>
3762
3763 * window.c (Fpos_visible_in_window_p): Call pos_visible with
3764 extra argument.
3765
3766 * xdisp.c (current_mode_line_height, current_header_line_height):
3767 New variables.
3768 (init_xdisp): Initialize them.
3769 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
3770 and use exact mode line heights if it is set.
3771
3772 * lisp.h (pos_visible_p): Change prototype.
3773
3774 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
3775 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
3776 and current_header_line_height first.
3777 (current_mode_line_height, current_header_line_height):
3778 Declare extern.
3779
3780 2000-11-14 Miles Bader <miles@lsi.nec.co.jp>
3781
3782 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
3783 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
3784 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
3785
3786 2000-11-14 Miles Bader <miles@gnu.org>
3787
3788 * xterm.c (x_alloc_lighter_color): Include an additive component
3789 too for dark colors, because FACTOR isn't enough.
3790 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
3791 New macros.
3792
3793 2000-11-13 Gerd Moellmann <gerd@gnu.org>
3794
3795 * keyboard.c (show_help_echo): Call message3_nolog with number of
3796 bytes in the help string as 2nd parameter, instead of the number
3797 of characters.
3798
3799 2000-11-13 Miles Bader <miles@gnu.org>
3800
3801 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
3802 (Fload): Use new openp return protocol.
3803 Don't try to use Vload_source_file_function to load .elc files.
3804 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
3805 openp return protocol.
3806 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
3807
3808 2000-11-11 Kenichi Handa <handa@etl.go.jp>
3809
3810 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
3811
3812 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
3813 Defined these macros.
3814 (NLIST_STRUCT): Avoid re-defining it.
3815
3816 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
3817 -I/usr/contrib/X11R6/include.
3818 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
3819
3820 2000-11-10 Jason Rumney <jasonr@gnu.org>
3821
3822 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
3823
3824 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
3825 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
3826
3827 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
3828 (Qw32_charset_vietnamese): New symbol.
3829 (xlfd_charset_of_font): New function.
3830 (w32_load_system_font): Use it.
3831 (x_to_w32_charset): Use Fassoc to find charset info. Special case
3832 when Vw32_charset_info_alist is nil to ensure default face always
3833 has font. Use Fcar and Fcdr for safety.
3834 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
3835 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
3836 pseudo-codepages for special cases.
3837 (w32_to_x_font): New parameter to allow charset portion to be
3838 specified where there is many to one mapping. Callers changed.
3839 (w32_list_fonts): Avoid listing fonts that won't display.
3840
3841 2000-11-10 Gerd Moellmann <gerd@gnu.org>
3842
3843 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
3844 (font_list_1): Renamed from font_list.
3845 (font_list): New function, trying alternative registries from
3846 Vface_alternative_font_registry_alist.
3847 (Finternal_set_alternative_font_registry_alist): New function.
3848 (syms_of_xfaces): Initialize and Staticpro
3849 Vface_alternative_font_registry_alist.
3850 Defsubr Finternal_set_alternative_font_registry_alist.
3851
3852 2000-11-09 Ken Raeburn <raeburn@gnu.org>
3853
3854 * lisp.h (Flooking_at): Declare.
3855
3856 2000-11-09 Gerd Moellmann <gerd@gnu.org>
3857
3858 * dired.c (directory_files_internal): Fix a braino.
3859
3860 * dired.c (directory_files_internal): Add missing GCPRO's.
3861 Some cleanup.
3862
3863 2000-11-08 Gerd Moellmann <gerd@gnu.org>
3864
3865 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
3866 (resize_mini_window): Return quickly if Vresize_mini_window is
3867 nil. Don't return if Vmax_mini_window_height is nil.
3868
3869 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
3870 (syms_of_xdisp): Initialize them.
3871 (resize_mini_window): Act according to the setting of
3872 Vresize_mini_window.
3873 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
3874
3875 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
3876 scroll bar widget after configuring it, so that it will appear at
3877 the right position from the start.
3878 (XTredeem_scroll_bar): Cleaned up.
3879
3880 2000-11-08 Kenichi Handa <handa@etl.go.jp>
3881
3882 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
3883 font is taller than the frame line, we don't have to bias the
3884 division by two.
3885
3886 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
3887
3888 2000-11-07 Dave Love <fx@gnu.org>
3889
3890 * config.in (HAVE_MKSTEMP): Add.
3891
3892 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
3893
3894 2000-11-07 Gerd Moellmann <gerd@gnu.org>
3895
3896 * window.c (Fset_window_configuration): Don't try to preserve
3897 point in the current buffer, if that buffer is displayed in more
3898 than one window.
3899
3900 * xfaces.c (lookup_named_face): If default face isn't realized,
3901 try to realize it. Return -1 if not successful.
3902 (Fx_list_fonts): Handle case that face cannot be determined.
3903 (Fface_font): Likewise.
3904
3905 2000-11-06 Gerd Moellmann <gerd@gnu.org>
3906
3907 * window.c (displayed_window_lines): Detect partially
3908 visible lines at the bottom correctly.
3909
3910 2000-11-06 Stefan Monnier <monnier@cs.yale.edu>
3911
3912 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
3913 when ensuring we don't do visit in indirect buffer.
3914
3915 2000-11-06 Kenichi Handa <handa@etl.go.jp>
3916
3917 * composite.h (compose_chars_in_text): Add prototype.
3918
3919 * composite.c (Vcomposition_function_table): New variable.
3920 (Qcomposition_function_table): New variable.
3921 (run_composition_function): Call
3922 Vcompose_chars_after_function with three arguments.
3923 (compose_chars_in_text): New function.
3924 (syms_of_composite): Modified the doc-string of
3925 Vcompose_chars_after_function. Declare composition-function-table
3926 as a lisp variable, and initialize it.
3927
3928 * xfns.c (x_encode_text): Suppress producing escape sequences for
3929 composition.
3930
3931 * xselect.c: Include composite.h.
3932 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
3933
3934 2000-11-05 Andrew Innes <andrewi@gnu.org>
3935
3936 * w32term.c (x_produce_glyphs): Fix typo in enum name.
3937
3938 * sysdep.c (read_input_waiting): Remove extraneous argument to
3939 read_socket_hook.
3940
3941 * w32fns.c (Fx_server_version): Include w32_build_number in the
3942 return list.
3943
3944 * w32heap.c (w32_build_number): New variable.
3945 (cache_system_info): Set it.
3946
3947 * w32heap.h (w32_build_number): Add extern.
3948
3949 * emacs.c (syms_of_emacs): Update docstring for
3950 system-configuration, to reflect the actual usage on MS-Windows.
3951
3952 2000-10-31 Gerd Moellmann <gerd@gnu.org>
3953
3954 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
3955 process idle timers while waiting for another event.
3956
3957 * dispnew.c (update_frame_line): Handle case where spaces in
3958 the default face are colored.
3959
3960 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
3961 window height hasn't changed.
3962
3963 2000-10-31 Jason Rumney <jasonr@gnu.org>
3964
3965 * w32term.c (x_produce_glyphs): Handle composite characters.
3966 (x_draw_glyph_string_foreground)
3967 (x_draw_composite_glyph_string_foreground): Restore old font.
3968
3969 2000-10-31 Miles Bader <miles@lsi.nec.co.jp>
3970
3971 * minibuf.c (read_minibuf): Reset the undo history just before
3972 starting the recursive-edit.
3973
3974 2000-10-30 Gerd Moellmann <gerd@gnu.org>
3975
3976 * xfaces.c (menu_face_change_count): New variable.
3977 (Finternal_set_lisp_face_attribute): Increment it for changes
3978 of the `menu' face.
3979 (realize_basic_faces): Reflect changes in the `menu' faces
3980 in menu bars.
3981
3982 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
3983 dy obtained from the iterator's y-position after moving from
3984 scroll_margin_pos to PT; see comment there.
3985
3986 * xdisp.c (safe_eval_handler): Call add_to_log.
3987
3988 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
3989 is not a symbol or string.
3990
3991 * xdisp.c (echo_area_display): Don't perform a display update from
3992 inside redisplay. The update will happen anyway at the end of
3993 redisplay, and it can confuse redisplay (GC messages while
3994 redisplaying, for instance.)
3995
3996 2000-10-30 Stefan Monnier <monnier@cs.yale.edu>
3997
3998 * xrdb.c (x_load_resources): Use the class name in the defaults.
3999
4000 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
4001 (regex_compile): Catch bogus \(\1\).
4002
4003 2000-10-30 Gerd Moellmann <gerd@gnu.org>
4004
4005 * xterm.c (x_alloc_nearest_color): Fix last change to compare
4006 RGB values.
4007
4008 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
4009 we have a color cache, check that the cached color equals the
4010 allocated color. If not, clear the color cache.
4011
4012 * window.c (displayed_window_lines): Change buffers if necessary.
4013 Fix computation of displayed lines.
4014
4015 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
4016 update_menu_bindings to DEFVAR_BOOL.
4017
4018 2000-10-30 Kenichi Handa <handa@etl.go.jp>
4019
4020 * search.c (Fset_match_data): Be sure to make search_regs always sane.
4021
4022 * puresize.h (BASE_PURESIZE): Increase to 680000.
4023
4024 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
4025
4026 2000-10-29 Jason Rumney <jasonr@gnu.org>
4027
4028 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
4029
4030 * w32term.c (w32_bdf_per_char_metric): Negate descent.
4031 (w32_cache_char_metrics): Handle possibility that 'x' does not
4032 exist in a BDF font.
4033 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
4034
4035 * w32bdf.h (bdffont): Add nchars.
4036
4037 * w32bdf.c (set_bdf_font_info): Set it.
4038 (w32_BDF_TextOut): Swap byte order of double byte characters.
4039 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
4040
4041 2000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
4042
4043 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
4044 don't override the colors in frame's param_alist, unless they are
4045 unspecified.
4046
4047 * term.c (reassert_line_highlight): If inverse_video is non-zero,
4048 reverse the effect of the highlight flag.
4049
4050 2000-10-27 Ken Raeburn <raeburn@gnu.org>
4051
4052 * window.h (Fwindow_live_p): Declare.
4053
4054 * undo.c (record_delete): Check that last_undo_buffer is really a
4055 buffer before applying XBUFFER to it.
4056
4057 * keymap.c (where_is_internal): Pass lisp object, not integer, to
4058 Faref.
4059
4060 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
4061
4062 * lisp.h (KEYMAPP): New macro.
4063 (get_keymap): Remove.
4064 (get_keymap_1): Rename get_keymap.
4065
4066 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
4067
4068 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
4069
4070 * xmenu.c (single_submenu): Use KEYMAPP.
4071 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
4072 Use KEYMAPP rather than Fkeymapp.
4073
4074 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
4075
4076 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
4077 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
4078 Use KEYMAPP rather than Fkeymapp.
4079 (single_submenu): Use KEYMAPP.
4080 (w32_menu_show, w32_dialog_show): Use TRUE.
4081
4082 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
4083
4084 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
4085 (Fkeymapp): Use KEYMAPP.
4086 (get_keymap): Rename from get_keymap_1. Remove old def.
4087 Return t when autoload=0 and error=0 and the keymap needs autoloading.
4088 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
4089 (Fminor_mode_key_binding): Don't raise an error if the binding
4090 is not a keymap.
4091 (Fuse_global_map, Fuse_local_map): Allow autoloading.
4092 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
4093
4094 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
4095 Allow Vspecial_event_map to be autoloaded.
4096 (menu_bar_items): Fetch the keymap rather than using keymapp.
4097 (menu_bar_one_keymap): No need to follow func-indirect any more.
4098 (parse_menu_item): get_keymap_1 -> get_keymap.
4099 (tool_bar_items): Fetch the keymap rather than using keymapp.
4100 (read_key_sequence): Use KEYMAPP.
4101
4102 * intervals.c (get_local_map): Use get_keymap rather than following
4103 function-indirections explicitly.
4104
4105 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
4106
4107 2000-10-27 Jason Rumney <jasonr@gnu.org>
4108
4109 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
4110 point, as Windows has oversized fonts.
4111
4112 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
4113
4114 2000-10-27 Gerd Moellmann <gerd@gnu.org>
4115
4116 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
4117 (freehook, reallochook): Handle null pointer arguments.
4118 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
4119
4120 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
4121
4122 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
4123 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
4124 Giving in to popular pressure to shut up the compiler with casts.
4125
4126 2000-10-27 Gerd Moellmann <gerd@gnu.org>
4127
4128 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
4129 signed value, and use a default value computed from the font's
4130 maximum descent.
4131
4132 2000-10-27 Miles Bader <miles@lsi.nec.co.jp>
4133
4134 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
4135 that specify a negative underline position can still use underlines.
4136
4137 * window.c (Fpos_visible_in_window_p): Make POS default to
4138 WINDOW's point, not the current buffer's point.
4139
4140 2000-10-26 Dave Love <fx@gnu.org>
4141
4142 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
4143 when it's necessary.
4144
4145 2000-10-26 Gerd Moellmann <gerd@gnu.org>
4146
4147 * window.c (size_window): Compute size difference from sum of old
4148 child window sizes instead of from parent's size.
4149
4150 * xdisp.c (pos_visible_p): Change current buffer if necessary.
4151 Handle obscured lines at the top of the window.
4152
4153 * frame.c (Fdelete_frame): Doc fix. Move running the hook
4154 down after the last error condition check.
4155
4156 * frame.c (Fdelete_frame): Run delete-frame-hook.
4157
4158 2000-10-26 Kenichi Handa <handa@etl.go.jp>
4159
4160 * coding.c (decode_coding): Fix previous change (check also
4161 CODING_MODE_LAST_BLOCK).
4162
4163 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
4164
4165 * regex.c: More `unsigned char' -> `re_char' changes.
4166 Also change several `int' into `re_wchar_t'.
4167 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
4168 (PUSH_FAILURE_POINTER): Don't cast any more.
4169 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
4170 We want GCC to complain, since this piece of code makes
4171 re_match non-reentrant, which *should* be fixed.
4172 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
4173 (EXTEND_BUFFER): Use RETALLOC.
4174 (SET_LIST_BIT): Don't cast.
4175 (re_wchar_t): New type.
4176 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
4177 that those two functions will always properly return.
4178 (IMMEDIATE_QUIT_CHECK): Cast to void.
4179 (analyse_first): Use recursion rather than an explicit stack.
4180 (re_compile_fastmap): Can't fail anymore.
4181 (re_search_2): Don't check re_compile_fastmap for failure.
4182 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
4183 Now also sets the new value (passed in a new argument).
4184 (re_match_2_internal): Use it.
4185 Also, use a new var `reg' of type size_t when looping through regs
4186 rather than reuse the inappropriate `mcnt'.
4187
4188 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
4189 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
4190 (where_is_internal): Renamed from Fwhere_is_internal.
4191 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
4192 (Fwhere_is_internal): New function wrapping where_is_internal.
4193 (where_is_internal_1): Handle the case where we're filling the cache.
4194 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
4195
4196 2000-10-25 Miles Bader <miles@gnu.org>
4197
4198 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
4199
4200 2000-10-25 Gerd Moellmann <gerd@gnu.org>
4201
4202 * window.c (pos_fully_visible_p): Removed.
4203 (Fpos_visible_in_window_p): Use pos_visible_p to determine
4204 if position is visible and/or fully visible.
4205
4206 * lisp.h (pos_visible_p): Add prototype.
4207
4208 * xdisp.c (pos_visible_p): New function.
4209
4210 2000-10-25 Kenichi Handa <handa@etl.go.jp>
4211
4212 * process.c (send_process): If OBJECT is t, it means that the data
4213 is from C string, but we should encode it. Before calling
4214 setup_raw_text_coding_system, be sure to flush out data by the
4215 previous coding system.
4216
4217 2000-10-25 Miles Bader <miles@lsi.nec.co.jp>
4218
4219 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
4220 assignment of startpos to prev when startpos == pos.
4221
4222 * editfns.c (find_field): Set the field stickiness correctly from
4223 overlay fields. Use renamed `text_property_stickiness'.
4224 (text_property_stickiness): Renamed from `char_property_stickiness'.
4225 Only check text properties, not overlays.
4226 * textprop.c (get_char_property_and_overlay): New function.
4227 (Fget_char_property): Use it.
4228 * intervals.h (get_char_property_and_overlay): Add declaration.
4229
4230 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
4231
4232 * keymap.c: Use AREF, ASET and ASIZE macros.
4233 (Fmake_sparse_keymap): Docstring fix.
4234 (synkey): Remove.
4235 (shadow_lookup): Move up.
4236 Handle the case where lookup-key returns an integer.
4237 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
4238 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
4239 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
4240 Simplify/rewrite the keymap-finding code.
4241 Add check for command shadowing, using shadow_lookup.
4242
4243 2000-10-24 Stefan Monnier <monnier@cs.yale.edu>
4244
4245 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
4246 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
4247 a symbol.
4248
4249 2000-10-24 Andrew Innes <andrewi@gnu.org>
4250
4251 * dired.c (directory_files_internal_unwind): New function.
4252 (directory_files_internal): Use it to ensure closedir is called
4253 even if expand-file-name or file-attributes throw, eg. because of
4254 a user interrupt. Also enable immediate_quit while calling
4255 re_search, so that matching can be interrupted as well.
4256
4257 2000-10-24 Andrew Innes <andrewi@gnu.org>
4258
4259 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
4260 NT-Emacs only.
4261 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
4262 so that re_search functions only quit when callers expect them to.
4263
4264 2000-10-24 Kenichi Handa <handa@etl.go.jp>
4265
4266 * regex.c (regex_compile): Change the way of handling a range from
4267 a char less than 256 to a char not less than 256.
4268
4269 2000-10-24 Gerd Moellmann <gerd@gnu.org>
4270
4271 * window.c (size_window): Prevent setting window's width or
4272 height to a negative value (esp. with XSETFASTINT).
4273
4274 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
4275 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
4276 (protect_malloc_state) [GC_MALLOC_CHECK &&
4277 GC_PROTECT_MALLOC_STATE]: New function.
4278 (PROTECT_MALLOC_STATE): New macro.
4279 (__malloc_initialize, morecore, _malloc_internal)
4280 (_free_internal) _realloc_internal): Use it to make _heapinfo
4281 read-only outside of gmalloc.
4282
4283 * keymap.c: Update copyright.
4284
4285 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
4286 a symbol.
4287
4288 2000-10-24 Colin Walters <walters@cis.ohio-state.edu>
4289
4290 * filelock.c (unlock_all_files): Use unlock_file to expand each
4291 buffer's file_truename before trying remove its lock file.
4292
4293 2000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
4294
4295 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
4296 or CRLF, decode EOLs.
4297
4298 2000-10-24 Kenichi Handa <handa@etl.go.jp>
4299
4300 * window.c (Fdisplay_buffer): Fix doc.
4301
4302 2000-10-23 Jason Rumney <jasonr@gnu.org>
4303
4304 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
4305 ASCII font of default fontset on Windows.
4306
4307 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
4308 xterm.c comment below).
4309
4310 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
4311
4312 2000-10-23 Gerd Moellmann <gerd@gnu.org>
4313
4314 * xterm.c (x_connection_closed): Reset handling_signal.
4315
4316 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing null.
4317
4318 2000-10-23 Miles Bader <miles@gnu.org>
4319
4320 * window.c (window_scroll_pixel_based, window_scroll_line_based):
4321 Pass nil for FULLY argument to Fpos_visible_in_window_p to
4322 maintain old behavior.
4323 * minibuf.c (Fminibuffer_complete): Likewise.
4324
4325 2000-10-23 Miles Bader <miles@lsi.nec.co.jp>
4326
4327 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
4328 that when a font can't be exactly centered, it errs up rather than
4329 down.
4330
4331 2000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
4332
4333 * fns.c (Fbase64_decode_string): The decoded result should be unibyte.
4334
4335 2000-10-23 Andrew Choi <akochoi@i-cable.com>
4336
4337 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
4338
4339 * dispnew.c [macintosh]: Include macterm.h.
4340 (init_display) [macintosh]: Initialization for window system.
4341
4342 * emacs.c (main) [macintosh]: Call syms_of_textprop,
4343 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
4344 syms_of_search, x_term_init, and init_keyboard before calling
4345 init_window_once. Also, call syms_of_xmenu.
4346
4347 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
4348 default fontset to Monaco.
4349
4350 * frame.c [macintosh]: Include macterm.h. Remove declarations of
4351 NewMacWindow and DisposeMacWindow.
4352 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
4353 instead of calling NewMacWindow and setting fields of
4354 f->output_data.mac directly. Call init_frame_faces.
4355 (Fdelete_frame) [macintosh]: Remove unused code.
4356 (Fmodify_frame_parameters) [macintosh]: Call
4357 x_set_frame_parameters instead of mac_set_frame_parameters.
4358
4359 * frame.h [macintosh]: Define menu_bar_lines field in struct
4360 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
4361
4362 * keyboard.c [macintosh]: Include macterm.h.
4363 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
4364 and menu_bar_activate_event type events as for X and NT.
4365 (make_lispy_event) [macintosh]: Construct lisp events of type
4366 MENU_BAR_EVENT as for X and NT.
4367
4368 * sysdep.c [macintosh]: Remove declaration for sys_signal.
4369 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
4370 (sys_subshell) [macintosh]: Remove definition entirely.
4371 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
4372 Vwindow_system_version here. Remove initialization of
4373 Vx_bitmap_file_path.
4374 (read_input_waiting): Correct the number of parameters passed to
4375 read_socket_hook.
4376 Move all Macintosh functions to mac/mac.c.
4377
4378 * term.c [macintosh]: Include macterm.h.
4379
4380 * window.c [macintosh]: Include macterm.h.
4381
4382 * xdisp.c [macintosh]: Include macterm.h. Declare
4383 set_frame_menubar and pending_menu_activation.
4384 (echo_area_display) [macintosh]: Do not return if terminal frame
4385 is the selected frame.
4386 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
4387 Allow only the selected frame to set menu bar.
4388 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
4389 calling FRAME_EXTERNAL_MENU_BAR (f).
4390 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
4391
4392 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
4393 and check_x. Declare XCreateGC. Define x_create_gc and
4394 x_free_gc. Initialize font_sort_order.
4395 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
4396 but call x_list_fonts instead of w32_list_fonts.
4397 (Finternal_face_x_get_resource) [macintosh]: Do not call
4398 display_x_get_resource.
4399 (prepare_face_for_display) [macintosh]: Set xgcv.font.
4400 (realize_x_face) [macintosh]: Load the font if it is specified in
4401 ATTRS.
4402 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed to Qt.
4403
4404 2000-10-22 Stefan Monnier <monnier@cs.yale.edu>
4405
4406 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
4407 is nil: since we go to the end of submap anyway, we'd end up
4408 setting nil to nil.
4409 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
4410 doesn't obey autoload.
4411
4412 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
4413
4414 * msdos.c (dos_set_window_size): Update screen dimension variables.
4415
4416 2000-10-21 Jason Rumney <jasonr@gnu.org>
4417
4418 * w32term.c (w32_cache_char_metrics): Double check that font is
4419 really fixed pitch before trusting tmPitchAndFamily.
4420
4421 2000-10-21 Andrew Innes <andrewi@gnu.org>
4422
4423 * w32gui.h (w32_char_font_type): Move enum from w32term.c
4424
4425 * w32term.h: Extern decl for w32_cache_char_metrics.
4426
4427 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
4428
4429 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
4430 (w32_unload_font): Free per_char array if present.
4431
4432 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
4433 cached information in emulated XFontStruct to handle common cases
4434 quickly. Do not allocate XCharStruct for return.
4435 (w32_native_per_char_metric): New function.
4436 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
4437 allocating one.
4438 (x_produce_glyphs): Don't get an HDC. Change calls to
4439 w32_per_char_metric to match arg change above. Remove calls to
4440 free results.
4441 (w32_get_glyph_overhangs): Ditto.
4442 (w32_cache_char_metrics): New function.
4443
4444 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
4445 ($(BLD)/casefiddle.$(O)): Remove compile command.
4446 ($(BLD)/gmalloc.$(O)): Remove compile command.
4447 ($(BLD)/dispnew.obj):
4448 ($(BLD)/keyboard.obj):
4449 ($(BLD)/w32inevt.obj):
4450 ($(BLD)/w32bdf.obj):
4451 ($(BLD)/alloc.obj):
4452 ($(BLD)/buffer.obj):
4453 ($(BLD)/editfns.obj):
4454 ($(BLD)/emacs.obj):
4455 ($(BLD)/fileio.obj):
4456 ($(BLD)/fns.obj):
4457 ($(BLD)/indent.obj):
4458 ($(BLD)/insdel.obj):
4459 ($(BLD)/intervals.obj):
4460 ($(BLD)/minibuf.obj):
4461 ($(BLD)/print.obj):
4462 ($(BLD)/scroll.obj):
4463 ($(BLD)/sysdep.obj):
4464 ($(BLD)/textprop.obj):
4465 ($(BLD)/widget.obj):
4466 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
4467 ($(BLD)/term.obj): Add dependency on dispextern.h.
4468
4469 * makefile.nt ($(BLD)\dispnew.obj):
4470 ($(BLD)\keyboard.obj):
4471 ($(BLD)\w32inevt.obj):
4472 ($(BLD)\w32bdf.obj):
4473 ($(BLD)\alloc.obj):
4474 ($(BLD)\buffer.obj):
4475 ($(BLD)\editfns.obj):
4476 ($(BLD)\emacs.obj):
4477 ($(BLD)\fileio.obj):
4478 ($(BLD)\fns.obj):
4479 ($(BLD)\indent.obj):
4480 ($(BLD)\insdel.obj):
4481 ($(BLD)\intervals.obj):
4482 ($(BLD)\minibuf.obj):
4483 ($(BLD)\print.obj):
4484 ($(BLD)\scroll.obj):
4485 ($(BLD)\sysdep.obj):
4486 ($(BLD)\textprop.obj):
4487 ($(BLD)\widget.obj):
4488 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
4489 ($(BLD)\term.obj): Add dependency on dispextern.h
4490
4491 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
4492
4493 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
4494 with an additional argument of Qt.
4495
4496 2000-10-21 Miles Bader <miles@gnu.org>
4497
4498 * window.c (pos_fully_visible_in_window_p): New function.
4499 (Fpos_visible_in_window_p): Add FULLY argument.
4500 Use pos_fully_visible_in_window_p.
4501 (window_scroll_pixel_based, window_scroll_line_based): Update
4502 calls to Fpos_visible_in_window_p.
4503 * lisp.h (Fpos_visible_in_window_p): Update prototype
4504
4505 2000-10-20 Gerd Moellmann <gerd@gnu.org>
4506
4507 * alloc.c (toplevel): Conditionalize compilation of mem_*
4508 functions differently.
4509
4510 2000-10-20 Jason Rumney <jasonr@gnu.org>
4511
4512 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
4513 mem_init where it used to be. mem_z etc not defined otherwise.
4514
4515 2000-10-20 Gerd Moellmann <gerd@gnu.org>
4516
4517 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
4518 GC_MALLOC_CHECK.
4519 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
4520 structure definition and related variabled to the top of the file.
4521 Include this code when GC_MALLOC_CHECK is defined.
4522 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
4523 register/unregister allocated region.
4524 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
4525 which isn't allocated.
4526 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
4527 something which is already in use.
4528 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
4529 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
4530 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
4531 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
4532
4533 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
4534 _malloc_internal instead of malloc.
4535 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
4536 of free.
4537
4538 2000-10-20 Andrew Innes <andrewi@gnu.org>
4539
4540 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
4541 Windows.
4542 (my_strftime) <macro>: Don't use macro arg list when redefining as
4543 _strftime_copytm.
4544 (my_strftime) <function>: Supply 0 as ut argument.
4545
4546 2000-10-19 Jason Rumney <jasonr@altavista.net>
4547
4548 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
4549 including dispextern.h, as it stops faces from working.
4550
4551 * w32fns.c (Fx_create_frame): Don't bother calling
4552 face-set-after-frame-default since the caller does it for us
4553 anyway. Clean up calls to x_get_arg to be consistent with X.
4554
4555 * w32term.c (x_produce_glyphs): Handle
4556 unibyte_display_via_language_environment correctly.
4557 (w32_draw_box_rect): Fix the calculation of width and height.
4558
4559 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
4560 as it has stopped working.
4561 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
4562 menu-bar.
4563
4564 2000-10-19 Gerd Moellmann <gerd@gnu.org>
4565
4566 * eval.c (skip_debugger): Prevent a compiler warning.
4567 (Fcondition_case): Likewise.
4568 (Fbacktrace_frame): Use a null interactive spec.
4569
4570 2000-10-19 Kenichi Handa <handa@etl.go.jp>
4571
4572 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
4573
4574 2000-10-18 Gerd Moellmann <gerd@gnu.org>
4575
4576 * strftime.c: Sync with glibc, file version 1.78.
4577 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
4578 should no longer be used according to ISO 8601.
4579
4580 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
4581 no map for meta_prefix_char, don't try to use it as a keymap.
4582 Instead, if T_OK is non-zero, look up a default binding, if any,
4583 otherwise, if T_OK is zero, return nil.
4584
4585 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
4586 (x_to_xcolors, png_load): Use x_query_color.
4587
4588 * xterm.c (x_color_cells, x_query_colors, x_query_color):
4589 New functions.
4590 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
4591 which can be slow.
4592 (x_copy_color, x_alloc_lighter_color): Likewise.
4593
4594 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
4595 (x_query_color, x_query_colors): Add prototype.
4596
4597 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
4598 check_string_bytes only if not noninteractive, increase count to 50.
4599
4600 2000-10-18 Miles Bader <miles@lsi.nec.co.jp>
4601
4602 * insdel.c (adjust_markers_for_delete): Handle before-insertion
4603 markers correctly.
4604
4605 2000-10-17 Gerd Moellmann <gerd@gnu.org>
4606
4607 * alloc.c (pure_bytes_used): Renamed from pureptr.
4608 (ALIGN): New macro.
4609 (pure_alloc): New function.
4610 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
4611 Use it.
4612 (Fpurecopy): Use PURE_POINTER_P.
4613
4614 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
4615 PT has moved backward.
4616
4617 * xdisp.c (cursor_row_p): Take continued lines into account.
4618
4619 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
4620 string's size_byte.
4621 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
4622 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
4623 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
4624 string allocated.
4625
4626 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
4627 of selective display off while searching for the next line start.
4628
4629 2000-10-17 Kenichi Handa <handa@etl.go.jp>
4630
4631 * Makefile.in (term.o): Depend on dispextern.h.
4632
4633 2000-10-16 Stefan Monnier <monnier@cs.yale.edu>
4634
4635 * keymap.c (keymap_memberp): Ensure that nil is not a member.
4636
4637 2000-10-16 Gerd Moellmann <gerd@gnu.org>
4638
4639 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
4640 the iterator at the beginning, so that they can be set later on,
4641 for instance in reseat_at_next_visible_line_start, without being
4642 overwritten.
4643
4644 * xfns.c (pbm_format): Add :foreground and :background keywords.
4645 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
4646 (xbm_load): Recognize foreground and background color specifications.
4647
4648 2000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
4649
4650 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
4651
4652 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern declaration.
4653
4654 * msdos.c (IT_set_face): Compare highlighted face with the default
4655 face, and invert colors if these faces' colors are identical.
4656 (Fmsdos_remember_default_colors): Don't swap foreground and
4657 background colors in initial_colors[].
4658 (IT_set_frame_parameters): Don't swap frame's foreground and
4659 background pixels. If ALIST includes "(reverse . t)", swap
4660 foreground-color and background-color properties in frame's
4661 param_alist. If the original frame's param_alist doesn't specify
4662 the colors, store unspecified-fg and unspecified-bg, reversed if
4663 required.
4664
4665 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
4666 the colors are unspecified and reversed, reverse fore- and back-
4667 ground in the returned value.
4668 (Fframe_parameter): Ditto.
4669
4670 2000-10-16 Gerd Moellmann <gerd@gnu.org>
4671
4672 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
4673 get_last_unchanged_at_beg_row.
4674 (find_first_unchanged_at_end_row): Renamed from
4675 get_first_unchanged_at_end_row.
4676 (find_first_unchanged_at_end_row): Convert assertions to
4677 unconditional tests which abort. When looking for a row in
4678 unchanged text, don't go further back than first_text_row.
4679
4680 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
4681 Don't add in the last line's height when deciding if the new
4682 position is below the scroll margin.
4683
4684 2000-10-16 Miles Bader <miles@gnu.org>
4685
4686 * editfns.c (Fconstrain_to_field): Check carefully for field
4687 boundaries if either OLD_POS or NEW_POS has a non-nil field
4688 property, even if they're the same.
4689
4690 2000-10-16 Kenichi Handa <handa@etl.go.jp>
4691
4692 * xterm.c (x_draw_box_rect): Fix the calculation of width and
4693 height for XFillRectangle.
4694
4695 2000-10-15 Stefan Monnier <monnier@cs.yale.edu>
4696
4697 * syntax.c (Fstring_to_syntax): New function extracted from
4698 Fmodify_syntax_entry.
4699 (Fmodify_syntax_entry): Use it and document the ! and | fences.
4700 (skip_chars, Fforward_comment): Remove unused variables.
4701 (syms_of_syntax): Add defsubr for string-to-syntax.
4702 (describe_syntax): Add code for comment and string fences.
4703
4704 2000-10-14 Stefan Monnier <monnier@cs.yale.edu>
4705
4706 * keymap.c (access_keymap): Add AUTOLOAD parameter.
4707 Do the meta->esc mapping. Call get_keyelt before returning.
4708 Start scanning from the second element (the first is always `keymap')
4709 to make it easier to detect when we reach a parent map.
4710 Handle the case of inheriting from a symbol whose function is a map.
4711 (Fkeymap_parent): Also handle the `inherit from symbol' case.
4712 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
4713 (get_keyelt, Flookup_key): Update call to access_keymap.
4714 Remove the meta->esc mappings.
4715 (define_as_prefix): Delete old disabled code.
4716 (menu_item_p): New function.
4717 (where_is_internal_1): Skip over the few remaining menu items.
4718 * lisp.h (access_keymap): Update prototype.
4719 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
4720 Update call to access_keymap.
4721 (follow_key, read_key_sequence): Update calls to access_keymap.
4722 Remove the meta->esc mappings.
4723
4724 2000-10-13 Gerd Moellmann <gerd@gnu.org>
4725
4726 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
4727 with additional argument.
4728
4729 * xdisp.c (cursor_row_p): New function.
4730 (try_cursor_movement, display_line): Use it.
4731
4732 * xdisp.c (append_space): Also save/restore iterator's current
4733 character and its length.
4734
4735 * xdisp.c (init_from_display_pos): Add an assertion.
4736 (handle_stop): Don't set iterator's add_overlay_start.
4737 (handle_invisible_prop): Likewise.
4738 (load_overlay_strings): If text under an overlay is invisible,
4739 take both before- and after-strings into account when the iterator
4740 is positioned either at the start or at the end of the overlay.
4741 (forward_to_next_line_start): Rewritten.
4742 (reseat_at_next_visible_line_start): Rewritten.
4743 (set_iterator_to_next): Add parameter RESEAT_P.
4744
4745 * dispextern.h (struct it): Remove member add_overlay_start.
4746 (set_iterator_to_next): Change prototype.
4747
4748 2000-10-13 Kenichi Handa <handa@etl.go.jp>
4749
4750 * coding.c (code_convert_region): Be sure to initialize
4751 coding->category_idx.
4752 (decode_coding_string): Set coding->src_multibyte and
4753 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
4754 (encode_coding_string): Set coding->src_multibyte and
4755 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
4756
4757 2000-10-12 Stefan Monnier <monnier@cs.yale.edu>
4758
4759 * xfns.c (Fx_create_frame): Don't bother calling
4760 face-set-after-frame-default since the caller does it for us anyway.
4761
4762 2000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
4763
4764 * window.c (coordinates_in_window): Fix detection of vertical line
4765 on character terminals.
4766
4767 2000-10-12 Gerd Moellmann <gerd@gnu.org>
4768
4769 * editfns.c (save_excursion_save): Additionally record the
4770 selected window.
4771 (save_excursion_restore): If buffer was visible in a window, and a
4772 different window was selected, and the old selected window is
4773 still live, restore point in that window.
4774
4775 2000-10-12 Kenichi Handa <handa@etl.go.jp>
4776
4777 * xterm.c (x_produce_glyphs): Handle
4778 unibyte_display_via_language_environment correctly.
4779
4780 * regex.c (regex_compile): Change the way of handling a range from
4781 unibyte char to multibyte char.
4782
4783 * syntax.c (skip_chars): Change the way of handling a range from
4784 unibyte char to multibyte char.
4785
4786 * process.c (read_process_output): Cancel previous change.
4787
4788 2000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
4789
4790 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
4791
4792 * charset.c (Ffind_charset_string): Doc fix.
4793 (Ffind_charset_region): Doc fix.
4794
4795 2000-10-11 Kenichi Handa <handa@mule.m17n.org>
4796
4797 * process.c (read_process_output): Fix previous change. Adjust
4798 multibyteness of text to insert in a buffer by
4799 string_make_unibyte/multibyte instead of Fstring_as_unibyte/multibyte.
4800
4801 2000-10-10 Andreas Schwab <schwab@suse.de>
4802
4803 * alloc.c (mark_object): Remove all workarounds installed on
4804 1993-08-08.
4805
4806 2000-10-10 Kenichi Handa <handa@etl.go.jp>
4807
4808 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before returning.
4809 (base64_encode_1): Make it work for a text of multibyte form.
4810 (Fbase64_decode_region): Allocate sufficient memory for multibyte
4811 case. Don't call str_to_multibyte because base64_decode_1
4812 produces correct multibyte form for eight-bit codes.
4813 (Fbase64_decode_string): Adjusted for the change of base64_decode_1.
4814 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
4815 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
4816 codes.
4817
4818 * charset.h (CHAR_STRING): Optimized for single byte characters.
4819
4820 2000-10-09 Andreas Schwab <schwab@suse.de>
4821
4822 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
4823 -1 after socket is closed, to fall through to error processing.
4824
4825 2000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
4826
4827 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
4828 variables. If ALIST includes foreground-color or
4829 background-color, change also the colors of the default face for
4830 this frame.
4831
4832 2000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
4833
4834 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
4835 them extern (they are defined on xfaces.c).
4836 (syms_of_msdos): Don't intern and don't staticpro
4837 Qbackground_color and Qforeground_color.
4838
4839 2000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
4840
4841 * frame.c (Fframe_parameter): For non-windowed frames, if
4842 f->param_alist says foreground or background color is unspecified,
4843 call tty_color_name to return the color name computed from the
4844 frame's current colors.
4845
4846 2000-10-06 Dave Love <fx@gnu.org>
4847
4848 * terminfo.c (ospeed): Don't declare.
4849
4850 * sysdep.c: Don't include string.h.
4851 (h_errno): Declare conditional also on TRY_AGAIN.
4852
4853 * charset.c (Ffind_charset_string): Doc fix.
4854
4855 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
4856 (Fbase64_decode_region, Fbase64_decode_string): More explicit
4857 error messages.
4858
4859 2000-10-05 Dave Love <fx@gnu.org>
4860
4861 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
4862 position like menu-bar.
4863
4864 2000-10-05 Gerd Moellmann <gerd@gnu.org>
4865
4866 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
4867
4868 * xdisp.c (handle_single_display_prop): Use safe_call1.
4869 (safe_call): Renamed from call_function.
4870 (safe_call1): New function.
4871 (handle_fontified_prop): Use safe_call1 instead of call1.
4872 (safe_eval): Renamed from eval_form.
4873 (safe_eval_handler): Renamed from eval_handler.
4874 (handle_single_display_prop, display_mode_element): Use safe_eval
4875 instead of eval_form.
4876
4877 * xfaces.c (merge_face_heights): Use safe_call instead of
4878 call_function.
4879
4880 * keyboard.c (show_help_echo): Use safe_call instead of
4881 call_function; use safe_eval instead of eval_form.
4882
4883 * lisp.h (safe_call): Renamed from call_function.
4884 (safe_eval): Renamed from eval_form.
4885 (safe_call1): Add prototype.
4886
4887 2000-10-05 Miles Bader <miles@lsi.nec.co.jp>
4888
4889 * xfns.c (image_ascent): Rearrange ascent calculation for the
4890 has-a-font case.
4891
4892 2000-10-04 Stefan Monnier <monnier@cs.yale.edu>
4893
4894 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
4895 (where_is_internal_1): Don't bother ignoring menu-items any more.
4896
4897 2000-10-04 Gerd Moellmann <gerd@gnu.org>
4898
4899 * keyboard.c (update_menu_bindings): New variable.
4900 (parse_menu_item): Use AREF. If update_menu_bindings
4901 is 0, don't update menu bindings.
4902 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
4903
4904 2000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
4905
4906 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
4907 to `mark_object'.
4908
4909 2000-10-02 Stefan Monnier <monnier@cs.yale.edu>
4910
4911 * syntax.c (forw_comment): Match nestedness of ender/starter.
4912 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
4913 (prev_char_comstart_first): Remove.
4914 (back_comment): Check two-char comment markers more carefully
4915 to better handle overlapping cases like *//* or /* */* */ ...
4916 Match nestedness of ender/starter.
4917
4918 2000-10-02 Dave Love <fx@gnu.org>
4919
4920 * config.in (HAVE_GAI_STRERROR): Add undef.
4921
4922 * process.c (Fopen_network_stream): Use it.
4923
4924 * m/alpha.h (NO_REMAP): Don't define.
4925
4926 2000-10-02 Gerd Moellmann <gerd@gnu.org>
4927
4928 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
4929 return with a string converted to an integer or vice versa when
4930 Vmocklisp_arguments is t.
4931 (Fsignal): Likewise. The function can return for `quit'.
4932 (struct gcpro): Declare member `var' to point to a volatile
4933 Lisp_Object.
4934
4935 * eval.c (error): Prevent compiler warning.
4936
4937 2000-09-30 Stefan Monnier <monnier@cs.yale.edu>
4938
4939 * keymap.c (keymap_memberp): New function.
4940 (Fset_keymap_parent): Use it.
4941 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
4942 Use keymap_memberp to avoid creating cycles.
4943 (access_keymap): Use KEYMAPP.
4944
4945 2000-09-30 Gerd Moellmann <gerd@gnu.org>
4946
4947 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
4948 gai_strerror. Make sure xerrno is set if connect fails. Improve
4949 error recovery.
4950
4951 2000-09-29 Jason Rumney <jasonr@gnu.org>
4952
4953 * w32term.c (w32_char_font_type, w32_encode_char)
4954 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
4955 (w32_bdf_per_char_metric): New function.
4956 (w32_per_char_metric): Use it.
4957 (x_draw_glyph_string_background): Always draw background for BDF
4958 glyphs.
4959
4960 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
4961 GDI object which is a scarce resource.
4962
4963 * w32bdf.c (search_file_line): Fix skipping of whitespace.
4964 (get_quoted_string): Fix limit on memchr search.
4965 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
4966 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
4967 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
4968 (get_cached_font_char, cache_char_offset): Use macro
4969 BDF_CODEPOINT_RANGE_COVER_P.
4970 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
4971 (clear_cached_bitmap_slots): New function.
4972 (GET_HEX_VALUE): G-Z, g-z are not hex.
4973 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
4974 (get_bitmap_with_cache): Use new cache implementation.
4975 (create_offscreen_bitmap): New function.
4976 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
4977
4978 * w32term.c (x_produce_glyphs): If the distance from the current
4979 position to the next tab stop is less than a canonical character
4980 width, use the tab stop after that.
4981 (x_draw_glyphs): Handle case START and END are out of bounds more
4982 carefully.
4983 (x_clear_mouse_face): Block/unblock input.
4984 (x_display_and_set_cursor): Don't show a hollow box cursor for
4985 buffers whose cursor_type is nil.
4986
4987 2000-09-29 Gerd Moellmann <gerd@gnu.org>
4988
4989 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar disappears.
4990
4991 * dispextern.h (updating_frame): Declare extern.
4992
4993 2000-09-29 Andreas Schwab <schwab@suse.de>
4994
4995 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
4996
4997 2000-09-29 Gerd Moellmann <gerd@gnu.org>
4998
4999 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
5000 use its function definition.
5001 (tool_bar_items): Likewise.
5002
5003 * lisp.h (fatal): Declare NO_RETURN.
5004
5005 2000-09-29 Kenichi Handa <handa@etl.go.jp>
5006
5007 * keymap.c: Remove the line "#undef NULL".
5008
5009 2000-09-28 Gerd Moellmann <gerd@gnu.org>
5010
5011 * xterm.c (x_make_frame_visible): Try harder to make the frame visible.
5012
5013 2000-09-28 Dave Love <fx@gnu.org>
5014
5015 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
5016
5017 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
5018
5019 * .gdbinit (xreload): Note its need on GNU/Linux.
5020
5021 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
5022 r_alloc, r_alloc_free.
5023
5024 2000-09-28 Kenichi Handa <handa@etl.go.jp>
5025
5026 * syntax.c (skip_chars): Handle negation correctly.
5027
5028 2000-09-27 Gerd Moellmann <gerd@gnu.org>
5029
5030 * xfaces.c (realize_default_face): Call set_lface_from_font_name
5031 with non-zero FORCE_P argument.
5032
5033 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
5034 Add assertions.
5035
5036 * xdisp.c (window_box_height): Add an assertion.
5037
5038 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
5039 tool-bar than is available.
5040 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
5041
5042 2000-09-27 Dave Love <fx@gnu.org>
5043
5044 * s/irix6-5.h: Now works 64-bit. Tidied.
5045
5046 2000-09-26 Gerd Moellmann <gerd@gnu.org>
5047
5048 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
5049 instead of BITS_PER_INT.
5050 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
5051 EMACS_UINT, respectively.
5052 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
5053
5054 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
5055
5056 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
5057
5058 * window.c (freeze_window_starts): Construct last argument for
5059 foreach_window differently.
5060
5061 * xfns.c (x_decode_color): Don't return a Lisp_Object.
5062
5063 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
5064 EMACS_UINT instead of `int' and `unsigned int'.
5065 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
5066
5067 * frame.h (struct frame): Make the `nothing' member of union
5068 output_data an EMACS_INT.
5069
5070 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug hunting.
5071 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
5072 size in the sdata structure.
5073 (SDATA_NBYTES, SDATA_DATA): New macros.
5074 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
5075 differently for the different layout of the sdata structure.
5076 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
5077 in sdata.
5078 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
5079 Check that size recorded in the string size and size recorded in
5080 the sdata structure agree.
5081
5082 2000-09-25 Dave Love <fx@gnu.org>
5083
5084 * buffer.c: Include stdio.h.
5085
5086 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
5087
5088 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
5089
5090 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
5091 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as size_t.
5092 (__malloc_extra_blocks): Declare as __malloc_size_t.
5093
5094 2000-09-25 Gerd Moellmann <gerd@gnu.org>
5095
5096 * alloc.c (mark_image): Use GC_NILP instead of NILP.
5097
5098 * keyboard.c (show_help_echo): Set help_echo_showing_p.
5099 (read_char): If help-echo is showing, preserve the echo area
5100 when redisplaying.
5101
5102 * xdisp.c (help_echo_showing_p): New variable.
5103 (set_message): Reset it to 0.
5104 (init_xdisp): Initialize help_echo_showing_p.
5105
5106 * dispextern.h (help_echo_showing_p): Declare extern.
5107
5108 * config.in: Fix typo in __GNUC_MINOR__.
5109
5110 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
5111
5112 * s/freebsd.h (POSIX_SIGNALS): Define.
5113
5114 * xterm.c (x_clear_mouse_face): Block/unblock input.
5115
5116 2000-09-24 Dave Love <fx@gnu.org>
5117
5118 * fns.c (base64_encode_1): Fix last change.
5119
5120 2000-09-22 Gerd Moellmann <gerd@gnu.org>
5121
5122 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
5123
5124 * xdisp.c (try_window_reusing_current_matrix): More fixes
5125 for the case window has a header-line.
5126
5127 2000-09-22 Dave Love <fx@gnu.org>
5128
5129 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
5130 a doc string.
5131
5132 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
5133
5134 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
5135
5136 2000-09-21 Gerd Moellmann <gerd@gnu.org>
5137
5138 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
5139 for GCC >= 2.5.
5140
5141 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error):
5142 Declare NO_RETURN.
5143
5144 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
5145 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
5146 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
5147 warnings.
5148
5149 * marker.c (byte_char_debug_check): Return void.
5150
5151 * xfns.c (Fx_create_frame): Set default frame parameter value
5152 for tool-bar-lines to 1.
5153
5154 * dispnew.c (scrolling_window): Compare y-positions of rows
5155 equal at the start. Some simplification.
5156
5157 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
5158 reused rows' y-position in the case window has a header-line, and
5159 new window start is greater than old window start.
5160
5161 * process.c (process_sent_to): New variable.
5162 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
5163 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
5164 Declare more parameters volatile.
5165
5166 * lread.c (Vrecursive_load_depth_limit): New variable.
5167 (Fload): Check recursive loads whose recursion depth exceeds
5168 Vrecursive_load_depth_limit.
5169 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
5170
5171 2000-09-20 Gerd Moellmann <gerd@gnu.org>
5172
5173 * fileio.c (Fread_file_name): Doc fix.
5174
5175 * editfns.c (Fmessage_or_box): Doc fix.
5176
5177 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
5178
5179 * xfns.c (xbm_scan): Allow C-style comments.
5180
5181 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
5182 symbols are specified, add color translations to the cache.
5183 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New functions.
5184 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
5185 xpm_cache_color.
5186 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
5187 structures to xpm_init_color_cache.
5188
5189 2000-09-19 Gerd Moellmann <gerd@gnu.org>
5190
5191 * dispnew.c (update_window_line): Make sure to always draw mode-lines.
5192
5193 2000-09-19 Andrew Innes <andrewi@gnu.org>
5194
5195 * makefile.nt (bootstrap-emacs): Don't change directory.
5196
5197 2000-09-19 Kenichi Handa <handa@etl.go.jp>
5198
5199 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
5200
5201 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
5202 If output buffer is too small, signal an appropriated error.
5203
5204 2000-09-18 Dave Love <fx@gnu.org>
5205
5206 * keyboard.c (menu_bar_items, tool_bar_items)
5207 (current_active_maps): Remove redundant get_local_map call.
5208
5209 2000-09-18 Gerd Moellmann <gerd@gnu.org>
5210
5211 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
5212 cursor for buffers whose cursor_type is nil.
5213
5214 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
5215 a feature to implement that is already implemented.
5216 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
5217 warnings.
5218
5219 * xfns.c (x_clear_image_1): New function.
5220 (x_clear_image): Use it.
5221 (x_from_xcolors): Use x_clear_image_1; don't free the image's mask.
5222
5223 * dispnew.c (update_window): Move test for invisible lines
5224 at the top to update_window_line.
5225 (update_window_line): Handle invisible lines here.
5226
5227 * xfns.c (clear_image_cache): Clear current matrices of all
5228 frames sharing an image cache. Block input while freeing
5229 images. Fix timestamp comparison.
5230 (x_clear_image): Also free the mask.
5231
5232 * xfns.c (lookup_image): Block input while loading the image so
5233 that we won't get interrupted in a state where the image isn't yet
5234 set up completely.
5235 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
5236 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
5237 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
5238 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock input.
5239
5240 2000-09-16 Gerd Moellmann <gerd@gnu.org>
5241
5242 * dispnew.c (update_window): Make sure to make desired rows
5243 current even if they are completely invisible at the top
5244 of a window.
5245
5246 2000-09-15 Gerd Moellmann <gerd@gnu.org>
5247
5248 * xfns.c (lookup_image): Build mask before applying an algorithm.
5249 Recognize algorithm `disabled'.
5250 (cross_disabled_images): New variable.
5251 (COLOR_INTENSITY): New macro.
5252 (x_detect_edges): Use COLOR_INTENSITY.
5253 (x_disable_image): New function.
5254 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
5255
5256 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
5257 disabled state, don't apply an image transformation algorithm if
5258 the user specified an image for the disabled state. Use
5259 `:algorithm disabled' for creating a disabled item's image if the
5260 user hasn't specified an image.
5261
5262 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
5263 allocation functions with the XPM lib.
5264 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
5265 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
5266 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
5267 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
5268 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New functions.
5269 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
5270 functions, if possible, because these handle color allocation
5271 failure more gracefully.
5272 (Fimage_mask_p): New function.
5273
5274 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
5275 (Qedge_detection, Qheuristic): New symbols.
5276 (syms_of_xfns): Initialize new symbols.
5277 (lookup_image): Handle `:mask X', `:algorithm emboss', and
5278 `algorithm (edge-detection ...)'.
5279 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
5280 (tiff_format, gif_format, gs_format): Add `:mask'.
5281 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
5282 (GIF_MASK, GS_MASK): New enumerators.
5283 (x_laplace_read_row, x_laplace_write_row): Functions removed.
5284 (emboss_matrix, laplace_matrix): New variables.
5285 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
5286 (x_edge_detection): New functions.
5287 (x_laplace): Rewritten in terms of x_detect_edges.
5288 (x_build_heuristic_mask): If image has a mask, free it.
5289
5290 2000-09-14 Andrew Innes <andrewi@gnu.org>
5291
5292 * makefile.w32-in: Revert to Unix line endings.
5293
5294 2000-09-14 Andrew Innes <andrewi@gnu.org>
5295
5296 * makefile.w32-in: Standardize indentation somewhat.
5297 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
5298 cater for differences between shells.
5299
5300 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
5301
5302 2000-09-14 Gerd Moellmann <gerd@gnu.org>
5303
5304 * xterm.c (x_produce_glyphs): If the distance from the current
5305 position to the next tab stop is less than a canonical character
5306 width, use the tab stop after that.
5307
5308 2000-09-14 Dave Love <fx@gnu.org>
5309
5310 * buffer.c (alloc_buffer_text): Fix xmalloc call.
5311
5312 2000-09-14 Gerd Moellmann <gerd@gnu.org>
5313
5314 * xdisp.c (handle_fontified_prop): While running fontification
5315 functions, bind `fontification-functions' and
5316 `after-change-functions' to nil.
5317
5318 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
5319 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
5320
5321 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
5322
5323 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
5324 USE_MMAP_FOR_BUFFERS.
5325
5326 * insdel.c (make_gap): Use enlarge_buffer_text.
5327
5328 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
5329 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
5330 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
5331 from former r_alloc_* functions in ralloc.c.
5332 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New variables.
5333 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
5334 (mmap_init) [REL_ALLOC_MMAP]: New function.
5335 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
5336 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
5337 BUFFER_FREE.
5338
5339 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
5340 (enlarge_buffer_text): Add prototype.
5341
5342 * ralloc.c: Remove everything having to do with the use of mmap.
5343
5344 2000-09-13 Gerd Moellmann <gerd@gnu.org>
5345
5346 * sound.c (Fplay_sound): Doc fix.
5347
5348 * keyboard.c: Avoid some more compiler warnings.
5349 (parse_tool_bar_item): Ignore cached key bindings.
5350
5351 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
5352 and allocation of Lisp data.
5353
5354 2000-09-12 Gerd Moellmann <gerd@gnu.org>
5355
5356 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
5357 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
5358 defaults first.
5359
5360 * lread.c (Fload): Put code checking for recursive loads in #if 0.
5361
5362 2000-09-12 Miyashita Hisashi <himi@meadowy.org>
5363
5364 * ccl.c: Comment fixed.
5365 (MAX_MAP_SET_LEVEL): Increased to 30.
5366 (PUSH_MAPPING_STACK): Enclose with do-while block.
5367 (POP_MAPPING_STACK): Likewise.
5368 (stack_idx_of_map_multiple): New variable.
5369 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
5370 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
5371 call the corresponding CCL program by CCL_CALL_FOR_MAP_INSTRUCTION.
5372 (ccl_driver) <CCL_MapSingle>: Likewise.
5373 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
5374 with the case where looking up process reaches to the end of
5375 map-set, and call CCL programs as the above change.
5376
5377 2000-09-11 Gerd Moellmann <gerd@gnu.org>
5378
5379 * xfns.c (png_load, jpeg_load): Declare some variables volatile
5380 that might be clobbered by longjmp.
5381 (check_x_display_info, x_decode_color, create_frame_xic)
5382 (Fx_display_backing_store, Fx_display_visual_class)
5383 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler warnings.
5384
5385 * lread.c (init_lread): Set Vloads_in_progress to nil.
5386 (Fload): Show list of recursively loaded files, when signaling an
5387 error.
5388
5389 * lread.c (Vloads_in_progress): New variable.
5390 (record_load_unwind): New function.
5391 (Fload): Check for recursive loads.
5392 (syms_of_lread): Initialize Vloads_in_progress.
5393 (read_integer, read1): Avoid some compiler warnings.
5394
5395 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
5396 compiler warnings.
5397
5398 2000-09-11 Miles Bader <miles@gnu.org>
5399
5400 * editfns.c (Fbuffer_string): Doc fix.
5401
5402 2000-09-10 Gerd Moellmann <gerd@gnu.org>
5403
5404 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
5405
5406 2000-09-09 Ken Raeburn <raeburn@gnu.org>
5407
5408 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
5409 whether to include other header files.
5410
5411 2000-09-09 Gerd Moellmann <gerd@gnu.org>
5412
5413 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
5414 by Fmemq as a boolean.
5415
5416 2000-09-08 Stefan Monnier <monnier@cs.yale.edu>
5417
5418 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
5419
5420 2000-09-08 Gerd Moellmann <gerd@gnu.org>
5421
5422 * ralloc.c (mmap_fd): Remove initializer which can make it
5423 read-only in a dumped Emacs.
5424 (mmap_fd_1): New variable.
5425 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
5426 restore it from there.
5427 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
5428 unconditionally so that mmap_fd can be initialized there.
5429 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
5430 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
5431 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
5432
5433 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
5434
5435 * xdisp.c (dump_glyph_row): Fix printf format string.
5436 (display_line, move_it_in_display_line_to): Avoid compiler warnings.
5437
5438 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
5439
5440 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
5441 inheritance.
5442
5443 * xdisp.c (try_window_id): When trying to locate cursor in
5444 unchanged rows at the top, handle the case that we can't find it.
5445
5446 * xterm.c (x_draw_glyphs): Handle case START and END are out
5447 of bounds more carefully.
5448
5449 2000-09-08 Dave Love <fx@gnu.org>
5450
5451 * s/sol2.h (REL_ALLOC_MMAP): Define.
5452 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
5453
5454 * ralloc.c: Don't include string.h (redundant).
5455 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
5456 [!MAP_ANON]: Include fcntl.h.
5457 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
5458 (r_alloc, r_re_alloc, r_alloc_free)
5459 (mmap_enlarge, mmap_set_vars): Use it.
5460 (r_alloc_init_fd): New function.
5461 (__morecore) [SYSTEM_MALLOC]: Don't declare.
5462 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
5463 malloc type.
5464
5465 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
5466 Remove vm-limit.o.
5467
5468 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
5469 change to __NetBSD__.
5470
5471 2000-09-08 Kenichi Handa <handa@etl.go.jp>
5472
5473 * search.c (compile_pattern): Check the multibyteness of cached
5474 string and PATTERN.
5475
5476 2000-09-08 Miles Bader <miles@gnu.org>
5477
5478 * xfaces.c (default_face_vector): Function removed.
5479 (Finternal_merge_in_global_face): Restore old global/local
5480 attribute override order. Use inline loop instead of calling
5481 default_face_vector.
5482
5483 2000-09-07 Gerd Moellmann <gerd@gnu.org>
5484
5485 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
5486 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
5487 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
5488 where necessary, in case POINTER_TYPE is `void'.
5489
5490 2000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
5491
5492 * frame.c (make_terminal_frame): Initialize frame foreground and
5493 background colors to unspecified, for the initial instance of an
5494 MSDOS frame.
5495
5496 2000-09-07 Gerd Moellmann <gerd@gnu.org>
5497
5498 * ralloc.c (mmap_find): Fix overlap computation.
5499 (mmap_enlarge): Compute nbytes before trying to find an
5500 overlapping region.
5501
5502 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
5503 instead of `!='.
5504
5505 * lread.c (syms_of_lread): Change value of regexp
5506 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
5507
5508 * xmenu.c (xdialog_show): When looking up the selection in
5509 menu_items, take `quote' boundaries into account; this corresponds
5510 to a nil ITEM in x-popup-dialog.
5511
5512 2000-09-07 Kenichi Handa <handa@etl.go.jp>
5513
5514 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
5515 not 0x81.
5516 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
5517
5518 * coding.c (encode_coding_sjis_big5): Use translation table for
5519 encoding, not decoding. Fix the handling of latin-jisx0201.
5520 Check for the charset katakana-jisx0201 too.
5521 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
5522 (detect_coding_sjis): Check the byte sequence more rigidly.
5523
5524 2000-09-07 Gerd Moellmann <gerd@gnu.org>
5525
5526 * xfaces.c (Vparam_value_alist): New variable.
5527 (syms_of_xfaces): Initialize it.
5528 (Finternal_set_lisp_face_attribute): Avoid more consing.
5529
5530 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
5531 specially.
5532 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
5533 (Qbackground_mode): New variable.
5534 (syms_of_frame_1): Initialize Qbackground_mode.
5535
5536 * lisp.h (Qdisplay): Declare extern.
5537
5538 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
5539 change face on all frames, and change the default for new frames.
5540
5541 2000-09-07 Dave Love <fx@gnu.org>
5542
5543 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
5544
5545 2000-09-07 Kenichi Handa <handa@etl.go.jp>
5546
5547 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
5548
5549 * charset.c: Include composite.h
5550 (lisp_string_width): New function.
5551 (Fstring_width): Call lisp_string_width instead of strwidth.
5552
5553 * Makefile.in (charset.o): Depends on composite.h.
5554
5555 * process.c (read_process_output): Before inserting the decoded
5556 text in the buffer, adjust the multibyteness.
5557
5558 2000-09-06 Gerd Moellmann <gerd@gnu.org>
5559
5560 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
5561 buffer's text buffer is null, map new memory.
5562
5563 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
5564 POINTER_TYPE and size_t.
5565 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
5566 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
5567 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
5568 [REL_ALLOC_MMAP]: New macros.
5569 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
5570 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
5571 [REL_ALLOC_MMAP]: New functions.
5572
5573 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
5574 before and after unexec.
5575
5576 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
5577 text buffers if necessary.
5578
5579 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
5580 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
5581 in prototypes.
5582
5583 * config.in (HAVE_MMAP): Add #undef.
5584
5585 2000-09-05 Gerd Moellmann <gerd@gnu.org>
5586
5587 * frame.c (Qdisplay_type): New variable.
5588 (syms_of_frame_1): Initialize it.
5589 (Fframe_parameter): New function that avoids consing.
5590 (syms_of_frame): Defsubr it.
5591
5592 * buffer.c (Fother_buffer): Consider buffers as invisible when
5593 they are displayed in a window on an invisible frame.
5594
5595 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
5596 get-largest-window always return nil.
5597
5598 2000-09-04 Gerd Moellmann <gerd@gnu.org>
5599
5600 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
5601 variable; recognize Emacs 19 elc files.
5602
5603 2000-09-04 Miles Bader <miles@gnu.org>
5604
5605 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
5606 before initially popping up the menu, so the menu doesn't flash
5607 when the face settings are significantly different from the defaults.
5608
5609 2000-09-04 Stefan Monnier <monnier@cs.yale.edu>
5610
5611 * regex.c (WIDE_CHAR_SUPPORT): New macro.
5612 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
5613 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
5614 (BIT_UNIBYTE): Remove.
5615 (re_match_2_internal): Delete corresponding code and streamline the
5616 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
5617 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
5618 (re_wctype_t): New type.
5619 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
5620 (regex_compile): Use them and fix handling of overly long char classes.
5621
5622 2000-09-03 Andrew Innes <andrewi@gnu.org>
5623
5624 * makefile.w32-in: Change to DOS line endings.
5625
5626 * s/ms-w32.h (ORDINARY_LINK): New define.
5627
5628 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
5629 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
5630
5631 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
5632 (distclean): Delete them here instead.
5633
5634 * w32proc.c (compare_env): Convert to uppercase for comparison,
5635 not lowercase, to match how the native Windows shell works.
5636
5637 2000-09-03 Jason Rumney <jasonr@gnu.org>
5638
5639 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
5640 CVS changes the line-ends when checking in/out on DOS/Windows.
5641
5642 * makefile.nt (emacs): Do not change directory to run temacs, as
5643 the load-path is set relative to current directory.
5644
5645 2000-09-03 Miles Bader <miles@gnu.org>
5646
5647 * xterm.c (x_alloc_lighter_color_for_widget): New function.
5648
5649 2000-09-02 Gerd Moellmann <gerd@gnu.org>
5650
5651 * xdisp.c (redisplay_mode_lines): New function.
5652 (display_mode_lines): Return number of mode lines displayed.
5653 (echo_area_display): Use redisplay_mode_lines to draw garbaged
5654 mode lines. Don't temporarily bind redisplay-dont-pause to t.
5655
5656 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
5657 string.h and strings.h.
5658 (index) [HAVE_INDEX]: Add prototype.
5659
5660 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
5661 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
5662
5663 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
5664 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
5665
5666 2000-09-01 Gerd Moellmann <gerd@gnu.org>
5667
5668 * lread.c (read1): Accept `?' as symbol constituent, for
5669 compatiblity with XEmacs.
5670
5671 2000-08-31 Stefan Monnier <monnier@cs.yale.edu>
5672
5673 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
5674 (struct re_pattern_buffer): Remove newline_anchor.
5675 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
5676 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
5677 (re_max_failures, fail_stack): Use size_t rather than unsigned.
5678 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
5679 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
5680 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
5681 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
5682 Get rid of references to newline_anchor.
5683 (regcomp): Allocate and precompute a fastmap.
5684
5685 2000-08-31 Gerd Moellmann <gerd@gnu.org>
5686
5687 * lread.c (openp): GCPRO local variable `filename'.
5688
5689 2000-08-30 Stefan Monnier <monnier@cs.yale.edu>
5690
5691 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
5692
5693 * regex.c: Merge some changes from GNU libc. Add prototypes.
5694 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
5695 Use memcmp and memcpy instead of bcopy and bcmp.
5696 (init_syntax_once): Use ISALNUM.
5697 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
5698 (REG_UNSET_VALUE): Remove. Use NULL instead.
5699 (REG_UNSET, re_match_2_internal): Use NULL.
5700 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
5701 New macros.
5702 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
5703 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
5704 (regex_compile): In handle_interval, return an error rather than try to
5705 unfetch the interval if we can't find the closing brace.
5706 Obey the RE_NO_GNU_OPS syntax bit.
5707 (TOLOWER): New macro.
5708 (regcomp): Use it.
5709 (regexec): Allocate regs.start and regs.end as one block.
5710
5711 2000-08-30 Gerd Moellmann <gerd@gnu.org>
5712
5713 * xdisp.c (echo_area_display): Check display_completed instead
5714 of calling detect_input_pending.
5715
5716 * dispnew.c (update_frame): Only set display_completed here; move
5717 the update_begin and update_end calls here from update_frame_1.
5718 (update_frame_1): Don't set display_completed here, don't call
5719 update_begin/update_end.
5720
5721 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
5722 instead of store_frame_param.
5723
5724 2000-08-29 Gerd Moellmann <gerd@gnu.org>
5725
5726 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
5727 desired window matrix hasn't been displayed, use the current row
5728 instead. Make sure that only those frame rows are updated for
5729 which there exists a corresponding enabled desired row.
5730
5731 2000-08-29 Miles Bader <miles@gnu.org>
5732
5733 * xfaces.c (default_face_vector): New function.
5734 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
5735
5736 2000-08-29 Gerd Moellmann <gerd@gnu.org>
5737
5738 * lread.c (openp): Prevent temporary string passed to
5739 Ffile_readable_p from being garbage collected.
5740
5741 2000-08-28 Dave Love <fx@gnu.org>
5742
5743 * keymap.c (store_in_keymap): Add `static' to declaration.
5744
5745 2000-08-28 Gerd Moellmann <gerd@gnu.org>
5746
5747 * emacs.c, callint.c, doc.c, editfns.c
5748 (toplevel) [HAVE_STRING_H]: Include string.h.
5749 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
5750 (index): Remove prototypes which might conflict with non-standard
5751 definitions of index/strchr.
5752
5753 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
5754 (rindex): Define only if !HAVE_RINDEX.
5755
5756 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
5757
5758 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
5759
5760 2000-08-28 Miles Bader <miles@gnu.org>
5761
5762 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
5763 made inconsistent by a font-related attribute in FROM.
5764 (merge_face_inheritance): Add function comment.
5765
5766 2000-08-28 Kenichi Handa <handa@etl.go.jp>
5767
5768 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
5769 the 4th arg (PREV_EVENT) Qt to suppress input method.
5770
5771 2000-08-27 Stefan Monnier <monnier@cs.yale.edu>
5772
5773 * regex.c: Indent cpp directives and remove parens after `defined'.
5774 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
5775 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
5776 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
5777 (re_compile_pattern): Use size_t for length.
5778 (init_syntax_once): Move to a better place.
5779 * regex.h: Merge changes from GNU libc. Indent cpp directives.
5780 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
5781
5782 * syntax.c (back_comment): Detect cases where a comment-starter is
5783 actually inside another comment as in: /* a // b */ c // d \n.
5784 Make it clear that `comstart_pos' is unused for nested comments.
5785
5786 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
5787 (KEYMAPP): New macro.
5788 (Fkeymap_parent, Fset_keymap_parent): Use it.
5789 (fix_submap_inheritance): Mark it static.
5790 (define_as_prefix, describe_buffer_bindings, describe_command)
5791 (describe_translation, describe_map): Complete prototypes.
5792
5793 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
5794
5795 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
5796 to better match the key-lookup behavior.
5797
5798 2000-08-27 Gerd Moellmann <gerd@gnu.org>
5799
5800 * xfaces.c (lface_fully_specified_p): Handle :inherit.
5801 (Finternal_set_lisp_face_attribute): Fix typo in error message.
5802
5803 2000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
5804
5805 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
5806 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
5807 (xterm.o): Depend on coding.h
5808
5809 2000-08-26 Kenichi Handa <handa@etl.go.jp>
5810
5811 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
5812 the corresponding '#endif'.
5813
5814 2000-08-26 Miles Bader <miles@gnu.org>
5815
5816 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
5817 * xfaces.c (QCinherit): New variable.
5818 (syms_of_xfaces): Initialize it.
5819 (LFACE_INHERIT): New macro.
5820 (Finternal_get_lisp_face_attribute)
5821 (merge_face_vector_with_property)
5822 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
5823 (check_lface_attrs): Allow new types of face height. Check
5824 inherit attribute.
5825 (CYCLE_CHECK): New macro.
5826 (merge_face_inheritance): New function.
5827 (merge_face_vectors): Merge inherited faces too. Add F and
5828 CYCLE_CHECK arguments.
5829 (merge_face_vector_with_property, Finternal_merge_in_global_face)
5830 (lookup_named_face, lookup_derived_face, realize_named_face)
5831 (face_at_string_position, face_at_buffer_position): Supply
5832 new F and CYCLE_CHECK arguments to merge_face_vectors.
5833 (merge_face_heights): New function.
5834 (merge_face_vectors, merge_face_vector_with_property)
5835 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
5836 handle relative face heights.
5837 (lface_same_font_attributes_p): Compare heights using EQ.
5838
5839 2000-08-26 Kenichi Handa <handa@etl.go.jp>
5840
5841 * charset.c (char_to_string): Check the character validity.
5842 (char_valid_p): If C is not less than MAX_CHAR, be sure to return 0.
5843
5844 2000-08-25 Stefan Monnier <monnier@cs.yale.edu>
5845
5846 * regex.c (PUSH_FAILURE_COUNT): New macro.
5847 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
5848 Handle popping of a register's or a counter's data.
5849 (POP_FAILURE_POINT): Use the new name.
5850 (re_match_2_internal): Push counter data on the stack for succeed_n,
5851 jump_n and set_number_at and remove misleading dead code in succeed_n.
5852
5853 2000-08-25 Gerd Moellmann <gerd@gnu.org>
5854
5855 * xdisp.c (redisplay_internal): If considering all windows on all
5856 frames, update the display for each frame as soon as possible,
5857 instead of first building all desired matrices for all frames, and
5858 then updating them all.
5859 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
5860
5861 2000-08-24 Gerd Moellmann <gerd@gnu.org>
5862
5863 * bytecode.c (mark_byte_stack): Add a comment.
5864
5865 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
5866 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
5867 a graphical frame.
5868
5869 2000-08-24 Kenichi Handa <handa@etl.go.jp>
5870
5871 * minibuf.c (do_completion): Always use compare-string, not
5872 string-equal because the latter doesn't pay attention to
5873 multibyteness of strings.
5874
5875 * process.c (create_process): Don't setup raw-text coding here.
5876 (Fopen_network_stream): Don't set coding->src_multibyte and
5877 coding->dst_multibyte here.
5878 (read_process_output): For process filter, return unibyte string
5879 if default-enable-multibyte-characters is nil.
5880 (send_process): If OBJECT is multibyte text, be sure to encoded it
5881 by the specified coding system for the process. Otherwise, setup
5882 raw-text coding.
5883 (init_process): Don't initialize default-process-coding-system here.
5884
5885 2000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
5886
5887 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
5888 <scroll-down-aggressively>: Likewise.
5889
5890 2000-08-23 Kenichi Handa <handa@etl.go.jp>
5891
5892 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
5893 zero. Set coding->produced_char correctly.
5894
5895 2000-08-22 Andrew Innes <andrewi@gnu.org>
5896
5897 * makefile.w32-in: New file.
5898
5899 * unexw32.c (unexec): Ignore old_name, and use the actual location
5900 of the current executable instead. Base new_name on this.
5901
5902 * w32proc.c (create_child): Remove reference to security
5903 descriptor, which isn't needed and doesn't compile with mingw32.
5904
5905 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5906 up dllimport attributes.
5907 (x_update_window_end): Update prototype.
5908
5909 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
5910 extern, which screws up dllimport attributes.
5911
5912 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5913 up dllimport attributes.
5914
5915 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
5916 screws up dllimport attributes.
5917
5918 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5919 up dllimport attributes.
5920 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
5921 screws up dllimport attributes.
5922
5923 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5924 up dllimport attributes.
5925
5926 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
5927 screws up dllimport attributes.
5928
5929 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
5930 screws up dllimport attributes.
5931
5932 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5933 up dllimport attributes.
5934
5935 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
5936 unnecessary extern, which screws up dllimport attributes.
5937 (main): Ditto.
5938
5939 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5940 up dllimport attributes.
5941
5942 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
5943 unnecessary extern, which screws up dllimport attributes.
5944
5945 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
5946 screws up dllimport attributes.
5947
5948 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5949 up dllimport attributes.
5950
5951 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
5952
5953 * w32bdf.c (search_file_line):
5954 (set_bdf_font_info):
5955 (seek_char):
5956 (w32_get_bdf_glyph):
5957 (w32_BDF_to_x_font): Fix compile warnings.
5958
5959 * w32menu.c: Include keyboard.h before frame.h. Fix compile warnings.
5960
5961 * w32select.c: Include keyboard.h before frame.h.
5962
5963 * w32fns.c (max): Define macro.
5964 (JOHAB_CHARSET): Define if not known.
5965 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
5966 (Fx_show_tip): Synch with X version.
5967
5968 * w32xfns.c: Include keyboard.h before frame.h.
5969
5970 * w32fns.c: Include keyboard.h before frame.h.
5971
5972 * w32term.c: Include keyboard.h before frame.h.
5973
5974 * fontset.c: Include keyboard.h before frame.h.
5975
5976 * w32inevt.c: Include keyboard.h before frame.h.
5977 (MOUSE_MOVED): Define if not known.
5978
5979 * minibuf.c: Include keyboard.h before frame.h.
5980
5981 * keyboard.c: Include keyboard.h before frame.h.
5982
5983 * indent.c: Include keyboard.h before frame.h.
5984
5985 * dispnew.c: Include keyboard.h before frame.h.
5986
5987 * buffer.c: Include keyboard.h before frame.h.
5988
5989 * alloc.c: Include keyboard.h before frame.h.
5990
5991 * print.c: Include keyboard.h before frame.h.
5992
5993 * process.c: Include keyboard.h before frame.h.
5994
5995 * scroll.c: Include keyboard.h before frame.h.
5996
5997 * sysdep.c: Include keyboard.h before frame.h.
5998
5999 * term.c: Include keyboard.h before frame.h.
6000
6001 * window.c: Include keyboard.h before frame.h.
6002
6003 * xdisp.c: Include keyboard.h before frame.h.
6004 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
6005
6006 * frame.c: Include keyboard.h before frame.h.
6007
6008 * w32heap.h: Undefine min, max.
6009
6010 * w32gui.h: Undefine min, max.
6011
6012 * unexw32.c: Change PUCHAR to PCHAR.
6013 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
6014 (relocate_offset):
6015 (get_section_info):
6016 (copy_executable_and_dump_data): Remove unnecessary static defs.
6017 (copy_executable_and_dump_data): Fix compile warnings.
6018
6019 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
6020
6021 * w32console.c (min): Define macro.
6022 (clear_frame, write_glyphs): Fix compile warning.
6023
6024 * w32proc.c (compare_env):
6025 (find_child_console): Fix compile warning.
6026
6027 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
6028 sys_errlist instead of _sys_errlist.
6029 (get_emacs_configuration_options): New function.
6030
6031 * s/ms-w32.h (sys_nerr): Provide default definition.
6032 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
6033 name with _ prepended.
6034 (NSIG): Define if not known.
6035 (get_emacs_configuration): Provide extern declaration.
6036 (get_emacs_configuration_options): Provide extern declaration.
6037 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
6038
6039 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
6040 (map_w32_filename):
6041 (read_unc_volume): Fix compile warning.
6042
6043 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
6044 definitions from being used.
6045
6046 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
6047
6048 * w32.c (unc_volume_file_attributes):
6049 (open_unc_volume): Make arg const.
6050
6051 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
6052 (read_input_waiting): Remove excess parameter.
6053
6054 * w32.c (init_environment): Call _access.
6055 (check_windows_init_file): Call _close.
6056 (init_user_info): Call _putenv.
6057 (init_environment): Call _putenv and _strdup.
6058 (init_ntproc): Reset volume info cache on startup.
6059
6060 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
6061 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
6062 cannot override the CRT malloc.
6063
6064 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
6065 (LINK_FLAGS): Append to original value of LINK_FLAGS.
6066
6067 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
6068 unless we are linking with a static CRT.
6069 (RVA_TO_PTR): Cast result to unsigned char*.
6070
6071 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
6072 (add_volume_info): Use xstrdup.
6073
6074 2000-08-22 Stefan Monnier <monnier@cs.yale.edu>
6075
6076 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
6077 (do_completion, Fminibuffer_complete_word): Use it.
6078 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
6079 var so it can take non-boolean values.
6080
6081 2000-08-21 Gerd Moellmann <gerd@gnu.org>
6082
6083 * editfns.c (find_field): Formatting changes.
6084 (toplevel): Some old-style function forward declarations
6085 changed to prototypes, some new protypes added, some functions
6086 made static.
6087
6088 * lisp.h (set_time_zone_rule): Add prototype.
6089 (use_dialog_box): External declaration.
6090
6091 * keyboard.c (gen_help_event): Add parameter SIZE.
6092 (kbd_buffer_events_waiting): Slightly rewritten.
6093 (clear_event): New function.
6094 (kbd_buffer_get_event): Use it, and clear the input_events of
6095 HELP_EVENTs.
6096 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
6097 don't fill the newly created array with nils.
6098 (toplevel): Convert some old-style function forward declarations
6099 to prototypes.
6100
6101 * keyboard.h (gen_help_event): Change prototype.
6102
6103 * xterm.c (XTread_socket): Change calls to gen_help_event.
6104
6105 * w32term.c (w32_read_socket): Change calls to gen_help_event.
6106
6107 * eval.c (Fmacroexpand): Doc fix.
6108
6109 2000-08-20 Jason Rumney <jasonr@gnu.org>
6110
6111 * w32term.h (x_display_info_for_display): Remove as this function
6112 does not exist on W32.
6113
6114 * w32term.c (help_echo_window): New variable.
6115 (syms_of_w32term): staticpro it.
6116 (note_mode_line_highlight): Set it.
6117 (XTextExtents16): Removed as there is no equivalent on W32.
6118 (x_compute_glyph_string_overhangs): Incomplete body removed, as
6119 the X way of doing this will not work for W32.
6120 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
6121 (x_draw_image_foreground): Avoid drawing outside of the clip area
6122 when image doesn't have a mask.
6123 (note_mouse_highlight): Process overlays in the right order of
6124 priority. Set help_echo_window.
6125 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
6126 because that's more visible for large images.
6127
6128 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
6129 name to single_keymap_panes.
6130 (w32_menu_show): Set wv->title when dealing with titles.
6131 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
6132
6133 2000-08-21 Miles Bader <miles@gnu.org>
6134
6135 * minibuf.c (do_completion): Try again if we rewrite the input
6136 string, but no completion was done, so that any completion message
6137 will be correct.
6138
6139 2000-08-20 Gerd Moellmann <gerd@gnu.org>
6140
6141 * xfaces.c (lface_equal_p): Compare strings differently.
6142 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
6143 (realize_tty_face): Use them.
6144 (syms_of_xfaces): Initialize new variables.
6145 (map_tty_color): New function, extracted from realize_tty_face.
6146 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
6147 foreground or background color, store the new color name in the
6148 realized face; previous code trying to do this had no effect.
6149 (realize_tty_face): Use map_tty_color.
6150 (Fclear_face_cache): Set face_change_count and ensure thorough
6151 redisplay.
6152
6153 2000-08-19 Gerd Moellmann <gerd@gnu.org>
6154
6155 * undo.c (record_first_change, record_marker_adjustment): Don't
6156 use XBUFFER on last_undo_buffer which might not be a buffer.
6157
6158 2000-08-18 Kenichi Handa <handa@etl.go.jp>
6159
6160 * coding.c (decode_coding_string): Set members consumed,
6161 consumed_char, produced, produced_char of *coding correctly. If
6162 decode_coding doesn't consume any byte, don't try anymore.
6163 (encode_coding_string): Likewise.
6164
6165 2000-08-18 Gerd Moellmann <gerd@gnu.org>
6166
6167 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
6168 conditional have void type, for Standard C compilers.
6169
6170 * xdisp.c (redisplay_internal): Compare windows for equality with
6171 EQ, instead of applying XWINDOW to something that might not
6172 be a window.
6173
6174 2000-08-18 Kenichi Handa <handa@etl.go.jp>
6175
6176 * fontset.c (Finternal_char_font): Search only the selected frame
6177 for a window of the current buffer.
6178
6179 2000-08-18 Gerd Moellmann <gerd@gnu.org>
6180
6181 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
6182 Lisp_Objects.
6183
6184 * keyboard.c (kbd_buffer_get_event): Handle the case that the
6185 second half of a HELP_EVENT is found at the start of kbd_buffer.
6186
6187 2000-08-18 Miles Bader <miles@gnu.org>
6188
6189 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
6190
6191 * editfns.c (save_restriction_save): Rewrite to use markers.
6192 (save_restriction_restore): Rewrite to understand new form of data
6193 saved by save_restriction_save.
6194 (Fsave_restriction): Remove cautionary note in doc-string.
6195
6196 2000-08-17 Gerd Moellmann <gerd@gnu.org>
6197
6198 * fileio.c (build_annotations): Add a comment explaining the
6199 return value of format-annotate-function. Replace a spurious call
6200 to Flength with a CONSP test. Call format-annotate-function with
6201 a fifth arg specifying how many times the function is been called
6202 in a row, to let it choose temporary buffers appropriately.
6203
6204 2000-08-17 Dave Love <fx@gnu.org>
6205
6206 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
6207 declare make_temp_name twice.
6208
6209 * lread.c: Prototype readevalloop, load_unwind, load_descriptor_unwind.
6210 (unreadpure): Give it an arg.
6211
6212 * unexalpha.c: Prototype fatal_unexec, mark_x,
6213 update_dynamic_symbols. Declare unexec as void.
6214
6215 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
6216 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
6217
6218 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
6219 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on DOUG_LEA_MALLOC.
6220
6221 * alloca.c: Use #error.
6222 [POINTER_TYPE]: Use it.
6223
6224 * eval.c (Fdefvar): Doc fix.
6225
6226 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
6227 INITIALIZE_INTERVAL.
6228
6229 * buffer.h: Avoid DECLARE_INTERVALS.
6230
6231 * config.in: Add size_t.
6232
6233 2000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
6234
6235 * w16select.c (set_clipboard_data): If there's not enough memory
6236 to put text into clipboard, return 1, as Fw16_set_clipboard_data
6237 expects. In case of other failures, return 3.
6238 (system_error_msg): New error message.
6239 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
6240 system_error_msg.
6241
6242 2000-08-16 Gerd Moellmann <gerd@gnu.org>
6243
6244 * term.c (write_glyphs): Also turn off inverse video after turning
6245 off other appearances in case TS_exit_attribute_mode is not equal
6246 to TS_end_standout_mode.
6247 (insert_glyphs): Turn inverse video on/off for each run of glyphs
6248 with the same face.
6249 (turn_off_face): Reset standout_mode only if
6250 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
6251 is equal to TS_end_standout_mode.
6252
6253 2000-08-16 Kenichi Handa <handa@etl.go.jp>
6254
6255 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
6256 sequence at the end of the source block.
6257
6258 * ccl.c (Fccl_program_p): Docstring modified.
6259 (Fccl_execute): Likewise.
6260 (Fccl_execute_on_string): Likewise.
6261
6262 2000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
6263
6264 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
6265
6266 2000-08-16 Kenichi Handa <handa@etl.go.jp>
6267
6268 The following changes are mainly to fix bugs of
6269 encode/decode-coding-string failing if encoding/decoding return
6270 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
6271 variable conversion_buffer.
6272
6273 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
6274 decrement dst_end to avoid buffer overflow in the later call of
6275 string_as_multibyte
6276
6277 * coding.h (conversion_buffer_size, conversion_buffer)
6278 (get_conversion_buffer): Extern deleted.
6279
6280 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
6281 (conversion_buffer, conversion_buffer_size): Variables deleted.
6282 (get_conversion_buffer): Function deleted.
6283 (struct conversion_buffer): New structure.
6284 (MAX_ALLOCA): New macro.
6285 (allocate_conversion_buffer): New macro.
6286 (extend_conversion_buffer, free_conversion_buffer): New functions.
6287 (ccl_coding_driver): Set coding->result.
6288 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
6289 this is the last block of source.
6290 (encode_coding): Likewise. Handle the source block as the last
6291 one only when the whole source text is consumed.
6292 (decode_coding_string): Handle the case that the output buffer is
6293 too small to decode the whole source text. Use
6294 allocate_conversion_buffer, extend_conversion_buffer and
6295 free_conversion_buffer, not get_conversion_buffer.
6296 (encode_coding_string): Likewise.
6297 (init_coding): Function deleted.
6298 (init_coding_once): Delete code to initialize conversion_buffer_size.
6299
6300 * emacs.c (main): Don't call init_coding.
6301
6302 * msdos.c (IT_write_glyphs): Use a locally declared conversion_buffer.
6303
6304 * term.c (write_glyphs): Use a locally declared conversion_buffer.
6305 (insert_glyphs): Likewise.
6306
6307 * w32console.c (write_glyphs): Use a locally declared
6308 conversion_buffer.
6309
6310 2000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
6311
6312 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
6313 member of display_info is NULL.
6314
6315 2000-08-15 Gerd Moellmann <gerd@gnu.org>
6316
6317 * alloc.c (compact_small_strings): Use safe_bcopy, add an assertion.
6318
6319 * term.c (turn_off_face): Reset standout_mode when resetting
6320 appearances with capability `me'.
6321 (write_glyphs): Switch on inverse video before each face change.
6322
6323 2000-08-14 Dave Love <fx@gnu.org>
6324
6325 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
6326 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
6327 (lisp_free): Declare and make static.
6328
6329 * window.c: Fix embedded comment.
6330 (syms_of_window): Fix doc string.
6331
6332 2000-08-14 Gerd Moellmann <gerd@gnu.org>
6333
6334 * keymap.c (push_key_description): If C without modifiers is < 32,
6335 make sure to print `C-' before `M-', like in the manual.
6336
6337 2000-08-11 Gerd Moellmann <gerd@gnu.org>
6338
6339 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
6340 since they aren't relocated anymore.
6341 (sxhash_string): Make sure returned hash code fits in a Lisp integer.
6342
6343 * xdisp.c (try_cursor_movement): Fix handling of cursor in
6344 partially visible line which is smaller than the window's height.
6345
6346 2000-08-11 Kenichi Handa <handa@etl.go.jp>
6347
6348 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
6349 the multibyte form of eight-bit-control characters.
6350 (Fccl_execute_on_string): Initialize ccl->multibyte.
6351
6352 * ccl.h (struct ccl_program): New member multibyte.
6353
6354 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
6355
6356 2000-08-11 Kenichi Handa <handa@etl.go.jp>
6357
6358 * regex.c (regex_compile) <normal_char>: Pay attention to
6359 multibyteness.
6360 (analyse_first) <exactn>: Setup fastmap correctly for
6361 eight-bit-control characters.
6362
6363 2000-08-11 Kenichi Handa <handa@etl.go.jp>
6364
6365 * termhooks.h (enum event_kind): New member multibyte_char_keystroke.
6366
6367 * keyboard.c (make_lispy_event): Handle the new event type
6368 multibyte_char_keystroke.
6369
6370 * xterm.c: Include coding.h.
6371 (XTread_socket): Work around a bug of XmbLookupString. If the
6372 input is from XIM, decode it according to the current locale. In
6373 that case, generate multibyte_char_keystroke events.
6374
6375 2000-08-11 Kenichi Handa <handa@etl.go.jp>
6376
6377 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
6378 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
6379
6380 2000-08-10 Gerd Moellmann <gerd@gnu.org>
6381
6382 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
6383 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
6384 (move_it_in_display_line_to): Record iterator's ascent and descent
6385 before producing glyphs, and restore them when we know the glyph
6386 doesn't fit on the line.
6387 (move_it_to): Restructured so that it's easier to debug. If
6388 moving to a vpos, and not moving to an x or character position,
6389 stop as soon as the specified vpos is reached; don't move further
6390 into that line because that might change the computed line height.
6391 (try_cursor_movement): New function, extracted from the cursor
6392 movement branch of redisplay_window. If ending on a partially
6393 visible line, don't try to scroll if the cursor line is taller
6394 than the window.
6395 (redisplay_window): Use try_cursor_movement.
6396
6397 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
6398 because that function doesn't cope with variable-height lines.
6399
6400 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
6401 box cursor because that's better visible for large images.
6402
6403 2000-08-10 Miles Bader <miles@gnu.org>
6404
6405 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
6406
6407 2000-08-10 Gerd Moellmann <gerd@gnu.org>
6408
6409 * xdisp.c (Vmessages_buffer_name): New variable.
6410 (message_dolog): Use it.
6411 (syms_of_xdisp): Initialize it.
6412
6413 2000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
6414
6415 * msdos.c (IT_note_mouse_highlight): Update the calls to overlays_at.
6416 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
6417 redundant now that keyboard.h is included.
6418
6419 2000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
6420
6421 * keyboard.c (kbd_buffer_events_waiting): New function.
6422
6423 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
6424
6425 * msdos.c: Include keyboard.h.
6426 (XMenuActivate): Empty no_event events from the event buffer. If
6427 no events are left after that, call clear_input_pending.
6428 (mouse_clear_clicks): New function, code moved from mouse_init.
6429 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
6430 mouse driver to ``forget'' any past clicks.
6431
6432 * Makefile.in (msdos.o): Depend on keyboard.h.
6433
6434 2000-08-09 Gerd Moellmann <gerd@gnu.org>
6435
6436 * lisp.h (input_pending): External declaration.
6437
6438 * dispextern.h (Qredisplay_dont_pause): Declare extern.
6439
6440 * xdisp.c (echo_area_display): Display thoroughly if input is
6441 pending. Bind redisplay-dont-pause to t during the redisplay.
6442 in case input is pending.
6443
6444 * dispnew.c (Qredisplay_dont_pause): New variable.
6445 (syms_of_display): Initialize and staticpro it.
6446 (update_frame_1): Don't interrupt the display for pending input if
6447 redisplay_dont_pause is set.
6448
6449 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
6450
6451 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
6452
6453 2000-08-09 Miles Bader <miles@lsi.nec.co.jp>
6454
6455 * callproc.c (Fcall_process): Terminate the unwind-protect around
6456 the post-read-conversion of coding system.
6457
6458 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
6459 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
6460 * buffer.h (overlays_at): Update prototype.
6461 * xdisp.c (next_overlay_change): Update call to overlays_at.
6462 * xfaces.c (face_at_buffer_position): Likewise.
6463 * textprop.c (Fget_char_property): Likewise.
6464 * xterm.c (note_mouse_highlight): Likewise.
6465
6466 * minibuf.c (do_completion): Don't consider a simple change of
6467 case as `completion'.
6468
6469 2000-08-08 Ken Raeburn <raeburn@gnu.org>
6470
6471 * keyboard.c (syms_of_keyboard): Initialize last_point_position_buffer.
6472 * undo.c (record_delete): Make sure last_point_position_buffer is
6473 a buffer before comparing pointers.
6474
6475 * coding.h (decode_coding_string): Declare.
6476
6477 * intervals.h (Fprevious_single_char_property_change): Declare.
6478
6479 * textprop.c (Fprevious_single_char_property_change): Don't do
6480 arithmetic directly on lisp objects.
6481
6482 * editfns.c (find_field): Use EQ, not ==, to compare Lisp objects.
6483
6484 * keyboard.h (menu_item_eval_property): Declare.
6485
6486 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
6487 reuse as buffer name, instead of recreating (and discarding) every
6488 time a message is logged.
6489 (with_echo_area_buffer): Make callback arg A2 a lisp object.
6490 (current_message_1, truncate_message_1, set_message_1)
6491 (display_echo_area_1, resize_mini_window_1): Signatures changed.
6492 (current_message, truncate_echo_area, display_echo_area)
6493 (resize_echo_area_axactly): Changed calls.
6494
6495 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
6496 Lisp object.
6497 (Ffind_coding_systems_region_internal): First argument to Fappend
6498 must be an integer, not a Lisp object.
6499
6500 2000-08-08 Kenichi Handa <handa@etl.go.jp>
6501
6502 * charset.c (Fchar_width): Doc fix.
6503
6504 2000-08-08 Gerd Moellmann <gerd@gnu.org>
6505
6506 * charset.c (Fstring_width): Doc fix.
6507
6508 2000-08-07 Gerd Moellmann <gerd@gnu.org>
6509
6510 * xdisp.c (start_display): When starting display on a continuation
6511 line, clear ascent and descent members of the iterator structure;
6512 the height of the continued line does not affect the height of the
6513 continuation line.
6514 (make_cursor_line_fully_visible): Do nothing if cursor is on a
6515 line taller than the window.
6516 (redisplay_window) <forced window start>: Handle case that the
6517 middle of the window is not found in any row.
6518 (dump_glyph_row): Show more information.
6519 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
6520 first text line in a glyph matrix.
6521
6522 * xterm.c (x_draw_image_foreground): Avoid drawing outside
6523 of the clip area when image doesn't have a mask.
6524
6525 * fns.c (sweep_weak_table): Fix survival conditions for
6526 key-or-value and key-and-value weakness.
6527
6528 * .gdbinit (xhashtable): New command.
6529
6530 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
6531 tables out of the list of all weak hash tables.
6532
6533 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
6534 a new buffer is created, make sure echo_area_buffer[] references
6535 the new buffer.
6536
6537 2000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
6538
6539 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
6540 the doc string.
6541
6542 2000-08-07 Kenichi Handa <handa@etl.go.jp>
6543
6544 * syntax.c (skip_chars): Fix previous change. Make the handling
6545 of unibyte string consistent with that of regex search.
6546
6547 2000-08-05 Gerd Moellmann <gerd@gnu.org>
6548
6549 * xmenu.c (popup_get_selection): Use xfree instead of free.
6550
6551 * fileio.c (Finsert_file_contents): Use xfree instead of free.
6552
6553 * editfns.c (Ftranspose_regions): Use xfree instead of free.
6554
6555 * callproc.c (child_setup): Use xfree instead of free.
6556
6557 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
6558 instead of malloc.
6559 (run_mac_command, closedir): Use `xfree' instead of `free'.
6560
6561 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
6562
6563 * eval.c (error): Use xfree instead of free.
6564
6565 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
6566
6567 * fns.c: Replace `illegal' with `invalid'.
6568 (Fmake_hash_table, make_hash_table): Allow table size of 0.
6569
6570 2000-08-05 Kenichi Handa <handa@etl.go.jp>
6571
6572 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
6573 conversion.
6574
6575 2000-08-04 Noah Friedman <friedman@splode.com>
6576
6577 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
6578 docstring.
6579
6580 2000-08-04 Gerd Moellmann <gerd@gnu.org>
6581
6582 * syntax.c (skip_chars): Fix typo in error message.
6583
6584 2000-08-04 Andreas Schwab <schwab@suse.de>
6585
6586 * m/ia64.h: Moved from s/ia64.h.
6587
6588 2000-08-04 Kenichi Handa <handa@etl.go.jp>
6589
6590 * process.c (read_process_output): Big simplification. Handle
6591 composition and post-read-conversion of coding system correctly.
6592 (send_process): Handle composition correctly.
6593
6594 * callproc.c (Fcall_process): Handle post-read-conversion of
6595 coding system if any.
6596
6597 * coding.c (decode_coding_iso2022): More strict check for handling
6598 single shifting.
6599 (coding_restore_composition): Pay attention to the case that
6600 cmp_data is not set properly (because of invalid code in the
6601 source text).
6602 (run_pre_post_conversion_on_str): Include text properties in the
6603 resulting string.
6604 (decode_coding_string): Set members of coding correctly.
6605
6606 2000-08-03 Gerd Moellmann <gerd@gnu.org>
6607
6608 * s/ia64.h: New file.
6609
6610 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
6611 Use NULL instead of 0 at the end of variable argument list of
6612 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
6613 sizeof (int) < sizeof (void *).
6614
6615 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
6616 of variable argument lists of XtVaGetValues and XtVaSetValues.
6617
6618 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
6619 variable argument lists of XtVaGetValues and XtVaSetValues.
6620
6621 2000-08-02 Gerd Moellmann <gerd@gnu.org>
6622
6623 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
6624 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
6625
6626 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
6627 prototype.
6628
6629 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
6630 in call to Fsingle_key_description.
6631
6632 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
6633 Callers changed.
6634
6635 2000-08-02 Colin Walters <walters@cis.ohio-state.edu>
6636
6637 * window.c (display_buffer_reuse_frames): New variable.
6638 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
6639 frames displaying BUFFER.
6640 (syms_of_window): Define Lisp variable display-buffer-reuse-frames.
6641
6642 2000-08-01 Miles Bader <miles@gnu.org>
6643
6644 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
6645 when to constrain NEW_POS (they were pretty screwed up before).
6646
6647 2000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
6648
6649 * msdos.c (run_msdos_command): Save and restore the master
6650 environment, for the case that child_setup signals an error.
6651 When mirroring slashes in DOS shell commands, don't fail when
6652 argv[2] has embedded blanks.
6653 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
6654 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
6655 (dos_ttraw): Call mouse_setup_buttons.
6656
6657 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
6658 using alloca; free it after run_msdos_command returns.
6659
6660 2000-07-27 Dave Love <fx@gnu.org>
6661
6662 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't define.
6663 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently working.
6664
6665 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
6666
6667 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
6668
6669 * editfns.c (lisp_time_argument): Fix last change.
6670
6671 2000-07-27 Gerd Moellmann <gerd@gnu.org>
6672
6673 * fns.c (Fdelete): Make it work on vectors and strings in addition
6674 to lists.
6675
6676 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
6677 (syms_of_fns): Initialize new variables.
6678 (sweep_weak_table): Handle weakness `key-or-value' and `key-and-value'.
6679 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
6680 weakness, with t meaning the same as `key-and-value'.
6681
6682 2000-07-27 Kenichi Handa <handa@etl.go.jp>
6683
6684 * coding.h (struct coding_system): Member safe_charset deleted.
6685
6686 * coding.c (Qsafe_charsets): This variable deleted.
6687 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system):
6688 New variables.
6689 (coding_safe_chars): New function.
6690 (CODING_SAFE_CHAR_P): New macro.
6691 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
6692 checking safe_charsets member of the coding system. Caller changed.
6693 (detect_coding_iso2022): New local variable safe_chars.
6694 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
6695 safe_charsets member of the coding system.
6696 (decode_coding_iso2022): New local variable safe_chars.
6697 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
6698 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
6699 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
6700 (ENCODE_UNSAFE_CHARACTER): New macro.
6701 (encode_coding_iso2022): New local variable safe_chars. Check
6702 unsafe chars.
6703 (setup_coding_system): Delete the code to initialize
6704 coding->safe_charses
6705 (intersection, find_safe_codings): New functions.
6706 (Ffind_coding_systems_region_internal): New function.
6707 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
6708 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
6709 variable and initialize it.
6710
6711 * fns.c (char_table_ref_and_index): New function.
6712
6713 * lisp.h (char_table_ref_and_index): Add prototype.
6714
6715 2000-07-26 Sam Steingold <sds@gnu.org>
6716
6717 * editfns.c (lisp_time_argument): Added third argument `usec'.
6718 (Ffloat_time): New built-in Lisp function.
6719
6720 2000-07-26 Gerd Moellmann <gerd@gnu.org>
6721
6722 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
6723 for the character code.
6724
6725 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
6726 GNU/Linux.
6727
6728 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
6729 if called for a popup menu.
6730 (xmenu_show): Store help string in widget values.
6731
6732 2000-07-26 Dave Love <fx@gnu.org>
6733
6734 * syswait.h: Move some definitions.
6735 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
6736 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
6737 perspicuous definitions.
6738 (WTERMSIG): Fix bit pattern used.
6739
6740 2000-07-26 Kenichi Handa <handa@etl.go.jp>
6741
6742 * print.c (print_object): If vector printing is truncated, print
6743 "..." to indicate it as well as the case of list printing.
6744
6745 2000-07-25 Gerd Moellmann <gerd@gnu.org>
6746
6747 * xdisp.c (next_element_from_display_vector): Improve comments.
6748
6749 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
6750 for the character code, and the rest for the face id as in 20.x.
6751 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
6752
6753 * window.c (window_display_table): Cleaned up.
6754
6755 * syntax.c (Fforward_word): Add last arg nil in call of
6756 Fconstrain_to_field.
6757
6758 2000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
6759
6760 * fileio.c (Frename_file) [DOS_NT]: If the file names are
6761 identical but for the letter-case, don't call
6762 barf_or_query_if_file_exists.
6763
6764 2000-07-25 Miles Bader <miles@gnu.org>
6765
6766 * editfns.c (find_field): Honor special `boundary' fields.
6767 (Qboundary): New variables.
6768 (syms_of_editfns): Initialize Qboundary.
6769 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
6770 Use scan_buffer instead of find_before_next_newline, because it
6771 allows us to detect the boundary case where there's a newline at
6772 the search limit.
6773 * lisp.h (Fconstrain_to_field): Update external declaration.
6774
6775 2000-07-24 Gerd Moellmann <gerd@gnu.org>
6776
6777 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
6778 if that is nil.
6779
6780 2000-07-24 Dave Love <fx@gnu.org>
6781
6782 * s/sunos4-0.h, s/sol2.h:
6783 (LIBS_TERMCAP): Move from m/sparc.h.
6784
6785 * m/sparc.h (TERMINFO): Moved to system files (probably only
6786 relevant for sunos4 judging by its vintage).
6787 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
6788 __arch64__.
6789
6790 2000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
6791
6792 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
6793 name to single_keymap_panes.
6794
6795 2000-07-24 Andreas Schwab <schwab@suse.de>
6796
6797 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
6798
6799 2000-07-24 Gerd Moellmann <gerd@gnu.org>
6800
6801 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
6802 parameters instead of using int parameters. Expect FN to accept
6803 EMACS_INT parameters.
6804 (display_echo_area, resize_echo_area_axactly, current_message)
6805 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
6806 with new argument list.
6807 (resize_mini_window_1): New callback function.
6808 (current_message_1, truncate_message_1, set_message_1): Change
6809 parameter lists to the new format expected by with_echo_area_buffer.
6810
6811 2000-07-24 Kenichi Handa <handa@etl.go.jp>
6812
6813 * fontset.c (fontset_ref): Remove INLINE declaration.
6814 (fontset_ref_via_base): Likewise.
6815 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
6816 to downcase.
6817
6818 2000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
6819
6820 * msdos.c (IT_note_mouse_highlight): Process overlays in the
6821 correct order of priority. If help echo was found in an overlay,
6822 use that overlay as the object in which the help echo was found.
6823
6824 2000-07-22 Miles Bader <miles@gnu.org>
6825
6826 * textprop.c (Fprevious_single_char_property_change): The initial
6827 property value should be from the position preceding POSITION, not
6828 following it.
6829
6830 2000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
6831
6832 * coding.c (syms_of_coding): Doc fix for
6833 inhibit-iso-escape-detection.
6834
6835 2000-07-21 Gerd Moellmann <gerd@gnu.org>
6836
6837 * xterm.c (note_mouse_highlight): Process overlays in the right
6838 order of priority.
6839
6840 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
6841
6842 * xterm.c (note_mouse_highlight): If help-echo was found in an
6843 overlay, use that overlay as the object in which the help was found.
6844
6845 * window.c (foreach_window_1): Fix typo reversing an if-condition.
6846
6847 * window.c (foreach_window): Instead of a fake variable argument
6848 list, take one USER_DATA argument.
6849 (foreach_window_1): Likewise, and call callback functions with two
6850 args, the window and USER_DATA.
6851 (struct check_window_data): New struct.
6852 (check_window_containing): Use it.
6853 (window_from_coordinates): Set up a struct check_window_data for
6854 foreach_window.
6855 (add_window_to_list, freeze_window_start): Change parameters
6856 according to new calling convention.
6857
6858 * window.h (foreach_window): Change prototype.
6859
6860 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
6861
6862 2000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
6863
6864 * xmenu.c (menu_help_callback): Call show_help_echo with
6865 additional arguments OBJECT and POS.
6866
6867 2000-07-21 Kenichi Handa <handa@etl.go.jp>
6868
6869 * data.c (Faset): Allow storing any multibyte character in a
6870 string. Convert unibyte string to multibyte if necessary.
6871
6872 * xfns.c (x_encode_text): New function.
6873 (x_set_name): Use x_encode_text.
6874 (x_set_title): Likewise.
6875
6876 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
6877
6878 * xterm.h (x_encode_text): Add prototype.
6879
6880 2000-07-20 Dave Love <fx@gnu.org>
6881
6882 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
6883 xfree, not free.
6884
6885 2000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
6886
6887 * msdos.c (help_echo_window): New variable.
6888 (syms_of_msdos): Initialize and staticpro it.
6889 (IT_note_mode_line_highlight): Set help_echo_window.
6890 (IT_note_mouse_highlight): Ditto.
6891 (dos_rawgetc): Store help_echo_window in the second event produced
6892 for HELP_EVENTs.
6893
6894 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
6895 Record the object that generated the help echo and the position of
6896 that object in help_echo_object and help_echo_pos. Record that
6897 some glyphs in a row are displayed in mouse-face.
6898 (IT_update_begin): Don't clear mouse highlight unless one of the
6899 enabled glyph rows is marked as being displayed in mouse-face.
6900 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
6901 and position recorded in help_echo_object and help_echo_pos to the
6902 event queue.
6903 (IT_menu_display): Accept a new argument PN: the pane number of
6904 the current menu pane. Record the pane number and the item
6905 number of the item which has associated help string.
6906 (XMenuActivate): Update the prototype for help_callback in
6907 function declaration. Call IT_menu_display with the current menu
6908 pane number as an additional argument. Call help_callback with
6909 two additional arguments: the pane number and the item number of
6910 the menu item associated with the help text.
6911 (help_echo_object, help_echo_pos): New variables.
6912 (syms_of_msdos): Initialize them and staticpro help_echo_object.
6913
6914 * msdos.h (XMenuActivate): Update prototype.
6915
6916 2000-07-19 Gerd Moellmann <gerd@gnu.org>
6917
6918 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
6919 Add some more prototypes.
6920
6921 * xterm.c, xterm.h: Add some more prototypes.
6922
6923 * lisp.h (Fnext_single_char_property_change): Add prototype.
6924
6925 * dispnew.c (direct_output_for_insert): Remove confusing
6926 outer local variable mouse_face_overwritten_p.
6927 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
6928
6929 * alloc.c (allocate_string_data): Don't copy old string contents.
6930
6931 2000-07-19 Kenichi Handa <handa@etl.go.jp>
6932
6933 * coding.c (code_convert_region): Delete text properties before
6934 shrinking the conversion region.
6935
6936 2000-07-18 Gerd Moellmann <gerd@gnu.org>
6937
6938 * dispnew.c (update_text_area): Write the whole row if it
6939 has mouse-face in it.
6940
6941 * xfaces.c (face-alternative-font-family-alist): Remove
6942 DEFVAR_LISP; staticpro instead.
6943
6944 * xmenu.c (menu_help_callback): Call show_help_echo with
6945 new arguments.
6946
6947 * keyboard.c (show_help_echo): Add parameter WINDOW.
6948 (read_char): Call show_help_echo with window extracted from Lisp
6949 help event.
6950 (gen_help_event): Add parameter WINDOW.
6951
6952 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
6953
6954 * xterm.c (help_echo_window): New variable.
6955 (note_mouse_highlight, note_tool_bar_highlight): Set help_echo_window.
6956 (XTread_socket): Pass help_echo_window to gen_help_event.
6957 (syms_of_xterm): Initialize and staticpro help_echo_window.
6958
6959 2000-07-18 Dave Love <fx@gnu.org>
6960
6961 * Makefile.in: Fix dependencies of blockinput.h on atimer.h, systime.h.
6962
6963 2000-07-18 Gerd Moellmann <gerd@gnu.org>
6964
6965 * alloc.c (allocate_string_data): If string had already data
6966 assigned, copy old contents to new string data.
6967
6968 * coding.c (syms_of_coding): Fix typo in spelling of variable
6969 `inhibit-iso-escape-detection'.
6970
6971 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
6972
6973 * Makefile.in: Add dependencies on dispextern.h.
6974 (alloca.o): Don't define malloc and define EMACS_FREE instead of
6975 `free'; both can conflict with system header files.
6976
6977 2000-07-18 Kenichi Handa <handa@etl.go.jp>
6978
6979 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
6980 undefined.
6981
6982 2000-07-18 Dave Love <fx@gnu.org>
6983
6984 * window.c (Fwindow_list): Declare arg `window'.
6985
6986 2000-07-18 Kenichi Handa <handa@etl.go.jp>
6987
6988 * coding.c (setup_coding_system): Don't override the explicitly
6989 specified designations.
6990
6991 2000-07-15 Miles Bader <miles@gnu.org>
6992
6993 * editfns.c (char_property_eq, char_property_stickiness): Renamed
6994 from `text_property_eq' and `text_property_stickiness', respectively.
6995 (find_field, Fconstrain_to_field, char_property_eq)
6996 (char_property_stickiness): Changed to call char-property functions
6997 instead of text-property-only ones.
6998
6999 * textprop.c (Fnext_single_char_property_change): Made a subr (was
7000 `next_single_char_property_change'). Do more error checking, and
7001 cleanup limit behavior.
7002 (Fprevious_single_char_property_change): New function.
7003 (syms_of_textprop): Initialize new subrs.
7004
7005 * xdisp.c (display_prop_end, invisible_text_between_p):
7006 Call Fnext_single_char_property_change instead of
7007 next_single_char_property_change.
7008
7009 2000-07-15 Jason Rumney <jasonr@gnu.org>
7010
7011 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
7012 after menu is finished with.
7013 (add_menu_item): Only consider wv->title as a menu title.
7014 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
7015
7016 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
7017 null title.
7018 (FONT_REGEXP): Remove unused macro, and its sub-components.
7019 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
7020
7021 * w32term.c (help_echo_object, help_echo_pos): New variables.
7022 (note_mode_line_highlight): Store additional information about the
7023 help-echo in help_echo_object and help_echo_pos. Check both
7024 `local-map' and `keymap' properties for changing the cursor
7025 (note_mouse_highlight): Store additional information about the
7026 help-echo in help_echo_object and help_echo_pos.
7027 (note_tool_bar_highlight): Set help_echo_object to nil and
7028 help_echo_pos to -1.
7029 (w32_read_socket): Use gen_help_event instead of filling
7030 input_events manually.
7031 (syms_of_w32term): Staticpro help_echo_object.
7032 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
7033 set, arrange for a mouse-highlight redisplay in XTframe_up_to_date.
7034 (x_clear_mouse_face): New function.
7035 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
7036 (x_update_window_begin): No need to turn off the mouse
7037 highlight here.
7038 (show_mouse_face): Set the mouse_face_p flag of glyph rows
7039 depending on whether they contain glyphs highlighted in mouse-face.
7040 (x_fill_stretch_glyph_string): Consume runs of stretch
7041 glyphs instead of a single one.
7042 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
7043 with new argument list.
7044 (x_set_glyph_string_gc): Make sure the face's GC is valid.
7045 (x_append_glyph, x_append_composite_glyph)
7046 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
7047 changes in struct glyph starting 1999-12-27. See comments for
7048 xterm.c on 2000-07-05.
7049
7050 2000-07-14 Sam Steingold <sds@gnu.org>
7051
7052 * xfaces.c (realize_x_face): Fix the last patch:
7053 check `default_face' before dereferencing.
7054
7055 2000-07-14 Dave Love <fx@gnu.org>
7056
7057 * syntax.c (back_comment): Add null default in switch (for pcc).
7058
7059 2000-07-14 Kenichi Handa <handa@etl.go.jp>
7060
7061 * xfaces.c (realize_x_face): Make fontset using the base of the
7062 default_face's fontset, not using the default fontset.
7063
7064 * coding.c (inhibit_iso_escape_detection): New variable.
7065 (syms_of_coding): Make it a Lisp variable.
7066 (detect_coding_iso2022): If inhibit_iso_escape_detection is
7067 nonzero, ignore ISO2022's escape sequence.
7068
7069 2000-07-14 Gerd Moellmann <gerd@gnu.org>
7070
7071 * alloca.c (malloc) [emacs]: Define as xmalloc.
7072
7073 * xfns.c (Fx_show_tip): If frame parameters contain a position,
7074 use that instead of the mouse position. Add parameters DX and DY.
7075
7076 * dispextern.h (Fx_show_tip): Adjust number of parameters
7077 in prototype.
7078
7079 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
7080 if HELP is a function, call it with OBJECT and POS as parameters
7081 to get the help to display.
7082 (gen_help_event, kbd_buffer_store_help_event): New functions.
7083 (kbd_buffer_get_event): Construct the Lisp help-event differently.
7084 (read_char): Call show_help_echo with new parameters.
7085
7086 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
7087 Add prototypes.
7088
7089 * xterm.c (help_echo_object, help_echo_pos): New variables.
7090 (note_mode_line_highlight): Store additional information about the
7091 help-echo in help_echo_object and help_echo_pos. Check both
7092 `local-map' and `keymap' properties for changing the cursor
7093 (note_mouse_highlight): Store additional information about the
7094 help-echo in help_echo_object and help_echo_pos.
7095 (note_tool_bar_highlight): Set help_echo_object to nil and
7096 help_echo_pos to -1.
7097 (XTread_socket): Use gen_help_event instead of filling
7098 input_events manually.
7099 (syms_of_xterm): Staticpro help_echo_object.
7100
7101 * xmenu.c (menu_highlight_callback): Use
7102 kbd_buffer_store_help_event instead of setting up and input_event
7103 structure manually.
7104
7105 * xdisp.c (eval_form): GCPRO argument sexpr.
7106 (call_function): New function.
7107 (handle_single_display_prop): Use call_function and FUNCTIONP
7108 instead of checking whether if font_height is a symbol and
7109 using eval_form.
7110
7111 * eval.c (internal_condition_case_2): New function.
7112
7113 * lisp.h (FUNCTIONP): New macro.
7114 (internal_condition_case_2, call_function): Add prototypes.
7115
7116 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
7117 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
7118 Always set `arg' member of input_events.
7119 (construct_menu_click): Unused function removed.
7120
7121 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
7122
7123 * w32term.c (construct_mouse_click, construct_mouse_wheel)
7124 (construct_drag_n_drop, x_scroll_bar_handle_click)
7125 (w32_read_socket): Always set `arg' member of input_events.
7126
7127 * keyboard.c (show_help_echo): Use eval_form. Add comment.
7128
7129 * lisp.h (eval_form): Add prototype.
7130
7131 * xdisp.c (eval_form): Make it externally visible.
7132
7133 2000-07-13 Gerd Moellmann <gerd@gnu.org>
7134
7135 * xterm.c (x_handle_tool_bar_click): Store the frame in the
7136 frame_or_window slot of TOOL_BAR_EVENT input events instead of
7137 consing. For prefix events, store the frame in the `arg' slot of
7138 the event, otherwise store the key there.
7139 (XTread_socket): Instead of consing, use the frame_or_window slot
7140 of HELP_EVENTs for the frame, and the `arg' slot for the help string.
7141
7142 * xmenu.c (menu_highlight_callback): Store help string in the
7143 `arg' member of the input event; don't cons.
7144 (menubar_selection_callback): Use the `arg' slot of input events
7145 to queue additional information, instead of consing.
7146
7147 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
7148
7149 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
7150 TOOL_BAR_EVENTs.
7151 (w32_read_socket): Adapt to changes in HELP_EVENTs.
7152
7153 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
7154 input events to queue additional information, instead of consing.
7155
7156 * keyboard.c (kbd_buffer_gcpro): Renamed from
7157 kbd_buffer_frame_or_window. Now used for all Lisp objects
7158 referenced from the input queue.
7159 (kbd_buffer_store_event): Always use structure assignment for
7160 copying input events. Record all Lisp objects referenced from
7161 events in kbd_buffer_gcpro.
7162 (kbd_buffer_get_event): Construct Lisp `help-echo' events
7163 differently from input events. Test for prefix menu_bar_events
7164 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
7165 event in kbd_buffer_gcpro to nil.
7166 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
7167 frame_or_window is equal to its arg member as prefix events.
7168 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
7169 used by an input event to nil.
7170 (init_keyboard): Use two times the size of the input queue
7171 for kbd_buffer_gcpro.
7172 (syms_of_keyboard): Likewise.
7173
7174 * emacs.c (handle_USR2_signal, handle_USR1_signal):
7175 Use USER_SIGNAL_EVENT.
7176
7177 * termhooks.h (struct input_event): Add member `arg'.
7178 (MENU_BAR_EVENT): Renamed from menu_bar_event.
7179 (USER_SIGNAL_EVENT): Renamed from user_signal.
7180
7181 * xfaces.c (ASET): Remove definition.
7182
7183 * lisp.h (AREF, ASET, ASIZE): New macros.
7184
7185 * fontset.c (AREF, ASIZE): Remove definitions.
7186
7187 * fns.c (AREF): Remove definition.
7188
7189 * composite.c (AREF): Remove definition.
7190
7191 2000-07-12 Gerd Moellmann <gerd@gnu.org>
7192
7193 * dispnew.c (redraw_overlapped_rows): Add missing local.
7194 (scrolling_window): Remove debug code.
7195
7196 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
7197 Before scrolling, turn off a mouse-highlight in the window
7198 being scrolled.
7199
7200 * xterm.c (x_update_window_end): Add parameter
7201 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
7202 redisplay in XTframe_up_to_date.
7203 (x_clear_mouse_face): New function.
7204 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
7205
7206 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
7207 current glyph row.
7208 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
7209 it when any row is written to that contains glyphs highlighted in
7210 mouse-face.
7211 (update_window): Call the window update end hook with new
7212 parameter MOUSE_FACE_OVERWRITTEN_P.
7213 (direct_output_for_insert): Give up if row contains mouse-face.
7214
7215 * dispextern.h (struct redisplay_interface): Add parameter
7216 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
7217 (clear_mouse_face): New function pointer member.
7218
7219 2000-07-11 Stefan Monnier <monnier@cs.yale.edu>
7220
7221 * syntax.c (back_comment): Use one switch rather than a few `if's.
7222 Obey open_paren_in_column_0_is_defun_start.
7223 When reverting to the `slow' method, try to nicely handle the case
7224 of nested comments by checking that the comment-starter we found
7225 does indeed match the comment-ender.
7226 (scan_sexps_forward, scan_sexps_forward):
7227 Ignore excessive opening parenthesis rather than throwing an error.
7228
7229 2000-07-11 Gerd Moellmann <gerd@gnu.org>
7230
7231 * doc.c (Fsubstitute_command_keys): Handle case that a GC
7232 in Fwhere_is_internal or get_keymap_1 relocates string contents.
7233
7234 * dispnew.c (direct_output_forward_char): Give up if currently
7235 displaying a message instead of the minibuffer contents.
7236
7237 * xterm.c (x_update_window_begin): No need to turn off the mouse
7238 highlight here.
7239 (show_mouse_face): Set the mouse_face_p flag of glyph rows
7240 depending on whether they contain glyphs highlighted in mouse-face.
7241
7242 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
7243 compare the mouse_face_p flags of both rows.
7244
7245 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
7246
7247 2000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
7248
7249 * keyboard.c (show_help_echo): Accept additional parameter
7250 ok_to_overwrite_keystroke_echo.
7251 (read_char): Call show_help_echo with a zero
7252 ok_to_overwrite_keystroke_echo argument.
7253 * keyboard.h (show_help_echo): Update prototype of show_help_echo.
7254 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
7255 ok_to_overwrite_keystroke_echo argument.
7256 * w32menu.c (w32_menu_display_help): Call show_help_echo with
7257 non-zero ok_to_overwrite_keystroke_echo argument.
7258
7259 2000-07-10 Gerd Moellmann <gerd@gnu.org>
7260
7261 * xdisp.c (try_window_id): If changes are all below what is
7262 displayed in the window, and point is in the window, we still
7263 might have to find point on the display.
7264
7265 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
7266 glyphs instead of a single one.
7267 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
7268 with new argument list.
7269 (x_set_glyph_string_gc): Make sure the face's GC is valid.
7270
7271 * keymap.c (get_keymap_1): Add comment that this function can GC.
7272 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
7273 comment that functions can GC.
7274 (Fset_keymap_parent): GCPRO arg KEYMAP.
7275
7276 2000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
7277
7278 * msdos.c (XMenuActivate): After exiting the menu, restore the
7279 echo area message and erase it.
7280
7281 2000-07-10 Kenichi Handa <handa@etl.go.jp>
7282
7283 * fontset.c (Ffontset_info): Make the return value more compatible
7284 with that of Emacs 20.
7285
7286 2000-07-07 Gerd Moellmann <gerd@gnu.org>
7287
7288 * eval.c (Fsignal): Handle case that backtrace_list is null.
7289
7290 2000-07-07 Kenichi Handa <handa@etl.go.jp>
7291
7292 * ccl.c (Fccl_execute): Typo fixed.
7293
7294 2000-07-06 Gerd Moellmann <gerd@gnu.org>
7295
7296 * window.c (window_loop): Add missing gcpro1 local variable.
7297
7298 * window.c (Fwindow_list): Reverse list at the end.
7299 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
7300 means allow windows on OWINDOW's frame, only.
7301 (window_loop): Simplified; use Fwindow_list.
7302
7303 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
7304
7305 2000-07-05 Gerd Moellmann <gerd@gnu.org>
7306
7307 * xterm.c (XTread_socket): Increment handling_signal at the start,
7308 decrement it at the end.
7309
7310 * eval.c (handling_signal): New variable.
7311 (Fsignal): Abort if handling_signal is non-zero.
7312
7313 * lisp.h (handling_signal): External declaration.
7314
7315 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
7316
7317 2000-07-05 Ken Raeburn <raeburn@gnu.org>
7318
7319 Sound support for NetBSD through "Linux emulation" support:
7320 * config.in (HAVE_SOUNDCARD_H): Undef.
7321 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
7322 * Makefile.in (LIBSOUND): New variable.
7323 (LIBES): Include it.
7324 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and <soundcard.h>.
7325 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined elsewhere.
7326 (vox_open): Use DEFAULT_SOUND_DEVICE.
7327 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
7328
7329 2000-07-05 Gerd Moellmann <gerd@gnu.org>
7330
7331 * print.c (print_error_message): If Vsignaling_function is set,
7332 show it in *Messages*.
7333
7334 * lisp.h (Vsignaling_function): External declaration.
7335
7336 * eval.c (Vsignaling_function): New variable.
7337 (Fsignal): Compute it.
7338 (syms_of_eval): Staticpro it.
7339
7340 2000-07-05 Dave Love <fx@gnu.org>
7341
7342 * syswait.h: Use the autoconf recommended approach. Old code
7343 #if'd out in case we need to revert.
7344
7345 * config.in (HAVE_SYS_WAIT_H): Added.
7346
7347 2000-07-05 Andrew Innes <andrewi@gnu.org>
7348
7349 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
7350 when non-NULL instead of __morecore, to take account of buffer
7351 memory. This also solves a problem with spurious memory warnings
7352 on Windows.
7353
7354 * ralloc.c: Make real_morecore non-static.
7355
7356 * eval.c (internal_condition_case): Comment out abort if
7357 interrupt_input_blocked is not zero.
7358
7359 * makefile.nt: Add support for `bootstrap' and related targets.
7360 Include minimal debug info in emacs.exe in release build.
7361 Remove all dependencies on lisp.h, and fixup some others.
7362
7363 * w32.c (init_environment): Install code from 20.7 for providing
7364 default values for environment variables, based on the
7365 executable's own location.
7366 (map_w32_filename): Handle filenames that are longer than MAX_PATH.
7367 (sys_socket): Install socket inheritance bug fix from 20.7.
7368
7369 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
7370 here via blockinput.h).
7371
7372 2000-07-05 Stefan Monnier <monnier@cs.yale.edu>
7373
7374 * w32menu.c (w32_menu_display_help):
7375 * xmenu.c (menu_help_callback): Use show_help_echo.
7376
7377 * keyboard.h (show_help_echo): Declare.
7378
7379 * keyboard.c (show_help_echo): New function, extracted from read_char.
7380 Feval its `msg' argument if it's a cons cell.
7381 (read_char): Use it.
7382 (follow_key): Pass `autoload' to get_keyelt.
7383
7384 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
7385 (note_tool_bar_highlight, XTread_socket):
7386 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
7387 (dos_rawgetc):
7388 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
7389 (note_tool_bar_highlight, w32_read_socket):
7390 Do not gratuitously ignore non-string `help-echo' properties.
7391
7392 2000-07-05 Gerd Moellmann <gerd@gnu.org>
7393
7394 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
7395
7396 * window.c (delete_all_subwindows): Reset Vwindow_list.
7397
7398 * xterm.c (x_append_glyph, x_append_composite_glyph)
7399 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
7400 changes in struct glyph starting 1999-12-27. Some bit-fields of
7401 struct glyph were not set, which made glyphs unequal when compared
7402 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
7403 effects were the result. This also depended on the contents of
7404 memory returned by xmalloc. If flickering happens again, activate
7405 the code in clear_glyph_row that's in #if 0. If the flickering is
7406 gone with that, chances are that it is caused by something similar.
7407
7408 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
7409
7410 * dispextern.h: Add some comments.
7411
7412 * window.c (add_window_to_list): Add parameter LIST.
7413 (window_list): Order list so that, for each frame, windows are
7414 in canonical order, and so that frames appear in the list in
7415 the order given by Vframe_list.
7416 (next_window): Reverse the handling of NEXT_P.
7417
7418 2000-07-04 Gerd Moellmann <gerd@gnu.org>
7419
7420 * window.c (Vwindow_list): New variable.
7421 (make_window, delete_window): Set Vwindow_list to nil.
7422 (check_window_containing): New function.
7423 (window_from_coordinates): Rewritten.
7424 (add_window_to_list, window_list, candidate_window_p)
7425 (decode_next_window_args, next_window): New functions.
7426 (Fnext_window, Fprevious_window): Rewritten in terms of next_window.
7427 (Fwindow_list): New function.
7428 (Fother_window): Cleaned up.
7429 (foreach_window): Add a longer "variable argument list". Let
7430 callback function return 0 to indicate that cycling over windows
7431 should stop.
7432 (foreach_window_1): Likewise.
7433 (freeze_window_start): Return int.
7434 (init_window): New function.
7435 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
7436
7437 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
7438 input_event with bzero.
7439 (main): Call init_window.
7440
7441 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
7442 a menu filter.
7443
7444 2000-07-04 Kenichi Handa <handa@etl.go.jp>
7445
7446 * composite.h (make_composition_value_copy): Extern it.
7447
7448 * composite.c (make_composition_value_copy): New function.
7449
7450 * editfns.c (Fformat): While copying text properties, make each
7451 composition property value a copy.
7452
7453 * fns.c (concat): While copying text properties, make each
7454 composition property value a copy.
7455
7456 2000-07-03 Gerd Moellmann <gerd@gnu.org>
7457
7458 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
7459
7460 * fns.c (sweep_weak_table): Mark only objects that are not
7461 marked already.
7462
7463 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
7464 include those frames as candidates which have their focus
7465 redirected to the minibuffer frame.
7466
7467 2000-07-03 Stefan Monnier <monnier@cs.yale.edu>
7468
7469 * fns.c (Fputhash): Return `value' rather than nil.
7470
7471 2000-06-30 Gerd Moellmann <gerd@gnu.org>
7472
7473 * frame.c (next_frame): Don't check focus redirection in case
7474 MINIBUF is a window. Doing so excludes frames using MINIBUF
7475 unless their focus is redirected, which contradicts the
7476 specification of next-frame, and leads to infinite loops in
7477 certain situations when cycling through windows with next-window.
7478
7479 2000-06-30 Kenichi Handa <handa@etl.go.jp>
7480
7481 * coding.c (code_convert_region): Even if the length of text is
7482 zero, try to convert it if coding->type is coding_type_ccl.
7483 (decode_coding_string, encode_coding_string): Likewise.
7484
7485 2000-06-28 Gerd Moellmann <gerd@gnu.org>
7486
7487 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
7488 the display if windows_or_buffers_changed.
7489
7490 * dispnew.c (struct row_entry): New structure.
7491 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
7492 (row_table_size, old_lines, new_lines, old_lines_size)
7493 (new_lines_size, run_pool, runs_size, runs): New variables.
7494 (add_row_entry): New function.
7495 (scrolling_window): Use data structures allocated with xmalloc and
7496 held in global variables, instead of allocating them with alloca and
7497 holding them in local variables. Use a larger hash table whose
7498 size depends on glyph matrix sizes. Don't use bzero to clear the
7499 hash table; instead, clear used slots only.
7500
7501 * fns.c (next_almost_prime): Make it externally visible.
7502
7503 * lisp.h (next_almost_prime): Add prototype.
7504
7505 * s/isc4-0.h (sigunblock): Define.
7506
7507 * s/sco5.h (sigunblock): Define.
7508
7509 2000-06-27 Dave Love <fx@gnu.org>
7510
7511 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
7512 (moved to osf5-0.h).
7513 [!NOT_C_CODE]: Protect string.h stuff.
7514
7515 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
7516 (sys_siglist, NSIG): Definitions moved here from osf1.h.
7517
7518 2000-06-27 Gerd Moellmann <gerd@gnu.org>
7519
7520 * xdisp.c (resize_mini_window): Subtract the extra line spacing
7521 below the last line from the needed window height.
7522
7523 2000-06-26 Stefan Monnier <monnier@cs.yale.edu>
7524
7525 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
7526 (Fwidget_get): Use it.
7527 (syms_of_fns): Defsubr it.
7528
7529 2000-06-26 Gerd Moellmann <gerd@gnu.org>
7530
7531 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
7532 display info for XIM.
7533 (xim_open_dpy): Likewise.
7534 (xim_close_dpy): Don't free the display info's XIM.
7535
7536 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
7537
7538 * config.in (USE_XIM): New define.
7539
7540 * keymap.c (get_keyelt): For menu-items containing a `:filter
7541 FILTER', apply FILTER to the menu-item's definition to get the
7542 real definition to use.
7543
7544 * lisp.h (QCfilter): External declaration.
7545
7546 * xfns.c (Fimage_size): New function.
7547 (syms_of_xfns): Defsubr it.
7548
7549 2000-06-26 Andreas Schwab <schwab@suse.de>
7550
7551 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
7552 Fstring_as_unibyte.
7553
7554 2000-06-25 Dave Love <fx@gnu.org>
7555
7556 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag, tgetnum.
7557
7558 * Makefile.in (blockinput.h): Depend on atimer.h.
7559 (atimer.h): Depend on systime.h.
7560
7561 * blockinput.h: Protect against multiple inclusion. Include atimer.h.
7562
7563 * atimer.h: Protect against multiple inclusion. Include systime.h.
7564
7565 * lisp.h (swap_in_global_binding): Declare.
7566
7567 2000-06-24 Ken Raeburn <raeburn@gnu.org>
7568
7569 * process.c (Fopen_network_stream): Turn off atimers for duration
7570 of call to connect. (Patch from Gerd.)
7571
7572 2000-06-23 Dave Love <fx@gnu.org>
7573
7574 * ralloc.c: Maybe include unistd.h
7575
7576 * emacs.c (setgrp): Undefine before defining.
7577 (malloc_warning, set_time_zone_rule, index): Prototype.
7578
7579 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
7580 HAVE_STRUCT_TIMEZONE.
7581
7582 * s/osf1.h: Move string.h hack here from alpha.h and make it
7583 conditional.
7584 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
7585 _XOPEN_SOURCE.
7586 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
7587 (SOCKLEN_TYPE): Don't define.
7588
7589 * m/alpha.h: Remove string.h hack.
7590
7591 * s/osf5-0.h: New file.
7592
7593 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
7594 include time.h, done by systime.h.
7595 [__FreeBSD__]: Remove redundant includes.
7596
7597 * callproc.c (setpgrp): Undefine before defining.
7598 (delete_temp_file): Return Qnil to avoid warning.
7599
7600 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
7601
7602 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
7603 HAVE_X_WINDOWS.
7604
7605 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
7606
7607 * composite.h (compose_text): Declare.
7608
7609 * xterm.c: Don't include sys/types.h unconditionally. Don't
7610 protect its inclusion with !USG (following xmenu.c).
7611
7612 2000-06-23 Gerd Moellmann <gerd@gnu.org>
7613
7614 * xfns.c (x_create_tip_frame): Initialize frame's colors like
7615 in x_create_frame.
7616
7617 2000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
7618
7619 * coding.c (decode_eol_post_ccl): Special handling for undecided
7620 and inconsistent EOL types.
7621
7622 2000-06-22 Gerd Moellmann <gerd@gnu.org>
7623
7624 * xrdb.c (x_load_resources): Add default resource for scroll bar's
7625 trough color and main window's background color.
7626
7627 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events differently.
7628
7629 * xterm.h (Xt_app_con): External declaration.
7630
7631 * widget.c (EmacsFrameRealize): Fix typo.
7632
7633 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
7634
7635 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
7636 (handle_invisible_prop): Record the start of invisible text in
7637 it->add_overlay_start.
7638 (struct overlay_entry): Add member `overlay'.
7639 (handle_overlay_change): Simplify.
7640 (next_overlay_string): After having processed overlay strings at the
7641 end of the buffer, record that fact in
7642 it->overlay_strings_at_end_processed_p.
7643 (compare_overlay_entries): If before- and after-strings come
7644 from the same overlay, let before-strings come first.
7645 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
7646 (load_overlay_strings): Take it->add_overlay_start into account
7647 when adding overlay strings.
7648
7649 * dispextern.h (struct it): Add member add_overlay_start.
7650
7651 2000-06-22 Dave Love <fx@gnu.org>
7652
7653 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
7654
7655 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
7656
7657 2000-06-22 Kenichi Handa <handa@etl.go.jp>
7658
7659 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
7660 is greater than 0.
7661
7662 2000-06-21 Dave Love <fx@gnu.org>
7663
7664 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
7665
7666 2000-06-21 Stefan Monnier <monnier@cs.yale.edu>
7667
7668 * syntax.c (back_comment): Simplify string-parity counting (with
7669 the added benefit of handling multiple string-styles as long as
7670 they are not intertwined).
7671 Jump to the slow code as soon as a comment starter is found in
7672 a "string_lossage" position. Fixes the case: " /* " /* " */.
7673
7674 2000-06-21 Dave Love <fx@gnu.org>
7675
7676 * Makefile.in: Use GETLOADAVG_LIBS.
7677
7678 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
7679 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
7680
7681 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
7682
7683 * syntax.c (describe_syntax): Recognize the `n'estable bit.
7684 (Fforward_comment, scan_lists):
7685 Check the comstyle of single-char comment-starters.
7686 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
7687 we're just at the beginning of the comment (f.ex with (*) ... (*)).
7688 Check the comstyle of single-char comment-starters.
7689 Clarify control-flow around the Scomment case.
7690
7691 2000-06-20 Dave Love <fx@gnu.org>
7692
7693 * fns.c (make_hash_table, maybe_resize_hash_table):
7694 Cast arg of next_almost_prime.
7695
7696 * tparam.c [emacs]: Include lisp.h.
7697
7698 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
7699 and unistd.h.
7700
7701 2000-06-20 Gerd Moellmann <gerd@gnu.org>
7702
7703 * keyboard.c (adjust_point_for_property): Check if display
7704 property should be treated as intangible by looking at its value.
7705
7706 * xdisp.c (single_display_prop_intangible_p)
7707 (display_prop_intangible_p): New functions.
7708
7709 * dispextern.h (display_prop_intangible_p): Add prototype.
7710
7711 * xdisp.c (dump_glyph_row): Show type of glyph->object.
7712
7713 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
7714 argument to sigprocmask.
7715
7716 * s/sco5.h (sigblock): Redefined to pass a pointer as second
7717 argument to sigprocmask.
7718
7719 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
7720 sigprocmask_set, and pass a pointer to it to sigprocmask.
7721
7722 * sysdep.c (sigprocmask_set): New variable.
7723
7724 * fileio.c (make_temp_name): Don't use `%s' in string passed to
7725 report_file_error.
7726
7727 2000-06-20 Sam Steingold <sds@gnu.org>
7728
7729 * xrdb.c: Don't declare xmalloc, xrealloc.
7730
7731 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
7732
7733 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
7734 (re_comp): Cast gettext return value to avoid complaints when
7735 !HAVE_LIBINTL.
7736
7737 2000-06-20 Dave Love <fx@gnu.org>
7738
7739 * m/stride.h, m/mips.h: Don't define HAVE_GETWD, HAVE_GETTIMEOFDAY.
7740
7741 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
7742
7743 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
7744
7745 * m/alpha.h: Don't declare xmalloc, xrealloc.
7746
7747 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
7748
7749 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
7750
7751 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
7752
7753 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
7754 HAVE_GETWD.
7755
7756 * keyboard.h (poll_for_input_1): Declare.
7757
7758 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
7759
7760 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
7761
7762 * doprnt.c: Don't declare xmalloc, xrealloc.
7763
7764 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
7765 (getenv, ctime, getwd): Removed.
7766 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
7767
7768 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
7769 x_set_tool_bar_lines.
7770
7771 * config.in: Add HAVE_GETWD. Move some definitions above
7772 machine/system includes.
7773
7774 2000-06-20 Kenichi Handa <handa@etl.go.jp>
7775
7776 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
7777
7778 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
7779 contain information about ENCODING.
7780
7781 * fontset.c (FONTSET_ASCII): Use the first element of char table
7782 for an ASCII font, not defalt slot.
7783 (fontset_ref_via_base): If FONTSET doesn't contain information for
7784 C, try the default fontset.
7785 (make_fontset): Don't copy the default fontset.
7786 (fontset_font_pattern): Likewise.
7787 (accumulate_font_info): If ELT is nil, use the corresponding
7788 element in the default fontset.
7789
7790 2000-06-19 Dave Love <fx@gnu.org>
7791
7792 * syntax.c (Fparse_partial_sexp): Doc fix.
7793
7794 * regex.h: Test PROTOTYPES as well as __STDC__.
7795
7796 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
7797 errno, strerror. Put text after #endif in comment.
7798
7799 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for pcc).
7800
7801 * xterm.c (x_frame_of_widget): Likewise.
7802
7803 2000-06-19 Gerd Moellmann <gerd@gnu.org>
7804
7805 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
7806 to Vfundamental_mode_abbrev_table.
7807
7808 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
7809 bogus objects are marked. This slows down GC by ~80 percent, but
7810 it might be worth trying when debugging GC-related problems.
7811 This feature requires conservative stack marking to be enabled.
7812
7813 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
7814 returns XLookupChars, reset `modifiers' to zero.
7815
7816 2000-06-19 Dave Love <fx@gnu.org>
7817
7818 * mktime.c: Unprotoized.
7819
7820 2000-06-19 Richard Stallman <rms@gnu.org>
7821
7822 * data.c (set_internal): If variable is frame-local,
7823 store the new value immediately into the frame parameter alist.
7824
7825 2000-06-19 Ken Raeburn <raeburn@gnu.org>
7826
7827 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
7828 in the custom handler pointer.
7829
7830 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
7831 value, or checks for CHAR_META can fail when Lisp_Object is a
7832 union type.
7833 * keymap.c (get_keyelt): Likewise.
7834
7835 2000-06-19 Kenichi Handa <handa@etl.go.jp>
7836
7837 * ccl.h (struct ccl_program): New member eol_type.
7838 (struct ccl_spec): New member cr_carryover.
7839
7840 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
7841 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
7842
7843 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
7844 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
7845 (decode_eol_post_ccl): New function.
7846 (decode_coding): Don't detect EOL format here for CCL based coding
7847 systems.
7848 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
7849 decode_eol_post_ccl after running the CCL program.
7850 (code_convert_region): Don't detect EOL format here for CCL based
7851 coding systems.
7852 (decode_coding_string): Likewise.
7853
7854 2000-06-18 Ken Raeburn <raeburn@gnu.org>
7855
7856 * charset.c (update_charset_table): Use XINT on "iso_final_char"
7857 when treating it as an integer.
7858
7859 * coding.h (encode_coding_string): Declare.
7860
7861 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
7862 it as an integer.
7863
7864 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
7865 "xkeymap" to avoid shadowing the "enum map_type" value that needs
7866 to be passed to get_local_map.
7867
7868 * sound.c (Fplay_sound): Don't call make_number on
7869 Frun_hook_with_args count argument.
7870
7871 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
7872 for lisp objects in X event structure data field, when lisp
7873 objects are represented with unions.
7874 (x_scroll_bar_to_input_event): Ditto.
7875
7876 2000-06-16 Ken Raeburn <raeburn@gnu.org>
7877
7878 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
7879 termination of string. Fix sense of test whether
7880 Vline_number_display_limit is an integer.
7881
7882 2000-06-16 Gerd Moellmann <gerd@gnu.org>
7883
7884 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
7885 only if HAVE_X_WINDOWS.
7886
7887 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
7888 of titles.
7889
7890 * dispnew.c (update_frame_1): Handle case that cursor vpos is
7891 out of bounds.
7892
7893 2000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
7894
7895 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
7896 of its headers.
7897
7898 2000-06-15 Kenichi Handa <handa@etl.go.jp>
7899
7900 * coding.c (decode_coding_emacs_mule): Always set src_base at the
7901 start of the while loop.
7902
7903 2000-06-15 Gerd Moellmann <gerd@gnu.org>
7904
7905 * atimer.c (alarm_signal_handler): Add forward declaration.
7906
7907 * data.c (set_internal): Remove debug code.
7908
7909 2000-06-14 Gerd Moellmann <gerd@gnu.org>
7910
7911 * Makefile.in (bootstrap-temacs): Add `-I../src'.
7912
7913 * unexec.c (toplevel) [COFF]: Include coff.h.
7914
7915 * s/lynxos.h: New file.
7916
7917 * keymap.c (Fsingle_key_description): Enclose function key and
7918 event symbol names in angle brackets.
7919
7920 * xdisp.c (setup_echo_area_for_printing): Call
7921 message_log_maybe_newline if message_buf_print is not set.
7922
7923 * print.c (printchar, strout): Don't check message_buf_print
7924 before calling setup_echo_area_for_printing because that
7925 function does something useful even when message_buf_print is
7926 already set.
7927
7928 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines):
7929 New variables.
7930 (ensure_echo_area_buffers): Initialize echo buffer's
7931 truncate lines setting to nil.
7932 (with_echo_area_buffer): Don't set the echo buffer's truncate
7933 lines setting here.
7934 (set_message_1): Set it here instead, based on the value
7935 of message_truncate_lines.
7936 (resize_mini_window): Handle case that lines are truncated.
7937 (syms_of_xdisp): Initialize Qmessage_truncate_lines.
7938 DEFVAR_BOOL message-truncate-lines.
7939
7940 * keyboard.c (read_char): Bind message-truncate-lines to t
7941 while displaying a help-echo.
7942
7943 * lisp.h (Qmessage_truncate_lines): External declaration.
7944
7945 2000-06-13 Gerd Moellmann <gerd@gnu.org>
7946
7947 * xdisp.c (Vline_number_display_limit): Renamed from
7948 line_number_display_limit.
7949 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
7950 Extend documentation string. Initialize
7951 Vline_number_display_limit to nil meaning no limit.
7952 (decode_mode_spec): Use Vline_number_display_limit with its new
7953 meaning.
7954
7955 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
7956
7957 2000-06-13 Richard Stallman <rms@gnu.org>
7958
7959 * frame.c (Fmodify_frame_parameters): Doc fix.
7960
7961 * xfns.c (x_set_frame_parameters): Comment fix.
7962
7963 * frame.c (store_frame_param): Call swap_in_global_binding if the
7964 variable's current binding was chosen based on this frame.
7965
7966 * data.c (swap_in_global_binding): New function.
7967
7968 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
7969
7970 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
7971 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
7972
7973 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
7974
7975 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
7976
7977 2000-06-12 Jason Rumney <jasonr@gnu.org>
7978
7979 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
7980
7981 * w32.h (EMACS_W32_H): Renamed from _NT_H_
7982
7983 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
7984
7985 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
7986
7987 2000-06-12 Gerd Moellmann <gerd@gnu.org>
7988
7989 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
7990 (syms_of_xfaces): Defsubr Sdump_colors.
7991 (x_free_colors): Don't treat b&w specially on default visual.
7992 (x_free_dpy_colors): New function.
7993 (free_face_colors): Don't check visual class; it's done
7994 in x_free_colors.
7995
7996 * xterm.c (x_frame_of_widget): New function.
7997 (x_alloc_nearest_color_for_widget): Use it.
7998 (x_copy_dpy_color): New function.
7999 (x_destroy_window): Free various colors.
8000
8001 2000-06-12 Kenichi Handa <handa@etl.go.jp>
8002
8003 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
8004
8005 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
8006
8007 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
8008
8009 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
8010
8011 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
8012
8013 2000-06-11 Dave Love <fx@gnu.org>
8014
8015 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
8016
8017 2000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
8018
8019 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
8020
8021 2000-06-11 Gerd Moellmann <gerd@gnu.org>
8022
8023 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
8024 to `XEvent *'.
8025
8026 2000-06-10 Kenichi Handa <handa@etl.go.jp>
8027
8028 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
8029 (regex_compile): Fix the code for handling the case of single byte
8030 char and multibyte char being mixed in a range within [...].
8031
8032 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
8033 and dst_multibyte members of coding.
8034
8035 * charset.c (update_charset_table): Update the table
8036 bytes_by_char_head.
8037 (init_charset_once): Initialize elements of bytes_by_char_head to
8038 1 except for leading codes for private charases.
8039
8040 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
8041 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte sequence.
8042
8043 2000-06-09 Ken Raeburn <raeburn@gnu.org>
8044
8045 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
8046 access the data it doesn't point to.
8047
8048 2000-06-08 Gerd Moellmann <gerd@gnu.org>
8049
8050 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
8051 will be translated to a switch-frame event when reading the
8052 event queue. This is necessary because Emacs otherwise won't
8053 perform a switch-frame to a new frame until some other event, for
8054 example a keystroke event, forces it to do so. This has various
8055 effects, one visible being that the cursor of a frame created with
8056 C-x 5 2 or switched to with a window manager key binding like
8057 A-TAB stays hollow because selected_window isn't on the newly
8058 focused frame until the switch-frame is performed.
8059
8060 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
8061 generating a switch-frame event if necessary.
8062
8063 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
8064
8065 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
8066 it's an integer.
8067
8068 2000-06-08 Kenichi Handa <handa@etl.go.jp>
8069
8070 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a charset.
8071
8072 2000-06-07 Gerd Moellmann <gerd@gnu.org>
8073
8074 * window.c (displayed_window_lines): Take empty lines at
8075 the bottom of a window into account.
8076
8077 * window.c (displayed_window_lines): New function.
8078 (Fmove_to_window_line): Use displayed_window_lines to determine
8079 the number of lines to move, instead of using the window's height.
8080
8081 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
8082 to stop reading, even if the form read sets point to a different
8083 value when evaluated.
8084
8085 * xdisp.c (display_line): Fix code deciding in which line to
8086 put the cursor.
8087
8088 2000-06-07 Kenichi Handa <handa@etl.go.jp>
8089
8090 * fileio.c (e_write): Free composition data if stored in
8091 coding->cmp_data.
8092
8093 2000-06-06 Gerd Moellmann <gerd@gnu.org>
8094
8095 * xdisp.c (display_line): Set row's and iterator's
8096 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
8097 Set cursor even if row ends in the middle of a character.
8098 (dump_glyph_row): Print values of new flags.
8099 (redisplay_window) <cursor movement in unchanged window>: When
8100 point has been moved forward, and PT is at the end of the cursor
8101 row, don't place the cursor in the next row if the cursor row ends
8102 in the middle of a character or at ZV.
8103
8104 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
8105 (struct glyph_row): Add starts_in_middle_of_char_p and
8106 ends_in_middle_of_char_p.
8107 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
8108 ends_in_middle_of_char_p flag.
8109 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
8110
8111 * term.c (append_glyph): Revert change of 2000-06-06.
8112
8113 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
8114 padding glyph not fitting on line as whole character not
8115 fitting on line.
8116
8117 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
8118 this isn't true for images with `:ascent 100'.
8119
8120 2000-06-06 Kenichi Handa <handa@etl.go.jp>
8121
8122 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
8123 as modified if it is originally unmodified.
8124
8125 * term.c (encode_terminal_code): Change the way to check if
8126 terminal coding does any conversion.
8127 (append_glyph): Set glyph->pixel_width correctly.
8128
8129 * xdisp.c (display_line): While checking line continuation, pay
8130 attention to a padding glyph.
8131
8132 2000-06-05 Gerd Moellmann <gerd@gnu.org>
8133
8134 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
8135
8136 2000-06-05 Dave Love <fx@gnu.org>
8137
8138 * xdisp.c: Include fontset.h.
8139
8140 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
8141
8142 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
8143
8144 * dispnew.c: Conditionally include term.h.
8145
8146 * coding.h: Declare code_convert_string_norecord.
8147
8148 * frame.h (struct frame): Use volatile unconditionally.
8149
8150 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
8151
8152 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
8153
8154 * systime.h: Protect against multiple inclusion.
8155 (timezone) [USG5_4]: Define as time_t.
8156
8157 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
8158 (Foptimize_char_table, make_temp_name): Declare.
8159
8160 * Makefile.in (xdisp.o): Depend on fontset.h.
8161
8162 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
8163
8164 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
8165 (Foptimize_char_table, make_temp_name): Declare.
8166
8167 * s/irix4-0.h:
8168 * s/irix5-0.h:
8169 * s/netbsd.h: Don't define autoconfiscated MATHERR.
8170
8171 2000-06-02 Dave Love <fx@gnu.org>
8172
8173 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
8174
8175 2000-06-02 Gerd Moellmann <gerd@gnu.org>
8176
8177 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
8178 result face, set flags in that face indicating that colors may not
8179 be freed.
8180
8181 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
8182 glyph, use the ASCII NUL character to determine the face.
8183
8184 2000-06-02 Dave Love <fx@gnu.org>
8185
8186 * sysdep.c: Conditionally include stdlib.h, unistd.h.
8187 (VFORK_RETURN_TYPE): Remove.
8188
8189 * config.in: Add NO_MATHERR.
8190
8191 2000-06-01 Dave Love <fx@gnu.org>
8192
8193 * cmds.c (internal_self_insert): Don't check
8194 Vbefore_change_function, Vafter_change_function.
8195
8196 * insdel.c (signal_before_change, signal_after_change): Likewise.
8197
8198 * buffer.c (Vbefore_change_function, Vafter_change_function):
8199 Variables and their initializations deleted.
8200
8201 * callint.c (Fcall_interactively): Doc fix.
8202
8203 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
8204
8205 2000-05-31 Dave Love <fx@gnu.org>
8206
8207 * textprop.c: Revert last change -- duplicated.
8208
8209 2000-05-31 Gerd Moellmann <gerd@gnu.org>
8210
8211 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
8212 in #if 0.
8213
8214 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
8215
8216 2000-05-31 Jason Rumney <jasonr@gnu.org>
8217
8218 * search.c (Fre_search_forward, Fre_search_backward)
8219 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
8220
8221 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
8222
8223 2000-05-30 Jason Rumney <jasonr@gnu.org>
8224
8225 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
8226 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
8227
8228 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type member.
8229
8230 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
8231 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
8232 expand a nil default_filename.
8233
8234 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
8235 pointer to glyph_to_pixel_coords, not a frame.
8236
8237 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
8238 coding.h to dependencies.
8239
8240 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
8241
8242 * w32console.c (glyph_to_pixel_coords): Change first parameter to
8243 window pointer to be consistent with w32term.c and xterm.c.
8244
8245 * w32fns.c: Format and doc changes to bring closer to xfns.c.
8246 (VIETNAMESE_CHARSET): Define if not defined in system headers.
8247 (Qline_spacing, Qcenter): New variables.
8248 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
8249 (x_set_line_spacing): New function.
8250 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT macros.
8251 (x_specified_cursor_type): New function.
8252 (x_set_cursor_type): Use it.
8253 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
8254 and icon strings.
8255 (validate_x_resource_name, x_get_resource_string): Measure lengths
8256 of external strings in bytes.
8257 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
8258 GetTextExtentPoint32 with NULL title.
8259 (Fx_create_frame): Initialize Qline_spacing.
8260 (w32_load_system_font): Initialize font->double_byte_p.
8261 (x_to_w32_charset): Use Vw32_charset_info_alist.
8262 (Image, busy cursor, tooltip functions): Merged changes from
8263 xfns.c. Not yet functional on Windows.
8264
8265 * w32gui.h (W32FontStruct): Add double_byte_p member.
8266
8267 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
8268 (emacs_button_translation): Use it.
8269 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
8270 in `mask' to be set.
8271
8272 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
8273 menu strings.
8274
8275 * w32term.c: Format and doc changes to bring closer to xterm.c.
8276 (w32_char_font_type): New enum.
8277 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
8278 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
8279 (w32_encode_char): New function.
8280 (x_encode_char): Removed.
8281 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
8282 x_encode_char and w32_font_is_double_byte.
8283 (x_produce_image_glyph): Use image_ascent.
8284 (x_produce_glyphs): Use new version of w32_per_char_metric and
8285 handle NULL return value. Allow extra line spacing.
8286 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
8287 (w32_get_glyph_overhangs): Remove unicode_p param. Use
8288 w32_font_type member of glyph instead.
8289 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
8290 (fast_find_position): Make sure not to consider rows not visible
8291 in the window.
8292 (w32_read_socket) [WM_MENUSELECT]: Cannot call
8293 w32_menu_display_help with input blocked, as it can abort.
8294 (x_display_and_set_cursor): Choose cursor depending
8295 on buffer-local value of cursor_type.
8296 (x_draw_bar_cursor): Add parameter WIDTH.
8297
8298 * w32term.h (CP_DEFAULT): Define.
8299 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
8300
8301 2000-05-30 Gerd Moellmann <gerd@gnu.org>
8302
8303 * search.c (Fre_search_forward, Fre_search_backward)
8304 (Fposix_search_backward, Fposix_search_forward): Doc fix.
8305
8306 2000-05-30 Kenichi Handa <handa@etl.go.jp>
8307
8308 * coding.c (detect_coding_iso2022): Fix code for checking
8309 CODING_CATEGORY_MASK_ISO_8_2.
8310
8311 2000-05-29 Stefan Monnier <monnier@cs.yale.edu>
8312
8313 * regex.c (PREFETCH_NOLIMIT): New function.
8314 (re_match_2_internal): Use it and adjust the end_match_2 logic.
8315
8316 2000-05-29 Gerd Moellmann <gerd@gnu.org>
8317
8318 * syntax.c (find_defun_start): Move test for
8319 open_paren_in_column_0_is_defun_start outside of the loop.
8320
8321 * xdisp.c (redisplay_window): Really switch buffers when
8322 displaying mode lines, and temporarily set selected_frame to the
8323 frame of the window that's redisplayed.
8324
8325 * xfaces.c (free_realized_faces): Block/unblock input.
8326 (free_realized_multibyte_face): Ditto.
8327
8328 2000-05-29 Dave Love <fx@gnu.org>
8329
8330 * textprop.c (Qkeymap): New variable.
8331 (syms_of_textprop): Intern it.
8332
8333 * keymap.c: Include intervals.h.
8334 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
8335
8336 * Makefile.in (keymap.o): Depend on intervals.h.
8337
8338 * keyboard.c (menu_bar_items, tool_bar_items)
8339 (Fexecute_extended_command): Deal with `keymap' property.
8340 (read_key_sequence): Track map from `keymap' property as well as
8341 `local_map'.
8342
8343 * intervals.c (get_local_map): Extra arg to allow looking for
8344 `keymap' too.
8345
8346 * intervals.h (map_property): New enum.
8347 (get_local_map): Extra arg using it.
8348 (Qkeymap): Declare.
8349
8350 * lisp.h (get_local_map): Don't declare here.
8351
8352 2000-05-29 Kenichi Handa <handa@etl.go.jp>
8353
8354 * Makefile.in (callproc.o): Depend on composite.h.
8355
8356 * callproc.c: Include composite.h.
8357 (Fcall_process): Handle composition correctly.
8358
8359 * coding.h (coding_allocate_composition_data): Extern it.
8360 (coding_restore_composition): Likewise.
8361
8362 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
8363 yet allocated, finish decoding with result
8364 CODING_FINISH_INSUFFICIENT_CMP.
8365 (coding_allocate_composition_data): Make it non-static.
8366 (coding_restore_composition): Likewise.
8367
8368 2000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
8369
8370 * charset.c (syms_of_charset): Revert last change.
8371
8372 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
8373
8374 * term.c (produce_glyphs): Treat characters from the eight-bit-*
8375 charsets as unibyte, with 1-column screen width. Sent by Kenichi
8376 Handa.
8377
8378 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
8379
8380 * charset.c (syms_of_charset): Set width of character sets
8381 eight-bit-control and eight-bit-graphic to 1 column.
8382
8383 2000-05-26 Gerd Moellmann <gerd@gnu.org>
8384
8385 * config.in (HAVE_SPEED_T): New define.
8386
8387 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
8388 `extern speed_t'.
8389
8390 2000-05-26 Dave Love <fx@gnu.org>
8391
8392 * coding.c (shrink_decoding_region): Initialize eol_conversion.
8393
8394 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
8395 (Fsubr_arity): New function.
8396 (syms_of_data): Install them.
8397
8398 2000-05-26 Kenichi Handa <handa@etl.go.jp>
8399
8400 * charset.c (init_charset_once): Set the table bytes_by_char_head
8401 correctly.
8402
8403 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
8404 the default fontset to what Emacs uses by default.
8405 (check_registry_encoding): This function deleted.
8406 (Fset_fontset_font): Remove the adhoc condition for the default
8407 fontset. Allow cons in FONTNAME.
8408
8409 * fns.c (map_char_table): Ignore char-table entries for
8410 charsets eight-bit-control and eight-bit-graphic.
8411
8412 2000-05-25 Ken Raeburn <raeburn@gnu.org>
8413
8414 * emacs.c (main): Initialize keyboard syms before initializing
8415 window code, so face names are available.
8416
8417 2000-05-25 Stefan Monnier <monnier@cs.yale.edu>
8418
8419 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
8420 of an anchor at the beginning of a shy-group.
8421
8422 2000-05-25 Gerd Moellmann <gerd@gnu.org>
8423
8424 * xdisp.c (handle_invisible_prop): Don't try to skip over
8425 invisible text if end of text is already reached.
8426
8427 2000-05-25 Dave Love <fx@gnu.org>
8428
8429 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
8430
8431 * coding.c (encode_eol): Add null statement after label.
8432
8433 2000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
8434
8435 * w16select.c (Fw16_set_clipboard_data): Fix the change from
8436 2000-05-20.
8437
8438 2000-05-25 Kenichi Handa <handa@etl.go.jp>
8439
8440 * ccl.c (ccl_driver): Fix previous change.
8441
8442 2000-05-25 Kenichi Handa <handa@etl.go.jp>
8443
8444 * coding.c (run_pre_post_conversion_on_str): Set point to the
8445 beginning of buffer before calling coding->post_read_conversion.
8446 (decode_coding_string): Give correct args to
8447 run_pre_post_conversion_on_str.
8448 (encode_coding_string): Likewise.
8449
8450 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
8451 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
8452 eight-bit-graphic correctly.
8453
8454 2000-05-24 Kenichi HANDA <handa@etl.go.jp>
8455
8456 * fileio.c (Finsert_file_contents): Even if a file is not found,
8457 execute codes for setting up coding system. Call
8458 after-insert-file-functions unconditionally.
8459
8460 2000-05-24 Gerd Moellmann <gerd@gnu.org>
8461
8462 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
8463 BSD_PGRPS are not defined.
8464
8465 2000-05-24 Kenichi Handa <handa@etl.go.jp>
8466
8467 * charset.c (update_charset_table): Accept nil in LONG_NAME and
8468 DESCRIPTION.
8469 (syms_of_charset): Avoid building same strings.
8470
8471 2000-05-23 Gerd Moellmann <gerd@gnu.org>
8472
8473 * lread.c (Fload): Add a comment about the meaning of
8474 Vuser_init_file being t.
8475
8476 * puresize.h (BASE_PURESIZE): Increase to 675000.
8477
8478 * s/gnu-linux.h (setpgrp): Don't define it here because this
8479 prevents compilation on GNU/Linux systems with glib 2.2.
8480
8481 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
8482 as setpgid.
8483
8484 2000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
8485
8486 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
8487 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
8488 version.
8489 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
8490
8491 2000-05-23 Kenichi Handa <handa@etl.go.jp>
8492
8493 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8494
8495 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
8496
8497 * term.c (encode_terminal_code): Set coding->src_multibyte properly.
8498
8499 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
8500
8501 2000-05-22 Kenichi Handa <handa@etl.go.jp>
8502
8503 * keyboard.c (read_char): Allow character codes 128..255 to be
8504 handled by input-method-function.
8505
8506 * insdel.c (adjust_markers_for_replace): Fix previous change.
8507 (adjust_after_replace): If PREV_TEXT is nil, call
8508 adjust_markers_for_insert, not adjust_markers_for_replace.
8509
8510 2000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
8511
8512 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
8513 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
8514 [HAVE_GRANDPT]: Define.
8515 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
8516
8517 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
8518 like SYSV_PTYS.
8519
8520 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
8521
8522 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
8523
8524 2000-05-20 Kenichi Handa <handa@etl.go.jp>
8525
8526 The following changes are to handle 8-bit characters in a
8527 multibyte buffer/string without facing with byte combining
8528 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
8529 eight-bit-graphic (for 0xA0..0xFF) are introduced.
8530
8531 * Makefile.in (fns.o): Depend on charset.h.
8532
8533 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
8534 convert it to unibyte.
8535 (make_string): Use parse_str_as_multibyte, not chars_in_text.
8536
8537 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
8538 apparent char boundary.
8539 (Fset_buffer_multibyte): Convert 8-bit characters in the range
8540 0x80..0x9F to/from multibyte form.
8541
8542 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
8543 to unibyte.
8544
8545 * callproc.c (Fcall_process): Always encode an argument string if
8546 it is multibyte. Setup src_multibyte and dst_multibyte members of
8547 process_coding properly.
8548
8549 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
8550 SPLIT_NON_ASCII_CHAR.
8551
8552 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
8553 as is.
8554 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
8555
8556 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New variables.
8557 (SPLIT_CHARACTER_SEQ): This macro deleted.
8558 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is valid.
8559 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
8560 and eight-bit-graphic.
8561 (char_to_string): Likewise. Signal an error for too large
8562 character code.
8563 (char_printable_p): Return 0 for 8-bit characters.
8564 (update_charset_table): Update iso_charset_table only when a final
8565 character is non-negative.
8566 (find_charset_in_text): Renamed from find_charset_in_str.
8567 Arguments and return value changed. Callers changed.
8568 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
8569 be -1 if CHARSET is used only internally.
8570 (Fmake_char_internal): Handle new charsets; eight-bit-control and
8571 eight-bit-graphic.
8572 (Fcharset_after): Simplified.
8573 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
8574 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
8575 (multibyte_chars_in_text): Simplified by assuming there's no
8576 invalid multibyte sequence.
8577 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
8578 (str_as_unibyte): New functions.
8579 (Fstring): Simpified by assuming that byte combining never happens.
8580 (init_charset_once): Initialization for
8581 LEADING_CODE_8_BIT_CONTROL.
8582 (syms_of_charset): Intern and staticpro Qeight_bit_control and
8583 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
8584 eight-bit-control and eight-bit-graphic.
8585
8586 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL)
8587 (CHARSET_8_BIT_GRAPHIC): New macros.
8588 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
8589 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
8590 (CHARSET_REVERSE_CHARSET): Likewise.
8591 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
8592 eight-bit-graphic.
8593 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
8594 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
8595 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
8596 encounter an invalid multibyte sequence.
8597 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
8598 sequence is always valid.
8599 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
8600 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New macros.
8601 (CHAR_STRING): For 8-bit characters, call char_to_string.
8602 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
8603 multibyte sequence is always valid.
8604 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
8605 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
8606 (str_as_unibyte): Extern them.
8607 (BCOPY_SHORT): Fix a bug.
8608 (CHAR_LEN): This macro deleted. Callers changed to use CHAR_BYTES.
8609 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
8610 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
8611 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
8612
8613 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
8614 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
8615 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE)
8616 (EMIT_BYTES): New macros.
8617 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII)
8618 (DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
8619 macros deleted.
8620 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
8621 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
8622 check the validity of multibyte sequence.
8623 (decode_coding_emacs_mule): New function.
8624 (encode_coding_emacs_mule): New macro.
8625 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
8626 the source.
8627 (DECODE_ISO_CHARACTER): Just return a character code.
8628 (DECODE_COMPOSITION_START): Set coding->result instead of result.
8629 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
8630 EMIT_CHAR to produced decoded characters. Exit the loop only by
8631 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
8632 block here.
8633 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
8634 only position codes for an invalid character.
8635 (encode_designation_at_bol): Return new destination pointer. 5th
8636 arg DSTP is changed to DST.
8637 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
8638 from the source by ONE_MORE_CHAR. Don't handle the case of last
8639 block here.
8640 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
8641 macros deleted.
8642 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
8643 (detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
8644 TWO_MORE_BYTES to fetch a byte from the source.
8645 (encode_eol): Pay attention to coding->src_multibyte.
8646 (detect_coding, detect_eol): Preserve members src_multibyte and
8647 dst_multibyte.
8648 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
8649 (encoding_buffer_size): Set magnification to 3 for all coding
8650 systems that require encoding.
8651 (ccl_coding_driver): For decoding, be sure that the result is
8652 valid multibyte sequence.
8653 (decode_coding): Initialize coding->errors and coding->result.
8654 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
8655 and raw-text, always call decode_eol. Handle the case of last
8656 block here. If not coding->dst_multibyte, convert the resulting
8657 sequence to unibyte.
8658 (encode_coding): Initialize coding->errors and coding->result.
8659 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
8660 and raw-text, always call encode_eol. Handle the case of last
8661 block here.
8662 (shrink_decoding_region, shrink_encoding_region): Detect cases
8663 that we can't skip data more rigidly.
8664 (code_convert_region): Setup src_multibyte and dst_multibyte
8665 members of coding. For decoding, if the buffer is multibyte,
8666 convert the source sequence to unibyte in advance. For encoding,
8667 if the buffer is multibyte, convert the resulting sequence to
8668 multibyte afterward.
8669 (run_pre_post_conversion_on_str): New function.
8670 (code_convert_string): Deleted and divided into the following two.
8671 (decode_coding_string, encode_coding_string): New functions.
8672 (code_convert_string1, code_convert_string_norecord): Call one of
8673 above.
8674 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
8675 MAKE_NON_ASCII_CHAR.
8676 (Fset_terminal_coding_system_internal)
8677 (Fset_safe_terminal_coding_system_internal): Setup src_multibyte
8678 and dst_multibyte members.
8679 (init_coding_once): Initialize iso_code_class with new enum
8680 ISO_control_0 and ISO_control_1.
8681
8682 * coding.h (enum iso_code_class_type): Member ISO_control_code is
8683 devided into ISO_control_0 and ISO_control_1.
8684 (struct coding_system): New members src_multibyte, dst_multibyte,
8685 errors, and result. Delete member fake_multibyte.
8686 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
8687 nonzero.
8688 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
8689 nonzero.
8690
8691 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
8692 (Faset): Likewise.
8693
8694 * editfns.c (Fformat): Be sure to convert 8-bit characters to
8695 multibyte form.
8696 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
8697 combining occurs.
8698 (Ftranspose_region): Delete codes for handling byte combining.
8699
8700 * fileio.c (Finsert_file_contents): Setup src_multibyte and
8701 dst_multibyte members of coding. On handling REPLACE on unibyte
8702 buffer, convert the result of decode_coding to unibyte. On
8703 inserting into a mutibyte buffer, always call code_convert_region.
8704 (e_write): Setup coding->src_multibyte according to the
8705 multibyteness of the source (buffer or string).
8706
8707 * fns.c (concat): Handle 8-bit characters correctly.
8708 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
8709 unibyte in the result.
8710 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
8711 valid multibyte form in the result.
8712 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
8713 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
8714 return -1, signal an error.
8715 (base64_encode_1): New arg MULTIBYTE. Get each character by
8716 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
8717 character is found, return -1.
8718 (Fbase64_decode_region): Delete codes for handling byte-combining.
8719 Treat each decoded byte as a unibyte character.
8720 (Fbase64_decode_string): Return unibyte string.
8721 (Fcompare_strings, concat, string_byte_to_char): Use
8722 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
8723 FETCH_STRING_CHAR_ADVANCE.
8724 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8725 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
8726
8727 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
8728 SPLIT_NON_ASCII_CHAR.
8729 (fontset_ref_via_base, fontset_set): Likewise
8730
8731 * insdel.c (adjust_markers_for_record_delete): Deleted.
8732 (adjust_markers_for_insert): Argument changed. Caller changed.
8733 (adjust_markers_for_replace): Likewise.
8734 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error)
8735 (CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
8736 (copy_text): Delete unused local varialbe c_save. For converting
8737 to multibyte, be sure to make all 8-bit characters in valid
8738 multibyte form.
8739 (count_size_as_multibyte): Handle 8-bit characters correctly.
8740 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
8741 (adjust_after_replace, replace_range, del_range_2)
8742 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
8743 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
8744 (adjust_after_replace, replace_range, del_range_2) Delete codes for
8745 handling byte combining.
8746 (adjust_before_replace): Deleted.
8747
8748 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
8749 SPLIT_NON_ASCII_CHAR.
8750 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
8751 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8752 (Fkey_description): Likewise.
8753
8754 * lread.c (read1): On reading multibyte string, be sure to make
8755 all 8-bit chararacters in valid multibyte form.
8756 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8757
8758 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
8759 unconditionally.
8760
8761 * process.c (Fstart_process): GCPRO current_dir before calling
8762 Ffind_operation_coding_system. Encode arguments here.
8763 (create_process): Don't encode arguments here. Setup
8764 src_multibyte and dst_multibyte members of struct coding.
8765 (read_process_output): Setup src_multibyte and dst_multibyte
8766 members of struct coding. If the output is to multibyte buffer,
8767 always decode the output of the process. Adjust the
8768 representation of 8-bit characters to the multibyteness of the output.
8769 (send_process): Setup coding->src_multibyte according to the
8770 multibyteness of the source.
8771
8772 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8773 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
8774 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
8775
8776 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of CHAR_LEN.
8777
8778 * w16select.c (Fw16_set_clipboard_data): Setup members
8779 src_multibyte and dst_multibyte of coding. Adjusted for the
8780 change for find_charset_in_str.
8781 (Fw16_get_clipboard_data): Likewise.
8782
8783 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
8784 dst_multibyte of coding.
8785 (x_to_w32_font): Likewise.
8786
8787 * w32select.c (Fw32_set_clipboard_data): Setup members
8788 src_multibyte and dst_multibyte of coding. Adjusted for the
8789 change for find_charset_in_str.
8790 (Fw32_get_clipboard_data): Likewise.
8791
8792 * xdisp.c (get_next_display_element): Handle 8-bit characters
8793 correctly.
8794 (next_element_from_display_vector): Use CHAR_BYTES instead of CHAR_LEN.
8795 (disp_char_vector): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
8796
8797 * xselect.c (selection_data_to_lisp_data): Setup members
8798 src_multibyte and dst_multibyte of coding. Adjusted for the
8799 change for find_charset_in_str.
8800 (lisp_data_to_selection_data): Likewise.
8801
8802 2000-05-19 Gerd Moellmann <gerd@gnu.org>
8803
8804 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed buffer.
8805
8806 * dispextern.h (Vimage_types): Add extern declaration.
8807
8808 * xdisp.c (Vimage_types): Moved here from xfns.c.
8809 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
8810
8811 * xfns.c (Vimages_types): Moved to xdisp.c.
8812 (syms_of_xfns): Move `image-types' to xdisp.c.
8813
8814 * w32fns.c (Vimage_types): Removed.
8815 (syms_of_w32fns): Remove `image-types'.
8816
8817 2000-05-18 Kenichi Handa <handa@etl.go.jp>
8818
8819 * fns.c (map_char_table): Pay attention to character number of
8820 charset. Check the validity of charset at the first level. For
8821 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
8822 the default value.
8823
8824 * fontset.c: Include "buffer.h".
8825 (fs_load_font): If the face has fontset, record the face ID in
8826 that fontset.
8827 (Finternal_char_font): New function.
8828 (accumulate_font_info): New function.
8829 (Ffontset_info): Rewritten for the new fontset implementation.
8830 (syms_of_fontset): Register Vdefault_fontset in the first element
8831 of Vfontset_table. Include Vdefault_fontset in
8832 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
8833 function.
8834
8835 2000-05-16 Dave Love <fx@gnu.org>
8836
8837 * m/iris5d.h: Deleted -- unused.
8838
8839 2000-05-16 Gerd Moellmann <gerd@gnu.org>
8840
8841 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
8842 `invalid' instead of `illegal'.
8843
8844 * indent.c (Fmove_to_column): When ending within a tab, insert
8845 spaces first so that markers at the end of the tab get adjusted.
8846
8847 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
8848 buffer list that wasn't selected in that frame.
8849
8850 * filelock.c (get_boot_time): To obtain an 8 char file name, which
8851 is needed on mescaline, use a 2 char prefix, and call
8852 make_temp_name with second arg non-zero.
8853
8854 * fileio.c (make_temp_name): New function, extracted from
8855 Fmake_temp_name.
8856 (Fmake_temp_name): Use it.
8857
8858 2000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
8859
8860 * window.c (coordinates_in_window): Subtract 1 when computing right_x.
8861
8862 2000-05-15 Gerd Moellmann <gerd@gnu.org>
8863
8864 * Makefile.in (lisp): Add env.elc.
8865
8866 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
8867
8868 2000-05-12 Gerd Moellmann <gerd@gnu.org>
8869
8870 * search.c (Freplace_match): Handle case of `\N' in the
8871 replacement when there's no group N.
8872
8873 2000-05-11 Gerd Moellmann <gerd@gnu.org>
8874
8875 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
8876 of the message to message_dolog.
8877
8878 * keyboard.c (read_char): Don't clear current message for help
8879 events; let the code handling help events handle this. Change
8880 code detecting help events that should be ignored.
8881
8882 * xdisp.c (handle_single_display_prop): Don't try to set PT if
8883 we're interating over a string.
8884
8885 2000-05-09 Dave Love <fx@gnu.org>
8886
8887 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
8888 that offset before writing. Move gcpro region past call of
8889 Ffile_regular_p.
8890
8891 2000-05-04 Dave Love <fx@gnu.org>
8892
8893 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
8894
8895 2000-05-04 Gerd Moellmann <gerd@gnu.org>
8896
8897 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
8898 of inserted characters when BUF equals the current buffer, and PT
8899 is in front of or equal to FROM.
8900
8901 2000-05-03 Gerd Moellmann <gerd@gnu.org>
8902
8903 * xdisp.c (handle_single_display_prop): If display property value
8904 is invalid, or something not supported on the frame, restore
8905 iterator's position to what it was initially. Make sure to return
8906 0 for invalid and unsupported property values.
8907
8908 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
8909 that x_per_char_metric returns null.
8910
8911 2000-05-02 Gerd Moellmann <gerd@gnu.org>
8912
8913 * xterm.h (struct face): Add forward declaration.
8914 (struct image): Ditto.
8915 (image_ascent): Add prototype.
8916
8917 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
8918 (x_draw_image_relief, x_draw_image_foreground_1): Call function
8919 image_ascent instead of using IMAGE_ASCENT.
8920
8921 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
8922 (IMAGE_ASCENT): Removed.
8923
8924 * xfns.c (Qcenter): New variable.
8925 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
8926 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
8927 (image_ascent): New function.
8928 (lookup_image): Recognize `:ascent center'.
8929 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
8930 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
8931 (xbm_load): Don't set image's ascent here.
8932 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
8933 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
8934 check ascent values here.
8935 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
8936 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
8937 (syms_of_xfns): Initialize Qcenter.
8938
8939 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
8940 to the limits, increase the limits.
8941
8942 2000-05-01 Kenichi Handa <handa@etl.go.jp>
8943
8944 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
8945 Check Vfont_encoding_alist against the full name of the opened font.
8946
8947 2000-04-28 Gerd Moellmann <gerd@gnu.org>
8948
8949 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
8950 taller than the window.
8951
8952 2000-04-28 Kenichi Handa <handa@etl.go.jp>
8953
8954 * xfaces.c (realize_x_face): Fix the argument of the second
8955 xassert. BASE_FACE may not be a face for ASCII.
8956
8957 2000-04-27 Gerd Moellmann <gerd@gnu.org>
8958
8959 * print.c (print_object): Treat print-length < 0 as nil.
8960
8961 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
8962
8963 * s/freebsd.h (TERMCAP_OBJ): Removed.
8964 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
8965
8966 * lread.c (read1): Don't treat period followed by certain
8967 characters as symbol start.
8968
8969 * xfns.c (slurp_file): New function.
8970 (xbm_image_p): Handle case of in-memory XBM files.
8971 (xbm_scan): Rewritten to work on memory buffers instead of files.
8972 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
8973 Work on memory buffers instead of files. If DATA is null test
8974 if buffer looks like an in-memory XBM file.
8975 (xbm_load_image): Renamed from xbm_load_image_file. Work on
8976 memory buffers instead of files.
8977 (xbm_file_p): New function.
8978 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
8979
8980 * lread.c (end_of_file_error): New function.
8981 (read1): Call it instead of signaling `end-of-file' directly.
8982
8983 * print.c (print_error_message): Print data of `end-of-file'
8984 with Fprinc instead of Fprin1.
8985
8986 2000-04-26 Ken Raeburn <raeburn@gnu.org>
8987
8988 * window.c (freeze_window_start): Check that minibuffer scroll
8989 window isn't nil before extracting the window structure pointer
8990 from it.
8991
8992 * undo.c (record_delete): If we hit the end of the undo list, stop
8993 picking elements apart.
8994
8995 2000-04-26 Gerd Moellmann <gerd@gnu.org>
8996
8997 * xdisp.c (display_line): If lines are continued, restore
8998 iterator's ascent/descent information to the values before the
8999 first glyph not fitting on the line.
9000
9001 2000-04-25 Gerd Moellmann <gerd@gnu.org>
9002
9003 * xdisp.c (try_window_id) <all changes above window start>: Adjust
9004 positions in glyph matrix. Don't compute new window end positions.
9005
9006 * dispnew.c (increment_matrix_positions): Renamed from
9007 increment_glyph_matrix_buffer_positions.
9008 (increment_row_positions): Renamed from
9009 increment_glyph_row_buffer_positions.
9010
9011 * dispextern.h: Change names of renamed functions from dispnew.c
9012 in prototypes.
9013
9014 2000-04-24 Gerd Moellmann <gerd@gnu.org>
9015
9016 * fileio.c (Fdo_auto_save): Create directories for auto-save
9017 list file if necessary.
9018
9019 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
9020 from buffer or frame.
9021 (automatic_hscrolling_p): New variable.
9022 (hscroll_windows): Scroll windows horizontally only if automatic
9023 hscrolling is allowed.
9024 (syms_of_xdisp): New variable `automatic-hscrolling'.
9025
9026 * frame.h (struct frame): Add member extra_line_spacing.
9027
9028 * xfns.c (x_set_line_spacing): New function.
9029 (Fx_create_frame): Set line spacing from resources.
9030 (Qline_spacing): New variable.
9031 (syms_of_xfns): Initialize Qline_spacing.
9032
9033 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
9034
9035 * buffer.c (init_buffer_once): Handle extra_line_spacing.
9036 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
9037 (reset_buffer): Don't initialize extra2 and extra3. Initialize
9038 extra_line_spacing from default value.
9039 (init_buffer_once): Initialize default value of extra_line_spacing.
9040
9041 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
9042 and extra3.
9043
9044 * xterm.c (x_produce_glyphs): Remove reference to struct it's
9045 prompt_width. Add extra line spacing.
9046
9047 * term.c (produce_glyphs): Remove reference to struct it's
9048 prompt_width.
9049
9050 * dispextern.h (struct it): Remove member prompt_width, add
9051 extra_line_spacing.
9052
9053 2000-04-22 Gerd Moellmann <gerd@gnu.org>
9054
9055 * dispnew.c (update_frame_line): When writing a whole line, make
9056 sure cursor is in the right row afterwards, otherwise a use of
9057 capability `ch' in cmgoto might leave the cursor in the row below.
9058
9059 2000-04-21 Gerd Moellmann <gerd@gnu.org>
9060
9061 * lisp.h (struct Lisp_Buffer_Cons): Remove.
9062
9063 * keyboard.c (timer_check): Fix typo in comment.
9064
9065 2000-04-21 Kenichi Handa <handa@etl.go.jp>
9066
9067 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
9068 name change: ch -> character.
9069
9070 2000-04-20 Gerd Moellmann <gerd@gnu.org>
9071
9072 * keyboard.c (echo_message_buffer): New variable.
9073 (echo_now): Set echo_message_buffer to the echo area buffer used
9074 to display the echo.
9075 (cancel_echoing): Reset echo_message_buffer to nil.
9076 (read_char): Code rewritten that handles canceling an echo or
9077 echoing a dash, respectively.
9078
9079 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
9080 directory doesn't exist.
9081
9082 2000-04-19 Dave Love <fx@gnu.org>
9083
9084 * fns.c (syms_of_fns): Defsubr mapc.
9085 (concat): Don't allow numeric args.
9086 (Fconcat): Doc change.
9087
9088 2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
9089
9090 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
9091 instead define end_match(1|2) more carefully.
9092 Use GET_CHAR_BEFORE_2 for `begline'.
9093
9094 2000-04-19 Gerd Moellmann <gerd@gnu.org>
9095
9096 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
9097 on 64-bit systems where NULL is defined as `0'.
9098
9099 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
9100 the `variable argument list' to make it work on Alpha.
9101
9102 * m/alpha.h (_LP64) [!_LP64]: Define.
9103 (ORDINARY_LINK): Define for NetBSD.
9104
9105 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
9106
9107 2000-04-19 Dave Love <fx@gnu.org>
9108
9109 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
9110 change.
9111
9112 * Makefile.in (LIBS): Don't use.
9113 (GETLOADAVG_OBJ): Define again.
9114 (otherobj): Add GETLOADAVG_OBJ.
9115
9116 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
9117
9118 2000-04-18 Gerd Moellmann <gerd@gnu.org>
9119
9120 * lread.c (read_filtered_event): Cancel and start busy cursor.
9121
9122 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
9123 that the per-character metrics may be null.
9124
9125 2000-04-17 Gerd Moellmann <gerd@gnu.org>
9126
9127 * buffer.c (clone_per_buffer_values): New function.
9128 (Fmake_indirect_buffer): Add optional argument CLONE. Call
9129 clone_per_buffer_values if CLONE is not nil.
9130
9131 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
9132
9133 2000-04-16 Dave Love <fx@gnu.org>
9134
9135 * Makefile.in: Remove obsolete localcpp stuff.
9136 (GETLOADAVG_OBJ): Don't define.
9137 (obj): Move LIBOBJS...
9138 (otherobj): ... to here.
9139 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
9140 whitespace-only lines after the continuation (Irix).
9141
9142 2000-04-14 Gerd Moellmann <gerd@gnu.org>
9143
9144 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
9145
9146 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
9147
9148 2000-04-14 Dave Love <fx@gnu.org>
9149
9150 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
9151 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
9152 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
9153 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
9154 NLIST_STRUCT.
9155
9156 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
9157 autoconfiscated HAVE_GETLOADAVG.
9158
9159 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
9160 BROKEN_MKTIME.
9161
9162 2000-04-14 Gerd Moellmann <gerd@gnu.org>
9163
9164 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
9165 (fill_in_lock_file_name): Avoid existing files that aren't links.
9166
9167 2000-04-14 Dave Love <fx@gnu.org>
9168
9169 * Makefile.in (LIBS, LIBOBJS): New variable.
9170 (INTERVAL_SRC): Convert to make variable.
9171 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
9172 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
9173 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
9174 add LIBOBJS.
9175 (SOME_MACHINE_OBJECTS): Remove interval stuff.
9176 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
9177 (shortlisp): Add facemenu, float-sup, frame.
9178 (SOME_MACHINE_LISP): Remove them from here.
9179 (LIBES): Change unused LDLIBS to autoconf LIBS.
9180
9181 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
9182
9183 2000-04-14 Kenichi Handa <handa@etl.go.jp>
9184
9185 * composite.c (update_compositions): If FROM and TO are not in a
9186 valid range, do nothing.
9187
9188 2000-04-13 Gerd Moellmann <gerd@gnu.org>
9189
9190 * tparam.c (tparam1): Abort when encountering an unknown `%'-specifier.
9191
9192 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as terminfo.o.
9193
9194 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
9195 as TERMCAP_OBJ.
9196
9197 2000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
9198
9199 * fileio.c (a_write): Remove redundant semi-colons.
9200 (e_write): Return -1 if failed to write all the data.
9201 This fixes the changes made at 1999-12-15.
9202
9203 2000-04-12 Dave Love <fx@gnu.org>
9204
9205 * fns.c (mapcar1): Test for null vals to support mapc.
9206 (Fmapc): New function.
9207
9208 2000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
9209
9210 * msdos.c (NUM_MOUSE_BUTTONS): Define.
9211 (IT_frame_up_to_date): Support the buffer local value of
9212 cursor-type, if defined.
9213
9214 2000-04-10 Dave Love <fx@gnu.org>
9215
9216 * editfns.c (preceding-char, following-char): Doc fix.
9217
9218 2000-04-10 Ken Raeburn <raeburn@gnu.org>
9219
9220 * Makefile.in (temacs): Revert 2000-03-12 change.
9221
9222 2000-04-10 Jason Rumney <jasonr@gnu.org>
9223
9224 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
9225
9226 2000-04-10 Gerd Moellmann <gerd@gnu.org>
9227
9228 * xdisp.c (setup_echo_area_for_printing): Choose an echo
9229 area buffer, if it's not set up yet.
9230
9231 * indent.c (compute_motion): Set immediate_quit.
9232
9233 2000-04-09 Gerd Moellmann <gerd@gnu.org>
9234
9235 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New variable.
9236 (realize_tty_face): Suppress boldness if colors are the inverse of
9237 the default colors, and tty_suppress_bold_inverse_default_colors_p
9238 is set.
9239 (Ftty_suppress_bold_inverse_default_colors): New function.
9240 (syms_of_xfaces): Defsubr it.
9241
9242 * buffer.c (Frestore_buffer_modified_p): New function.
9243 (syms_of_buffer): Defsubr it.
9244
9245 2000-04-08 Ken Raeburn <raeburn@gnu.org>
9246
9247 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
9248 charset id (int) argument, not a charset (Lisp_Object).
9249
9250 * coding.h (code_convert_string): Declare.
9251 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
9252 object, as the fourth argument to code_convert_string.
9253
9254 * fontset.c (make_fontset_for_ascii_face): Use XINT on return value.
9255 (Fset_fontset_font): Use EQ to compare lisp objects.
9256
9257 2000-04-05 Ken Raeburn <raeburn@gnu.org>
9258
9259 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
9260 a pointer that looks like a lisp object.
9261 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
9262 zero, instead see whether it's an integer object, since they can't
9263 have intervals.
9264 (GET_INTERVAL_OBJECT): Simply assign to the destination.
9265
9266 * dispnew.c (allocate_matrices_for_frame_redisplay)
9267 (direct_output_forward_char): Use X(U)INT and make_number as needed
9268 to convert between (unsigned) int values and lisp integers.
9269 * keyboard.c (read_key_sequence): Likewise.
9270 * lread.c (substitute_object_recurse): Likewise.
9271 * fns.c (concat, hash_lookup, hash_remove): Likewise.
9272 * minibuf.c (do_completion, Fminibuffer_complete_word)
9273 (Fminibuffer_completion_help): Likewise.
9274 * term.c (produce_special_glyphs): Likewise.
9275
9276 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
9277 * print.c (print_preprocess, print_object): Likewise.
9278
9279 * search.c (compile_pattern): Use NILP when checking for nil.
9280
9281 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
9282 __OPTIMIZE__]: Provide a GNU C macro version that handles
9283 lisp-object unions.
9284 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
9285 field, to better cope with ENABLE_CHECKING and calls that modify a
9286 Lisp_Object using its old value.
9287
9288 2000-04-04 Gerd Moellmann <gerd@gnu.org>
9289
9290 * window.c (compare_window_configurations): Signal an error
9291 if parameters C1 or C2 aren't window configurations.
9292
9293 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
9294 AFTER_POTENTIAL_GC calls around calls to functions that can
9295 signal an error and thus invoke the debugger.
9296
9297 2000-04-03 Gerd Moellmann <gerd@gnu.org>
9298
9299 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
9300 an error if decoding fails.
9301
9302 * keyboard.c (lispy_mouse_names): Variable removed.
9303 (Vlispy_mouse_stem): New variable.
9304 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
9305 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
9306 for any mouse button number. Increase size of mouse_syms and
9307 button_down_location as needed. Call modify_event_symbol with
9308 different arguments.
9309 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
9310 Call modify_event_symbol with different arguments.
9311 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
9312 for any button number. Call modify_event_symbol with different
9313 arguments.
9314 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
9315 Accept a string for NAME_ALIST_OR_STEM.
9316
9317 * lisp.h (larger_vector): Add prototype.
9318
9319 * fns.c (larger_vector): Make externally visible.
9320
9321 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
9322
9323 2000-04-02 Stefan Monnier <monnier@cs.yale.edu>
9324
9325 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
9326 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
9327 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
9328 we are between str1 and str2.
9329 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
9330 (PATFETCH): Use `TRANSLATE'.
9331 (PATFETCH_RAW): Fetch multibyte char if applicable.
9332 (PATUNFETCH): Remove.
9333 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
9334 When writing a char, write it directly into the pattern buffer rather
9335 than going needlessly through a temp char-array.
9336 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
9337 multibyte magic and remove the useless `#ifdef emacs'.
9338 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
9339 buffer.
9340
9341 * regex.h (struct re_pattern_buffer): Make field `multibyte'
9342 conditional on `emacs'.
9343
9344 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
9345
9346 2000-04-01 Ken Raeburn <raeburn@gnu.org>
9347
9348 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
9349 non-union-type versions of XMARK and friends here, because XMARK
9350 and friends won't work on an integer field if NO_UNION_TYPE is not
9351 defined.
9352 (make_number): Define as a function if it's not defined as a macro.
9353
9354 * composite.c (run_composite_function): Use NILP when checking for nil.
9355 (syms_of_composite): Delete local var NARGS, pass an int as first
9356 argument to Fmake_hash_table.
9357
9358 * editfns.c (text_property_stickiness): Use NILP to test
9359 Lisp_Object boolean value.
9360 (Fmessage_or_box): Don't use NILP to test int variable.
9361 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
9362 problems reading from and changing the same lisp value in an
9363 XSETSTRING call.
9364
9365 2000-04-01 Gerd Moellmann <gerd@gnu.org>
9366
9367 * term.c (TN_no_color_video): New variable.
9368 (term_init): Intitialize TN_no_color_video.
9369 (enum no_color_bit): New enumeration.
9370 (MAY_USE_WITH_COLORS_P): New macro.
9371 (turn_on_face): Use it to determine if attributes may be used
9372 combined with colors.
9373
9374 2000-04-01 Ken Raeburn <raeburn@gnu.org>
9375
9376 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
9377 with int lvalues via casts; instead, just yield lisp object lvalues.
9378 (enlarge_window): Variable sizep now points to Lisp_Object. Use
9379 proper accessor macros.
9380 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
9381 (grow_mini_window): Fix typo getting int value of root->height.
9382
9383 * xdisp.c (compute_string_pos): Fix order of arguments to
9384 string_pos_nchars_ahead.
9385 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
9386 count arg to variable-arg routines like Frun_hook_with_args and
9387 Fformat.
9388 (back_to_previous_visible_line_start)
9389 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
9390 fixed-arg routines like Fget_char_property and Fmake_string.
9391 (reconsider_clip_changes): Use XINT when comparing integer lisp
9392 objects, or passing them as int arguments.
9393 (mark_window_display_accurate, insert_left_trunc_glyphs)
9394 (append_space, extend_face_to_end_of_line): Use make_number when
9395 storing or passing integer values as lisp objects.
9396 (set_cursor_from_row, highlight_trailing_whitespace): Use
9397 INTEGERP, not implicit test against zero, for glyph object.
9398 (try_window_id): Don't use make_number when we want an int value.
9399
9400 * xfaces.c (xlfd_symbolic_value): Make last argument a
9401 Lisp_Object, to be consistent with callers.
9402 (Fbitmap_spec_p): Use XINT to get numeric value of height.
9403 (lface_hash): Apply XFASTINT to lisp values before folding in.
9404
9405 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
9406 fill in window width and height. Pass an int, not a lisp object,
9407 as first arg to Finsert.
9408
9409 2000-04-01 Gerd Moellmann <gerd@gnu.org>
9410
9411 * xfaces.c (realize_basic_faces): Block input while realizing
9412 the faces.
9413
9414 * keyboard.c (lispy_mouse_names): Add additional mouse names.
9415
9416 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
9417
9418 2000-03-31 Gerd Moellmann <gerd@gnu.org>
9419
9420 * xterm.c (x_produce_glyphs): When displaying unibyte text
9421 or ASCII, handle case that per-char metric is null.
9422
9423 2000-03-30 Ken Raeburn <raeburn@gnu.org>
9424
9425 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
9426
9427 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW)
9428 (XSUBR, XBUFFER): Verify correct object type before returning
9429 pointer, using eassert.
9430 * frame.h (XFRAME): Likewise.
9431
9432 * buffer.c (Frename_buffer, Fset_buffer_multibyte)
9433 (swap_out_buffer_local_variables, Fmove_overlay): Don't apply
9434 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong type.
9435 * data.c (set_internal): Likewise.
9436 * dispextern.h (WINDOW_WANTS_MODELINE_P)
9437 (WINDOW_WANTS_HEADER_LINE_P): Likewise.
9438 * fileio.c (auto_save_1): Likewise.
9439 * insdel.c (check_markers): Likewise.
9440 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
9441 * undo.c (record_insert): Likewise.
9442 * vmsproc.c (child_sig): Likewise.
9443 * window.c (unshow_buffer, window_loop): Likewise.
9444 * xterm.c (x_erase_phys_cursor): Likewise.
9445
9446 2000-03-30 Gerd Moellmann <gerd@gnu.org>
9447
9448 * xfns.c (free_image_cache): Free the cache structure itself
9449 last, after all its members have been freed.
9450
9451 * lisp.h (xstrdup): Add prototype.
9452
9453 * alloc.c (xstrdup): Moved here from xfaces.c.
9454 (allocating_for_lisp): Variable removed.
9455 (lisp_malloc): Block input around the calls to malloc and mem_insert.
9456
9457 * xfaces.c (realize_tty_face): Use find_symbol_value instead
9458 of Fsymbol_value.
9459 (xstrdup): Moved to alloc.c.
9460
9461 2000-03-29 Ken Raeburn <raeburn@gnu.org>
9462
9463 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
9464
9465 * emacs.c (main): Fix sense of no-loadup test.
9466
9467 * config.in (ENABLE_CHECKING): Undef.
9468
9469 * lisp.h (struct interval): Replace "parent" field with a union of
9470 interval pointer and Lisp_Object; add new bitfield to use as
9471 discriminant. Change other flag fields to bitfields.
9472 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
9473 is defined and the supplied test fails, print a message and abort.
9474 (eassert): New macro. Use CHECK to provide an assert-like facility.
9475
9476 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
9477 pointers; abort if the value looks like a lisp object.
9478 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT)
9479 (SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
9480 Modify for new interval parent definition.
9481
9482 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE)
9483 (UNMARK_BALANCE_INTERVALS): Update references that need an
9484 addressable lisp object in the interval structure.
9485 (die): New function.
9486 (suppress_checking): New variable.
9487
9488 * intervals.c (interval_start_pos): Just return 0 if there's no
9489 parent object.
9490
9491 2000-03-29 Gerd Moellmann <gerd@gnu.org>
9492
9493 * lread.c (read1): Accept `.' (period) as symbol start like in CL
9494 and earlier Emacs versions.
9495
9496 * keyboard.c (Ftop_level): Cancel busy-cursor.
9497
9498 * eval.c (call_debugger): Cancel busy-cursor.
9499
9500 2000-03-29 Kenichi Handa <handa@etl.go.jp>
9501
9502 * search.c (Freplace_match): Adjust multibyteness of the current
9503 buffer and NEWTEXT. Free allocated memory before signaling an error.
9504
9505 2000-03-28 Stefan Monnier <monnier@cs.yale.edu>
9506
9507 * regex.c (analyse_first): New function obtained by ripping out most
9508 of re_compile_fastmap and generalizing it a little bit so that it
9509 can also just return whether a given (sub)pattern can match the empty
9510 string or not.
9511 (regex_compile): Use `analyse_first' to decide whether the loop-check
9512 needs to be done or not for *, +, *? and +? (the loop check is costly
9513 for non-greedy repetition).
9514 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
9515
9516 2000-03-28 Dave Love <fx@gnu.org>
9517
9518 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k, alpha.
9519
9520 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
9521
9522 2000-03-27 Stefan Monnier <monnier@cs.yale.edu>
9523
9524 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
9525 an expression.
9526 (enum re_opcode_t): Update description of succeed_n.
9527 (PATFETCH): Always define.
9528 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
9529 operators, char classes, shy-groups and intervals).
9530 Optimize special cases of intervals so as to only use succeed_n and
9531 jump_n when really needed.
9532 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
9533 that we don't have to handle the special cases any more.
9534 Simplify on_failure_jump handling as well.
9535
9536 2000-03-28 Jason Rumney <jasonr@gnu.org>
9537
9538 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
9539
9540 2000-03-27 Gerd Moellmann <gerd@gnu.org>
9541
9542 * s/freebsd.h (GC_SETJMP_WORKS): Define.
9543
9544 * s/msdos.h (GC_SETJMP_WORKS): Define.
9545
9546 * alloc.c (mark_maybe_object): New function.
9547 (mark_memory): Use it.
9548 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
9549 (setjmp_tested_p, longjmp_done): New variables.
9550 (test_setjmp): New function.
9551 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
9552 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
9553
9554 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
9555 to DEC_TEXT_POS and INC_TEXT_POS.
9556
9557 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
9558 with parameter MULTIBYTE_P.
9559
9560 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter MULTIBYTE_P.
9561
9562 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
9563 buffers because it looks for multibyte character byte sequences
9564 which don't exist in unibyte text.
9565
9566 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
9567
9568 * xfaces.c (register_color, unregister_color, unregister_colors)
9569 [DEBUG_X_COLORS]: New functions.
9570 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
9571
9572 * xfns.c (x_set_cursor_color): Get color reference counts right.
9573
9574 * xterm.c (x_copy_color): New function.
9575 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
9576
9577 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
9578 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
9579 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
9580 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
9581 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
9582 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
9583 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
9584 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
9585 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
9586 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
9587
9588 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
9589 names for handling per-buffer variables.
9590
9591 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
9592 instead of MAX_BUFFER_LOCAL_VARS.
9593 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
9594
9595 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
9596
9597 * xfns.c (x_specified_cursor_type): New function.
9598 (x_set_cursor_type): Use it.
9599
9600 * buffer.h (struct buffer): Add cursor_type.
9601
9602 2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
9603
9604 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
9605 (print_partial_compiled_pattern, re_compile_fastmap):
9606 Handle new opcode.
9607 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
9608 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
9609 executing it as well as when popping it off the stack to find infinite
9610 loops in non-greedy repetition operators.
9611
9612 2000-03-26 Gerd Moellmann <gerd@gnu.org>
9613
9614 * doc.c (Qfunction_documentation): New variable.
9615 (syms_of_doc): Initialize Qfunction_documentation.
9616 (Fdocumentation): If FUNCTION is a symbol with non-nil
9617 `function-documentation' property, return a documentation derived
9618 from that.
9619
9620 * buffer.c (syms_of_buffer): Add default-cursor-type.
9621 (init_buffer_once): Don't let cursor_type have a local value
9622 in every buffer.
9623
9624 * xterm.c (x_display_and_set_cursor): Choose cursor depending
9625 on buffer-local value of cursor_type.
9626 (x_draw_bar_cursor): Add parameter WIDTH.
9627
9628 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
9629 (init_buffer_once): Set default cursor_type value to t.
9630 Mark cursor_type as local everywhere.
9631 (syms_of_buffer): New per-buffer variable cursor-type.
9632
9633 * buffer.h (struct buffer): Remove member local_var_flags,
9634 add local_flags.
9635 (MAX_BUFFER_LOCAL_VARS): New macro.
9636 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
9637 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
9638 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
9639 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
9640
9641 * print.c (print_object): Use new macros for per-buffer variables.
9642
9643 * category.c (Fset_category_table): Use new macros for per-buffer
9644 variables.
9645
9646 * buffer.c (buffer_permanent_local_flags): Make a char array.
9647 (max_buffer_local_idx): New variable.
9648 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
9649 for new handling of per-buffer variables.
9650 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
9651 (init_buffer_once): Initialize per-buffer vars differently.
9652 Set max_buffer_local_idx.
9653
9654 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
9655 variables.
9656
9657 * lread.c (defvar_per_buffer): Use new macros for per-buffer variables.
9658
9659 * data.c (do_symval_forwarding, store_symval_forwarding)
9660 (find_symbol_value, set_internal, default_value, Fset_default)
9661 (Fkill_local_variable, Flocal_variable_p): Use new macros for
9662 per-buffer variables.
9663
9664 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
9665
9666 2000-03-24 Gerd Moellmann <gerd@gnu.org>
9667
9668 * xterm.c (x_term_init): Unblock input around call1 of
9669 Qvendor_specific_keysyms.
9670
9671 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
9672 (find_defun_start): Consider an open parenthesis in column 0
9673 a defun start only if open_paren_in_column_0_is_defun_start is set.
9674 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
9675
9676 2000-03-24 Stefan Monnier <monnier@cs.yale.edu>
9677
9678 * eval.c (Fautoload): Add entry in load-history (if after dump).
9679 * lread.c (load-history): Update docstring.
9680
9681 2000-03-24 Gerd Moellmann <gerd@gnu.org>
9682
9683 * indent.c (Fvertical_motion): Always use the current buffer.
9684 Temporarily change the window's buffer, if necessary.
9685
9686 2000-03-23 Gerd Moellmann <gerd@gnu.org>
9687
9688 * xterm.c (fast_find_position): Make sure not to consider rows
9689 not visible in the window.
9690
9691 2000-03-22 Stefan Monnier <monnier@cs.yale.edu>
9692
9693 * regex.c (enum syntaxcode): Provide default for non-Emacs.
9694 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
9695
9696 2000-03-22 Jason Rumney <jasonr@gnu.org>
9697
9698 * w32menu.c (single_submenu): Set help string to NULL if none.
9699 (w32_menu_show): Set help string correctly.
9700 (add-menu-item): Set help string in MIIM_DATA for menu item.
9701 Load SetMenuItemInfoA explicitly.
9702 (w32_menu_display_help): New function.
9703
9704 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
9705 (QCdata): Moved to xdisp.c.
9706
9707 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
9708 (Vw32_charset_to_codepage_alist): Removed.
9709 (Vw32_charset_info_alist): New variable.
9710 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312)
9711 (chinesebig5, oem, easteurope, turkish, baltic, russian, arabic)
9712 (greek, hebrew, thai, johab, mac, unicode]): New symbols.
9713 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
9714 with TODO comment.
9715 (w32_codepage_for_font): Use Vw32_charset_info_alist.
9716 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
9717 Define Vw32_charset_info_alist and w32_charset symbols.
9718
9719 2000-03-22 Jason Rumney <jasonr@gnu.org>
9720
9721 * makefile.nt (w32bdf.obj): Update dependencies.
9722
9723 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
9724
9725 * w32fns.c: Include fontset.h after dispextern.h.
9726 (Fx_create_frame): Do not create fontset.
9727 (w32_load_system_font): Doc fix.
9728 (Fx_close_connection): Free full_name if it is not shared.
9729
9730 * w32term.c: Include fontset.h after dispextern.h.
9731 (x_get_glyph_face_and_encoding): New parameter two_byte_p.
9732 Callers updated.
9733 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
9734 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
9735 (w32_font_is_double_byte): New function, needs body.
9736 (x_append_glyph): Set glyph->glyph_not_available_p.
9737 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
9738 it->charset. If it->multibyte_p is zero and it->c is a multibyte
9739 character, convert it to a unibyte character.
9740 (struct glyph_string): Delete member `charset'.
9741 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
9742 calculating it is found.
9743 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
9744 the case that per char metric is not available correctly.
9745 (x_fill_glyph_string): Handle the case that the specific glyph is
9746 not available correctly.
9747 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
9748 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
9749 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
9750 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
9751 fontset. Don't call FS_LOAD_FONT.
9752
9753 2000-03-22 Ken Raeburn <raeburn@gnu.org>
9754
9755 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
9756 (INT_LISPLIKE): New macro.
9757 (NULL_INTERVAL_P): Use it.
9758 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT)
9759 (SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT)
9760 (GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
9761
9762 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
9763 explicit references to "parent" field of struct interval and
9764 associated unclean type conversions.
9765 * intervals.c (create_root_interval, root_interval, rotate_right)
9766 (rotate_left, balance_possible_root_interval, split_interval_right)
9767 (split_interval_left, interval_start_pos, find_interval)
9768 (next_interval, previous_interval, update_interval)
9769 (adjust_intervals_for_insertion, delete_node, delete_interval)
9770 (adjust_intervals_for_deletion, merge_interval_right)
9771 (merge_interval_left, reproduce_tree, graft_intervals_into_buffer)
9772 (copy_intervals_to_string): Likewise.
9773 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
9774 Likewise.
9775 * syntax.c (update_syntax_table): Likewise.
9776
9777 * intervals.c (reproduce_tree_obj): New function, like
9778 reproduce_tree but takes a Lisp_Object for the parent. Declare
9779 with prototype.
9780 (graft_intervals_into_buffer): Use it when appropriate.
9781 (reproduce_tree): Declare with prototype.
9782 (balance_possible_root_interval): Check that the parent is a lisp
9783 object before trying to examine its type.
9784
9785 2000-03-22 Gerd Moellmann <gerd@gnu.org>
9786
9787 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
9788 as strings only if both are known to be strings.
9789
9790 * s/openbsd.h (LIBS_TERMCAP): Undef.
9791
9792 2000-03-21 Stefan Monnier <monnier@cs.yale.edu>
9793
9794 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
9795 definitions for non-Emacs compilation.
9796 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
9797 outside of `#ifdef emacs'.
9798 (print_partial_compiled_pattern): Update.
9799 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
9800 (re_compile_fastmap): Merge handling of charset and charset_not (for
9801 emacs and non-emacs compilation as well).
9802 Similarly for (not)categoryspec and (not)syntaxspec.
9803 Don't use the fastmap when reaching `anychar' since the added
9804 complexity is not justified.
9805 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
9806 and (not)syntaxspec. Merge (not)categoryspec.
9807
9808 2000-03-22 Kenichi Handa <handa@etl.go.jp>
9809
9810 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P)
9811 (FACE_FOR_CHAR): Define them differently for the configuration of
9812 --without-x.
9813
9814 2000-03-21 Dave Love <fx@gnu.org>
9815
9816 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
9817 doc string.
9818
9819 2000-03-21 Gerd Moellmann <gerd@gnu.org>
9820
9821 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
9822 (lface_fully_specified_p): Don't check contents of
9823 LFACE_FONT_INDEX because that attribute is optional.
9824 (realize_x_face): Remove now unwarranted xassert.
9825
9826 2000-03-21 Kenichi HANDA <handa@etl.go.jp>
9827
9828 The following changes are to make font selection based on
9829 characters, not charset. In addition, they recover fontset
9830 facilities while utilizing the new font selection mechanism.
9831
9832 * Makefile.in (fontset.o): Depend on dispextern.h.
9833
9834 * alloc.c (mark_face_cache): Don't mark face->registry.
9835
9836 * dispextern.h (struct glyph): New member glyph_not_available_p.
9837 Use 22 bits for face_id.
9838 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
9839 (struct face): Delete member registry, new member ascii_face.
9840 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
9841 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
9842 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
9843 (struct it): Delete member charset, new member glyph_not_available_p.
9844
9845 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
9846 (struct fontset_info, struct fontset_data): Structs removed.
9847 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset)
9848 (Vglobale_fontset_alist, font_idx_temp): Externs removed.
9849 (fs_load_font, fs_query_fontset): Adjusted for new argument.
9850 (fs_free_face_fontset, fontset_font_pattern)
9851 (face_suitable_for_char_p, face_for_char)
9852 (make_fontset_for_ascii_face): Extern them.
9853 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
9854 (FS_LOAD_FACE_FONT): New macro.
9855
9856 * fontset.c: All codes rewritten or adjusted for the change of
9857 fontset implementation. Now fontset is represented by char table.
9858 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl):
9859 Variables removed.
9860 (my_strcasecmp): Function removed.
9861 (Vfontset_table, next_fontset_id, Vdefault_fontset): New variables.
9862 (AREF, ASIZE): New macros.
9863 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME)
9864 (FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF)
9865 (FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
9866 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset)
9867 (fontset_id_valid_p, font_family_registry, fontset_name)
9868 (fontset_ascii, free_face_fontset, face_suitable_for_char_p)
9869 (face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
9870 New functions.
9871 (fs_load_font): New arg FACE. Caller changed.
9872 (fs_query_fontset): Argument changed. Caller changed.
9873 (Fquery_fontset): call fs_query_fontset.
9874 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
9875 Functions removed.
9876 (clear_fontset_elements, check_registry_encoding)
9877 (check_fontset_name): New functions.
9878 (syms_of_fontset): Set char-table-extra-slots property of fontset
9879 to 3. Staticpro and initialize Vfontset_table and
9880 Vdefault_fontset. Defsubr fontset_font and fontset_list.
9881
9882 * frame.h (struct frame): Member `fontset_data' removed.
9883 (FRAME_FONTSET_DATA): Macro removed.
9884
9885 * frame.c (make_frame): Don't allocate f->fontset_data.
9886 (Fdelete_frame): Don't free f->fontset_data.
9887
9888 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
9889
9890 * xdisp.c (charset_at_position): Function removed.
9891 (init_iterator): Don't set member charset of struct `it'.
9892 (handle_face_prop, reseat_to_string, set_iterator_to_next)
9893 (next_element_from_display_vector, insert_left_trunc_glyphs):
9894 Likewise.
9895 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
9896 FACE_FOR_CHARSET.
9897 (get_next_display_element, append_space)
9898 (extend_face_to_end_of_line): Likewise.
9899
9900 * xfaces.c (Qx_charset_registry, Vface_default_registry):
9901 Variables removed.
9902 (clear_font_table, frame_update_line_height, load_face_font):
9903 Adjusted for the change of fontset implementation.
9904 (load_face_fontset_font): Function removed.
9905 (pixel_point_size): New function.
9906 (font_list): Argument type changed. Caller changed.
9907 (LFACE_FONT): New macro.
9908 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
9909 (set_lface_from_font_name): Type of arg FONTNAME is changed to
9910 Lisp_Object. Determine the font name by actually loading a font
9911 by the specified pattern. Set LFACE_FONT (lface) to the specified
9912 pattern. Even if a font is not found, don't try alternatives.
9913 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
9914 (set_font_frame_param): If `font' is specified in lface, use it.
9915 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
9916 (lface_same_font_attributes_p): Likewise.
9917 (make_realized_face): Arguent changed. Caller changed. Set
9918 face->ascii_face to face itself.
9919 (free_realized_face): Free face->fontset if face is for ASCII.
9920 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p)
9921 (deduce_unibyte_registry, x_charset_registry): Functions removed.
9922 (free_realized_multibyte_face): New function.
9923 (lookup_face, lookup_named_face, lookup_derived_face): Argument
9924 changed. Caller changed.
9925 (try_font_list): Argument type changed.
9926 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
9927 (choose_face_font): Argument changed. Handle fontset properly.
9928 (choose_face_fontset_font): Function removed.
9929 (realize_default_face, realize_named_face): Don't remove the
9930 former face here.
9931 (realize_face): Argument changed. Caller changed. Remove face
9932 with the arg former_face_id in advance. Load font for the new face.
9933 (realize_x_face): Argument changed. Caller changed. For a
9934 multibyte character, share fontset with base_face. For a single
9935 byte character, make a new realized fontset. Don't load a font here.
9936 (realize_tty_face): Argument changed. Caller changed.
9937 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
9938 (face_at_buffer_position): Don't check multibyte_p for returning
9939 DEFAULT_FACE_ID.
9940 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
9941 FACE_SUITABLE_FOR_CHARSET_P.
9942 (syms_of_xfaces): Remove code for Qx_charset_registry and
9943 Vface_default_registry.
9944
9945 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
9946 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9947 (x_per_char_metric): Don't try FONT->default_char. Even if
9948 pcm->width is zero, glyph bits may exist.
9949 (x_encode_char): Always initialize char2b->byte1.
9950 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
9951 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller changed.
9952 (x_append_glyph): Set glyph->glyph_not_available_p.
9953 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
9954 it->charset. Handle the case that per char metric is not
9955 available. If it->multibyte_p is zero and it->c is a multibyte
9956 character, convert it to a unibyte character.
9957 (struct glyph_string): Delete member `charset'.
9958 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
9959 the case that per char metric is not available correctly.
9960 (x_fill_glyph_string): Handle the case that the specific glyph is
9961 not available correctly.
9962 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
9963 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
9964 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
9965 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
9966 fontset. Don't call FS_LOAD_FONT.
9967
9968 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
9969 (x_create_tip_frame): Likewise.
9970 (Fx_close_connection): Free full_name of font_info.
9971
9972 * fns.c (optimize_sub_char_table): New function.
9973 (Foptimize_char_table): New function.
9974 (syms_of_fns): Defsubr Soptimize_char_table.
9975
9976 2000-03-20 Gerd Moellmann <gerd@gnu.org>
9977
9978 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
9979 only if buffer is displayed in some window.
9980
9981 * xdisp.c (handle_single_display_prop): Initialize local `value'.
9982 (try_window_reusing_current_matrix): Don't call scroll run
9983 function if run's current and desired position are the same;
9984 this prevents cursor flickering.
9985
9986 2000-03-19 Stefan Monnier <monnier@cs.yale.edu>
9987
9988 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
9989
9990 * regex.c (RE_STRING_CHAR): New macro.
9991 (GET_CHAR_AFER_2): Remove.
9992 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
9993 (enum re_opcode_t): Remove on_failure_jump_exclusive.
9994 (print_partial_compiled_pattern, re_compile_fastmap)
9995 (re_match_2_internal): Remove on_failure_jump_exclusive.
9996 (regex_compile): Turn optimizable P+ loops into PP*, so that the
9997 optimization only need to work for * (ie. can use of_keep_string_jump).
9998 Remove the special case for .*\n since it is now covered by the general
9999 optimization.
10000 (re_search_2): Don't bother with `room'.
10001 (skip_one_char): New function.
10002 (skip_noops): Simplify since `memory' is not needed any more.
10003 (mutually_exclusive_p): Restructure slightly to use `switch' and
10004 add handling for "all" remaining cases.
10005 (re_match_2_internal): Change on_failure_jump_smart to use
10006 on_failure_keep_string_jump (and redirect the end-of-loop jump)
10007 rather than on_failure_jump_exclusive.
10008
10009 2000-03-19 Gerd Moellmann <gerd@gnu.org>
10010
10011 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
10012 number of bits per RGB because it's everywhere used as the depth
10013 of the visual.
10014
10015 * term.c (calculate_costs): Remove code dealing with X frames.
10016
10017 2000-03-19 Richard M. Stallman <rms@gnu.org>
10018
10019 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
10020
10021 2000-03-18 Gerd Moellmann <gerd@gnu.org>
10022
10023 * lread.c (read_integer): Unread the last char not consumed.
10024
10025 2000-03-17 Gerd Moellmann <gerd@gnu.org>
10026
10027 * xterm.c (x_update_window_cursor): Don't update in frames
10028 which are in the process of being deleted.
10029
10030 2000-03-16 Gerd Moellmann <gerd@gnu.org>
10031
10032 * Makefile.in (mostlyclean): Add `*.core'.
10033 (clean): Add `bootstrap-emacs'.
10034
10035 * lread.c (read_integer): New function.
10036 (read1): Support read syntax #o, #x, #b, #r.
10037
10038 2000-03-15 Stefan Monnier <monnier@cs.yale.edu>
10039
10040 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
10041 make sure POINTER_TO_OFFSET gives the same value before and after
10042 PREFETCH. Use `dfail' to guarantee "atomic" matching.
10043 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
10044 (debug): Now only active if > 0 rather than if != 0.
10045 (DEBUG_*): Update for the new meaning of `debug'.
10046 (print_partial_compiled_pattern): Add missing `succeed' case. Use
10047 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
10048 in `succeed_n', `jump_n' and `set_number_at'.
10049 (store_op1, store_op2, insert_op1, insert_op2)
10050 (at_begline_loc_p, at_endline_loc_p): Add prototype.
10051 (group_in_compile_stack): Move to after its arg's types are
10052 declared and add a prototype.
10053 (PATFETCH): Define in terms of PATFETCH_RAW.
10054 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)' wrapper.
10055 (QUIT): Redefine as a nop except for NTemacs.
10056 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
10057 indentation of the greedy-op and shy-group code.
10058 (at_(beg|end)line_loc_p): Fix argument's types.
10059 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
10060 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
10061 (MATCHING_IN_FIRST_STRING): Remove.
10062 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
10063 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
10064 QUIT unconditionally.
10065
10066 2000-03-15 Gerd Moellmann <gerd@gnu.org>
10067
10068 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
10069 a sole completion.
10070
10071 * process.c (send_process): Add a hint that the function
10072 can call Lisp code to its comment.
10073
10074 * lread.c (load_dangerous_libraries): New variable.
10075 (Vbytecomp_version_regexp): New variable.
10076 (safe_to_load_p): New function.
10077 (Fload): Handle files not compiled with Emacs specially.
10078 (syms_of_lread): New Lisp variable load-dangerous-libraries.
10079
10080 2000-03-14 Gerd Moellmann <gerd@gnu.org>
10081
10082 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
10083
10084 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
10085 support functions only if HAVE_X11R6_XIM is defined.
10086 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
10087
10088 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
10089
10090 * xfns.c (X_I18N_INHIBITED): Don't define.
10091 (create_frame_xic): Remove conditional compilation on X_I18N_INHIBITED.
10092 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
10093
10094 * config.in (HAVE_X_I18N): Moved here from xterm.h.
10095 (HAVE_X11R6_XIM): Define.
10096
10097 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
10098
10099 * xterm.c (x_term_init): Add support for X resource `synchronous'.
10100 If set, call XSynchronize.
10101
10102 2000-03-13 Stefan Monnier <monnier@cs.yale.edu>
10103
10104 * regex.c: Declare a new type `re_char' used throughout the code
10105 for the string char type. It's `const unsigned char' to match the
10106 rest of Emacs. Consistently make sure all pointers to strings use
10107 it and make sure all pointers into the pattern use `unsigned char'.
10108 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
10109 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
10110 code duplication.
10111
10112 * charset.h (GET_CHAR_AFTER_2): Remove.
10113 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
10114
10115 2000-03-12 Ken Raeburn <raeburn@gnu.org>
10116
10117 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
10118 variable before the invocation of YMF_PASS_LDFLAGS, in case both
10119 of them try to use backquotes.
10120
10121 2000-03-12 Dave Love <fx@gnu.org>
10122
10123 * unexelf.c: Restore changes of 1999-10-19.
10124 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
10125 fix its type and alignment; copy it from current process.
10126
10127 2000-03-12 Gerd Moellmann <gerd@gnu.org>
10128
10129 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
10130 has been found. Fix bug not computing timer's predecessor.
10131
10132 * fileio.c (Fread_file_name): Handle case that DIR contains a
10133 file name.
10134
10135 * window.c (Fsave_window_excursion): Doc fix.
10136
10137 * xfns.c (x_defined_color): Rewritten to use x_allocate_nearest_color.
10138
10139 2000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
10140
10141 * msdos.c (vga_installed): New function, code moved from
10142 dos_set_window_size.
10143 (Qbar, Qcursor_type, outside_cursor): New variables.
10144 (syms_of_msdos): Intern and staticpro them.
10145 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
10146 shape used outside Emacs when called for the first time.
10147 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
10148 cursor shape used outside Emacs.
10149 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
10150 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
10151 type has changed.
10152 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
10153 parameters specify the cursor. Make qreverse a global
10154 variable (renamed to Qreverse).
10155
10156 2000-03-09 Gerd Moellmann <gerd@gnu.org>
10157
10158 * fns.c (Fy_or_n_p): Cancel busy-cursor.
10159
10160 2000-03-08 Stefan Monnier <monnier@cs.yale.edu>
10161
10162 This is a big redesign of failure-stack and register handling, prompted
10163 by bugs revealed when trying to add shy-groups. Overall, what happened
10164 is that loops are now structured a little differently, groups can be
10165 shy and the code is a little simpler.
10166
10167 * regex.h: Update the copyright.
10168 (RE_SHY_GROUPS): New value.
10169 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
10170 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
10171
10172 * regex.c (enum re_opcode_t): Remove jump_past_alt,
10173 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
10174 on_failure_jump_(exclusive, loop and smart). Also fix the comment
10175 for (start|stop)_memory since they now only take one argument (the
10176 second has becomes unnecessary).
10177 (print_partial_compiled_pattern): Adjust for changes in re_opcode_t.
10178 (print_compiled_pattern): Use %ld to printf long ints and flush to
10179 make debugging a little easier.
10180 (union fail_stack_elt): Make the integer unsigned.
10181 (struct fail_stack_type): Add a `frame' element.
10182 (INIT_FAIL_STACK): Init `frame' as well.
10183 (POP_PATTERN_OP): New macro for re_compile_fastmap.
10184 (DEBUG_PUSH, DEBUG_POP): Remove.
10185 (NUM_REG_ITEMS): Remove.
10186 (NUM_NONREG_ITEMS): Adjust.
10187 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
10188 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
10189 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
10190 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP):
10191 New macros.
10192 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
10193 address pushed is not the destination of the jump but the source
10194 of it instead.
10195 (NUM_FAILURE_ITEMS): Remove.
10196 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
10197 registers before the actual failure point). Don't hardcode any
10198 meaning for str==NULL anymore.
10199 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
10200 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
10201 Remove.
10202 (REG_UNSET_VALUE): Use NULL (why not?).
10203 (compile_range): Remove declaration since it doesn't exist.
10204 (struct compile_stack_elt_t): Remove inner_group_offset.
10205 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
10206 (regex_grow_registers): Remove dead code.
10207 (FIXUP_ALT_JUMP): New macro.
10208 (regex_compile): Add shy-groups Change loops to use
10209 on_failure_jump_smart&jump instead of
10210 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
10211 initial (dummy_failure_)jump. Remove c1_base (looks like unused
10212 variable to me). Use `jump' instead of `jump_past_alt' and don't
10213 bother with push_dummy_failure in alternatives since it is now
10214 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
10215 emacs' for (re)allocating the stack.
10216 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
10217 from loop when bufp->can_be_null rather than jumping to `done'.
10218 Avoid jumping backwards so as to ensure termination. Use
10219 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
10220 backreferences. Remove dead code in handling of `anychar'.
10221 (skip_noops, mutually_exclusive_p): New functions taken from the
10222 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
10223 improve mutually_exclusive_p to handle ".+\n".
10224 (lowest_active_reg, highest_active_reg)
10225 (NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
10226 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
10227 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
10228 variables. Push register (in `start_memory') on the stack rather
10229 than storing it in old_reg(start|end). Remove the cycle detection
10230 from `stop_memory', replaced by the use of on_failure_jump_loop
10231 for greedy loops. Add code for the new on_failure_jump_<foo>.
10232 Remove ad-hoc code in `on_failure_jump' to push more registers in
10233 the case of a loop. Take out code from `maybe_pop_jump' into
10234 separate functions and adapt it to the semantics of
10235 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
10236 and push_dummy_failure. Remove dummy_failure handling and
10237 handling of `failures to jump to on_failure_jump' (this last one
10238 was already dead code, it seems).
10239 (group_match_null_string_p, alt_match_null_string_p)
10240 (common_op_match_null_string_p): Remove.
10241
10242 2000-03-08 Dave Love <fx@gnu.org>
10243
10244 * config.in: Don't depend on __STDC__ for volatile.
10245 Add POINTER_TYPE, PTR, PROTOTYPES.
10246
10247 * hftctl.c, strftime.c: Use PROTOTYPES.
10248 * eval.c (find_handler_clause): Likewise.
10249
10250 * mem-limits.h: Use POINTER_TYPE.
10251
10252 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
10253 (memory_warnings): Declare using POINTER_TYPE.
10254
10255 2000-03-08 Gerd Moellmann <gerd@gnu.org>
10256
10257 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
10258
10259 * xdisp.c (display_echo_area): Temporarily inhibit garbage collection.
10260
10261 * xfns.c: Remove obsolete code in #if 0.
10262 (Fx_focus_frame): New function.
10263
10264 2000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
10265
10266 * coding.c (coding_category_name): Add coding-category-utf-8,
10267 coding-category-utf-16-be, coding-category-utf-16-le.
10268 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
10269 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
10270 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
10271 (detect_coding_utf_8): New function.
10272 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
10273 UTF_16_LOW_SURROGATE_P): New macros.
10274 (detect_coding_utf_16): New function
10275 (detect_coding_mask): When priorities are specified, skip any
10276 categories that have `nil' coding-system. Fix bug of returning
10277 wrong mask when PRIORITIES is specified and detect_coding_XXX()
10278 returns a mask not set in PRIORITIES.
10279 (detect_eol_type_in_2_octet_form): New function.
10280 (detect_eol): selects detect_eol_type_XXX to call according to
10281 cooding->category_idx.
10282 (detect_coding_system): Remove `nil' coding-system in the result.
10283 (Fupdate_coding_systems_internal): Update all coding-categories.
10284
10285 * coding.h (CODING_CATEGORY_IDX_UTF_8)
10286 (CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE):
10287 New macros.
10288 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY)
10289 (CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
10290 (CODING_CATEGORY_IDX_UTF_16_LE)
10291 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE)
10292 (CODING_CATEGORY_MASK_UTF_16_LE): New macros.
10293 (CODING_CATEGORY_MASK_ANY): Include the above macros.
10294 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
10295
10296 2000-03-07 Gerd Moellmann <gerd@gnu.org>
10297
10298 * doc.c (Fdocumentation_property): If value is not a string,
10299 and doesn't refer to etc/DOC, evaluate it to obtain a string.
10300
10301 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
10302 close the display with XtCloseDisplay. This caused a bus error
10303 on OpenWindows.
10304
10305 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
10306 complete but not unique.
10307
10308 2000-03-06 Gerd Moellmann <gerd@gnu.org>
10309
10310 * process.c (send_process): Remove local variable `procname' that
10311 might become invalid when a GC happens. Instead, access the
10312 process name slot directly.
10313
10314 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
10315 orig_height if set.
10316
10317 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
10318 orig_height if set.
10319
10320 2000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
10321
10322 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
10323 glyph matrices have been freed.
10324
10325 2000-03-05 Gerd Moellmann <gerd@gnu.org>
10326
10327 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
10328 (bootstrap-temacs): Set LC_ALL to C like for temacs.
10329
10330 * xfns.c (QCdata): Moved to xdisp.c.
10331
10332 * xdisp.c (QCdata): Moved here from xfns.c.
10333 (syms_of_xdisp): Initialize QCdata.
10334
10335 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
10336
10337 * window.c (coordinates_in_window): Use
10338 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
10339 FRAME_INTERNAL_BORDER_WIDTH.
10340
10341 * xdisp.c (try_window_id): Recompute unchanged information if
10342 it is obviously invalid.
10343
10344 * xterm.c (x_term_init): Create a colormap if not using the
10345 default visual.
10346
10347 * xterm.h (select_visual): Change prototype.
10348
10349 * xfns.c (select_visual): Rewritten. Recognize user-specified
10350 visual classes.
10351 (visual_classes): New variable.
10352
10353 2000-03-04 Gerd Moellmann <gerd@gnu.org>
10354
10355 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
10356 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
10357 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
10358 (x_decode_color): Don't handle allocation of white and black specially.
10359 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
10360 XtNcolormap resources.
10361 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
10362 (Fx_create_frame): Initialize color members of x_output structure.
10363 (xpm_load): Pass colormap to XPM lib.
10364
10365 * xfaces.c (x_free_colors): Access colormap of frame using
10366 FRAME_X_COLORMAP. Be paranoid about freeing black and white
10367 when default colormap is used.
10368
10369 * xterm.c (x_term_init): Set Colormap member of x_display_info
10370 structure. Copy colormap if resource `privateColormap' is
10371 specified (PseudoColor only).
10372 (x_setup_relief_color): Access colormap of frame using
10373 FRAME_X_COLORMAP.
10374
10375 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
10376 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
10377
10378 2000-03-04 Jason Rumney <jasonr@gnu.org>
10379
10380 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
10381 other non-platform-specific equivalents.
10382 [WINDOWSNT]: Include w32term.h, fontset.h and define X
10383 specific functions and macros as their w32 equivalents where
10384 non-platform-specifics are not available.
10385 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
10386 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
10387 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
10388 (frame_update_line_height): Use macros to access f->output_data.
10389 (defined_color): Remove FIXME comments; fixed.
10390 (x_face_list_fonts, prepare_face_for_display): Put X specifics
10391 into #ifdef blocks. Add WINDOWSNT blocks.
10392 (Fx_list_fonts): Use macros for accessing font data.
10393 (set_lface_from_font_name): Different default fonts for X and
10394 WINDOWSNT.
10395 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
10396 scalable for backward compatibility.
10397 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
10398 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
10399
10400 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
10401 syms_of_w32faces.
10402
10403 * makefile.nt (w32faces.obj): Remove.
10404 (xfaces.obj): Add.
10405
10406 2000-03-03 Jason Rumney <jasonr@gnu.org>
10407
10408 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
10409 correct parameters.
10410
10411 2000-03-03 Ken Raeburn <raeburn@gnu.org>
10412
10413 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
10414 standard ELF definitions here if the system header does not.
10415
10416 2000-03-03 Gerd Moellmann <gerd@gnu.org>
10417
10418 * xterm.c (PER_CHAR_METRIC): Removed.
10419 (x_per_char_metric_1, x_default_char): New functions.
10420 (x_per_char_metric): If font's default char is invalid, return
10421 metrics of a suitably chosen usable default char.
10422 (x_draw_glyph_string_foreground): If font has an invalid default
10423 char, replace occurrences of unprintable chars with a suitably
10424 chosen usable default char.
10425
10426 2000-03-02 Gerd Moellmann <gerd@gnu.org>
10427
10428 * xterm.c (note_mouse_highlight): Return quickly if frame's
10429 glyph matrices have been freed.
10430
10431 * dispnew.c (free_glyphs): Block input while freeing matrices.
10432
10433 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
10434
10435 * xterm.c (x_alloc_lighter_color, x_setup_relief_color):
10436 Use x_free_colors.
10437
10438 * dispextern.h (x_free_colors): Add prototype.
10439
10440 * xfaces.c (x_free_colors): New function.
10441 (unload_color, free_face_colors): Use it.
10442
10443 2000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
10444
10445 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
10446
10447 * window.c [MSDOS]: Include msdos.h.
10448
10449 2000-03-02 Dave Love <fx@gnu.org>
10450
10451 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
10452
10453 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
10454 set C_OPTIMIZE_SWITCH for gcc.
10455
10456 2000-03-02 Kenichi Handa <handa@etl.go.jp>
10457
10458 * coding.c (coding_save_composition): Be sure to allocate
10459 composition data area in coding even if there's no composition in
10460 the current run.
10461
10462 2000-03-01 Jason Rumney <jasonr@gnu.org>
10463
10464 * w32term.c: Equivalent changes to those made to xterm.c on
10465 2000-02-25 and 2000-02-24.
10466
10467 * w32fns.c: Equivalent changes to those made to xfns.c on
10468 2000-02-25 and 2000-02-21.
10469
10470 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
10471 correct line-end convention is followed.
10472
10473 * w32menu.c [HAVE_BOXES]: Remove #undef.
10474 (single_keymap_panes): Remove code for simulating checkmarks.
10475 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
10476 Remove code for drawing simulated checkmarks.
10477 (w32_menu_show): make unibyte help string correctly.
10478 (add_menu_item): draw standard Windows checkmarks. Draw radio
10479 buttons as radio buttons if possible.
10480
10481 2000-03-01 Gerd Moellmann <gerd@gnu.org>
10482
10483 * sysdep.c (start_of_text): Don't define this function for NetBSD
10484 with ELF.
10485
10486 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
10487 Don't define.
10488 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
10489 (LINKER): Don't undef if __NetBSD__ is defined.
10490
10491 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
10492
10493 * fileio.c [__NetBSD__]: Define `unix'.
10494
10495 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
10496
10497 2000-02-29 Gerd Moellmann <gerd@gnu.org>
10498
10499 * atimer.c (start_atimer): Don't abort when timers are stopped.
10500 (append_atimer_lists): New function.
10501 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
10502 arbitrary lists of stopped and running atimers.
10503
10504 * atimer.c (cancel_atimer): Handle canceling an atimer when
10505 some timers are stopped.
10506
10507 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
10508 after canceling it.
10509
10510 * fns.c (maybe_resize_hash_table): Handle case of new size
10511 coming out as being the same as old size.
10512
10513 2000-02-27 Jason Rumney <jasonr@gnu.org>
10514
10515 * makefile.nt: Add atimer.h to dependencies.
10516 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
10517 * w32console.c: Only disable window system features for dispextern.h
10518 (initialize_w32_display): Build a display info for the console.
10519 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
10520 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
10521 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
10522 as 2 button mice.
10523 * w32gui.h (struct W32FontStruct): Revert last change after change
10524 to xdisp.c.
10525 * w32menu.c (single_submenu): Set up help string.
10526 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
10527 (w32_dialog_show): Set up help string.
10528 * w32term.c (w32_display_info_for_display): Remove unused function.
10529 (w32_draw_bitmap): Use pre-built bitmaps.
10530 (w32_initialize_display_info): New function to initialize parts of
10531 display info that are common to both GUI and console frames.
10532 (w32_term_init): Use w32_initialize_display_info. Do not set
10533 Vw32_num_mouse_buttons here, as it is not called for console
10534 frames. Build bitmaps for indicating truncated lines etc.
10535 (x_delete_display): Destroy pre-built bitmaps.
10536 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
10537 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
10538
10539 2000-02-27 Dave Love <fx@gnu.org>
10540
10541 * lisp.h: Add a bunch of prototypes.
10542
10543 2000-02-26 Kenichi Handa <handa@etl.go.jp>
10544
10545 * keyboard.c (read_char): Set `usec' correctly.
10546
10547 2000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
10548
10549 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
10550 `lambda', set reg[RRR] to the map index.
10551 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
10552 reg[RRR] to 0. Otherwise, set it to -1.
10553
10554 2000-02-25 Gerd Moellmann <gerd@gnu.org>
10555
10556 * emacs.c (main): Remove code snippet commented out with `//'.
10557
10558 2000-02-25 Richard M. Stallman <rms@gnu.org>
10559
10560 * fileio.c (Ffile_symlink_p): If result starts with a `/'
10561 and contains a `:', prepend `/:'.
10562
10563 * window.c (select_window_1): If selected_window is nil,
10564 don't "swap out" the buffer's point.
10565 (Fset_window_configuration): Set selected_window to nil
10566 before calling Fselect_window.
10567 (unshow_buffer): Don't set point in buffer from window's point
10568 if another more recently selected window also shows the buffer.
10569
10570 2000-02-25 Gerd Moellmann <gerd@gnu.org>
10571
10572 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
10573
10574 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
10575 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
10576 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay):
10577 New variables.
10578 (DEFAULT_BUSY_CURSOR_DELAY): New define.
10579 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
10580 (hide_busy_cursor): New functions.
10581 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
10582
10583 * minibuf.c (read_minibuf): Cancel busy-cursor.
10584
10585 * keyboard.c (command_loop_1): Call start_busy_cursor before
10586 Fcommand_execute and cancel_busy_cursor after it.
10587 (timer_check): Remove busy-cursor code.
10588 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
10589 cursor timer.
10590
10591 * process.c (wait_reading_process_input): Remove busy-cursor code.
10592
10593 * eval.c (Fsignal): Call cancel_busy_cursor instead of
10594 Fx_hide_busy_cursor.
10595
10596 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
10597 Remove prototyoes.
10598 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
10599
10600 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
10601
10602 * xterm.c (XTread_socket): Remove busy-cursor code.
10603
10604 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
10605 (build_frame_matrix_from_leaf_window): Put code handling
10606 glyph row's not being a slice of a frame row in #if 0.
10607 (sync_window_with_frame_matrix_rows): New function.
10608 (frame_row_to_window): New function.
10609 (mirror_line_dance): Handle copies between windows.
10610
10611 * lread.c (Fload): Use `xfree' instead of `free'.
10612 (init_obarray): Use `xmalloc' instead of `malloc'.
10613
10614 * window.c (Fset_window_buffer): Set WINDOW to the window
10615 after decoding.
10616 (coordinates_in_window): Take frame's internal border width
10617 into account.
10618
10619 2000-02-24 Gerd Moellmann <gerd@gnu.org>
10620
10621 * xterm.c (x_display_and_set_cursor): Display cursor of
10622 non-selected windows depending on the setting of
10623 cursor_in_non_selected_windows.
10624
10625 * xdisp.c (cursor_in_non_selected_windows): New variable.
10626 (syms_of_xdisp): DEFVAR_BOOL it.
10627
10628 2000-02-23 Gerd Moellmann <gerd@gnu.org>
10629
10630 * data.c (Fstring_to_number): If number is greater than what
10631 fits into an integer, return a float.
10632
10633 * eval.c (specbind): Remove references to
10634 keyword_symbols_constant_flag.
10635
10636 * data.c (keyword_symbols_constant_flag): Removed.
10637 (Fmakunbound, set_internal, syms_of_data): Remove references to
10638 keyword_symbols_constant_flag.
10639
10640 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
10641
10642 2000-02-23 Kenichi Handa <handa@etl.go.jp>
10643
10644 * syntax.c (multibyte_syntax_as_symbol): New variable.
10645 (syms_of_syntax): Declare it as a Lisp variable.
10646 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
10647 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
10648 nonzero, treat all multibyte characters as symbol.
10649 (init_syntax_once): Give syntax `word' to all multibyte characters.
10650
10651 2000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
10652
10653 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
10654 a deleted frame.
10655
10656 2000-02-21 Gerd Moellmann <gerd@gnu.org>
10657
10658 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
10659
10660 * xfns.c (x_window_to_frame, x_any_window_to_frame)
10661 (x_non_menubar_window_to_frame): Check the busy-cursor window.
10662
10663 2000-02-21 Dave Love <fx@gnu.org>
10664
10665 * frame.c (Vmouse_position_function): New variable.
10666 (Fmouse_position): Use it.
10667 (syms_of_frame): Install it.
10668
10669 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
10670
10671 2000-02-20 Gerd Moellmann <gerd@gnu.org>
10672
10673 * fileio.c (Finsert_file_contents): Unbind the binding of
10674 standard-output done by temp_output_buffer_setup.
10675
10676 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
10677 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
10678 (specbind, unbind_to): Handle most common case of non-constant
10679 symbol with trivial value specially.
10680
10681 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
10682
10683 2000-02-20 Richard M. Stallman <rms@gnu.org>
10684
10685 * data.c (Fmake_variable_buffer_local): Doc fix.
10686 Init found_for_buffer to 0.
10687 (Fmake_variable_frame_local): If the variable has already
10688 been buffer-local, set the check_frame field.
10689
10690 2000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
10691
10692 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
10693 produced for CODING_MODE_LAST_BLOCK requires.
10694
10695 2000-02-18 Dave Love <fx@gnu.org>
10696
10697 * keyboard.c (echo_keystrokes): Remove declaration.
10698 (Vecho_keystrokes) New variable.
10699 (read_char, record_menu_key, read_key_sequence): Use it to allow
10700 use of float value.
10701 (syms_of_keyboard): Change Vecho_keystrokes declaration.
10702
10703 * lread.c: Undef feature selection macros before defining.
10704
10705 2000-02-18 Gerd Moellmann <gerd@gnu.org>
10706
10707 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
10708 for symbols other than the symbol in question.
10709
10710 2000-02-17 Dave Love <fx@gnu.org>
10711
10712 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
10713
10714 2000-02-17 Gerd Moellmann <gerd@gnu.org>
10715
10716 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
10717
10718 * alloc.c (enum mem_type): Compile unconditionally.
10719
10720 2000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
10721
10722 * xfaces.c (tty_defined_color): Don't return faulire indication
10723 for unspecified-fg and unspecified-bg pseudo-colors.
10724
10725 2000-02-17 Gerd Moellmann <gerd@gnu.org>
10726
10727 * alloc.c (mark_object): Don't mark symbol names in pure space.
10728 (gc_sweep): Don't unmark symbol names in pure space.
10729
10730 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
10731 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
10732 [GC_MARK_STACK]: New defines.
10733 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
10734 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
10735
10736 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
10737
10738 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
10739 allocate_buffer instead of xmalloc.
10740
10741 * alloc.c (toplevel): Include setjmp.h.
10742 (PURE_POINTER_P): New define.
10743 (enum mem_type) [GC_MARK_STACK]: New enumeration.
10744 (Vdead) [GC_MARK_STACK]: New variable.
10745 (lisp_malloc): Add parameter TYPE, call mem_insert if
10746 GC_MARK_STACK is defined.
10747 (allocate_buffer): New function.
10748 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
10749 (free_float) [GC_MARK_STACK]: Set type to Vdead.
10750 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
10751 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
10752 (MEM_NIL) [GC_MARK_STACK]: New define.
10753 (struct mem_node) [GC_MARK_STACK]: New structure.
10754 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
10755 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
10756 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
10757 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
10758 (mark_stack) [GC_MARK_STACK]: New functions.
10759 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
10760 (clear_marks): Removed.
10761 (gc_sweep): Set free conses' car, free floats' type, free
10762 symbols' function to Vdead. Use lisp_free to free buffers.
10763 (init_alloc_once): Initialize Vdead.
10764 (survives_gc_p): Return non-zero for pure objects.
10765
10766 * alloc.c: Add comments throughout the file.
10767
10768 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
10769 that unblocks alarms.
10770
10771 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
10772 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
10773 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
10774
10775 * frame.c (make_frame): Set frame initiallly to `garbaged'.
10776
10777 2000-02-17 Kenichi Handa <handa@etl.go.jp>
10778
10779 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
10780 avoid infinite error signaling. Allocate sufficient memory for
10781 eol_str in the case that eoltype is Lisp_Int.
10782
10783 2000-02-17 Stefan Monnier <monnier@cs.yale.edu>
10784
10785 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
10786 depends on the previous behavior.
10787
10788 2000-02-16 Gerd Moellmann <gerd@gnu.org>
10789
10790 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
10791
10792 2000-02-15 Gerd Moellmann <gerd@gnu.org>
10793
10794 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
10795
10796 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
10797 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
10798 write(2).
10799
10800 2000-02-15 Richard M. Stallman <rms@gnu.org>
10801
10802 * data.c (set_internal): Don't make variable buffer-local
10803 if within a let-binding for the same buffer.
10804 (let_shadows_buffer_binding_p): New function.
10805
10806 * eval.c (specbind): For buffer-local value,
10807 record the current buffer also.
10808 (unbind_to): Cope with that change.
10809
10810 2000-02-15 Gerd Moellmann <gerd@gnu.org>
10811
10812 * window.c (Fsave_window_excursion): Doc fix.
10813
10814 2000-02-15 Stefan Monnier <monnier@cs.yale.edu>
10815
10816 * syntax.c (back_comment): Make sure we only consider comment-starters
10817 of the relevant style and return -1 in case of a failure to find the
10818 beginning of the comment.
10819 (Fforward_comment): If back_comment fails, go back to the position just
10820 after the comment-end.
10821 (scan_lists): Add comment describing a very minor bug.
10822
10823 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
10824
10825 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
10826 `completion-regexp-list' in the docstring.
10827
10828 2000-02-14 Dave Love <fx@gnu.org>
10829
10830 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
10831
10832 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
10833
10834 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
10835 to Emacs' syntax. Also fix the comment about set/not-set meanings
10836 since Emacs syntax is not the value 0 any more.
10837 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
10838 since it's now part of RE_SYNTAX_EMACS.
10839
10840 2000-02-12 Dave Love <fx@gnu.org>
10841
10842 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on Alpha.
10843
10844 2000-02-12 Gerd Moellmann <gerd@gnu.org>
10845
10846 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
10847
10848 2000-02-12 Dave Love <fx@gnu.org>
10849
10850 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
10851
10852 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
10853 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
10854 * s/hpux.h: Don't define HAVE_VFORK.
10855
10856 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
10857
10858 * s/nextstep.h: Don't define HAVE_ALLOCA.
10859
10860 * config.in: Add vfork bits.
10861
10862 2000-02-12 Gerd Moellmann <gerd@gnu.org>
10863
10864 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
10865 unwind function to undo the effect of stopping atimers.
10866
10867 * keyboard.c (bind_polling_period): Stop all timers except poll_timer.
10868
10869 * atimer.c (stopped_atimers): New variable.
10870 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
10871 New functions.
10872
10873 * atimer.h (stop_other_atimers, run_all_atimers)
10874 (unwind_stop_other_atimers): Add function prototypes.
10875
10876 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
10877
10878 2000-02-11 Ken Raeburn <raeburn@gnu.org>
10879
10880 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
10881 library may depend on jpeg.
10882 (atimer.o): Depends on atimer.c.
10883
10884 2000-02-11 Kenichi Handa <handa@etl.go.jp>
10885
10886 * insdel.c (del_range_1): Call update_compositions.
10887 (del_range_both): Call update_compositions just once..
10888
10889 2000-02-10 Dave Love <fx@gnu.org>
10890
10891 * xfns.c (create_frame_xic): Fix initialization of automatic
10892 aggregates for pcc.
10893
10894 2000-02-09 Kenichi Handa <handa@etl.go.jp>
10895
10896 * ccl.c (CCL_MAKE_CHAR): New macro.
10897 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
10898 registers by CCL_MAKE_CHAR before calling translate_char.
10899 <CCL_TranslateCharacterConstTbl> Likewise.
10900
10901 2000-02-08 Dave Love <fx@gnu.org>
10902
10903 * lread.c (__EXTENSIONS__): Define.
10904
10905 2000-02-08 Gerd Moellmann <gerd@gnu.org>
10906
10907 * puresize.h (BASE_PURESIZE): Increase to 650000.
10908
10909 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
10910
10911 * msdos.c (XMenuActivate): Turn off the cursor after displaying
10912 the help message.
10913
10914 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
10915
10916 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
10917 md, mh, mb, mr, and me to the fake termcap entry.
10918
10919 2000-02-06 Ken Raeburn <raeburn@gnu.org>
10920
10921 * sound.c (sound_cleanup): Don't call device close routine if the
10922 function pointer is null.
10923
10924 2000-02-06 Andrew Innes <andrewi@gnu.org>
10925
10926 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
10927 around image definitions and prototypes.
10928 (gamma_correct) [WINDOWSNT]: New prototype.
10929
10930 * w32term.c (x_make_frame_visible): Replace call to
10931 input_poll_signal with poll_for_input.
10932
10933 * window.c [WINDOWSNT]: Include w32term.h.
10934
10935 * xdisp.c [WINDOWSNT]: Include w32term.h.
10936
10937 * makefile.nt: Add dependencies on w32gui.h.
10938 (OBJ1): Include atimer.obj.
10939 ($(BLD)\atimer.obj): New dependency rule.
10940
10941 * w32.c (sigmask): New function (does nothing).
10942 (sigunblock): Ditto.
10943
10944 * frame.c [WINDOWSNT]: Include w32term.h.
10945
10946 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
10947
10948 * lread.c (syms_of_lread): Fix literal newlines.
10949
10950 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
10951 the string constant limit (2048 bytes) in MSVC.
10952 (main): Ditto.
10953
10954 2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
10955
10956 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit area.
10957 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
10958 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
10959 dispatch the event.
10960
10961 2000-02-04 Dave Love <fx@gnu.org>
10962
10963 * fileio.c: Remove some unused vars.
10964 (_GNU_SOURCE): Define (for euidaccess).
10965
10966 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
10967
10968 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
10969 gcpro1, gcpro2.
10970 (read_minibuf): Deal with allow_props correctly.
10971
10972 2000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
10973
10974 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
10975
10976 2000-02-03 Ken Raeburn <raeburn@gnu.org>
10977
10978 * search.c (compile_pattern): If a cache entry has a nil regexp,
10979 fill in that entry instead of clobbering a previously cached
10980 string regexp.
10981
10982 2000-02-02 Ken Raeburn <raeburn@gnu.org>
10983
10984 * puresize.h (BASE_PURESIZE): Increase to 610000.
10985
10986 2000-02-02 Gerd Moellmann <gerd@gnu.org>
10987
10988 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
10989 can GC.
10990
10991 2000-02-02 Kenichi Handa <handa@etl.go.jp>
10992
10993 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
10994 instead of incrementing ic directly.
10995 <CCL_WriteExprConst> Likewise.
10996 <ccl_set_expr>: Set ic to jump_address.
10997
10998 * fileio.c (e_write): Fix the handling of
10999 CODING_FINISH_INSUFFICIENT_SRC.
11000
11001 2000-02-01 Dave Love <fx@gnu.org>
11002
11003 * editfns.c (Fpropertize): Doc fix.
11004
11005 * process.c (Fstart_process): Doc fix.
11006
11007 * eval.c: Fix various doc strings not to duplicate information
11008 from help-manyarg-func-alist.
11009
11010 * window.c (Fset_window_margins): Don't make interactive. Doc fix.
11011
11012 * doc.c (Vhelp_manyarg_func_alist): New variable.
11013 (Fdocumentation): Use it.
11014 (syms_of_doc): Define it.
11015
11016 2000-01-31 Gerd Moellmann <gerd@gnu.org>
11017
11018 * xterm.c (xim_open_dpy): Remove unused local variable.
11019
11020 * emacs.c (USAGE): Use term `display options' instead of `X options'.
11021
11022 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
11023 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
11024
11025 * fns.c (sweep_weak_table): New function.
11026 (sweep_weak_hash_tables): Use it. Keep on marking until there
11027 is no more change.
11028
11029 2000-01-30 Gerd Moellmann <gerd@gnu.org>
11030
11031 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
11032 that XTread_socket does not crash by trying to call XNoOp on a
11033 closed display.
11034
11035 2000-01-30 Jason Rumney <jasonr@gnu.org>
11036
11037 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
11038 Change selected_frame to SELECTED_FRAME ().
11039 (w32_console_mouse_position): Remove #ifndef MULE from around
11040 `insist' parameter.
11041
11042 * makefile.nt: Remove dosfns.obj.
11043
11044 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
11045
11046 * w32fns.c (w32_defined_color): Check for valid frame before
11047 applying gamma correction. Eliminate dependency on frame elsewhere.
11048 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
11049 (w32_to_x_font): Use resx and resy not height_in and width_in.
11050 (x_to_w32_font): Doc fix.
11051 (xlfd_strip_height): New function to strip and return font height.
11052 (w32_font_match): Compare height separately from rest of xlfd
11053 spec, using xlfd_strip_height.
11054
11055 * w32term.c (w32_term_init): Swap resx and height_in, resy and
11056 width_in. Use w32_defined_color in place of defined_color.
11057
11058 * w32faces.c: Merge more of DOS and X specifics in preparation for
11059 merge with xfaces.c.
11060 (defined_color): Remove FIXME comment.
11061 (tty_color_name): Provide w32-specific function.
11062 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
11063
11064 * w32console.c (turn_on_face, turn_off_face): Removed.
11065 (w32_face_attributes): New function.
11066 (Global_variables): Reduce scope where possible.
11067 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
11068 fill attribute.
11069 (hl_mode): Don't modify text attributes.
11070 (write_glyphs): Don't do anything if len <= 0. Use
11071 w32_face_attributes to get attributes for drawing. Write
11072 terminating codes using char_attr_normal.
11073 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
11074 (update_begin, update_end): Likewise.
11075 (vga_stdcolor_name): New function.
11076 (initialize_w32_display): Remove char_attr_reverse and char_attr.
11077 (Fset_screen_color): Remove char_attr_reverse.
11078
11079 2000-01-29 Gerd Moellmann <gerd@gnu.org>
11080
11081 * xfns.c (xic_set_preeditarea): Take window parameter and
11082 window-relative pixel-positions.
11083
11084 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
11085 is its frame's selected window.
11086 (xim_instantiate_callback): Likewise.
11087
11088 * xfns.c (x_create_im): Removed.
11089 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
11090 (supported_xim_styles): Renamed from supported_styles.
11091 (best_xim_style): Renamed from best_style.
11092 (create_frame_xic): Renamed from xic_create_frame.
11093 (free_frame_xic): Renamed from xic_destroy_frame.
11094
11095 2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
11096
11097 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
11098 our frames, call XFilterEvent with 2nd parameter `None'.
11099 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
11100 returning XBufferOverflow.
11101 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status area.
11102 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
11103 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
11104 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
11105 (xim_initialize, xim_close)
11106 [HAVE_X_I18N && HAVE_X11R6]: New functions.
11107 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
11108 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
11109 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
11110
11111 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
11112 and `xim_styles'.
11113 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
11114 `xic_style' and `xic_xfs'.
11115 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
11116 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
11117 (FRAME_XIM): Removed.
11118
11119 * xfns.c (supported_styles): New variable.
11120 (DEFAULT_STYLE, DEFAULT_FONT): New macros
11121 (xic_create_xfontset, best_style, xic_create_frame)
11122 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
11123 (xic_set_xfontset): New functions.
11124
11125 2000-01-28 Dave Love <fx@gnu.org>
11126
11127 * s/irix6-5.h: Revert last change after change to irix5-0.h.
11128
11129 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
11130
11131 2000-01-28 Gerd Moellmann <gerd@gnu.org>
11132
11133 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
11134 for *scratch* if it already existed.
11135
11136 * emacs.c (USAGE): New macro.
11137 (main): Use it to display usage information.
11138
11139 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
11140
11141 Support for the menu-help feature:
11142
11143 * msdos.h: Change prototypes of XMenuAddSelection and XMenuActivate.
11144
11145 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
11146 part of the line to the termscript file.
11147 (IT_clear_to_end): Clear the entire line, not just its beginning.
11148 (menu_help_message, prev_menu_help_message): New variables.
11149 (IT_menu_make_room): Make room for the help_text member.
11150 (IT_menu_display): New argument disp_help; all callers changed.
11151 If disp_help is non-zero, store the help text of the active menu
11152 item in menu_help_message.
11153 (XMenuAddPane): Initialize the help_text member to NULL.
11154 (XMenuAddSelection): New argument help_text. Store it in the
11155 XMenu structure.
11156 (XMenuActivate): New argument help_callback. If the value of
11157 menu_help_message has changed since the last time, display the
11158 menu help message text while waiting for the mouse to move. Clear
11159 the echo area before exiting.
11160 (XMenuDestroy): Free the help_text member.
11161
11162 2000-01-27 Gerd Moellmann <gerd@gnu.org>
11163
11164 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
11165 XMenuAddSelection. Pass help callback to XMenuActivate.
11166 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
11167
11168 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
11169
11170 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
11171 and EMACS_SET_USECS.
11172
11173 2000-01-26 Dave Love <fx@gnu.org>
11174
11175 * editfns.c (Fchar_after, Fchar_before): Doc fix.
11176
11177 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
11178 an error may be signalled.
11179
11180 2000-01-26 Gerd Moellmann <gerd@gnu.org>
11181
11182 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
11183 LD_SWITCH_SYSTEM inherited from irix5-0.h.
11184
11185 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
11186
11187 2000-01-25 Gerd Moellmann <gerd@gnu.org>
11188
11189 * charset.c (Fstring): If there is a multibyte char among
11190 the args, always return a multibyte string.
11191
11192 2000-01-25 Gerd Moellmann <gerd@gnu.org>
11193
11194 * sysdep.c (sys_select): Turn atimers off and on instead of
11195 recording and restoring old alarm handler
11196
11197 * process.c (toplevel): Include atimer.h.
11198 (create_process_1): Rewritten.
11199 (create_process): Use atimers instead of alarm.
11200 (wait_reading_process_input) [hpux]: Turn atimers off instead
11201 of turning off SIGALRM.
11202 (wait_reading_process_input): Turn off atimers instead off
11203 calling stop_polling.
11204
11205 * emacs.c (main): Call init_atimer.
11206
11207 * keyboard.c (toplevel): Include systime.h and atimer.h.
11208 (polling_for_input): Removed because unused.
11209 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
11210 (poll_timer): New variable.
11211 (poll_for_input, poll_for_input_1): New functions.
11212 (start_polling, stop_polling): Rewritten.
11213
11214 * keyboard.h (polling_for_input): Removed.
11215
11216 * atimer.h, atimer.c: New files.
11217
11218 * Makefile.in (obj): Add atimer.o.
11219 (atimer.o): New target.
11220
11221 * blockinput.h (pending_atimers): Add extern declaration.
11222 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
11223
11224 * lisp.h (popup_activated_flag): Add extern declaration.
11225
11226 * xmenu.c (popup_activated_flag): Make externally visible.
11227 (popup_activate_callback) [USE_MOTIF]: Increment popup_activated_flag.
11228 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
11229
11230 * xterm.c (toplevel): Include atimer.h.
11231 (toolkit_scroll_bar_interaction): New variable.
11232 (Fxt_process_timeouts): Removed.
11233 (x_process_timeouts): New function.
11234 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
11235 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
11236 (x_make_frame_visible): Call poll_for_input_1 instead of
11237 input_poll_signal. Don't call alarm.
11238 (x_initialize): Install timer calling x_process_timeouts.
11239
11240 2000-01-24 Dave Love <fx@gnu.org>
11241
11242 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
11243 Don't use -cckr -- apparently not now necessary.
11244
11245 2000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
11246
11247 * msdos.c (IT_menu_display): Truncate long menu lines at the right
11248 screen boundary.
11249
11250 2000-01-23 Jason Rumney <jasonr@gnu.org>
11251
11252 * w32fns.c (w32_defined_color): Apply gamma correction before
11253 trying to map to the palette.
11254 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
11255 to w32_clear_rect.
11256
11257 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
11258 here. Callers changed to always pass real device context.
11259 (w32_draw_bitmap): Likewise.
11260 (w32_get_glyph_overhangs): Likewise.
11261 (w32_draw_box_rect): Make use of s->hdc rather than getting a new one.
11262 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
11263 pfnSetScrollInfo and SetScrollRange.
11264 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
11265 back into MULE characters after decoding them.
11266 (x_get_glyph_face_and_encoding): Likewise.
11267 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
11268 GetCharABCWidthsW fails, since this is defined on Windows 9x.
11269 (x_produce_glyphs): Calculate per char metrics for a character
11270 that we know exists in default font when font_not_found_p is true.
11271
11272 2000-01-22 Jason Rumney <jasonr@gnu.org>
11273
11274 * makefile.nt (intervals.obj, composite.obj): New modules.
11275 (composite.h): Added as dependency where appropriate.
11276
11277 * w32gui.h (XGCValue): New struct for emulating X GCs.
11278
11279 * w32term.h (XCharStruct): New struct for emulating X.
11280
11281 * w32console.c (turn_on_face, turn_off_face): New functions.
11282 (change_line_highlight): New prototype for new redisplay.
11283 (write_glyphs): Support multibyte text. Support faces.
11284
11285 * w32faces.c: Complete rewrite for new redisplay based on new xfaces.c.
11286
11287 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
11288 throughout. struct frame * in place of FRAME_PTR.
11289 Skeleton support for images, toolbars, tooltips from xfns.c.
11290 (Fx_create_frame): Use system default for default scroll bar width.
11291 (w32_get_arg): Renamed from x_get_arg.
11292 (Fx_file_dialog): New function.
11293 (w32_list_fonts): Check cache before asking system.
11294 (Vw32_enable_synthesized_fonts): New variable.
11295 (Vw32_enable_italics): Obsolete, removed.
11296
11297 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
11298 Use SELECTED_FRAME macro.
11299
11300 * w32menu.c: Add skeleton support for help strings on menus.
11301 (add_menu_item): Native checkbox and radio support added, but not
11302 yet enabled due to bugs.
11303 (push_menu_item): Add parameters type, selection and help.
11304 Callers updated.
11305 Formatting changes to reduce unnecessary diffs with xmenu.c.
11306
11307 * w32select.c (Fw32_set_clipboard_data): Update call to
11308 find_charset_in_str.
11309
11310 * w32term.c: Complete rewrite for new redisplay based on new
11311 xterm.c with necessary sections merged back in from old w32term.c.
11312
11313 2000-01-21 Richard M. Stallman <rms@gnu.org>
11314
11315 * data.c (set_internal): Further fix in same criterion.
11316
11317 2000-01-20 Richard M. Stallman <rms@gnu.org>
11318
11319 * data.c (set_internal): Fix the criteria for whether
11320 to swap out the old cached binding.
11321
11322 2000-01-19 Dave Love <fx@gnu.org>
11323
11324 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
11325
11326 2000-01-18 Kenichi Handa <handa@etl.go.jp>
11327
11328 * regex.c (re_compile_fastmap): While checking a range table for
11329 `charset', skip flag bits for a character class correctly.
11330
11331 2000-01-17 Gerd Moellmann <gerd@gnu.org>
11332
11333 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
11334
11335 * xfns.c (x_window): Call lw_create_widget with new parameter list.
11336
11337 * widget.c (EmacsFrameSetCharSize): Change size of children first
11338 because of problems with main window geometry management under Lesstif.
11339
11340 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
11341 MENU_ITEMS_ITEM_.*.
11342 (MENU_ITEMS_ITEM_HELP): New enumerator.
11343 (push_menu_item): Add parameter HELP. Record help in menu_items.
11344 (single_menu_item, single_submenu, list_of_items): Call
11345 push_menu_item with new parameter.
11346 (single_submenu): Set help string in widget value.
11347 (menu_highlight_callback): New function.
11348 (set_frame_menubar): Call lw_create_widget with new
11349 parameter list.
11350 (xmenu_show, xdialog_show): Ditto.
11351
11352 2000-01-13 Gerd Moellmann <gerd@gnu.org>
11353
11354 * sound.c (Fplay_sound): Improve doc string.
11355
11356 2000-01-11 Richard M. Stallman <rms@gnu.org>
11357
11358 * lisp.h (set_internal): Enter the new arg.
11359
11360 * eval.c (specbind): Record buffer-local variables specially,
11361 indicating which buffer's binding was saved.
11362 (unbind_to): Restore buffer-local variables specially
11363 in the proper buffer.
11364
11365 * data.c (set_internal): New arg BUF.
11366
11367 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
11368 * data.c (Fset): Pass new arg to set_internal.
11369 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
11370
11371 2000-01-11 Gerd Moellmann <gerd@gnu.org>
11372
11373 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload, xprintsym.
11374
11375 2000-01-11 Richard M. Stallman <rms@gnu.org>
11376
11377 * minibuf.c (Ftry_completion): Doc fix.
11378
11379 2000-01-11 Gerd Moellmann <gerd@gnu.org>
11380
11381 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
11382 vector, too.
11383
11384 2000-01-11 Andreas Schwab <schwab@suse.de>
11385
11386 * coding.c (code_convert_region): Initialize total_skip.
11387
11388 2000-01-08 Dave Love <fx@gnu.org>
11389
11390 * eval.c (Fuser_variable_p): Check customizability too.
11391
11392 2000-01-07 Gerd Moellmann <gerd@gnu.org>
11393
11394 * minibuf.c (Fcompleting_read): Doc fix.
11395
11396 2000-01-05 Gerd Moellmann <gerd@gnu.org>
11397
11398 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
11399 -L /usr/local/lib.
11400
11401 * xfns.c (x_create_im): New function to set IM and IC of a frame.
11402 Check that input style is supported before trying to create an
11403 IC for it.
11404 (x_window): Call x_create_im.
11405
11406 2000-01-04 Gerd Moellmann <gerd@gnu.org>
11407
11408 * xfns.c (current_gif_memory_src): New variable.
11409 (gif_load): Record the address of the current memory source
11410 in current_gif_memory_src.
11411 (gif_read_from_memory): Use current_gif_memory_src.
11412
11413 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
11414 macros statement form.
11415
11416 * sound.c (struct sound): Renamed from struct sound_file.
11417 (struct sound): Add members `data' and `header_size'.
11418 (enum sound_attr): Add SOUND_DATA.
11419 (current_sound, current_sound_device): Variables renamed from
11420 sound_file and sound_device.
11421 (parse_sound): Parse :data.
11422 (parse_sound): Handle sound data in strings.
11423 (find_sound_type): Function renamed from find_sound_file_type.
11424 (wav_init, au_init): Fail if sound's header_size is smaller than
11425 needed header size.
11426 (wav_play, au_play): Play sounds from string data.
11427
11428 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
11429
11430 * lisp.h: Add prototype for allocate_string_data.
11431
11432 * alloc.c (Fgarbage_collect): Return number of live and free strings.
11433
11434 * alloc.c (mark_buffer): Remove code in #if 0.
11435 (gc_sweep): Ditto.
11436 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
11437 (strings_consed): New variable.
11438 (allocate_string): Set it.
11439 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
11440 (Fmemory_use_counts): Return strings_consed. Use Flist.
11441
11442 * alloc.c: General cleanup in comments etc. Remove conditional
11443 compilation for `standalone'.
11444
11445 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
11446
11447 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
11448 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
11449 (DONT_COPY_FLAG): Removed.
11450 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
11451 (struct sdata, struct sblock): New
11452 (struct string_block): Rewritten.
11453 (STRINGS_IN_STRING_BLOCK): New macro.
11454 (oldest_sblock, current_sblock, total_strings, total_free_strings)
11455 (large_sblocks, string_blocks, string_free_list): New variables.
11456 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
11457 (init_strings): Rewritten.
11458 (allocate_string, allocate_string_data, compact_small_strings)
11459 (free_large_strings, sweep_strings): New functions.
11460 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
11461 (struct string_block_head, current_string_block)
11462 (first_string_block, large_string_blocks, STRING_FULLSIZE)
11463 (STRING_PAD): Removed.
11464 (make_uninit_multibyte_string, make_pure_string): Rewritten.
11465 (Fgarbage_collect): Don't set mark bit in large strings.
11466 (mark_object): Mark strings differently. Mark symbol names
11467 differently.
11468 (survives_gc_p): Test marked strings differently.
11469 (gc_sweep): Sweep strings differently, unmark strings in
11470 symbol names.
11471 (compact_strings): Removed.
11472
11473 2000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
11474
11475 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
11476 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
11477
11478 2000-01-04 Kenichi Handa <handa@etl.go.jp>
11479
11480 * fileio.c (Finsert_file_contents): Signal error if visiting file
11481 in a non-empty buffer.
11482
11483 * term.c (encode_terminal_code): Fix the previous change.
11484
11485 2000-01-03 Gerd Moellmann <gerd@gnu.org>
11486
11487 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
11488 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
11489
11490 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
11491
11492 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11493
11494 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
11495 need to test for MSDOS frames.
11496
11497 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11498
11499 * dosfns.c (unspecified_colors): Remove.
11500 (msdos_stdcolor_idx): Use global variables unspecified_fg and
11501 unspecified_bg.
11502 (msdos_stdcolor_name): Return strings for unspecified fore- and
11503 back-ground colors.
11504
11505 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
11506 (syms_of_xfaces): Remove their staticpro's.
11507 (tty_color_name): Return Lisp strings for unspecified fore- and
11508 back-ground colors.
11509 (Finternal_set_lisp_face_attribute): Remove the special treatment
11510 for Qunspecified_{f,b}g.
11511 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp string.
11512
11513 2000-01-03 Gerd Moellmann <gerd@gnu.org>
11514
11515 * xdisp.c (reseat_at_next_visible_line_start): Position before
11516 newline only if ending up on a newline.
11517 (next_element_from_ellipsis): Return success. Handle case of
11518 displaying no ellipsis. Fix case of ellipsis defined in display table.
11519 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
11520 returns 0.
11521
11522 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11523
11524 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
11525 (Fcolor_supported_p): Renamed from face-color-supported-p.
11526
11527 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11528
11529 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
11530 list of colors renamed to tty-defined-color-alist.
11531 (tty_color_name): Pass the frame to tty-color-by-index.
11532 (realize_tty_face): tty-color-alist is now a function which
11533 accepts the frame as argument.
11534
11535 * term.c (Ftty_display_color_p): Accept an optional argument FRAME.
11536
11537 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11538
11539 * term.c (insert_glyphs): Pass glyph, not &glyph, to
11540 encode_terminal_code.
11541
11542 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11543
11544 * dispnew.c (mode_line_string): Support termcap frames as well.
11545
11546 2000-01-01 Gerd Moellmann <gerd@gnu.org>
11547
11548 * syntax.c (Fforward_word): Undo previous change.
11549
11550 * editfns.c (Fconstrain_to_field): Don't constrain if
11551 inhibit-field-text-motion is non-nil.
11552 (Fline_beginning_position): Undo previous change.
11553 (Fline_end_position): Ditto.
11554
11555 * syntax.c (Fforward_word): Notice field boundaries only if
11556 inhibit-field-text-motion is nil.
11557
11558 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
11559
11560 * editfns.c (Vinhibit_field_text_motion): New variable.
11561 (inhibit-field-text-motion): New DEFVAR_LISP.
11562 (Fline_beginning_position, Fline_end_position): Notice field
11563 boundaries only if inhibit-field-text-motion is nil.
11564
11565 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
11566 All calls adjusted.
11567 (x_build_heuristic_mask): Likewise.
11568 (xbm_load_image_from_file): Change error output.
11569 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
11570 (gif_load, gs_load, x_kill_gs_process): Ditto.
11571
11572 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
11573 color indices when accessing raster pixels.
11574 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
11575 one of :file or :data.
11576 (enum pbm_keyword_index): Add PBM_DATA.
11577 (pbm_format): Add :data.
11578 (pbm_image_p): Allow either :file or :data.
11579 (pbm_read_file): New function.
11580 (pbm_scan_number): Rewritten to read from string.
11581 (pbm_load): Support :data.
11582
11583 See ChangeLog.8 for earlier changes.
11584
11585 ;; Local Variables:
11586 ;; coding: iso-2022-7bit
11587 ;; End: