(try_alternative_families): First try the FAMILY.
[bpt/emacs.git] / src / ChangeLog
1 2001-05-14 Stefan Monnier <monnier@cs.yale.edu>
2
3 * xfaces.c (try_alternative_families): First try the FAMILY.
4 And if nothing is found in the end, try again with scalable fonts.
5 (try_font_list): Let try_alternative_families do a bit more of
6 the work. Only use FAMILY if it is not nil.
7 (syms_of_xfaces) <scalable-fonts-allowed>: Fix docstring.
8
9 2001-05-14 Gerd Moellmann <gerd@gnu.org>
10
11 * xterm.c (x_draw_glyphs): Fix compuation of rightmost x for
12 full-width rows.
13
14 * xfaces.c (split_font_name): Make sure to leave the loop
15 with the right value of `i'.
16
17 * xfaces.c (split_font_name): Handle matrix transformations
18 in the pixel and point size fields of XLFD font names.
19 (xlfd_point_size): Likewise.
20
21 2001-05-12 Eli Zaretskii <eliz@is.elta.co.il>
22
23 * w32fns.c (w32_to_x_font): Change prototype to fit the declaration.
24 (x_to_w32_font): Add prototype.
25
26 * regex.c (malloc, realloc, free) [emacs]: Undefine before
27 redefining, to avoid compiler warnings.
28
29 * w32proc.c: Include syssignal.h, to avoid compiler warnings.
30
31 * w32bdf.c (search_file_line, set_bdf_font_info, seek_char)
32 (w32_get_bdf_glyph): Cast between unsigned char and char when
33 passing arguments to subroutines, to shut up compiler warnings.
34 (w32_get_bdf_glyph): Don't mix signed and unsigned when calling
35 GET_HEX_VAL.
36
37 * xfaces.c: Include keyboard.h before frame.h, not after it.
38
39 * widget.c: Include keyboard.h before frame.h.
40
41 * w32term.h (struct image, struct face): Forward declaration, to
42 avoid compiler warnings.
43
44 2001-05-11 Gerd Moellmann <gerd@gnu.org>
45
46 * keyboard.c (read_key_sequence): Don't modify events when
47 generating fake prefix keys (mode-line, scroll-bar, ...) since
48 this prevents proper processing of such events when pushed back
49 into unread-command-events.
50
51 * xterm.c (clear_mouse_face): Return 1 if text with mouse face was
52 actually redrawn. Make the function static.
53 (note_mouse_highlight): Fix a case where the mouse cursor
54 was changed back to the text cursor.
55
56 * xterm.h (clear_mouse_face): Remove prototype.
57
58 * xdisp.c (try_window_id): Fix the fix and set the right
59 window_end_vpos.
60
61 * xdisp.c (try_window_id): Fix computation of window end in the
62 case that lines were deleted at the end of the window. Add some
63 more debug_method_adds.
64
65 * xfaces.c (try_alternative_families): New function.
66 (try_font_list): Use it. If ATTRS specifies a family, check
67 fonts from that family first.
68 (choose_face_font): Remove code setting the family part of
69 the pattern to nil.
70
71 2001-05-10 Gerd Moellmann <gerd@gnu.org>
72
73 * xdisp.c (try_window_id): Fix case of all changes before
74 the window start.
75
76 * xdisp.c (try_window_id): Add some xasserts.
77
78 2001-05-09 Gerd Moellmann <gerd@gnu.org>
79
80 * lisp.h (GLYPH_CHAR_VALID_P): Use CHAR_VALID_P.
81
82 2001-05-09 Dave Love <fx@gnu.org>
83
84 * xdisp.c (GIVE_UP): Fix for K&R C.
85
86 2001-05-09 Gerd Moellmann <gerd@gnu.org>
87
88 * print.c (syms_of_print) <print-length, print-level>: Doc fix.
89
90 * xterm.c (note_mouse_highlight): Don't change the mouse cursor
91 back to the text cursor shape without need.
92
93 2001-05-07 Gerd Moellmann <gerd@gnu.org>
94
95 * xfns.c (x_set_foreground_color): Set frame's cursor_pixel.
96
97 * dispextern.h (inverse_video): Declare extern.
98
99 * keyboard.c (delete_kboard): Handle the case that selected_frame
100 has been deleted in the course of x_connection_closed.
101
102 2001-05-03 Eli Zaretskii <eliz@is.elta.co.il>
103
104 * xterm.c (XTread_socket) <Expose> [!USE_TOOLKIT_SCROLL_BARS]:
105 Fix the change from 2001-04-30.
106
107 2001-05-03 Gerd Moellmann <gerd@gnu.org>
108
109 * xfns.c (file_dialog_unmap_cb): New function.
110 (Fx_file_dialog): Use it as XmNunmapCallback to capture the case
111 where a dialog is closed via the window manager.
112
113 * xdisp.c (try_window_id): Cases of changes all in front of
114 the window start or all below the window end mostly rewritten.
115 (redisplay_window): Move the tests if try_window_id is
116 applicable to try_window_id.
117 (GIVE_UP): New macro.
118
119 2001-05-02 Gerd Moellmann <gerd@gnu.org>
120
121 * xterm.c (expose_window): Return int. If W is the window
122 currently being updated, mark the frame garbaged.
123 Fix computation of rows intersecting the exposed rectangle.
124 (expose_window_tree): Stop when expose_window returns 0.
125
126 * xterm.c (x_draw_stretch_glyph_string): Don't draw background
127 again if it has already been drawn.
128
129 2001-05-01 Stefan Monnier <monnier@cs.yale.edu>
130
131 * syntax.c (update_syntax_table): Check that oldi has the same
132 properties as old_prop before deciding not to invalidate.
133
134 2001-04-30 Gerd Moellmann <gerd@gnu.org>
135
136 * undo.c (Fprimitive_undo): In a writable buffer, enable undoing
137 read-only text that is so because of text properties.
138
139 * xterm.c (x_window_to_menu_bar) [USE_LUCID]: New function.
140 (XTread_socket) <Expose> [USE_LUCID]: Handle events for
141 windows that are components of a Lucid menu bar.
142
143 2001-04-27 Gerd Moellmann <gerd@gnu.org>
144
145 * term.c (turn_on_face): Fix reverse video handling on terminals
146 that don't support colors.
147
148 2001-04-26 Gerd Moellmann <gerd@gnu.org>
149
150 * editfns.c (save_excursion_restore): Don't use XBUFFER on
151 a non-buffer.
152
153 2001-04-25 Gerd Moellmann <gerd@gnu.org>
154
155 * term.c (toggle_highlight): New function.
156 (turn_on_face): Change handling of reverse video.
157
158 * process.c (wait_reading_process_input):
159 Call record_asynch_buffer_change only if a timer really changed buffers.
160
161 * buffer.c (mouse_face_overlay_overlaps): Fix the computation
162 of the number of overlays to check.
163
164 * keyboard.c (command_loop_1): Redo change of 2001-03-12.
165
166 * xdisp.c (try_window_id): Fix a case where window_end_pos
167 and window_end_bytepos were not adjusted.
168
169 2001-04-23 Gerd Moellmann <gerd@gnu.org>
170
171 * xfaces.c (compute_char_face): If buffer is unibyte, set CH to
172 zero instead of -1.
173
174 2001-04-21 Eli Zaretskii <eliz@is.elta.co.il>
175
176 * process.c (wait_reading_process_input) [!subprocesses]:
177 Don't reference waiting_for_user_input_p, it's not defined in the
178 branch without async subprocesses support.
179
180 2001-04-19 Gerd Moellmann <gerd@gnu.org>
181
182 * keyboard.c (delete_kboard): Prevent a dangling reference
183 from current_kboard to KB, which is freed.
184
185 * process.c (wait_reading_process_input):
186 Call record_asynch_buffer_change after running timers, to make
187 read_key_sequence aware of buffer changes from under it.
188
189 2001-04-18 Gerd Moellmann <gerd@gnu.org>
190
191 * xfaces.c (Qscalable_fonts_allowed): New variable.
192 (realizing_basic_faces_p): Removed.
193 (x_face_list_fonts): Special handling for realizing_basic_faces_p
194 removed.
195 (realize_basic_faces): Specbind Qscalable_fonts_allowed to t.
196 (syms_of_xfaces): Initialize Qscalable_fonts_allowed. Change default
197 for scalable-fonts-allowed to t.
198
199 * fileio.c (Finsert_file_contents): If the file size returned from
200 stat is zero, set END to READ_BUF_SIZE. This makes sure we can
201 read from files on a procfs whose contents are generated dynamically.
202
203 2001-04-18 Eli Zaretskii <eliz@is.elta.co.il>
204
205 * gmalloc.c (__malloc_size_t) [__GNUC__]: If STDC_HEADERS is not
206 defined, include stddef.h and use __SIZE_TYPE__ instead of size_t.
207 (__memalign_hook): Make the two prototypes consistent.
208
209 2001-04-17 Gerd Moellmann <gerd@gnu.org>
210
211 * xdisp.c (redisplay_window): Make sure to clear the desired glyph
212 matrix of mini-windows.
213
214 2001-04-12 Stefan Monnier <monnier@cs.yale.edu>
215
216 * intervals.c (find_interval): Don't rebalance during signal handling.
217
218 2001-04-11 Gerd Moellmann <gerd@gnu.org>
219
220 * fns.c: Include blockinput.h.
221
222 * fns.c (Fplist_get): Don't QUIT if interrupt_input_blocked.
223
224 2001-04-10 Gerd Moellmann <gerd@gnu.org>
225
226 * fns.c (Fcompare_strings): Fix return values.
227
228 * window.c (window_scroll): Change the meaning of N to mean
229 N screen-fulls or N lines.
230 (window_scroll_pixel_based, window_scroll_line_based)
231 (scroll_command, Fscroll_other_window): Change accordingly.
232
233 * window.c (window_scroll_pixel_based, Frecenter):
234 Call window_box_height instead of using it.last_visible_y for the
235 height of the window.
236
237 * xdisp.c (redisplay_window) <recenter>: Call window_box_height
238 instead of using it.last_visible_y for the height of the window.
239
240 * w32proc.c (sys_spawnve): Quote more chars for Cygwin.
241 From Dan Holmsand <dan@eyebee.com>.
242
243 * w32.c (sys_open): Try to open file without _O_CREAT first, to be
244 able to write to hidden and system files. From Dan Holmsand
245 <dan@eyebee.com>.
246
247 * fileio.c (Fcopy_file) [WINDOWSNT]: Use CopyFile. From Dan
248 Holmsand <dan@eyebee.com>.
249
250 2001-04-09 Gerd Moellmann <gerd@gnu.org>
251
252 * fns.c (Fplist_get, Fplist_put): Add QUITs.
253
254 * window.c (window_internal_height): Return 1 less if the
255 window has a header line.
256
257 * xdisp.c (try_window_id): When scrolling on a terminal, take
258 the change of window_internal_height into account.
259
260 2001-04-09 Eli Zaretskii <eliz@is.elta.co.il>
261
262 * gmalloc.c (align): If the argument SIZE would overflow
263 __malloc_ptrdiff_t, fail right away.
264
265 2001-04-06 Gerd Moellmann <gerd@gnu.org>
266
267 * xfns.c (compute_tip_xy): Add parameters WIDTH and HEIGHT.
268 Make sure the tooltip is completely visible.
269 (x_make_gc): Use FRAME_X_SCREEN_NUMBER.
270
271 * xterm.h (FRAME_X_SCREEN_NUMBER): New macro.
272
273 * xmenu.c (xmenu_show): Use FRAME_X_SCREEN_NUMBER.
274
275 2001-04-06 Dave Love <fx@gnu.org>
276
277 * composite.c (update_compositions) <check_mask & CHECK_HEAD>:
278 Fix test of `from'.
279
280 2001-04-06 Gerd Moellmann <gerd@gnu.org>
281
282 * composite.h (COMPOSITION_VALID_P): Allow integers as cdrs of PROP.
283
284 * xdisp.c (Qinhibit_eval_during_redisplay): Make it a Lisp_Object.
285
286 2001-04-05 Gerd Moellmann <gerd@gnu.org>
287
288 * sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
289
290 * editfns.c (Fcurrent_time_zone): Accept spaces in timezone names.
291
292 * xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
293 (syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
294
295 * xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
296 shell widget's position only if it is non-null.
297
298 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]:
299 Set f->output_data.x->widget to null after destroying it.
300
301 * fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
302 FILENAME to bring it in synch with the documentation.
303
304 * xfaces.c (realizing_basic_faces_p): Renamed from
305 realize_default_face_p.
306 (realize_basic_faces): Set/clear realizing_basic_faces_p.
307 (realize_default_face): Don't set the flag.
308
309 2001-04-04 Gerd Moellmann <gerd@gnu.org>
310
311 * lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
312
313 * keyboard.c (echoing, echo_message_buffer): Make externally visible.
314
315 * xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
316 the buffer that was used for echoing.
317
318 * xfaces.c (best_matching_font): Remove unused parameter PATTERN.
319 (first_font_matching): Removed unused function.
320 (x_face_list_fonts): Remove unused parameter SCALABLE_P.
321 (may_use_scalable_font_p): Remove parameter FONT; rename
322 parameter NAME to FONT.
323 (x_face_list_fonts): Fix missing bounds check.
324 (realizing_default_face_p): New variable.
325 (realize_default_face): Set and clear that flag.
326 (x_face_list_fonts): When called during the realization of the
327 default face, and no matching fonts are found when ignoring
328 scalable fonts and fonts matching a regexp from
329 face-ignored-fonts, try without ignoring fonts.
330
331 2001-04-03 Gerd Moellmann <gerd@gnu.org>
332
333 * xfns.c (postprocess_image): New function.
334 (lookup_image): Call it for all image types except PostScript.
335 (x_kill_gs_process): Call postprocess_image.
336
337 * xterm.c (x_use_underline_position_properties): New variable.
338 (x_draw_glyph_string): Use it.
339 (syms_of_xterm): DEFVAR_BOOL it.
340
341 2001-04-02 Gerd Moellmann <gerd@gnu.org>
342
343 * xterm.c (x_alloc_nearest_color_1): New function.
344 (x_alloc_nearest_color): Use it.
345 (x_color_cells): Take a Display as argument, instead of a frame.
346 (cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
347 (cvt_string_to_pixel, cvt_pixel_dtor): New functions.
348 (x_initialize): Register cvt_string_to_pixel as resource converter
349 string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
350
351 2001-03-30 Gerd Moellmann <gerd@gnu.org>
352
353 * xdisp.c (get_overlay_strings): Set iterator's end_charpos.
354 (set_iterator_to_next): If a string from a display property ends,
355 consider the case that this might also be the end of an
356 overlay string having the display property.
357
358 * xdisp.c (handle_display_prop): Fix recognition of subproperty lists.
359
360 * xdisp.c (reseat_to_string): Undo last change.
361
362 * dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
363 matrix of a window when the header line changes, when
364 new rows are allocated, or when the width changes.
365
366 2001-03-30 Eli Zaretskii <eliz@is.elta.co.il>
367
368 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last change.
369
370 2001-03-29 Eli Zaretskii <eliz@is.elta.co.il>
371
372 * fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
373 deprecated.
374
375 2001-03-29 Gerd Moellmann <gerd@gnu.org>
376
377 * data.c (Fsubr_interactive_form): New function.
378 (syms_of_data): Defsubr it.
379
380 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
381 (live_float_p, live_misc_p): Return 1 only if the offset of the
382 pointer in its block is >= 0.
383
384 2001-03-28 Paul Eggert <eggert@twinsun.com>
385
386 * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
387 microseconds calcuation. Avoid double-rounding problem.
388 In doc string, warn that the result is approximate.
389
390 2001-03-28 Gerd Moellmann <gerd@gnu.org>
391
392 * eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
393 bind `inhibit-eval-during-redisplay' to t.
394
395 * lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
396
397 * xdisp.c (inhibit_eval_during_redisplay)
398 (Qinhibit_eval_during_redisplay): New variables.
399 (safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
400 don't eval, return nil instead.
401 (syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
402 Initialize Qinhibit_eval_during_redisplay.
403
404 * xdisp.c (reseat_to_string): If STRING is multibyte, set
405 the iterator's multibyte_p flag.
406
407 * xfaces.c (realize_basic_faces): Decrement menu_face_change_count
408 instead of setting it to zero; it's incremented for each frame
409 where the menu face is changed.
410
411 * xterm.c (x_draw_relief_rect): Extend left shadow to the bottom;
412 change bottom shadow accordingly.
413
414 * xterm.c (expose_window_tree, expose_frame): Don't compute
415 intersections here.
416 (expose_window): Do it here instead.
417 (x_draw_glyph_string): Fix a computation of the underline position.
418
419 * bytecode.c (BYTE_CODE_QUIT): New macro.
420 (Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
421
422 2001-03-27 Gerd Moellmann <gerd@gnu.org>
423
424 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
425 Give up if matrix starts in an ellipsis.
426 (init_from_display_pos): Do nothing if POS doesn't specify
427 a dpvec_index but the iterator has such a position.
428
429 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
430
431 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
432 x/y position is (0, 0) after destroying the menu bar, restore
433 its original position.
434
435 * xdisp.c (in_ellipses_for_invisible_text_p): New function.
436 (init_from_display_pos): Use it.
437 (try_window_reusing_current_matrix): Don't use cursor_row_p.
438
439 2001-03-26 Gerd Moellmann <gerd@gnu.org>
440
441 * xdisp.c (try_window_id): Undo last change.
442
443 2001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
444
445 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
446
447 * buffer.c (syms_of_buffer): Doc fix.
448
449 2001-03-26 Gerd Moellmann <gerd@gnu.org>
450
451 * xfaces.c (x_update_menu_appearance): Use local variable
452 popup_path for setting font resources.
453
454 2001-03-25 Eli Zaretskii <eliz@is.elta.co.il>
455
456 * frame.c (Fframe_list): Don't reference tip_frame if
457 HAVE_WINDOW_SYSTEM is not defined.
458
459 * emacs.c (main): Update the copyright year. From Werner LEMBERG
460 <wl@gnu.org>.
461
462 2001-03-25 Gerd Moellmann <gerd@gnu.org>
463
464 * xdisp.c (init_from_display_pos): Test invisible property
465 with TEXT_PROP_MEANS_INVISIBLE instead of NILP.
466
467 * xdisp.c (redisplay_internal) <update one window>: Make sure
468 last_arrow_position and last_arrow_string are set.
469
470 * frame.c (Fframe_list): Don't return a tooltip frame.
471
472 2001-03-23 Gerd Moellmann <gerd@gnu.org>
473
474 * xdisp.c (mark_window_display_accurate_1): New function,
475 extracted from mark_window_display_accurate.
476 Compute BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED,
477 BUF_BEG_UNCHANGED, BUF_END_UNCHANGED.
478 (mark_window_display_accurate): Use it.
479 (redisplay_internal): Use it for the selected window.
480 (redisplay_internal): Avoid duplicate mark_window_display_accurate
481 for the selected frame.
482
483 * xdisp.c Use make_number, for readability.
484 (try_window_id): Disable rows below the window end.
485 (try_window_reusing_current_matrix): Use cursor_row_p.
486 (try_window_reusing_current_matrix) <scrolling up>: Fix disabling
487 of rows.
488 (init_from_display_pos): If POS specifies a position in a display
489 vector, maybe get the iterator set up for that ellipsis.
490
491 * xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
492
493 2001-03-23 Eli Zaretskii <eliz@is.elta.co.il>
494
495 * xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
496
497 2001-03-23 Gerd Moellmann <gerd@gnu.org>
498
499 * xfaces.c (x_update_menu_appearance): Use a different path
500 for Lucid popup menus.
501
502 2001-03-22 Stefan Monnier <monnier@cs.yale.edu>
503
504 * xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
505
506 * xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
507 (string_buffer_position): Use `make_number'.
508
509 2001-03-22 Gerd Moellmann <gerd@gnu.org>
510
511 * xfaces.c (x_update_menu_appearance): Renamed from
512 x_set_menu_face_resources. Use different resources for popups.
513
514 * lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
515 (GC_CHECK_STRING_BYTES): Don't define.
516
517 * xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
518 Removed, together with subroutines.
519 (x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
520 (realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
521
522 * dispextern.h (x_set_menu_resources_from_menu_face):
523 Remove prototype.
524
525 * xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
526 Remove calls to x_set_menu_resources_from_menu_face.
527
528 * xfaces.c (xm_set_menu_resources_from_menu_face):
529 Remove #ifndef LESSTIF_VERSION.
530
531 * xmenu.c: Include widget.h.
532 (single_submenu): Return int. Some cleanup.
533 (set_frame_menubar): Call x_set_menu_resources_from_menu_face.
534
535 2001-03-21 Gerd Moellmann <gerd@gnu.org>
536
537 * xterm.c (x_update_window_end): Handle overwritten mouse face
538 also for tool bar windows.
539 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
540 DRAW is DRAW_IMAGE_RAISED.
541
542 2001-03-20 Gerd Moellmann <gerd@gnu.org>
543
544 * print.c (syms_of_print): Doc fixes.
545
546 * fns.c (Fmd5): Doc fix.
547
548 2001-03-19 Gerd Moellmann <gerd@gnu.org>
549
550 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
551 Clear area of the frame not occupied by the scroll bar.
552
553 * xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
554 tip frame's root window buffer to *tip* right after creating
555 the frame.
556
557 * xdisp.c (highlight_trailing_whitespace): Glyphs whose object
558 is an integer don't have to be for space characters.
559
560 2001-03-16 Gerd Moellmann <gerd@gnu.org>
561
562 * indent.c (current_column, current_column_1, Fmove_to_column)
563 (compute_motion): Handle characters from display vectors differently.
564
565 2001-03-15 Kenichi Handa <handa@etl.go.jp>
566
567 * xterm.c (x_draw_glyph_string): Draw relief (if any) before
568 drawing glyph string.
569
570 2001-03-15 Gerd Moellmann <gerd@gnu.org>
571
572 * keyboard.c (timer_check): Preserve the value of deactivate-mark.
573 (command_loop_1): Undo last change.
574
575 * xterm.c (fast_find_position): Return the correct vpos.
576
577 * data.c (store_symval_forwarding): Add parameter BUF. If BUF is
578 non-null, set a per-buffer value in BUF instead of the current buffer.
579 (swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
580 Call store_symval_forwarding with BUF null.
581 (set_internal): Call store_symval_forwarding with the BUF
582 parameter passed to set_internal. Formerly, the value was always
583 set in the current buffer; the buffer recorded in specbind for
584 this case wasn't used.
585 (arith_driver): Reindent.
586
587 * buffer.c (swap_out_buffer_local_variables):
588 Call store_symval_forwarding with BUF null.
589
590 * lisp.h (store_symval_forwarding): Change prototype.
591
592 * eval.c (specbind): Call store_symval_forwarding with BUF null.
593
594 2001-03-14 Gerd Moellmann <gerd@gnu.org>
595
596 * frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
597 FOR_DELETION. Avoid resizing the mini-window of the selected
598 frame if FOR_DELETION is set.
599 (Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
600 (Fmake_frame_invisible): Change calls to do_switch_frame for new
601 signature.
602
603 * window.c (Fset_window_configuration): Change call to
604 do_switch_frame to new format.
605
606 * keyboard.c (quit_throw_to_read_char): Change call to
607 do_switch_frame to new format.
608
609 * lisp.h (do_switch_frame): Change prototype.
610
611 * frame.c (Fframe_parameters): In the `buffer-list' frame
612 parameter, store the buffer list of FRAME, not the list of the
613 selected frame.
614
615 * xterm.c (x_draw_glyph_string_box): Don't draw a full-width
616 box just because the glyph row's full_width_p flag is set.
617
618 2001-03-14 Eli Zaretskii <eliz@is.elta.co.il>
619
620 * xdisp.c (highlight_trailing_whitespace): On character terminals,
621 skip the padding blanks inserted in extend_face_to_end_of_line,
622 before checking for trailing whitespace.
623
624 2001-03-13 Gerd Moellmann <gerd@gnu.org>
625
626 * xmenu.c (popup_activate_callback, popup_deactivate_callback):
627 Remove special handling for LessTif/Motif.
628 (toplevel): Don't include Xm/Xm.h.
629
630 * xterm.c (XTread_socket) <LeaveNotify, EnterNotify>:
631 Remove workaround code for LessTif; it doesn't work anymore.
632
633 * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
634 Xm/ScrollBarP.h.
635
636 * xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]:
637 Don't access private scroll bar data; it's no longer necessary with
638 contemporary LessTif.
639
640 * xfaces.c (xm_set_menu_resources_from_menu_face):
641 Change #if 0 to #ifndef LESSTIF_VERSION.
642
643 * xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
644 removing button grabs.
645
646 2001-03-13 Kenichi Handa <handa@etl.go.jp>
647
648 * fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
649 and clip-large-size-font as obsolete.
650
651 * lread.c (read_multibyte): Check the validity of multibyte
652 sequence. If invalid, return the first byte.
653
654 2001-03-12 Gerd Moellmann <gerd@gnu.org>
655
656 * keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
657 before running the command; timer functions or process
658 filters may have set it.
659
660 2001-03-12 Eli Zaretskii <eliz@is.elta.co.il>
661
662 * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
663 Doc fix.
664
665 2001-03-12 Gerd Moellmann <gerd@gnu.org>
666
667 * xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
668 to sprintf.
669
670 2001-03-09 Gerd Moellmann <gerd@gnu.org>
671
672 * dispextern.h (string_buffer_position): Add prototype.
673
674 * xdisp.c (string_buffer_position, display_prop_string_p)
675 (single_display_prop_string_p): New functions.
676
677 * xterm.c (note_mouse_highlight): If there's no help-echo on
678 a string, look at the buffer text ``under'' it.
679
680 * keyboard.c (make_lispy_event): Add string info to the event,
681 analogous to what's done on mode lines.
682 (read_key_sequence): For a click on a string, consider `local-map'
683 and `keymap' of that string.
684
685 * keyboard.c (make_lispy_event, make_lispy_movement):
686 Adjust calls to buffer_posn_from_coords to new format.
687
688 * dispextern.h (buffer_posn_from_coords): Adjust prototype.
689
690 * dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
691 POS; return void.
692
693 * fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
694 flags argument to emacs_open; it seems to conflict with O_EXCL.
695
696 2001-03-09 Kenichi Handa <handa@etl.go.jp>
697
698 * composite.h (struct composition): Change types of members;
699 glyph_len to unsigned, width to unsigned short.
700
701 2001-03-08 Andrew Innes <andrewi@gnu.org>
702
703 * w32menu.c (add_menu_item): Fix problems with using ownerdraw for
704 menu titles.
705
706 2001-03-08 Gerd Moellmann <gerd@gnu.org>
707
708 * xdisp.c (handle_display_prop): Use it->w->buffer as object,
709 instead of nil.
710
711 * xterm.c (note_mouse_highlight): Handle mouse-face and
712 help-echo in strings.
713 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
714 (fast_find_string_pos): New function.
715
716 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
717 (display_string): Call face_at_string_position with new parameter.
718
719 * xfaces.c (face_at_string_position): Add parameter MOUSE_P.
720 Handle `mouse-face'.
721
722 * dispextern.h (face_at_string_position): Change prototype.
723
724 * dired.c (directory_files_internal): Handle EAGAIN more efficiently.
725
726 * keyboard.c (make_lispy_event): Avoid generating drag events
727 if the mouse hasn't actually moved to another buffer position.
728
729 2001-03-08 Dave Love <fx@gnu.org>
730
731 * eval.c (syms_of_eval) <debug-on-error>: Doc fix.
732
733 2001-03-08 Gerd Moellmann <gerd@gnu.org>
734
735 * process.c (Fset_process_window_size): Fix a typo.
736
737 2001-03-08 Kenichi Handa <handa@etl.go.jp>
738
739 * coding.c (detect_coding_sjis): Do more rigid check.
740 (detect_coding_big5): Likewise.
741 (decode_coding_sjis_big5): Likewise.
742 (Fdetect_coding_region): Call detect_coding_system with tailing
743 anchor byte `\0' for more rigid detection.
744 (detect_coding_mask): Fix the incorrect handling of arg MULTIBYTEP.
745 (Fdetect_coding_string): Likewise.
746
747 2001-03-07 Stefan Monnier <monnier@cs.yale.edu>
748
749 * bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
750 a string before extracting its data.
751
752 2001-03-07 Gerd Moellmann <gerd@gnu.org>
753
754 * window.c (Frecenter): Rewrite code handling negative values
755 of ARG on graphical frames.
756
757 2001-03-07 Eli Zaretskii <a34785@is.elta.co.il>
758
759 * window.c (displayed_window_lines): If W->start is outside the
760 accessible portion of the buffer, call start_display with BEGV or
761 ZV instead of W->start.
762
763 2001-03-07 Gerd Moellmann <gerd@gnu.org>
764
765 * buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
766
767 * process.c (Fset_process_filter): Don't crash if the input
768 file descriptor of PROCESS is closed.
769 (Fset_process_window_size): Likewise.
770
771 2001-03-06 Kenichi Handa <handa@etl.go.jp>
772
773 * xterm.c (XTflash): Make the timeout of select shorter, and call
774 select repeatedly until the desired time expires.
775
776 2001-03-06 Gerd Moellmann <gerd@gnu.org>
777
778 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
779
780 * xfns.c (Fx_create_frame): Clear Vwindow_list.
781
782 * lisp.h (Vwindow_list): Declare extern.
783
784 2001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
785
786 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
787
788 2001-03-06 Gerd Moellmann <gerd@gnu.org>
789
790 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
791 to detect a case where we have to highlight a different region
792 despite not having left the currently highlighted region.
793 Set mouse_face_overlay in the x_display_info.
794 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
795
796 * xterm.h (struct x_display_info): Add mouse_face_overlay.
797
798 * buffer.c (mouse_face_overlay_overlaps): New function.
799
800 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
801 (Qmouse_face): Declare extern.
802
803 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
804 if face_change_count is non-zero.
805
806 2001-03-06 Kenichi Handa <handa@etl.go.jp>
807
808 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
809 that the source is unibyte.
810
811 2001-03-05 Dave Love <fx@gnu.org>
812
813 * xterm.c (XTmouse_position): Fix typo.
814
815 2001-03-05 Gerd Moellmann <gerd@gnu.org>
816
817 * minibuf.c (read_minibuf): Clean up the binding stack if
818 called noninteractively.
819
820 2001-03-05 Kenichi Handa <handa@etl.go.jp>
821
822 * coding.c (syms_of_coding): Docstring modified.
823
824 2001-03-05 Kenichi Handa <handa@etl.go.jp>
825
826 * charset.c (char_to_string): If a single byte char has modifier
827 bits that can't be reflected to the character code, ignore them
828 instead of signaling an error.
829
830 2001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
831
832 * s/msdos.h: Update copyright notice.
833
834 * dosfns.h: Update copyright notice.
835
836 * dosfns.c: Update copyright notice.
837
838 * msdos.c: Update copyright notice.
839
840 2001-03-02 Gerd Moellmann <gerd@gnu.org>
841
842 * xterm.c (glyph_rect): New function.
843 (XTmouse_position): Use it to raise the threshold for mouse
844 movement event generation.
845
846 2001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
847
848 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
849 specifies (reverse . t), reverse the initial screen colors.
850 (IT_set_frame_parameters): If the property is foreground-color,
851 but we are reversing the colors, set bg_set, not fg_set.
852 Likewise for setting background-color and reversing: set fg_set.
853 Set unspecified-fg and unspecified-bg correctly when (reverse . t) is
854 in effect.
855
856 * xfaces.c (Finternal_set_lisp_face_attribute)
857 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
858 parameters alist.
859
860 2001-03-02 Gerd Moellmann <gerd@gnu.org>
861
862 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
863 to a single slash in the middle of file names.
864
865 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
866 Accept only alphanumeric time zone names.
867
868 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
869 or width area.
870 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
871 a widget to zero height.
872
873 2001-03-01 Gerd Moellmann <gerd@gnu.org>
874
875 * window.c (Fwindow_end): Call move_it_past_eol only if
876 ending up on a partially visible line.
877
878 2001-03-01 Dave Love <fx@gnu.org>
879
880 * ccl.c (Fccl_execute): Doc fix.
881
882 2001-03-01 Gerd Moellmann <gerd@gnu.org>
883
884 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
885 of the tool bar before calling x_figure_window_size.
886
887 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
888 NULL after destroying it, otherwise XTread_socket can access a
889 destroyed widget when input is unblocked.
890
891 * xfns.c (x_set_foreground_color): Set the background of the cursor GC.
892
893 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
894 same name as before, although there was a change in fontsets.
895
896 2001-02-28 Ken Raeburn <raeburn@gnu.org>
897
898 * lisp.h (Fframe_parameter): Declare.
899
900 * window.c (set_window_buffer): Field vscroll is an int, not a
901 Lisp_Object.
902
903 2001-02-28 Gerd Moellmann <gerd@gnu.org>
904
905 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
906 NULL instead.
907
908 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
909 NULL instead.
910
911 * alloc.c (toplevel): Include process.h.
912 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
913 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
914 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
915 (allocate_vector, allocate_hash_table, allocate_window)
916 (allocate_frame, allocate_process, allocate_other_vector):
917 New functions.
918 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
919 (mark_maybe_pointer): New function.
920 (mark_memory): Also mark Lisp data to which only pointers
921 remain and not Lisp_Objects.
922 (min_heap_address, max_heap_address): New variables.
923 (mem_find): Return MEM_NIL if START is below min_heap_address or
924 above max_heap_address.
925 (mem_insert): Compute min_heap_address and max_heap_address.
926
927 * process.c (make_process): Use allocate_process.
928
929 * frame.c (make_frame): Use allocate_frame.
930
931 * window.c (make_window, make_dummy_parent): Use allocate_window.
932 (Fcurrent_window_configuration): Use allocate_other_vector.
933
934 * lisp.h (allocate_vectorlike): Remove prototype.
935 (allocate_vector, allocate_other_vector, allocate_frame)
936 (allocate_window, allocate_process, allocate_hash_table):
937 Add prototypes.
938
939 * fns.c (Fdelete, larger_vector): Use allocate_vector.
940 (make_hash_table, copy_hash_table): Use allocate_hash_table.
941
942 2001-02-27 Kenichi Handa <handa@etl.go.jp>
943
944 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
945 treat the produced bytes as a valid multibyte sequence.
946
947 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
948 (ccl_driver) <CCL_WriteMultibyteChar2>:
949 Use CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
950 <ccl_finish>: Set ccl->eight_bit_control properly.
951
952 * ccl.h (struct ccl_program): New member eight_bit_control.
953
954 2001-02-26 Stefan Monnier <monnier@cs.yale.edu>
955
956 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
957 accessible_keymaps_char_table.
958 (accessible_keymaps_char_table): Obey `is_metized'.
959 (where_is_internal, Fwhere_is_internal): Don't confuse int and
960 Lisp_Object.
961
962 2001-02-26 Gerd Moellmann <gerd@gnu.org>
963
964 * dispnew.c: Check HAVE_TERM_H before including term.h.
965
966 2001-02-24 Andrew Innes <andrewi@gnu.org>
967
968 * makefile.w32-in: Update copyright notice.
969
970 2001-02-24 Stefan Monnier <monnier@cs.yale.edu>
971
972 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
973
974 2001-02-24 Kenichi Handa <handa@etl.go.jp>
975
976 * Makefile.in (lisp): Add international/utf-8.elc.
977
978 * fontset.c (Fnew_fontset): Fix handling of the case that an
979 element of FONTLIST is a cons of family and registry.
980
981 2001-02-23 Jason Rumney <jasonr@gnu.org>
982
983 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
984 to height unconditionally.
985
986 * w32term.c (x_set_glyph_string_background_width): Extend the
987 background face to the end of the drawing area in the text area, only.
988 (x_insert_glyphs): Call window_box_left to obtain the left
989 x-coordinate of the area to shift.
990
991 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
992 safe_run_hooks.
993
994 2001-02-22 Andrew Innes <andrewi@gnu.org>
995
996 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header files.
997 ($(BLD)\dispnew.obj):
998 ($(BLD)\editfns.obj):
999 ($(BLD)\fileio.obj):
1000 ($(BLD)\filelock.obj):
1001 ($(BLD)\keyboard.obj):
1002 ($(BLD)\w32proc.obj):
1003 ($(BLD)\process.obj):
1004 ($(BLD)\sysdep.obj): Ditto.
1005
1006 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
1007 header files.
1008 ($(BLD)/dispnew.$(O)):
1009 ($(BLD)/editfns.$(O)):
1010 ($(BLD)/fileio.$(O)):
1011 ($(BLD)/filelock.$(O)):
1012 ($(BLD)/keyboard.$(O)):
1013 ($(BLD)/w32proc.$(O)):
1014 ($(BLD)/process.$(O)):
1015 ($(BLD)/sysdep.$(O)): Ditto.
1016
1017 2001-02-22 Gerd Moellmann <gerd@gnu.org>
1018
1019 * xdisp.c (forward_to_next_line_start): When taking the shortcut
1020 at the start of the function, check that the \n in it->c is
1021 from the iterator's current position.
1022
1023 * xdisp.c (handle_single_display_prop): Add parameter
1024 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
1025 properties which replace the display of text with something else.
1026 (handle_display_prop): Call handle_single_display_prop with
1027 additional argument saying if we already replaced text display
1028 with something else. Use AREF.
1029 (with_echo_area_buffer_unwind_data, display_menu_bar)
1030 (decode_mode_spec_coding): Use AREF and ASIZE.
1031
1032 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
1033 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
1034 * vmstime.h: Files removed.
1035
1036 * unexencap.c, unexfx2800.c: Files removed.
1037
1038 * dispnew.c (direct_output_for_insert): Give up if we are showing
1039 a message or just cleared the message because we might need to
1040 resize the echo area window or display an empty echo area.
1041
1042 2001-02-21 Gerd Moellmann <gerd@gnu.org>
1043
1044 * xdisp.c (redisplay_internal): Do the
1045 mark_window_display_accurate after all windows have been
1046 redisplayed because this call resets flags in buffers which are
1047 needed for proper redisplay.
1048
1049 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c:
1050 Use display_hourglass_p, start_hourglass, cancel_hourglass instead of
1051 the old names.
1052
1053 * w32term.h (struct x_output): Rename busy_cursor to hourglass_cursor,
1054 busy_window to hourglass_window, busy_p to hourglass_p.
1055
1056 * msdos.h (struct x_output): Rename busy_window to
1057 hourglass_window, busy_p to hourglass_p.
1058
1059 * xterm.h (struct x_output): Rename busy_cursor to hourglass_cursor,
1060 busy_window to hourglass_window, busy_p to hourglass_p.
1061
1062 * xfns.c: Rename everything containing *busy_cursor* and similar
1063 to *hourglass*.
1064 (syms_of_w32fns): Rename x-busy-pointer-shape to
1065 x-hourglass-pointer-shape, display-busy-cursor to
1066 display-hourglass, busy-cursor-delay to hourglass-delay.
1067
1068 * w32fns.c: Rename everything containing *busy_cursor* and similar
1069 to *hourglass*.
1070 (syms_of_w32fns): Rename x-busy-pointer-shape to
1071 x-hourglass-pointer-shape, display-busy-cursor to
1072 display-hourglass, busy-cursor-delay to hourglass-delay.
1073
1074 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
1075 of its busy_p flag.
1076
1077 * dispextern.h (start_hourglass, cancel_hourglass)
1078 (display_hourglass_p): Renamed from *busy_cursor*.
1079
1080 2001-02-20 Gerd Moellmann <gerd@gnu.org>
1081
1082 * keyboard.c (read_char): When an event from unread-command-events
1083 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
1084
1085 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
1086 equal to the current buffer.
1087
1088 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
1089 nil, otherwise we're left with truncate_lines t when a message
1090 is printed with message-truncate-lines bound to t.
1091
1092 2001-02-19 Gerd Moellmann <gerd@gnu.org>
1093
1094 * window.c (Fmove_to_window_line): Undo last change.
1095 (displayed_window_lines): Call line_bottom_y to determine
1096 the line's bottom position.
1097
1098 * dispextern.h (line_bottom_y): Add prototype.
1099
1100 * xdisp.c (line_bottom_y): New function extracted from pos_visible_p.
1101 (pos_visible_p): Use it.
1102
1103 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
1104 set redisplaying_p to 0 here instead of in Frecursive_edit.
1105 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
1106 set redisplaying_p.
1107
1108 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
1109 New variables.
1110 (syms_of_xdisp): Initialize new variables.
1111 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
1112 Specbind `inhibit-menubar-update' when updating the menu bar.
1113
1114 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
1115 safe_run_hooks.
1116
1117 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
1118 safe_run_hooks.
1119
1120 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
1121 is null.
1122
1123 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
1124 to the start of the file.
1125
1126 2001-02-16 Gerd Moellmann <gerd@gnu.org>
1127
1128 * window.c (set_window_buffer): Fix last change.
1129
1130 * window.c (set_window_buffer): Set window's vscroll to 0.
1131
1132 * window.c (coordinates_in_window): Increase width of area
1133 where the vertical line can be dragged.
1134
1135 * xterm.c (x_set_glyph_string_background_width): Extend the
1136 background face to the end of the drawing area in the text
1137 area, only.
1138
1139 * xdisp.c (handle_single_display_prop): Set iterator's position
1140 to where the `display' property starts, like for images.
1141 (dump_glyph): New function.
1142 (dump_glyph_row): Use it. Dump info about marginal areas.
1143
1144 * dispnew.c (direct_output_for_insert): Recognize more cases where
1145 glyphs can be written instead of being inserted.
1146
1147 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
1148 the left x-coordinate of the area to shift.
1149
1150 * dired.c (directory_files_internal): Set result list to nil
1151 before retrying.
1152
1153 2001-02-15 Kenichi Handa <handa@etl.go.jp>
1154
1155 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
1156 invalid multibyte sequence, treat *SRC as a character of
1157 eight-bit-graphic.
1158
1159 2001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
1160
1161 * textprop.c (Fset_text_properties): Doc fix.
1162
1163 2001-02-15 Gerd Moellmann <gerd@gnu.org>
1164
1165 * dispnew.c (update_text_area): Undo change of 2001-01-12.
1166
1167 2001-02-14 Dave Love <fx@gnu.org>
1168
1169 * coding.c: Doc and message fixes.
1170
1171 2001-02-14 Andrew Innes <andrewi@gnu.org>
1172
1173 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
1174 Emacs frame above the screen size.
1175
1176 2001-02-14 Gerd Moellmann <gerd@gnu.org>
1177
1178 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
1179
1180 2001-02-13 Gerd Moellmann <gerd@gnu.org>
1181
1182 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
1183 case that TO ends up beyond ZV after running before-change-functions.
1184
1185 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
1186 the selected window if it is showing the buffer in question.
1187
1188 * dired.c (directory_files_internal): Initialize errno.
1189 (toplevel): Include errno.h.
1190
1191 2001-02-13 Kenichi Handa <handa@etl.go.jp>
1192
1193 * xfaces.c (best_matching_font): New parameter width_ratio.
1194 Multiply avgwidth by width_ratio.
1195 (choose_face_font): Call best_matching_font with width_ratio
1196 calculated from the column width of C.
1197
1198 2001-02-12 Andrew Innes <andrewi@gnu.org>
1199
1200 The following changes are to draw box lines inside characters area
1201 if line-width is negative.
1202
1203 * w32term.c (x_produce_image_glyph): Pay attention to the case that
1204 face->box_line_width is negative.
1205 (x_produce_stretch_glyph): Likewise.
1206 (x_produce_glyphs): Likewise.
1207 (x_estimate_mode_line_height): Likewise.
1208 (x_draw_glyph_string_background): Likewise.
1209 (x_draw_glyph_string_foreground): Likewise.
1210 (x_draw_composite_glyph_string_foreground): Likewise.
1211 (x_draw_glyph_string_box): Likewise.
1212 (x_draw_image_foreground): Likewise.
1213 (x_draw_image_relief): Likewise.
1214 (x_draw_image_foreground_1): Likewise.
1215 (x_draw_image_glyph_string): Likewise.
1216
1217 2001-02-09 Kenichi Handa <handa@etl.go.jp>
1218
1219 The following changes are to draw box lines inside characters area
1220 if line-width is negative.
1221
1222 * xterm.c (x_produce_image_glyph): Pay attention to the case that
1223 face->box_line_width is negative.
1224 (x_produce_stretch_glyph): Likewise.
1225 (x_produce_glyphs): Likewise.
1226 (x_estimate_mode_line_height): Likewise.
1227 (x_draw_glyph_string_background): Likewise.
1228 (x_draw_glyph_string_foreground): Likewise.
1229 (x_draw_composite_glyph_string_foreground): Likewise.
1230 (x_draw_glyph_string_box): Likewise.
1231 (x_draw_image_foreground): Likewise.
1232 (x_draw_image_relief): Likewise.
1233 (x_draw_image_foreground_1): Likewise.
1234 (x_draw_image_glyph_string): Likewise.
1235
1236 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
1237 and :line-width can be negative.
1238 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be negative.
1239
1240 2001-02-09 Jason Rumney <jasonr@gnu.org>
1241
1242 * w32term.c (w32_encode_char): Treat eight bit graphic and control
1243 characters the same as ASCII and latin-1.
1244 (x_display_and_set_cursor): Check for the focus frame's selected
1245 window instead of selected_window.
1246 (x_after_update_window_line): Don't clear if frame's internal
1247 border width is zero.
1248 (x_new_font): Don't change a tooltip's size.
1249 (w32_initialize): Set char_ins_del_ok to 1.
1250
1251 * w32fns.c (Fx_show_tip): Fix calls to make_number.
1252 (x_set_font): If font hasn't changed, avoid recomputing
1253 faces and other things.
1254 (x_set_tool_bar_lines): Do nothing if frame is minibuffer-only,
1255 (Fx_create_frame): Add the tool bar height to the frame height.
1256 (x_create_tip_frame): Prevent changing the tooltip's
1257 background color by specifying a color for the default font
1258 in .Xdefaults.
1259 (Qcancel_timer): New variable.
1260 (syms_of_w32fns): Initialize and staticpro it.
1261 (Fx_hide_tip, Fx_show_tip): Use it.
1262 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
1263 the timer.
1264 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
1265
1266 * w32.c (init_environment): Duplicate local string before putenv.
1267
1268 2001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
1269
1270 * charset.c (Fstring): A typo.
1271
1272 2001-02-09 Kenichi Handa <handa@etl.go.jp>
1273
1274 * charset.c (Fstring): If all arguments are less than 256, return
1275 a unibyte string.
1276
1277 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
1278 return a unibyte string.
1279
1280 * coding.c (code_convert_region): After detecting a coding, if
1281 nothing found, set coding->composing to COMPOSITION_NO.
1282 (decode_coding_string): Likewise.
1283
1284 2001-02-08 Stefan Monnier <monnier@cs.yale.edu>
1285
1286 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
1287 to avoid overflow.
1288
1289 2001-02-07 Kenichi Handa <handa@etl.go.jp>
1290
1291 * charset.c (parse_str_to_multibyte): New function.
1292
1293 * charset.h (parse_str_to_multibyte): Extern it.
1294
1295 * print.c (print_string): If we are going to print a unibyte
1296 string into a multibyte buffer, convert the string to multibyte by
1297 str_to_multibyte.
1298
1299 2001-02-06 Andrew Innes <andrewi@gnu.org>
1300
1301 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
1302 been created. It seems we can get sent window messages such as
1303 WM_ERASEBKGND before we properly update a frame.
1304
1305 2001-02-06 Gerd Moellmann <gerd@gnu.org>
1306
1307 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
1308 Avoid some unnecessary cursor positioning.
1309
1310 2001-02-05 Gerd Moellmann <gerd@gnu.org>
1311
1312 * xfaces.c (split_font_name): Compute numeric value of XLFD_AVGWIDTH.
1313 (LFACE_AVGWIDTH): New macro.
1314 (LFACEP): Use AREF.
1315 (check_lface_attrs): Check LFACE_AVGWIDTH.
1316 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
1317 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
1318 (merge_face_vectors): Check LFACE_AVGWIDTH.
1319 (Finternal_make_lisp_face): Use AREF.
1320 (xm_set_menu_resources_from_menu_face)
1321 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
1322 (Finternal_lisp_face_empty_p): Use AREF.
1323 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
1324 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
1325 Compare average widths..
1326 (best_matching_font): Arrange for comparing average widths.
1327
1328 * dispextern.h (enum lface_attribute_index):
1329 Add LFACE_AVGWIDTH_INDEX (invisible from Lisp).
1330
1331 2001-02-05 Dave Love <fx@gnu.org>
1332
1333 * puresize.h: Revert last change following loadup.el change.
1334
1335 2001-02-05 Andrew Innes <andrewi@gnu.org>
1336
1337 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
1338 invocation of temacs, to work with Windows 2000.
1339 (bootstrap-emacs): Ditto.
1340
1341 2001-02-05 Gerd Moellmann <gerd@gnu.org>
1342
1343 * xterm.c (x_display_and_set_cursor): Check for the focus
1344 frame's selected window instead of selected_window.
1345
1346 * xdisp.c (try_scrolling): If point is in the line below the
1347 window, make sure to move the iterator at least a canonical
1348 char height down.
1349
1350 * window.c (Fmove_to_window_line): Don't add 1 if window is vscrolled.
1351
1352 2001-02-05 Kenichi Handa <handa@etl.go.jp>
1353
1354 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not.
1355 If invalid, execute CCL_INVALID_CMD.
1356 (ccl_driver): If the CCL program is terminated because of
1357 CCL_STAT_INVALID_CMD, copy the remaining source data to the
1358 destination instead of throwing them away.
1359
1360 2001-02-02 Gerd Moellmann <gerd@gnu.org>
1361
1362 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
1363 faces and other things.
1364
1365 * xdisp.c (get_next_display_element): Fix case of empty
1366 display table entry.
1367
1368 2001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
1369
1370 * editfns.c (Fconstrain_to_field): Doc fix.
1371
1372 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
1373 into `thoroughly', to make it consistent with the doc string.
1374
1375 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
1376
1377 2001-02-01 Gerd Moellmann <gerd@gnu.org>
1378
1379 * search.c (search_buffer): Call set_search_regs with a byte
1380 position, not a character position.
1381
1382 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
1383 minibuffer-only,
1384
1385 2001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
1386
1387 * frame.c (Fmodify_frame_parameters): Doc fix.
1388
1389 2001-01-31 Gerd Moellmann <gerd@gnu.org>
1390
1391 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
1392 identifier which is not reserved by Standard C.
1393
1394 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
1395
1396 * window.c (enum window_part): New enumeration.
1397 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
1398 Qright_bitmap_area.
1399 (coordinates_in_window): Return an enumerator from enum
1400 window_part. Fix handling of right scroll bar.
1401 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
1402 `right-fringe' instead of `left-bitmap-area' and
1403 `right-bitmap-area'. Use enumerators from enum window_part
1404 instead of hard-coded integers.
1405 (check_window_containing, window_from_coordinates):
1406 Use enumerators from enum window_part instead of hard-coded integers.
1407 (syms_of_window): Replace Qleft_bitmap_area and
1408 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
1409
1410 2001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
1411
1412 * editfns.c (Fformat_time_string): Doc fix.
1413
1414 2001-01-31 Stefan Monnier <monnier@cs.yale.edu>
1415
1416 * keymap.c (Fwhere_is_internal): Use the first valid binding
1417 if no ascii binding is found (when firstonly is t).
1418
1419 2001-01-31 Gerd Moellmann <gerd@gnu.org>
1420
1421 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
1422 instead of Finteractive_p.
1423
1424 * lisp.h (interactive_p): Add prototype.
1425
1426 * eval.c (interactive_p): New function.
1427 (Finteractive_p): Use it.
1428
1429 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
1430
1431 2001-01-31 Dave Love <fx@gnu.org>
1432
1433 * .gdbinit (hook-run): Define to run xreload.
1434
1435 * textprop.c (Fset_text_properties): Fix newline in doc string.
1436
1437 2001-01-30 Gerd Moellmann <gerd@gnu.org>
1438
1439 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp):
1440 Use DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
1441
1442 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
1443 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
1444 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
1445
1446 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
1447 height.
1448
1449 2001-01-30 Dave Love <fx@gnu.org>
1450
1451 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
1452 AFTER_POTENTIAL_GC.
1453
1454 2001-01-29 Gerd Moellmann <gerd@gnu.org>
1455
1456 * bytecode.c (Fbyte_code) <Bcurrent_column>:
1457 Add BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
1458
1459 2001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
1460
1461 * textprop.c (Fset_text_properties): Doc fix.
1462
1463 2001-01-29 Gerd Moellmann <gerd@gnu.org>
1464
1465 * xdisp.c (forward_to_next_line_start): Remove xassert.
1466
1467 2001-01-29 Jason Rumney <jasonr@gnu.org>
1468
1469 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
1470 returning without releasing it.
1471
1472 2001-01-29 Kenichi Handa <handa@etl.go.jp>
1473
1474 * w32fns.c (w32_font_match): Allocate three more bytes to regex
1475 for '^', '$', and '\0'.
1476
1477 2001-01-28 Andrew Choi <akochoi@i-cable.com>
1478
1479 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
1480 regex for '^', '$', and '\0'.
1481
1482 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
1483 only if current_sblock has been initialized.
1484
1485 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
1486 terminal frame even if it is the only visible frame.
1487
1488 2001-01-28 Kenichi Handa <handa@etl.go.jp>
1489
1490 * fontset.c (font_family_registry): Even if FONTNAME conform to
1491 XLFD, if it specifies other fields than family and registry,
1492 return FONTANME. New argument FORCE if nonzero cancel that feature.
1493 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
1494 a signle byte character. Don't set FAMILY part to nil here.
1495 It is handled by the caller choose_face_font.
1496 (Fnew_fontset): Call font_family_registry with FORCE 0.
1497 (Fset_fontset_font): Likewise.
1498
1499 2001-01-27 Gerd Moellmann <gerd@gnu.org>
1500
1501 * xdisp.c (display_line): Don't treat a newline as fitting
1502 on the line.
1503
1504 2001-01-26 Gerd Moellmann <gerd@gnu.org>
1505
1506 * window.c (size_window): Set the window's orig_top to nil when
1507 changing heights, so that a future shrink_mini_window won't
1508 restore a bogus height.
1509
1510 * frame.c (do_switch_frame): If selected frame has a mini-window,
1511 resize that to exact size.
1512
1513 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
1514
1515 * xdisp.c (display_line): Simplify check for glyphs fitting
1516 entirely in the line.
1517
1518 * xfns.c (xic_style): New variable.
1519 (create_frame_xic): Move static variable to global scope for
1520 the case that `static' gets defined away.
1521
1522 2001-01-26 Kenichi Handa <handa@etl.go.jp>
1523
1524 * coding.c (decode_coding): Set a flag for inhibiting
1525 inconsistent eol.
1526 (code_convert_region): Always set saved_coding_symbol.
1527 (decode_coding_string): Likewise. Update coding->symbol when we
1528 encounter a inconsistent eol by the same way as code_convert_region.
1529
1530 2001-01-25 Gerd Moellmann <gerd@gnu.org>
1531
1532 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
1533 XClearArea.
1534
1535 * xterm.c (x_after_update_window_line): Don't clear if frame's
1536 internal border width is zero.
1537 (x_clear_area): New function.
1538 (x_after_update_window_line, x_clear_end_of_line)
1539 (x_scroll_bar_create, x_scroll_bar_set_handle)
1540 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
1541 instead of XClearArea.
1542
1543 * xterm.h (x_clear_area): Add prototype.
1544
1545 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
1546 which doesn't seem necessary anymore with Lesstif 0.92.
1547
1548 2001-01-25 Dave Love <fx@gnu.org>
1549
1550 * puresize.h (BASE_PURESIZE): Up to 720000.
1551
1552 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
1553
1554 2001-01-25 Gerd Moellmann <gerd@gnu.org>
1555
1556 * xdisp.c (echo_area_display): Don't call redisplay_internal
1557 when Emacs is shutting down. We can't run hooks etc. that
1558 would be necessary to do a redisplay.
1559
1560 * lread.c (read_integer): Use type EMACS_INT instead of int.
1561
1562 2001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
1563
1564 * ccl.c (ccl_driver): Fix last change.
1565
1566 2001-01-25 Kenichi Handa <handa@etl.go.jp>
1567
1568 * ccl.h (sturct ccl_program): New member suppress_error.
1569
1570 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
1571 insert error message to the output.
1572 (setup_ccl_program): Initialize ccl->suppress_error to 0.
1573
1574 * coding.h (struct coding_system): New member suppress_error.
1575
1576 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
1577 (Fset_terminal_coding_system_internal): Set the member
1578 suppress_error to 1.
1579 (Fset_safe_terminal_coding_system_internal): Likewise.
1580
1581 2001-01-24 Stefan Monnier <monnier@cs.yale.edu>
1582
1583 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
1584 as if it was a `charset'.
1585
1586 2001-01-24 Gerd Moellmann <gerd@gnu.org>
1587
1588 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
1589 value in where_is_cache; the next lookup in the cache returns
1590 something bogus if we do.
1591
1592 2001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
1593
1594 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
1595 if HAVE_WINDOW_SYSTEM isn't defined.
1596
1597 2001-01-24 Gerd Moellmann <gerd@gnu.org>
1598
1599 * fns.c (sweep_weak_table): Fix code taking items out of
1600 the hash collision chain. Some cleanup.
1601
1602 * xterm.c (x_new_font): Don't change a tooltip's size.
1603
1604 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
1605 background color by specifying a color for the default font
1606 in .Xdefaults.
1607
1608 2001-01-24 Kenichi Handa <handa@etl.go.jp>
1609
1610 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
1611 a workaround for SunOS 4's cc.
1612 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
1613 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
1614 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
1615 statement.
1616
1617 2001-01-23 Gerd Moellmann <gerd@gnu.org>
1618
1619 * xterm.c (x_set_window_size_1): New function extracted from
1620 x_set_window_size.
1621 (x_set_window_size): Use it.
1622 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
1623 doesn't have a widget, like tooltips.
1624
1625 2001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
1626
1627 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
1628
1629 2001-01-23 Kenichi Handa <handa@etl.go.jp>
1630
1631 * fns.c (Fset_char_table_default): Fix to make sub char-table
1632 correctly.
1633
1634 2001-01-22 Gerd Moellmann <gerd@gnu.org>
1635
1636 * xdisp.c (build_desired_tool_bar_string): Make sure we have
1637 a desired tool bar string, even if there are no tool bar items.
1638
1639 * xdisp.c (Ftool_bar_lines_needed): New function.
1640 (syms_of_xdisp): Defsubr it.
1641
1642 * editfns.c (Fformat): Don't extend text properties from arguments
1643 to padding chars in the result.
1644
1645 2001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
1646
1647 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
1648
1649 2001-01-20 Andrew Innes <andrewi@gnu.org>
1650
1651 * w32term.c (w32_ring_bell): Only support visible bell on w32 frames.
1652 (w32_initialize): Don't set term hooks that aren't actually needed
1653 in windowed mode.
1654
1655 * xfaces.c (realize_default_face):
1656 (realize_face):
1657 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
1658
1659 * xdisp.c (handle_single_display_prop): Remove references to
1660 FRAME_W32_CONSOLE_P.
1661
1662 * dispnew.c (Fredraw_frame): Remove reference to FRAME_W32_CONSOLE_P.
1663
1664 * frame.h (output_method): Remove output_w32_console method.
1665 (FRAME_W32_CONSOLE_P): Remove macro.
1666
1667 * frame.c (Qw32_console): Remove variable.
1668 (Fframep): Remove references to it.
1669 (syms_of_frame): Ditto.
1670 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
1671
1672 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
1673 redefinition.
1674
1675 2001-01-20 Kenichi Handa <handa@etl.go.jp>
1676
1677 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
1678
1679 2001-01-19 Andrew Innes <andrewi@gnu.org>
1680
1681 * w32.c (init_environment): Add a version-independent site-lisp
1682 directory to EMACSLOADPATH, after the version dependent one.
1683
1684 2001-01-19 Gerd Moellmann <gerd@gnu.org>
1685
1686 * editfns.c (Fbuffer_substring): Doc fix.
1687
1688 * xdisp.c (message_dolog, message2, message2_nolog):
1689 Rename parameter LEN to NBYTES.
1690
1691 2001-01-19 Kenichi Handa <handa@etl.go.jp>
1692
1693 * charset.c (strwidth): Use c_string_width.
1694 (c_string_width): New function.
1695 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
1696 Caller changed.
1697
1698 * charset.h (c_string_width, lisp_string_width): Extern them.
1699
1700 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
1701
1702 * indent.c (check_composition): Check validity of composition.
1703
1704 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
1705 characters by calling c_string_width.
1706 (x_consider_frame_title): Get byte length of frame tile string
1707 correctly.
1708 (display_mode_element): Pay attention to width of non-ASCII
1709 characters by calling strwidth.
1710
1711 2001-01-18 Gerd Moellmann <gerd@gnu.org>
1712
1713 * xfns.c (Qcancel_timer): New variable.
1714 (syms_of_xfns): Initialize and staticpro it.
1715 (Fx_hide_tip, Fx_show_tip): Use it.
1716 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
1717 the timer.
1718 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
1719
1720 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
1721
1722 * window.h (WINDOW_LIVE_P): New macro.
1723
1724 * window.c (window_size_fixed): New variable.
1725 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
1726 the doc string.
1727
1728 * eval.c (specbind): If binding a per-buffer variable which
1729 doesn't have a buffer-local value in the current buffer, change
1730 the global value by changing the value of the symbol bound in all
1731 buffers not having their own value, to make it consistent with
1732 what happens with other buffer-local variables.
1733
1734 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
1735
1736 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
1737 when searching for a newline.
1738
1739 2001-01-18 Kenichi Handa <handa@etl.go.jp>
1740
1741 * xdisp.c (display_string): Fix previous change.
1742
1743 2001-01-18 Jason Rumney <jasonr@gnu.org>
1744
1745 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
1746 GLYPH_DEBUG is defined.
1747 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
1748 true for images with `:ascent 100'.
1749 (x_set_mouse_face_gc): If the last used mouse face has gone in the
1750 meantime, use face MOUSE_FACE_ID.
1751 If first glyph isn't a character glyph, use the ASCII NUL
1752 character to determine the face.
1753 (expose_area): Do not treat left margin specially.
1754 (note_mode_line_highlight): If no local_map, check global keymap.
1755 (note_mouse_highlight): Initialize overlay.
1756 (clear_mouse_face): Don't return if tip_frame is non-nil.
1757 (show_scroll_bars): Remove unused function.
1758 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
1759 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
1760 Clip to row.
1761 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be nil.
1762 (x_free_frame_resources): Unload relief colors.
1763
1764 2001-01-17 Gerd Moellmann <gerd@gnu.org>
1765
1766 * xdisp.c (forward_to_next_line_start): Avoid calling
1767 get_next_display_element when the newline is already found.
1768 This may change the iterator's position, when its current position is
1769 equal to the iterator's stop_charpos.
1770
1771 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
1772 zero, use this method only at the end of a line.
1773
1774 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
1775 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
1776 if SCALABLE_FONTS_P is set.
1777
1778 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
1779 so that scalable fonts are included.
1780
1781 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
1782 In the cache, use a key containing the information if scalable
1783 fonts are included.
1784 (x_load_font): Adapt to change of keys in the font cache.
1785
1786 2001-01-17 Kim F. Storm <storm@filanet.dk>
1787
1788 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
1789 XListFonts to take advantage of font caching.
1790
1791 * xterm.c (x_list_fonts): Ensure caching font information when
1792 called for a null frame, which is the case frequently when Emacs
1793 starts.
1794
1795 2001-01-17 Gerd Moellmann <gerd@gnu.org>
1796
1797 * xfns.c (QCconversion): Replaces QCalgorithm.
1798
1799 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
1800
1801 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
1802 of :algorithm.
1803
1804 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
1805 not everything could be displayed.
1806
1807 * line.h, x-list-font.c: Files removed because unused.
1808
1809 2001-01-17 Andrew Innes <andrewi@gnu.org>
1810
1811 * dired.c (directory_files_internal): Convert result from readdir
1812 to a unibyte string initially, to avoid possible misinterpretation
1813 of some bytes as the internal form of Emacs characters.
1814
1815 2001-01-17 Kenichi Handa <handa@etl.go.jp>
1816
1817 * fns.c (concat): Be sure to avoid putting the same `composition'
1818 property on the adjacent regions.
1819
1820 2001-01-16 Gerd Moellmann <gerd@gnu.org>
1821
1822 * window.c (Fset_window_hscroll): Don't set window's min_hscroll here.
1823 (Fscroll_right, Fscroll_left): Set it here instead, if called
1824 interactively.
1825
1826 * buffer.c (Fset_buffer_modified_p): Set buffer's
1827 prevent_redisplay_optimizations_p flag.
1828
1829 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
1830 * sysdep.c, vmsproc.c, xselect.c: Call redisplay_preserve_echo_area
1831 with additional arg.
1832
1833 * dispextern.h, lisp.h (redisplay_preserve_echo_area):
1834 Change prototype.
1835
1836 * xdisp.c (redisplay_preserve_echo_area): Add parameter
1837 FROM_WHERE, for debugging.
1838
1839 2001-01-16 Kenichi Handa <handa@etl.go.jp>
1840
1841 * ccl.c (Fregister_ccl_program): Handle the return value of
1842 resolve_symbol_ccl_program correctly.
1843 (CCL_Extension): Fix typo (originally CCL_Extention). Caller changed.
1844
1845 2001-01-15 Gerd Moellmann <gerd@gnu.org>
1846
1847 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
1848 has gone in the meantime, use face MOUSE_FACE_ID.
1849
1850 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]:
1851 If x_display_info_for_display returns null, don't try to close
1852 the display; we didn't open it.
1853
1854 * dispnew.c (save_or_restore_current_matrices): Function removed.
1855 (save_current_matrix, restore_current_matrix): New functions.
1856 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
1857 restore the frame's current matrix. Due to the glyph pointer
1858 setup done in adjust_glyph_matrix, there is no easy way to make
1859 saving the current matrix in the desired matrix generally correct,
1860 so don't try it.
1861
1862 2001-01-15 Kenichi Handa <handa@etl.go.jp>
1863
1864 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
1865 truncation glyphs.
1866 (display_line): Optimize for wide characters.
1867 (display_string): Don't try to display a multi-column character
1868 partially. On ttys, produce more than one truncation glyph for
1869 multi-column characters that don't fit on the line.
1870
1871 2001-01-13 Kenichi Handa <handa@etl.go.jp>
1872
1873 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]:
1874 Define it instead of WORDS_BIGENDIAN. Caller changed.
1875
1876 2001-01-13 Jason Rumney <jasonr@gnu.org>
1877
1878 * w32fns.c (Fimage_size, image_ascent, lookup_image)
1879 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
1880 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1881 (tiff_format, gif_format, gs_format): Adapt to change of image margins.
1882
1883 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
1884 (x_draw_image_relief, x_draw_image_foreground_1)
1885 (x_draw_image_glyph_string): Adapt to change of image margins.
1886
1887 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
1888 variables.
1889
1890 * w32bdf.c (search_file_line, get_cached_font_char)
1891 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
1892
1893 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
1894
1895 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
1896 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
1897 (Fw32_send_sys_command): Remove unused variables.
1898 (w32_msg_pump): Add parentheses.
1899
1900 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
1901 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
1902 Add parentheses.
1903
1904 2001-01-12 Gerd Moellmann <gerd@gnu.org>
1905
1906 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
1907 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
1908 being a pair of margins.
1909 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
1910 to DEFVAR_LISP. Extend doc.
1911
1912 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
1913 margins.
1914 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
1915 pair of integers `(X . Y)', use X for the horizontal and Y for the
1916 vertical margin.
1917 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
1918 (parse_image_spec): Check it.
1919 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1920 (tiff_format, gif_format, gs_format):
1921 Use IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
1922
1923 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1924 (x_draw_image_relief, x_draw_image_foreground_1)
1925 (x_draw_image_glyph_string): Adapt to the change of image margins.
1926
1927 * dispextern.h (struct image): Replace member `margin' with
1928 `hmargin' and `vmargin'.
1929
1930 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
1931 and GLYPHS.
1932
1933 * dispnew.c (update_text_area): Put code which decrements the
1934 stop position when the row's face extends to the end of the
1935 line in #if 0.
1936
1937 * xfns.c (x_set_mouse_color): Fix color allocation.
1938
1939 * keyboard.c: Call get_local_map with new argument list.
1940
1941 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
1942
1943 * intervals.h (enum map_property): Removed.
1944 (get_local_map): Change prototype.
1945
1946 * keymap.c: Call get_local_map with new argument list.
1947 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
1948
1949 2001-01-11 Gerd Moellmann <gerd@gnu.org>
1950
1951 * xdisp.c (build_desired_tool_bar_string): Correct the computation
1952 of the size needed for the tool bar string. For the last image,
1953 use a `display' property that reaches to the end of the string.
1954
1955 * xselect.c (selection_request_dpyinfo): New variable.
1956 (x_handle_selection_request): Set it.
1957 (x_selection_request_lisp_error): Don't call
1958 x_decline_selection_request if selection request's display has
1959 been closed.
1960
1961 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]:
1962 Do the unregister_colors before calling XFreeColors.
1963
1964 2001-01-10 Dave Love <fx@gnu.org>
1965
1966 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
1967 ${SOME_MACHINE_LISP}, not ${lisp}.
1968
1969 2001-01-10 Gerd Moellmann <gerd@gnu.org>
1970
1971 * xdisp.c (display_line): On ttys, produce more than one truncation
1972 glyph for multi-column characters that don't fit on the line.
1973
1974 * xselect.c (x_reply_selection_request): Add a comment.
1975
1976 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
1977 XkbGetNames instead of XkbGetKeyboard.
1978
1979 2001-01-10 Dave Love <fx@gnu.org>
1980
1981 * sysdep.c (random): Revert the declaration.
1982
1983 2001-01-09 Gerd Moellmann <gerd@gnu.org>
1984
1985 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]:
1986 Call function string_bytes.
1987 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
1988
1989 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
1990 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
1991 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
1992 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
1993 the current sblock.
1994 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
1995 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
1996 after sweeping strings, and at the end.
1997 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
1998
1999 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
2000 ensure that pop_message is called.
2001
2002 * keyboard.c (Fexecute_extended_command): Use a
2003 record_unwind_protect to ensure that pop_message is called.
2004
2005 * lisp.h (push_message_unwind): Add prototype.
2006
2007 * xdisp.c (push_message_unwind): New function.
2008
2009 * fileio.c (do_auto_save_unwind): Do the pop_message here
2010 instead of in Fdo_auto_save.
2011 (Fdo_auto_save): Don't call pop_message.
2012
2013 2001-01-08 Ken Raeburn <raeburn@gnu.org>
2014
2015 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
2016 in inner block.
2017
2018 2001-01-08 Gerd Moellmann <gerd@gnu.org>
2019
2020 * window.c (window_scroll_pixel_based): Adjust glyph matrices
2021 when increasing window's vscroll.
2022
2023 * macros.c (Qkbd_macro_termination_hook): New variable.
2024 (syms_of_macros): Initialize and staticpro it.
2025 (pop_kbd_macro): Run kbd-macro-termination-hook.
2026
2027 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
2028
2029 2001-01-07 Dave Love <fx@gnu.org>
2030
2031 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
2032 arglist, for documentation's sake.
2033
2034 2001-01-06 Andrew Innes <andrewi@gnu.org>
2035
2036 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
2037 of *.pdb.
2038
2039 2001-01-05 Andrew Innes <andrewi@gnu.org>
2040
2041 * term.c (update_end): Don't check updating_frame; for some reason
2042 this can be 0 sometimes, such as after dismissing a popup menu,
2043 and isn't necessary given the explicit frame argument.
2044
2045 2001-01-05 Gerd Moellmann <gerd@gnu.org>
2046
2047 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
2048 on some systems, and an unsigned long on others, like FreeBSD 4.1.
2049
2050 2001-01-04 Gerd Moellmann <gerd@gnu.org>
2051
2052 * xterm.c (clear_mouse_face): Don't return if tip_frame is non-nil.
2053
2054 * xfns.c (x_create_tip_frame): Preserve the value of
2055 face_change_count around the creation of the tip frame.
2056
2057 * xfns.c (last_show_tip_args): New variable.
2058 (compute_tip_xy): New function.
2059 (Fx_show_tip): Reuse an existing tip frame, if possible.
2060 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
2061
2062 2001-01-04 Dave Love <fx@gnu.org>
2063
2064 * editfns.c (Fformat): Doc fix.
2065
2066 * systime.h (set_file_times): Prototype.
2067
2068 * widget.h (EmacsFrameSetCharSize_): Prototype.
2069
2070 * sysdep.c (random, srandom): Declare explicitly.
2071
2072 * dispextern.h (move_it_vertically_backward): Declare.
2073
2074 2001-01-04 Gerd Moellmann <gerd@gnu.org>
2075
2076 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
2077 like in Fx_create_frame.
2078
2079 * xfaces.c (set_font_frame_param): Don't do anything for
2080 non-graphical frames.
2081
2082 * window.c (Fdelete_other_windows): Set window's window_end_valid
2083 to nil when changing the window's start. Don't change the
2084 window's start when its top position hasn't changed. If we do,
2085 this will set the window's optional_new_start, which act's like a
2086 force_start during redisplay with C-x 1 M-> under particular
2087 circumstances (see report from Per Starback to emacs-pretest-bug
2088 from 2000-12-13.).
2089
2090 2001-01-03 Gerd Moellmann <gerd@gnu.org>
2091
2092 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
2093 short cut at the start of the function. Add an assertion.
2094 (reseat_at_next_visible_line_start): Add an assertion.
2095
2096 * window.c (Frecenter): When changing the window start, set the
2097 window's window_end_valid to nil.
2098 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
2099
2100 * dispextern.h (move_it_past_eol): Add prototype.
2101
2102 * xdisp.c (move_it_past_eol): New function.
2103
2104 * window.c (Fwindow_end): Doc fix.
2105
2106 2001-01-03 Dave Love <fx@gnu.org>
2107
2108 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3 kluge.
2109
2110 2001-01-03 Gerd Moellmann <gerd@gnu.org>
2111
2112 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
2113 the enabled_p flag of the glyph row at window_end_vpos to 0.
2114 (handle_single_display_prop): Fix last change.
2115
2116 2001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2117
2118 * window.c (Frecenter): Doc fix.
2119
2120 2001-01-02 Andrew Innes <andrewi@gnu.org>
2121
2122 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
2123
2124 * frame.h (output_method): Add output_w32_console method.
2125 (FRAME_W32_CONSOLE_P): New macro.
2126
2127 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
2128 use output_w32_console method.
2129 (Qw32_console): New Lisp_Object.
2130 (Fframep): Return it.
2131 (syms_of_frame): Init it.
2132 (Fframe_parameters): Report w32console as font for w32_console frames.
2133
2134 * xfaces.c (realize_default_face): Set face foreground and
2135 background to unspecified for w32_console frames.
2136 (realize_face): Realize face cache for w32_console frames.
2137 (realize_tty_face): Accept w32_console frames.
2138
2139 * xdisp.c (handle_single_display_prop): Return if frame is w32_console.
2140 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
2141 necessary, even if running interactively.
2142
2143 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
2144 w32_console frames.
2145
2146 * w32term.c (x_update_begin):
2147 (x_update_end):
2148 (x_clear_frame):
2149 (x_ins_del_lines):
2150 (x_change_line_highlight):
2151 (x_delete_glyphs):
2152 (w32_ring_bell):
2153 (x_update_begin):
2154 (x_update_end):
2155 (w32_reassert_line_highlight):
2156 (w32_frame_rehighlight):
2157 (w32_frame_raise_lower): Do nothing if not w32 frame.
2158
2159 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
2160
2161 * w32fns.c (Fx_display_color_cells): Determine correct value, when
2162 system doesn't tell us directly.
2163 (Fx_display_visual_class): Implement properly.
2164
2165 2001-01-02 Gerd Moellmann <gerd@gnu.org>
2166
2167 * window.c (Frecenter): Handle centering in graphical frames
2168 specially. Centering on the basis of line counts doesn't work
2169 reliably with variable-height lines.
2170
2171 2001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
2172
2173 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
2174 and al[].
2175
2176 * composite.c (run_composition_function): Remove unused var `val'.
2177 (update_compositions): Remove unused variable `hook'.
2178
2179 * intervals.c (get_local_map): Remove unused variable `tem'.
2180
2181 * doprnt.c (doprnt1): Remove unused variable `size'.
2182
2183 * fns.c (Flength): Remove unused variable `tail'.
2184 (Fdelete): Remove unused variable `size'.
2185
2186 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
2187 and `gcpro2'.
2188
2189 * doc.c (Fsnarf_documentation): Remove unused vars `fun' and `tem'.
2190
2191 * data.c (find_symbol_value): Remove extra 3rd argument in the
2192 call to swap_in_symval_forwarding.
2193
2194 * undo.c (Fprimitive_undo): Remove unused block-scope variable `end'.
2195
2196 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
2197 (trivial_regexp_p): Remove unused variable `c'.
2198 (boyer_moore): Remove unused variable `k'.
2199
2200 * indent.c (current_column): Remove unused variable `stopchar'.
2201 (Fcompute_motion): Remove unused variable `contin'.
2202
2203 * casefiddle.c (casify_object): Remove unused variable `tolen'.
2204
2205 * dired.c (directory_files_internal): Fix a typo in a comment.
2206 Remove an unused variable `handler'.
2207 (file_name_completion): Remove unused function-scope variable `dp'.
2208 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
2209 on BSD4_2.
2210
2211 * fileio.c (e_write): Remove unused variable `require_encoding_p'.
2212
2213 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
2214 and `buf'.
2215 (Fmarker_insertion_type): Remove unused variable `buf'.
2216
2217 * insdel.c (make_gap): Remove unused variable `result'.
2218
2219 * keyboard.c (record_char): Remove unused function-scope var `help'.
2220 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
2221 (menu_bar_items): Remove unused function-scope variable `tem'.
2222
2223 * fontset.c (fontset_ref): Remove unused variable `i'.
2224 (fontset_set): Remove unused variables `j' and `tmp'.
2225 (make_fontset): Remove unused variables `i', `j', `elt' and `base_elt'.
2226 (make_fontset_for_ascii_face): Remove unused variable `name'.
2227 (fs_load_font): Remove unused variable `font_idx'.
2228 (fs_query_fontset): Remove unused function-local variable `fontset'.
2229 (list_fontsets): Remove unused variable `tail'.
2230 (Fnew_fontset): Remove unused variables `family' and `registry'.
2231 (accumulate_font_info): Remove unused variable `tmp'.
2232 (Ffontset_font): Remove unused variable `id'.
2233 (syms_of_fontset): Remove unused variable `i'.
2234
2235 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
2236 to x_term_init.
2237 (lookup_image): Remove unused variable `file'.
2238 (xbm_load): Remove unused variables `bitmap_data', `height', and
2239 `width'. Remove function-local variable `i', leave the
2240 block-local one.
2241 (gif_load): Remove unused variable `inc'.
2242
2243 * xterm.c (XTread_socket): Remove unused variables `p' and `pend'.
2244 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
2245 leave only the one in the inner block.
2246
2247 * xfaces.c (face_fontset, realize_default_face): Remove unused
2248 variable `fontset'.
2249 (face_at_buffer_position): Remove unused variable `multibyte_p'.
2250
2251 * term.c (encode_terminal_code): Remove unused variable `c'.
2252
2253 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
2254 char *' instead of `char *'.
2255
2256 * category.c (Fcategory_docstring): Remove unused variable `doc'.
2257 (Fget_unused_category): Remove unused variable `docstring_vector'.
2258 (Fchar_category_set): Remove unused variables `val', `charset',
2259 `c1' and `c2'.
2260
2261 * coding.c (detect_coding_iso2022, setup_coding_system):
2262 Remove unused variable `i'.
2263 (detect_coding_mask): Remove unused variable `idx'.
2264 (detect_coding): Remove unused variable `i'.
2265 (ccl_coding_driver): Remove unused variable `result'.
2266 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
2267 (decode_coding_string): Remove unused variables `to' and `gcpro1'.
2268 (encode_coding_string): Remove unused variables `gcpro1' and
2269 `saved_coding_symbol'.
2270 (Ffind_coding_systems_region_internal): Remove function-local
2271 variable args[], leave only the block-local one.
2272 (code_convert_region1): Remove unused variable `len'.
2273
2274 * charset.c (char_printable_p): Remove unused variable `chars'.
2275 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
2276 (str_to_multibyte): Remove unused variable `c'.
2277
2278 * window.c (size_window): Remove block-local variable `min_size'.
2279
2280 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
2281 `header_line_height'.
2282 (append_space, extend_face_to_end_of_line): Declare `saved_what'
2283 enum display_element_type.
2284
2285 2001-01-02 Gerd Moellmann <gerd@gnu.org>
2286
2287 * xterm.c (x_connection_closed): Catch X errors around all
2288 statements that call X. Save away the error message in a local copy.
2289
2290 * xterm.c (x_connection_closed): Set handling_signal to 0 at
2291 the start.
2292
2293 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
2294 in or at the start of invisible text.
2295
2296 * dispnew.c (update_window): Don't check_current_matrix_flags.
2297
2298 2001-01-01 Jason Rumney <jasonr@gnu.org>
2299
2300 * w32fns.c (x_figure_window_size): Do not allow new_height and
2301 new_width of frame to override specified values.
2302
2303 2000-12-30 Kenichi Handa <handa@etl.go.jp>
2304
2305 * composite.c (find_composition): Fix a code for searching backward.
2306
2307 2000-12-29 Gerd Moellmann <gerd@gnu.org>
2308
2309 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New function.
2310 (update_window) [GLYPH_DEBUG]: Call it.
2311 (scrolling_window): Prevent including current rows which are below
2312 what's displayed in the window.
2313
2314 * xdisp.c (try_window_reusing_current_matrix)
2315 <new start <= old start>: Disable rows in the current matrix
2316 which are below the window after scrolling.
2317
2318 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
2319 is zero. It's not worth the complexity.
2320 (invisible_text_between_p): Put in #if 0 because unused.
2321
2322 2000-12-28 Gerd Moellmann <gerd@gnu.org>
2323
2324 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
2325 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
2326
2327 * keyboard.c (echo_char): If C is an integer, always call
2328 push_key_description. Former code could signal an invalid
2329 character error.
2330
2331 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
2332 If set, print multibyte text.
2333 (Fsingle_key_description): Call push_key_description with
2334 FORCE_MULTIBYTE set.
2335 (describe_buffer_bindings): Likewise.
2336
2337 * lisp.h (push_key_description): Add prototype.
2338
2339 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
2340 around the call to redisplay_internal.
2341
2342 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
2343
2344 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
2345
2346 2000-12-28 Kenichi Handa <handa@etl.go.jp>
2347
2348 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
2349 (ccl_driver): New local variable `extra_bytes'.
2350
2351 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
2352
2353 * coding.c (setup_coding_system):
2354 Initialize coding->spec.ccl.eight_bit_carryover.
2355 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
2356
2357 2000-12-28 Kenichi Handa <handa@etl.go.jp>
2358
2359 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
2360 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
2361 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
2362 (decode_composition_emacs_mule): New function.
2363 (decode_coding_emacs_mule): Decode composition sequence by calling
2364 decode_composition_emacs_mule.
2365 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
2366 (encode_coding_emacs_mule): Changed from macro to function.
2367 If a text contains compositions, encode them correctly.
2368 (setup_coding_system): Set coding->commong_flags for emacs-mule so
2369 that decoding and encoding are required.
2370
2371 2000-12-27 Gerd Moellmann <gerd@gnu.org>
2372
2373 * xfaces.c (PT_PER_INCH): New macro.
2374 (xlfd_point_size): Compute real point size from font's pixel size.
2375 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
2376 instead of 72.
2377
2378 * .gdbinit: Comment out the line pointing to the Lesstif source
2379 directory.
2380
2381 * window.c (Frecenter): Use displayed_window_lines instead
2382 of window_internal_height.
2383
2384 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
2385 instead of x-toolkit-scroll-bars-p.
2386 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
2387
2388 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
2389 instead of x-toolkit-scroll-bars-p.
2390 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
2391
2392 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
2393 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
2394 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]:
2395 New variables.
2396 (add_window_display_history, add_frame_display_history)
2397 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
2398 (build_frame_matrix_from_leaf_window): Remove unused code.
2399 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
2400 redisplay history.
2401 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
2402 (update_window) [GLYPH_DEBUG]: Likewise.
2403 (syms_of_display): Defsubr dump-redisplay-history.
2404
2405 2000-12-23 Gerd Moellmann <gerd@gnu.org>
2406
2407 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
2408 the end of the prompt. Set echo_after_prompt to the offset
2409 of echoptr in echobuf.
2410
2411 * xdisp.c (init_from_display_pos): Pop until the iterator's
2412 stack is empty; there may be frames for stretch or images
2413 on the stack.
2414
2415 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
2416 (save_or_restore_current_matrix): New function for the same
2417 purpose, but more efficient.
2418 (adjust_frame_glyphs_for_frame_redisplay): Use it.
2419
2420 2000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
2421
2422 * xdisp.c (syms_of_xdisp): Fix last change.
2423
2424 2000-12-23 Gerd Moellmann <gerd@gnu.org>
2425
2426 * xdisp.c (syms_of_xdisp): Doc fix.
2427
2428 * xdisp.c (redisplay_window): Remove label restore_buffers;
2429 use finish_scroll_bars instead to make sure that scroll bars
2430 are redeemed. If we don't do this, flickering can result from
2431 scroll bars being destroyed and recreated.
2432
2433 2000-12-22 Jason Rumney <jasonr@gnu.org>
2434
2435 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
2436 in the wrong colors when the foreground is not black.
2437 (expose_window): Don't redraw the window that's currently being
2438 updated.
2439
2440 2000-12-22 Gerd Moellmann <gerd@gnu.org>
2441
2442 * window.c (size_window): When setting the window's too_small_ok
2443 flag, compare old size with minimum size depending on WIDTH_P,
2444 don't compare with window_min_width.
2445
2446 * window.c (delete_window): Simplify somewhat.
2447 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
2448 freeing window matrices. The flag windows_or_buffers_changed is
2449 set, so the next redisplay will consider all windows; this should
2450 suffice.
2451
2452 2000-12-22 Kenichi Handa <handa@etl.go.jp>
2453
2454 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
2455
2456 * ccl.h (struct ccl_program): New member cr_consumed.
2457
2458 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
2459 (CCL_READ_CHAR): Handle EOL conversion here.
2460 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
2461
2462 2000-12-21 Gerd Moellmann <gerd@gnu.org>
2463
2464 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg GLYPHS.
2465
2466 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
2467 otherwise tabs of different size compare equal.
2468
2469 * callint.c (Fcall_interactively): Prevent a compiler warning.
2470
2471 * print.c (print_unwind): Return nil.
2472 (PRINTDECLARE): Initialize all local variables.
2473 (print_preprocess): Add a default case.
2474
2475 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
2476
2477 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
2478
2479 * window.c (delete_window, Fsplit_window)
2480 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
2481
2482 * dispextern.h (ensure_frame_matrix): Function declaration removed.
2483
2484 * dispnew.c (ensure_frame_matrix): Removed.
2485 (save_frame_matrix, restore_frame_matrix): New functions.
2486 (adjust_frame_glyphs_for_frame_redisplay): Use them.
2487
2488 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
2489 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
2490
2491 2000-12-21 Andrew Innes <andrewi@gnu.org>
2492
2493 * w32term.c (x_update_begin): Regenerate the palette here, rather
2494 than for each window.
2495
2496 * w32xfns.c (select_palette): Avoid calling SelectPalette if
2497 palette is NULL, since this corrupts memory! Also get
2498 display_info reference from frame.
2499
2500 2000-12-21 Jason Rumney <jasonr@gnu.org>
2501
2502 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
2503
2504 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
2505 to avoid returning without releasing it.
2506
2507 2000-12-21 Kenichi Handa <handa@etl.go.jp>
2508
2509 * keymap.c (push_key_description): Don't convert eight-bit-control
2510 and eight-bit-graphic to multibyte character.
2511
2512 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
2513 generic character and CODE1 is nil, return the smallest character
2514 in CHARSET.
2515
2516 2000-12-20 Dave Love <fx@gnu.org>
2517
2518 * s/osf5-0.h (NSIG): Don't redefine.
2519
2520 2000-12-20 Stefan Monnier <monnier@cs.yale.edu>
2521
2522 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
2523 excluding menu-bar and tool-bar.
2524 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
2525 (menu_item_p): Remove.
2526 (where_is_internal_1): Don't ignore menu-items.
2527
2528 2000-12-20 Gerd Moellmann <gerd@gnu.org>
2529
2530 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
2531 into account.
2532
2533 * window.c (make_window): Initialize window's min_hscroll.
2534 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
2535 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
2536 to zero.
2537 (struct saved_window): New member min_hscroll.
2538 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
2539 (Fset_window_configuration): Set window's min_hscroll.
2540 (save_window_save): Save window's min_hscroll.
2541 (compare_window_configurations): Compare min_hscroll values.
2542
2543 * window.h (struct window): New member min_hscroll.
2544
2545 * keyboard.c (echo_prompt): Prevent a compiler warning.
2546
2547 * xdisp.c (try_cursor_movement): Fix last change. The real
2548 condition is that PT is at the end of the row, and should
2549 be displayed at the start of the next row.
2550
2551 * xdisp.c (try_cursor_movement): If we end on a partially
2552 visible line, end we already decided to scroll, return -1.
2553
2554 * dispextern.h (ensure_frame_matrix): Add prototype.
2555
2556 * window.c (delete_window, Fsplit_window)
2557 (Fset_window_configuration): Call ensure_frame_matrix.
2558
2559 * dispnew.c (fake_current_matrices, ensure_frame_matrix):
2560 New functions.
2561 (adjust_frame_glyphs_for_frame_redisplay): If display has been
2562 completed, call fake_current_matrices instead of marking frame
2563 garbaged.
2564
2565 2000-12-20 Jason Rumney <jasonr@gnu.org>
2566
2567 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
2568
2569 2000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
2570
2571 * fns.c (Frequire): Doc fix.
2572
2573 2000-12-19 Gerd Moellmann <gerd@gnu.org>
2574
2575 * window.c (window_scroll_pixel_based): Don't use move_it_vertically.
2576
2577 * dispnew.c (direct_output_for_insert): Fix check for mini-window
2578 currently displaying a message.
2579
2580 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
2581 xterm.h.
2582 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
2583
2584 2000-12-18 Andrew Innes <andrewi@gnu.org>
2585
2586 * w32.c (w32_strerror): New function.
2587
2588 * w32.h (w32_strerror): New extern.
2589
2590 * w32fns.c (Fw32_shell_execute): Use it.
2591
2592 2000-12-18 Gerd Moellmann <gerd@gnu.org>
2593
2594 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
2595
2596 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
2597
2598 * msdos.c (IT_set_face): Obey inverse_video.
2599
2600 2000-12-18 Kenichi Handa <handa@etl.go.jp>
2601
2602 * dired.c (directory_files_internal): Always return decoded filenames.
2603
2604 2000-12-18 Gerd Moellmann <gerd@gnu.org>
2605
2606 * xterm.c (x_connection_closed): Prevent being called recursively
2607 because of an error condition in XtCloseDisplay.
2608
2609 * xdisp.c (init_iterator): If noninteractive, and the frame's
2610 face cache is null, make one.
2611
2612 * xfns.c (show_busy_cursor): Check for live frames more thoroughly.
2613
2614 * process.c (wait_reading_process_input): Check for pending
2615 input when running timers.
2616
2617 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
2618
2619 * msdos.c (IT_write_glyphs): Compute the glyph face from str->face_id.
2620
2621 2000-12-18 Kenichi Handa <handa@etl.go.jp>
2622
2623 * process.c (read_process_output): Don't run a filter if the code
2624 decoder produces nothing but carryover.
2625
2626 2000-12-17 Andrew Innes <andrewi@gnu.org>
2627
2628 * w32.c (sys_rename): Only check errno against EEXIST, and not
2629 EACCES, when determining whether rename failed because the target
2630 exists. This was resulting in indefinite looping on Windows 9x if
2631 the source file was locked by another process.
2632
2633 * w32fns.c (Ffile_system_info): New function.
2634 (syms_of_w32fns): Defsubr it.
2635
2636 2000-12-17 Gerd Moellmann <gerd@gnu.org>
2637
2638 * window.c (coordinates_in_window): Fix computation for
2639 position on vertical line between mode lines.
2640
2641 * xfns.c (unwind_create_frame): Return t if frame was deleted.
2642 Don't alter tip_frame or tip_window.
2643 (unwind_create_tip_frame): Set tip_frame to nil only if frame
2644 was deleted.
2645
2646 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
2647 Don't alter tip_frame or tip_window.
2648 (unwind_create_tip_frame): Set tip_frame to nil only if frame
2649 was deleted.
2650
2651 2000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
2652
2653 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
2654 be consistent with the doc string. Reported by NAKAJIMA Mikio
2655 <minakaji@osaka.email.ne.jp>.
2656
2657 2000-12-16 Kenichi Handa <handa@etl.go.jp>
2658
2659 * xfaces.c (Vface_ignored_fonts): New variable.
2660 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
2661 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
2662
2663 2000-12-15 Gerd Moellmann <gerd@gnu.org>
2664
2665 * dispnew.c (update_window): Detect pending input every nth line
2666 updated, i.e. do it depending on real work done, and not on the
2667 vpos of the line.
2668
2669 * xterm.c (expose_window): Don't redraw the window that's
2670 currently being updated.
2671
2672 * window.c (Fset_window_point): Remove test for
2673 cursor_in_non_selected_windows.
2674
2675 * lread.c (read1): Recognize end of file after `\\'.
2676
2677 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
2678 not unwind_create_frame.
2679
2680 2000-12-15 Dave Love <fx@gnu.org>
2681
2682 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
2683 bcopy & al.
2684
2685 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
2686
2687 2000-12-15 Kenichi Handa <handa@etl.go.jp>
2688
2689 * coding.c (setup_coding_system): Clear all members of the struct
2690 coding_system at first.
2691 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
2692 argument.
2693 (code_convert_region): Don't override coding->src_multibyte and
2694 coding->dst_multibyte.
2695
2696 * fns.c (Fmd5): Docstring improved.
2697
2698 2000-12-15 Miles Bader <miles@gnu.org>
2699
2700 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
2701 are actually marked as mode-lines; otherwise use
2702 estimate_mode_line_height.
2703
2704 2000-12-14 Gerd Moellmann <gerd@gnu.org>
2705
2706 * editfns.c (Fformat): Prevent a buffer overrun when the format
2707 specifies a precision.
2708
2709 2000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
2710
2711 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
2712 argument is outside the range [2..3].
2713
2714 2000-12-14 Andrew Innes <andrewi@gnu.org>
2715
2716 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
2717 nothing to do. Bind inhibit-quit.
2718 (tip_frame): Make it a Lisp_Object.
2719 (x_create_tip_frame): Set tip_frame after it has been added to
2720 Vframe_list.
2721 (Fx_show_tip): Don't set tip_frame here.
2722 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New variables.
2723 (unwind_create_frame, unwind_create_tip_frame): New functions.
2724 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
2725 while a frame is only partially constructed.
2726
2727 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
2728 (x_free_frame_resources): New function.
2729 (x_destroy_window): Use it.
2730
2731 2000-12-14 Gerd Moellmann <gerd@gnu.org>
2732
2733 * xfns.c (Fx_backspace_delete_keys_p): New function.
2734 (syms_of_xfns): Defsubr it.
2735
2736 * config.in (HAVE_XKBGETKEYBOARD): Add.
2737
2738 2000-12-14 Kenichi Handa <handa@etl.go.jp>
2739
2740 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
2741 Always store string in multibyte representation in echobuf.
2742 (echo_char): Always store string in multibyte representation in
2743 echobuf.
2744 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
2745 (read_key_sequence): Adjusted for the change of echo_prompt.
2746
2747 * fns.c (Fmd5): Docstring improved.
2748
2749 * lisp.h (detect_coding_system): Prototype adjusted.
2750
2751 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
2752 (detect_coding_emacs_mule, detect_coding_iso2022,)
2753 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
2754 (detect_coding_utf_16, detect_coding_ccl): Make them static.
2755 New argument MULTIBYTEP. Callers changed.
2756 (detect_coding_mask, detect_coding_system): New argument
2757 MULTIBYTEP. Callers changed.
2758 (decode_coding_string): Set coding->src_multibyte and
2759 coding->dst_multibyte before calling detect_coding and detect_eol.
2760 Update them after some coding system is detected.
2761
2762 2000-12-13 Stefan Monnier <monnier@cs.yale.edu>
2763
2764 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
2765
2766 * keyboard.c (menu_bar_items, tool_bar_items):
2767 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
2768
2769 2000-12-13 Gerd Moellmann <gerd@gnu.org>
2770
2771 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
2772 New variables.
2773 (unwind_create_frame, unwind_create_tip_frame): New functions.
2774 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
2775 while a frame is only partially constructed.
2776
2777 * xterm.h (x_free_frame_resources): Declare.
2778
2779 * xterm.c (x_free_frame_resources): New function.
2780 (x_destroy_window): Use it.
2781
2782 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
2783 don't interrupt the update for pending input initially, i.e.
2784 update at least some lines.
2785
2786 * keyboard.c (do_mouse_tracking): Make externally visible.
2787
2788 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
2789
2790 * xfns.c (gray_bitmap_bits): Declare `char *'.
2791
2792 2000-12-12 Gerd Moellmann <gerd@gnu.org>
2793
2794 * xdisp.c (display_tool_bar_line): Make sure that tool bar
2795 lines start with a relief line.
2796
2797 2000-12-12 Dave Love <fx@gnu.org>
2798
2799 * window.c (Fdisplay_buffer): Doc fix.
2800 (Fwindow_list): Remove unused var.
2801
2802 * buffer.h (mmap_set_vars): Declare.
2803
2804 * window.h (Fset_window_point): Declare.
2805
2806 2000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
2807
2808 * msdos.c (fast_find_position): Don't overstep the last window row.
2809 (IT_note_mouse_highlight): Initialize portion to -1. Remove unused
2810 variable `area'. When looking for a row under (X,Y), give up if some
2811 of the previous rows is not enabled.
2812
2813 2000-12-12 Gerd Moellmann <gerd@gnu.org>
2814
2815 * window.c (Fset_window_point): If displaying cursors in windows
2816 other than the selected window, make sure redisplay updates
2817 other windows to show the new value of point in the window.
2818
2819 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
2820
2821 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
2822 the buffer is the sole visible buffer when in the mini-buffer.
2823
2824 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
2825 Bind `inhibit-read-only' to t.
2826 (unwind_with_echo_area_buffer): Use AREF.
2827
2828 * xfns.c (Fx_hide_tip): Simplified.
2829
2830 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use GC_MAKE_GCPROS_NOOPS
2831 instead of `1'.
2832
2833 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
2834
2835 2000-12-11 Gerd Moellmann <gerd@gnu.org>
2836
2837 * xfns.c (Fx_hide_tip): Fix last change.
2838
2839 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
2840 nothing to do. Bind inhibit-quit.
2841 (tip_frame): Make it a Lisp_Object.
2842 (x_create_tip_frame): Set tip_frame after it has been added to
2843 Vframe_list.
2844 (Fx_show_tip): Don't set tip_frame here.
2845
2846 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
2847
2848 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
2849 Lisp_Object.
2850
2851 * dispextern.h: Change external declaration of tip_frame.
2852
2853 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
2854 return an empty string.
2855
2856 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
2857 of the window's update_mode_line flag, since the former is set by
2858 force-mode-line-update, not the latter. This makes
2859 column-number-mode slightly faster.
2860
2861 * xdisp.c (try_window_id) <all changes above window start>:
2862 Set the cursor.
2863
2864 2000-12-11 Paul Eggert <eggert@twinsun.com>
2865
2866 * config.in (HAVE_FTELLO): Remove.
2867 (HAVE_FSEEKO): Add.
2868 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
2869 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
2870 HAVE_FTELLO.
2871 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
2872 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
2873
2874 2000-12-11 Miles Bader <miles@gnu.org>
2875
2876 * window.c (displayed_window_lines): Don't round up when
2877 converting empty space at bottom to lines.
2878 Handle non-newline-terminated final lines properly.
2879 (Fwindow_text_height): New function (used to be in lisp).
2880 (syms_of_window): Initialize it.
2881
2882 2000-12-09 Stefan Monnier <monnier@cs.yale.edu>
2883
2884 * syntax.c (scan_lists): Check that the right quote char has the
2885 right Sstring syntax when jumping over strings.
2886 (init_syntax_once): Use Smax rather than 13.
2887
2888 2000-12-09 Miles Bader <miles@gnu.org>
2889
2890 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
2891 with PARTIALLY, inverting the sense.
2892 (window_scroll_pixel_based): Scroll partially visible lines into
2893 place if we hit the beginning or end of the buffer.
2894 (displayed_window_lines): Don't include partially visible lines.
2895 (Fmove_to_window_line): Skip past any partially visible first line.
2896
2897 2000-12-08 Gerd Moellmann <gerd@gnu.org>
2898
2899 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
2900
2901 * tparam.c (tparam1): Change the way buffers are reallocated to be
2902 portable and less obfuscated.
2903
2904 * termcap.c (tgetent): Change the way buffers are reallocated to
2905 be portable and less obfuscated.
2906
2907 * macros.c (store_kbd_macro_char): Change the way buffers are
2908 reallocated to be portable and less obfuscated.
2909
2910 * lread.c (read1): Change the way buffers are reallocated to be
2911 portable and less obfuscated.
2912
2913 * doc.c (Fsubstitute_command_keys): Change the way buffers
2914 are reallocated so that it is portable.
2915
2916 2000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
2917
2918 * dosfns.c (Ffile_system_info): New function.
2919 (syms_of_dosfns): Defsubr it.
2920
2921 2000-12-07 Stefan Monnier <monnier@cs.yale.edu>
2922
2923 * alloc.c (gc_sweep): Add comment.
2924
2925 2000-12-07 Gerd Moellmann <gerd@gnu.org>
2926
2927 * sound.c (vox_configure): Change order of ioctls.
2928 Don't set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
2929 Ignore errors when changing volume.
2930 (vox_close): Don't reset the device.
2931
2932 * process.c (read_process_output): Make sure the process marker's
2933 position is valid when the process buffer is changed in
2934 after-change functions. W3 does that.
2935
2936 * xfns.c (x_free_gcs): New function.
2937
2938 * xterm.h (x_free_gcs): Add prototype.
2939
2940 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
2941 freeing GCs here.
2942
2943 * xterm.c (x_destroy_window): Call x_free_gcs so that
2944 resources of non-toolkit X windows will be freed.
2945
2946 2000-12-07 Andrew Innes <andrewi@gnu.org>
2947
2948 * w32fns.c (xlfd_charset_of_font): Fix last change.
2949
2950 2000-12-06 Dave Love <fx@gnu.org>
2951
2952 * md5.h (__P): Don't define -- it comes from config.h.
2953
2954 * strftime.c: Change some #if foo to #ifdef foo.
2955
2956 2000-12-06 Andrew Innes <andrewi@gnu.org>
2957
2958 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
2959
2960 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname argument.
2961 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
2962 (w32_list_fonts): Don't choke if pattern doesn't specify a codepage.
2963
2964 2000-12-06 Gerd Moellmann <gerd@gnu.org>
2965
2966 * alloc.c (gc_sweep): Prevent symbols read during loadup
2967 from being freed.
2968
2969 * xdisp.c (underlying_face_id): New function.
2970 (handle_face_prop, face_before_or_after_it_pos): Use it
2971 to determine the face ``under'' a string. Let strings inherit
2972 the face of the buffer under them.
2973
2974 * xfaces.c (face_at_string_position): Update function comment.
2975
2976 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
2977 matrix if the window's left position has changed; we need to
2978 redraw it in this case.
2979
2980 * dispextern.h (struct glyph_matrix): Add member window_left_x.
2981
2982 * window.c (coordinates_in_window): Check mouse on mode-line or
2983 header-line first.
2984
2985 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
2986 advertized by the function documentation.
2987
2988 * window.c (syms_of_window): Doc fix.
2989
2990 * sound.c (vox_configure): Set volume for left and right channel.
2991 (sound_cleanup): Return nil.
2992
2993 * xdisp.c (move_it_by_lines): Fix paren typo.
2994
2995 * xterm.c (x_load_font): Don't use the font's max_bounds for
2996 computing the height of the font. If max_bounds' ascent or
2997 descent are greater than the font's ascent or descent, this means
2998 glyphs overlap, which should be handled now by redisplay.
2999
3000 * window.c (Veven_window_heights): New variable.
3001 (syms_of_window): DEFVAR_LISP it.
3002 (Fdisplay_buffer): Check Veven_window_heights before evening the
3003 window heights.
3004
3005 2000-12-06 Miles Bader <miles@gnu.org>
3006
3007 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
3008 update `default-frame-alist' instead of setting no frame parameters.
3009
3010 2000-12-06 Kenichi Handa <handa@etl.go.jp>
3011
3012 * composite.c (update_compositions): Fix typo (use the correct
3013 variable).
3014
3015 2000-12-05 Jason Rumney <jasonr@gnu.org>
3016
3017 * md5.h: Remove underscores from function declarations.
3018 (__attribute__, __alignof__) [!__GNUC__]: Define.
3019
3020 * md5.c: Delay include of md5.h until after namespace cleaning.
3021
3022 * makefile.w32-in (fns.o): Depend on md5.h
3023 (md5.o): New target.
3024 (sunfns.o): Remove.
3025
3026 * makefile.nt: Likewise.
3027
3028 2000-12-05 Jason Rumney <jasonr@altavista.net>
3029
3030 * w32term.c (expose_area): Complete last change.
3031
3032 2000-12-05 Ken Raeburn <raeburn@gnu.org>
3033
3034 * minibuf.c: Include intervals.h.
3035
3036 2000-12-05 Jason Rumney <jasonr@gnu.org>
3037
3038 * w32term.c (x_produce_glyphs): If a font for a component of
3039 a composition is not found, use 1 pixel dot ascent and 0 dot
3040 descent value to avoid displaying terribly tall empty boxes.
3041 (expose_area): Pass x-coordinate relative to the exposed
3042 area to x_draw_glyphs instead of a window-relative coordinate.
3043
3044 2000-12-05 Gerd Moellmann <gerd@gnu.org>
3045
3046 * xdisp.c (next_element_from_ellipsis): Save face before selective
3047 display in saved_face_id, and set face_before_selective_p.
3048 (reseat_1): Reset face_before_selective_p.
3049 (append_space, extend_face_to_end_of_line): If iterator's
3050 face_before_selective_p is set, use the face from saved_face_id.
3051 (extend_face_to_end_of_line): For tty frames, make sure to
3052 use the right face id when producing spaces at the end of
3053 the line.
3054
3055 * dispextern.h (struct it): Add face_before_selective_p.
3056
3057 * keyboard.c (record_char): Don't record identical help-echo
3058 events in recent_keys.
3059
3060 * xterm.c [USE_X_TOOLKIT]: Close the display.
3061 (xim_close_dpy): Handle case that the display has been closed.
3062
3063 * xterm.c (x_destroy_window): Reset the frame's X window after
3064 destroying it.
3065
3066 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
3067 variable window_width.
3068 (line_draw_cost): Fix code skipping over spaces at the end of the
3069 line when must_write_spaces is not set.
3070 (scrolling_window): Fix code inserting runs in list of all runs.
3071
3072 2000-12-05 Kenichi Handa <handa@etl.go.jp>
3073
3074 * coding.c (setup_coding_system): Be sure to initialize
3075 coding->category_idx.
3076
3077 2000-12-04 Gerd Moellmann <gerd@gnu.org>
3078
3079 * xterm.c (PER_CHAR_METRIC): Removed because not used.
3080
3081 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
3082 area to x_draw_glyphs instead of a window-relative coordinate.
3083
3084 * fileio.c (auto_save_error): Add parameter ERROR. Show the
3085 error in the message.
3086
3087 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
3088 timer after having read a key. It's not good for code reading
3089 several keys in a loop, like an input method.
3090
3091 * fileio.c (Finsert_file_contents): When VISIT is t, don't
3092 record undo information for format-decode.
3093
3094 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
3095 current buffer is read-only, not if it isn't.
3096
3097 * keyboard.c (record_char): Record `help-echo' input events
3098 in recent_keys only if they display some help. Don't record
3099 `help-echo' events as macro char.
3100
3101 2000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3102
3103 * editfns.c (save_excursion_restore): Don't move point
3104 in another window if it is showing the wrong buffer.
3105 Avoid the call to Fwindow_live_p, for speed.
3106
3107 2000-12-04 Kenichi Handa <handa@etl.go.jp>
3108
3109 * xfaces.c (struct font_name): New member registry_priority.
3110 (split_font_name): Initialize the above member to zero.
3111 (concat_font_list): New function.
3112 (font_list): Include fonts of all alternative registries.
3113 (FONT_POINT_SIZE_QUANTUM): New macro.
3114 (better_font_p): Ignore point size difference less than
3115 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
3116
3117 * xterm.c (x_produce_glyphs): If a font for a component of
3118 a composition is not found, use 1 pixel dot ascent and 0 dot
3119 descent value to avoid displaying terribly tall empty boxes.
3120
3121 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
3122
3123 2000-12-03 Ken Raeburn <raeburn@gnu.org>
3124
3125 * coding.h (code_convert_string1): Declare.
3126
3127 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
3128
3129 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name): Declare.
3130
3131 2000-12-02 Jason Rumney <jasonr@gnu.org>
3132
3133 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
3134 correctly for single byte character case.
3135 (w32_per_char_metric): Do not try to make any assumptions about
3136 the metrics of BDF fonts.
3137 (x_estimate_mode_line_height): If `mode-line' face
3138 hasn't a font, use that of the frame, as drawing glyphs does.
3139 (note_mouse_highlight): Change the cursor shape on the vertical
3140 border between windows [not enabled].
3141
3142 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
3143
3144 * w32fns.c (Fx_create_frame): Reintroduce the call to
3145 face-set-after-frame-defaults.
3146 (Vx_window_horizontal_drag_shape): New variable.
3147 (syms_of_xfns): DEFVAR_LISP it.
3148 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
3149 enabled].
3150
3151 2000-12-02 Simon Josefsson <simon@josefsson.org>
3152
3153 * fns.c (Fmd5): Use a different logic to decide the coding system
3154 to use.
3155
3156 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
3157
3158 2000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
3159
3160 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is NULL.
3161
3162 2000-12-01 Gerd Moellmann <gerd@gnu.org>
3163
3164 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
3165 height for YNegative.
3166 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
3167 height; also see comment there.
3168
3169 * window.c (coordinates_in_window): Handle computations for
3170 positions on the vertical bar and fringes differently for
3171 window-system frames. Consider some pixels near the vertical bar
3172 as on the bar if the frame doesn't have vertical scroll bars.
3173 Associate positions between mode or header lines with the
3174 right window, the left one.
3175
3176 2000-12-01 Jason Rumney <jasonr@gnu.org>
3177
3178 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
3179
3180 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
3181 invalid frame.
3182
3183 2000-12-01 Gerd Moellmann <gerd@gnu.org>
3184
3185 * window.c (struct saved_window): Add members orig_top and orig_height.
3186 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
3187 (save_window_save, Fset_window_configuration): Save/restore
3188 window's orig_top and orig_height.
3189
3190 2000-12-01 Jason Rumney <jasonr@gnu.org>
3191
3192 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
3193
3194 * w32fns.c (x_set_cursor_color): Fix last change.
3195
3196 2000-11-30 Gerd Moellmann <gerd@gnu.org>
3197
3198 * xdisp.c (echo_area_display): If cursor is in the echo area, make
3199 sure that the next redisplay displays the minibuffer, so that
3200 the cursor will be replaced with what the minibuffer wants.
3201
3202 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
3203 #ifndef instead of using #if.
3204 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
3205 USE_TOOLKIT_SCROLL_BARS is defined.
3206
3207 2000-11-30 Jason Rumney <jasonr@gnu.org>
3208
3209 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
3210 x_display_cursor.
3211
3212 2000-11-30 Gerd Moellmann <gerd@gnu.org>
3213
3214 * fns.c (Fmd5): Doc fix.
3215
3216 2000-11-30 Simon Josefsson <simon@josefsson.org>
3217
3218 * fns.c (Fmd5): New function.
3219 (syms_of_fns): Defsubr md5.
3220
3221 * Makefile.in (obj): Add md5.o
3222
3223 2000-11-30 Gerd Moellmann <gerd@gnu.org>
3224
3225 * md5.h, md5.c: New files, taken from glibc.
3226
3227 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
3228
3229 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
3230 hasn't a font, use that of the frame, as drawing glyphs does.
3231
3232 2000-11-29 Stefan Monnier <monnier@cs.yale.edu>
3233
3234 * eval.c (Frun_hooks): Allow 0 arguments.
3235
3236 2000-11-29 Gerd Moellmann <gerd@gnu.org>
3237
3238 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
3239 is over the menu bar widget, say it's not on the frame.
3240
3241 * xfns.c (Fx_create_frame): Reintroduce the call to
3242 face-set-after-frame-defaults.
3243
3244 * eval.c (Fsignal): Reset handling_signal.
3245
3246 2000-11-28 Jason Rumney <jasonr@gnu.org>
3247
3248 * w32menu.c (add_menu_item): Reset menu item text when changing
3249 type to radio button.
3250
3251 2000-11-28 Gerd Moellmann <gerd@gnu.org>
3252
3253 * xselect.c: Update copyright.
3254
3255 * window.c (coordinates_in_window): If on a mode or header line,
3256 but sufficiently close to its start, return ``on vertical
3257 border''. This gives us a way to drag windows horizontally when
3258 using toolkit scroll bars.
3259
3260 * xterm.c (note_mouse_highlight): Change the cursor shape
3261 on the vertical border between windows.
3262
3263 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
3264
3265 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
3266 (syms_of_xfns): DEFVAR_LISP it.
3267 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
3268
3269 * textprop.c (text_read_only): New function.
3270 (verify_interval_modification): Use it instead of signaling
3271 `text-read-only'. This makes it easier to catch this error
3272 with a breakpoint.:
3273
3274 * xdisp.c (forward_to_next_line_start): Check for newlines,
3275 not end of line, which includes CR.
3276
3277 2000-11-28 Kenichi Handa <handa@etl.go.jp>
3278
3279 * coding.c (Ffind_coding_systems_region_internal): Be sure to
3280 include no-conversion.
3281
3282 2000-11-27 Jason Rumney <jasonr@gnu.org>
3283
3284 * w32fns.c (w32_load_system_font): Always mark font as double byte
3285 if codepage is unicode.
3286
3287 2000-11-27 Gerd Moellmann <gerd@gnu.org>
3288
3289 * xdisp.c (forward_to_next_line_start): If already on a newline,
3290 just consume it to avoid unintended skipping over invisible text below.
3291
3292 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
3293 `vertical-line', `mode-line' and `header-line' events.
3294
3295 * xdisp.c (try_window_id): Avoid starting to display in the middle
3296 of a character, a TAB for instance. This is easier than to set
3297 up the iterator exactly, and it's not a frequent case, so the
3298 additional effort wouldn't really pay off.
3299
3300 2000-11-26 Andrew Choi <akochoi@i-cable.com>
3301
3302 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
3303 init_window_once.
3304
3305 2000-11-25 Jason Rumney <jasonr@gnu.org>
3306
3307 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]:
3308 Args to window_from_coordinates should be pixel coordinates.
3309
3310 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
3311 redisplay handles them properly.
3312
3313 2000-11-25 Miles Bader <miles@gnu.org>
3314
3315 * indent.c (compute_motion): Keep pos_byte in sync with pos.
3316
3317 2000-11-24 Jason Rumney <jasonr@gnu.org>
3318
3319 * w32.c (init_environment): Set LANG environment variable based on
3320 locale settings, if not set.
3321
3322 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
3323 making tool bar smaller. When clearing the frame, also
3324 clear current matrices. Clear frame when tool bar disappears.
3325 Don't use more lines for the tool-bar than is available.
3326 (x_change_window_heights): New function.
3327
3328 2000-11-24 Gerd Moellmann <gerd@gnu.org>
3329
3330 * xdisp.c (init_from_display_pos): If POS says we're already after
3331 an overlay string ending at POS, make sure to pop the iterator
3332 because it will be in front of that overlay string. When POS is
3333 ZV, we've thereby also ``processed'' overlay strings at ZV.
3334
3335 * xfaces.c (lface_from_face_name): Function comment fix.
3336
3337 2000-11-24 Miles Bader <miles@gnu.org>
3338
3339 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
3340 apply `mode-line-inverse-video' -- zero means force display using
3341 the default face, non-zero means display using the specialized face.
3342 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
3343
3344 2000-11-23 Kenichi Handa <handa@etl.go.jp>
3345
3346 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
3347 hard coded `4'.
3348
3349 2000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
3350
3351 * coding.c (decode_coding_emacs_mule): Fix the case of
3352 CODING_EOL_LF, which used uninitialized value of c.
3353
3354 2000-11-23 Stefan Monnier <monnier@cs.yale.edu>
3355
3356 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
3357
3358 2000-11-22 Gerd Moellmann <gerd@gnu.org>
3359
3360 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
3361 buffer object.
3362
3363 * frame.h (struct frame): Replace desired_tool_bar_items,
3364 current_tool_bar_items, n_desired_tool_bar_items,
3365 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
3366
3367 * frame.c (make_frame): Change initialization of tool bar
3368 items accordingly.
3369
3370 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
3371 Change references to members deleted from struct frame to use the
3372 new ones.
3373
3374 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
3375 references to members deleted from struct frame to use the new ones.
3376
3377 * dispnew.c (update_frame): Do nothing with frame's tool bar items.
3378
3379 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
3380
3381 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
3382 (note_tool_bar_highlight): Change references to members deleted
3383 from struct frame to use the new ones.
3384
3385 2000-11-23 Miles Bader <miles@gnu.org>
3386
3387 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
3388 the face's inverse-video attribute, rather than overriding it.
3389
3390 2000-11-22 Gerd Moellmann <gerd@gnu.org>
3391
3392 * xfns.c (x_set_tool_bar_lines): Clear internal border when
3393 making tool bar smaller.
3394
3395 2000-11-22 Dave Love <fx@gnu.org>
3396
3397 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
3398
3399 2000-11-22 Miles Bader <miles@gnu.org>
3400
3401 * keyboard.c (Vminibuffer_message_timeout): New variable.
3402 (command_loop_1): Use it to determine message timeout.
3403 (syms_of_keyboard): Initialize it.
3404
3405 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
3406
3407 2000-11-22 Kenichi Handa <handa@etl.go.jp>
3408
3409 * sysdep.c: Move the code for declaring h_errno after #include
3410 <netdb.h>.
3411
3412 2000-11-21 Gerd Moellmann <gerd@gnu.org>
3413
3414 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
3415 the menu bar when the tooltip is unmapped.
3416
3417 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
3418 sole visible buffer when we're currently in the mini-buffer, and
3419 give up if so.
3420
3421 2000-11-21 Jason Rumney <jasonr@gnu.org>
3422
3423 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
3424 put on the clipboard.
3425 (Fw32_get_clipboard_data): Compare data on clipboard with saved
3426 copy of what Emacs last put there. If they are the same, do not
3427 use the clipboard copy to avoid losing data due to coding conversions.
3428
3429 2000-11-22 Miles Bader <miles@gnu.org>
3430
3431 * minibuf.c (Vminibuffer_prompt_properties): New variable.
3432 (syms_of_minibuf): Initialize it.
3433 (read_minibuf): Add properties from Vminibuffer_prompt_properties
3434 to prompt, don't make read-only.
3435
3436 2000-11-21 Gerd Moellmann <gerd@gnu.org>
3437
3438 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>:
3439 Add BEFORE/AFTER_POTENTIAL_GC.
3440
3441 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
3442
3443 * buffer.c (mmap_free_1): Avoid a compiler warning.
3444
3445 * term.c, cm.c: Don't try to include termcap.h; see comment there.
3446
3447 2000-11-21 Kenichi Handa <handa@etl.go.jp>
3448
3449 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
3450 ... #endif scope.
3451
3452 2000-11-20 Gerd Moellmann <gerd@gnu.org>
3453
3454 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
3455 screen supports it.
3456
3457 * s/gnu-linux.h: Don't use `#cpu'.
3458
3459 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
3460 not defined in mman.h.
3461
3462 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New variables.
3463 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
3464 and store an index in the XClientMessageEvent. Storing a
3465 Lisp_Object or pointer can fail on a 64 bit system, since X only
3466 transfers 32 bits.
3467 (x_scroll_bar_to_input_event): Get the window from scroll_bar_windows.
3468
3469 2000-11-20 Dave Love <fx@gnu.org>
3470
3471 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
3472
3473 2000-11-20 Gerd Moellmann <gerd@gnu.org>
3474
3475 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
3476
3477 2000-11-20 Kenichi Handa <handa@etl.go.jp>
3478
3479 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
3480 by WIDTH.
3481
3482 * alloc.c (make_string): Fix previous change. Be sure to make
3483 unibyte string correctly.
3484
3485 2000-11-19 Gerd Moellmann <gerd@gnu.org>
3486
3487 * window.c (Fwindow_list): Change parameter list to be XEmacs
3488 compatible.
3489 (window_list_1): New function.
3490 (window_loop): Use it instead of Fwindow_list.
3491
3492 * sysdep.c (emacs_ospeed): New variable.
3493 (toplevel): Don't declare ospeed extern.
3494 (init_baud_rate): Use emacs_ospeed instead of ospeed.
3495
3496 * termcap.c (ospeed): Remove.
3497 (tputs) [!emacs]: Remove unused code.
3498 (tgetent): Avoid a compiler warning.
3499
3500 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
3501 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
3502 SCROLL_BAR_X_WIDGET with additional argument DPY.
3503
3504 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
3505 removed.
3506 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
3507 Take the X display as additional argument.
3508 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
3509 `Widget' is a pointer type that's not easily stored in Lisp_Object
3510 form in a portable way.
3511
3512 * dispnew.c (update_text_area): Fix last change.
3513
3514 2000-11-18 Gerd Moellmann <gerd@gnu.org>
3515
3516 * xdisp.c: Use BINDING_STACK_SIZE throughout.
3517
3518 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
3519 clear current matrices.
3520
3521 * buffer.c (mmap_enlarge): Don't print a message on stderr
3522 if mapping new memory at the end of the existing region fails.
3523
3524 * dispnew.c (update_text_area): Don't skip over equal glyphs
3525 when the last current glyph overlaps the glyph to its right.
3526
3527 2000-11-18 Miles Bader <miles@gnu.org>
3528
3529 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
3530 lines that *end* with "..." too (that's the most common case!).
3531
3532 2000-11-18 Gerd Moellmann <gerd@gnu.org>
3533
3534 * xdisp.c (resize_mini_window): Temporarily change to the
3535 mini-window's buffer if necessary.
3536
3537 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
3538 the tooltip obscures less text under it.
3539
3540 2000-11-17 Gerd Moellmann <gerd@gnu.org>
3541
3542 * puresize.h (BASE_PURESIZE): Increase to 700000.
3543
3544 2000-11-18 Jason Rumney <jasonr@gnu.org>
3545
3546 * w32term.c (w32_draw_bitmap): Use face to set colors.
3547
3548 2000-11-17 Dave Love <fx@gnu.org>
3549
3550 * lread.c (Fload): Fix #ifdef for pcc.
3551
3552 2000-11-17 Gerd Moellmann <gerd@gnu.org>
3553
3554 * xdisp.c (pos_visible_p): Compute the default character height
3555 differently.
3556
3557 2000-11-16 Gerd Moellmann <gerd@gnu.org>
3558
3559 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
3560 knowing the line's height; use the default font's height in that case.
3561
3562 * xfaces.c (weight_table): Add `demi' with the same meaning as
3563 `demibold'.
3564
3565 2000-11-16 Kenichi Handa <handa@etl.go.jp>
3566
3567 * dispnew.c (null_row): New global static variable.
3568 (clear_glyph_row): Delete local static variable null_row.
3569
3570 2000-11-15 Jason Rumney <jasonr@gnu.org>
3571
3572 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
3573 (w32_alloc_lighter_color): Use new brightness calculations from
3574 xterm.c. Scale delta to be in the range expected by W32.
3575 (w32_draw_relief_rect): Use frame relief colors.
3576
3577 2000-11-15 Gerd Moellmann <gerd@gnu.org>
3578
3579 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
3580 (Qinhibit_default_face_x_resources): New variable.
3581 (syms_of_frame): Initialize it.
3582 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
3583
3584 * xdisp.c (pos_visible_p): Improve function comment.
3585
3586 * lisp.h (BINDING_STACK_SIZE): New macro.
3587
3588 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
3589 reading the directory if readdir returns null and errno is EAGAIN
3590 or EINTR.
3591
3592 2000-11-14 Stefan Monnier <monnier@cs.yale.edu>
3593
3594 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
3595 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
3596 Set amount_to_scroll to max of dx and scroll_step so that
3597 scroll-conservatively doesn't defeat scroll-step>1.
3598 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
3599 scroll-conservatively for line-at-a-time scrolling.
3600
3601 2000-11-14 Gerd Moellmann <gerd@gnu.org>
3602
3603 * window.c (Fpos_visible_in_window_p): Call pos_visible with
3604 extra argument.
3605
3606 * xdisp.c (current_mode_line_height, current_header_line_height):
3607 New variables.
3608 (init_xdisp): Initialize them.
3609 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
3610 and use exact mode line heights if it is set.
3611
3612 * lisp.h (pos_visible_p): Change prototype.
3613
3614 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
3615 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
3616 and current_header_line_height first.
3617 (current_mode_line_height, current_header_line_height):
3618 Declare extern.
3619
3620 2000-11-14 Miles Bader <miles@lsi.nec.co.jp>
3621
3622 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
3623 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
3624 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
3625
3626 2000-11-14 Miles Bader <miles@gnu.org>
3627
3628 * xterm.c (x_alloc_lighter_color): Include an additive component
3629 too for dark colors, because FACTOR isn't enough.
3630 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
3631 New macros.
3632
3633 2000-11-13 Gerd Moellmann <gerd@gnu.org>
3634
3635 * keyboard.c (show_help_echo): Call message3_nolog with number of
3636 bytes in the help string as 2nd parameter, instead of the number
3637 of characters.
3638
3639 2000-11-13 Miles Bader <miles@gnu.org>
3640
3641 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
3642 (Fload): Use new openp return protocol.
3643 Don't try to use Vload_source_file_function to load .elc files.
3644 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
3645 openp return protocol.
3646 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
3647
3648 2000-11-11 Kenichi Handa <handa@etl.go.jp>
3649
3650 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
3651
3652 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
3653 Defined these macros.
3654 (NLIST_STRUCT): Avoid re-defining it.
3655
3656 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
3657 -I/usr/contrib/X11R6/include.
3658 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
3659
3660 2000-11-10 Jason Rumney <jasonr@gnu.org>
3661
3662 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
3663
3664 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
3665 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
3666
3667 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
3668 (Qw32_charset_vietnamese): New symbol.
3669 (xlfd_charset_of_font): New function.
3670 (w32_load_system_font): Use it.
3671 (x_to_w32_charset): Use Fassoc to find charset info. Special case
3672 when Vw32_charset_info_alist is nil to ensure default face always
3673 has font. Use Fcar and Fcdr for safety.
3674 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
3675 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
3676 pseudo-codepages for special cases.
3677 (w32_to_x_font): New parameter to allow charset portion to be
3678 specified where there is many to one mapping. Callers changed.
3679 (w32_list_fonts): Avoid listing fonts that won't display.
3680
3681 2000-11-10 Gerd Moellmann <gerd@gnu.org>
3682
3683 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
3684 (font_list_1): Renamed from font_list.
3685 (font_list): New function, trying alternative registries from
3686 Vface_alternative_font_registry_alist.
3687 (Finternal_set_alternative_font_registry_alist): New function.
3688 (syms_of_xfaces): Initialize and Staticpro
3689 Vface_alternative_font_registry_alist.
3690 Defsubr Finternal_set_alternative_font_registry_alist.
3691
3692 2000-11-09 Ken Raeburn <raeburn@gnu.org>
3693
3694 * lisp.h (Flooking_at): Declare.
3695
3696 2000-11-09 Gerd Moellmann <gerd@gnu.org>
3697
3698 * dired.c (directory_files_internal): Fix a braino.
3699
3700 * dired.c (directory_files_internal): Add missing GCPRO's.
3701 Some cleanup.
3702
3703 2000-11-08 Gerd Moellmann <gerd@gnu.org>
3704
3705 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
3706 (resize_mini_window): Return quickly if Vresize_mini_window is
3707 nil. Don't return if Vmax_mini_window_height is nil.
3708
3709 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
3710 (syms_of_xdisp): Initialize them.
3711 (resize_mini_window): Act according to the setting of
3712 Vresize_mini_window.
3713 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
3714
3715 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
3716 scroll bar widget after configuring it, so that it will appear at
3717 the right position from the start.
3718 (XTredeem_scroll_bar): Cleaned up.
3719
3720 2000-11-08 Kenichi Handa <handa@etl.go.jp>
3721
3722 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
3723 font is taller than the frame line, we don't have to bias the
3724 division by two.
3725
3726 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
3727
3728 2000-11-07 Dave Love <fx@gnu.org>
3729
3730 * config.in (HAVE_MKSTEMP): Add.
3731
3732 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
3733
3734 2000-11-07 Gerd Moellmann <gerd@gnu.org>
3735
3736 * window.c (Fset_window_configuration): Don't try to preserve
3737 point in the current buffer, if that buffer is displayed in more
3738 than one window.
3739
3740 * xfaces.c (lookup_named_face): If default face isn't realized,
3741 try to realize it. Return -1 if not successful.
3742 (Fx_list_fonts): Handle case that face cannot be determined.
3743 (Fface_font): Likewise.
3744
3745 2000-11-06 Gerd Moellmann <gerd@gnu.org>
3746
3747 * window.c (displayed_window_lines): Detect partially
3748 visible lines at the bottom correctly.
3749
3750 2000-11-06 Stefan Monnier <monnier@cs.yale.edu>
3751
3752 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
3753 when ensuring we don't do visit in indirect buffer.
3754
3755 2000-11-06 Kenichi Handa <handa@etl.go.jp>
3756
3757 * composite.h (compose_chars_in_text): Add prototype.
3758
3759 * composite.c (Vcomposition_function_table): New variable.
3760 (Qcomposition_function_table): New variable.
3761 (run_composition_function): Call
3762 Vcompose_chars_after_function with three arguments.
3763 (compose_chars_in_text): New function.
3764 (syms_of_composite): Modified the doc-string of
3765 Vcompose_chars_after_function. Declare composition-function-table
3766 as a lisp variable, and initialize it.
3767
3768 * xfns.c (x_encode_text): Suppress producing escape sequences for
3769 composition.
3770
3771 * xselect.c: Include composite.h.
3772 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
3773
3774 2000-11-05 Andrew Innes <andrewi@gnu.org>
3775
3776 * w32term.c (x_produce_glyphs): Fix typo in enum name.
3777
3778 * sysdep.c (read_input_waiting): Remove extraneous argument to
3779 read_socket_hook.
3780
3781 * w32fns.c (Fx_server_version): Include w32_build_number in the
3782 return list.
3783
3784 * w32heap.c (w32_build_number): New variable.
3785 (cache_system_info): Set it.
3786
3787 * w32heap.h (w32_build_number): Add extern.
3788
3789 * emacs.c (syms_of_emacs): Update docstring for
3790 system-configuration, to reflect the actual usage on MS-Windows.
3791
3792 2000-10-31 Gerd Moellmann <gerd@gnu.org>
3793
3794 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
3795 process idle timers while waiting for another event.
3796
3797 * dispnew.c (update_frame_line): Handle case where spaces in
3798 the default face are colored.
3799
3800 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
3801 window height hasn't changed.
3802
3803 2000-10-31 Jason Rumney <jasonr@gnu.org>
3804
3805 * w32term.c (x_produce_glyphs): Handle composite characters.
3806 (x_draw_glyph_string_foreground)
3807 (x_draw_composite_glyph_string_foreground): Restore old font.
3808
3809 2000-10-31 Miles Bader <miles@lsi.nec.co.jp>
3810
3811 * minibuf.c (read_minibuf): Reset the undo history just before
3812 starting the recursive-edit.
3813
3814 2000-10-30 Gerd Moellmann <gerd@gnu.org>
3815
3816 * xfaces.c (menu_face_change_count): New variable.
3817 (Finternal_set_lisp_face_attribute): Increment it for changes
3818 of the `menu' face.
3819 (realize_basic_faces): Reflect changes in the `menu' faces
3820 in menu bars.
3821
3822 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
3823 dy obtained from the iterator's y-position after moving from
3824 scroll_margin_pos to PT; see comment there.
3825
3826 * xdisp.c (safe_eval_handler): Call add_to_log.
3827
3828 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
3829 is not a symbol or string.
3830
3831 * xdisp.c (echo_area_display): Don't perform a display update from
3832 inside redisplay. The update will happen anyway at the end of
3833 redisplay, and it can confuse redisplay (GC messages while
3834 redisplaying, for instance.)
3835
3836 2000-10-30 Stefan Monnier <monnier@cs.yale.edu>
3837
3838 * xrdb.c (x_load_resources): Use the class name in the defaults.
3839
3840 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
3841 (regex_compile): Catch bogus \(\1\).
3842
3843 2000-10-30 Gerd Moellmann <gerd@gnu.org>
3844
3845 * xterm.c (x_alloc_nearest_color): Fix last change to compare
3846 RGB values.
3847
3848 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
3849 we have a color cache, check that the cached color equals the
3850 allocated color. If not, clear the color cache.
3851
3852 * window.c (displayed_window_lines): Change buffers if necessary.
3853 Fix computation of displayed lines.
3854
3855 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
3856 update_menu_bindings to DEFVAR_BOOL.
3857
3858 2000-10-30 Kenichi Handa <handa@etl.go.jp>
3859
3860 * search.c (Fset_match_data): Be sure to make search_regs always sane.
3861
3862 * puresize.h (BASE_PURESIZE): Increase to 680000.
3863
3864 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
3865
3866 2000-10-29 Jason Rumney <jasonr@gnu.org>
3867
3868 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
3869
3870 * w32term.c (w32_bdf_per_char_metric): Negate descent.
3871 (w32_cache_char_metrics): Handle possibility that 'x' does not
3872 exist in a BDF font.
3873 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
3874
3875 * w32bdf.h (bdffont): Add nchars.
3876
3877 * w32bdf.c (set_bdf_font_info): Set it.
3878 (w32_BDF_TextOut): Swap byte order of double byte characters.
3879 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
3880
3881 2000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
3882
3883 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
3884 don't override the colors in frame's param_alist, unless they are
3885 unspecified.
3886
3887 * term.c (reassert_line_highlight): If inverse_video is non-zero,
3888 reverse the effect of the highlight flag.
3889
3890 2000-10-27 Ken Raeburn <raeburn@gnu.org>
3891
3892 * window.h (Fwindow_live_p): Declare.
3893
3894 * undo.c (record_delete): Check that last_undo_buffer is really a
3895 buffer before applying XBUFFER to it.
3896
3897 * keymap.c (where_is_internal): Pass lisp object, not integer, to
3898 Faref.
3899
3900 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
3901
3902 * lisp.h (KEYMAPP): New macro.
3903 (get_keymap): Remove.
3904 (get_keymap_1): Rename get_keymap.
3905
3906 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
3907
3908 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
3909
3910 * xmenu.c (single_submenu): Use KEYMAPP.
3911 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
3912 Use KEYMAPP rather than Fkeymapp.
3913
3914 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
3915
3916 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
3917 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
3918 Use KEYMAPP rather than Fkeymapp.
3919 (single_submenu): Use KEYMAPP.
3920 (w32_menu_show, w32_dialog_show): Use TRUE.
3921
3922 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
3923
3924 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
3925 (Fkeymapp): Use KEYMAPP.
3926 (get_keymap): Rename from get_keymap_1. Remove old def.
3927 Return t when autoload=0 and error=0 and the keymap needs autoloading.
3928 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
3929 (Fminor_mode_key_binding): Don't raise an error if the binding
3930 is not a keymap.
3931 (Fuse_global_map, Fuse_local_map): Allow autoloading.
3932 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
3933
3934 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
3935 Allow Vspecial_event_map to be autoloaded.
3936 (menu_bar_items): Fetch the keymap rather than using keymapp.
3937 (menu_bar_one_keymap): No need to follow func-indirect any more.
3938 (parse_menu_item): get_keymap_1 -> get_keymap.
3939 (tool_bar_items): Fetch the keymap rather than using keymapp.
3940 (read_key_sequence): Use KEYMAPP.
3941
3942 * intervals.c (get_local_map): Use get_keymap rather than following
3943 function-indirections explicitly.
3944
3945 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
3946
3947 2000-10-27 Jason Rumney <jasonr@gnu.org>
3948
3949 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
3950 point, as Windows has oversized fonts.
3951
3952 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
3953
3954 2000-10-27 Gerd Moellmann <gerd@gnu.org>
3955
3956 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
3957 (freehook, reallochook): Handle null pointer arguments.
3958 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
3959
3960 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
3961
3962 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
3963 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
3964 Giving in to popular pressure to shut up the compiler with casts.
3965
3966 2000-10-27 Gerd Moellmann <gerd@gnu.org>
3967
3968 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
3969 signed value, and use a default value computed from the font's
3970 maximum descent.
3971
3972 2000-10-27 Miles Bader <miles@lsi.nec.co.jp>
3973
3974 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
3975 that specify a negative underline position can still use underlines.
3976
3977 * window.c (Fpos_visible_in_window_p): Make POS default to
3978 WINDOW's point, not the current buffer's point.
3979
3980 2000-10-26 Dave Love <fx@gnu.org>
3981
3982 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
3983 when it's necessary.
3984
3985 2000-10-26 Gerd Moellmann <gerd@gnu.org>
3986
3987 * window.c (size_window): Compute size difference from sum of old
3988 child window sizes instead of from parent's size.
3989
3990 * xdisp.c (pos_visible_p): Change current buffer if necessary.
3991 Handle obscured lines at the top of the window.
3992
3993 * frame.c (Fdelete_frame): Doc fix. Move running the hook
3994 down after the last error condition check.
3995
3996 * frame.c (Fdelete_frame): Run delete-frame-hook.
3997
3998 2000-10-26 Kenichi Handa <handa@etl.go.jp>
3999
4000 * coding.c (decode_coding): Fix previous change (check also
4001 CODING_MODE_LAST_BLOCK).
4002
4003 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
4004
4005 * regex.c: More `unsigned char' -> `re_char' changes.
4006 Also change several `int' into `re_wchar_t'.
4007 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
4008 (PUSH_FAILURE_POINTER): Don't cast any more.
4009 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
4010 We want GCC to complain, since this piece of code makes
4011 re_match non-reentrant, which *should* be fixed.
4012 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
4013 (EXTEND_BUFFER): Use RETALLOC.
4014 (SET_LIST_BIT): Don't cast.
4015 (re_wchar_t): New type.
4016 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
4017 that those two functions will always properly return.
4018 (IMMEDIATE_QUIT_CHECK): Cast to void.
4019 (analyse_first): Use recursion rather than an explicit stack.
4020 (re_compile_fastmap): Can't fail anymore.
4021 (re_search_2): Don't check re_compile_fastmap for failure.
4022 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
4023 Now also sets the new value (passed in a new argument).
4024 (re_match_2_internal): Use it.
4025 Also, use a new var `reg' of type size_t when looping through regs
4026 rather than reuse the inappropriate `mcnt'.
4027
4028 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
4029 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
4030 (where_is_internal): Renamed from Fwhere_is_internal.
4031 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
4032 (Fwhere_is_internal): New function wrapping where_is_internal.
4033 (where_is_internal_1): Handle the case where we're filling the cache.
4034 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
4035
4036 2000-10-25 Miles Bader <miles@gnu.org>
4037
4038 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
4039
4040 2000-10-25 Gerd Moellmann <gerd@gnu.org>
4041
4042 * window.c (pos_fully_visible_p): Removed.
4043 (Fpos_visible_in_window_p): Use pos_visible_p to determine
4044 if position is visible and/or fully visible.
4045
4046 * lisp.h (pos_visible_p): Add prototype.
4047
4048 * xdisp.c (pos_visible_p): New function.
4049
4050 2000-10-25 Kenichi Handa <handa@etl.go.jp>
4051
4052 * process.c (send_process): If OBJECT is t, it means that the data
4053 is from C string, but we should encode it. Before calling
4054 setup_raw_text_coding_system, be sure to flush out data by the
4055 previous coding system.
4056
4057 2000-10-25 Miles Bader <miles@lsi.nec.co.jp>
4058
4059 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
4060 assignment of startpos to prev when startpos == pos.
4061
4062 * editfns.c (find_field): Set the field stickiness correctly from
4063 overlay fields. Use renamed `text_property_stickiness'.
4064 (text_property_stickiness): Renamed from `char_property_stickiness'.
4065 Only check text properties, not overlays.
4066 * textprop.c (get_char_property_and_overlay): New function.
4067 (Fget_char_property): Use it.
4068 * intervals.h (get_char_property_and_overlay): Add declaration.
4069
4070 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
4071
4072 * keymap.c: Use AREF, ASET and ASIZE macros.
4073 (Fmake_sparse_keymap): Docstring fix.
4074 (synkey): Remove.
4075 (shadow_lookup): Move up.
4076 Handle the case where lookup-key returns an integer.
4077 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
4078 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
4079 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
4080 Simplify/rewrite the keymap-finding code.
4081 Add check for command shadowing, using shadow_lookup.
4082
4083 2000-10-24 Stefan Monnier <monnier@cs.yale.edu>
4084
4085 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
4086 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
4087 a symbol.
4088
4089 2000-10-24 Andrew Innes <andrewi@gnu.org>
4090
4091 * dired.c (directory_files_internal_unwind): New function.
4092 (directory_files_internal): Use it to ensure closedir is called
4093 even if expand-file-name or file-attributes throw, eg. because of
4094 a user interrupt. Also enable immediate_quit while calling
4095 re_search, so that matching can be interrupted as well.
4096
4097 2000-10-24 Andrew Innes <andrewi@gnu.org>
4098
4099 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
4100 NT-Emacs only.
4101 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
4102 so that re_search functions only quit when callers expect them to.
4103
4104 2000-10-24 Kenichi Handa <handa@etl.go.jp>
4105
4106 * regex.c (regex_compile): Change the way of handling a range from
4107 a char less than 256 to a char not less than 256.
4108
4109 2000-10-24 Gerd Moellmann <gerd@gnu.org>
4110
4111 * window.c (size_window): Prevent setting window's width or
4112 height to a negative value (esp. with XSETFASTINT).
4113
4114 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
4115 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
4116 (protect_malloc_state) [GC_MALLOC_CHECK &&
4117 GC_PROTECT_MALLOC_STATE]: New function.
4118 (PROTECT_MALLOC_STATE): New macro.
4119 (__malloc_initialize, morecore, _malloc_internal)
4120 (_free_internal) _realloc_internal): Use it to make _heapinfo
4121 read-only outside of gmalloc.
4122
4123 * keymap.c: Update copyright.
4124
4125 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
4126 a symbol.
4127
4128 2000-10-24 Colin Walters <walters@cis.ohio-state.edu>
4129
4130 * filelock.c (unlock_all_files): Use unlock_file to expand each
4131 buffer's file_truename before trying remove its lock file.
4132
4133 2000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
4134
4135 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
4136 or CRLF, decode EOLs.
4137
4138 2000-10-24 Kenichi Handa <handa@etl.go.jp>
4139
4140 * window.c (Fdisplay_buffer): Fix doc.
4141
4142 2000-10-23 Jason Rumney <jasonr@gnu.org>
4143
4144 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
4145 ASCII font of default fontset on Windows.
4146
4147 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
4148 xterm.c comment below).
4149
4150 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
4151
4152 2000-10-23 Gerd Moellmann <gerd@gnu.org>
4153
4154 * xterm.c (x_connection_closed): Reset handling_signal.
4155
4156 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing null.
4157
4158 2000-10-23 Miles Bader <miles@gnu.org>
4159
4160 * window.c (window_scroll_pixel_based, window_scroll_line_based):
4161 Pass nil for FULLY argument to Fpos_visible_in_window_p to
4162 maintain old behavior.
4163 * minibuf.c (Fminibuffer_complete): Likewise.
4164
4165 2000-10-23 Miles Bader <miles@lsi.nec.co.jp>
4166
4167 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
4168 that when a font can't be exactly centered, it errs up rather than
4169 down.
4170
4171 2000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
4172
4173 * fns.c (Fbase64_decode_string): The decoded result should be unibyte.
4174
4175 2000-10-23 Andrew Choi <akochoi@i-cable.com>
4176
4177 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
4178
4179 * dispnew.c [macintosh]: Include macterm.h.
4180 (init_display) [macintosh]: Initialization for window system.
4181
4182 * emacs.c (main) [macintosh]: Call syms_of_textprop,
4183 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
4184 syms_of_search, x_term_init, and init_keyboard before calling
4185 init_window_once. Also, call syms_of_xmenu.
4186
4187 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
4188 default fontset to Monaco.
4189
4190 * frame.c [macintosh]: Include macterm.h. Remove declarations of
4191 NewMacWindow and DisposeMacWindow.
4192 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
4193 instead of calling NewMacWindow and setting fields of
4194 f->output_data.mac directly. Call init_frame_faces.
4195 (Fdelete_frame) [macintosh]: Remove unused code.
4196 (Fmodify_frame_parameters) [macintosh]: Call
4197 x_set_frame_parameters instead of mac_set_frame_parameters.
4198
4199 * frame.h [macintosh]: Define menu_bar_lines field in struct
4200 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
4201
4202 * keyboard.c [macintosh]: Include macterm.h.
4203 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
4204 and menu_bar_activate_event type events as for X and NT.
4205 (make_lispy_event) [macintosh]: Construct lisp events of type
4206 MENU_BAR_EVENT as for X and NT.
4207
4208 * sysdep.c [macintosh]: Remove declaration for sys_signal.
4209 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
4210 (sys_subshell) [macintosh]: Remove definition entirely.
4211 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
4212 Vwindow_system_version here. Remove initialization of
4213 Vx_bitmap_file_path.
4214 (read_input_waiting): Correct the number of parameters passed to
4215 read_socket_hook.
4216 Move all Macintosh functions to mac/mac.c.
4217
4218 * term.c [macintosh]: Include macterm.h.
4219
4220 * window.c [macintosh]: Include macterm.h.
4221
4222 * xdisp.c [macintosh]: Include macterm.h. Declare
4223 set_frame_menubar and pending_menu_activation.
4224 (echo_area_display) [macintosh]: Do not return if terminal frame
4225 is the selected frame.
4226 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
4227 Allow only the selected frame to set menu bar.
4228 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
4229 calling FRAME_EXTERNAL_MENU_BAR (f).
4230 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
4231
4232 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
4233 and check_x. Declare XCreateGC. Define x_create_gc and
4234 x_free_gc. Initialize font_sort_order.
4235 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
4236 but call x_list_fonts instead of w32_list_fonts.
4237 (Finternal_face_x_get_resource) [macintosh]: Do not call
4238 display_x_get_resource.
4239 (prepare_face_for_display) [macintosh]: Set xgcv.font.
4240 (realize_x_face) [macintosh]: Load the font if it is specified in
4241 ATTRS.
4242 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed to Qt.
4243
4244 2000-10-22 Stefan Monnier <monnier@cs.yale.edu>
4245
4246 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
4247 is nil: since we go to the end of submap anyway, we'd end up
4248 setting nil to nil.
4249 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
4250 doesn't obey autoload.
4251
4252 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
4253
4254 * msdos.c (dos_set_window_size): Update screen dimension variables.
4255
4256 2000-10-21 Jason Rumney <jasonr@gnu.org>
4257
4258 * w32term.c (w32_cache_char_metrics): Double check that font is
4259 really fixed pitch before trusting tmPitchAndFamily.
4260
4261 2000-10-21 Andrew Innes <andrewi@gnu.org>
4262
4263 * w32gui.h (w32_char_font_type): Move enum from w32term.c
4264
4265 * w32term.h: Extern decl for w32_cache_char_metrics.
4266
4267 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
4268
4269 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
4270 (w32_unload_font): Free per_char array if present.
4271
4272 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
4273 cached information in emulated XFontStruct to handle common cases
4274 quickly. Do not allocate XCharStruct for return.
4275 (w32_native_per_char_metric): New function.
4276 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
4277 allocating one.
4278 (x_produce_glyphs): Don't get an HDC. Change calls to
4279 w32_per_char_metric to match arg change above. Remove calls to
4280 free results.
4281 (w32_get_glyph_overhangs): Ditto.
4282 (w32_cache_char_metrics): New function.
4283
4284 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
4285 ($(BLD)/casefiddle.$(O)): Remove compile command.
4286 ($(BLD)/gmalloc.$(O)): Remove compile command.
4287 ($(BLD)/dispnew.obj):
4288 ($(BLD)/keyboard.obj):
4289 ($(BLD)/w32inevt.obj):
4290 ($(BLD)/w32bdf.obj):
4291 ($(BLD)/alloc.obj):
4292 ($(BLD)/buffer.obj):
4293 ($(BLD)/editfns.obj):
4294 ($(BLD)/emacs.obj):
4295 ($(BLD)/fileio.obj):
4296 ($(BLD)/fns.obj):
4297 ($(BLD)/indent.obj):
4298 ($(BLD)/insdel.obj):
4299 ($(BLD)/intervals.obj):
4300 ($(BLD)/minibuf.obj):
4301 ($(BLD)/print.obj):
4302 ($(BLD)/scroll.obj):
4303 ($(BLD)/sysdep.obj):
4304 ($(BLD)/textprop.obj):
4305 ($(BLD)/widget.obj):
4306 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
4307 ($(BLD)/term.obj): Add dependency on dispextern.h.
4308
4309 * makefile.nt ($(BLD)\dispnew.obj):
4310 ($(BLD)\keyboard.obj):
4311 ($(BLD)\w32inevt.obj):
4312 ($(BLD)\w32bdf.obj):
4313 ($(BLD)\alloc.obj):
4314 ($(BLD)\buffer.obj):
4315 ($(BLD)\editfns.obj):
4316 ($(BLD)\emacs.obj):
4317 ($(BLD)\fileio.obj):
4318 ($(BLD)\fns.obj):
4319 ($(BLD)\indent.obj):
4320 ($(BLD)\insdel.obj):
4321 ($(BLD)\intervals.obj):
4322 ($(BLD)\minibuf.obj):
4323 ($(BLD)\print.obj):
4324 ($(BLD)\scroll.obj):
4325 ($(BLD)\sysdep.obj):
4326 ($(BLD)\textprop.obj):
4327 ($(BLD)\widget.obj):
4328 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
4329 ($(BLD)\term.obj): Add dependency on dispextern.h
4330
4331 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
4332
4333 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
4334 with an additional argument of Qt.
4335
4336 2000-10-21 Miles Bader <miles@gnu.org>
4337
4338 * window.c (pos_fully_visible_in_window_p): New function.
4339 (Fpos_visible_in_window_p): Add FULLY argument.
4340 Use pos_fully_visible_in_window_p.
4341 (window_scroll_pixel_based, window_scroll_line_based): Update
4342 calls to Fpos_visible_in_window_p.
4343 * lisp.h (Fpos_visible_in_window_p): Update prototype
4344
4345 2000-10-20 Gerd Moellmann <gerd@gnu.org>
4346
4347 * alloc.c (toplevel): Conditionalize compilation of mem_*
4348 functions differently.
4349
4350 2000-10-20 Jason Rumney <jasonr@gnu.org>
4351
4352 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
4353 mem_init where it used to be. mem_z etc not defined otherwise.
4354
4355 2000-10-20 Gerd Moellmann <gerd@gnu.org>
4356
4357 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
4358 GC_MALLOC_CHECK.
4359 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
4360 structure definition and related variabled to the top of the file.
4361 Include this code when GC_MALLOC_CHECK is defined.
4362 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
4363 register/unregister allocated region.
4364 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
4365 which isn't allocated.
4366 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
4367 something which is already in use.
4368 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
4369 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
4370 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
4371 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
4372
4373 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
4374 _malloc_internal instead of malloc.
4375 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
4376 of free.
4377
4378 2000-10-20 Andrew Innes <andrewi@gnu.org>
4379
4380 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
4381 Windows.
4382 (my_strftime) <macro>: Don't use macro arg list when redefining as
4383 _strftime_copytm.
4384 (my_strftime) <function>: Supply 0 as ut argument.
4385
4386 2000-10-19 Jason Rumney <jasonr@altavista.net>
4387
4388 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
4389 including dispextern.h, as it stops faces from working.
4390
4391 * w32fns.c (Fx_create_frame): Don't bother calling
4392 face-set-after-frame-default since the caller does it for us
4393 anyway. Clean up calls to x_get_arg to be consistent with X.
4394
4395 * w32term.c (x_produce_glyphs): Handle
4396 unibyte_display_via_language_environment correctly.
4397 (w32_draw_box_rect): Fix the calculation of width and height.
4398
4399 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
4400 as it has stopped working.
4401 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
4402 menu-bar.
4403
4404 2000-10-19 Gerd Moellmann <gerd@gnu.org>
4405
4406 * eval.c (skip_debugger): Prevent a compiler warning.
4407 (Fcondition_case): Likewise.
4408 (Fbacktrace_frame): Use a null interactive spec.
4409
4410 2000-10-19 Kenichi Handa <handa@etl.go.jp>
4411
4412 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
4413
4414 2000-10-18 Gerd Moellmann <gerd@gnu.org>
4415
4416 * strftime.c: Sync with glibc, file version 1.78.
4417 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
4418 should no longer be used according to ISO 8601.
4419
4420 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
4421 no map for meta_prefix_char, don't try to use it as a keymap.
4422 Instead, if T_OK is non-zero, look up a default binding, if any,
4423 otherwise, if T_OK is zero, return nil.
4424
4425 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
4426 (x_to_xcolors, png_load): Use x_query_color.
4427
4428 * xterm.c (x_color_cells, x_query_colors, x_query_color):
4429 New functions.
4430 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
4431 which can be slow.
4432 (x_copy_color, x_alloc_lighter_color): Likewise.
4433
4434 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
4435 (x_query_color, x_query_colors): Add prototype.
4436
4437 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
4438 check_string_bytes only if not noninteractive, increase count to 50.
4439
4440 2000-10-18 Miles Bader <miles@lsi.nec.co.jp>
4441
4442 * insdel.c (adjust_markers_for_delete): Handle before-insertion
4443 markers correctly.
4444
4445 2000-10-17 Gerd Moellmann <gerd@gnu.org>
4446
4447 * alloc.c (pure_bytes_used): Renamed from pureptr.
4448 (ALIGN): New macro.
4449 (pure_alloc): New function.
4450 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
4451 Use it.
4452 (Fpurecopy): Use PURE_POINTER_P.
4453
4454 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
4455 PT has moved backward.
4456
4457 * xdisp.c (cursor_row_p): Take continued lines into account.
4458
4459 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
4460 string's size_byte.
4461 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
4462 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
4463 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
4464 string allocated.
4465
4466 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
4467 of selective display off while searching for the next line start.
4468
4469 2000-10-17 Kenichi Handa <handa@etl.go.jp>
4470
4471 * Makefile.in (term.o): Depend on dispextern.h.
4472
4473 2000-10-16 Stefan Monnier <monnier@cs.yale.edu>
4474
4475 * keymap.c (keymap_memberp): Ensure that nil is not a member.
4476
4477 2000-10-16 Gerd Moellmann <gerd@gnu.org>
4478
4479 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
4480 the iterator at the beginning, so that they can be set later on,
4481 for instance in reseat_at_next_visible_line_start, without being
4482 overwritten.
4483
4484 * xfns.c (pbm_format): Add :foreground and :background keywords.
4485 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
4486 (xbm_load): Recognize foreground and background color specifications.
4487
4488 2000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
4489
4490 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
4491
4492 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern declaration.
4493
4494 * msdos.c (IT_set_face): Compare highlighted face with the default
4495 face, and invert colors if these faces' colors are identical.
4496 (Fmsdos_remember_default_colors): Don't swap foreground and
4497 background colors in initial_colors[].
4498 (IT_set_frame_parameters): Don't swap frame's foreground and
4499 background pixels. If ALIST includes "(reverse . t)", swap
4500 foreground-color and background-color properties in frame's
4501 param_alist. If the original frame's param_alist doesn't specify
4502 the colors, store unspecified-fg and unspecified-bg, reversed if
4503 required.
4504
4505 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
4506 the colors are unspecified and reversed, reverse fore- and back-
4507 ground in the returned value.
4508 (Fframe_parameter): Ditto.
4509
4510 2000-10-16 Gerd Moellmann <gerd@gnu.org>
4511
4512 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
4513 get_last_unchanged_at_beg_row.
4514 (find_first_unchanged_at_end_row): Renamed from
4515 get_first_unchanged_at_end_row.
4516 (find_first_unchanged_at_end_row): Convert assertions to
4517 unconditional tests which abort. When looking for a row in
4518 unchanged text, don't go further back than first_text_row.
4519
4520 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
4521 Don't add in the last line's height when deciding if the new
4522 position is below the scroll margin.
4523
4524 2000-10-16 Miles Bader <miles@gnu.org>
4525
4526 * editfns.c (Fconstrain_to_field): Check carefully for field
4527 boundaries if either OLD_POS or NEW_POS has a non-nil field
4528 property, even if they're the same.
4529
4530 2000-10-16 Kenichi Handa <handa@etl.go.jp>
4531
4532 * xterm.c (x_draw_box_rect): Fix the calculation of width and
4533 height for XFillRectangle.
4534
4535 2000-10-15 Stefan Monnier <monnier@cs.yale.edu>
4536
4537 * syntax.c (Fstring_to_syntax): New function extracted from
4538 Fmodify_syntax_entry.
4539 (Fmodify_syntax_entry): Use it and document the ! and | fences.
4540 (skip_chars, Fforward_comment): Remove unused variables.
4541 (syms_of_syntax): Add defsubr for string-to-syntax.
4542 (describe_syntax): Add code for comment and string fences.
4543
4544 2000-10-14 Stefan Monnier <monnier@cs.yale.edu>
4545
4546 * keymap.c (access_keymap): Add AUTOLOAD parameter.
4547 Do the meta->esc mapping. Call get_keyelt before returning.
4548 Start scanning from the second element (the first is always `keymap')
4549 to make it easier to detect when we reach a parent map.
4550 Handle the case of inheriting from a symbol whose function is a map.
4551 (Fkeymap_parent): Also handle the `inherit from symbol' case.
4552 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
4553 (get_keyelt, Flookup_key): Update call to access_keymap.
4554 Remove the meta->esc mappings.
4555 (define_as_prefix): Delete old disabled code.
4556 (menu_item_p): New function.
4557 (where_is_internal_1): Skip over the few remaining menu items.
4558 * lisp.h (access_keymap): Update prototype.
4559 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
4560 Update call to access_keymap.
4561 (follow_key, read_key_sequence): Update calls to access_keymap.
4562 Remove the meta->esc mappings.
4563
4564 2000-10-13 Gerd Moellmann <gerd@gnu.org>
4565
4566 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
4567 with additional argument.
4568
4569 * xdisp.c (cursor_row_p): New function.
4570 (try_cursor_movement, display_line): Use it.
4571
4572 * xdisp.c (append_space): Also save/restore iterator's current
4573 character and its length.
4574
4575 * xdisp.c (init_from_display_pos): Add an assertion.
4576 (handle_stop): Don't set iterator's add_overlay_start.
4577 (handle_invisible_prop): Likewise.
4578 (load_overlay_strings): If text under an overlay is invisible,
4579 take both before- and after-strings into account when the iterator
4580 is positioned either at the start or at the end of the overlay.
4581 (forward_to_next_line_start): Rewritten.
4582 (reseat_at_next_visible_line_start): Rewritten.
4583 (set_iterator_to_next): Add parameter RESEAT_P.
4584
4585 * dispextern.h (struct it): Remove member add_overlay_start.
4586 (set_iterator_to_next): Change prototype.
4587
4588 2000-10-13 Kenichi Handa <handa@etl.go.jp>
4589
4590 * coding.c (code_convert_region): Be sure to initialize
4591 coding->category_idx.
4592 (decode_coding_string): Set coding->src_multibyte and
4593 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
4594 (encode_coding_string): Set coding->src_multibyte and
4595 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
4596
4597 2000-10-12 Stefan Monnier <monnier@cs.yale.edu>
4598
4599 * xfns.c (Fx_create_frame): Don't bother calling
4600 face-set-after-frame-default since the caller does it for us anyway.
4601
4602 2000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
4603
4604 * window.c (coordinates_in_window): Fix detection of vertical line
4605 on character terminals.
4606
4607 2000-10-12 Gerd Moellmann <gerd@gnu.org>
4608
4609 * editfns.c (save_excursion_save): Additionally record the
4610 selected window.
4611 (save_excursion_restore): If buffer was visible in a window, and a
4612 different window was selected, and the old selected window is
4613 still live, restore point in that window.
4614
4615 2000-10-12 Kenichi Handa <handa@etl.go.jp>
4616
4617 * xterm.c (x_produce_glyphs): Handle
4618 unibyte_display_via_language_environment correctly.
4619
4620 * regex.c (regex_compile): Change the way of handling a range from
4621 unibyte char to multibyte char.
4622
4623 * syntax.c (skip_chars): Change the way of handling a range from
4624 unibyte char to multibyte char.
4625
4626 * process.c (read_process_output): Cancel previous change.
4627
4628 2000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
4629
4630 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
4631
4632 * charset.c (Ffind_charset_string): Doc fix.
4633 (Ffind_charset_region): Doc fix.
4634
4635 2000-10-11 Kenichi Handa <handa@mule.m17n.org>
4636
4637 * process.c (read_process_output): Fix previous change. Adjust
4638 multibyteness of text to insert in a buffer by
4639 string_make_unibyte/multibyte instead of Fstring_as_unibyte/multibyte.
4640
4641 2000-10-10 Andreas Schwab <schwab@suse.de>
4642
4643 * alloc.c (mark_object): Remove all workarounds installed on
4644 1993-08-08.
4645
4646 2000-10-10 Kenichi Handa <handa@etl.go.jp>
4647
4648 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before returning.
4649 (base64_encode_1): Make it work for a text of multibyte form.
4650 (Fbase64_decode_region): Allocate sufficient memory for multibyte
4651 case. Don't call str_to_multibyte because base64_decode_1
4652 produces correct multibyte form for eight-bit codes.
4653 (Fbase64_decode_string): Adjusted for the change of base64_decode_1.
4654 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
4655 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
4656 codes.
4657
4658 * charset.h (CHAR_STRING): Optimized for single byte characters.
4659
4660 2000-10-09 Andreas Schwab <schwab@suse.de>
4661
4662 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
4663 -1 after socket is closed, to fall through to error processing.
4664
4665 2000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
4666
4667 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
4668 variables. If ALIST includes foreground-color or
4669 background-color, change also the colors of the default face for
4670 this frame.
4671
4672 2000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
4673
4674 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
4675 them extern (they are defined on xfaces.c).
4676 (syms_of_msdos): Don't intern and don't staticpro
4677 Qbackground_color and Qforeground_color.
4678
4679 2000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
4680
4681 * frame.c (Fframe_parameter): For non-windowed frames, if
4682 f->param_alist says foreground or background color is unspecified,
4683 call tty_color_name to return the color name computed from the
4684 frame's current colors.
4685
4686 2000-10-06 Dave Love <fx@gnu.org>
4687
4688 * terminfo.c (ospeed): Don't declare.
4689
4690 * sysdep.c: Don't include string.h.
4691 (h_errno): Declare conditional also on TRY_AGAIN.
4692
4693 * charset.c (Ffind_charset_string): Doc fix.
4694
4695 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
4696 (Fbase64_decode_region, Fbase64_decode_string): More explicit
4697 error messages.
4698
4699 2000-10-05 Dave Love <fx@gnu.org>
4700
4701 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
4702 position like menu-bar.
4703
4704 2000-10-05 Gerd Moellmann <gerd@gnu.org>
4705
4706 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
4707
4708 * xdisp.c (handle_single_display_prop): Use safe_call1.
4709 (safe_call): Renamed from call_function.
4710 (safe_call1): New function.
4711 (handle_fontified_prop): Use safe_call1 instead of call1.
4712 (safe_eval): Renamed from eval_form.
4713 (safe_eval_handler): Renamed from eval_handler.
4714 (handle_single_display_prop, display_mode_element): Use safe_eval
4715 instead of eval_form.
4716
4717 * xfaces.c (merge_face_heights): Use safe_call instead of
4718 call_function.
4719
4720 * keyboard.c (show_help_echo): Use safe_call instead of
4721 call_function; use safe_eval instead of eval_form.
4722
4723 * lisp.h (safe_call): Renamed from call_function.
4724 (safe_eval): Renamed from eval_form.
4725 (safe_call1): Add prototype.
4726
4727 2000-10-05 Miles Bader <miles@lsi.nec.co.jp>
4728
4729 * xfns.c (image_ascent): Rearrange ascent calculation for the
4730 has-a-font case.
4731
4732 2000-10-04 Stefan Monnier <monnier@cs.yale.edu>
4733
4734 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
4735 (where_is_internal_1): Don't bother ignoring menu-items any more.
4736
4737 2000-10-04 Gerd Moellmann <gerd@gnu.org>
4738
4739 * keyboard.c (update_menu_bindings): New variable.
4740 (parse_menu_item): Use AREF. If update_menu_bindings
4741 is 0, don't update menu bindings.
4742 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
4743
4744 2000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
4745
4746 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
4747 to `mark_object'.
4748
4749 2000-10-02 Stefan Monnier <monnier@cs.yale.edu>
4750
4751 * syntax.c (forw_comment): Match nestedness of ender/starter.
4752 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
4753 (prev_char_comstart_first): Remove.
4754 (back_comment): Check two-char comment markers more carefully
4755 to better handle overlapping cases like *//* or /* */* */ ...
4756 Match nestedness of ender/starter.
4757
4758 2000-10-02 Dave Love <fx@gnu.org>
4759
4760 * config.in (HAVE_GAI_STRERROR): Add undef.
4761
4762 * process.c (Fopen_network_stream): Use it.
4763
4764 * m/alpha.h (NO_REMAP): Don't define.
4765
4766 2000-10-02 Gerd Moellmann <gerd@gnu.org>
4767
4768 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
4769 return with a string converted to an integer or vice versa when
4770 Vmocklisp_arguments is t.
4771 (Fsignal): Likewise. The function can return for `quit'.
4772 (struct gcpro): Declare member `var' to point to a volatile
4773 Lisp_Object.
4774
4775 * eval.c (error): Prevent compiler warning.
4776
4777 2000-09-30 Stefan Monnier <monnier@cs.yale.edu>
4778
4779 * keymap.c (keymap_memberp): New function.
4780 (Fset_keymap_parent): Use it.
4781 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
4782 Use keymap_memberp to avoid creating cycles.
4783 (access_keymap): Use KEYMAPP.
4784
4785 2000-09-30 Gerd Moellmann <gerd@gnu.org>
4786
4787 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
4788 gai_strerror. Make sure xerrno is set if connect fails. Improve
4789 error recovery.
4790
4791 2000-09-29 Jason Rumney <jasonr@gnu.org>
4792
4793 * w32term.c (w32_char_font_type, w32_encode_char)
4794 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
4795 (w32_bdf_per_char_metric): New function.
4796 (w32_per_char_metric): Use it.
4797 (x_draw_glyph_string_background): Always draw background for BDF
4798 glyphs.
4799
4800 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
4801 GDI object which is a scarce resource.
4802
4803 * w32bdf.c (search_file_line): Fix skipping of whitespace.
4804 (get_quoted_string): Fix limit on memchr search.
4805 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
4806 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
4807 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
4808 (get_cached_font_char, cache_char_offset): Use macro
4809 BDF_CODEPOINT_RANGE_COVER_P.
4810 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
4811 (clear_cached_bitmap_slots): New function.
4812 (GET_HEX_VALUE): G-Z, g-z are not hex.
4813 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
4814 (get_bitmap_with_cache): Use new cache implementation.
4815 (create_offscreen_bitmap): New function.
4816 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
4817
4818 * w32term.c (x_produce_glyphs): If the distance from the current
4819 position to the next tab stop is less than a canonical character
4820 width, use the tab stop after that.
4821 (x_draw_glyphs): Handle case START and END are out of bounds more
4822 carefully.
4823 (x_clear_mouse_face): Block/unblock input.
4824 (x_display_and_set_cursor): Don't show a hollow box cursor for
4825 buffers whose cursor_type is nil.
4826
4827 2000-09-29 Gerd Moellmann <gerd@gnu.org>
4828
4829 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar disappears.
4830
4831 * dispextern.h (updating_frame): Declare extern.
4832
4833 2000-09-29 Andreas Schwab <schwab@suse.de>
4834
4835 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
4836
4837 2000-09-29 Gerd Moellmann <gerd@gnu.org>
4838
4839 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
4840 use its function definition.
4841 (tool_bar_items): Likewise.
4842
4843 * lisp.h (fatal): Declare NO_RETURN.
4844
4845 2000-09-29 Kenichi Handa <handa@etl.go.jp>
4846
4847 * keymap.c: Remove the line "#undef NULL".
4848
4849 2000-09-28 Gerd Moellmann <gerd@gnu.org>
4850
4851 * xterm.c (x_make_frame_visible): Try harder to make the frame visible.
4852
4853 2000-09-28 Dave Love <fx@gnu.org>
4854
4855 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
4856
4857 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
4858
4859 * .gdbinit (xreload): Note its need on GNU/Linux.
4860
4861 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
4862 r_alloc, r_alloc_free.
4863
4864 2000-09-28 Kenichi Handa <handa@etl.go.jp>
4865
4866 * syntax.c (skip_chars): Handle negation correctly.
4867
4868 2000-09-27 Gerd Moellmann <gerd@gnu.org>
4869
4870 * xfaces.c (realize_default_face): Call set_lface_from_font_name
4871 with non-zero FORCE_P argument.
4872
4873 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
4874 Add assertions.
4875
4876 * xdisp.c (window_box_height): Add an assertion.
4877
4878 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
4879 tool-bar than is available.
4880 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
4881
4882 2000-09-27 Dave Love <fx@gnu.org>
4883
4884 * s/irix6-5.h: Now works 64-bit. Tidied.
4885
4886 2000-09-26 Gerd Moellmann <gerd@gnu.org>
4887
4888 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
4889 instead of BITS_PER_INT.
4890 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
4891 EMACS_UINT, respectively.
4892 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
4893
4894 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
4895
4896 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
4897
4898 * window.c (freeze_window_starts): Construct last argument for
4899 foreach_window differently.
4900
4901 * xfns.c (x_decode_color): Don't return a Lisp_Object.
4902
4903 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
4904 EMACS_UINT instead of `int' and `unsigned int'.
4905 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
4906
4907 * frame.h (struct frame): Make the `nothing' member of union
4908 output_data an EMACS_INT.
4909
4910 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug hunting.
4911 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
4912 size in the sdata structure.
4913 (SDATA_NBYTES, SDATA_DATA): New macros.
4914 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
4915 differently for the different layout of the sdata structure.
4916 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
4917 in sdata.
4918 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
4919 Check that size recorded in the string size and size recorded in
4920 the sdata structure agree.
4921
4922 2000-09-25 Dave Love <fx@gnu.org>
4923
4924 * buffer.c: Include stdio.h.
4925
4926 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
4927
4928 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
4929
4930 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
4931 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as size_t.
4932 (__malloc_extra_blocks): Declare as __malloc_size_t.
4933
4934 2000-09-25 Gerd Moellmann <gerd@gnu.org>
4935
4936 * alloc.c (mark_image): Use GC_NILP instead of NILP.
4937
4938 * keyboard.c (show_help_echo): Set help_echo_showing_p.
4939 (read_char): If help-echo is showing, preserve the echo area
4940 when redisplaying.
4941
4942 * xdisp.c (help_echo_showing_p): New variable.
4943 (set_message): Reset it to 0.
4944 (init_xdisp): Initialize help_echo_showing_p.
4945
4946 * dispextern.h (help_echo_showing_p): Declare extern.
4947
4948 * config.in: Fix typo in __GNUC_MINOR__.
4949
4950 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
4951
4952 * s/freebsd.h (POSIX_SIGNALS): Define.
4953
4954 * xterm.c (x_clear_mouse_face): Block/unblock input.
4955
4956 2000-09-24 Dave Love <fx@gnu.org>
4957
4958 * fns.c (base64_encode_1): Fix last change.
4959
4960 2000-09-22 Gerd Moellmann <gerd@gnu.org>
4961
4962 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
4963
4964 * xdisp.c (try_window_reusing_current_matrix): More fixes
4965 for the case window has a header-line.
4966
4967 2000-09-22 Dave Love <fx@gnu.org>
4968
4969 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
4970 a doc string.
4971
4972 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
4973
4974 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
4975
4976 2000-09-21 Gerd Moellmann <gerd@gnu.org>
4977
4978 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
4979 for GCC >= 2.5.
4980
4981 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error):
4982 Declare NO_RETURN.
4983
4984 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
4985 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
4986 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
4987 warnings.
4988
4989 * marker.c (byte_char_debug_check): Return void.
4990
4991 * xfns.c (Fx_create_frame): Set default frame parameter value
4992 for tool-bar-lines to 1.
4993
4994 * dispnew.c (scrolling_window): Compare y-positions of rows
4995 equal at the start. Some simplification.
4996
4997 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
4998 reused rows' y-position in the case window has a header-line, and
4999 new window start is greater than old window start.
5000
5001 * process.c (process_sent_to): New variable.
5002 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
5003 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
5004 Declare more parameters volatile.
5005
5006 * lread.c (Vrecursive_load_depth_limit): New variable.
5007 (Fload): Check recursive loads whose recursion depth exceeds
5008 Vrecursive_load_depth_limit.
5009 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
5010
5011 2000-09-20 Gerd Moellmann <gerd@gnu.org>
5012
5013 * fileio.c (Fread_file_name): Doc fix.
5014
5015 * editfns.c (Fmessage_or_box): Doc fix.
5016
5017 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
5018
5019 * xfns.c (xbm_scan): Allow C-style comments.
5020
5021 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
5022 symbols are specified, add color translations to the cache.
5023 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New functions.
5024 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
5025 xpm_cache_color.
5026 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
5027 structures to xpm_init_color_cache.
5028
5029 2000-09-19 Gerd Moellmann <gerd@gnu.org>
5030
5031 * dispnew.c (update_window_line): Make sure to always draw mode-lines.
5032
5033 2000-09-19 Andrew Innes <andrewi@gnu.org>
5034
5035 * makefile.nt (bootstrap-emacs): Don't change directory.
5036
5037 2000-09-19 Kenichi Handa <handa@etl.go.jp>
5038
5039 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
5040
5041 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
5042 If output buffer is too small, signal an appropriated error.
5043
5044 2000-09-18 Dave Love <fx@gnu.org>
5045
5046 * keyboard.c (menu_bar_items, tool_bar_items)
5047 (current_active_maps): Remove redundant get_local_map call.
5048
5049 2000-09-18 Gerd Moellmann <gerd@gnu.org>
5050
5051 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
5052 cursor for buffers whose cursor_type is nil.
5053
5054 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
5055 a feature to implement that is already implemented.
5056 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
5057 warnings.
5058
5059 * xfns.c (x_clear_image_1): New function.
5060 (x_clear_image): Use it.
5061 (x_from_xcolors): Use x_clear_image_1; don't free the image's mask.
5062
5063 * dispnew.c (update_window): Move test for invisible lines
5064 at the top to update_window_line.
5065 (update_window_line): Handle invisible lines here.
5066
5067 * xfns.c (clear_image_cache): Clear current matrices of all
5068 frames sharing an image cache. Block input while freeing
5069 images. Fix timestamp comparison.
5070 (x_clear_image): Also free the mask.
5071
5072 * xfns.c (lookup_image): Block input while loading the image so
5073 that we won't get interrupted in a state where the image isn't yet
5074 set up completely.
5075 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
5076 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
5077 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
5078 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock input.
5079
5080 2000-09-16 Gerd Moellmann <gerd@gnu.org>
5081
5082 * dispnew.c (update_window): Make sure to make desired rows
5083 current even if they are completely invisible at the top
5084 of a window.
5085
5086 2000-09-15 Gerd Moellmann <gerd@gnu.org>
5087
5088 * xfns.c (lookup_image): Build mask before applying an algorithm.
5089 Recognize algorithm `disabled'.
5090 (cross_disabled_images): New variable.
5091 (COLOR_INTENSITY): New macro.
5092 (x_detect_edges): Use COLOR_INTENSITY.
5093 (x_disable_image): New function.
5094 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
5095
5096 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
5097 disabled state, don't apply an image transformation algorithm if
5098 the user specified an image for the disabled state. Use
5099 `:algorithm disabled' for creating a disabled item's image if the
5100 user hasn't specified an image.
5101
5102 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
5103 allocation functions with the XPM lib.
5104 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
5105 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
5106 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
5107 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
5108 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New functions.
5109 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
5110 functions, if possible, because these handle color allocation
5111 failure more gracefully.
5112 (Fimage_mask_p): New function.
5113
5114 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
5115 (Qedge_detection, Qheuristic): New symbols.
5116 (syms_of_xfns): Initialize new symbols.
5117 (lookup_image): Handle `:mask X', `:algorithm emboss', and
5118 `algorithm (edge-detection ...)'.
5119 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
5120 (tiff_format, gif_format, gs_format): Add `:mask'.
5121 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
5122 (GIF_MASK, GS_MASK): New enumerators.
5123 (x_laplace_read_row, x_laplace_write_row): Functions removed.
5124 (emboss_matrix, laplace_matrix): New variables.
5125 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
5126 (x_edge_detection): New functions.
5127 (x_laplace): Rewritten in terms of x_detect_edges.
5128 (x_build_heuristic_mask): If image has a mask, free it.
5129
5130 2000-09-14 Andrew Innes <andrewi@gnu.org>
5131
5132 * makefile.w32-in: Revert to Unix line endings.
5133
5134 2000-09-14 Andrew Innes <andrewi@gnu.org>
5135
5136 * makefile.w32-in: Standardize indentation somewhat.
5137 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
5138 cater for differences between shells.
5139
5140 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
5141
5142 2000-09-14 Gerd Moellmann <gerd@gnu.org>
5143
5144 * xterm.c (x_produce_glyphs): If the distance from the current
5145 position to the next tab stop is less than a canonical character
5146 width, use the tab stop after that.
5147
5148 2000-09-14 Dave Love <fx@gnu.org>
5149
5150 * buffer.c (alloc_buffer_text): Fix xmalloc call.
5151
5152 2000-09-14 Gerd Moellmann <gerd@gnu.org>
5153
5154 * xdisp.c (handle_fontified_prop): While running fontification
5155 functions, bind `fontification-functions' and
5156 `after-change-functions' to nil.
5157
5158 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
5159 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
5160
5161 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
5162
5163 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
5164 USE_MMAP_FOR_BUFFERS.
5165
5166 * insdel.c (make_gap): Use enlarge_buffer_text.
5167
5168 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
5169 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
5170 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
5171 from former r_alloc_* functions in ralloc.c.
5172 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New variables.
5173 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
5174 (mmap_init) [REL_ALLOC_MMAP]: New function.
5175 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
5176 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
5177 BUFFER_FREE.
5178
5179 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
5180 (enlarge_buffer_text): Add prototype.
5181
5182 * ralloc.c: Remove everything having to do with the use of mmap.
5183
5184 2000-09-13 Gerd Moellmann <gerd@gnu.org>
5185
5186 * sound.c (Fplay_sound): Doc fix.
5187
5188 * keyboard.c: Avoid some more compiler warnings.
5189 (parse_tool_bar_item): Ignore cached key bindings.
5190
5191 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
5192 and allocation of Lisp data.
5193
5194 2000-09-12 Gerd Moellmann <gerd@gnu.org>
5195
5196 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
5197 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
5198 defaults first.
5199
5200 * lread.c (Fload): Put code checking for recursive loads in #if 0.
5201
5202 2000-09-12 Miyashita Hisashi <himi@meadowy.org>
5203
5204 * ccl.c: Comment fixed.
5205 (MAX_MAP_SET_LEVEL): Increased to 30.
5206 (PUSH_MAPPING_STACK): Enclose with do-while block.
5207 (POP_MAPPING_STACK): Likewise.
5208 (stack_idx_of_map_multiple): New variable.
5209 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
5210 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
5211 call the corresponding CCL program by CCL_CALL_FOR_MAP_INSTRUCTION.
5212 (ccl_driver) <CCL_MapSingle>: Likewise.
5213 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
5214 with the case where looking up process reaches to the end of
5215 map-set, and call CCL programs as the above change.
5216
5217 2000-09-11 Gerd Moellmann <gerd@gnu.org>
5218
5219 * xfns.c (png_load, jpeg_load): Declare some variables volatile
5220 that might be clobbered by longjmp.
5221 (check_x_display_info, x_decode_color, create_frame_xic)
5222 (Fx_display_backing_store, Fx_display_visual_class)
5223 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler warnings.
5224
5225 * lread.c (init_lread): Set Vloads_in_progress to nil.
5226 (Fload): Show list of recursively loaded files, when signaling an
5227 error.
5228
5229 * lread.c (Vloads_in_progress): New variable.
5230 (record_load_unwind): New function.
5231 (Fload): Check for recursive loads.
5232 (syms_of_lread): Initialize Vloads_in_progress.
5233 (read_integer, read1): Avoid some compiler warnings.
5234
5235 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
5236 compiler warnings.
5237
5238 2000-09-11 Miles Bader <miles@gnu.org>
5239
5240 * editfns.c (Fbuffer_string): Doc fix.
5241
5242 2000-09-10 Gerd Moellmann <gerd@gnu.org>
5243
5244 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
5245
5246 2000-09-09 Ken Raeburn <raeburn@gnu.org>
5247
5248 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
5249 whether to include other header files.
5250
5251 2000-09-09 Gerd Moellmann <gerd@gnu.org>
5252
5253 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
5254 by Fmemq as a boolean.
5255
5256 2000-09-08 Stefan Monnier <monnier@cs.yale.edu>
5257
5258 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
5259
5260 2000-09-08 Gerd Moellmann <gerd@gnu.org>
5261
5262 * ralloc.c (mmap_fd): Remove initializer which can make it
5263 read-only in a dumped Emacs.
5264 (mmap_fd_1): New variable.
5265 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
5266 restore it from there.
5267 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
5268 unconditionally so that mmap_fd can be initialized there.
5269 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
5270 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
5271 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
5272
5273 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
5274
5275 * xdisp.c (dump_glyph_row): Fix printf format string.
5276 (display_line, move_it_in_display_line_to): Avoid compiler warnings.
5277
5278 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
5279
5280 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
5281 inheritance.
5282
5283 * xdisp.c (try_window_id): When trying to locate cursor in
5284 unchanged rows at the top, handle the case that we can't find it.
5285
5286 * xterm.c (x_draw_glyphs): Handle case START and END are out
5287 of bounds more carefully.
5288
5289 2000-09-08 Dave Love <fx@gnu.org>
5290
5291 * s/sol2.h (REL_ALLOC_MMAP): Define.
5292 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
5293
5294 * ralloc.c: Don't include string.h (redundant).
5295 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
5296 [!MAP_ANON]: Include fcntl.h.
5297 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
5298 (r_alloc, r_re_alloc, r_alloc_free)
5299 (mmap_enlarge, mmap_set_vars): Use it.
5300 (r_alloc_init_fd): New function.
5301 (__morecore) [SYSTEM_MALLOC]: Don't declare.
5302 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
5303 malloc type.
5304
5305 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
5306 Remove vm-limit.o.
5307
5308 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
5309 change to __NetBSD__.
5310
5311 2000-09-08 Kenichi Handa <handa@etl.go.jp>
5312
5313 * search.c (compile_pattern): Check the multibyteness of cached
5314 string and PATTERN.
5315
5316 2000-09-08 Miles Bader <miles@gnu.org>
5317
5318 * xfaces.c (default_face_vector): Function removed.
5319 (Finternal_merge_in_global_face): Restore old global/local
5320 attribute override order. Use inline loop instead of calling
5321 default_face_vector.
5322
5323 2000-09-07 Gerd Moellmann <gerd@gnu.org>
5324
5325 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
5326 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
5327 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
5328 where necessary, in case POINTER_TYPE is `void'.
5329
5330 2000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
5331
5332 * frame.c (make_terminal_frame): Initialize frame foreground and
5333 background colors to unspecified, for the initial instance of an
5334 MSDOS frame.
5335
5336 2000-09-07 Gerd Moellmann <gerd@gnu.org>
5337
5338 * ralloc.c (mmap_find): Fix overlap computation.
5339 (mmap_enlarge): Compute nbytes before trying to find an
5340 overlapping region.
5341
5342 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
5343 instead of `!='.
5344
5345 * lread.c (syms_of_lread): Change value of regexp
5346 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
5347
5348 * xmenu.c (xdialog_show): When looking up the selection in
5349 menu_items, take `quote' boundaries into account; this corresponds
5350 to a nil ITEM in x-popup-dialog.
5351
5352 2000-09-07 Kenichi Handa <handa@etl.go.jp>
5353
5354 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
5355 not 0x81.
5356 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
5357
5358 * coding.c (encode_coding_sjis_big5): Use translation table for
5359 encoding, not decoding. Fix the handling of latin-jisx0201.
5360 Check for the charset katakana-jisx0201 too.
5361 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
5362 (detect_coding_sjis): Check the byte sequence more rigidly.
5363
5364 2000-09-07 Gerd Moellmann <gerd@gnu.org>
5365
5366 * xfaces.c (Vparam_value_alist): New variable.
5367 (syms_of_xfaces): Initialize it.
5368 (Finternal_set_lisp_face_attribute): Avoid more consing.
5369
5370 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
5371 specially.
5372 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
5373 (Qbackground_mode): New variable.
5374 (syms_of_frame_1): Initialize Qbackground_mode.
5375
5376 * lisp.h (Qdisplay): Declare extern.
5377
5378 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
5379 change face on all frames, and change the default for new frames.
5380
5381 2000-09-07 Dave Love <fx@gnu.org>
5382
5383 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
5384
5385 2000-09-07 Kenichi Handa <handa@etl.go.jp>
5386
5387 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
5388
5389 * charset.c: Include composite.h
5390 (lisp_string_width): New function.
5391 (Fstring_width): Call lisp_string_width instead of strwidth.
5392
5393 * Makefile.in (charset.o): Depends on composite.h.
5394
5395 * process.c (read_process_output): Before inserting the decoded
5396 text in the buffer, adjust the multibyteness.
5397
5398 2000-09-06 Gerd Moellmann <gerd@gnu.org>
5399
5400 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
5401 buffer's text buffer is null, map new memory.
5402
5403 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
5404 POINTER_TYPE and size_t.
5405 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
5406 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
5407 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
5408 [REL_ALLOC_MMAP]: New macros.
5409 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
5410 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
5411 [REL_ALLOC_MMAP]: New functions.
5412
5413 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
5414 before and after unexec.
5415
5416 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
5417 text buffers if necessary.
5418
5419 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
5420 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
5421 in prototypes.
5422
5423 * config.in (HAVE_MMAP): Add #undef.
5424
5425 2000-09-05 Gerd Moellmann <gerd@gnu.org>
5426
5427 * frame.c (Qdisplay_type): New variable.
5428 (syms_of_frame_1): Initialize it.
5429 (Fframe_parameter): New function that avoids consing.
5430 (syms_of_frame): Defsubr it.
5431
5432 * buffer.c (Fother_buffer): Consider buffers as invisible when
5433 they are displayed in a window on an invisible frame.
5434
5435 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
5436 get-largest-window always return nil.
5437
5438 2000-09-04 Gerd Moellmann <gerd@gnu.org>
5439
5440 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
5441 variable; recognize Emacs 19 elc files.
5442
5443 2000-09-04 Miles Bader <miles@gnu.org>
5444
5445 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
5446 before initially popping up the menu, so the menu doesn't flash
5447 when the face settings are significantly different from the defaults.
5448
5449 2000-09-04 Stefan Monnier <monnier@cs.yale.edu>
5450
5451 * regex.c (WIDE_CHAR_SUPPORT): New macro.
5452 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
5453 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
5454 (BIT_UNIBYTE): Remove.
5455 (re_match_2_internal): Delete corresponding code and streamline the
5456 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
5457 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
5458 (re_wctype_t): New type.
5459 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
5460 (regex_compile): Use them and fix handling of overly long char classes.
5461
5462 2000-09-03 Andrew Innes <andrewi@gnu.org>
5463
5464 * makefile.w32-in: Change to DOS line endings.
5465
5466 * s/ms-w32.h (ORDINARY_LINK): New define.
5467
5468 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
5469 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
5470
5471 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
5472 (distclean): Delete them here instead.
5473
5474 * w32proc.c (compare_env): Convert to uppercase for comparison,
5475 not lowercase, to match how the native Windows shell works.
5476
5477 2000-09-03 Jason Rumney <jasonr@gnu.org>
5478
5479 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
5480 CVS changes the line-ends when checking in/out on DOS/Windows.
5481
5482 * makefile.nt (emacs): Do not change directory to run temacs, as
5483 the load-path is set relative to current directory.
5484
5485 2000-09-03 Miles Bader <miles@gnu.org>
5486
5487 * xterm.c (x_alloc_lighter_color_for_widget): New function.
5488
5489 2000-09-02 Gerd Moellmann <gerd@gnu.org>
5490
5491 * xdisp.c (redisplay_mode_lines): New function.
5492 (display_mode_lines): Return number of mode lines displayed.
5493 (echo_area_display): Use redisplay_mode_lines to draw garbaged
5494 mode lines. Don't temporarily bind redisplay-dont-pause to t.
5495
5496 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
5497 string.h and strings.h.
5498 (index) [HAVE_INDEX]: Add prototype.
5499
5500 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
5501 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
5502
5503 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
5504 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
5505
5506 2000-09-01 Gerd Moellmann <gerd@gnu.org>
5507
5508 * lread.c (read1): Accept `?' as symbol constituent, for
5509 compatiblity with XEmacs.
5510
5511 2000-08-31 Stefan Monnier <monnier@cs.yale.edu>
5512
5513 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
5514 (struct re_pattern_buffer): Remove newline_anchor.
5515 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
5516 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
5517 (re_max_failures, fail_stack): Use size_t rather than unsigned.
5518 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
5519 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
5520 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
5521 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
5522 Get rid of references to newline_anchor.
5523 (regcomp): Allocate and precompute a fastmap.
5524
5525 2000-08-31 Gerd Moellmann <gerd@gnu.org>
5526
5527 * lread.c (openp): GCPRO local variable `filename'.
5528
5529 2000-08-30 Stefan Monnier <monnier@cs.yale.edu>
5530
5531 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
5532
5533 * regex.c: Merge some changes from GNU libc. Add prototypes.
5534 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
5535 Use memcmp and memcpy instead of bcopy and bcmp.
5536 (init_syntax_once): Use ISALNUM.
5537 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
5538 (REG_UNSET_VALUE): Remove. Use NULL instead.
5539 (REG_UNSET, re_match_2_internal): Use NULL.
5540 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
5541 New macros.
5542 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
5543 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
5544 (regex_compile): In handle_interval, return an error rather than try to
5545 unfetch the interval if we can't find the closing brace.
5546 Obey the RE_NO_GNU_OPS syntax bit.
5547 (TOLOWER): New macro.
5548 (regcomp): Use it.
5549 (regexec): Allocate regs.start and regs.end as one block.
5550
5551 2000-08-30 Gerd Moellmann <gerd@gnu.org>
5552
5553 * xdisp.c (echo_area_display): Check display_completed instead
5554 of calling detect_input_pending.
5555
5556 * dispnew.c (update_frame): Only set display_completed here; move
5557 the update_begin and update_end calls here from update_frame_1.
5558 (update_frame_1): Don't set display_completed here, don't call
5559 update_begin/update_end.
5560
5561 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
5562 instead of store_frame_param.
5563
5564 2000-08-29 Gerd Moellmann <gerd@gnu.org>
5565
5566 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
5567 desired window matrix hasn't been displayed, use the current row
5568 instead. Make sure that only those frame rows are updated for
5569 which there exists a corresponding enabled desired row.
5570
5571 2000-08-29 Miles Bader <miles@gnu.org>
5572
5573 * xfaces.c (default_face_vector): New function.
5574 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
5575
5576 2000-08-29 Gerd Moellmann <gerd@gnu.org>
5577
5578 * lread.c (openp): Prevent temporary string passed to
5579 Ffile_readable_p from being garbage collected.
5580
5581 2000-08-28 Dave Love <fx@gnu.org>
5582
5583 * keymap.c (store_in_keymap): Add `static' to declaration.
5584
5585 2000-08-28 Gerd Moellmann <gerd@gnu.org>
5586
5587 * emacs.c, callint.c, doc.c, editfns.c
5588 (toplevel) [HAVE_STRING_H]: Include string.h.
5589 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
5590 (index): Remove prototypes which might conflict with non-standard
5591 definitions of index/strchr.
5592
5593 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
5594 (rindex): Define only if !HAVE_RINDEX.
5595
5596 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
5597
5598 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
5599
5600 2000-08-28 Miles Bader <miles@gnu.org>
5601
5602 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
5603 made inconsistent by a font-related attribute in FROM.
5604 (merge_face_inheritance): Add function comment.
5605
5606 2000-08-28 Kenichi Handa <handa@etl.go.jp>
5607
5608 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
5609 the 4th arg (PREV_EVENT) Qt to suppress input method.
5610
5611 2000-08-27 Stefan Monnier <monnier@cs.yale.edu>
5612
5613 * regex.c: Indent cpp directives and remove parens after `defined'.
5614 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
5615 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
5616 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
5617 (re_compile_pattern): Use size_t for length.
5618 (init_syntax_once): Move to a better place.
5619 * regex.h: Merge changes from GNU libc. Indent cpp directives.
5620 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
5621
5622 * syntax.c (back_comment): Detect cases where a comment-starter is
5623 actually inside another comment as in: /* a // b */ c // d \n.
5624 Make it clear that `comstart_pos' is unused for nested comments.
5625
5626 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
5627 (KEYMAPP): New macro.
5628 (Fkeymap_parent, Fset_keymap_parent): Use it.
5629 (fix_submap_inheritance): Mark it static.
5630 (define_as_prefix, describe_buffer_bindings, describe_command)
5631 (describe_translation, describe_map): Complete prototypes.
5632
5633 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
5634
5635 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
5636 to better match the key-lookup behavior.
5637
5638 2000-08-27 Gerd Moellmann <gerd@gnu.org>
5639
5640 * xfaces.c (lface_fully_specified_p): Handle :inherit.
5641 (Finternal_set_lisp_face_attribute): Fix typo in error message.
5642
5643 2000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
5644
5645 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
5646 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
5647 (xterm.o): Depend on coding.h
5648
5649 2000-08-26 Kenichi Handa <handa@etl.go.jp>
5650
5651 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
5652 the corresponding '#endif'.
5653
5654 2000-08-26 Miles Bader <miles@gnu.org>
5655
5656 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
5657 * xfaces.c (QCinherit): New variable.
5658 (syms_of_xfaces): Initialize it.
5659 (LFACE_INHERIT): New macro.
5660 (Finternal_get_lisp_face_attribute)
5661 (merge_face_vector_with_property)
5662 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
5663 (check_lface_attrs): Allow new types of face height. Check
5664 inherit attribute.
5665 (CYCLE_CHECK): New macro.
5666 (merge_face_inheritance): New function.
5667 (merge_face_vectors): Merge inherited faces too. Add F and
5668 CYCLE_CHECK arguments.
5669 (merge_face_vector_with_property, Finternal_merge_in_global_face)
5670 (lookup_named_face, lookup_derived_face, realize_named_face)
5671 (face_at_string_position, face_at_buffer_position): Supply
5672 new F and CYCLE_CHECK arguments to merge_face_vectors.
5673 (merge_face_heights): New function.
5674 (merge_face_vectors, merge_face_vector_with_property)
5675 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
5676 handle relative face heights.
5677 (lface_same_font_attributes_p): Compare heights using EQ.
5678
5679 2000-08-26 Kenichi Handa <handa@etl.go.jp>
5680
5681 * charset.c (char_to_string): Check the character validity.
5682 (char_valid_p): If C is not less than MAX_CHAR, be sure to return 0.
5683
5684 2000-08-25 Stefan Monnier <monnier@cs.yale.edu>
5685
5686 * regex.c (PUSH_FAILURE_COUNT): New macro.
5687 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
5688 Handle popping of a register's or a counter's data.
5689 (POP_FAILURE_POINT): Use the new name.
5690 (re_match_2_internal): Push counter data on the stack for succeed_n,
5691 jump_n and set_number_at and remove misleading dead code in succeed_n.
5692
5693 2000-08-25 Gerd Moellmann <gerd@gnu.org>
5694
5695 * xdisp.c (redisplay_internal): If considering all windows on all
5696 frames, update the display for each frame as soon as possible,
5697 instead of first building all desired matrices for all frames, and
5698 then updating them all.
5699 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
5700
5701 2000-08-24 Gerd Moellmann <gerd@gnu.org>
5702
5703 * bytecode.c (mark_byte_stack): Add a comment.
5704
5705 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
5706 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
5707 a graphical frame.
5708
5709 2000-08-24 Kenichi Handa <handa@etl.go.jp>
5710
5711 * minibuf.c (do_completion): Always use compare-string, not
5712 string-equal because the latter doesn't pay attention to
5713 multibyteness of strings.
5714
5715 * process.c (create_process): Don't setup raw-text coding here.
5716 (Fopen_network_stream): Don't set coding->src_multibyte and
5717 coding->dst_multibyte here.
5718 (read_process_output): For process filter, return unibyte string
5719 if default-enable-multibyte-characters is nil.
5720 (send_process): If OBJECT is multibyte text, be sure to encoded it
5721 by the specified coding system for the process. Otherwise, setup
5722 raw-text coding.
5723 (init_process): Don't initialize default-process-coding-system here.
5724
5725 2000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
5726
5727 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
5728 <scroll-down-aggressively>: Likewise.
5729
5730 2000-08-23 Kenichi Handa <handa@etl.go.jp>
5731
5732 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
5733 zero. Set coding->produced_char correctly.
5734
5735 2000-08-22 Andrew Innes <andrewi@gnu.org>
5736
5737 * makefile.w32-in: New file.
5738
5739 * unexw32.c (unexec): Ignore old_name, and use the actual location
5740 of the current executable instead. Base new_name on this.
5741
5742 * w32proc.c (create_child): Remove reference to security
5743 descriptor, which isn't needed and doesn't compile with mingw32.
5744
5745 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5746 up dllimport attributes.
5747 (x_update_window_end): Update prototype.
5748
5749 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
5750 extern, which screws up dllimport attributes.
5751
5752 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5753 up dllimport attributes.
5754
5755 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
5756 screws up dllimport attributes.
5757
5758 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5759 up dllimport attributes.
5760 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
5761 screws up dllimport attributes.
5762
5763 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5764 up dllimport attributes.
5765
5766 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
5767 screws up dllimport attributes.
5768
5769 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
5770 screws up dllimport attributes.
5771
5772 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5773 up dllimport attributes.
5774
5775 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
5776 unnecessary extern, which screws up dllimport attributes.
5777 (main): Ditto.
5778
5779 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5780 up dllimport attributes.
5781
5782 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
5783 unnecessary extern, which screws up dllimport attributes.
5784
5785 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
5786 screws up dllimport attributes.
5787
5788 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5789 up dllimport attributes.
5790
5791 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
5792
5793 * w32bdf.c (search_file_line):
5794 (set_bdf_font_info):
5795 (seek_char):
5796 (w32_get_bdf_glyph):
5797 (w32_BDF_to_x_font): Fix compile warnings.
5798
5799 * w32menu.c: Include keyboard.h before frame.h. Fix compile warnings.
5800
5801 * w32select.c: Include keyboard.h before frame.h.
5802
5803 * w32fns.c (max): Define macro.
5804 (JOHAB_CHARSET): Define if not known.
5805 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
5806 (Fx_show_tip): Synch with X version.
5807
5808 * w32xfns.c: Include keyboard.h before frame.h.
5809
5810 * w32fns.c: Include keyboard.h before frame.h.
5811
5812 * w32term.c: Include keyboard.h before frame.h.
5813
5814 * fontset.c: Include keyboard.h before frame.h.
5815
5816 * w32inevt.c: Include keyboard.h before frame.h.
5817 (MOUSE_MOVED): Define if not known.
5818
5819 * minibuf.c: Include keyboard.h before frame.h.
5820
5821 * keyboard.c: Include keyboard.h before frame.h.
5822
5823 * indent.c: Include keyboard.h before frame.h.
5824
5825 * dispnew.c: Include keyboard.h before frame.h.
5826
5827 * buffer.c: Include keyboard.h before frame.h.
5828
5829 * alloc.c: Include keyboard.h before frame.h.
5830
5831 * print.c: Include keyboard.h before frame.h.
5832
5833 * process.c: Include keyboard.h before frame.h.
5834
5835 * scroll.c: Include keyboard.h before frame.h.
5836
5837 * sysdep.c: Include keyboard.h before frame.h.
5838
5839 * term.c: Include keyboard.h before frame.h.
5840
5841 * window.c: Include keyboard.h before frame.h.
5842
5843 * xdisp.c: Include keyboard.h before frame.h.
5844 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
5845
5846 * frame.c: Include keyboard.h before frame.h.
5847
5848 * w32heap.h: Undefine min, max.
5849
5850 * w32gui.h: Undefine min, max.
5851
5852 * unexw32.c: Change PUCHAR to PCHAR.
5853 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
5854 (relocate_offset):
5855 (get_section_info):
5856 (copy_executable_and_dump_data): Remove unnecessary static defs.
5857 (copy_executable_and_dump_data): Fix compile warnings.
5858
5859 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
5860
5861 * w32console.c (min): Define macro.
5862 (clear_frame, write_glyphs): Fix compile warning.
5863
5864 * w32proc.c (compare_env):
5865 (find_child_console): Fix compile warning.
5866
5867 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
5868 sys_errlist instead of _sys_errlist.
5869 (get_emacs_configuration_options): New function.
5870
5871 * s/ms-w32.h (sys_nerr): Provide default definition.
5872 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
5873 name with _ prepended.
5874 (NSIG): Define if not known.
5875 (get_emacs_configuration): Provide extern declaration.
5876 (get_emacs_configuration_options): Provide extern declaration.
5877 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
5878
5879 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
5880 (map_w32_filename):
5881 (read_unc_volume): Fix compile warning.
5882
5883 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
5884 definitions from being used.
5885
5886 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
5887
5888 * w32.c (unc_volume_file_attributes):
5889 (open_unc_volume): Make arg const.
5890
5891 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
5892 (read_input_waiting): Remove excess parameter.
5893
5894 * w32.c (init_environment): Call _access.
5895 (check_windows_init_file): Call _close.
5896 (init_user_info): Call _putenv.
5897 (init_environment): Call _putenv and _strdup.
5898 (init_ntproc): Reset volume info cache on startup.
5899
5900 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
5901 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
5902 cannot override the CRT malloc.
5903
5904 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
5905 (LINK_FLAGS): Append to original value of LINK_FLAGS.
5906
5907 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
5908 unless we are linking with a static CRT.
5909 (RVA_TO_PTR): Cast result to unsigned char*.
5910
5911 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
5912 (add_volume_info): Use xstrdup.
5913
5914 2000-08-22 Stefan Monnier <monnier@cs.yale.edu>
5915
5916 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
5917 (do_completion, Fminibuffer_complete_word): Use it.
5918 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
5919 var so it can take non-boolean values.
5920
5921 2000-08-21 Gerd Moellmann <gerd@gnu.org>
5922
5923 * editfns.c (find_field): Formatting changes.
5924 (toplevel): Some old-style function forward declarations
5925 changed to prototypes, some new protypes added, some functions
5926 made static.
5927
5928 * lisp.h (set_time_zone_rule): Add prototype.
5929 (use_dialog_box): External declaration.
5930
5931 * keyboard.c (gen_help_event): Add parameter SIZE.
5932 (kbd_buffer_events_waiting): Slightly rewritten.
5933 (clear_event): New function.
5934 (kbd_buffer_get_event): Use it, and clear the input_events of
5935 HELP_EVENTs.
5936 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
5937 don't fill the newly created array with nils.
5938 (toplevel): Convert some old-style function forward declarations
5939 to prototypes.
5940
5941 * keyboard.h (gen_help_event): Change prototype.
5942
5943 * xterm.c (XTread_socket): Change calls to gen_help_event.
5944
5945 * w32term.c (w32_read_socket): Change calls to gen_help_event.
5946
5947 * eval.c (Fmacroexpand): Doc fix.
5948
5949 2000-08-20 Jason Rumney <jasonr@gnu.org>
5950
5951 * w32term.h (x_display_info_for_display): Remove as this function
5952 does not exist on W32.
5953
5954 * w32term.c (help_echo_window): New variable.
5955 (syms_of_w32term): staticpro it.
5956 (note_mode_line_highlight): Set it.
5957 (XTextExtents16): Removed as there is no equivalent on W32.
5958 (x_compute_glyph_string_overhangs): Incomplete body removed, as
5959 the X way of doing this will not work for W32.
5960 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
5961 (x_draw_image_foreground): Avoid drawing outside of the clip area
5962 when image doesn't have a mask.
5963 (note_mouse_highlight): Process overlays in the right order of
5964 priority. Set help_echo_window.
5965 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
5966 because that's more visible for large images.
5967
5968 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
5969 name to single_keymap_panes.
5970 (w32_menu_show): Set wv->title when dealing with titles.
5971 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
5972
5973 2000-08-21 Miles Bader <miles@gnu.org>
5974
5975 * minibuf.c (do_completion): Try again if we rewrite the input
5976 string, but no completion was done, so that any completion message
5977 will be correct.
5978
5979 2000-08-20 Gerd Moellmann <gerd@gnu.org>
5980
5981 * xfaces.c (lface_equal_p): Compare strings differently.
5982 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
5983 (realize_tty_face): Use them.
5984 (syms_of_xfaces): Initialize new variables.
5985 (map_tty_color): New function, extracted from realize_tty_face.
5986 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
5987 foreground or background color, store the new color name in the
5988 realized face; previous code trying to do this had no effect.
5989 (realize_tty_face): Use map_tty_color.
5990 (Fclear_face_cache): Set face_change_count and ensure thorough
5991 redisplay.
5992
5993 2000-08-19 Gerd Moellmann <gerd@gnu.org>
5994
5995 * undo.c (record_first_change, record_marker_adjustment): Don't
5996 use XBUFFER on last_undo_buffer which might not be a buffer.
5997
5998 2000-08-18 Kenichi Handa <handa@etl.go.jp>
5999
6000 * coding.c (decode_coding_string): Set members consumed,
6001 consumed_char, produced, produced_char of *coding correctly. If
6002 decode_coding doesn't consume any byte, don't try anymore.
6003 (encode_coding_string): Likewise.
6004
6005 2000-08-18 Gerd Moellmann <gerd@gnu.org>
6006
6007 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
6008 conditional have void type, for Standard C compilers.
6009
6010 * xdisp.c (redisplay_internal): Compare windows for equality with
6011 EQ, instead of applying XWINDOW to something that might not
6012 be a window.
6013
6014 2000-08-18 Kenichi Handa <handa@etl.go.jp>
6015
6016 * fontset.c (Finternal_char_font): Search only the selected frame
6017 for a window of the current buffer.
6018
6019 2000-08-18 Gerd Moellmann <gerd@gnu.org>
6020
6021 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
6022 Lisp_Objects.
6023
6024 * keyboard.c (kbd_buffer_get_event): Handle the case that the
6025 second half of a HELP_EVENT is found at the start of kbd_buffer.
6026
6027 2000-08-18 Miles Bader <miles@gnu.org>
6028
6029 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
6030
6031 * editfns.c (save_restriction_save): Rewrite to use markers.
6032 (save_restriction_restore): Rewrite to understand new form of data
6033 saved by save_restriction_save.
6034 (Fsave_restriction): Remove cautionary note in doc-string.
6035
6036 2000-08-17 Gerd Moellmann <gerd@gnu.org>
6037
6038 * fileio.c (build_annotations): Add a comment explaining the
6039 return value of format-annotate-function. Replace a spurious call
6040 to Flength with a CONSP test. Call format-annotate-function with
6041 a fifth arg specifying how many times the function is been called
6042 in a row, to let it choose temporary buffers appropriately.
6043
6044 2000-08-17 Dave Love <fx@gnu.org>
6045
6046 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
6047 declare make_temp_name twice.
6048
6049 * lread.c: Prototype readevalloop, load_unwind, load_descriptor_unwind.
6050 (unreadpure): Give it an arg.
6051
6052 * unexalpha.c: Prototype fatal_unexec, mark_x,
6053 update_dynamic_symbols. Declare unexec as void.
6054
6055 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
6056 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
6057
6058 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
6059 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on DOUG_LEA_MALLOC.
6060
6061 * alloca.c: Use #error.
6062 [POINTER_TYPE]: Use it.
6063
6064 * eval.c (Fdefvar): Doc fix.
6065
6066 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
6067 INITIALIZE_INTERVAL.
6068
6069 * buffer.h: Avoid DECLARE_INTERVALS.
6070
6071 * config.in: Add size_t.
6072
6073 2000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
6074
6075 * w16select.c (set_clipboard_data): If there's not enough memory
6076 to put text into clipboard, return 1, as Fw16_set_clipboard_data
6077 expects. In case of other failures, return 3.
6078 (system_error_msg): New error message.
6079 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
6080 system_error_msg.
6081
6082 2000-08-16 Gerd Moellmann <gerd@gnu.org>
6083
6084 * term.c (write_glyphs): Also turn off inverse video after turning
6085 off other appearances in case TS_exit_attribute_mode is not equal
6086 to TS_end_standout_mode.
6087 (insert_glyphs): Turn inverse video on/off for each run of glyphs
6088 with the same face.
6089 (turn_off_face): Reset standout_mode only if
6090 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
6091 is equal to TS_end_standout_mode.
6092
6093 2000-08-16 Kenichi Handa <handa@etl.go.jp>
6094
6095 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
6096 sequence at the end of the source block.
6097
6098 * ccl.c (Fccl_program_p): Docstring modified.
6099 (Fccl_execute): Likewise.
6100 (Fccl_execute_on_string): Likewise.
6101
6102 2000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
6103
6104 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
6105
6106 2000-08-16 Kenichi Handa <handa@etl.go.jp>
6107
6108 The following changes are mainly to fix bugs of
6109 encode/decode-coding-string failing if encoding/decoding return
6110 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
6111 variable conversion_buffer.
6112
6113 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
6114 decrement dst_end to avoid buffer overflow in the later call of
6115 string_as_multibyte
6116
6117 * coding.h (conversion_buffer_size, conversion_buffer)
6118 (get_conversion_buffer): Extern deleted.
6119
6120 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
6121 (conversion_buffer, conversion_buffer_size): Variables deleted.
6122 (get_conversion_buffer): Function deleted.
6123 (struct conversion_buffer): New structure.
6124 (MAX_ALLOCA): New macro.
6125 (allocate_conversion_buffer): New macro.
6126 (extend_conversion_buffer, free_conversion_buffer): New functions.
6127 (ccl_coding_driver): Set coding->result.
6128 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
6129 this is the last block of source.
6130 (encode_coding): Likewise. Handle the source block as the last
6131 one only when the whole source text is consumed.
6132 (decode_coding_string): Handle the case that the output buffer is
6133 too small to decode the whole source text. Use
6134 allocate_conversion_buffer, extend_conversion_buffer and
6135 free_conversion_buffer, not get_conversion_buffer.
6136 (encode_coding_string): Likewise.
6137 (init_coding): Function deleted.
6138 (init_coding_once): Delete code to initialize conversion_buffer_size.
6139
6140 * emacs.c (main): Don't call init_coding.
6141
6142 * msdos.c (IT_write_glyphs): Use a locally declared conversion_buffer.
6143
6144 * term.c (write_glyphs): Use a locally declared conversion_buffer.
6145 (insert_glyphs): Likewise.
6146
6147 * w32console.c (write_glyphs): Use a locally declared
6148 conversion_buffer.
6149
6150 2000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
6151
6152 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
6153 member of display_info is NULL.
6154
6155 2000-08-15 Gerd Moellmann <gerd@gnu.org>
6156
6157 * alloc.c (compact_small_strings): Use safe_bcopy, add an assertion.
6158
6159 * term.c (turn_off_face): Reset standout_mode when resetting
6160 appearances with capability `me'.
6161 (write_glyphs): Switch on inverse video before each face change.
6162
6163 2000-08-14 Dave Love <fx@gnu.org>
6164
6165 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
6166 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
6167 (lisp_free): Declare and make static.
6168
6169 * window.c: Fix embedded comment.
6170 (syms_of_window): Fix doc string.
6171
6172 2000-08-14 Gerd Moellmann <gerd@gnu.org>
6173
6174 * keymap.c (push_key_description): If C without modifiers is < 32,
6175 make sure to print `C-' before `M-', like in the manual.
6176
6177 2000-08-11 Gerd Moellmann <gerd@gnu.org>
6178
6179 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
6180 since they aren't relocated anymore.
6181 (sxhash_string): Make sure returned hash code fits in a Lisp integer.
6182
6183 * xdisp.c (try_cursor_movement): Fix handling of cursor in
6184 partially visible line which is smaller than the window's height.
6185
6186 2000-08-11 Kenichi Handa <handa@etl.go.jp>
6187
6188 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
6189 the multibyte form of eight-bit-control characters.
6190 (Fccl_execute_on_string): Initialize ccl->multibyte.
6191
6192 * ccl.h (struct ccl_program): New member multibyte.
6193
6194 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
6195
6196 2000-08-11 Kenichi Handa <handa@etl.go.jp>
6197
6198 * regex.c (regex_compile) <normal_char>: Pay attention to
6199 multibyteness.
6200 (analyse_first) <exactn>: Setup fastmap correctly for
6201 eight-bit-control characters.
6202
6203 2000-08-11 Kenichi Handa <handa@etl.go.jp>
6204
6205 * termhooks.h (enum event_kind): New member multibyte_char_keystroke.
6206
6207 * keyboard.c (make_lispy_event): Handle the new event type
6208 multibyte_char_keystroke.
6209
6210 * xterm.c: Include coding.h.
6211 (XTread_socket): Work around a bug of XmbLookupString. If the
6212 input is from XIM, decode it according to the current locale. In
6213 that case, generate multibyte_char_keystroke events.
6214
6215 2000-08-11 Kenichi Handa <handa@etl.go.jp>
6216
6217 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
6218 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
6219
6220 2000-08-10 Gerd Moellmann <gerd@gnu.org>
6221
6222 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
6223 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
6224 (move_it_in_display_line_to): Record iterator's ascent and descent
6225 before producing glyphs, and restore them when we know the glyph
6226 doesn't fit on the line.
6227 (move_it_to): Restructured so that it's easier to debug. If
6228 moving to a vpos, and not moving to an x or character position,
6229 stop as soon as the specified vpos is reached; don't move further
6230 into that line because that might change the computed line height.
6231 (try_cursor_movement): New function, extracted from the cursor
6232 movement branch of redisplay_window. If ending on a partially
6233 visible line, don't try to scroll if the cursor line is taller
6234 than the window.
6235 (redisplay_window): Use try_cursor_movement.
6236
6237 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
6238 because that function doesn't cope with variable-height lines.
6239
6240 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
6241 box cursor because that's better visible for large images.
6242
6243 2000-08-10 Miles Bader <miles@gnu.org>
6244
6245 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
6246
6247 2000-08-10 Gerd Moellmann <gerd@gnu.org>
6248
6249 * xdisp.c (Vmessages_buffer_name): New variable.
6250 (message_dolog): Use it.
6251 (syms_of_xdisp): Initialize it.
6252
6253 2000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
6254
6255 * msdos.c (IT_note_mouse_highlight): Update the calls to overlays_at.
6256 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
6257 redundant now that keyboard.h is included.
6258
6259 2000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
6260
6261 * keyboard.c (kbd_buffer_events_waiting): New function.
6262
6263 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
6264
6265 * msdos.c: Include keyboard.h.
6266 (XMenuActivate): Empty no_event events from the event buffer. If
6267 no events are left after that, call clear_input_pending.
6268 (mouse_clear_clicks): New function, code moved from mouse_init.
6269 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
6270 mouse driver to ``forget'' any past clicks.
6271
6272 * Makefile.in (msdos.o): Depend on keyboard.h.
6273
6274 2000-08-09 Gerd Moellmann <gerd@gnu.org>
6275
6276 * lisp.h (input_pending): External declaration.
6277
6278 * dispextern.h (Qredisplay_dont_pause): Declare extern.
6279
6280 * xdisp.c (echo_area_display): Display thoroughly if input is
6281 pending. Bind redisplay-dont-pause to t during the redisplay.
6282 in case input is pending.
6283
6284 * dispnew.c (Qredisplay_dont_pause): New variable.
6285 (syms_of_display): Initialize and staticpro it.
6286 (update_frame_1): Don't interrupt the display for pending input if
6287 redisplay_dont_pause is set.
6288
6289 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
6290
6291 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
6292
6293 2000-08-09 Miles Bader <miles@lsi.nec.co.jp>
6294
6295 * callproc.c (Fcall_process): Terminate the unwind-protect around
6296 the post-read-conversion of coding system.
6297
6298 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
6299 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
6300 * buffer.h (overlays_at): Update prototype.
6301 * xdisp.c (next_overlay_change): Update call to overlays_at.
6302 * xfaces.c (face_at_buffer_position): Likewise.
6303 * textprop.c (Fget_char_property): Likewise.
6304 * xterm.c (note_mouse_highlight): Likewise.
6305
6306 * minibuf.c (do_completion): Don't consider a simple change of
6307 case as `completion'.
6308
6309 2000-08-08 Ken Raeburn <raeburn@gnu.org>
6310
6311 * keyboard.c (syms_of_keyboard): Initialize last_point_position_buffer.
6312 * undo.c (record_delete): Make sure last_point_position_buffer is
6313 a buffer before comparing pointers.
6314
6315 * coding.h (decode_coding_string): Declare.
6316
6317 * intervals.h (Fprevious_single_char_property_change): Declare.
6318
6319 * textprop.c (Fprevious_single_char_property_change): Don't do
6320 arithmetic directly on lisp objects.
6321
6322 * editfns.c (find_field): Use EQ, not ==, to compare Lisp objects.
6323
6324 * keyboard.h (menu_item_eval_property): Declare.
6325
6326 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
6327 reuse as buffer name, instead of recreating (and discarding) every
6328 time a message is logged.
6329 (with_echo_area_buffer): Make callback arg A2 a lisp object.
6330 (current_message_1, truncate_message_1, set_message_1)
6331 (display_echo_area_1, resize_mini_window_1): Signatures changed.
6332 (current_message, truncate_echo_area, display_echo_area)
6333 (resize_echo_area_axactly): Changed calls.
6334
6335 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
6336 Lisp object.
6337 (Ffind_coding_systems_region_internal): First argument to Fappend
6338 must be an integer, not a Lisp object.
6339
6340 2000-08-08 Kenichi Handa <handa@etl.go.jp>
6341
6342 * charset.c (Fchar_width): Doc fix.
6343
6344 2000-08-08 Gerd Moellmann <gerd@gnu.org>
6345
6346 * charset.c (Fstring_width): Doc fix.
6347
6348 2000-08-07 Gerd Moellmann <gerd@gnu.org>
6349
6350 * xdisp.c (start_display): When starting display on a continuation
6351 line, clear ascent and descent members of the iterator structure;
6352 the height of the continued line does not affect the height of the
6353 continuation line.
6354 (make_cursor_line_fully_visible): Do nothing if cursor is on a
6355 line taller than the window.
6356 (redisplay_window) <forced window start>: Handle case that the
6357 middle of the window is not found in any row.
6358 (dump_glyph_row): Show more information.
6359 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
6360 first text line in a glyph matrix.
6361
6362 * xterm.c (x_draw_image_foreground): Avoid drawing outside
6363 of the clip area when image doesn't have a mask.
6364
6365 * fns.c (sweep_weak_table): Fix survival conditions for
6366 key-or-value and key-and-value weakness.
6367
6368 * .gdbinit (xhashtable): New command.
6369
6370 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
6371 tables out of the list of all weak hash tables.
6372
6373 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
6374 a new buffer is created, make sure echo_area_buffer[] references
6375 the new buffer.
6376
6377 2000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
6378
6379 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
6380 the doc string.
6381
6382 2000-08-07 Kenichi Handa <handa@etl.go.jp>
6383
6384 * syntax.c (skip_chars): Fix previous change. Make the handling
6385 of unibyte string consistent with that of regex search.
6386
6387 2000-08-05 Gerd Moellmann <gerd@gnu.org>
6388
6389 * xmenu.c (popup_get_selection): Use xfree instead of free.
6390
6391 * fileio.c (Finsert_file_contents): Use xfree instead of free.
6392
6393 * editfns.c (Ftranspose_regions): Use xfree instead of free.
6394
6395 * callproc.c (child_setup): Use xfree instead of free.
6396
6397 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
6398 instead of malloc.
6399 (run_mac_command, closedir): Use `xfree' instead of `free'.
6400
6401 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
6402
6403 * eval.c (error): Use xfree instead of free.
6404
6405 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
6406
6407 * fns.c: Replace `illegal' with `invalid'.
6408 (Fmake_hash_table, make_hash_table): Allow table size of 0.
6409
6410 2000-08-05 Kenichi Handa <handa@etl.go.jp>
6411
6412 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
6413 conversion.
6414
6415 2000-08-04 Noah Friedman <friedman@splode.com>
6416
6417 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
6418 docstring.
6419
6420 2000-08-04 Gerd Moellmann <gerd@gnu.org>
6421
6422 * syntax.c (skip_chars): Fix typo in error message.
6423
6424 2000-08-04 Andreas Schwab <schwab@suse.de>
6425
6426 * m/ia64.h: Moved from s/ia64.h.
6427
6428 2000-08-04 Kenichi Handa <handa@etl.go.jp>
6429
6430 * process.c (read_process_output): Big simplification. Handle
6431 composition and post-read-conversion of coding system correctly.
6432 (send_process): Handle composition correctly.
6433
6434 * callproc.c (Fcall_process): Handle post-read-conversion of
6435 coding system if any.
6436
6437 * coding.c (decode_coding_iso2022): More strict check for handling
6438 single shifting.
6439 (coding_restore_composition): Pay attention to the case that
6440 cmp_data is not set properly (because of invalid code in the
6441 source text).
6442 (run_pre_post_conversion_on_str): Include text properties in the
6443 resulting string.
6444 (decode_coding_string): Set members of coding correctly.
6445
6446 2000-08-03 Gerd Moellmann <gerd@gnu.org>
6447
6448 * s/ia64.h: New file.
6449
6450 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
6451 Use NULL instead of 0 at the end of variable argument list of
6452 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
6453 sizeof (int) < sizeof (void *).
6454
6455 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
6456 of variable argument lists of XtVaGetValues and XtVaSetValues.
6457
6458 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
6459 variable argument lists of XtVaGetValues and XtVaSetValues.
6460
6461 2000-08-02 Gerd Moellmann <gerd@gnu.org>
6462
6463 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
6464 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
6465
6466 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
6467 prototype.
6468
6469 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
6470 in call to Fsingle_key_description.
6471
6472 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
6473 Callers changed.
6474
6475 2000-08-02 Colin Walters <walters@cis.ohio-state.edu>
6476
6477 * window.c (display_buffer_reuse_frames): New variable.
6478 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
6479 frames displaying BUFFER.
6480 (syms_of_window): Define Lisp variable display-buffer-reuse-frames.
6481
6482 2000-08-01 Miles Bader <miles@gnu.org>
6483
6484 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
6485 when to constrain NEW_POS (they were pretty screwed up before).
6486
6487 2000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
6488
6489 * msdos.c (run_msdos_command): Save and restore the master
6490 environment, for the case that child_setup signals an error.
6491 When mirroring slashes in DOS shell commands, don't fail when
6492 argv[2] has embedded blanks.
6493 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
6494 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
6495 (dos_ttraw): Call mouse_setup_buttons.
6496
6497 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
6498 using alloca; free it after run_msdos_command returns.
6499
6500 2000-07-27 Dave Love <fx@gnu.org>
6501
6502 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't define.
6503 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently working.
6504
6505 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
6506
6507 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
6508
6509 * editfns.c (lisp_time_argument): Fix last change.
6510
6511 2000-07-27 Gerd Moellmann <gerd@gnu.org>
6512
6513 * fns.c (Fdelete): Make it work on vectors and strings in addition
6514 to lists.
6515
6516 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
6517 (syms_of_fns): Initialize new variables.
6518 (sweep_weak_table): Handle weakness `key-or-value' and `key-and-value'.
6519 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
6520 weakness, with t meaning the same as `key-and-value'.
6521
6522 2000-07-27 Kenichi Handa <handa@etl.go.jp>
6523
6524 * coding.h (struct coding_system): Member safe_charset deleted.
6525
6526 * coding.c (Qsafe_charsets): This variable deleted.
6527 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system):
6528 New variables.
6529 (coding_safe_chars): New function.
6530 (CODING_SAFE_CHAR_P): New macro.
6531 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
6532 checking safe_charsets member of the coding system. Caller changed.
6533 (detect_coding_iso2022): New local variable safe_chars.
6534 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
6535 safe_charsets member of the coding system.
6536 (decode_coding_iso2022): New local variable safe_chars.
6537 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
6538 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
6539 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
6540 (ENCODE_UNSAFE_CHARACTER): New macro.
6541 (encode_coding_iso2022): New local variable safe_chars. Check
6542 unsafe chars.
6543 (setup_coding_system): Delete the code to initialize
6544 coding->safe_charses
6545 (intersection, find_safe_codings): New functions.
6546 (Ffind_coding_systems_region_internal): New function.
6547 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
6548 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
6549 variable and initialize it.
6550
6551 * fns.c (char_table_ref_and_index): New function.
6552
6553 * lisp.h (char_table_ref_and_index): Add prototype.
6554
6555 2000-07-26 Sam Steingold <sds@gnu.org>
6556
6557 * editfns.c (lisp_time_argument): Added third argument `usec'.
6558 (Ffloat_time): New built-in Lisp function.
6559
6560 2000-07-26 Gerd Moellmann <gerd@gnu.org>
6561
6562 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
6563 for the character code.
6564
6565 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
6566 GNU/Linux.
6567
6568 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
6569 if called for a popup menu.
6570 (xmenu_show): Store help string in widget values.
6571
6572 2000-07-26 Dave Love <fx@gnu.org>
6573
6574 * syswait.h: Move some definitions.
6575 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
6576 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
6577 perspicuous definitions.
6578 (WTERMSIG): Fix bit pattern used.
6579
6580 2000-07-26 Kenichi Handa <handa@etl.go.jp>
6581
6582 * print.c (print_object): If vector printing is truncated, print
6583 "..." to indicate it as well as the case of list printing.
6584
6585 2000-07-25 Gerd Moellmann <gerd@gnu.org>
6586
6587 * xdisp.c (next_element_from_display_vector): Improve comments.
6588
6589 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
6590 for the character code, and the rest for the face id as in 20.x.
6591 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
6592
6593 * window.c (window_display_table): Cleaned up.
6594
6595 * syntax.c (Fforward_word): Add last arg nil in call of
6596 Fconstrain_to_field.
6597
6598 2000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
6599
6600 * fileio.c (Frename_file) [DOS_NT]: If the file names are
6601 identical but for the letter-case, don't call
6602 barf_or_query_if_file_exists.
6603
6604 2000-07-25 Miles Bader <miles@gnu.org>
6605
6606 * editfns.c (find_field): Honor special `boundary' fields.
6607 (Qboundary): New variables.
6608 (syms_of_editfns): Initialize Qboundary.
6609 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
6610 Use scan_buffer instead of find_before_next_newline, because it
6611 allows us to detect the boundary case where there's a newline at
6612 the search limit.
6613 * lisp.h (Fconstrain_to_field): Update external declaration.
6614
6615 2000-07-24 Gerd Moellmann <gerd@gnu.org>
6616
6617 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
6618 if that is nil.
6619
6620 2000-07-24 Dave Love <fx@gnu.org>
6621
6622 * s/sunos4-0.h, s/sol2.h:
6623 (LIBS_TERMCAP): Move from m/sparc.h.
6624
6625 * m/sparc.h (TERMINFO): Moved to system files (probably only
6626 relevant for sunos4 judging by its vintage).
6627 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
6628 __arch64__.
6629
6630 2000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
6631
6632 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
6633 name to single_keymap_panes.
6634
6635 2000-07-24 Andreas Schwab <schwab@suse.de>
6636
6637 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
6638
6639 2000-07-24 Gerd Moellmann <gerd@gnu.org>
6640
6641 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
6642 parameters instead of using int parameters. Expect FN to accept
6643 EMACS_INT parameters.
6644 (display_echo_area, resize_echo_area_axactly, current_message)
6645 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
6646 with new argument list.
6647 (resize_mini_window_1): New callback function.
6648 (current_message_1, truncate_message_1, set_message_1): Change
6649 parameter lists to the new format expected by with_echo_area_buffer.
6650
6651 2000-07-24 Kenichi Handa <handa@etl.go.jp>
6652
6653 * fontset.c (fontset_ref): Remove INLINE declaration.
6654 (fontset_ref_via_base): Likewise.
6655 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
6656 to downcase.
6657
6658 2000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
6659
6660 * msdos.c (IT_note_mouse_highlight): Process overlays in the
6661 correct order of priority. If help echo was found in an overlay,
6662 use that overlay as the object in which the help echo was found.
6663
6664 2000-07-22 Miles Bader <miles@gnu.org>
6665
6666 * textprop.c (Fprevious_single_char_property_change): The initial
6667 property value should be from the position preceding POSITION, not
6668 following it.
6669
6670 2000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
6671
6672 * coding.c (syms_of_coding): Doc fix for
6673 inhibit-iso-escape-detection.
6674
6675 2000-07-21 Gerd Moellmann <gerd@gnu.org>
6676
6677 * xterm.c (note_mouse_highlight): Process overlays in the right
6678 order of priority.
6679
6680 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
6681
6682 * xterm.c (note_mouse_highlight): If help-echo was found in an
6683 overlay, use that overlay as the object in which the help was found.
6684
6685 * window.c (foreach_window_1): Fix typo reversing an if-condition.
6686
6687 * window.c (foreach_window): Instead of a fake variable argument
6688 list, take one USER_DATA argument.
6689 (foreach_window_1): Likewise, and call callback functions with two
6690 args, the window and USER_DATA.
6691 (struct check_window_data): New struct.
6692 (check_window_containing): Use it.
6693 (window_from_coordinates): Set up a struct check_window_data for
6694 foreach_window.
6695 (add_window_to_list, freeze_window_start): Change parameters
6696 according to new calling convention.
6697
6698 * window.h (foreach_window): Change prototype.
6699
6700 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
6701
6702 2000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
6703
6704 * xmenu.c (menu_help_callback): Call show_help_echo with
6705 additional arguments OBJECT and POS.
6706
6707 2000-07-21 Kenichi Handa <handa@etl.go.jp>
6708
6709 * data.c (Faset): Allow storing any multibyte character in a
6710 string. Convert unibyte string to multibyte if necessary.
6711
6712 * xfns.c (x_encode_text): New function.
6713 (x_set_name): Use x_encode_text.
6714 (x_set_title): Likewise.
6715
6716 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
6717
6718 * xterm.h (x_encode_text): Add prototype.
6719
6720 2000-07-20 Dave Love <fx@gnu.org>
6721
6722 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
6723 xfree, not free.
6724
6725 2000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
6726
6727 * msdos.c (help_echo_window): New variable.
6728 (syms_of_msdos): Initialize and staticpro it.
6729 (IT_note_mode_line_highlight): Set help_echo_window.
6730 (IT_note_mouse_highlight): Ditto.
6731 (dos_rawgetc): Store help_echo_window in the second event produced
6732 for HELP_EVENTs.
6733
6734 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
6735 Record the object that generated the help echo and the position of
6736 that object in help_echo_object and help_echo_pos. Record that
6737 some glyphs in a row are displayed in mouse-face.
6738 (IT_update_begin): Don't clear mouse highlight unless one of the
6739 enabled glyph rows is marked as being displayed in mouse-face.
6740 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
6741 and position recorded in help_echo_object and help_echo_pos to the
6742 event queue.
6743 (IT_menu_display): Accept a new argument PN: the pane number of
6744 the current menu pane. Record the pane number and the item
6745 number of the item which has associated help string.
6746 (XMenuActivate): Update the prototype for help_callback in
6747 function declaration. Call IT_menu_display with the current menu
6748 pane number as an additional argument. Call help_callback with
6749 two additional arguments: the pane number and the item number of
6750 the menu item associated with the help text.
6751 (help_echo_object, help_echo_pos): New variables.
6752 (syms_of_msdos): Initialize them and staticpro help_echo_object.
6753
6754 * msdos.h (XMenuActivate): Update prototype.
6755
6756 2000-07-19 Gerd Moellmann <gerd@gnu.org>
6757
6758 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
6759 Add some more prototypes.
6760
6761 * xterm.c, xterm.h: Add some more prototypes.
6762
6763 * lisp.h (Fnext_single_char_property_change): Add prototype.
6764
6765 * dispnew.c (direct_output_for_insert): Remove confusing
6766 outer local variable mouse_face_overwritten_p.
6767 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
6768
6769 * alloc.c (allocate_string_data): Don't copy old string contents.
6770
6771 2000-07-19 Kenichi Handa <handa@etl.go.jp>
6772
6773 * coding.c (code_convert_region): Delete text properties before
6774 shrinking the conversion region.
6775
6776 2000-07-18 Gerd Moellmann <gerd@gnu.org>
6777
6778 * dispnew.c (update_text_area): Write the whole row if it
6779 has mouse-face in it.
6780
6781 * xfaces.c (face-alternative-font-family-alist): Remove
6782 DEFVAR_LISP; staticpro instead.
6783
6784 * xmenu.c (menu_help_callback): Call show_help_echo with
6785 new arguments.
6786
6787 * keyboard.c (show_help_echo): Add parameter WINDOW.
6788 (read_char): Call show_help_echo with window extracted from Lisp
6789 help event.
6790 (gen_help_event): Add parameter WINDOW.
6791
6792 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
6793
6794 * xterm.c (help_echo_window): New variable.
6795 (note_mouse_highlight, note_tool_bar_highlight): Set help_echo_window.
6796 (XTread_socket): Pass help_echo_window to gen_help_event.
6797 (syms_of_xterm): Initialize and staticpro help_echo_window.
6798
6799 2000-07-18 Dave Love <fx@gnu.org>
6800
6801 * Makefile.in: Fix dependencies of blockinput.h on atimer.h, systime.h.
6802
6803 2000-07-18 Gerd Moellmann <gerd@gnu.org>
6804
6805 * alloc.c (allocate_string_data): If string had already data
6806 assigned, copy old contents to new string data.
6807
6808 * coding.c (syms_of_coding): Fix typo in spelling of variable
6809 `inhibit-iso-escape-detection'.
6810
6811 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
6812
6813 * Makefile.in: Add dependencies on dispextern.h.
6814 (alloca.o): Don't define malloc and define EMACS_FREE instead of
6815 `free'; both can conflict with system header files.
6816
6817 2000-07-18 Kenichi Handa <handa@etl.go.jp>
6818
6819 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
6820 undefined.
6821
6822 2000-07-18 Dave Love <fx@gnu.org>
6823
6824 * window.c (Fwindow_list): Declare arg `window'.
6825
6826 2000-07-18 Kenichi Handa <handa@etl.go.jp>
6827
6828 * coding.c (setup_coding_system): Don't override the explicitly
6829 specified designations.
6830
6831 2000-07-15 Miles Bader <miles@gnu.org>
6832
6833 * editfns.c (char_property_eq, char_property_stickiness): Renamed
6834 from `text_property_eq' and `text_property_stickiness', respectively.
6835 (find_field, Fconstrain_to_field, char_property_eq)
6836 (char_property_stickiness): Changed to call char-property functions
6837 instead of text-property-only ones.
6838
6839 * textprop.c (Fnext_single_char_property_change): Made a subr (was
6840 `next_single_char_property_change'). Do more error checking, and
6841 cleanup limit behavior.
6842 (Fprevious_single_char_property_change): New function.
6843 (syms_of_textprop): Initialize new subrs.
6844
6845 * xdisp.c (display_prop_end, invisible_text_between_p):
6846 Call Fnext_single_char_property_change instead of
6847 next_single_char_property_change.
6848
6849 2000-07-15 Jason Rumney <jasonr@gnu.org>
6850
6851 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
6852 after menu is finished with.
6853 (add_menu_item): Only consider wv->title as a menu title.
6854 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
6855
6856 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
6857 null title.
6858 (FONT_REGEXP): Remove unused macro, and its sub-components.
6859 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
6860
6861 * w32term.c (help_echo_object, help_echo_pos): New variables.
6862 (note_mode_line_highlight): Store additional information about the
6863 help-echo in help_echo_object and help_echo_pos. Check both
6864 `local-map' and `keymap' properties for changing the cursor
6865 (note_mouse_highlight): Store additional information about the
6866 help-echo in help_echo_object and help_echo_pos.
6867 (note_tool_bar_highlight): Set help_echo_object to nil and
6868 help_echo_pos to -1.
6869 (w32_read_socket): Use gen_help_event instead of filling
6870 input_events manually.
6871 (syms_of_w32term): Staticpro help_echo_object.
6872 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
6873 set, arrange for a mouse-highlight redisplay in XTframe_up_to_date.
6874 (x_clear_mouse_face): New function.
6875 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
6876 (x_update_window_begin): No need to turn off the mouse
6877 highlight here.
6878 (show_mouse_face): Set the mouse_face_p flag of glyph rows
6879 depending on whether they contain glyphs highlighted in mouse-face.
6880 (x_fill_stretch_glyph_string): Consume runs of stretch
6881 glyphs instead of a single one.
6882 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
6883 with new argument list.
6884 (x_set_glyph_string_gc): Make sure the face's GC is valid.
6885 (x_append_glyph, x_append_composite_glyph)
6886 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
6887 changes in struct glyph starting 1999-12-27. See comments for
6888 xterm.c on 2000-07-05.
6889
6890 2000-07-14 Sam Steingold <sds@gnu.org>
6891
6892 * xfaces.c (realize_x_face): Fix the last patch:
6893 check `default_face' before dereferencing.
6894
6895 2000-07-14 Dave Love <fx@gnu.org>
6896
6897 * syntax.c (back_comment): Add null default in switch (for pcc).
6898
6899 2000-07-14 Kenichi Handa <handa@etl.go.jp>
6900
6901 * xfaces.c (realize_x_face): Make fontset using the base of the
6902 default_face's fontset, not using the default fontset.
6903
6904 * coding.c (inhibit_iso_escape_detection): New variable.
6905 (syms_of_coding): Make it a Lisp variable.
6906 (detect_coding_iso2022): If inhibit_iso_escape_detection is
6907 nonzero, ignore ISO2022's escape sequence.
6908
6909 2000-07-14 Gerd Moellmann <gerd@gnu.org>
6910
6911 * alloca.c (malloc) [emacs]: Define as xmalloc.
6912
6913 * xfns.c (Fx_show_tip): If frame parameters contain a position,
6914 use that instead of the mouse position. Add parameters DX and DY.
6915
6916 * dispextern.h (Fx_show_tip): Adjust number of parameters
6917 in prototype.
6918
6919 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
6920 if HELP is a function, call it with OBJECT and POS as parameters
6921 to get the help to display.
6922 (gen_help_event, kbd_buffer_store_help_event): New functions.
6923 (kbd_buffer_get_event): Construct the Lisp help-event differently.
6924 (read_char): Call show_help_echo with new parameters.
6925
6926 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
6927 Add prototypes.
6928
6929 * xterm.c (help_echo_object, help_echo_pos): New variables.
6930 (note_mode_line_highlight): Store additional information about the
6931 help-echo in help_echo_object and help_echo_pos. Check both
6932 `local-map' and `keymap' properties for changing the cursor
6933 (note_mouse_highlight): Store additional information about the
6934 help-echo in help_echo_object and help_echo_pos.
6935 (note_tool_bar_highlight): Set help_echo_object to nil and
6936 help_echo_pos to -1.
6937 (XTread_socket): Use gen_help_event instead of filling
6938 input_events manually.
6939 (syms_of_xterm): Staticpro help_echo_object.
6940
6941 * xmenu.c (menu_highlight_callback): Use
6942 kbd_buffer_store_help_event instead of setting up and input_event
6943 structure manually.
6944
6945 * xdisp.c (eval_form): GCPRO argument sexpr.
6946 (call_function): New function.
6947 (handle_single_display_prop): Use call_function and FUNCTIONP
6948 instead of checking whether if font_height is a symbol and
6949 using eval_form.
6950
6951 * eval.c (internal_condition_case_2): New function.
6952
6953 * lisp.h (FUNCTIONP): New macro.
6954 (internal_condition_case_2, call_function): Add prototypes.
6955
6956 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
6957 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
6958 Always set `arg' member of input_events.
6959 (construct_menu_click): Unused function removed.
6960
6961 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
6962
6963 * w32term.c (construct_mouse_click, construct_mouse_wheel)
6964 (construct_drag_n_drop, x_scroll_bar_handle_click)
6965 (w32_read_socket): Always set `arg' member of input_events.
6966
6967 * keyboard.c (show_help_echo): Use eval_form. Add comment.
6968
6969 * lisp.h (eval_form): Add prototype.
6970
6971 * xdisp.c (eval_form): Make it externally visible.
6972
6973 2000-07-13 Gerd Moellmann <gerd@gnu.org>
6974
6975 * xterm.c (x_handle_tool_bar_click): Store the frame in the
6976 frame_or_window slot of TOOL_BAR_EVENT input events instead of
6977 consing. For prefix events, store the frame in the `arg' slot of
6978 the event, otherwise store the key there.
6979 (XTread_socket): Instead of consing, use the frame_or_window slot
6980 of HELP_EVENTs for the frame, and the `arg' slot for the help string.
6981
6982 * xmenu.c (menu_highlight_callback): Store help string in the
6983 `arg' member of the input event; don't cons.
6984 (menubar_selection_callback): Use the `arg' slot of input events
6985 to queue additional information, instead of consing.
6986
6987 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
6988
6989 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
6990 TOOL_BAR_EVENTs.
6991 (w32_read_socket): Adapt to changes in HELP_EVENTs.
6992
6993 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
6994 input events to queue additional information, instead of consing.
6995
6996 * keyboard.c (kbd_buffer_gcpro): Renamed from
6997 kbd_buffer_frame_or_window. Now used for all Lisp objects
6998 referenced from the input queue.
6999 (kbd_buffer_store_event): Always use structure assignment for
7000 copying input events. Record all Lisp objects referenced from
7001 events in kbd_buffer_gcpro.
7002 (kbd_buffer_get_event): Construct Lisp `help-echo' events
7003 differently from input events. Test for prefix menu_bar_events
7004 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
7005 event in kbd_buffer_gcpro to nil.
7006 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
7007 frame_or_window is equal to its arg member as prefix events.
7008 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
7009 used by an input event to nil.
7010 (init_keyboard): Use two times the size of the input queue
7011 for kbd_buffer_gcpro.
7012 (syms_of_keyboard): Likewise.
7013
7014 * emacs.c (handle_USR2_signal, handle_USR1_signal):
7015 Use USER_SIGNAL_EVENT.
7016
7017 * termhooks.h (struct input_event): Add member `arg'.
7018 (MENU_BAR_EVENT): Renamed from menu_bar_event.
7019 (USER_SIGNAL_EVENT): Renamed from user_signal.
7020
7021 * xfaces.c (ASET): Remove definition.
7022
7023 * lisp.h (AREF, ASET, ASIZE): New macros.
7024
7025 * fontset.c (AREF, ASIZE): Remove definitions.
7026
7027 * fns.c (AREF): Remove definition.
7028
7029 * composite.c (AREF): Remove definition.
7030
7031 2000-07-12 Gerd Moellmann <gerd@gnu.org>
7032
7033 * dispnew.c (redraw_overlapped_rows): Add missing local.
7034 (scrolling_window): Remove debug code.
7035
7036 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
7037 Before scrolling, turn off a mouse-highlight in the window
7038 being scrolled.
7039
7040 * xterm.c (x_update_window_end): Add parameter
7041 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
7042 redisplay in XTframe_up_to_date.
7043 (x_clear_mouse_face): New function.
7044 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
7045
7046 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
7047 current glyph row.
7048 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
7049 it when any row is written to that contains glyphs highlighted in
7050 mouse-face.
7051 (update_window): Call the window update end hook with new
7052 parameter MOUSE_FACE_OVERWRITTEN_P.
7053 (direct_output_for_insert): Give up if row contains mouse-face.
7054
7055 * dispextern.h (struct redisplay_interface): Add parameter
7056 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
7057 (clear_mouse_face): New function pointer member.
7058
7059 2000-07-11 Stefan Monnier <monnier@cs.yale.edu>
7060
7061 * syntax.c (back_comment): Use one switch rather than a few `if's.
7062 Obey open_paren_in_column_0_is_defun_start.
7063 When reverting to the `slow' method, try to nicely handle the case
7064 of nested comments by checking that the comment-starter we found
7065 does indeed match the comment-ender.
7066 (scan_sexps_forward, scan_sexps_forward):
7067 Ignore excessive opening parenthesis rather than throwing an error.
7068
7069 2000-07-11 Gerd Moellmann <gerd@gnu.org>
7070
7071 * doc.c (Fsubstitute_command_keys): Handle case that a GC
7072 in Fwhere_is_internal or get_keymap_1 relocates string contents.
7073
7074 * dispnew.c (direct_output_forward_char): Give up if currently
7075 displaying a message instead of the minibuffer contents.
7076
7077 * xterm.c (x_update_window_begin): No need to turn off the mouse
7078 highlight here.
7079 (show_mouse_face): Set the mouse_face_p flag of glyph rows
7080 depending on whether they contain glyphs highlighted in mouse-face.
7081
7082 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
7083 compare the mouse_face_p flags of both rows.
7084
7085 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
7086
7087 2000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
7088
7089 * keyboard.c (show_help_echo): Accept additional parameter
7090 ok_to_overwrite_keystroke_echo.
7091 (read_char): Call show_help_echo with a zero
7092 ok_to_overwrite_keystroke_echo argument.
7093 * keyboard.h (show_help_echo): Update prototype of show_help_echo.
7094 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
7095 ok_to_overwrite_keystroke_echo argument.
7096 * w32menu.c (w32_menu_display_help): Call show_help_echo with
7097 non-zero ok_to_overwrite_keystroke_echo argument.
7098
7099 2000-07-10 Gerd Moellmann <gerd@gnu.org>
7100
7101 * xdisp.c (try_window_id): If changes are all below what is
7102 displayed in the window, and point is in the window, we still
7103 might have to find point on the display.
7104
7105 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
7106 glyphs instead of a single one.
7107 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
7108 with new argument list.
7109 (x_set_glyph_string_gc): Make sure the face's GC is valid.
7110
7111 * keymap.c (get_keymap_1): Add comment that this function can GC.
7112 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
7113 comment that functions can GC.
7114 (Fset_keymap_parent): GCPRO arg KEYMAP.
7115
7116 2000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
7117
7118 * msdos.c (XMenuActivate): After exiting the menu, restore the
7119 echo area message and erase it.
7120
7121 2000-07-10 Kenichi Handa <handa@etl.go.jp>
7122
7123 * fontset.c (Ffontset_info): Make the return value more compatible
7124 with that of Emacs 20.
7125
7126 2000-07-07 Gerd Moellmann <gerd@gnu.org>
7127
7128 * eval.c (Fsignal): Handle case that backtrace_list is null.
7129
7130 2000-07-07 Kenichi Handa <handa@etl.go.jp>
7131
7132 * ccl.c (Fccl_execute): Typo fixed.
7133
7134 2000-07-06 Gerd Moellmann <gerd@gnu.org>
7135
7136 * window.c (window_loop): Add missing gcpro1 local variable.
7137
7138 * window.c (Fwindow_list): Reverse list at the end.
7139 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
7140 means allow windows on OWINDOW's frame, only.
7141 (window_loop): Simplified; use Fwindow_list.
7142
7143 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
7144
7145 2000-07-05 Gerd Moellmann <gerd@gnu.org>
7146
7147 * xterm.c (XTread_socket): Increment handling_signal at the start,
7148 decrement it at the end.
7149
7150 * eval.c (handling_signal): New variable.
7151 (Fsignal): Abort if handling_signal is non-zero.
7152
7153 * lisp.h (handling_signal): External declaration.
7154
7155 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
7156
7157 2000-07-05 Ken Raeburn <raeburn@gnu.org>
7158
7159 Sound support for NetBSD through "Linux emulation" support:
7160 * config.in (HAVE_SOUNDCARD_H): Undef.
7161 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
7162 * Makefile.in (LIBSOUND): New variable.
7163 (LIBES): Include it.
7164 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and <soundcard.h>.
7165 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined elsewhere.
7166 (vox_open): Use DEFAULT_SOUND_DEVICE.
7167 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
7168
7169 2000-07-05 Gerd Moellmann <gerd@gnu.org>
7170
7171 * print.c (print_error_message): If Vsignaling_function is set,
7172 show it in *Messages*.
7173
7174 * lisp.h (Vsignaling_function): External declaration.
7175
7176 * eval.c (Vsignaling_function): New variable.
7177 (Fsignal): Compute it.
7178 (syms_of_eval): Staticpro it.
7179
7180 2000-07-05 Dave Love <fx@gnu.org>
7181
7182 * syswait.h: Use the autoconf recommended approach. Old code
7183 #if'd out in case we need to revert.
7184
7185 * config.in (HAVE_SYS_WAIT_H): Added.
7186
7187 2000-07-05 Andrew Innes <andrewi@gnu.org>
7188
7189 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
7190 when non-NULL instead of __morecore, to take account of buffer
7191 memory. This also solves a problem with spurious memory warnings
7192 on Windows.
7193
7194 * ralloc.c: Make real_morecore non-static.
7195
7196 * eval.c (internal_condition_case): Comment out abort if
7197 interrupt_input_blocked is not zero.
7198
7199 * makefile.nt: Add support for `bootstrap' and related targets.
7200 Include minimal debug info in emacs.exe in release build.
7201 Remove all dependencies on lisp.h, and fixup some others.
7202
7203 * w32.c (init_environment): Install code from 20.7 for providing
7204 default values for environment variables, based on the
7205 executable's own location.
7206 (map_w32_filename): Handle filenames that are longer than MAX_PATH.
7207 (sys_socket): Install socket inheritance bug fix from 20.7.
7208
7209 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
7210 here via blockinput.h).
7211
7212 2000-07-05 Stefan Monnier <monnier@cs.yale.edu>
7213
7214 * w32menu.c (w32_menu_display_help):
7215 * xmenu.c (menu_help_callback): Use show_help_echo.
7216
7217 * keyboard.h (show_help_echo): Declare.
7218
7219 * keyboard.c (show_help_echo): New function, extracted from read_char.
7220 Feval its `msg' argument if it's a cons cell.
7221 (read_char): Use it.
7222 (follow_key): Pass `autoload' to get_keyelt.
7223
7224 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
7225 (note_tool_bar_highlight, XTread_socket):
7226 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
7227 (dos_rawgetc):
7228 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
7229 (note_tool_bar_highlight, w32_read_socket):
7230 Do not gratuitously ignore non-string `help-echo' properties.
7231
7232 2000-07-05 Gerd Moellmann <gerd@gnu.org>
7233
7234 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
7235
7236 * window.c (delete_all_subwindows): Reset Vwindow_list.
7237
7238 * xterm.c (x_append_glyph, x_append_composite_glyph)
7239 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
7240 changes in struct glyph starting 1999-12-27. Some bit-fields of
7241 struct glyph were not set, which made glyphs unequal when compared
7242 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
7243 effects were the result. This also depended on the contents of
7244 memory returned by xmalloc. If flickering happens again, activate
7245 the code in clear_glyph_row that's in #if 0. If the flickering is
7246 gone with that, chances are that it is caused by something similar.
7247
7248 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
7249
7250 * dispextern.h: Add some comments.
7251
7252 * window.c (add_window_to_list): Add parameter LIST.
7253 (window_list): Order list so that, for each frame, windows are
7254 in canonical order, and so that frames appear in the list in
7255 the order given by Vframe_list.
7256 (next_window): Reverse the handling of NEXT_P.
7257
7258 2000-07-04 Gerd Moellmann <gerd@gnu.org>
7259
7260 * window.c (Vwindow_list): New variable.
7261 (make_window, delete_window): Set Vwindow_list to nil.
7262 (check_window_containing): New function.
7263 (window_from_coordinates): Rewritten.
7264 (add_window_to_list, window_list, candidate_window_p)
7265 (decode_next_window_args, next_window): New functions.
7266 (Fnext_window, Fprevious_window): Rewritten in terms of next_window.
7267 (Fwindow_list): New function.
7268 (Fother_window): Cleaned up.
7269 (foreach_window): Add a longer "variable argument list". Let
7270 callback function return 0 to indicate that cycling over windows
7271 should stop.
7272 (foreach_window_1): Likewise.
7273 (freeze_window_start): Return int.
7274 (init_window): New function.
7275 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
7276
7277 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
7278 input_event with bzero.
7279 (main): Call init_window.
7280
7281 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
7282 a menu filter.
7283
7284 2000-07-04 Kenichi Handa <handa@etl.go.jp>
7285
7286 * composite.h (make_composition_value_copy): Extern it.
7287
7288 * composite.c (make_composition_value_copy): New function.
7289
7290 * editfns.c (Fformat): While copying text properties, make each
7291 composition property value a copy.
7292
7293 * fns.c (concat): While copying text properties, make each
7294 composition property value a copy.
7295
7296 2000-07-03 Gerd Moellmann <gerd@gnu.org>
7297
7298 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
7299
7300 * fns.c (sweep_weak_table): Mark only objects that are not
7301 marked already.
7302
7303 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
7304 include those frames as candidates which have their focus
7305 redirected to the minibuffer frame.
7306
7307 2000-07-03 Stefan Monnier <monnier@cs.yale.edu>
7308
7309 * fns.c (Fputhash): Return `value' rather than nil.
7310
7311 2000-06-30 Gerd Moellmann <gerd@gnu.org>
7312
7313 * frame.c (next_frame): Don't check focus redirection in case
7314 MINIBUF is a window. Doing so excludes frames using MINIBUF
7315 unless their focus is redirected, which contradicts the
7316 specification of next-frame, and leads to infinite loops in
7317 certain situations when cycling through windows with next-window.
7318
7319 2000-06-30 Kenichi Handa <handa@etl.go.jp>
7320
7321 * coding.c (code_convert_region): Even if the length of text is
7322 zero, try to convert it if coding->type is coding_type_ccl.
7323 (decode_coding_string, encode_coding_string): Likewise.
7324
7325 2000-06-28 Gerd Moellmann <gerd@gnu.org>
7326
7327 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
7328 the display if windows_or_buffers_changed.
7329
7330 * dispnew.c (struct row_entry): New structure.
7331 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
7332 (row_table_size, old_lines, new_lines, old_lines_size)
7333 (new_lines_size, run_pool, runs_size, runs): New variables.
7334 (add_row_entry): New function.
7335 (scrolling_window): Use data structures allocated with xmalloc and
7336 held in global variables, instead of allocating them with alloca and
7337 holding them in local variables. Use a larger hash table whose
7338 size depends on glyph matrix sizes. Don't use bzero to clear the
7339 hash table; instead, clear used slots only.
7340
7341 * fns.c (next_almost_prime): Make it externally visible.
7342
7343 * lisp.h (next_almost_prime): Add prototype.
7344
7345 * s/isc4-0.h (sigunblock): Define.
7346
7347 * s/sco5.h (sigunblock): Define.
7348
7349 2000-06-27 Dave Love <fx@gnu.org>
7350
7351 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
7352 (moved to osf5-0.h).
7353 [!NOT_C_CODE]: Protect string.h stuff.
7354
7355 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
7356 (sys_siglist, NSIG): Definitions moved here from osf1.h.
7357
7358 2000-06-27 Gerd Moellmann <gerd@gnu.org>
7359
7360 * xdisp.c (resize_mini_window): Subtract the extra line spacing
7361 below the last line from the needed window height.
7362
7363 2000-06-26 Stefan Monnier <monnier@cs.yale.edu>
7364
7365 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
7366 (Fwidget_get): Use it.
7367 (syms_of_fns): Defsubr it.
7368
7369 2000-06-26 Gerd Moellmann <gerd@gnu.org>
7370
7371 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
7372 display info for XIM.
7373 (xim_open_dpy): Likewise.
7374 (xim_close_dpy): Don't free the display info's XIM.
7375
7376 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
7377
7378 * config.in (USE_XIM): New define.
7379
7380 * keymap.c (get_keyelt): For menu-items containing a `:filter
7381 FILTER', apply FILTER to the menu-item's definition to get the
7382 real definition to use.
7383
7384 * lisp.h (QCfilter): External declaration.
7385
7386 * xfns.c (Fimage_size): New function.
7387 (syms_of_xfns): Defsubr it.
7388
7389 2000-06-26 Andreas Schwab <schwab@suse.de>
7390
7391 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
7392 Fstring_as_unibyte.
7393
7394 2000-06-25 Dave Love <fx@gnu.org>
7395
7396 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag, tgetnum.
7397
7398 * Makefile.in (blockinput.h): Depend on atimer.h.
7399 (atimer.h): Depend on systime.h.
7400
7401 * blockinput.h: Protect against multiple inclusion. Include atimer.h.
7402
7403 * atimer.h: Protect against multiple inclusion. Include systime.h.
7404
7405 * lisp.h (swap_in_global_binding): Declare.
7406
7407 2000-06-24 Ken Raeburn <raeburn@gnu.org>
7408
7409 * process.c (Fopen_network_stream): Turn off atimers for duration
7410 of call to connect. (Patch from Gerd.)
7411
7412 2000-06-23 Dave Love <fx@gnu.org>
7413
7414 * ralloc.c: Maybe include unistd.h
7415
7416 * emacs.c (setgrp): Undefine before defining.
7417 (malloc_warning, set_time_zone_rule, index): Prototype.
7418
7419 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
7420 HAVE_STRUCT_TIMEZONE.
7421
7422 * s/osf1.h: Move string.h hack here from alpha.h and make it
7423 conditional.
7424 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
7425 _XOPEN_SOURCE.
7426 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
7427 (SOCKLEN_TYPE): Don't define.
7428
7429 * m/alpha.h: Remove string.h hack.
7430
7431 * s/osf5-0.h: New file.
7432
7433 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
7434 include time.h, done by systime.h.
7435 [__FreeBSD__]: Remove redundant includes.
7436
7437 * callproc.c (setpgrp): Undefine before defining.
7438 (delete_temp_file): Return Qnil to avoid warning.
7439
7440 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
7441
7442 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
7443 HAVE_X_WINDOWS.
7444
7445 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
7446
7447 * composite.h (compose_text): Declare.
7448
7449 * xterm.c: Don't include sys/types.h unconditionally. Don't
7450 protect its inclusion with !USG (following xmenu.c).
7451
7452 2000-06-23 Gerd Moellmann <gerd@gnu.org>
7453
7454 * xfns.c (x_create_tip_frame): Initialize frame's colors like
7455 in x_create_frame.
7456
7457 2000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
7458
7459 * coding.c (decode_eol_post_ccl): Special handling for undecided
7460 and inconsistent EOL types.
7461
7462 2000-06-22 Gerd Moellmann <gerd@gnu.org>
7463
7464 * xrdb.c (x_load_resources): Add default resource for scroll bar's
7465 trough color and main window's background color.
7466
7467 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events differently.
7468
7469 * xterm.h (Xt_app_con): External declaration.
7470
7471 * widget.c (EmacsFrameRealize): Fix typo.
7472
7473 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
7474
7475 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
7476 (handle_invisible_prop): Record the start of invisible text in
7477 it->add_overlay_start.
7478 (struct overlay_entry): Add member `overlay'.
7479 (handle_overlay_change): Simplify.
7480 (next_overlay_string): After having processed overlay strings at the
7481 end of the buffer, record that fact in
7482 it->overlay_strings_at_end_processed_p.
7483 (compare_overlay_entries): If before- and after-strings come
7484 from the same overlay, let before-strings come first.
7485 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
7486 (load_overlay_strings): Take it->add_overlay_start into account
7487 when adding overlay strings.
7488
7489 * dispextern.h (struct it): Add member add_overlay_start.
7490
7491 2000-06-22 Dave Love <fx@gnu.org>
7492
7493 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
7494
7495 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
7496
7497 2000-06-22 Kenichi Handa <handa@etl.go.jp>
7498
7499 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
7500 is greater than 0.
7501
7502 2000-06-21 Dave Love <fx@gnu.org>
7503
7504 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
7505
7506 2000-06-21 Stefan Monnier <monnier@cs.yale.edu>
7507
7508 * syntax.c (back_comment): Simplify string-parity counting (with
7509 the added benefit of handling multiple string-styles as long as
7510 they are not intertwined).
7511 Jump to the slow code as soon as a comment starter is found in
7512 a "string_lossage" position. Fixes the case: " /* " /* " */.
7513
7514 2000-06-21 Dave Love <fx@gnu.org>
7515
7516 * Makefile.in: Use GETLOADAVG_LIBS.
7517
7518 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
7519 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
7520
7521 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
7522
7523 * syntax.c (describe_syntax): Recognize the `n'estable bit.
7524 (Fforward_comment, scan_lists):
7525 Check the comstyle of single-char comment-starters.
7526 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
7527 we're just at the beginning of the comment (f.ex with (*) ... (*)).
7528 Check the comstyle of single-char comment-starters.
7529 Clarify control-flow around the Scomment case.
7530
7531 2000-06-20 Dave Love <fx@gnu.org>
7532
7533 * fns.c (make_hash_table, maybe_resize_hash_table):
7534 Cast arg of next_almost_prime.
7535
7536 * tparam.c [emacs]: Include lisp.h.
7537
7538 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
7539 and unistd.h.
7540
7541 2000-06-20 Gerd Moellmann <gerd@gnu.org>
7542
7543 * keyboard.c (adjust_point_for_property): Check if display
7544 property should be treated as intangible by looking at its value.
7545
7546 * xdisp.c (single_display_prop_intangible_p)
7547 (display_prop_intangible_p): New functions.
7548
7549 * dispextern.h (display_prop_intangible_p): Add prototype.
7550
7551 * xdisp.c (dump_glyph_row): Show type of glyph->object.
7552
7553 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
7554 argument to sigprocmask.
7555
7556 * s/sco5.h (sigblock): Redefined to pass a pointer as second
7557 argument to sigprocmask.
7558
7559 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
7560 sigprocmask_set, and pass a pointer to it to sigprocmask.
7561
7562 * sysdep.c (sigprocmask_set): New variable.
7563
7564 * fileio.c (make_temp_name): Don't use `%s' in string passed to
7565 report_file_error.
7566
7567 2000-06-20 Sam Steingold <sds@gnu.org>
7568
7569 * xrdb.c: Don't declare xmalloc, xrealloc.
7570
7571 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
7572
7573 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
7574 (re_comp): Cast gettext return value to avoid complaints when
7575 !HAVE_LIBINTL.
7576
7577 2000-06-20 Dave Love <fx@gnu.org>
7578
7579 * m/stride.h, m/mips.h: Don't define HAVE_GETWD, HAVE_GETTIMEOFDAY.
7580
7581 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
7582
7583 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
7584
7585 * m/alpha.h: Don't declare xmalloc, xrealloc.
7586
7587 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
7588
7589 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
7590
7591 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
7592
7593 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
7594 HAVE_GETWD.
7595
7596 * keyboard.h (poll_for_input_1): Declare.
7597
7598 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
7599
7600 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
7601
7602 * doprnt.c: Don't declare xmalloc, xrealloc.
7603
7604 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
7605 (getenv, ctime, getwd): Removed.
7606 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
7607
7608 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
7609 x_set_tool_bar_lines.
7610
7611 * config.in: Add HAVE_GETWD. Move some definitions above
7612 machine/system includes.
7613
7614 2000-06-20 Kenichi Handa <handa@etl.go.jp>
7615
7616 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
7617
7618 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
7619 contain information about ENCODING.
7620
7621 * fontset.c (FONTSET_ASCII): Use the first element of char table
7622 for an ASCII font, not defalt slot.
7623 (fontset_ref_via_base): If FONTSET doesn't contain information for
7624 C, try the default fontset.
7625 (make_fontset): Don't copy the default fontset.
7626 (fontset_font_pattern): Likewise.
7627 (accumulate_font_info): If ELT is nil, use the corresponding
7628 element in the default fontset.
7629
7630 2000-06-19 Dave Love <fx@gnu.org>
7631
7632 * syntax.c (Fparse_partial_sexp): Doc fix.
7633
7634 * regex.h: Test PROTOTYPES as well as __STDC__.
7635
7636 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
7637 errno, strerror. Put text after #endif in comment.
7638
7639 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for pcc).
7640
7641 * xterm.c (x_frame_of_widget): Likewise.
7642
7643 2000-06-19 Gerd Moellmann <gerd@gnu.org>
7644
7645 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
7646 to Vfundamental_mode_abbrev_table.
7647
7648 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
7649 bogus objects are marked. This slows down GC by ~80 percent, but
7650 it might be worth trying when debugging GC-related problems.
7651 This feature requires conservative stack marking to be enabled.
7652
7653 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
7654 returns XLookupChars, reset `modifiers' to zero.
7655
7656 2000-06-19 Dave Love <fx@gnu.org>
7657
7658 * mktime.c: Unprotoized.
7659
7660 2000-06-19 Richard Stallman <rms@gnu.org>
7661
7662 * data.c (set_internal): If variable is frame-local,
7663 store the new value immediately into the frame parameter alist.
7664
7665 2000-06-19 Ken Raeburn <raeburn@gnu.org>
7666
7667 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
7668 in the custom handler pointer.
7669
7670 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
7671 value, or checks for CHAR_META can fail when Lisp_Object is a
7672 union type.
7673 * keymap.c (get_keyelt): Likewise.
7674
7675 2000-06-19 Kenichi Handa <handa@etl.go.jp>
7676
7677 * ccl.h (struct ccl_program): New member eol_type.
7678 (struct ccl_spec): New member cr_carryover.
7679
7680 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
7681 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
7682
7683 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
7684 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
7685 (decode_eol_post_ccl): New function.
7686 (decode_coding): Don't detect EOL format here for CCL based coding
7687 systems.
7688 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
7689 decode_eol_post_ccl after running the CCL program.
7690 (code_convert_region): Don't detect EOL format here for CCL based
7691 coding systems.
7692 (decode_coding_string): Likewise.
7693
7694 2000-06-18 Ken Raeburn <raeburn@gnu.org>
7695
7696 * charset.c (update_charset_table): Use XINT on "iso_final_char"
7697 when treating it as an integer.
7698
7699 * coding.h (encode_coding_string): Declare.
7700
7701 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
7702 it as an integer.
7703
7704 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
7705 "xkeymap" to avoid shadowing the "enum map_type" value that needs
7706 to be passed to get_local_map.
7707
7708 * sound.c (Fplay_sound): Don't call make_number on
7709 Frun_hook_with_args count argument.
7710
7711 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
7712 for lisp objects in X event structure data field, when lisp
7713 objects are represented with unions.
7714 (x_scroll_bar_to_input_event): Ditto.
7715
7716 2000-06-16 Ken Raeburn <raeburn@gnu.org>
7717
7718 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
7719 termination of string. Fix sense of test whether
7720 Vline_number_display_limit is an integer.
7721
7722 2000-06-16 Gerd Moellmann <gerd@gnu.org>
7723
7724 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
7725 only if HAVE_X_WINDOWS.
7726
7727 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
7728 of titles.
7729
7730 * dispnew.c (update_frame_1): Handle case that cursor vpos is
7731 out of bounds.
7732
7733 2000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
7734
7735 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
7736 of its headers.
7737
7738 2000-06-15 Kenichi Handa <handa@etl.go.jp>
7739
7740 * coding.c (decode_coding_emacs_mule): Always set src_base at the
7741 start of the while loop.
7742
7743 2000-06-15 Gerd Moellmann <gerd@gnu.org>
7744
7745 * atimer.c (alarm_signal_handler): Add forward declaration.
7746
7747 * data.c (set_internal): Remove debug code.
7748
7749 2000-06-14 Gerd Moellmann <gerd@gnu.org>
7750
7751 * Makefile.in (bootstrap-temacs): Add `-I../src'.
7752
7753 * unexec.c (toplevel) [COFF]: Include coff.h.
7754
7755 * s/lynxos.h: New file.
7756
7757 * keymap.c (Fsingle_key_description): Enclose function key and
7758 event symbol names in angle brackets.
7759
7760 * xdisp.c (setup_echo_area_for_printing): Call
7761 message_log_maybe_newline if message_buf_print is not set.
7762
7763 * print.c (printchar, strout): Don't check message_buf_print
7764 before calling setup_echo_area_for_printing because that
7765 function does something useful even when message_buf_print is
7766 already set.
7767
7768 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines):
7769 New variables.
7770 (ensure_echo_area_buffers): Initialize echo buffer's
7771 truncate lines setting to nil.
7772 (with_echo_area_buffer): Don't set the echo buffer's truncate
7773 lines setting here.
7774 (set_message_1): Set it here instead, based on the value
7775 of message_truncate_lines.
7776 (resize_mini_window): Handle case that lines are truncated.
7777 (syms_of_xdisp): Initialize Qmessage_truncate_lines.
7778 DEFVAR_BOOL message-truncate-lines.
7779
7780 * keyboard.c (read_char): Bind message-truncate-lines to t
7781 while displaying a help-echo.
7782
7783 * lisp.h (Qmessage_truncate_lines): External declaration.
7784
7785 2000-06-13 Gerd Moellmann <gerd@gnu.org>
7786
7787 * xdisp.c (Vline_number_display_limit): Renamed from
7788 line_number_display_limit.
7789 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
7790 Extend documentation string. Initialize
7791 Vline_number_display_limit to nil meaning no limit.
7792 (decode_mode_spec): Use Vline_number_display_limit with its new
7793 meaning.
7794
7795 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
7796
7797 2000-06-13 Richard Stallman <rms@gnu.org>
7798
7799 * frame.c (Fmodify_frame_parameters): Doc fix.
7800
7801 * xfns.c (x_set_frame_parameters): Comment fix.
7802
7803 * frame.c (store_frame_param): Call swap_in_global_binding if the
7804 variable's current binding was chosen based on this frame.
7805
7806 * data.c (swap_in_global_binding): New function.
7807
7808 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
7809
7810 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
7811 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
7812
7813 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
7814
7815 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
7816
7817 2000-06-12 Jason Rumney <jasonr@gnu.org>
7818
7819 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
7820
7821 * w32.h (EMACS_W32_H): Renamed from _NT_H_
7822
7823 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
7824
7825 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
7826
7827 2000-06-12 Gerd Moellmann <gerd@gnu.org>
7828
7829 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
7830 (syms_of_xfaces): Defsubr Sdump_colors.
7831 (x_free_colors): Don't treat b&w specially on default visual.
7832 (x_free_dpy_colors): New function.
7833 (free_face_colors): Don't check visual class; it's done
7834 in x_free_colors.
7835
7836 * xterm.c (x_frame_of_widget): New function.
7837 (x_alloc_nearest_color_for_widget): Use it.
7838 (x_copy_dpy_color): New function.
7839 (x_destroy_window): Free various colors.
7840
7841 2000-06-12 Kenichi Handa <handa@etl.go.jp>
7842
7843 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
7844
7845 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
7846
7847 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
7848
7849 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
7850
7851 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
7852
7853 2000-06-11 Dave Love <fx@gnu.org>
7854
7855 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
7856
7857 2000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
7858
7859 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
7860
7861 2000-06-11 Gerd Moellmann <gerd@gnu.org>
7862
7863 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
7864 to `XEvent *'.
7865
7866 2000-06-10 Kenichi Handa <handa@etl.go.jp>
7867
7868 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
7869 (regex_compile): Fix the code for handling the case of single byte
7870 char and multibyte char being mixed in a range within [...].
7871
7872 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
7873 and dst_multibyte members of coding.
7874
7875 * charset.c (update_charset_table): Update the table
7876 bytes_by_char_head.
7877 (init_charset_once): Initialize elements of bytes_by_char_head to
7878 1 except for leading codes for private charases.
7879
7880 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
7881 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte sequence.
7882
7883 2000-06-09 Ken Raeburn <raeburn@gnu.org>
7884
7885 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
7886 access the data it doesn't point to.
7887
7888 2000-06-08 Gerd Moellmann <gerd@gnu.org>
7889
7890 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
7891 will be translated to a switch-frame event when reading the
7892 event queue. This is necessary because Emacs otherwise won't
7893 perform a switch-frame to a new frame until some other event, for
7894 example a keystroke event, forces it to do so. This has various
7895 effects, one visible being that the cursor of a frame created with
7896 C-x 5 2 or switched to with a window manager key binding like
7897 A-TAB stays hollow because selected_window isn't on the newly
7898 focused frame until the switch-frame is performed.
7899
7900 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
7901 generating a switch-frame event if necessary.
7902
7903 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
7904
7905 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
7906 it's an integer.
7907
7908 2000-06-08 Kenichi Handa <handa@etl.go.jp>
7909
7910 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a charset.
7911
7912 2000-06-07 Gerd Moellmann <gerd@gnu.org>
7913
7914 * window.c (displayed_window_lines): Take empty lines at
7915 the bottom of a window into account.
7916
7917 * window.c (displayed_window_lines): New function.
7918 (Fmove_to_window_line): Use displayed_window_lines to determine
7919 the number of lines to move, instead of using the window's height.
7920
7921 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
7922 to stop reading, even if the form read sets point to a different
7923 value when evaluated.
7924
7925 * xdisp.c (display_line): Fix code deciding in which line to
7926 put the cursor.
7927
7928 2000-06-07 Kenichi Handa <handa@etl.go.jp>
7929
7930 * fileio.c (e_write): Free composition data if stored in
7931 coding->cmp_data.
7932
7933 2000-06-06 Gerd Moellmann <gerd@gnu.org>
7934
7935 * xdisp.c (display_line): Set row's and iterator's
7936 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
7937 Set cursor even if row ends in the middle of a character.
7938 (dump_glyph_row): Print values of new flags.
7939 (redisplay_window) <cursor movement in unchanged window>: When
7940 point has been moved forward, and PT is at the end of the cursor
7941 row, don't place the cursor in the next row if the cursor row ends
7942 in the middle of a character or at ZV.
7943
7944 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
7945 (struct glyph_row): Add starts_in_middle_of_char_p and
7946 ends_in_middle_of_char_p.
7947 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
7948 ends_in_middle_of_char_p flag.
7949 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
7950
7951 * term.c (append_glyph): Revert change of 2000-06-06.
7952
7953 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
7954 padding glyph not fitting on line as whole character not
7955 fitting on line.
7956
7957 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
7958 this isn't true for images with `:ascent 100'.
7959
7960 2000-06-06 Kenichi Handa <handa@etl.go.jp>
7961
7962 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
7963 as modified if it is originally unmodified.
7964
7965 * term.c (encode_terminal_code): Change the way to check if
7966 terminal coding does any conversion.
7967 (append_glyph): Set glyph->pixel_width correctly.
7968
7969 * xdisp.c (display_line): While checking line continuation, pay
7970 attention to a padding glyph.
7971
7972 2000-06-05 Gerd Moellmann <gerd@gnu.org>
7973
7974 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
7975
7976 2000-06-05 Dave Love <fx@gnu.org>
7977
7978 * xdisp.c: Include fontset.h.
7979
7980 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
7981
7982 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
7983
7984 * dispnew.c: Conditionally include term.h.
7985
7986 * coding.h: Declare code_convert_string_norecord.
7987
7988 * frame.h (struct frame): Use volatile unconditionally.
7989
7990 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
7991
7992 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
7993
7994 * systime.h: Protect against multiple inclusion.
7995 (timezone) [USG5_4]: Define as time_t.
7996
7997 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
7998 (Foptimize_char_table, make_temp_name): Declare.
7999
8000 * Makefile.in (xdisp.o): Depend on fontset.h.
8001
8002 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
8003
8004 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
8005 (Foptimize_char_table, make_temp_name): Declare.
8006
8007 * s/irix4-0.h:
8008 * s/irix5-0.h:
8009 * s/netbsd.h: Don't define autoconfiscated MATHERR.
8010
8011 2000-06-02 Dave Love <fx@gnu.org>
8012
8013 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
8014
8015 2000-06-02 Gerd Moellmann <gerd@gnu.org>
8016
8017 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
8018 result face, set flags in that face indicating that colors may not
8019 be freed.
8020
8021 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
8022 glyph, use the ASCII NUL character to determine the face.
8023
8024 2000-06-02 Dave Love <fx@gnu.org>
8025
8026 * sysdep.c: Conditionally include stdlib.h, unistd.h.
8027 (VFORK_RETURN_TYPE): Remove.
8028
8029 * config.in: Add NO_MATHERR.
8030
8031 2000-06-01 Dave Love <fx@gnu.org>
8032
8033 * cmds.c (internal_self_insert): Don't check
8034 Vbefore_change_function, Vafter_change_function.
8035
8036 * insdel.c (signal_before_change, signal_after_change): Likewise.
8037
8038 * buffer.c (Vbefore_change_function, Vafter_change_function):
8039 Variables and their initializations deleted.
8040
8041 * callint.c (Fcall_interactively): Doc fix.
8042
8043 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
8044
8045 2000-05-31 Dave Love <fx@gnu.org>
8046
8047 * textprop.c: Revert last change -- duplicated.
8048
8049 2000-05-31 Gerd Moellmann <gerd@gnu.org>
8050
8051 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
8052 in #if 0.
8053
8054 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
8055
8056 2000-05-31 Jason Rumney <jasonr@gnu.org>
8057
8058 * search.c (Fre_search_forward, Fre_search_backward)
8059 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
8060
8061 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
8062
8063 2000-05-30 Jason Rumney <jasonr@gnu.org>
8064
8065 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
8066 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
8067
8068 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type member.
8069
8070 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
8071 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
8072 expand a nil default_filename.
8073
8074 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
8075 pointer to glyph_to_pixel_coords, not a frame.
8076
8077 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
8078 coding.h to dependencies.
8079
8080 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
8081
8082 * w32console.c (glyph_to_pixel_coords): Change first parameter to
8083 window pointer to be consistent with w32term.c and xterm.c.
8084
8085 * w32fns.c: Format and doc changes to bring closer to xfns.c.
8086 (VIETNAMESE_CHARSET): Define if not defined in system headers.
8087 (Qline_spacing, Qcenter): New variables.
8088 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
8089 (x_set_line_spacing): New function.
8090 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT macros.
8091 (x_specified_cursor_type): New function.
8092 (x_set_cursor_type): Use it.
8093 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
8094 and icon strings.
8095 (validate_x_resource_name, x_get_resource_string): Measure lengths
8096 of external strings in bytes.
8097 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
8098 GetTextExtentPoint32 with NULL title.
8099 (Fx_create_frame): Initialize Qline_spacing.
8100 (w32_load_system_font): Initialize font->double_byte_p.
8101 (x_to_w32_charset): Use Vw32_charset_info_alist.
8102 (Image, busy cursor, tooltip functions): Merged changes from
8103 xfns.c. Not yet functional on Windows.
8104
8105 * w32gui.h (W32FontStruct): Add double_byte_p member.
8106
8107 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
8108 (emacs_button_translation): Use it.
8109 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
8110 in `mask' to be set.
8111
8112 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
8113 menu strings.
8114
8115 * w32term.c: Format and doc changes to bring closer to xterm.c.
8116 (w32_char_font_type): New enum.
8117 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
8118 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
8119 (w32_encode_char): New function.
8120 (x_encode_char): Removed.
8121 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
8122 x_encode_char and w32_font_is_double_byte.
8123 (x_produce_image_glyph): Use image_ascent.
8124 (x_produce_glyphs): Use new version of w32_per_char_metric and
8125 handle NULL return value. Allow extra line spacing.
8126 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
8127 (w32_get_glyph_overhangs): Remove unicode_p param. Use
8128 w32_font_type member of glyph instead.
8129 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
8130 (fast_find_position): Make sure not to consider rows not visible
8131 in the window.
8132 (w32_read_socket) [WM_MENUSELECT]: Cannot call
8133 w32_menu_display_help with input blocked, as it can abort.
8134 (x_display_and_set_cursor): Choose cursor depending
8135 on buffer-local value of cursor_type.
8136 (x_draw_bar_cursor): Add parameter WIDTH.
8137
8138 * w32term.h (CP_DEFAULT): Define.
8139 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
8140
8141 2000-05-30 Gerd Moellmann <gerd@gnu.org>
8142
8143 * search.c (Fre_search_forward, Fre_search_backward)
8144 (Fposix_search_backward, Fposix_search_forward): Doc fix.
8145
8146 2000-05-30 Kenichi Handa <handa@etl.go.jp>
8147
8148 * coding.c (detect_coding_iso2022): Fix code for checking
8149 CODING_CATEGORY_MASK_ISO_8_2.
8150
8151 2000-05-29 Stefan Monnier <monnier@cs.yale.edu>
8152
8153 * regex.c (PREFETCH_NOLIMIT): New function.
8154 (re_match_2_internal): Use it and adjust the end_match_2 logic.
8155
8156 2000-05-29 Gerd Moellmann <gerd@gnu.org>
8157
8158 * syntax.c (find_defun_start): Move test for
8159 open_paren_in_column_0_is_defun_start outside of the loop.
8160
8161 * xdisp.c (redisplay_window): Really switch buffers when
8162 displaying mode lines, and temporarily set selected_frame to the
8163 frame of the window that's redisplayed.
8164
8165 * xfaces.c (free_realized_faces): Block/unblock input.
8166 (free_realized_multibyte_face): Ditto.
8167
8168 2000-05-29 Dave Love <fx@gnu.org>
8169
8170 * textprop.c (Qkeymap): New variable.
8171 (syms_of_textprop): Intern it.
8172
8173 * keymap.c: Include intervals.h.
8174 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
8175
8176 * Makefile.in (keymap.o): Depend on intervals.h.
8177
8178 * keyboard.c (menu_bar_items, tool_bar_items)
8179 (Fexecute_extended_command): Deal with `keymap' property.
8180 (read_key_sequence): Track map from `keymap' property as well as
8181 `local_map'.
8182
8183 * intervals.c (get_local_map): Extra arg to allow looking for
8184 `keymap' too.
8185
8186 * intervals.h (map_property): New enum.
8187 (get_local_map): Extra arg using it.
8188 (Qkeymap): Declare.
8189
8190 * lisp.h (get_local_map): Don't declare here.
8191
8192 2000-05-29 Kenichi Handa <handa@etl.go.jp>
8193
8194 * Makefile.in (callproc.o): Depend on composite.h.
8195
8196 * callproc.c: Include composite.h.
8197 (Fcall_process): Handle composition correctly.
8198
8199 * coding.h (coding_allocate_composition_data): Extern it.
8200 (coding_restore_composition): Likewise.
8201
8202 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
8203 yet allocated, finish decoding with result
8204 CODING_FINISH_INSUFFICIENT_CMP.
8205 (coding_allocate_composition_data): Make it non-static.
8206 (coding_restore_composition): Likewise.
8207
8208 2000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
8209
8210 * charset.c (syms_of_charset): Revert last change.
8211
8212 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
8213
8214 * term.c (produce_glyphs): Treat characters from the eight-bit-*
8215 charsets as unibyte, with 1-column screen width. Sent by Kenichi
8216 Handa.
8217
8218 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
8219
8220 * charset.c (syms_of_charset): Set width of character sets
8221 eight-bit-control and eight-bit-graphic to 1 column.
8222
8223 2000-05-26 Gerd Moellmann <gerd@gnu.org>
8224
8225 * config.in (HAVE_SPEED_T): New define.
8226
8227 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
8228 `extern speed_t'.
8229
8230 2000-05-26 Dave Love <fx@gnu.org>
8231
8232 * coding.c (shrink_decoding_region): Initialize eol_conversion.
8233
8234 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
8235 (Fsubr_arity): New function.
8236 (syms_of_data): Install them.
8237
8238 2000-05-26 Kenichi Handa <handa@etl.go.jp>
8239
8240 * charset.c (init_charset_once): Set the table bytes_by_char_head
8241 correctly.
8242
8243 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
8244 the default fontset to what Emacs uses by default.
8245 (check_registry_encoding): This function deleted.
8246 (Fset_fontset_font): Remove the adhoc condition for the default
8247 fontset. Allow cons in FONTNAME.
8248
8249 * fns.c (map_char_table): Ignore char-table entries for
8250 charsets eight-bit-control and eight-bit-graphic.
8251
8252 2000-05-25 Ken Raeburn <raeburn@gnu.org>
8253
8254 * emacs.c (main): Initialize keyboard syms before initializing
8255 window code, so face names are available.
8256
8257 2000-05-25 Stefan Monnier <monnier@cs.yale.edu>
8258
8259 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
8260 of an anchor at the beginning of a shy-group.
8261
8262 2000-05-25 Gerd Moellmann <gerd@gnu.org>
8263
8264 * xdisp.c (handle_invisible_prop): Don't try to skip over
8265 invisible text if end of text is already reached.
8266
8267 2000-05-25 Dave Love <fx@gnu.org>
8268
8269 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
8270
8271 * coding.c (encode_eol): Add null statement after label.
8272
8273 2000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
8274
8275 * w16select.c (Fw16_set_clipboard_data): Fix the change from
8276 2000-05-20.
8277
8278 2000-05-25 Kenichi Handa <handa@etl.go.jp>
8279
8280 * ccl.c (ccl_driver): Fix previous change.
8281
8282 2000-05-25 Kenichi Handa <handa@etl.go.jp>
8283
8284 * coding.c (run_pre_post_conversion_on_str): Set point to the
8285 beginning of buffer before calling coding->post_read_conversion.
8286 (decode_coding_string): Give correct args to
8287 run_pre_post_conversion_on_str.
8288 (encode_coding_string): Likewise.
8289
8290 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
8291 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
8292 eight-bit-graphic correctly.
8293
8294 2000-05-24 Kenichi HANDA <handa@etl.go.jp>
8295
8296 * fileio.c (Finsert_file_contents): Even if a file is not found,
8297 execute codes for setting up coding system. Call
8298 after-insert-file-functions unconditionally.
8299
8300 2000-05-24 Gerd Moellmann <gerd@gnu.org>
8301
8302 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
8303 BSD_PGRPS are not defined.
8304
8305 2000-05-24 Kenichi Handa <handa@etl.go.jp>
8306
8307 * charset.c (update_charset_table): Accept nil in LONG_NAME and
8308 DESCRIPTION.
8309 (syms_of_charset): Avoid building same strings.
8310
8311 2000-05-23 Gerd Moellmann <gerd@gnu.org>
8312
8313 * lread.c (Fload): Add a comment about the meaning of
8314 Vuser_init_file being t.
8315
8316 * puresize.h (BASE_PURESIZE): Increase to 675000.
8317
8318 * s/gnu-linux.h (setpgrp): Don't define it here because this
8319 prevents compilation on GNU/Linux systems with glib 2.2.
8320
8321 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
8322 as setpgid.
8323
8324 2000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
8325
8326 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
8327 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
8328 version.
8329 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
8330
8331 2000-05-23 Kenichi Handa <handa@etl.go.jp>
8332
8333 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8334
8335 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
8336
8337 * term.c (encode_terminal_code): Set coding->src_multibyte properly.
8338
8339 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
8340
8341 2000-05-22 Kenichi Handa <handa@etl.go.jp>
8342
8343 * keyboard.c (read_char): Allow character codes 128..255 to be
8344 handled by input-method-function.
8345
8346 * insdel.c (adjust_markers_for_replace): Fix previous change.
8347 (adjust_after_replace): If PREV_TEXT is nil, call
8348 adjust_markers_for_insert, not adjust_markers_for_replace.
8349
8350 2000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
8351
8352 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
8353 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
8354 [HAVE_GRANDPT]: Define.
8355 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
8356
8357 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
8358 like SYSV_PTYS.
8359
8360 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
8361
8362 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
8363
8364 2000-05-20 Kenichi Handa <handa@etl.go.jp>
8365
8366 The following changes are to handle 8-bit characters in a
8367 multibyte buffer/string without facing with byte combining
8368 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
8369 eight-bit-graphic (for 0xA0..0xFF) are introduced.
8370
8371 * Makefile.in (fns.o): Depend on charset.h.
8372
8373 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
8374 convert it to unibyte.
8375 (make_string): Use parse_str_as_multibyte, not chars_in_text.
8376
8377 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
8378 apparent char boundary.
8379 (Fset_buffer_multibyte): Convert 8-bit characters in the range
8380 0x80..0x9F to/from multibyte form.
8381
8382 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
8383 to unibyte.
8384
8385 * callproc.c (Fcall_process): Always encode an argument string if
8386 it is multibyte. Setup src_multibyte and dst_multibyte members of
8387 process_coding properly.
8388
8389 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
8390 SPLIT_NON_ASCII_CHAR.
8391
8392 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
8393 as is.
8394 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
8395
8396 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New variables.
8397 (SPLIT_CHARACTER_SEQ): This macro deleted.
8398 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is valid.
8399 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
8400 and eight-bit-graphic.
8401 (char_to_string): Likewise. Signal an error for too large
8402 character code.
8403 (char_printable_p): Return 0 for 8-bit characters.
8404 (update_charset_table): Update iso_charset_table only when a final
8405 character is non-negative.
8406 (find_charset_in_text): Renamed from find_charset_in_str.
8407 Arguments and return value changed. Callers changed.
8408 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
8409 be -1 if CHARSET is used only internally.
8410 (Fmake_char_internal): Handle new charsets; eight-bit-control and
8411 eight-bit-graphic.
8412 (Fcharset_after): Simplified.
8413 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
8414 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
8415 (multibyte_chars_in_text): Simplified by assuming there's no
8416 invalid multibyte sequence.
8417 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
8418 (str_as_unibyte): New functions.
8419 (Fstring): Simpified by assuming that byte combining never happens.
8420 (init_charset_once): Initialization for
8421 LEADING_CODE_8_BIT_CONTROL.
8422 (syms_of_charset): Intern and staticpro Qeight_bit_control and
8423 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
8424 eight-bit-control and eight-bit-graphic.
8425
8426 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL)
8427 (CHARSET_8_BIT_GRAPHIC): New macros.
8428 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
8429 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
8430 (CHARSET_REVERSE_CHARSET): Likewise.
8431 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
8432 eight-bit-graphic.
8433 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
8434 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
8435 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
8436 encounter an invalid multibyte sequence.
8437 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
8438 sequence is always valid.
8439 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
8440 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New macros.
8441 (CHAR_STRING): For 8-bit characters, call char_to_string.
8442 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
8443 multibyte sequence is always valid.
8444 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
8445 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
8446 (str_as_unibyte): Extern them.
8447 (BCOPY_SHORT): Fix a bug.
8448 (CHAR_LEN): This macro deleted. Callers changed to use CHAR_BYTES.
8449 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
8450 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
8451 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
8452
8453 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
8454 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
8455 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE)
8456 (EMIT_BYTES): New macros.
8457 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII)
8458 (DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
8459 macros deleted.
8460 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
8461 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
8462 check the validity of multibyte sequence.
8463 (decode_coding_emacs_mule): New function.
8464 (encode_coding_emacs_mule): New macro.
8465 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
8466 the source.
8467 (DECODE_ISO_CHARACTER): Just return a character code.
8468 (DECODE_COMPOSITION_START): Set coding->result instead of result.
8469 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
8470 EMIT_CHAR to produced decoded characters. Exit the loop only by
8471 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
8472 block here.
8473 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
8474 only position codes for an invalid character.
8475 (encode_designation_at_bol): Return new destination pointer. 5th
8476 arg DSTP is changed to DST.
8477 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
8478 from the source by ONE_MORE_CHAR. Don't handle the case of last
8479 block here.
8480 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
8481 macros deleted.
8482 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
8483 (detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
8484 TWO_MORE_BYTES to fetch a byte from the source.
8485 (encode_eol): Pay attention to coding->src_multibyte.
8486 (detect_coding, detect_eol): Preserve members src_multibyte and
8487 dst_multibyte.
8488 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
8489 (encoding_buffer_size): Set magnification to 3 for all coding
8490 systems that require encoding.
8491 (ccl_coding_driver): For decoding, be sure that the result is
8492 valid multibyte sequence.
8493 (decode_coding): Initialize coding->errors and coding->result.
8494 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
8495 and raw-text, always call decode_eol. Handle the case of last
8496 block here. If not coding->dst_multibyte, convert the resulting
8497 sequence to unibyte.
8498 (encode_coding): Initialize coding->errors and coding->result.
8499 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
8500 and raw-text, always call encode_eol. Handle the case of last
8501 block here.
8502 (shrink_decoding_region, shrink_encoding_region): Detect cases
8503 that we can't skip data more rigidly.
8504 (code_convert_region): Setup src_multibyte and dst_multibyte
8505 members of coding. For decoding, if the buffer is multibyte,
8506 convert the source sequence to unibyte in advance. For encoding,
8507 if the buffer is multibyte, convert the resulting sequence to
8508 multibyte afterward.
8509 (run_pre_post_conversion_on_str): New function.
8510 (code_convert_string): Deleted and divided into the following two.
8511 (decode_coding_string, encode_coding_string): New functions.
8512 (code_convert_string1, code_convert_string_norecord): Call one of
8513 above.
8514 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
8515 MAKE_NON_ASCII_CHAR.
8516 (Fset_terminal_coding_system_internal)
8517 (Fset_safe_terminal_coding_system_internal): Setup src_multibyte
8518 and dst_multibyte members.
8519 (init_coding_once): Initialize iso_code_class with new enum
8520 ISO_control_0 and ISO_control_1.
8521
8522 * coding.h (enum iso_code_class_type): Member ISO_control_code is
8523 devided into ISO_control_0 and ISO_control_1.
8524 (struct coding_system): New members src_multibyte, dst_multibyte,
8525 errors, and result. Delete member fake_multibyte.
8526 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
8527 nonzero.
8528 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
8529 nonzero.
8530
8531 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
8532 (Faset): Likewise.
8533
8534 * editfns.c (Fformat): Be sure to convert 8-bit characters to
8535 multibyte form.
8536 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
8537 combining occurs.
8538 (Ftranspose_region): Delete codes for handling byte combining.
8539
8540 * fileio.c (Finsert_file_contents): Setup src_multibyte and
8541 dst_multibyte members of coding. On handling REPLACE on unibyte
8542 buffer, convert the result of decode_coding to unibyte. On
8543 inserting into a mutibyte buffer, always call code_convert_region.
8544 (e_write): Setup coding->src_multibyte according to the
8545 multibyteness of the source (buffer or string).
8546
8547 * fns.c (concat): Handle 8-bit characters correctly.
8548 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
8549 unibyte in the result.
8550 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
8551 valid multibyte form in the result.
8552 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
8553 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
8554 return -1, signal an error.
8555 (base64_encode_1): New arg MULTIBYTE. Get each character by
8556 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
8557 character is found, return -1.
8558 (Fbase64_decode_region): Delete codes for handling byte-combining.
8559 Treat each decoded byte as a unibyte character.
8560 (Fbase64_decode_string): Return unibyte string.
8561 (Fcompare_strings, concat, string_byte_to_char): Use
8562 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
8563 FETCH_STRING_CHAR_ADVANCE.
8564 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8565 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
8566
8567 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
8568 SPLIT_NON_ASCII_CHAR.
8569 (fontset_ref_via_base, fontset_set): Likewise
8570
8571 * insdel.c (adjust_markers_for_record_delete): Deleted.
8572 (adjust_markers_for_insert): Argument changed. Caller changed.
8573 (adjust_markers_for_replace): Likewise.
8574 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error)
8575 (CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
8576 (copy_text): Delete unused local varialbe c_save. For converting
8577 to multibyte, be sure to make all 8-bit characters in valid
8578 multibyte form.
8579 (count_size_as_multibyte): Handle 8-bit characters correctly.
8580 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
8581 (adjust_after_replace, replace_range, del_range_2)
8582 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
8583 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
8584 (adjust_after_replace, replace_range, del_range_2) Delete codes for
8585 handling byte combining.
8586 (adjust_before_replace): Deleted.
8587
8588 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
8589 SPLIT_NON_ASCII_CHAR.
8590 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
8591 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8592 (Fkey_description): Likewise.
8593
8594 * lread.c (read1): On reading multibyte string, be sure to make
8595 all 8-bit chararacters in valid multibyte form.
8596 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8597
8598 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
8599 unconditionally.
8600
8601 * process.c (Fstart_process): GCPRO current_dir before calling
8602 Ffind_operation_coding_system. Encode arguments here.
8603 (create_process): Don't encode arguments here. Setup
8604 src_multibyte and dst_multibyte members of struct coding.
8605 (read_process_output): Setup src_multibyte and dst_multibyte
8606 members of struct coding. If the output is to multibyte buffer,
8607 always decode the output of the process. Adjust the
8608 representation of 8-bit characters to the multibyteness of the output.
8609 (send_process): Setup coding->src_multibyte according to the
8610 multibyteness of the source.
8611
8612 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8613 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
8614 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
8615
8616 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of CHAR_LEN.
8617
8618 * w16select.c (Fw16_set_clipboard_data): Setup members
8619 src_multibyte and dst_multibyte of coding. Adjusted for the
8620 change for find_charset_in_str.
8621 (Fw16_get_clipboard_data): Likewise.
8622
8623 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
8624 dst_multibyte of coding.
8625 (x_to_w32_font): Likewise.
8626
8627 * w32select.c (Fw32_set_clipboard_data): Setup members
8628 src_multibyte and dst_multibyte of coding. Adjusted for the
8629 change for find_charset_in_str.
8630 (Fw32_get_clipboard_data): Likewise.
8631
8632 * xdisp.c (get_next_display_element): Handle 8-bit characters
8633 correctly.
8634 (next_element_from_display_vector): Use CHAR_BYTES instead of CHAR_LEN.
8635 (disp_char_vector): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
8636
8637 * xselect.c (selection_data_to_lisp_data): Setup members
8638 src_multibyte and dst_multibyte of coding. Adjusted for the
8639 change for find_charset_in_str.
8640 (lisp_data_to_selection_data): Likewise.
8641
8642 2000-05-19 Gerd Moellmann <gerd@gnu.org>
8643
8644 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed buffer.
8645
8646 * dispextern.h (Vimage_types): Add extern declaration.
8647
8648 * xdisp.c (Vimage_types): Moved here from xfns.c.
8649 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
8650
8651 * xfns.c (Vimages_types): Moved to xdisp.c.
8652 (syms_of_xfns): Move `image-types' to xdisp.c.
8653
8654 * w32fns.c (Vimage_types): Removed.
8655 (syms_of_w32fns): Remove `image-types'.
8656
8657 2000-05-18 Kenichi Handa <handa@etl.go.jp>
8658
8659 * fns.c (map_char_table): Pay attention to character number of
8660 charset. Check the validity of charset at the first level. For
8661 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
8662 the default value.
8663
8664 * fontset.c: Include "buffer.h".
8665 (fs_load_font): If the face has fontset, record the face ID in
8666 that fontset.
8667 (Finternal_char_font): New function.
8668 (accumulate_font_info): New function.
8669 (Ffontset_info): Rewritten for the new fontset implementation.
8670 (syms_of_fontset): Register Vdefault_fontset in the first element
8671 of Vfontset_table. Include Vdefault_fontset in
8672 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
8673 function.
8674
8675 2000-05-16 Dave Love <fx@gnu.org>
8676
8677 * m/iris5d.h: Deleted -- unused.
8678
8679 2000-05-16 Gerd Moellmann <gerd@gnu.org>
8680
8681 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
8682 `invalid' instead of `illegal'.
8683
8684 * indent.c (Fmove_to_column): When ending within a tab, insert
8685 spaces first so that markers at the end of the tab get adjusted.
8686
8687 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
8688 buffer list that wasn't selected in that frame.
8689
8690 * filelock.c (get_boot_time): To obtain an 8 char file name, which
8691 is needed on mescaline, use a 2 char prefix, and call
8692 make_temp_name with second arg non-zero.
8693
8694 * fileio.c (make_temp_name): New function, extracted from
8695 Fmake_temp_name.
8696 (Fmake_temp_name): Use it.
8697
8698 2000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
8699
8700 * window.c (coordinates_in_window): Subtract 1 when computing right_x.
8701
8702 2000-05-15 Gerd Moellmann <gerd@gnu.org>
8703
8704 * Makefile.in (lisp): Add env.elc.
8705
8706 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
8707
8708 2000-05-12 Gerd Moellmann <gerd@gnu.org>
8709
8710 * search.c (Freplace_match): Handle case of `\N' in the
8711 replacement when there's no group N.
8712
8713 2000-05-11 Gerd Moellmann <gerd@gnu.org>
8714
8715 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
8716 of the message to message_dolog.
8717
8718 * keyboard.c (read_char): Don't clear current message for help
8719 events; let the code handling help events handle this. Change
8720 code detecting help events that should be ignored.
8721
8722 * xdisp.c (handle_single_display_prop): Don't try to set PT if
8723 we're interating over a string.
8724
8725 2000-05-09 Dave Love <fx@gnu.org>
8726
8727 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
8728 that offset before writing. Move gcpro region past call of
8729 Ffile_regular_p.
8730
8731 2000-05-04 Dave Love <fx@gnu.org>
8732
8733 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
8734
8735 2000-05-04 Gerd Moellmann <gerd@gnu.org>
8736
8737 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
8738 of inserted characters when BUF equals the current buffer, and PT
8739 is in front of or equal to FROM.
8740
8741 2000-05-03 Gerd Moellmann <gerd@gnu.org>
8742
8743 * xdisp.c (handle_single_display_prop): If display property value
8744 is invalid, or something not supported on the frame, restore
8745 iterator's position to what it was initially. Make sure to return
8746 0 for invalid and unsupported property values.
8747
8748 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
8749 that x_per_char_metric returns null.
8750
8751 2000-05-02 Gerd Moellmann <gerd@gnu.org>
8752
8753 * xterm.h (struct face): Add forward declaration.
8754 (struct image): Ditto.
8755 (image_ascent): Add prototype.
8756
8757 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
8758 (x_draw_image_relief, x_draw_image_foreground_1): Call function
8759 image_ascent instead of using IMAGE_ASCENT.
8760
8761 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
8762 (IMAGE_ASCENT): Removed.
8763
8764 * xfns.c (Qcenter): New variable.
8765 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
8766 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
8767 (image_ascent): New function.
8768 (lookup_image): Recognize `:ascent center'.
8769 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
8770 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
8771 (xbm_load): Don't set image's ascent here.
8772 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
8773 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
8774 check ascent values here.
8775 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
8776 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
8777 (syms_of_xfns): Initialize Qcenter.
8778
8779 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
8780 to the limits, increase the limits.
8781
8782 2000-05-01 Kenichi Handa <handa@etl.go.jp>
8783
8784 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
8785 Check Vfont_encoding_alist against the full name of the opened font.
8786
8787 2000-04-28 Gerd Moellmann <gerd@gnu.org>
8788
8789 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
8790 taller than the window.
8791
8792 2000-04-28 Kenichi Handa <handa@etl.go.jp>
8793
8794 * xfaces.c (realize_x_face): Fix the argument of the second
8795 xassert. BASE_FACE may not be a face for ASCII.
8796
8797 2000-04-27 Gerd Moellmann <gerd@gnu.org>
8798
8799 * print.c (print_object): Treat print-length < 0 as nil.
8800
8801 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
8802
8803 * s/freebsd.h (TERMCAP_OBJ): Removed.
8804 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
8805
8806 * lread.c (read1): Don't treat period followed by certain
8807 characters as symbol start.
8808
8809 * xfns.c (slurp_file): New function.
8810 (xbm_image_p): Handle case of in-memory XBM files.
8811 (xbm_scan): Rewritten to work on memory buffers instead of files.
8812 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
8813 Work on memory buffers instead of files. If DATA is null test
8814 if buffer looks like an in-memory XBM file.
8815 (xbm_load_image): Renamed from xbm_load_image_file. Work on
8816 memory buffers instead of files.
8817 (xbm_file_p): New function.
8818 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
8819
8820 * lread.c (end_of_file_error): New function.
8821 (read1): Call it instead of signaling `end-of-file' directly.
8822
8823 * print.c (print_error_message): Print data of `end-of-file'
8824 with Fprinc instead of Fprin1.
8825
8826 2000-04-26 Ken Raeburn <raeburn@gnu.org>
8827
8828 * window.c (freeze_window_start): Check that minibuffer scroll
8829 window isn't nil before extracting the window structure pointer
8830 from it.
8831
8832 * undo.c (record_delete): If we hit the end of the undo list, stop
8833 picking elements apart.
8834
8835 2000-04-26 Gerd Moellmann <gerd@gnu.org>
8836
8837 * xdisp.c (display_line): If lines are continued, restore
8838 iterator's ascent/descent information to the values before the
8839 first glyph not fitting on the line.
8840
8841 2000-04-25 Gerd Moellmann <gerd@gnu.org>
8842
8843 * xdisp.c (try_window_id) <all changes above window start>: Adjust
8844 positions in glyph matrix. Don't compute new window end positions.
8845
8846 * dispnew.c (increment_matrix_positions): Renamed from
8847 increment_glyph_matrix_buffer_positions.
8848 (increment_row_positions): Renamed from
8849 increment_glyph_row_buffer_positions.
8850
8851 * dispextern.h: Change names of renamed functions from dispnew.c
8852 in prototypes.
8853
8854 2000-04-24 Gerd Moellmann <gerd@gnu.org>
8855
8856 * fileio.c (Fdo_auto_save): Create directories for auto-save
8857 list file if necessary.
8858
8859 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
8860 from buffer or frame.
8861 (automatic_hscrolling_p): New variable.
8862 (hscroll_windows): Scroll windows horizontally only if automatic
8863 hscrolling is allowed.
8864 (syms_of_xdisp): New variable `automatic-hscrolling'.
8865
8866 * frame.h (struct frame): Add member extra_line_spacing.
8867
8868 * xfns.c (x_set_line_spacing): New function.
8869 (Fx_create_frame): Set line spacing from resources.
8870 (Qline_spacing): New variable.
8871 (syms_of_xfns): Initialize Qline_spacing.
8872
8873 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
8874
8875 * buffer.c (init_buffer_once): Handle extra_line_spacing.
8876 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
8877 (reset_buffer): Don't initialize extra2 and extra3. Initialize
8878 extra_line_spacing from default value.
8879 (init_buffer_once): Initialize default value of extra_line_spacing.
8880
8881 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
8882 and extra3.
8883
8884 * xterm.c (x_produce_glyphs): Remove reference to struct it's
8885 prompt_width. Add extra line spacing.
8886
8887 * term.c (produce_glyphs): Remove reference to struct it's
8888 prompt_width.
8889
8890 * dispextern.h (struct it): Remove member prompt_width, add
8891 extra_line_spacing.
8892
8893 2000-04-22 Gerd Moellmann <gerd@gnu.org>
8894
8895 * dispnew.c (update_frame_line): When writing a whole line, make
8896 sure cursor is in the right row afterwards, otherwise a use of
8897 capability `ch' in cmgoto might leave the cursor in the row below.
8898
8899 2000-04-21 Gerd Moellmann <gerd@gnu.org>
8900
8901 * lisp.h (struct Lisp_Buffer_Cons): Remove.
8902
8903 * keyboard.c (timer_check): Fix typo in comment.
8904
8905 2000-04-21 Kenichi Handa <handa@etl.go.jp>
8906
8907 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
8908 name change: ch -> character.
8909
8910 2000-04-20 Gerd Moellmann <gerd@gnu.org>
8911
8912 * keyboard.c (echo_message_buffer): New variable.
8913 (echo_now): Set echo_message_buffer to the echo area buffer used
8914 to display the echo.
8915 (cancel_echoing): Reset echo_message_buffer to nil.
8916 (read_char): Code rewritten that handles canceling an echo or
8917 echoing a dash, respectively.
8918
8919 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
8920 directory doesn't exist.
8921
8922 2000-04-19 Dave Love <fx@gnu.org>
8923
8924 * fns.c (syms_of_fns): Defsubr mapc.
8925 (concat): Don't allow numeric args.
8926 (Fconcat): Doc change.
8927
8928 2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
8929
8930 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
8931 instead define end_match(1|2) more carefully.
8932 Use GET_CHAR_BEFORE_2 for `begline'.
8933
8934 2000-04-19 Gerd Moellmann <gerd@gnu.org>
8935
8936 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
8937 on 64-bit systems where NULL is defined as `0'.
8938
8939 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
8940 the `variable argument list' to make it work on Alpha.
8941
8942 * m/alpha.h (_LP64) [!_LP64]: Define.
8943 (ORDINARY_LINK): Define for NetBSD.
8944
8945 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
8946
8947 2000-04-19 Dave Love <fx@gnu.org>
8948
8949 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
8950 change.
8951
8952 * Makefile.in (LIBS): Don't use.
8953 (GETLOADAVG_OBJ): Define again.
8954 (otherobj): Add GETLOADAVG_OBJ.
8955
8956 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
8957
8958 2000-04-18 Gerd Moellmann <gerd@gnu.org>
8959
8960 * lread.c (read_filtered_event): Cancel and start busy cursor.
8961
8962 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
8963 that the per-character metrics may be null.
8964
8965 2000-04-17 Gerd Moellmann <gerd@gnu.org>
8966
8967 * buffer.c (clone_per_buffer_values): New function.
8968 (Fmake_indirect_buffer): Add optional argument CLONE. Call
8969 clone_per_buffer_values if CLONE is not nil.
8970
8971 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
8972
8973 2000-04-16 Dave Love <fx@gnu.org>
8974
8975 * Makefile.in: Remove obsolete localcpp stuff.
8976 (GETLOADAVG_OBJ): Don't define.
8977 (obj): Move LIBOBJS...
8978 (otherobj): ... to here.
8979 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
8980 whitespace-only lines after the continuation (Irix).
8981
8982 2000-04-14 Gerd Moellmann <gerd@gnu.org>
8983
8984 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
8985
8986 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
8987
8988 2000-04-14 Dave Love <fx@gnu.org>
8989
8990 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
8991 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
8992 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
8993 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
8994 NLIST_STRUCT.
8995
8996 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
8997 autoconfiscated HAVE_GETLOADAVG.
8998
8999 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
9000 BROKEN_MKTIME.
9001
9002 2000-04-14 Gerd Moellmann <gerd@gnu.org>
9003
9004 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
9005 (fill_in_lock_file_name): Avoid existing files that aren't links.
9006
9007 2000-04-14 Dave Love <fx@gnu.org>
9008
9009 * Makefile.in (LIBS, LIBOBJS): New variable.
9010 (INTERVAL_SRC): Convert to make variable.
9011 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
9012 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
9013 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
9014 add LIBOBJS.
9015 (SOME_MACHINE_OBJECTS): Remove interval stuff.
9016 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
9017 (shortlisp): Add facemenu, float-sup, frame.
9018 (SOME_MACHINE_LISP): Remove them from here.
9019 (LIBES): Change unused LDLIBS to autoconf LIBS.
9020
9021 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
9022
9023 2000-04-14 Kenichi Handa <handa@etl.go.jp>
9024
9025 * composite.c (update_compositions): If FROM and TO are not in a
9026 valid range, do nothing.
9027
9028 2000-04-13 Gerd Moellmann <gerd@gnu.org>
9029
9030 * tparam.c (tparam1): Abort when encountering an unknown `%'-specifier.
9031
9032 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as terminfo.o.
9033
9034 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
9035 as TERMCAP_OBJ.
9036
9037 2000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
9038
9039 * fileio.c (a_write): Remove redundant semi-colons.
9040 (e_write): Return -1 if failed to write all the data.
9041 This fixes the changes made at 1999-12-15.
9042
9043 2000-04-12 Dave Love <fx@gnu.org>
9044
9045 * fns.c (mapcar1): Test for null vals to support mapc.
9046 (Fmapc): New function.
9047
9048 2000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
9049
9050 * msdos.c (NUM_MOUSE_BUTTONS): Define.
9051 (IT_frame_up_to_date): Support the buffer local value of
9052 cursor-type, if defined.
9053
9054 2000-04-10 Dave Love <fx@gnu.org>
9055
9056 * editfns.c (preceding-char, following-char): Doc fix.
9057
9058 2000-04-10 Ken Raeburn <raeburn@gnu.org>
9059
9060 * Makefile.in (temacs): Revert 2000-03-12 change.
9061
9062 2000-04-10 Jason Rumney <jasonr@gnu.org>
9063
9064 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
9065
9066 2000-04-10 Gerd Moellmann <gerd@gnu.org>
9067
9068 * xdisp.c (setup_echo_area_for_printing): Choose an echo
9069 area buffer, if it's not set up yet.
9070
9071 * indent.c (compute_motion): Set immediate_quit.
9072
9073 2000-04-09 Gerd Moellmann <gerd@gnu.org>
9074
9075 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New variable.
9076 (realize_tty_face): Suppress boldness if colors are the inverse of
9077 the default colors, and tty_suppress_bold_inverse_default_colors_p
9078 is set.
9079 (Ftty_suppress_bold_inverse_default_colors): New function.
9080 (syms_of_xfaces): Defsubr it.
9081
9082 * buffer.c (Frestore_buffer_modified_p): New function.
9083 (syms_of_buffer): Defsubr it.
9084
9085 2000-04-08 Ken Raeburn <raeburn@gnu.org>
9086
9087 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
9088 charset id (int) argument, not a charset (Lisp_Object).
9089
9090 * coding.h (code_convert_string): Declare.
9091 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
9092 object, as the fourth argument to code_convert_string.
9093
9094 * fontset.c (make_fontset_for_ascii_face): Use XINT on return value.
9095 (Fset_fontset_font): Use EQ to compare lisp objects.
9096
9097 2000-04-05 Ken Raeburn <raeburn@gnu.org>
9098
9099 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
9100 a pointer that looks like a lisp object.
9101 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
9102 zero, instead see whether it's an integer object, since they can't
9103 have intervals.
9104 (GET_INTERVAL_OBJECT): Simply assign to the destination.
9105
9106 * dispnew.c (allocate_matrices_for_frame_redisplay)
9107 (direct_output_forward_char): Use X(U)INT and make_number as needed
9108 to convert between (unsigned) int values and lisp integers.
9109 * keyboard.c (read_key_sequence): Likewise.
9110 * lread.c (substitute_object_recurse): Likewise.
9111 * fns.c (concat, hash_lookup, hash_remove): Likewise.
9112 * minibuf.c (do_completion, Fminibuffer_complete_word)
9113 (Fminibuffer_completion_help): Likewise.
9114 * term.c (produce_special_glyphs): Likewise.
9115
9116 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
9117 * print.c (print_preprocess, print_object): Likewise.
9118
9119 * search.c (compile_pattern): Use NILP when checking for nil.
9120
9121 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
9122 __OPTIMIZE__]: Provide a GNU C macro version that handles
9123 lisp-object unions.
9124 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
9125 field, to better cope with ENABLE_CHECKING and calls that modify a
9126 Lisp_Object using its old value.
9127
9128 2000-04-04 Gerd Moellmann <gerd@gnu.org>
9129
9130 * window.c (compare_window_configurations): Signal an error
9131 if parameters C1 or C2 aren't window configurations.
9132
9133 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
9134 AFTER_POTENTIAL_GC calls around calls to functions that can
9135 signal an error and thus invoke the debugger.
9136
9137 2000-04-03 Gerd Moellmann <gerd@gnu.org>
9138
9139 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
9140 an error if decoding fails.
9141
9142 * keyboard.c (lispy_mouse_names): Variable removed.
9143 (Vlispy_mouse_stem): New variable.
9144 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
9145 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
9146 for any mouse button number. Increase size of mouse_syms and
9147 button_down_location as needed. Call modify_event_symbol with
9148 different arguments.
9149 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
9150 Call modify_event_symbol with different arguments.
9151 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
9152 for any button number. Call modify_event_symbol with different
9153 arguments.
9154 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
9155 Accept a string for NAME_ALIST_OR_STEM.
9156
9157 * lisp.h (larger_vector): Add prototype.
9158
9159 * fns.c (larger_vector): Make externally visible.
9160
9161 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
9162
9163 2000-04-02 Stefan Monnier <monnier@cs.yale.edu>
9164
9165 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
9166 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
9167 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
9168 we are between str1 and str2.
9169 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
9170 (PATFETCH): Use `TRANSLATE'.
9171 (PATFETCH_RAW): Fetch multibyte char if applicable.
9172 (PATUNFETCH): Remove.
9173 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
9174 When writing a char, write it directly into the pattern buffer rather
9175 than going needlessly through a temp char-array.
9176 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
9177 multibyte magic and remove the useless `#ifdef emacs'.
9178 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
9179 buffer.
9180
9181 * regex.h (struct re_pattern_buffer): Make field `multibyte'
9182 conditional on `emacs'.
9183
9184 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
9185
9186 2000-04-01 Ken Raeburn <raeburn@gnu.org>
9187
9188 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
9189 non-union-type versions of XMARK and friends here, because XMARK
9190 and friends won't work on an integer field if NO_UNION_TYPE is not
9191 defined.
9192 (make_number): Define as a function if it's not defined as a macro.
9193
9194 * composite.c (run_composite_function): Use NILP when checking for nil.
9195 (syms_of_composite): Delete local var NARGS, pass an int as first
9196 argument to Fmake_hash_table.
9197
9198 * editfns.c (text_property_stickiness): Use NILP to test
9199 Lisp_Object boolean value.
9200 (Fmessage_or_box): Don't use NILP to test int variable.
9201 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
9202 problems reading from and changing the same lisp value in an
9203 XSETSTRING call.
9204
9205 2000-04-01 Gerd Moellmann <gerd@gnu.org>
9206
9207 * term.c (TN_no_color_video): New variable.
9208 (term_init): Intitialize TN_no_color_video.
9209 (enum no_color_bit): New enumeration.
9210 (MAY_USE_WITH_COLORS_P): New macro.
9211 (turn_on_face): Use it to determine if attributes may be used
9212 combined with colors.
9213
9214 2000-04-01 Ken Raeburn <raeburn@gnu.org>
9215
9216 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
9217 with int lvalues via casts; instead, just yield lisp object lvalues.
9218 (enlarge_window): Variable sizep now points to Lisp_Object. Use
9219 proper accessor macros.
9220 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
9221 (grow_mini_window): Fix typo getting int value of root->height.
9222
9223 * xdisp.c (compute_string_pos): Fix order of arguments to
9224 string_pos_nchars_ahead.
9225 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
9226 count arg to variable-arg routines like Frun_hook_with_args and
9227 Fformat.
9228 (back_to_previous_visible_line_start)
9229 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
9230 fixed-arg routines like Fget_char_property and Fmake_string.
9231 (reconsider_clip_changes): Use XINT when comparing integer lisp
9232 objects, or passing them as int arguments.
9233 (mark_window_display_accurate, insert_left_trunc_glyphs)
9234 (append_space, extend_face_to_end_of_line): Use make_number when
9235 storing or passing integer values as lisp objects.
9236 (set_cursor_from_row, highlight_trailing_whitespace): Use
9237 INTEGERP, not implicit test against zero, for glyph object.
9238 (try_window_id): Don't use make_number when we want an int value.
9239
9240 * xfaces.c (xlfd_symbolic_value): Make last argument a
9241 Lisp_Object, to be consistent with callers.
9242 (Fbitmap_spec_p): Use XINT to get numeric value of height.
9243 (lface_hash): Apply XFASTINT to lisp values before folding in.
9244
9245 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
9246 fill in window width and height. Pass an int, not a lisp object,
9247 as first arg to Finsert.
9248
9249 2000-04-01 Gerd Moellmann <gerd@gnu.org>
9250
9251 * xfaces.c (realize_basic_faces): Block input while realizing
9252 the faces.
9253
9254 * keyboard.c (lispy_mouse_names): Add additional mouse names.
9255
9256 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
9257
9258 2000-03-31 Gerd Moellmann <gerd@gnu.org>
9259
9260 * xterm.c (x_produce_glyphs): When displaying unibyte text
9261 or ASCII, handle case that per-char metric is null.
9262
9263 2000-03-30 Ken Raeburn <raeburn@gnu.org>
9264
9265 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
9266
9267 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW)
9268 (XSUBR, XBUFFER): Verify correct object type before returning
9269 pointer, using eassert.
9270 * frame.h (XFRAME): Likewise.
9271
9272 * buffer.c (Frename_buffer, Fset_buffer_multibyte)
9273 (swap_out_buffer_local_variables, Fmove_overlay): Don't apply
9274 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong type.
9275 * data.c (set_internal): Likewise.
9276 * dispextern.h (WINDOW_WANTS_MODELINE_P)
9277 (WINDOW_WANTS_HEADER_LINE_P): Likewise.
9278 * fileio.c (auto_save_1): Likewise.
9279 * insdel.c (check_markers): Likewise.
9280 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
9281 * undo.c (record_insert): Likewise.
9282 * vmsproc.c (child_sig): Likewise.
9283 * window.c (unshow_buffer, window_loop): Likewise.
9284 * xterm.c (x_erase_phys_cursor): Likewise.
9285
9286 2000-03-30 Gerd Moellmann <gerd@gnu.org>
9287
9288 * xfns.c (free_image_cache): Free the cache structure itself
9289 last, after all its members have been freed.
9290
9291 * lisp.h (xstrdup): Add prototype.
9292
9293 * alloc.c (xstrdup): Moved here from xfaces.c.
9294 (allocating_for_lisp): Variable removed.
9295 (lisp_malloc): Block input around the calls to malloc and mem_insert.
9296
9297 * xfaces.c (realize_tty_face): Use find_symbol_value instead
9298 of Fsymbol_value.
9299 (xstrdup): Moved to alloc.c.
9300
9301 2000-03-29 Ken Raeburn <raeburn@gnu.org>
9302
9303 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
9304
9305 * emacs.c (main): Fix sense of no-loadup test.
9306
9307 * config.in (ENABLE_CHECKING): Undef.
9308
9309 * lisp.h (struct interval): Replace "parent" field with a union of
9310 interval pointer and Lisp_Object; add new bitfield to use as
9311 discriminant. Change other flag fields to bitfields.
9312 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
9313 is defined and the supplied test fails, print a message and abort.
9314 (eassert): New macro. Use CHECK to provide an assert-like facility.
9315
9316 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
9317 pointers; abort if the value looks like a lisp object.
9318 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT)
9319 (SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
9320 Modify for new interval parent definition.
9321
9322 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE)
9323 (UNMARK_BALANCE_INTERVALS): Update references that need an
9324 addressable lisp object in the interval structure.
9325 (die): New function.
9326 (suppress_checking): New variable.
9327
9328 * intervals.c (interval_start_pos): Just return 0 if there's no
9329 parent object.
9330
9331 2000-03-29 Gerd Moellmann <gerd@gnu.org>
9332
9333 * lread.c (read1): Accept `.' (period) as symbol start like in CL
9334 and earlier Emacs versions.
9335
9336 * keyboard.c (Ftop_level): Cancel busy-cursor.
9337
9338 * eval.c (call_debugger): Cancel busy-cursor.
9339
9340 2000-03-29 Kenichi Handa <handa@etl.go.jp>
9341
9342 * search.c (Freplace_match): Adjust multibyteness of the current
9343 buffer and NEWTEXT. Free allocated memory before signaling an error.
9344
9345 2000-03-28 Stefan Monnier <monnier@cs.yale.edu>
9346
9347 * regex.c (analyse_first): New function obtained by ripping out most
9348 of re_compile_fastmap and generalizing it a little bit so that it
9349 can also just return whether a given (sub)pattern can match the empty
9350 string or not.
9351 (regex_compile): Use `analyse_first' to decide whether the loop-check
9352 needs to be done or not for *, +, *? and +? (the loop check is costly
9353 for non-greedy repetition).
9354 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
9355
9356 2000-03-28 Dave Love <fx@gnu.org>
9357
9358 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k, alpha.
9359
9360 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
9361
9362 2000-03-27 Stefan Monnier <monnier@cs.yale.edu>
9363
9364 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
9365 an expression.
9366 (enum re_opcode_t): Update description of succeed_n.
9367 (PATFETCH): Always define.
9368 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
9369 operators, char classes, shy-groups and intervals).
9370 Optimize special cases of intervals so as to only use succeed_n and
9371 jump_n when really needed.
9372 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
9373 that we don't have to handle the special cases any more.
9374 Simplify on_failure_jump handling as well.
9375
9376 2000-03-28 Jason Rumney <jasonr@gnu.org>
9377
9378 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
9379
9380 2000-03-27 Gerd Moellmann <gerd@gnu.org>
9381
9382 * s/freebsd.h (GC_SETJMP_WORKS): Define.
9383
9384 * s/msdos.h (GC_SETJMP_WORKS): Define.
9385
9386 * alloc.c (mark_maybe_object): New function.
9387 (mark_memory): Use it.
9388 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
9389 (setjmp_tested_p, longjmp_done): New variables.
9390 (test_setjmp): New function.
9391 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
9392 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
9393
9394 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
9395 to DEC_TEXT_POS and INC_TEXT_POS.
9396
9397 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
9398 with parameter MULTIBYTE_P.
9399
9400 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter MULTIBYTE_P.
9401
9402 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
9403 buffers because it looks for multibyte character byte sequences
9404 which don't exist in unibyte text.
9405
9406 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
9407
9408 * xfaces.c (register_color, unregister_color, unregister_colors)
9409 [DEBUG_X_COLORS]: New functions.
9410 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
9411
9412 * xfns.c (x_set_cursor_color): Get color reference counts right.
9413
9414 * xterm.c (x_copy_color): New function.
9415 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
9416
9417 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
9418 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
9419 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
9420 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
9421 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
9422 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
9423 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
9424 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
9425 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
9426 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
9427
9428 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
9429 names for handling per-buffer variables.
9430
9431 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
9432 instead of MAX_BUFFER_LOCAL_VARS.
9433 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
9434
9435 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
9436
9437 * xfns.c (x_specified_cursor_type): New function.
9438 (x_set_cursor_type): Use it.
9439
9440 * buffer.h (struct buffer): Add cursor_type.
9441
9442 2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
9443
9444 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
9445 (print_partial_compiled_pattern, re_compile_fastmap):
9446 Handle new opcode.
9447 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
9448 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
9449 executing it as well as when popping it off the stack to find infinite
9450 loops in non-greedy repetition operators.
9451
9452 2000-03-26 Gerd Moellmann <gerd@gnu.org>
9453
9454 * doc.c (Qfunction_documentation): New variable.
9455 (syms_of_doc): Initialize Qfunction_documentation.
9456 (Fdocumentation): If FUNCTION is a symbol with non-nil
9457 `function-documentation' property, return a documentation derived
9458 from that.
9459
9460 * buffer.c (syms_of_buffer): Add default-cursor-type.
9461 (init_buffer_once): Don't let cursor_type have a local value
9462 in every buffer.
9463
9464 * xterm.c (x_display_and_set_cursor): Choose cursor depending
9465 on buffer-local value of cursor_type.
9466 (x_draw_bar_cursor): Add parameter WIDTH.
9467
9468 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
9469 (init_buffer_once): Set default cursor_type value to t.
9470 Mark cursor_type as local everywhere.
9471 (syms_of_buffer): New per-buffer variable cursor-type.
9472
9473 * buffer.h (struct buffer): Remove member local_var_flags,
9474 add local_flags.
9475 (MAX_BUFFER_LOCAL_VARS): New macro.
9476 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
9477 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
9478 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
9479 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
9480
9481 * print.c (print_object): Use new macros for per-buffer variables.
9482
9483 * category.c (Fset_category_table): Use new macros for per-buffer
9484 variables.
9485
9486 * buffer.c (buffer_permanent_local_flags): Make a char array.
9487 (max_buffer_local_idx): New variable.
9488 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
9489 for new handling of per-buffer variables.
9490 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
9491 (init_buffer_once): Initialize per-buffer vars differently.
9492 Set max_buffer_local_idx.
9493
9494 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
9495 variables.
9496
9497 * lread.c (defvar_per_buffer): Use new macros for per-buffer variables.
9498
9499 * data.c (do_symval_forwarding, store_symval_forwarding)
9500 (find_symbol_value, set_internal, default_value, Fset_default)
9501 (Fkill_local_variable, Flocal_variable_p): Use new macros for
9502 per-buffer variables.
9503
9504 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
9505
9506 2000-03-24 Gerd Moellmann <gerd@gnu.org>
9507
9508 * xterm.c (x_term_init): Unblock input around call1 of
9509 Qvendor_specific_keysyms.
9510
9511 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
9512 (find_defun_start): Consider an open parenthesis in column 0
9513 a defun start only if open_paren_in_column_0_is_defun_start is set.
9514 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
9515
9516 2000-03-24 Stefan Monnier <monnier@cs.yale.edu>
9517
9518 * eval.c (Fautoload): Add entry in load-history (if after dump).
9519 * lread.c (load-history): Update docstring.
9520
9521 2000-03-24 Gerd Moellmann <gerd@gnu.org>
9522
9523 * indent.c (Fvertical_motion): Always use the current buffer.
9524 Temporarily change the window's buffer, if necessary.
9525
9526 2000-03-23 Gerd Moellmann <gerd@gnu.org>
9527
9528 * xterm.c (fast_find_position): Make sure not to consider rows
9529 not visible in the window.
9530
9531 2000-03-22 Stefan Monnier <monnier@cs.yale.edu>
9532
9533 * regex.c (enum syntaxcode): Provide default for non-Emacs.
9534 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
9535
9536 2000-03-22 Jason Rumney <jasonr@gnu.org>
9537
9538 * w32menu.c (single_submenu): Set help string to NULL if none.
9539 (w32_menu_show): Set help string correctly.
9540 (add-menu-item): Set help string in MIIM_DATA for menu item.
9541 Load SetMenuItemInfoA explicitly.
9542 (w32_menu_display_help): New function.
9543
9544 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
9545 (QCdata): Moved to xdisp.c.
9546
9547 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
9548 (Vw32_charset_to_codepage_alist): Removed.
9549 (Vw32_charset_info_alist): New variable.
9550 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312)
9551 (chinesebig5, oem, easteurope, turkish, baltic, russian, arabic)
9552 (greek, hebrew, thai, johab, mac, unicode]): New symbols.
9553 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
9554 with TODO comment.
9555 (w32_codepage_for_font): Use Vw32_charset_info_alist.
9556 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
9557 Define Vw32_charset_info_alist and w32_charset symbols.
9558
9559 2000-03-22 Jason Rumney <jasonr@gnu.org>
9560
9561 * makefile.nt (w32bdf.obj): Update dependencies.
9562
9563 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
9564
9565 * w32fns.c: Include fontset.h after dispextern.h.
9566 (Fx_create_frame): Do not create fontset.
9567 (w32_load_system_font): Doc fix.
9568 (Fx_close_connection): Free full_name if it is not shared.
9569
9570 * w32term.c: Include fontset.h after dispextern.h.
9571 (x_get_glyph_face_and_encoding): New parameter two_byte_p.
9572 Callers updated.
9573 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
9574 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
9575 (w32_font_is_double_byte): New function, needs body.
9576 (x_append_glyph): Set glyph->glyph_not_available_p.
9577 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
9578 it->charset. If it->multibyte_p is zero and it->c is a multibyte
9579 character, convert it to a unibyte character.
9580 (struct glyph_string): Delete member `charset'.
9581 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
9582 calculating it is found.
9583 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
9584 the case that per char metric is not available correctly.
9585 (x_fill_glyph_string): Handle the case that the specific glyph is
9586 not available correctly.
9587 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
9588 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
9589 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
9590 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
9591 fontset. Don't call FS_LOAD_FONT.
9592
9593 2000-03-22 Ken Raeburn <raeburn@gnu.org>
9594
9595 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
9596 (INT_LISPLIKE): New macro.
9597 (NULL_INTERVAL_P): Use it.
9598 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT)
9599 (SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT)
9600 (GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
9601
9602 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
9603 explicit references to "parent" field of struct interval and
9604 associated unclean type conversions.
9605 * intervals.c (create_root_interval, root_interval, rotate_right)
9606 (rotate_left, balance_possible_root_interval, split_interval_right)
9607 (split_interval_left, interval_start_pos, find_interval)
9608 (next_interval, previous_interval, update_interval)
9609 (adjust_intervals_for_insertion, delete_node, delete_interval)
9610 (adjust_intervals_for_deletion, merge_interval_right)
9611 (merge_interval_left, reproduce_tree, graft_intervals_into_buffer)
9612 (copy_intervals_to_string): Likewise.
9613 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
9614 Likewise.
9615 * syntax.c (update_syntax_table): Likewise.
9616
9617 * intervals.c (reproduce_tree_obj): New function, like
9618 reproduce_tree but takes a Lisp_Object for the parent. Declare
9619 with prototype.
9620 (graft_intervals_into_buffer): Use it when appropriate.
9621 (reproduce_tree): Declare with prototype.
9622 (balance_possible_root_interval): Check that the parent is a lisp
9623 object before trying to examine its type.
9624
9625 2000-03-22 Gerd Moellmann <gerd@gnu.org>
9626
9627 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
9628 as strings only if both are known to be strings.
9629
9630 * s/openbsd.h (LIBS_TERMCAP): Undef.
9631
9632 2000-03-21 Stefan Monnier <monnier@cs.yale.edu>
9633
9634 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
9635 definitions for non-Emacs compilation.
9636 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
9637 outside of `#ifdef emacs'.
9638 (print_partial_compiled_pattern): Update.
9639 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
9640 (re_compile_fastmap): Merge handling of charset and charset_not (for
9641 emacs and non-emacs compilation as well).
9642 Similarly for (not)categoryspec and (not)syntaxspec.
9643 Don't use the fastmap when reaching `anychar' since the added
9644 complexity is not justified.
9645 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
9646 and (not)syntaxspec. Merge (not)categoryspec.
9647
9648 2000-03-22 Kenichi Handa <handa@etl.go.jp>
9649
9650 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P)
9651 (FACE_FOR_CHAR): Define them differently for the configuration of
9652 --without-x.
9653
9654 2000-03-21 Dave Love <fx@gnu.org>
9655
9656 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
9657 doc string.
9658
9659 2000-03-21 Gerd Moellmann <gerd@gnu.org>
9660
9661 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
9662 (lface_fully_specified_p): Don't check contents of
9663 LFACE_FONT_INDEX because that attribute is optional.
9664 (realize_x_face): Remove now unwarranted xassert.
9665
9666 2000-03-21 Kenichi HANDA <handa@etl.go.jp>
9667
9668 The following changes are to make font selection based on
9669 characters, not charset. In addition, they recover fontset
9670 facilities while utilizing the new font selection mechanism.
9671
9672 * Makefile.in (fontset.o): Depend on dispextern.h.
9673
9674 * alloc.c (mark_face_cache): Don't mark face->registry.
9675
9676 * dispextern.h (struct glyph): New member glyph_not_available_p.
9677 Use 22 bits for face_id.
9678 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
9679 (struct face): Delete member registry, new member ascii_face.
9680 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
9681 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
9682 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
9683 (struct it): Delete member charset, new member glyph_not_available_p.
9684
9685 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
9686 (struct fontset_info, struct fontset_data): Structs removed.
9687 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset)
9688 (Vglobale_fontset_alist, font_idx_temp): Externs removed.
9689 (fs_load_font, fs_query_fontset): Adjusted for new argument.
9690 (fs_free_face_fontset, fontset_font_pattern)
9691 (face_suitable_for_char_p, face_for_char)
9692 (make_fontset_for_ascii_face): Extern them.
9693 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
9694 (FS_LOAD_FACE_FONT): New macro.
9695
9696 * fontset.c: All codes rewritten or adjusted for the change of
9697 fontset implementation. Now fontset is represented by char table.
9698 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl):
9699 Variables removed.
9700 (my_strcasecmp): Function removed.
9701 (Vfontset_table, next_fontset_id, Vdefault_fontset): New variables.
9702 (AREF, ASIZE): New macros.
9703 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME)
9704 (FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF)
9705 (FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
9706 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset)
9707 (fontset_id_valid_p, font_family_registry, fontset_name)
9708 (fontset_ascii, free_face_fontset, face_suitable_for_char_p)
9709 (face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
9710 New functions.
9711 (fs_load_font): New arg FACE. Caller changed.
9712 (fs_query_fontset): Argument changed. Caller changed.
9713 (Fquery_fontset): call fs_query_fontset.
9714 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
9715 Functions removed.
9716 (clear_fontset_elements, check_registry_encoding)
9717 (check_fontset_name): New functions.
9718 (syms_of_fontset): Set char-table-extra-slots property of fontset
9719 to 3. Staticpro and initialize Vfontset_table and
9720 Vdefault_fontset. Defsubr fontset_font and fontset_list.
9721
9722 * frame.h (struct frame): Member `fontset_data' removed.
9723 (FRAME_FONTSET_DATA): Macro removed.
9724
9725 * frame.c (make_frame): Don't allocate f->fontset_data.
9726 (Fdelete_frame): Don't free f->fontset_data.
9727
9728 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
9729
9730 * xdisp.c (charset_at_position): Function removed.
9731 (init_iterator): Don't set member charset of struct `it'.
9732 (handle_face_prop, reseat_to_string, set_iterator_to_next)
9733 (next_element_from_display_vector, insert_left_trunc_glyphs):
9734 Likewise.
9735 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
9736 FACE_FOR_CHARSET.
9737 (get_next_display_element, append_space)
9738 (extend_face_to_end_of_line): Likewise.
9739
9740 * xfaces.c (Qx_charset_registry, Vface_default_registry):
9741 Variables removed.
9742 (clear_font_table, frame_update_line_height, load_face_font):
9743 Adjusted for the change of fontset implementation.
9744 (load_face_fontset_font): Function removed.
9745 (pixel_point_size): New function.
9746 (font_list): Argument type changed. Caller changed.
9747 (LFACE_FONT): New macro.
9748 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
9749 (set_lface_from_font_name): Type of arg FONTNAME is changed to
9750 Lisp_Object. Determine the font name by actually loading a font
9751 by the specified pattern. Set LFACE_FONT (lface) to the specified
9752 pattern. Even if a font is not found, don't try alternatives.
9753 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
9754 (set_font_frame_param): If `font' is specified in lface, use it.
9755 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
9756 (lface_same_font_attributes_p): Likewise.
9757 (make_realized_face): Arguent changed. Caller changed. Set
9758 face->ascii_face to face itself.
9759 (free_realized_face): Free face->fontset if face is for ASCII.
9760 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p)
9761 (deduce_unibyte_registry, x_charset_registry): Functions removed.
9762 (free_realized_multibyte_face): New function.
9763 (lookup_face, lookup_named_face, lookup_derived_face): Argument
9764 changed. Caller changed.
9765 (try_font_list): Argument type changed.
9766 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
9767 (choose_face_font): Argument changed. Handle fontset properly.
9768 (choose_face_fontset_font): Function removed.
9769 (realize_default_face, realize_named_face): Don't remove the
9770 former face here.
9771 (realize_face): Argument changed. Caller changed. Remove face
9772 with the arg former_face_id in advance. Load font for the new face.
9773 (realize_x_face): Argument changed. Caller changed. For a
9774 multibyte character, share fontset with base_face. For a single
9775 byte character, make a new realized fontset. Don't load a font here.
9776 (realize_tty_face): Argument changed. Caller changed.
9777 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
9778 (face_at_buffer_position): Don't check multibyte_p for returning
9779 DEFAULT_FACE_ID.
9780 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
9781 FACE_SUITABLE_FOR_CHARSET_P.
9782 (syms_of_xfaces): Remove code for Qx_charset_registry and
9783 Vface_default_registry.
9784
9785 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
9786 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9787 (x_per_char_metric): Don't try FONT->default_char. Even if
9788 pcm->width is zero, glyph bits may exist.
9789 (x_encode_char): Always initialize char2b->byte1.
9790 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
9791 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller changed.
9792 (x_append_glyph): Set glyph->glyph_not_available_p.
9793 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
9794 it->charset. Handle the case that per char metric is not
9795 available. If it->multibyte_p is zero and it->c is a multibyte
9796 character, convert it to a unibyte character.
9797 (struct glyph_string): Delete member `charset'.
9798 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
9799 the case that per char metric is not available correctly.
9800 (x_fill_glyph_string): Handle the case that the specific glyph is
9801 not available correctly.
9802 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
9803 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
9804 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
9805 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
9806 fontset. Don't call FS_LOAD_FONT.
9807
9808 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
9809 (x_create_tip_frame): Likewise.
9810 (Fx_close_connection): Free full_name of font_info.
9811
9812 * fns.c (optimize_sub_char_table): New function.
9813 (Foptimize_char_table): New function.
9814 (syms_of_fns): Defsubr Soptimize_char_table.
9815
9816 2000-03-20 Gerd Moellmann <gerd@gnu.org>
9817
9818 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
9819 only if buffer is displayed in some window.
9820
9821 * xdisp.c (handle_single_display_prop): Initialize local `value'.
9822 (try_window_reusing_current_matrix): Don't call scroll run
9823 function if run's current and desired position are the same;
9824 this prevents cursor flickering.
9825
9826 2000-03-19 Stefan Monnier <monnier@cs.yale.edu>
9827
9828 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
9829
9830 * regex.c (RE_STRING_CHAR): New macro.
9831 (GET_CHAR_AFER_2): Remove.
9832 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
9833 (enum re_opcode_t): Remove on_failure_jump_exclusive.
9834 (print_partial_compiled_pattern, re_compile_fastmap)
9835 (re_match_2_internal): Remove on_failure_jump_exclusive.
9836 (regex_compile): Turn optimizable P+ loops into PP*, so that the
9837 optimization only need to work for * (ie. can use of_keep_string_jump).
9838 Remove the special case for .*\n since it is now covered by the general
9839 optimization.
9840 (re_search_2): Don't bother with `room'.
9841 (skip_one_char): New function.
9842 (skip_noops): Simplify since `memory' is not needed any more.
9843 (mutually_exclusive_p): Restructure slightly to use `switch' and
9844 add handling for "all" remaining cases.
9845 (re_match_2_internal): Change on_failure_jump_smart to use
9846 on_failure_keep_string_jump (and redirect the end-of-loop jump)
9847 rather than on_failure_jump_exclusive.
9848
9849 2000-03-19 Gerd Moellmann <gerd@gnu.org>
9850
9851 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
9852 number of bits per RGB because it's everywhere used as the depth
9853 of the visual.
9854
9855 * term.c (calculate_costs): Remove code dealing with X frames.
9856
9857 2000-03-19 Richard M. Stallman <rms@gnu.org>
9858
9859 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
9860
9861 2000-03-18 Gerd Moellmann <gerd@gnu.org>
9862
9863 * lread.c (read_integer): Unread the last char not consumed.
9864
9865 2000-03-17 Gerd Moellmann <gerd@gnu.org>
9866
9867 * xterm.c (x_update_window_cursor): Don't update in frames
9868 which are in the process of being deleted.
9869
9870 2000-03-16 Gerd Moellmann <gerd@gnu.org>
9871
9872 * Makefile.in (mostlyclean): Add `*.core'.
9873 (clean): Add `bootstrap-emacs'.
9874
9875 * lread.c (read_integer): New function.
9876 (read1): Support read syntax #o, #x, #b, #r.
9877
9878 2000-03-15 Stefan Monnier <monnier@cs.yale.edu>
9879
9880 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
9881 make sure POINTER_TO_OFFSET gives the same value before and after
9882 PREFETCH. Use `dfail' to guarantee "atomic" matching.
9883 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
9884 (debug): Now only active if > 0 rather than if != 0.
9885 (DEBUG_*): Update for the new meaning of `debug'.
9886 (print_partial_compiled_pattern): Add missing `succeed' case. Use
9887 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
9888 in `succeed_n', `jump_n' and `set_number_at'.
9889 (store_op1, store_op2, insert_op1, insert_op2)
9890 (at_begline_loc_p, at_endline_loc_p): Add prototype.
9891 (group_in_compile_stack): Move to after its arg's types are
9892 declared and add a prototype.
9893 (PATFETCH): Define in terms of PATFETCH_RAW.
9894 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)' wrapper.
9895 (QUIT): Redefine as a nop except for NTemacs.
9896 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
9897 indentation of the greedy-op and shy-group code.
9898 (at_(beg|end)line_loc_p): Fix argument's types.
9899 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
9900 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
9901 (MATCHING_IN_FIRST_STRING): Remove.
9902 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
9903 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
9904 QUIT unconditionally.
9905
9906 2000-03-15 Gerd Moellmann <gerd@gnu.org>
9907
9908 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
9909 a sole completion.
9910
9911 * process.c (send_process): Add a hint that the function
9912 can call Lisp code to its comment.
9913
9914 * lread.c (load_dangerous_libraries): New variable.
9915 (Vbytecomp_version_regexp): New variable.
9916 (safe_to_load_p): New function.
9917 (Fload): Handle files not compiled with Emacs specially.
9918 (syms_of_lread): New Lisp variable load-dangerous-libraries.
9919
9920 2000-03-14 Gerd Moellmann <gerd@gnu.org>
9921
9922 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
9923
9924 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
9925 support functions only if HAVE_X11R6_XIM is defined.
9926 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
9927
9928 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
9929
9930 * xfns.c (X_I18N_INHIBITED): Don't define.
9931 (create_frame_xic): Remove conditional compilation on X_I18N_INHIBITED.
9932 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
9933
9934 * config.in (HAVE_X_I18N): Moved here from xterm.h.
9935 (HAVE_X11R6_XIM): Define.
9936
9937 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
9938
9939 * xterm.c (x_term_init): Add support for X resource `synchronous'.
9940 If set, call XSynchronize.
9941
9942 2000-03-13 Stefan Monnier <monnier@cs.yale.edu>
9943
9944 * regex.c: Declare a new type `re_char' used throughout the code
9945 for the string char type. It's `const unsigned char' to match the
9946 rest of Emacs. Consistently make sure all pointers to strings use
9947 it and make sure all pointers into the pattern use `unsigned char'.
9948 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
9949 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
9950 code duplication.
9951
9952 * charset.h (GET_CHAR_AFTER_2): Remove.
9953 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
9954
9955 2000-03-12 Ken Raeburn <raeburn@gnu.org>
9956
9957 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
9958 variable before the invocation of YMF_PASS_LDFLAGS, in case both
9959 of them try to use backquotes.
9960
9961 2000-03-12 Dave Love <fx@gnu.org>
9962
9963 * unexelf.c: Restore changes of 1999-10-19.
9964 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
9965 fix its type and alignment; copy it from current process.
9966
9967 2000-03-12 Gerd Moellmann <gerd@gnu.org>
9968
9969 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
9970 has been found. Fix bug not computing timer's predecessor.
9971
9972 * fileio.c (Fread_file_name): Handle case that DIR contains a
9973 file name.
9974
9975 * window.c (Fsave_window_excursion): Doc fix.
9976
9977 * xfns.c (x_defined_color): Rewritten to use x_allocate_nearest_color.
9978
9979 2000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
9980
9981 * msdos.c (vga_installed): New function, code moved from
9982 dos_set_window_size.
9983 (Qbar, Qcursor_type, outside_cursor): New variables.
9984 (syms_of_msdos): Intern and staticpro them.
9985 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
9986 shape used outside Emacs when called for the first time.
9987 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
9988 cursor shape used outside Emacs.
9989 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
9990 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
9991 type has changed.
9992 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
9993 parameters specify the cursor. Make qreverse a global
9994 variable (renamed to Qreverse).
9995
9996 2000-03-09 Gerd Moellmann <gerd@gnu.org>
9997
9998 * fns.c (Fy_or_n_p): Cancel busy-cursor.
9999
10000 2000-03-08 Stefan Monnier <monnier@cs.yale.edu>
10001
10002 This is a big redesign of failure-stack and register handling, prompted
10003 by bugs revealed when trying to add shy-groups. Overall, what happened
10004 is that loops are now structured a little differently, groups can be
10005 shy and the code is a little simpler.
10006
10007 * regex.h: Update the copyright.
10008 (RE_SHY_GROUPS): New value.
10009 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
10010 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
10011
10012 * regex.c (enum re_opcode_t): Remove jump_past_alt,
10013 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
10014 on_failure_jump_(exclusive, loop and smart). Also fix the comment
10015 for (start|stop)_memory since they now only take one argument (the
10016 second has becomes unnecessary).
10017 (print_partial_compiled_pattern): Adjust for changes in re_opcode_t.
10018 (print_compiled_pattern): Use %ld to printf long ints and flush to
10019 make debugging a little easier.
10020 (union fail_stack_elt): Make the integer unsigned.
10021 (struct fail_stack_type): Add a `frame' element.
10022 (INIT_FAIL_STACK): Init `frame' as well.
10023 (POP_PATTERN_OP): New macro for re_compile_fastmap.
10024 (DEBUG_PUSH, DEBUG_POP): Remove.
10025 (NUM_REG_ITEMS): Remove.
10026 (NUM_NONREG_ITEMS): Adjust.
10027 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
10028 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
10029 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
10030 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP):
10031 New macros.
10032 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
10033 address pushed is not the destination of the jump but the source
10034 of it instead.
10035 (NUM_FAILURE_ITEMS): Remove.
10036 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
10037 registers before the actual failure point). Don't hardcode any
10038 meaning for str==NULL anymore.
10039 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
10040 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
10041 Remove.
10042 (REG_UNSET_VALUE): Use NULL (why not?).
10043 (compile_range): Remove declaration since it doesn't exist.
10044 (struct compile_stack_elt_t): Remove inner_group_offset.
10045 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
10046 (regex_grow_registers): Remove dead code.
10047 (FIXUP_ALT_JUMP): New macro.
10048 (regex_compile): Add shy-groups Change loops to use
10049 on_failure_jump_smart&jump instead of
10050 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
10051 initial (dummy_failure_)jump. Remove c1_base (looks like unused
10052 variable to me). Use `jump' instead of `jump_past_alt' and don't
10053 bother with push_dummy_failure in alternatives since it is now
10054 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
10055 emacs' for (re)allocating the stack.
10056 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
10057 from loop when bufp->can_be_null rather than jumping to `done'.
10058 Avoid jumping backwards so as to ensure termination. Use
10059 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
10060 backreferences. Remove dead code in handling of `anychar'.
10061 (skip_noops, mutually_exclusive_p): New functions taken from the
10062 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
10063 improve mutually_exclusive_p to handle ".+\n".
10064 (lowest_active_reg, highest_active_reg)
10065 (NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
10066 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
10067 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
10068 variables. Push register (in `start_memory') on the stack rather
10069 than storing it in old_reg(start|end). Remove the cycle detection
10070 from `stop_memory', replaced by the use of on_failure_jump_loop
10071 for greedy loops. Add code for the new on_failure_jump_<foo>.
10072 Remove ad-hoc code in `on_failure_jump' to push more registers in
10073 the case of a loop. Take out code from `maybe_pop_jump' into
10074 separate functions and adapt it to the semantics of
10075 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
10076 and push_dummy_failure. Remove dummy_failure handling and
10077 handling of `failures to jump to on_failure_jump' (this last one
10078 was already dead code, it seems).
10079 (group_match_null_string_p, alt_match_null_string_p)
10080 (common_op_match_null_string_p): Remove.
10081
10082 2000-03-08 Dave Love <fx@gnu.org>
10083
10084 * config.in: Don't depend on __STDC__ for volatile.
10085 Add POINTER_TYPE, PTR, PROTOTYPES.
10086
10087 * hftctl.c, strftime.c: Use PROTOTYPES.
10088 * eval.c (find_handler_clause): Likewise.
10089
10090 * mem-limits.h: Use POINTER_TYPE.
10091
10092 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
10093 (memory_warnings): Declare using POINTER_TYPE.
10094
10095 2000-03-08 Gerd Moellmann <gerd@gnu.org>
10096
10097 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
10098
10099 * xdisp.c (display_echo_area): Temporarily inhibit garbage collection.
10100
10101 * xfns.c: Remove obsolete code in #if 0.
10102 (Fx_focus_frame): New function.
10103
10104 2000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
10105
10106 * coding.c (coding_category_name): Add coding-category-utf-8,
10107 coding-category-utf-16-be, coding-category-utf-16-le.
10108 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
10109 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
10110 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
10111 (detect_coding_utf_8): New function.
10112 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
10113 UTF_16_LOW_SURROGATE_P): New macros.
10114 (detect_coding_utf_16): New function
10115 (detect_coding_mask): When priorities are specified, skip any
10116 categories that have `nil' coding-system. Fix bug of returning
10117 wrong mask when PRIORITIES is specified and detect_coding_XXX()
10118 returns a mask not set in PRIORITIES.
10119 (detect_eol_type_in_2_octet_form): New function.
10120 (detect_eol): selects detect_eol_type_XXX to call according to
10121 cooding->category_idx.
10122 (detect_coding_system): Remove `nil' coding-system in the result.
10123 (Fupdate_coding_systems_internal): Update all coding-categories.
10124
10125 * coding.h (CODING_CATEGORY_IDX_UTF_8)
10126 (CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE):
10127 New macros.
10128 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY)
10129 (CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
10130 (CODING_CATEGORY_IDX_UTF_16_LE)
10131 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE)
10132 (CODING_CATEGORY_MASK_UTF_16_LE): New macros.
10133 (CODING_CATEGORY_MASK_ANY): Include the above macros.
10134 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
10135
10136 2000-03-07 Gerd Moellmann <gerd@gnu.org>
10137
10138 * doc.c (Fdocumentation_property): If value is not a string,
10139 and doesn't refer to etc/DOC, evaluate it to obtain a string.
10140
10141 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
10142 close the display with XtCloseDisplay. This caused a bus error
10143 on OpenWindows.
10144
10145 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
10146 complete but not unique.
10147
10148 2000-03-06 Gerd Moellmann <gerd@gnu.org>
10149
10150 * process.c (send_process): Remove local variable `procname' that
10151 might become invalid when a GC happens. Instead, access the
10152 process name slot directly.
10153
10154 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
10155 orig_height if set.
10156
10157 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
10158 orig_height if set.
10159
10160 2000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
10161
10162 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
10163 glyph matrices have been freed.
10164
10165 2000-03-05 Gerd Moellmann <gerd@gnu.org>
10166
10167 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
10168 (bootstrap-temacs): Set LC_ALL to C like for temacs.
10169
10170 * xfns.c (QCdata): Moved to xdisp.c.
10171
10172 * xdisp.c (QCdata): Moved here from xfns.c.
10173 (syms_of_xdisp): Initialize QCdata.
10174
10175 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
10176
10177 * window.c (coordinates_in_window): Use
10178 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
10179 FRAME_INTERNAL_BORDER_WIDTH.
10180
10181 * xdisp.c (try_window_id): Recompute unchanged information if
10182 it is obviously invalid.
10183
10184 * xterm.c (x_term_init): Create a colormap if not using the
10185 default visual.
10186
10187 * xterm.h (select_visual): Change prototype.
10188
10189 * xfns.c (select_visual): Rewritten. Recognize user-specified
10190 visual classes.
10191 (visual_classes): New variable.
10192
10193 2000-03-04 Gerd Moellmann <gerd@gnu.org>
10194
10195 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
10196 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
10197 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
10198 (x_decode_color): Don't handle allocation of white and black specially.
10199 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
10200 XtNcolormap resources.
10201 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
10202 (Fx_create_frame): Initialize color members of x_output structure.
10203 (xpm_load): Pass colormap to XPM lib.
10204
10205 * xfaces.c (x_free_colors): Access colormap of frame using
10206 FRAME_X_COLORMAP. Be paranoid about freeing black and white
10207 when default colormap is used.
10208
10209 * xterm.c (x_term_init): Set Colormap member of x_display_info
10210 structure. Copy colormap if resource `privateColormap' is
10211 specified (PseudoColor only).
10212 (x_setup_relief_color): Access colormap of frame using
10213 FRAME_X_COLORMAP.
10214
10215 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
10216 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
10217
10218 2000-03-04 Jason Rumney <jasonr@gnu.org>
10219
10220 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
10221 other non-platform-specific equivalents.
10222 [WINDOWSNT]: Include w32term.h, fontset.h and define X
10223 specific functions and macros as their w32 equivalents where
10224 non-platform-specifics are not available.
10225 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
10226 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
10227 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
10228 (frame_update_line_height): Use macros to access f->output_data.
10229 (defined_color): Remove FIXME comments; fixed.
10230 (x_face_list_fonts, prepare_face_for_display): Put X specifics
10231 into #ifdef blocks. Add WINDOWSNT blocks.
10232 (Fx_list_fonts): Use macros for accessing font data.
10233 (set_lface_from_font_name): Different default fonts for X and
10234 WINDOWSNT.
10235 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
10236 scalable for backward compatibility.
10237 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
10238 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
10239
10240 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
10241 syms_of_w32faces.
10242
10243 * makefile.nt (w32faces.obj): Remove.
10244 (xfaces.obj): Add.
10245
10246 2000-03-03 Jason Rumney <jasonr@gnu.org>
10247
10248 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
10249 correct parameters.
10250
10251 2000-03-03 Ken Raeburn <raeburn@gnu.org>
10252
10253 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
10254 standard ELF definitions here if the system header does not.
10255
10256 2000-03-03 Gerd Moellmann <gerd@gnu.org>
10257
10258 * xterm.c (PER_CHAR_METRIC): Removed.
10259 (x_per_char_metric_1, x_default_char): New functions.
10260 (x_per_char_metric): If font's default char is invalid, return
10261 metrics of a suitably chosen usable default char.
10262 (x_draw_glyph_string_foreground): If font has an invalid default
10263 char, replace occurrences of unprintable chars with a suitably
10264 chosen usable default char.
10265
10266 2000-03-02 Gerd Moellmann <gerd@gnu.org>
10267
10268 * xterm.c (note_mouse_highlight): Return quickly if frame's
10269 glyph matrices have been freed.
10270
10271 * dispnew.c (free_glyphs): Block input while freeing matrices.
10272
10273 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
10274
10275 * xterm.c (x_alloc_lighter_color, x_setup_relief_color):
10276 Use x_free_colors.
10277
10278 * dispextern.h (x_free_colors): Add prototype.
10279
10280 * xfaces.c (x_free_colors): New function.
10281 (unload_color, free_face_colors): Use it.
10282
10283 2000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
10284
10285 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
10286
10287 * window.c [MSDOS]: Include msdos.h.
10288
10289 2000-03-02 Dave Love <fx@gnu.org>
10290
10291 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
10292
10293 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
10294 set C_OPTIMIZE_SWITCH for gcc.
10295
10296 2000-03-02 Kenichi Handa <handa@etl.go.jp>
10297
10298 * coding.c (coding_save_composition): Be sure to allocate
10299 composition data area in coding even if there's no composition in
10300 the current run.
10301
10302 2000-03-01 Jason Rumney <jasonr@gnu.org>
10303
10304 * w32term.c: Equivalent changes to those made to xterm.c on
10305 2000-02-25 and 2000-02-24.
10306
10307 * w32fns.c: Equivalent changes to those made to xfns.c on
10308 2000-02-25 and 2000-02-21.
10309
10310 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
10311 correct line-end convention is followed.
10312
10313 * w32menu.c [HAVE_BOXES]: Remove #undef.
10314 (single_keymap_panes): Remove code for simulating checkmarks.
10315 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
10316 Remove code for drawing simulated checkmarks.
10317 (w32_menu_show): make unibyte help string correctly.
10318 (add_menu_item): draw standard Windows checkmarks. Draw radio
10319 buttons as radio buttons if possible.
10320
10321 2000-03-01 Gerd Moellmann <gerd@gnu.org>
10322
10323 * sysdep.c (start_of_text): Don't define this function for NetBSD
10324 with ELF.
10325
10326 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
10327 Don't define.
10328 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
10329 (LINKER): Don't undef if __NetBSD__ is defined.
10330
10331 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
10332
10333 * fileio.c [__NetBSD__]: Define `unix'.
10334
10335 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
10336
10337 2000-02-29 Gerd Moellmann <gerd@gnu.org>
10338
10339 * atimer.c (start_atimer): Don't abort when timers are stopped.
10340 (append_atimer_lists): New function.
10341 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
10342 arbitrary lists of stopped and running atimers.
10343
10344 * atimer.c (cancel_atimer): Handle canceling an atimer when
10345 some timers are stopped.
10346
10347 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
10348 after canceling it.
10349
10350 * fns.c (maybe_resize_hash_table): Handle case of new size
10351 coming out as being the same as old size.
10352
10353 2000-02-27 Jason Rumney <jasonr@gnu.org>
10354
10355 * makefile.nt: Add atimer.h to dependencies.
10356 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
10357 * w32console.c: Only disable window system features for dispextern.h
10358 (initialize_w32_display): Build a display info for the console.
10359 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
10360 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
10361 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
10362 as 2 button mice.
10363 * w32gui.h (struct W32FontStruct): Revert last change after change
10364 to xdisp.c.
10365 * w32menu.c (single_submenu): Set up help string.
10366 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
10367 (w32_dialog_show): Set up help string.
10368 * w32term.c (w32_display_info_for_display): Remove unused function.
10369 (w32_draw_bitmap): Use pre-built bitmaps.
10370 (w32_initialize_display_info): New function to initialize parts of
10371 display info that are common to both GUI and console frames.
10372 (w32_term_init): Use w32_initialize_display_info. Do not set
10373 Vw32_num_mouse_buttons here, as it is not called for console
10374 frames. Build bitmaps for indicating truncated lines etc.
10375 (x_delete_display): Destroy pre-built bitmaps.
10376 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
10377 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
10378
10379 2000-02-27 Dave Love <fx@gnu.org>
10380
10381 * lisp.h: Add a bunch of prototypes.
10382
10383 2000-02-26 Kenichi Handa <handa@etl.go.jp>
10384
10385 * keyboard.c (read_char): Set `usec' correctly.
10386
10387 2000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
10388
10389 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
10390 `lambda', set reg[RRR] to the map index.
10391 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
10392 reg[RRR] to 0. Otherwise, set it to -1.
10393
10394 2000-02-25 Gerd Moellmann <gerd@gnu.org>
10395
10396 * emacs.c (main): Remove code snippet commented out with `//'.
10397
10398 2000-02-25 Richard M. Stallman <rms@gnu.org>
10399
10400 * fileio.c (Ffile_symlink_p): If result starts with a `/'
10401 and contains a `:', prepend `/:'.
10402
10403 * window.c (select_window_1): If selected_window is nil,
10404 don't "swap out" the buffer's point.
10405 (Fset_window_configuration): Set selected_window to nil
10406 before calling Fselect_window.
10407 (unshow_buffer): Don't set point in buffer from window's point
10408 if another more recently selected window also shows the buffer.
10409
10410 2000-02-25 Gerd Moellmann <gerd@gnu.org>
10411
10412 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
10413
10414 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
10415 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
10416 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay):
10417 New variables.
10418 (DEFAULT_BUSY_CURSOR_DELAY): New define.
10419 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
10420 (hide_busy_cursor): New functions.
10421 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
10422
10423 * minibuf.c (read_minibuf): Cancel busy-cursor.
10424
10425 * keyboard.c (command_loop_1): Call start_busy_cursor before
10426 Fcommand_execute and cancel_busy_cursor after it.
10427 (timer_check): Remove busy-cursor code.
10428 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
10429 cursor timer.
10430
10431 * process.c (wait_reading_process_input): Remove busy-cursor code.
10432
10433 * eval.c (Fsignal): Call cancel_busy_cursor instead of
10434 Fx_hide_busy_cursor.
10435
10436 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
10437 Remove prototyoes.
10438 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
10439
10440 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
10441
10442 * xterm.c (XTread_socket): Remove busy-cursor code.
10443
10444 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
10445 (build_frame_matrix_from_leaf_window): Put code handling
10446 glyph row's not being a slice of a frame row in #if 0.
10447 (sync_window_with_frame_matrix_rows): New function.
10448 (frame_row_to_window): New function.
10449 (mirror_line_dance): Handle copies between windows.
10450
10451 * lread.c (Fload): Use `xfree' instead of `free'.
10452 (init_obarray): Use `xmalloc' instead of `malloc'.
10453
10454 * window.c (Fset_window_buffer): Set WINDOW to the window
10455 after decoding.
10456 (coordinates_in_window): Take frame's internal border width
10457 into account.
10458
10459 2000-02-24 Gerd Moellmann <gerd@gnu.org>
10460
10461 * xterm.c (x_display_and_set_cursor): Display cursor of
10462 non-selected windows depending on the setting of
10463 cursor_in_non_selected_windows.
10464
10465 * xdisp.c (cursor_in_non_selected_windows): New variable.
10466 (syms_of_xdisp): DEFVAR_BOOL it.
10467
10468 2000-02-23 Gerd Moellmann <gerd@gnu.org>
10469
10470 * data.c (Fstring_to_number): If number is greater than what
10471 fits into an integer, return a float.
10472
10473 * eval.c (specbind): Remove references to
10474 keyword_symbols_constant_flag.
10475
10476 * data.c (keyword_symbols_constant_flag): Removed.
10477 (Fmakunbound, set_internal, syms_of_data): Remove references to
10478 keyword_symbols_constant_flag.
10479
10480 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
10481
10482 2000-02-23 Kenichi Handa <handa@etl.go.jp>
10483
10484 * syntax.c (multibyte_syntax_as_symbol): New variable.
10485 (syms_of_syntax): Declare it as a Lisp variable.
10486 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
10487 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
10488 nonzero, treat all multibyte characters as symbol.
10489 (init_syntax_once): Give syntax `word' to all multibyte characters.
10490
10491 2000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
10492
10493 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
10494 a deleted frame.
10495
10496 2000-02-21 Gerd Moellmann <gerd@gnu.org>
10497
10498 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
10499
10500 * xfns.c (x_window_to_frame, x_any_window_to_frame)
10501 (x_non_menubar_window_to_frame): Check the busy-cursor window.
10502
10503 2000-02-21 Dave Love <fx@gnu.org>
10504
10505 * frame.c (Vmouse_position_function): New variable.
10506 (Fmouse_position): Use it.
10507 (syms_of_frame): Install it.
10508
10509 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
10510
10511 2000-02-20 Gerd Moellmann <gerd@gnu.org>
10512
10513 * fileio.c (Finsert_file_contents): Unbind the binding of
10514 standard-output done by temp_output_buffer_setup.
10515
10516 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
10517 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
10518 (specbind, unbind_to): Handle most common case of non-constant
10519 symbol with trivial value specially.
10520
10521 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
10522
10523 2000-02-20 Richard M. Stallman <rms@gnu.org>
10524
10525 * data.c (Fmake_variable_buffer_local): Doc fix.
10526 Init found_for_buffer to 0.
10527 (Fmake_variable_frame_local): If the variable has already
10528 been buffer-local, set the check_frame field.
10529
10530 2000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
10531
10532 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
10533 produced for CODING_MODE_LAST_BLOCK requires.
10534
10535 2000-02-18 Dave Love <fx@gnu.org>
10536
10537 * keyboard.c (echo_keystrokes): Remove declaration.
10538 (Vecho_keystrokes) New variable.
10539 (read_char, record_menu_key, read_key_sequence): Use it to allow
10540 use of float value.
10541 (syms_of_keyboard): Change Vecho_keystrokes declaration.
10542
10543 * lread.c: Undef feature selection macros before defining.
10544
10545 2000-02-18 Gerd Moellmann <gerd@gnu.org>
10546
10547 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
10548 for symbols other than the symbol in question.
10549
10550 2000-02-17 Dave Love <fx@gnu.org>
10551
10552 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
10553
10554 2000-02-17 Gerd Moellmann <gerd@gnu.org>
10555
10556 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
10557
10558 * alloc.c (enum mem_type): Compile unconditionally.
10559
10560 2000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
10561
10562 * xfaces.c (tty_defined_color): Don't return faulire indication
10563 for unspecified-fg and unspecified-bg pseudo-colors.
10564
10565 2000-02-17 Gerd Moellmann <gerd@gnu.org>
10566
10567 * alloc.c (mark_object): Don't mark symbol names in pure space.
10568 (gc_sweep): Don't unmark symbol names in pure space.
10569
10570 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
10571 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
10572 [GC_MARK_STACK]: New defines.
10573 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
10574 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
10575
10576 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
10577
10578 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
10579 allocate_buffer instead of xmalloc.
10580
10581 * alloc.c (toplevel): Include setjmp.h.
10582 (PURE_POINTER_P): New define.
10583 (enum mem_type) [GC_MARK_STACK]: New enumeration.
10584 (Vdead) [GC_MARK_STACK]: New variable.
10585 (lisp_malloc): Add parameter TYPE, call mem_insert if
10586 GC_MARK_STACK is defined.
10587 (allocate_buffer): New function.
10588 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
10589 (free_float) [GC_MARK_STACK]: Set type to Vdead.
10590 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
10591 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
10592 (MEM_NIL) [GC_MARK_STACK]: New define.
10593 (struct mem_node) [GC_MARK_STACK]: New structure.
10594 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
10595 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
10596 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
10597 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
10598 (mark_stack) [GC_MARK_STACK]: New functions.
10599 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
10600 (clear_marks): Removed.
10601 (gc_sweep): Set free conses' car, free floats' type, free
10602 symbols' function to Vdead. Use lisp_free to free buffers.
10603 (init_alloc_once): Initialize Vdead.
10604 (survives_gc_p): Return non-zero for pure objects.
10605
10606 * alloc.c: Add comments throughout the file.
10607
10608 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
10609 that unblocks alarms.
10610
10611 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
10612 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
10613 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
10614
10615 * frame.c (make_frame): Set frame initiallly to `garbaged'.
10616
10617 2000-02-17 Kenichi Handa <handa@etl.go.jp>
10618
10619 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
10620 avoid infinite error signaling. Allocate sufficient memory for
10621 eol_str in the case that eoltype is Lisp_Int.
10622
10623 2000-02-17 Stefan Monnier <monnier@cs.yale.edu>
10624
10625 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
10626 depends on the previous behavior.
10627
10628 2000-02-16 Gerd Moellmann <gerd@gnu.org>
10629
10630 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
10631
10632 2000-02-15 Gerd Moellmann <gerd@gnu.org>
10633
10634 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
10635
10636 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
10637 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
10638 write(2).
10639
10640 2000-02-15 Richard M. Stallman <rms@gnu.org>
10641
10642 * data.c (set_internal): Don't make variable buffer-local
10643 if within a let-binding for the same buffer.
10644 (let_shadows_buffer_binding_p): New function.
10645
10646 * eval.c (specbind): For buffer-local value,
10647 record the current buffer also.
10648 (unbind_to): Cope with that change.
10649
10650 2000-02-15 Gerd Moellmann <gerd@gnu.org>
10651
10652 * window.c (Fsave_window_excursion): Doc fix.
10653
10654 2000-02-15 Stefan Monnier <monnier@cs.yale.edu>
10655
10656 * syntax.c (back_comment): Make sure we only consider comment-starters
10657 of the relevant style and return -1 in case of a failure to find the
10658 beginning of the comment.
10659 (Fforward_comment): If back_comment fails, go back to the position just
10660 after the comment-end.
10661 (scan_lists): Add comment describing a very minor bug.
10662
10663 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
10664
10665 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
10666 `completion-regexp-list' in the docstring.
10667
10668 2000-02-14 Dave Love <fx@gnu.org>
10669
10670 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
10671
10672 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
10673
10674 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
10675 to Emacs' syntax. Also fix the comment about set/not-set meanings
10676 since Emacs syntax is not the value 0 any more.
10677 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
10678 since it's now part of RE_SYNTAX_EMACS.
10679
10680 2000-02-12 Dave Love <fx@gnu.org>
10681
10682 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on Alpha.
10683
10684 2000-02-12 Gerd Moellmann <gerd@gnu.org>
10685
10686 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
10687
10688 2000-02-12 Dave Love <fx@gnu.org>
10689
10690 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
10691
10692 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
10693 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
10694 * s/hpux.h: Don't define HAVE_VFORK.
10695
10696 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
10697
10698 * s/nextstep.h: Don't define HAVE_ALLOCA.
10699
10700 * config.in: Add vfork bits.
10701
10702 2000-02-12 Gerd Moellmann <gerd@gnu.org>
10703
10704 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
10705 unwind function to undo the effect of stopping atimers.
10706
10707 * keyboard.c (bind_polling_period): Stop all timers except poll_timer.
10708
10709 * atimer.c (stopped_atimers): New variable.
10710 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
10711 New functions.
10712
10713 * atimer.h (stop_other_atimers, run_all_atimers)
10714 (unwind_stop_other_atimers): Add function prototypes.
10715
10716 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
10717
10718 2000-02-11 Ken Raeburn <raeburn@gnu.org>
10719
10720 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
10721 library may depend on jpeg.
10722 (atimer.o): Depends on atimer.c.
10723
10724 2000-02-11 Kenichi Handa <handa@etl.go.jp>
10725
10726 * insdel.c (del_range_1): Call update_compositions.
10727 (del_range_both): Call update_compositions just once..
10728
10729 2000-02-10 Dave Love <fx@gnu.org>
10730
10731 * xfns.c (create_frame_xic): Fix initialization of automatic
10732 aggregates for pcc.
10733
10734 2000-02-09 Kenichi Handa <handa@etl.go.jp>
10735
10736 * ccl.c (CCL_MAKE_CHAR): New macro.
10737 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
10738 registers by CCL_MAKE_CHAR before calling translate_char.
10739 <CCL_TranslateCharacterConstTbl> Likewise.
10740
10741 2000-02-08 Dave Love <fx@gnu.org>
10742
10743 * lread.c (__EXTENSIONS__): Define.
10744
10745 2000-02-08 Gerd Moellmann <gerd@gnu.org>
10746
10747 * puresize.h (BASE_PURESIZE): Increase to 650000.
10748
10749 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
10750
10751 * msdos.c (XMenuActivate): Turn off the cursor after displaying
10752 the help message.
10753
10754 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
10755
10756 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
10757 md, mh, mb, mr, and me to the fake termcap entry.
10758
10759 2000-02-06 Ken Raeburn <raeburn@gnu.org>
10760
10761 * sound.c (sound_cleanup): Don't call device close routine if the
10762 function pointer is null.
10763
10764 2000-02-06 Andrew Innes <andrewi@gnu.org>
10765
10766 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
10767 around image definitions and prototypes.
10768 (gamma_correct) [WINDOWSNT]: New prototype.
10769
10770 * w32term.c (x_make_frame_visible): Replace call to
10771 input_poll_signal with poll_for_input.
10772
10773 * window.c [WINDOWSNT]: Include w32term.h.
10774
10775 * xdisp.c [WINDOWSNT]: Include w32term.h.
10776
10777 * makefile.nt: Add dependencies on w32gui.h.
10778 (OBJ1): Include atimer.obj.
10779 ($(BLD)\atimer.obj): New dependency rule.
10780
10781 * w32.c (sigmask): New function (does nothing).
10782 (sigunblock): Ditto.
10783
10784 * frame.c [WINDOWSNT]: Include w32term.h.
10785
10786 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
10787
10788 * lread.c (syms_of_lread): Fix literal newlines.
10789
10790 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
10791 the string constant limit (2048 bytes) in MSVC.
10792 (main): Ditto.
10793
10794 2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
10795
10796 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit area.
10797 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
10798 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
10799 dispatch the event.
10800
10801 2000-02-04 Dave Love <fx@gnu.org>
10802
10803 * fileio.c: Remove some unused vars.
10804 (_GNU_SOURCE): Define (for euidaccess).
10805
10806 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
10807
10808 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
10809 gcpro1, gcpro2.
10810 (read_minibuf): Deal with allow_props correctly.
10811
10812 2000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
10813
10814 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
10815
10816 2000-02-03 Ken Raeburn <raeburn@gnu.org>
10817
10818 * search.c (compile_pattern): If a cache entry has a nil regexp,
10819 fill in that entry instead of clobbering a previously cached
10820 string regexp.
10821
10822 2000-02-02 Ken Raeburn <raeburn@gnu.org>
10823
10824 * puresize.h (BASE_PURESIZE): Increase to 610000.
10825
10826 2000-02-02 Gerd Moellmann <gerd@gnu.org>
10827
10828 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
10829 can GC.
10830
10831 2000-02-02 Kenichi Handa <handa@etl.go.jp>
10832
10833 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
10834 instead of incrementing ic directly.
10835 <CCL_WriteExprConst> Likewise.
10836 <ccl_set_expr>: Set ic to jump_address.
10837
10838 * fileio.c (e_write): Fix the handling of
10839 CODING_FINISH_INSUFFICIENT_SRC.
10840
10841 2000-02-01 Dave Love <fx@gnu.org>
10842
10843 * editfns.c (Fpropertize): Doc fix.
10844
10845 * process.c (Fstart_process): Doc fix.
10846
10847 * eval.c: Fix various doc strings not to duplicate information
10848 from help-manyarg-func-alist.
10849
10850 * window.c (Fset_window_margins): Don't make interactive. Doc fix.
10851
10852 * doc.c (Vhelp_manyarg_func_alist): New variable.
10853 (Fdocumentation): Use it.
10854 (syms_of_doc): Define it.
10855
10856 2000-01-31 Gerd Moellmann <gerd@gnu.org>
10857
10858 * xterm.c (xim_open_dpy): Remove unused local variable.
10859
10860 * emacs.c (USAGE): Use term `display options' instead of `X options'.
10861
10862 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
10863 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
10864
10865 * fns.c (sweep_weak_table): New function.
10866 (sweep_weak_hash_tables): Use it. Keep on marking until there
10867 is no more change.
10868
10869 2000-01-30 Gerd Moellmann <gerd@gnu.org>
10870
10871 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
10872 that XTread_socket does not crash by trying to call XNoOp on a
10873 closed display.
10874
10875 2000-01-30 Jason Rumney <jasonr@gnu.org>
10876
10877 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
10878 Change selected_frame to SELECTED_FRAME ().
10879 (w32_console_mouse_position): Remove #ifndef MULE from around
10880 `insist' parameter.
10881
10882 * makefile.nt: Remove dosfns.obj.
10883
10884 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
10885
10886 * w32fns.c (w32_defined_color): Check for valid frame before
10887 applying gamma correction. Eliminate dependency on frame elsewhere.
10888 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
10889 (w32_to_x_font): Use resx and resy not height_in and width_in.
10890 (x_to_w32_font): Doc fix.
10891 (xlfd_strip_height): New function to strip and return font height.
10892 (w32_font_match): Compare height separately from rest of xlfd
10893 spec, using xlfd_strip_height.
10894
10895 * w32term.c (w32_term_init): Swap resx and height_in, resy and
10896 width_in. Use w32_defined_color in place of defined_color.
10897
10898 * w32faces.c: Merge more of DOS and X specifics in preparation for
10899 merge with xfaces.c.
10900 (defined_color): Remove FIXME comment.
10901 (tty_color_name): Provide w32-specific function.
10902 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
10903
10904 * w32console.c (turn_on_face, turn_off_face): Removed.
10905 (w32_face_attributes): New function.
10906 (Global_variables): Reduce scope where possible.
10907 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
10908 fill attribute.
10909 (hl_mode): Don't modify text attributes.
10910 (write_glyphs): Don't do anything if len <= 0. Use
10911 w32_face_attributes to get attributes for drawing. Write
10912 terminating codes using char_attr_normal.
10913 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
10914 (update_begin, update_end): Likewise.
10915 (vga_stdcolor_name): New function.
10916 (initialize_w32_display): Remove char_attr_reverse and char_attr.
10917 (Fset_screen_color): Remove char_attr_reverse.
10918
10919 2000-01-29 Gerd Moellmann <gerd@gnu.org>
10920
10921 * xfns.c (xic_set_preeditarea): Take window parameter and
10922 window-relative pixel-positions.
10923
10924 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
10925 is its frame's selected window.
10926 (xim_instantiate_callback): Likewise.
10927
10928 * xfns.c (x_create_im): Removed.
10929 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
10930 (supported_xim_styles): Renamed from supported_styles.
10931 (best_xim_style): Renamed from best_style.
10932 (create_frame_xic): Renamed from xic_create_frame.
10933 (free_frame_xic): Renamed from xic_destroy_frame.
10934
10935 2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
10936
10937 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
10938 our frames, call XFilterEvent with 2nd parameter `None'.
10939 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
10940 returning XBufferOverflow.
10941 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status area.
10942 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
10943 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
10944 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
10945 (xim_initialize, xim_close)
10946 [HAVE_X_I18N && HAVE_X11R6]: New functions.
10947 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
10948 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
10949 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
10950
10951 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
10952 and `xim_styles'.
10953 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
10954 `xic_style' and `xic_xfs'.
10955 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
10956 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
10957 (FRAME_XIM): Removed.
10958
10959 * xfns.c (supported_styles): New variable.
10960 (DEFAULT_STYLE, DEFAULT_FONT): New macros
10961 (xic_create_xfontset, best_style, xic_create_frame)
10962 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
10963 (xic_set_xfontset): New functions.
10964
10965 2000-01-28 Dave Love <fx@gnu.org>
10966
10967 * s/irix6-5.h: Revert last change after change to irix5-0.h.
10968
10969 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
10970
10971 2000-01-28 Gerd Moellmann <gerd@gnu.org>
10972
10973 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
10974 for *scratch* if it already existed.
10975
10976 * emacs.c (USAGE): New macro.
10977 (main): Use it to display usage information.
10978
10979 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
10980
10981 Support for the menu-help feature:
10982
10983 * msdos.h: Change prototypes of XMenuAddSelection and XMenuActivate.
10984
10985 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
10986 part of the line to the termscript file.
10987 (IT_clear_to_end): Clear the entire line, not just its beginning.
10988 (menu_help_message, prev_menu_help_message): New variables.
10989 (IT_menu_make_room): Make room for the help_text member.
10990 (IT_menu_display): New argument disp_help; all callers changed.
10991 If disp_help is non-zero, store the help text of the active menu
10992 item in menu_help_message.
10993 (XMenuAddPane): Initialize the help_text member to NULL.
10994 (XMenuAddSelection): New argument help_text. Store it in the
10995 XMenu structure.
10996 (XMenuActivate): New argument help_callback. If the value of
10997 menu_help_message has changed since the last time, display the
10998 menu help message text while waiting for the mouse to move. Clear
10999 the echo area before exiting.
11000 (XMenuDestroy): Free the help_text member.
11001
11002 2000-01-27 Gerd Moellmann <gerd@gnu.org>
11003
11004 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
11005 XMenuAddSelection. Pass help callback to XMenuActivate.
11006 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
11007
11008 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
11009
11010 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
11011 and EMACS_SET_USECS.
11012
11013 2000-01-26 Dave Love <fx@gnu.org>
11014
11015 * editfns.c (Fchar_after, Fchar_before): Doc fix.
11016
11017 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
11018 an error may be signalled.
11019
11020 2000-01-26 Gerd Moellmann <gerd@gnu.org>
11021
11022 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
11023 LD_SWITCH_SYSTEM inherited from irix5-0.h.
11024
11025 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
11026
11027 2000-01-25 Gerd Moellmann <gerd@gnu.org>
11028
11029 * charset.c (Fstring): If there is a multibyte char among
11030 the args, always return a multibyte string.
11031
11032 2000-01-25 Gerd Moellmann <gerd@gnu.org>
11033
11034 * sysdep.c (sys_select): Turn atimers off and on instead of
11035 recording and restoring old alarm handler
11036
11037 * process.c (toplevel): Include atimer.h.
11038 (create_process_1): Rewritten.
11039 (create_process): Use atimers instead of alarm.
11040 (wait_reading_process_input) [hpux]: Turn atimers off instead
11041 of turning off SIGALRM.
11042 (wait_reading_process_input): Turn off atimers instead off
11043 calling stop_polling.
11044
11045 * emacs.c (main): Call init_atimer.
11046
11047 * keyboard.c (toplevel): Include systime.h and atimer.h.
11048 (polling_for_input): Removed because unused.
11049 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
11050 (poll_timer): New variable.
11051 (poll_for_input, poll_for_input_1): New functions.
11052 (start_polling, stop_polling): Rewritten.
11053
11054 * keyboard.h (polling_for_input): Removed.
11055
11056 * atimer.h, atimer.c: New files.
11057
11058 * Makefile.in (obj): Add atimer.o.
11059 (atimer.o): New target.
11060
11061 * blockinput.h (pending_atimers): Add extern declaration.
11062 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
11063
11064 * lisp.h (popup_activated_flag): Add extern declaration.
11065
11066 * xmenu.c (popup_activated_flag): Make externally visible.
11067 (popup_activate_callback) [USE_MOTIF]: Increment popup_activated_flag.
11068 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
11069
11070 * xterm.c (toplevel): Include atimer.h.
11071 (toolkit_scroll_bar_interaction): New variable.
11072 (Fxt_process_timeouts): Removed.
11073 (x_process_timeouts): New function.
11074 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
11075 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
11076 (x_make_frame_visible): Call poll_for_input_1 instead of
11077 input_poll_signal. Don't call alarm.
11078 (x_initialize): Install timer calling x_process_timeouts.
11079
11080 2000-01-24 Dave Love <fx@gnu.org>
11081
11082 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
11083 Don't use -cckr -- apparently not now necessary.
11084
11085 2000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
11086
11087 * msdos.c (IT_menu_display): Truncate long menu lines at the right
11088 screen boundary.
11089
11090 2000-01-23 Jason Rumney <jasonr@gnu.org>
11091
11092 * w32fns.c (w32_defined_color): Apply gamma correction before
11093 trying to map to the palette.
11094 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
11095 to w32_clear_rect.
11096
11097 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
11098 here. Callers changed to always pass real device context.
11099 (w32_draw_bitmap): Likewise.
11100 (w32_get_glyph_overhangs): Likewise.
11101 (w32_draw_box_rect): Make use of s->hdc rather than getting a new one.
11102 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
11103 pfnSetScrollInfo and SetScrollRange.
11104 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
11105 back into MULE characters after decoding them.
11106 (x_get_glyph_face_and_encoding): Likewise.
11107 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
11108 GetCharABCWidthsW fails, since this is defined on Windows 9x.
11109 (x_produce_glyphs): Calculate per char metrics for a character
11110 that we know exists in default font when font_not_found_p is true.
11111
11112 2000-01-22 Jason Rumney <jasonr@gnu.org>
11113
11114 * makefile.nt (intervals.obj, composite.obj): New modules.
11115 (composite.h): Added as dependency where appropriate.
11116
11117 * w32gui.h (XGCValue): New struct for emulating X GCs.
11118
11119 * w32term.h (XCharStruct): New struct for emulating X.
11120
11121 * w32console.c (turn_on_face, turn_off_face): New functions.
11122 (change_line_highlight): New prototype for new redisplay.
11123 (write_glyphs): Support multibyte text. Support faces.
11124
11125 * w32faces.c: Complete rewrite for new redisplay based on new xfaces.c.
11126
11127 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
11128 throughout. struct frame * in place of FRAME_PTR.
11129 Skeleton support for images, toolbars, tooltips from xfns.c.
11130 (Fx_create_frame): Use system default for default scroll bar width.
11131 (w32_get_arg): Renamed from x_get_arg.
11132 (Fx_file_dialog): New function.
11133 (w32_list_fonts): Check cache before asking system.
11134 (Vw32_enable_synthesized_fonts): New variable.
11135 (Vw32_enable_italics): Obsolete, removed.
11136
11137 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
11138 Use SELECTED_FRAME macro.
11139
11140 * w32menu.c: Add skeleton support for help strings on menus.
11141 (add_menu_item): Native checkbox and radio support added, but not
11142 yet enabled due to bugs.
11143 (push_menu_item): Add parameters type, selection and help.
11144 Callers updated.
11145 Formatting changes to reduce unnecessary diffs with xmenu.c.
11146
11147 * w32select.c (Fw32_set_clipboard_data): Update call to
11148 find_charset_in_str.
11149
11150 * w32term.c: Complete rewrite for new redisplay based on new
11151 xterm.c with necessary sections merged back in from old w32term.c.
11152
11153 2000-01-21 Richard M. Stallman <rms@gnu.org>
11154
11155 * data.c (set_internal): Further fix in same criterion.
11156
11157 2000-01-20 Richard M. Stallman <rms@gnu.org>
11158
11159 * data.c (set_internal): Fix the criteria for whether
11160 to swap out the old cached binding.
11161
11162 2000-01-19 Dave Love <fx@gnu.org>
11163
11164 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
11165
11166 2000-01-18 Kenichi Handa <handa@etl.go.jp>
11167
11168 * regex.c (re_compile_fastmap): While checking a range table for
11169 `charset', skip flag bits for a character class correctly.
11170
11171 2000-01-17 Gerd Moellmann <gerd@gnu.org>
11172
11173 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
11174
11175 * xfns.c (x_window): Call lw_create_widget with new parameter list.
11176
11177 * widget.c (EmacsFrameSetCharSize): Change size of children first
11178 because of problems with main window geometry management under Lesstif.
11179
11180 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
11181 MENU_ITEMS_ITEM_.*.
11182 (MENU_ITEMS_ITEM_HELP): New enumerator.
11183 (push_menu_item): Add parameter HELP. Record help in menu_items.
11184 (single_menu_item, single_submenu, list_of_items): Call
11185 push_menu_item with new parameter.
11186 (single_submenu): Set help string in widget value.
11187 (menu_highlight_callback): New function.
11188 (set_frame_menubar): Call lw_create_widget with new
11189 parameter list.
11190 (xmenu_show, xdialog_show): Ditto.
11191
11192 2000-01-13 Gerd Moellmann <gerd@gnu.org>
11193
11194 * sound.c (Fplay_sound): Improve doc string.
11195
11196 2000-01-11 Richard M. Stallman <rms@gnu.org>
11197
11198 * lisp.h (set_internal): Enter the new arg.
11199
11200 * eval.c (specbind): Record buffer-local variables specially,
11201 indicating which buffer's binding was saved.
11202 (unbind_to): Restore buffer-local variables specially
11203 in the proper buffer.
11204
11205 * data.c (set_internal): New arg BUF.
11206
11207 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
11208 * data.c (Fset): Pass new arg to set_internal.
11209 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
11210
11211 2000-01-11 Gerd Moellmann <gerd@gnu.org>
11212
11213 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload, xprintsym.
11214
11215 2000-01-11 Richard M. Stallman <rms@gnu.org>
11216
11217 * minibuf.c (Ftry_completion): Doc fix.
11218
11219 2000-01-11 Gerd Moellmann <gerd@gnu.org>
11220
11221 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
11222 vector, too.
11223
11224 2000-01-11 Andreas Schwab <schwab@suse.de>
11225
11226 * coding.c (code_convert_region): Initialize total_skip.
11227
11228 2000-01-08 Dave Love <fx@gnu.org>
11229
11230 * eval.c (Fuser_variable_p): Check customizability too.
11231
11232 2000-01-07 Gerd Moellmann <gerd@gnu.org>
11233
11234 * minibuf.c (Fcompleting_read): Doc fix.
11235
11236 2000-01-05 Gerd Moellmann <gerd@gnu.org>
11237
11238 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
11239 -L /usr/local/lib.
11240
11241 * xfns.c (x_create_im): New function to set IM and IC of a frame.
11242 Check that input style is supported before trying to create an
11243 IC for it.
11244 (x_window): Call x_create_im.
11245
11246 2000-01-04 Gerd Moellmann <gerd@gnu.org>
11247
11248 * xfns.c (current_gif_memory_src): New variable.
11249 (gif_load): Record the address of the current memory source
11250 in current_gif_memory_src.
11251 (gif_read_from_memory): Use current_gif_memory_src.
11252
11253 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
11254 macros statement form.
11255
11256 * sound.c (struct sound): Renamed from struct sound_file.
11257 (struct sound): Add members `data' and `header_size'.
11258 (enum sound_attr): Add SOUND_DATA.
11259 (current_sound, current_sound_device): Variables renamed from
11260 sound_file and sound_device.
11261 (parse_sound): Parse :data.
11262 (parse_sound): Handle sound data in strings.
11263 (find_sound_type): Function renamed from find_sound_file_type.
11264 (wav_init, au_init): Fail if sound's header_size is smaller than
11265 needed header size.
11266 (wav_play, au_play): Play sounds from string data.
11267
11268 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
11269
11270 * lisp.h: Add prototype for allocate_string_data.
11271
11272 * alloc.c (Fgarbage_collect): Return number of live and free strings.
11273
11274 * alloc.c (mark_buffer): Remove code in #if 0.
11275 (gc_sweep): Ditto.
11276 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
11277 (strings_consed): New variable.
11278 (allocate_string): Set it.
11279 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
11280 (Fmemory_use_counts): Return strings_consed. Use Flist.
11281
11282 * alloc.c: General cleanup in comments etc. Remove conditional
11283 compilation for `standalone'.
11284
11285 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
11286
11287 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
11288 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
11289 (DONT_COPY_FLAG): Removed.
11290 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
11291 (struct sdata, struct sblock): New
11292 (struct string_block): Rewritten.
11293 (STRINGS_IN_STRING_BLOCK): New macro.
11294 (oldest_sblock, current_sblock, total_strings, total_free_strings)
11295 (large_sblocks, string_blocks, string_free_list): New variables.
11296 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
11297 (init_strings): Rewritten.
11298 (allocate_string, allocate_string_data, compact_small_strings)
11299 (free_large_strings, sweep_strings): New functions.
11300 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
11301 (struct string_block_head, current_string_block)
11302 (first_string_block, large_string_blocks, STRING_FULLSIZE)
11303 (STRING_PAD): Removed.
11304 (make_uninit_multibyte_string, make_pure_string): Rewritten.
11305 (Fgarbage_collect): Don't set mark bit in large strings.
11306 (mark_object): Mark strings differently. Mark symbol names
11307 differently.
11308 (survives_gc_p): Test marked strings differently.
11309 (gc_sweep): Sweep strings differently, unmark strings in
11310 symbol names.
11311 (compact_strings): Removed.
11312
11313 2000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
11314
11315 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
11316 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
11317
11318 2000-01-04 Kenichi Handa <handa@etl.go.jp>
11319
11320 * fileio.c (Finsert_file_contents): Signal error if visiting file
11321 in a non-empty buffer.
11322
11323 * term.c (encode_terminal_code): Fix the previous change.
11324
11325 2000-01-03 Gerd Moellmann <gerd@gnu.org>
11326
11327 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
11328 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
11329
11330 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
11331
11332 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11333
11334 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
11335 need to test for MSDOS frames.
11336
11337 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11338
11339 * dosfns.c (unspecified_colors): Remove.
11340 (msdos_stdcolor_idx): Use global variables unspecified_fg and
11341 unspecified_bg.
11342 (msdos_stdcolor_name): Return strings for unspecified fore- and
11343 back-ground colors.
11344
11345 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
11346 (syms_of_xfaces): Remove their staticpro's.
11347 (tty_color_name): Return Lisp strings for unspecified fore- and
11348 back-ground colors.
11349 (Finternal_set_lisp_face_attribute): Remove the special treatment
11350 for Qunspecified_{f,b}g.
11351 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp string.
11352
11353 2000-01-03 Gerd Moellmann <gerd@gnu.org>
11354
11355 * xdisp.c (reseat_at_next_visible_line_start): Position before
11356 newline only if ending up on a newline.
11357 (next_element_from_ellipsis): Return success. Handle case of
11358 displaying no ellipsis. Fix case of ellipsis defined in display table.
11359 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
11360 returns 0.
11361
11362 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11363
11364 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
11365 (Fcolor_supported_p): Renamed from face-color-supported-p.
11366
11367 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11368
11369 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
11370 list of colors renamed to tty-defined-color-alist.
11371 (tty_color_name): Pass the frame to tty-color-by-index.
11372 (realize_tty_face): tty-color-alist is now a function which
11373 accepts the frame as argument.
11374
11375 * term.c (Ftty_display_color_p): Accept an optional argument FRAME.
11376
11377 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11378
11379 * term.c (insert_glyphs): Pass glyph, not &glyph, to
11380 encode_terminal_code.
11381
11382 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11383
11384 * dispnew.c (mode_line_string): Support termcap frames as well.
11385
11386 2000-01-01 Gerd Moellmann <gerd@gnu.org>
11387
11388 * syntax.c (Fforward_word): Undo previous change.
11389
11390 * editfns.c (Fconstrain_to_field): Don't constrain if
11391 inhibit-field-text-motion is non-nil.
11392 (Fline_beginning_position): Undo previous change.
11393 (Fline_end_position): Ditto.
11394
11395 * syntax.c (Fforward_word): Notice field boundaries only if
11396 inhibit-field-text-motion is nil.
11397
11398 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
11399
11400 * editfns.c (Vinhibit_field_text_motion): New variable.
11401 (inhibit-field-text-motion): New DEFVAR_LISP.
11402 (Fline_beginning_position, Fline_end_position): Notice field
11403 boundaries only if inhibit-field-text-motion is nil.
11404
11405 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
11406 All calls adjusted.
11407 (x_build_heuristic_mask): Likewise.
11408 (xbm_load_image_from_file): Change error output.
11409 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
11410 (gif_load, gs_load, x_kill_gs_process): Ditto.
11411
11412 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
11413 color indices when accessing raster pixels.
11414 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
11415 one of :file or :data.
11416 (enum pbm_keyword_index): Add PBM_DATA.
11417 (pbm_format): Add :data.
11418 (pbm_image_p): Allow either :file or :data.
11419 (pbm_read_file): New function.
11420 (pbm_scan_number): Rewritten to read from string.
11421 (pbm_load): Support :data.
11422
11423 See ChangeLog.8 for earlier changes.
11424
11425 ;; Local Variables:
11426 ;; coding: iso-2022-7bit
11427 ;; End: