]> code.delx.au - gnu-emacs/blob - src/ChangeLog
*** empty log message ***
[gnu-emacs] / src / ChangeLog
1 2001-05-16 Gerd Moellmann <gerd@gnu.org>
2
3 * buffer.c (copy_overlays): New function.
4 (clone_per_buffer_values): Use it.
5
6 * buffer.h (OVERLAY_PLIST): New macro.
7
8 * keymap.c (Fsingle_key_description): Replace a build_string with
9 a make_multibyte_string. From Kenichi Handa <handa@etl.go.jp>.
10
11 * fontset.c (Ffontset_info): Check that face is non-null
12 before accessing its fields.
13
14 2001-05-15 Gerd Moellmann <gerd@gnu.org>
15
16 * keyboard.c (read_key_sequence): Prevent generating a fake
17 prefix key twice.
18
19 * xfaces.c (split_font_name): Handle `[...]' for the right
20 font name fields.
21
22 * ccl.c (ccl_driver): Don't copy remaining bytes in case
23 of CCL_STAT_INVALID_CMD.
24
25 2001-05-14 Stefan Monnier <monnier@cs.yale.edu>
26
27 * eval.c (Fdefvar): Only record (defvar <var>) in the load-history
28 in <var> has no default value yet.
29
30 * xfaces.c (try_alternative_families): First try the FAMILY.
31 And if nothing is found in the end, try again with scalable fonts.
32 (try_font_list): Let try_alternative_families do a bit more of
33 the work. Only use FAMILY if it is not nil.
34 (syms_of_xfaces) <scalable-fonts-allowed>: Fix docstring.
35
36 2001-05-14 Gerd Moellmann <gerd@gnu.org>
37
38 * xterm.c (note_mouse_highlight): Avoid changing the mouse
39 pointer shape when show_mouse_face has already done it.
40
41 * xterm.c (x_draw_glyphs): Fix computation of rightmost x for
42 full-width rows.
43
44 * xfaces.c (split_font_name): Make sure to leave the loop
45 with the right value of `i'.
46
47 * xfaces.c (split_font_name): Handle matrix transformations
48 in the pixel and point size fields of XLFD font names.
49 (xlfd_point_size): Likewise.
50
51 2001-05-12 Eli Zaretskii <eliz@is.elta.co.il>
52
53 * w32fns.c (w32_to_x_font): Change prototype to fit the declaration.
54 (x_to_w32_font): Add prototype.
55
56 * regex.c (malloc, realloc, free) [emacs]: Undefine before
57 redefining, to avoid compiler warnings.
58
59 * w32proc.c: Include syssignal.h, to avoid compiler warnings.
60
61 * w32bdf.c (search_file_line, set_bdf_font_info, seek_char)
62 (w32_get_bdf_glyph): Cast between unsigned char and char when
63 passing arguments to subroutines, to shut up compiler warnings.
64 (w32_get_bdf_glyph): Don't mix signed and unsigned when calling
65 GET_HEX_VAL.
66
67 * xfaces.c: Include keyboard.h before frame.h, not after it.
68
69 * widget.c: Include keyboard.h before frame.h.
70
71 * w32term.h (struct image, struct face): Forward declaration, to
72 avoid compiler warnings.
73
74 2001-05-11 Gerd Moellmann <gerd@gnu.org>
75
76 * keyboard.c (read_key_sequence): Don't modify events when
77 generating fake prefix keys (mode-line, scroll-bar, ...) since
78 this prevents proper processing of such events when pushed back
79 into unread-command-events.
80
81 * xterm.c (clear_mouse_face): Return 1 if text with mouse face was
82 actually redrawn. Make the function static.
83 (note_mouse_highlight): Fix a case where the mouse cursor
84 was changed back to the text cursor.
85
86 * xterm.h (clear_mouse_face): Remove prototype.
87
88 * xdisp.c (try_window_id): Fix the fix and set the right
89 window_end_vpos.
90
91 * xdisp.c (try_window_id): Fix computation of window end in the
92 case that lines were deleted at the end of the window. Add some
93 more debug_method_adds.
94
95 * xfaces.c (try_alternative_families): New function.
96 (try_font_list): Use it. If ATTRS specifies a family, check
97 fonts from that family first.
98 (choose_face_font): Remove code setting the family part of
99 the pattern to nil.
100
101 2001-05-10 Gerd Moellmann <gerd@gnu.org>
102
103 * xdisp.c (try_window_id): Fix case of all changes before
104 the window start.
105
106 * xdisp.c (try_window_id): Add some xasserts.
107
108 2001-05-09 Gerd Moellmann <gerd@gnu.org>
109
110 * lisp.h (GLYPH_CHAR_VALID_P): Use CHAR_VALID_P.
111
112 2001-05-09 Dave Love <fx@gnu.org>
113
114 * xdisp.c (GIVE_UP): Fix for K&R C.
115
116 2001-05-09 Gerd Moellmann <gerd@gnu.org>
117
118 * print.c (syms_of_print) <print-length, print-level>: Doc fix.
119
120 * xterm.c (note_mouse_highlight): Don't change the mouse cursor
121 back to the text cursor shape without need.
122
123 2001-05-07 Gerd Moellmann <gerd@gnu.org>
124
125 * xfns.c (x_set_foreground_color): Set frame's cursor_pixel.
126
127 * dispextern.h (inverse_video): Declare extern.
128
129 * keyboard.c (delete_kboard): Handle the case that selected_frame
130 has been deleted in the course of x_connection_closed.
131
132 2001-05-03 Eli Zaretskii <eliz@is.elta.co.il>
133
134 * xterm.c (XTread_socket) <Expose> [!USE_TOOLKIT_SCROLL_BARS]:
135 Fix the change from 2001-04-30.
136
137 2001-05-03 Gerd Moellmann <gerd@gnu.org>
138
139 * xfns.c (file_dialog_unmap_cb): New function.
140 (Fx_file_dialog): Use it as XmNunmapCallback to capture the case
141 where a dialog is closed via the window manager.
142
143 * xdisp.c (try_window_id): Cases of changes all in front of
144 the window start or all below the window end mostly rewritten.
145 (redisplay_window): Move the tests if try_window_id is
146 applicable to try_window_id.
147 (GIVE_UP): New macro.
148
149 2001-05-02 Gerd Moellmann <gerd@gnu.org>
150
151 * xterm.c (expose_window): Return int. If W is the window
152 currently being updated, mark the frame garbaged.
153 Fix computation of rows intersecting the exposed rectangle.
154 (expose_window_tree): Stop when expose_window returns 0.
155
156 * xterm.c (x_draw_stretch_glyph_string): Don't draw background
157 again if it has already been drawn.
158
159 2001-05-01 Stefan Monnier <monnier@cs.yale.edu>
160
161 * syntax.c (update_syntax_table): Check that oldi has the same
162 properties as old_prop before deciding not to invalidate.
163
164 2001-04-30 Gerd Moellmann <gerd@gnu.org>
165
166 * undo.c (Fprimitive_undo): In a writable buffer, enable undoing
167 read-only text that is so because of text properties.
168
169 * xterm.c (x_window_to_menu_bar) [USE_LUCID]: New function.
170 (XTread_socket) <Expose> [USE_LUCID]: Handle events for
171 windows that are components of a Lucid menu bar.
172
173 2001-04-27 Gerd Moellmann <gerd@gnu.org>
174
175 * term.c (turn_on_face): Fix reverse video handling on terminals
176 that don't support colors.
177
178 2001-04-26 Gerd Moellmann <gerd@gnu.org>
179
180 * editfns.c (save_excursion_restore): Don't use XBUFFER on
181 a non-buffer.
182
183 2001-04-25 Gerd Moellmann <gerd@gnu.org>
184
185 * term.c (toggle_highlight): New function.
186 (turn_on_face): Change handling of reverse video.
187
188 * process.c (wait_reading_process_input):
189 Call record_asynch_buffer_change only if a timer really changed buffers.
190
191 * buffer.c (mouse_face_overlay_overlaps): Fix the computation
192 of the number of overlays to check.
193
194 * keyboard.c (command_loop_1): Redo change of 2001-03-12.
195
196 * xdisp.c (try_window_id): Fix a case where window_end_pos
197 and window_end_bytepos were not adjusted.
198
199 2001-04-23 Gerd Moellmann <gerd@gnu.org>
200
201 * xfaces.c (compute_char_face): If buffer is unibyte, set CH to
202 zero instead of -1.
203
204 2001-04-21 Eli Zaretskii <eliz@is.elta.co.il>
205
206 * process.c (wait_reading_process_input) [!subprocesses]:
207 Don't reference waiting_for_user_input_p, it's not defined in the
208 branch without async subprocesses support.
209
210 2001-04-19 Gerd Moellmann <gerd@gnu.org>
211
212 * keyboard.c (delete_kboard): Prevent a dangling reference
213 from current_kboard to KB, which is freed.
214
215 * process.c (wait_reading_process_input):
216 Call record_asynch_buffer_change after running timers, to make
217 read_key_sequence aware of buffer changes from under it.
218
219 2001-04-18 Gerd Moellmann <gerd@gnu.org>
220
221 * xfaces.c (Qscalable_fonts_allowed): New variable.
222 (realizing_basic_faces_p): Removed.
223 (x_face_list_fonts): Special handling for realizing_basic_faces_p
224 removed.
225 (realize_basic_faces): Specbind Qscalable_fonts_allowed to t.
226 (syms_of_xfaces): Initialize Qscalable_fonts_allowed. Change default
227 for scalable-fonts-allowed to t.
228
229 * fileio.c (Finsert_file_contents): If the file size returned from
230 stat is zero, set END to READ_BUF_SIZE. This makes sure we can
231 read from files on a procfs whose contents are generated dynamically.
232
233 2001-04-18 Eli Zaretskii <eliz@is.elta.co.il>
234
235 * gmalloc.c (__malloc_size_t) [__GNUC__]: If STDC_HEADERS is not
236 defined, include stddef.h and use __SIZE_TYPE__ instead of size_t.
237 (__memalign_hook): Make the two prototypes consistent.
238
239 2001-04-17 Gerd Moellmann <gerd@gnu.org>
240
241 * xdisp.c (redisplay_window): Make sure to clear the desired glyph
242 matrix of mini-windows.
243
244 2001-04-12 Stefan Monnier <monnier@cs.yale.edu>
245
246 * intervals.c (find_interval): Don't rebalance during signal handling.
247
248 2001-04-11 Gerd Moellmann <gerd@gnu.org>
249
250 * fns.c: Include blockinput.h.
251
252 * fns.c (Fplist_get): Don't QUIT if interrupt_input_blocked.
253
254 2001-04-10 Gerd Moellmann <gerd@gnu.org>
255
256 * fns.c (Fcompare_strings): Fix return values.
257
258 * window.c (window_scroll): Change the meaning of N to mean
259 N screen-fulls or N lines.
260 (window_scroll_pixel_based, window_scroll_line_based)
261 (scroll_command, Fscroll_other_window): Change accordingly.
262
263 * window.c (window_scroll_pixel_based, Frecenter):
264 Call window_box_height instead of using it.last_visible_y for the
265 height of the window.
266
267 * xdisp.c (redisplay_window) <recenter>: Call window_box_height
268 instead of using it.last_visible_y for the height of the window.
269
270 * w32proc.c (sys_spawnve): Quote more chars for Cygwin.
271 From Dan Holmsand <dan@eyebee.com>.
272
273 * w32.c (sys_open): Try to open file without _O_CREAT first, to be
274 able to write to hidden and system files. From Dan Holmsand
275 <dan@eyebee.com>.
276
277 * fileio.c (Fcopy_file) [WINDOWSNT]: Use CopyFile. From Dan
278 Holmsand <dan@eyebee.com>.
279
280 2001-04-09 Gerd Moellmann <gerd@gnu.org>
281
282 * fns.c (Fplist_get, Fplist_put): Add QUITs.
283
284 * window.c (window_internal_height): Return 1 less if the
285 window has a header line.
286
287 * xdisp.c (try_window_id): When scrolling on a terminal, take
288 the change of window_internal_height into account.
289
290 2001-04-09 Eli Zaretskii <eliz@is.elta.co.il>
291
292 * gmalloc.c (align): If the argument SIZE would overflow
293 __malloc_ptrdiff_t, fail right away.
294
295 2001-04-06 Gerd Moellmann <gerd@gnu.org>
296
297 * xfns.c (compute_tip_xy): Add parameters WIDTH and HEIGHT.
298 Make sure the tooltip is completely visible.
299 (x_make_gc): Use FRAME_X_SCREEN_NUMBER.
300
301 * xterm.h (FRAME_X_SCREEN_NUMBER): New macro.
302
303 * xmenu.c (xmenu_show): Use FRAME_X_SCREEN_NUMBER.
304
305 2001-04-06 Dave Love <fx@gnu.org>
306
307 * composite.c (update_compositions) <check_mask & CHECK_HEAD>:
308 Fix test of `from'.
309
310 2001-04-06 Gerd Moellmann <gerd@gnu.org>
311
312 * composite.h (COMPOSITION_VALID_P): Allow integers as cdrs of PROP.
313
314 * xdisp.c (Qinhibit_eval_during_redisplay): Make it a Lisp_Object.
315
316 2001-04-05 Gerd Moellmann <gerd@gnu.org>
317
318 * sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
319
320 * editfns.c (Fcurrent_time_zone): Accept spaces in timezone names.
321
322 * xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
323 (syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
324
325 * xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
326 shell widget's position only if it is non-null.
327
328 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]:
329 Set f->output_data.x->widget to null after destroying it.
330
331 * fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
332 FILENAME to bring it in synch with the documentation.
333
334 * xfaces.c (realizing_basic_faces_p): Renamed from
335 realize_default_face_p.
336 (realize_basic_faces): Set/clear realizing_basic_faces_p.
337 (realize_default_face): Don't set the flag.
338
339 2001-04-04 Gerd Moellmann <gerd@gnu.org>
340
341 * lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
342
343 * keyboard.c (echoing, echo_message_buffer): Make externally visible.
344
345 * xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
346 the buffer that was used for echoing.
347
348 * xfaces.c (best_matching_font): Remove unused parameter PATTERN.
349 (first_font_matching): Removed unused function.
350 (x_face_list_fonts): Remove unused parameter SCALABLE_P.
351 (may_use_scalable_font_p): Remove parameter FONT; rename
352 parameter NAME to FONT.
353 (x_face_list_fonts): Fix missing bounds check.
354 (realizing_default_face_p): New variable.
355 (realize_default_face): Set and clear that flag.
356 (x_face_list_fonts): When called during the realization of the
357 default face, and no matching fonts are found when ignoring
358 scalable fonts and fonts matching a regexp from
359 face-ignored-fonts, try without ignoring fonts.
360
361 2001-04-03 Gerd Moellmann <gerd@gnu.org>
362
363 * xfns.c (postprocess_image): New function.
364 (lookup_image): Call it for all image types except PostScript.
365 (x_kill_gs_process): Call postprocess_image.
366
367 * xterm.c (x_use_underline_position_properties): New variable.
368 (x_draw_glyph_string): Use it.
369 (syms_of_xterm): DEFVAR_BOOL it.
370
371 2001-04-02 Gerd Moellmann <gerd@gnu.org>
372
373 * xterm.c (x_alloc_nearest_color_1): New function.
374 (x_alloc_nearest_color): Use it.
375 (x_color_cells): Take a Display as argument, instead of a frame.
376 (cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
377 (cvt_string_to_pixel, cvt_pixel_dtor): New functions.
378 (x_initialize): Register cvt_string_to_pixel as resource converter
379 string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
380
381 2001-03-30 Gerd Moellmann <gerd@gnu.org>
382
383 * xdisp.c (get_overlay_strings): Set iterator's end_charpos.
384 (set_iterator_to_next): If a string from a display property ends,
385 consider the case that this might also be the end of an
386 overlay string having the display property.
387
388 * xdisp.c (handle_display_prop): Fix recognition of subproperty lists.
389
390 * xdisp.c (reseat_to_string): Undo last change.
391
392 * dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
393 matrix of a window when the header line changes, when
394 new rows are allocated, or when the width changes.
395
396 2001-03-30 Eli Zaretskii <eliz@is.elta.co.il>
397
398 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last change.
399
400 2001-03-29 Eli Zaretskii <eliz@is.elta.co.il>
401
402 * fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
403 deprecated.
404
405 2001-03-29 Gerd Moellmann <gerd@gnu.org>
406
407 * data.c (Fsubr_interactive_form): New function.
408 (syms_of_data): Defsubr it.
409
410 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
411 (live_float_p, live_misc_p): Return 1 only if the offset of the
412 pointer in its block is >= 0.
413
414 2001-03-28 Paul Eggert <eggert@twinsun.com>
415
416 * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
417 microseconds calcuation. Avoid double-rounding problem.
418 In doc string, warn that the result is approximate.
419
420 2001-03-28 Gerd Moellmann <gerd@gnu.org>
421
422 * eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
423 bind `inhibit-eval-during-redisplay' to t.
424
425 * lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
426
427 * xdisp.c (inhibit_eval_during_redisplay)
428 (Qinhibit_eval_during_redisplay): New variables.
429 (safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
430 don't eval, return nil instead.
431 (syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
432 Initialize Qinhibit_eval_during_redisplay.
433
434 * xdisp.c (reseat_to_string): If STRING is multibyte, set
435 the iterator's multibyte_p flag.
436
437 * xfaces.c (realize_basic_faces): Decrement menu_face_change_count
438 instead of setting it to zero; it's incremented for each frame
439 where the menu face is changed.
440
441 * xterm.c (x_draw_relief_rect): Extend left shadow to the bottom;
442 change bottom shadow accordingly.
443
444 * xterm.c (expose_window_tree, expose_frame): Don't compute
445 intersections here.
446 (expose_window): Do it here instead.
447 (x_draw_glyph_string): Fix a computation of the underline position.
448
449 * bytecode.c (BYTE_CODE_QUIT): New macro.
450 (Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
451
452 2001-03-27 Gerd Moellmann <gerd@gnu.org>
453
454 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
455 Give up if matrix starts in an ellipsis.
456 (init_from_display_pos): Do nothing if POS doesn't specify
457 a dpvec_index but the iterator has such a position.
458
459 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
460
461 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
462 x/y position is (0, 0) after destroying the menu bar, restore
463 its original position.
464
465 * xdisp.c (in_ellipses_for_invisible_text_p): New function.
466 (init_from_display_pos): Use it.
467 (try_window_reusing_current_matrix): Don't use cursor_row_p.
468
469 2001-03-26 Gerd Moellmann <gerd@gnu.org>
470
471 * xdisp.c (try_window_id): Undo last change.
472
473 2001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
474
475 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
476
477 * buffer.c (syms_of_buffer): Doc fix.
478
479 2001-03-26 Gerd Moellmann <gerd@gnu.org>
480
481 * xfaces.c (x_update_menu_appearance): Use local variable
482 popup_path for setting font resources.
483
484 2001-03-25 Eli Zaretskii <eliz@is.elta.co.il>
485
486 * frame.c (Fframe_list): Don't reference tip_frame if
487 HAVE_WINDOW_SYSTEM is not defined.
488
489 * emacs.c (main): Update the copyright year. From Werner LEMBERG
490 <wl@gnu.org>.
491
492 2001-03-25 Gerd Moellmann <gerd@gnu.org>
493
494 * xdisp.c (init_from_display_pos): Test invisible property
495 with TEXT_PROP_MEANS_INVISIBLE instead of NILP.
496
497 * xdisp.c (redisplay_internal) <update one window>: Make sure
498 last_arrow_position and last_arrow_string are set.
499
500 * frame.c (Fframe_list): Don't return a tooltip frame.
501
502 2001-03-23 Gerd Moellmann <gerd@gnu.org>
503
504 * xdisp.c (mark_window_display_accurate_1): New function,
505 extracted from mark_window_display_accurate.
506 Compute BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED,
507 BUF_BEG_UNCHANGED, BUF_END_UNCHANGED.
508 (mark_window_display_accurate): Use it.
509 (redisplay_internal): Use it for the selected window.
510 (redisplay_internal): Avoid duplicate mark_window_display_accurate
511 for the selected frame.
512
513 * xdisp.c Use make_number, for readability.
514 (try_window_id): Disable rows below the window end.
515 (try_window_reusing_current_matrix): Use cursor_row_p.
516 (try_window_reusing_current_matrix) <scrolling up>: Fix disabling
517 of rows.
518 (init_from_display_pos): If POS specifies a position in a display
519 vector, maybe get the iterator set up for that ellipsis.
520
521 * xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
522
523 2001-03-23 Eli Zaretskii <eliz@is.elta.co.il>
524
525 * xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
526
527 2001-03-23 Gerd Moellmann <gerd@gnu.org>
528
529 * xfaces.c (x_update_menu_appearance): Use a different path
530 for Lucid popup menus.
531
532 2001-03-22 Stefan Monnier <monnier@cs.yale.edu>
533
534 * xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
535
536 * xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
537 (string_buffer_position): Use `make_number'.
538
539 2001-03-22 Gerd Moellmann <gerd@gnu.org>
540
541 * xfaces.c (x_update_menu_appearance): Renamed from
542 x_set_menu_face_resources. Use different resources for popups.
543
544 * lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
545 (GC_CHECK_STRING_BYTES): Don't define.
546
547 * xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
548 Removed, together with subroutines.
549 (x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
550 (realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
551
552 * dispextern.h (x_set_menu_resources_from_menu_face):
553 Remove prototype.
554
555 * xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
556 Remove calls to x_set_menu_resources_from_menu_face.
557
558 * xfaces.c (xm_set_menu_resources_from_menu_face):
559 Remove #ifndef LESSTIF_VERSION.
560
561 * xmenu.c: Include widget.h.
562 (single_submenu): Return int. Some cleanup.
563 (set_frame_menubar): Call x_set_menu_resources_from_menu_face.
564
565 2001-03-21 Gerd Moellmann <gerd@gnu.org>
566
567 * xterm.c (x_update_window_end): Handle overwritten mouse face
568 also for tool bar windows.
569 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
570 DRAW is DRAW_IMAGE_RAISED.
571
572 2001-03-20 Gerd Moellmann <gerd@gnu.org>
573
574 * print.c (syms_of_print): Doc fixes.
575
576 * fns.c (Fmd5): Doc fix.
577
578 2001-03-19 Gerd Moellmann <gerd@gnu.org>
579
580 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
581 Clear area of the frame not occupied by the scroll bar.
582
583 * xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
584 tip frame's root window buffer to *tip* right after creating
585 the frame.
586
587 * xdisp.c (highlight_trailing_whitespace): Glyphs whose object
588 is an integer don't have to be for space characters.
589
590 2001-03-16 Gerd Moellmann <gerd@gnu.org>
591
592 * indent.c (current_column, current_column_1, Fmove_to_column)
593 (compute_motion): Handle characters from display vectors differently.
594
595 2001-03-15 Kenichi Handa <handa@etl.go.jp>
596
597 * xterm.c (x_draw_glyph_string): Draw relief (if any) before
598 drawing glyph string.
599
600 2001-03-15 Gerd Moellmann <gerd@gnu.org>
601
602 * keyboard.c (timer_check): Preserve the value of deactivate-mark.
603 (command_loop_1): Undo last change.
604
605 * xterm.c (fast_find_position): Return the correct vpos.
606
607 * data.c (store_symval_forwarding): Add parameter BUF. If BUF is
608 non-null, set a per-buffer value in BUF instead of the current buffer.
609 (swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
610 Call store_symval_forwarding with BUF null.
611 (set_internal): Call store_symval_forwarding with the BUF
612 parameter passed to set_internal. Formerly, the value was always
613 set in the current buffer; the buffer recorded in specbind for
614 this case wasn't used.
615 (arith_driver): Reindent.
616
617 * buffer.c (swap_out_buffer_local_variables):
618 Call store_symval_forwarding with BUF null.
619
620 * lisp.h (store_symval_forwarding): Change prototype.
621
622 * eval.c (specbind): Call store_symval_forwarding with BUF null.
623
624 2001-03-14 Gerd Moellmann <gerd@gnu.org>
625
626 * frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
627 FOR_DELETION. Avoid resizing the mini-window of the selected
628 frame if FOR_DELETION is set.
629 (Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
630 (Fmake_frame_invisible): Change calls to do_switch_frame for new
631 signature.
632
633 * window.c (Fset_window_configuration): Change call to
634 do_switch_frame to new format.
635
636 * keyboard.c (quit_throw_to_read_char): Change call to
637 do_switch_frame to new format.
638
639 * lisp.h (do_switch_frame): Change prototype.
640
641 * frame.c (Fframe_parameters): In the `buffer-list' frame
642 parameter, store the buffer list of FRAME, not the list of the
643 selected frame.
644
645 * xterm.c (x_draw_glyph_string_box): Don't draw a full-width
646 box just because the glyph row's full_width_p flag is set.
647
648 2001-03-14 Eli Zaretskii <eliz@is.elta.co.il>
649
650 * xdisp.c (highlight_trailing_whitespace): On character terminals,
651 skip the padding blanks inserted in extend_face_to_end_of_line,
652 before checking for trailing whitespace.
653
654 2001-03-13 Gerd Moellmann <gerd@gnu.org>
655
656 * xmenu.c (popup_activate_callback, popup_deactivate_callback):
657 Remove special handling for LessTif/Motif.
658 (toplevel): Don't include Xm/Xm.h.
659
660 * xterm.c (XTread_socket) <LeaveNotify, EnterNotify>:
661 Remove workaround code for LessTif; it doesn't work anymore.
662
663 * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
664 Xm/ScrollBarP.h.
665
666 * xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]:
667 Don't access private scroll bar data; it's no longer necessary with
668 contemporary LessTif.
669
670 * xfaces.c (xm_set_menu_resources_from_menu_face):
671 Change #if 0 to #ifndef LESSTIF_VERSION.
672
673 * xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
674 removing button grabs.
675
676 2001-03-13 Kenichi Handa <handa@etl.go.jp>
677
678 * fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
679 and clip-large-size-font as obsolete.
680
681 * lread.c (read_multibyte): Check the validity of multibyte
682 sequence. If invalid, return the first byte.
683
684 2001-03-12 Gerd Moellmann <gerd@gnu.org>
685
686 * keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
687 before running the command; timer functions or process
688 filters may have set it.
689
690 2001-03-12 Eli Zaretskii <eliz@is.elta.co.il>
691
692 * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
693 Doc fix.
694
695 2001-03-12 Gerd Moellmann <gerd@gnu.org>
696
697 * xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
698 to sprintf.
699
700 2001-03-09 Gerd Moellmann <gerd@gnu.org>
701
702 * dispextern.h (string_buffer_position): Add prototype.
703
704 * xdisp.c (string_buffer_position, display_prop_string_p)
705 (single_display_prop_string_p): New functions.
706
707 * xterm.c (note_mouse_highlight): If there's no help-echo on
708 a string, look at the buffer text ``under'' it.
709
710 * keyboard.c (make_lispy_event): Add string info to the event,
711 analogous to what's done on mode lines.
712 (read_key_sequence): For a click on a string, consider `local-map'
713 and `keymap' of that string.
714
715 * keyboard.c (make_lispy_event, make_lispy_movement):
716 Adjust calls to buffer_posn_from_coords to new format.
717
718 * dispextern.h (buffer_posn_from_coords): Adjust prototype.
719
720 * dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
721 POS; return void.
722
723 * fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
724 flags argument to emacs_open; it seems to conflict with O_EXCL.
725
726 2001-03-09 Kenichi Handa <handa@etl.go.jp>
727
728 * composite.h (struct composition): Change types of members;
729 glyph_len to unsigned, width to unsigned short.
730
731 2001-03-08 Andrew Innes <andrewi@gnu.org>
732
733 * w32menu.c (add_menu_item): Fix problems with using ownerdraw for
734 menu titles.
735
736 2001-03-08 Gerd Moellmann <gerd@gnu.org>
737
738 * xdisp.c (handle_display_prop): Use it->w->buffer as object,
739 instead of nil.
740
741 * xterm.c (note_mouse_highlight): Handle mouse-face and
742 help-echo in strings.
743 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
744 (fast_find_string_pos): New function.
745
746 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
747 (display_string): Call face_at_string_position with new parameter.
748
749 * xfaces.c (face_at_string_position): Add parameter MOUSE_P.
750 Handle `mouse-face'.
751
752 * dispextern.h (face_at_string_position): Change prototype.
753
754 * dired.c (directory_files_internal): Handle EAGAIN more efficiently.
755
756 * keyboard.c (make_lispy_event): Avoid generating drag events
757 if the mouse hasn't actually moved to another buffer position.
758
759 2001-03-08 Dave Love <fx@gnu.org>
760
761 * eval.c (syms_of_eval) <debug-on-error>: Doc fix.
762
763 2001-03-08 Gerd Moellmann <gerd@gnu.org>
764
765 * process.c (Fset_process_window_size): Fix a typo.
766
767 2001-03-08 Kenichi Handa <handa@etl.go.jp>
768
769 * coding.c (detect_coding_sjis): Do more rigid check.
770 (detect_coding_big5): Likewise.
771 (decode_coding_sjis_big5): Likewise.
772 (Fdetect_coding_region): Call detect_coding_system with tailing
773 anchor byte `\0' for more rigid detection.
774 (detect_coding_mask): Fix the incorrect handling of arg MULTIBYTEP.
775 (Fdetect_coding_string): Likewise.
776
777 2001-03-07 Stefan Monnier <monnier@cs.yale.edu>
778
779 * bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
780 a string before extracting its data.
781
782 2001-03-07 Gerd Moellmann <gerd@gnu.org>
783
784 * window.c (Frecenter): Rewrite code handling negative values
785 of ARG on graphical frames.
786
787 2001-03-07 Eli Zaretskii <a34785@is.elta.co.il>
788
789 * window.c (displayed_window_lines): If W->start is outside the
790 accessible portion of the buffer, call start_display with BEGV or
791 ZV instead of W->start.
792
793 2001-03-07 Gerd Moellmann <gerd@gnu.org>
794
795 * buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
796
797 * process.c (Fset_process_filter): Don't crash if the input
798 file descriptor of PROCESS is closed.
799 (Fset_process_window_size): Likewise.
800
801 2001-03-06 Kenichi Handa <handa@etl.go.jp>
802
803 * xterm.c (XTflash): Make the timeout of select shorter, and call
804 select repeatedly until the desired time expires.
805
806 2001-03-06 Gerd Moellmann <gerd@gnu.org>
807
808 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
809
810 * xfns.c (Fx_create_frame): Clear Vwindow_list.
811
812 * lisp.h (Vwindow_list): Declare extern.
813
814 2001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
815
816 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
817
818 2001-03-06 Gerd Moellmann <gerd@gnu.org>
819
820 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
821 to detect a case where we have to highlight a different region
822 despite not having left the currently highlighted region.
823 Set mouse_face_overlay in the x_display_info.
824 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
825
826 * xterm.h (struct x_display_info): Add mouse_face_overlay.
827
828 * buffer.c (mouse_face_overlay_overlaps): New function.
829
830 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
831 (Qmouse_face): Declare extern.
832
833 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
834 if face_change_count is non-zero.
835
836 2001-03-06 Kenichi Handa <handa@etl.go.jp>
837
838 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
839 that the source is unibyte.
840
841 2001-03-05 Dave Love <fx@gnu.org>
842
843 * xterm.c (XTmouse_position): Fix typo.
844
845 2001-03-05 Gerd Moellmann <gerd@gnu.org>
846
847 * minibuf.c (read_minibuf): Clean up the binding stack if
848 called noninteractively.
849
850 2001-03-05 Kenichi Handa <handa@etl.go.jp>
851
852 * coding.c (syms_of_coding): Docstring modified.
853
854 2001-03-05 Kenichi Handa <handa@etl.go.jp>
855
856 * charset.c (char_to_string): If a single byte char has modifier
857 bits that can't be reflected to the character code, ignore them
858 instead of signaling an error.
859
860 2001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
861
862 * s/msdos.h: Update copyright notice.
863
864 * dosfns.h: Update copyright notice.
865
866 * dosfns.c: Update copyright notice.
867
868 * msdos.c: Update copyright notice.
869
870 2001-03-02 Gerd Moellmann <gerd@gnu.org>
871
872 * xterm.c (glyph_rect): New function.
873 (XTmouse_position): Use it to raise the threshold for mouse
874 movement event generation.
875
876 2001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
877
878 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
879 specifies (reverse . t), reverse the initial screen colors.
880 (IT_set_frame_parameters): If the property is foreground-color,
881 but we are reversing the colors, set bg_set, not fg_set.
882 Likewise for setting background-color and reversing: set fg_set.
883 Set unspecified-fg and unspecified-bg correctly when (reverse . t) is
884 in effect.
885
886 * xfaces.c (Finternal_set_lisp_face_attribute)
887 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
888 parameters alist.
889
890 2001-03-02 Gerd Moellmann <gerd@gnu.org>
891
892 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
893 to a single slash in the middle of file names.
894
895 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
896 Accept only alphanumeric time zone names.
897
898 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
899 or width area.
900 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
901 a widget to zero height.
902
903 2001-03-01 Gerd Moellmann <gerd@gnu.org>
904
905 * window.c (Fwindow_end): Call move_it_past_eol only if
906 ending up on a partially visible line.
907
908 2001-03-01 Dave Love <fx@gnu.org>
909
910 * ccl.c (Fccl_execute): Doc fix.
911
912 2001-03-01 Gerd Moellmann <gerd@gnu.org>
913
914 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
915 of the tool bar before calling x_figure_window_size.
916
917 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
918 NULL after destroying it, otherwise XTread_socket can access a
919 destroyed widget when input is unblocked.
920
921 * xfns.c (x_set_foreground_color): Set the background of the cursor GC.
922
923 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
924 same name as before, although there was a change in fontsets.
925
926 2001-02-28 Ken Raeburn <raeburn@gnu.org>
927
928 * lisp.h (Fframe_parameter): Declare.
929
930 * window.c (set_window_buffer): Field vscroll is an int, not a
931 Lisp_Object.
932
933 2001-02-28 Gerd Moellmann <gerd@gnu.org>
934
935 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
936 NULL instead.
937
938 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
939 NULL instead.
940
941 * alloc.c (toplevel): Include process.h.
942 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
943 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
944 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
945 (allocate_vector, allocate_hash_table, allocate_window)
946 (allocate_frame, allocate_process, allocate_other_vector):
947 New functions.
948 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
949 (mark_maybe_pointer): New function.
950 (mark_memory): Also mark Lisp data to which only pointers
951 remain and not Lisp_Objects.
952 (min_heap_address, max_heap_address): New variables.
953 (mem_find): Return MEM_NIL if START is below min_heap_address or
954 above max_heap_address.
955 (mem_insert): Compute min_heap_address and max_heap_address.
956
957 * process.c (make_process): Use allocate_process.
958
959 * frame.c (make_frame): Use allocate_frame.
960
961 * window.c (make_window, make_dummy_parent): Use allocate_window.
962 (Fcurrent_window_configuration): Use allocate_other_vector.
963
964 * lisp.h (allocate_vectorlike): Remove prototype.
965 (allocate_vector, allocate_other_vector, allocate_frame)
966 (allocate_window, allocate_process, allocate_hash_table):
967 Add prototypes.
968
969 * fns.c (Fdelete, larger_vector): Use allocate_vector.
970 (make_hash_table, copy_hash_table): Use allocate_hash_table.
971
972 2001-02-27 Kenichi Handa <handa@etl.go.jp>
973
974 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
975 treat the produced bytes as a valid multibyte sequence.
976
977 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
978 (ccl_driver) <CCL_WriteMultibyteChar2>:
979 Use CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
980 <ccl_finish>: Set ccl->eight_bit_control properly.
981
982 * ccl.h (struct ccl_program): New member eight_bit_control.
983
984 2001-02-26 Stefan Monnier <monnier@cs.yale.edu>
985
986 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
987 accessible_keymaps_char_table.
988 (accessible_keymaps_char_table): Obey `is_metized'.
989 (where_is_internal, Fwhere_is_internal): Don't confuse int and
990 Lisp_Object.
991
992 2001-02-26 Gerd Moellmann <gerd@gnu.org>
993
994 * dispnew.c: Check HAVE_TERM_H before including term.h.
995
996 2001-02-24 Andrew Innes <andrewi@gnu.org>
997
998 * makefile.w32-in: Update copyright notice.
999
1000 2001-02-24 Stefan Monnier <monnier@cs.yale.edu>
1001
1002 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
1003
1004 2001-02-24 Kenichi Handa <handa@etl.go.jp>
1005
1006 * Makefile.in (lisp): Add international/utf-8.elc.
1007
1008 * fontset.c (Fnew_fontset): Fix handling of the case that an
1009 element of FONTLIST is a cons of family and registry.
1010
1011 2001-02-23 Jason Rumney <jasonr@gnu.org>
1012
1013 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
1014 to height unconditionally.
1015
1016 * w32term.c (x_set_glyph_string_background_width): Extend the
1017 background face to the end of the drawing area in the text area, only.
1018 (x_insert_glyphs): Call window_box_left to obtain the left
1019 x-coordinate of the area to shift.
1020
1021 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
1022 safe_run_hooks.
1023
1024 2001-02-22 Andrew Innes <andrewi@gnu.org>
1025
1026 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header files.
1027 ($(BLD)\dispnew.obj):
1028 ($(BLD)\editfns.obj):
1029 ($(BLD)\fileio.obj):
1030 ($(BLD)\filelock.obj):
1031 ($(BLD)\keyboard.obj):
1032 ($(BLD)\w32proc.obj):
1033 ($(BLD)\process.obj):
1034 ($(BLD)\sysdep.obj): Ditto.
1035
1036 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
1037 header files.
1038 ($(BLD)/dispnew.$(O)):
1039 ($(BLD)/editfns.$(O)):
1040 ($(BLD)/fileio.$(O)):
1041 ($(BLD)/filelock.$(O)):
1042 ($(BLD)/keyboard.$(O)):
1043 ($(BLD)/w32proc.$(O)):
1044 ($(BLD)/process.$(O)):
1045 ($(BLD)/sysdep.$(O)): Ditto.
1046
1047 2001-02-22 Gerd Moellmann <gerd@gnu.org>
1048
1049 * xdisp.c (forward_to_next_line_start): When taking the shortcut
1050 at the start of the function, check that the \n in it->c is
1051 from the iterator's current position.
1052
1053 * xdisp.c (handle_single_display_prop): Add parameter
1054 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
1055 properties which replace the display of text with something else.
1056 (handle_display_prop): Call handle_single_display_prop with
1057 additional argument saying if we already replaced text display
1058 with something else. Use AREF.
1059 (with_echo_area_buffer_unwind_data, display_menu_bar)
1060 (decode_mode_spec_coding): Use AREF and ASIZE.
1061
1062 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
1063 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
1064 * vmstime.h: Files removed.
1065
1066 * unexencap.c, unexfx2800.c: Files removed.
1067
1068 * dispnew.c (direct_output_for_insert): Give up if we are showing
1069 a message or just cleared the message because we might need to
1070 resize the echo area window or display an empty echo area.
1071
1072 2001-02-21 Gerd Moellmann <gerd@gnu.org>
1073
1074 * xdisp.c (redisplay_internal): Do the
1075 mark_window_display_accurate after all windows have been
1076 redisplayed because this call resets flags in buffers which are
1077 needed for proper redisplay.
1078
1079 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c:
1080 Use display_hourglass_p, start_hourglass, cancel_hourglass instead of
1081 the old names.
1082
1083 * w32term.h (struct x_output): Rename busy_cursor to hourglass_cursor,
1084 busy_window to hourglass_window, busy_p to hourglass_p.
1085
1086 * msdos.h (struct x_output): Rename busy_window to
1087 hourglass_window, busy_p to hourglass_p.
1088
1089 * xterm.h (struct x_output): Rename busy_cursor to hourglass_cursor,
1090 busy_window to hourglass_window, busy_p to hourglass_p.
1091
1092 * xfns.c: Rename everything containing *busy_cursor* and similar
1093 to *hourglass*.
1094 (syms_of_w32fns): Rename x-busy-pointer-shape to
1095 x-hourglass-pointer-shape, display-busy-cursor to
1096 display-hourglass, busy-cursor-delay to hourglass-delay.
1097
1098 * w32fns.c: Rename everything containing *busy_cursor* and similar
1099 to *hourglass*.
1100 (syms_of_w32fns): Rename x-busy-pointer-shape to
1101 x-hourglass-pointer-shape, display-busy-cursor to
1102 display-hourglass, busy-cursor-delay to hourglass-delay.
1103
1104 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
1105 of its busy_p flag.
1106
1107 * dispextern.h (start_hourglass, cancel_hourglass)
1108 (display_hourglass_p): Renamed from *busy_cursor*.
1109
1110 2001-02-20 Gerd Moellmann <gerd@gnu.org>
1111
1112 * keyboard.c (read_char): When an event from unread-command-events
1113 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
1114
1115 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
1116 equal to the current buffer.
1117
1118 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
1119 nil, otherwise we're left with truncate_lines t when a message
1120 is printed with message-truncate-lines bound to t.
1121
1122 2001-02-19 Gerd Moellmann <gerd@gnu.org>
1123
1124 * window.c (Fmove_to_window_line): Undo last change.
1125 (displayed_window_lines): Call line_bottom_y to determine
1126 the line's bottom position.
1127
1128 * dispextern.h (line_bottom_y): Add prototype.
1129
1130 * xdisp.c (line_bottom_y): New function extracted from pos_visible_p.
1131 (pos_visible_p): Use it.
1132
1133 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
1134 set redisplaying_p to 0 here instead of in Frecursive_edit.
1135 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
1136 set redisplaying_p.
1137
1138 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
1139 New variables.
1140 (syms_of_xdisp): Initialize new variables.
1141 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
1142 Specbind `inhibit-menubar-update' when updating the menu bar.
1143
1144 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
1145 safe_run_hooks.
1146
1147 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
1148 safe_run_hooks.
1149
1150 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
1151 is null.
1152
1153 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
1154 to the start of the file.
1155
1156 2001-02-16 Gerd Moellmann <gerd@gnu.org>
1157
1158 * window.c (set_window_buffer): Fix last change.
1159
1160 * window.c (set_window_buffer): Set window's vscroll to 0.
1161
1162 * window.c (coordinates_in_window): Increase width of area
1163 where the vertical line can be dragged.
1164
1165 * xterm.c (x_set_glyph_string_background_width): Extend the
1166 background face to the end of the drawing area in the text
1167 area, only.
1168
1169 * xdisp.c (handle_single_display_prop): Set iterator's position
1170 to where the `display' property starts, like for images.
1171 (dump_glyph): New function.
1172 (dump_glyph_row): Use it. Dump info about marginal areas.
1173
1174 * dispnew.c (direct_output_for_insert): Recognize more cases where
1175 glyphs can be written instead of being inserted.
1176
1177 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
1178 the left x-coordinate of the area to shift.
1179
1180 * dired.c (directory_files_internal): Set result list to nil
1181 before retrying.
1182
1183 2001-02-15 Kenichi Handa <handa@etl.go.jp>
1184
1185 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
1186 invalid multibyte sequence, treat *SRC as a character of
1187 eight-bit-graphic.
1188
1189 2001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
1190
1191 * textprop.c (Fset_text_properties): Doc fix.
1192
1193 2001-02-15 Gerd Moellmann <gerd@gnu.org>
1194
1195 * dispnew.c (update_text_area): Undo change of 2001-01-12.
1196
1197 2001-02-14 Dave Love <fx@gnu.org>
1198
1199 * coding.c: Doc and message fixes.
1200
1201 2001-02-14 Andrew Innes <andrewi@gnu.org>
1202
1203 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
1204 Emacs frame above the screen size.
1205
1206 2001-02-14 Gerd Moellmann <gerd@gnu.org>
1207
1208 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
1209
1210 2001-02-13 Gerd Moellmann <gerd@gnu.org>
1211
1212 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
1213 case that TO ends up beyond ZV after running before-change-functions.
1214
1215 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
1216 the selected window if it is showing the buffer in question.
1217
1218 * dired.c (directory_files_internal): Initialize errno.
1219 (toplevel): Include errno.h.
1220
1221 2001-02-13 Kenichi Handa <handa@etl.go.jp>
1222
1223 * xfaces.c (best_matching_font): New parameter width_ratio.
1224 Multiply avgwidth by width_ratio.
1225 (choose_face_font): Call best_matching_font with width_ratio
1226 calculated from the column width of C.
1227
1228 2001-02-12 Andrew Innes <andrewi@gnu.org>
1229
1230 The following changes are to draw box lines inside characters area
1231 if line-width is negative.
1232
1233 * w32term.c (x_produce_image_glyph): Pay attention to the case that
1234 face->box_line_width is negative.
1235 (x_produce_stretch_glyph): Likewise.
1236 (x_produce_glyphs): Likewise.
1237 (x_estimate_mode_line_height): Likewise.
1238 (x_draw_glyph_string_background): Likewise.
1239 (x_draw_glyph_string_foreground): Likewise.
1240 (x_draw_composite_glyph_string_foreground): Likewise.
1241 (x_draw_glyph_string_box): Likewise.
1242 (x_draw_image_foreground): Likewise.
1243 (x_draw_image_relief): Likewise.
1244 (x_draw_image_foreground_1): Likewise.
1245 (x_draw_image_glyph_string): Likewise.
1246
1247 2001-02-09 Kenichi Handa <handa@etl.go.jp>
1248
1249 The following changes are to draw box lines inside characters area
1250 if line-width is negative.
1251
1252 * xterm.c (x_produce_image_glyph): Pay attention to the case that
1253 face->box_line_width is negative.
1254 (x_produce_stretch_glyph): Likewise.
1255 (x_produce_glyphs): Likewise.
1256 (x_estimate_mode_line_height): Likewise.
1257 (x_draw_glyph_string_background): Likewise.
1258 (x_draw_glyph_string_foreground): Likewise.
1259 (x_draw_composite_glyph_string_foreground): Likewise.
1260 (x_draw_glyph_string_box): Likewise.
1261 (x_draw_image_foreground): Likewise.
1262 (x_draw_image_relief): Likewise.
1263 (x_draw_image_foreground_1): Likewise.
1264 (x_draw_image_glyph_string): Likewise.
1265
1266 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
1267 and :line-width can be negative.
1268 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be negative.
1269
1270 2001-02-09 Jason Rumney <jasonr@gnu.org>
1271
1272 * w32term.c (w32_encode_char): Treat eight bit graphic and control
1273 characters the same as ASCII and latin-1.
1274 (x_display_and_set_cursor): Check for the focus frame's selected
1275 window instead of selected_window.
1276 (x_after_update_window_line): Don't clear if frame's internal
1277 border width is zero.
1278 (x_new_font): Don't change a tooltip's size.
1279 (w32_initialize): Set char_ins_del_ok to 1.
1280
1281 * w32fns.c (Fx_show_tip): Fix calls to make_number.
1282 (x_set_font): If font hasn't changed, avoid recomputing
1283 faces and other things.
1284 (x_set_tool_bar_lines): Do nothing if frame is minibuffer-only,
1285 (Fx_create_frame): Add the tool bar height to the frame height.
1286 (x_create_tip_frame): Prevent changing the tooltip's
1287 background color by specifying a color for the default font
1288 in .Xdefaults.
1289 (Qcancel_timer): New variable.
1290 (syms_of_w32fns): Initialize and staticpro it.
1291 (Fx_hide_tip, Fx_show_tip): Use it.
1292 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
1293 the timer.
1294 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
1295
1296 * w32.c (init_environment): Duplicate local string before putenv.
1297
1298 2001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
1299
1300 * charset.c (Fstring): A typo.
1301
1302 2001-02-09 Kenichi Handa <handa@etl.go.jp>
1303
1304 * charset.c (Fstring): If all arguments are less than 256, return
1305 a unibyte string.
1306
1307 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
1308 return a unibyte string.
1309
1310 * coding.c (code_convert_region): After detecting a coding, if
1311 nothing found, set coding->composing to COMPOSITION_NO.
1312 (decode_coding_string): Likewise.
1313
1314 2001-02-08 Stefan Monnier <monnier@cs.yale.edu>
1315
1316 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
1317 to avoid overflow.
1318
1319 2001-02-07 Kenichi Handa <handa@etl.go.jp>
1320
1321 * charset.c (parse_str_to_multibyte): New function.
1322
1323 * charset.h (parse_str_to_multibyte): Extern it.
1324
1325 * print.c (print_string): If we are going to print a unibyte
1326 string into a multibyte buffer, convert the string to multibyte by
1327 str_to_multibyte.
1328
1329 2001-02-06 Andrew Innes <andrewi@gnu.org>
1330
1331 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
1332 been created. It seems we can get sent window messages such as
1333 WM_ERASEBKGND before we properly update a frame.
1334
1335 2001-02-06 Gerd Moellmann <gerd@gnu.org>
1336
1337 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
1338 Avoid some unnecessary cursor positioning.
1339
1340 2001-02-05 Gerd Moellmann <gerd@gnu.org>
1341
1342 * xfaces.c (split_font_name): Compute numeric value of XLFD_AVGWIDTH.
1343 (LFACE_AVGWIDTH): New macro.
1344 (LFACEP): Use AREF.
1345 (check_lface_attrs): Check LFACE_AVGWIDTH.
1346 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
1347 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
1348 (merge_face_vectors): Check LFACE_AVGWIDTH.
1349 (Finternal_make_lisp_face): Use AREF.
1350 (xm_set_menu_resources_from_menu_face)
1351 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
1352 (Finternal_lisp_face_empty_p): Use AREF.
1353 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
1354 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
1355 Compare average widths..
1356 (best_matching_font): Arrange for comparing average widths.
1357
1358 * dispextern.h (enum lface_attribute_index):
1359 Add LFACE_AVGWIDTH_INDEX (invisible from Lisp).
1360
1361 2001-02-05 Dave Love <fx@gnu.org>
1362
1363 * puresize.h: Revert last change following loadup.el change.
1364
1365 2001-02-05 Andrew Innes <andrewi@gnu.org>
1366
1367 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
1368 invocation of temacs, to work with Windows 2000.
1369 (bootstrap-emacs): Ditto.
1370
1371 2001-02-05 Gerd Moellmann <gerd@gnu.org>
1372
1373 * xterm.c (x_display_and_set_cursor): Check for the focus
1374 frame's selected window instead of selected_window.
1375
1376 * xdisp.c (try_scrolling): If point is in the line below the
1377 window, make sure to move the iterator at least a canonical
1378 char height down.
1379
1380 * window.c (Fmove_to_window_line): Don't add 1 if window is vscrolled.
1381
1382 2001-02-05 Kenichi Handa <handa@etl.go.jp>
1383
1384 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not.
1385 If invalid, execute CCL_INVALID_CMD.
1386 (ccl_driver): If the CCL program is terminated because of
1387 CCL_STAT_INVALID_CMD, copy the remaining source data to the
1388 destination instead of throwing them away.
1389
1390 2001-02-02 Gerd Moellmann <gerd@gnu.org>
1391
1392 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
1393 faces and other things.
1394
1395 * xdisp.c (get_next_display_element): Fix case of empty
1396 display table entry.
1397
1398 2001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
1399
1400 * editfns.c (Fconstrain_to_field): Doc fix.
1401
1402 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
1403 into `thoroughly', to make it consistent with the doc string.
1404
1405 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
1406
1407 2001-02-01 Gerd Moellmann <gerd@gnu.org>
1408
1409 * search.c (search_buffer): Call set_search_regs with a byte
1410 position, not a character position.
1411
1412 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
1413 minibuffer-only,
1414
1415 2001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
1416
1417 * frame.c (Fmodify_frame_parameters): Doc fix.
1418
1419 2001-01-31 Gerd Moellmann <gerd@gnu.org>
1420
1421 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
1422 identifier which is not reserved by Standard C.
1423
1424 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
1425
1426 * window.c (enum window_part): New enumeration.
1427 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
1428 Qright_bitmap_area.
1429 (coordinates_in_window): Return an enumerator from enum
1430 window_part. Fix handling of right scroll bar.
1431 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
1432 `right-fringe' instead of `left-bitmap-area' and
1433 `right-bitmap-area'. Use enumerators from enum window_part
1434 instead of hard-coded integers.
1435 (check_window_containing, window_from_coordinates):
1436 Use enumerators from enum window_part instead of hard-coded integers.
1437 (syms_of_window): Replace Qleft_bitmap_area and
1438 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
1439
1440 2001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
1441
1442 * editfns.c (Fformat_time_string): Doc fix.
1443
1444 2001-01-31 Stefan Monnier <monnier@cs.yale.edu>
1445
1446 * keymap.c (Fwhere_is_internal): Use the first valid binding
1447 if no ascii binding is found (when firstonly is t).
1448
1449 2001-01-31 Gerd Moellmann <gerd@gnu.org>
1450
1451 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
1452 instead of Finteractive_p.
1453
1454 * lisp.h (interactive_p): Add prototype.
1455
1456 * eval.c (interactive_p): New function.
1457 (Finteractive_p): Use it.
1458
1459 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
1460
1461 2001-01-31 Dave Love <fx@gnu.org>
1462
1463 * .gdbinit (hook-run): Define to run xreload.
1464
1465 * textprop.c (Fset_text_properties): Fix newline in doc string.
1466
1467 2001-01-30 Gerd Moellmann <gerd@gnu.org>
1468
1469 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp):
1470 Use DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
1471
1472 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
1473 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
1474 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
1475
1476 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
1477 height.
1478
1479 2001-01-30 Dave Love <fx@gnu.org>
1480
1481 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
1482 AFTER_POTENTIAL_GC.
1483
1484 2001-01-29 Gerd Moellmann <gerd@gnu.org>
1485
1486 * bytecode.c (Fbyte_code) <Bcurrent_column>:
1487 Add BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
1488
1489 2001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
1490
1491 * textprop.c (Fset_text_properties): Doc fix.
1492
1493 2001-01-29 Gerd Moellmann <gerd@gnu.org>
1494
1495 * xdisp.c (forward_to_next_line_start): Remove xassert.
1496
1497 2001-01-29 Jason Rumney <jasonr@gnu.org>
1498
1499 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
1500 returning without releasing it.
1501
1502 2001-01-29 Kenichi Handa <handa@etl.go.jp>
1503
1504 * w32fns.c (w32_font_match): Allocate three more bytes to regex
1505 for '^', '$', and '\0'.
1506
1507 2001-01-28 Andrew Choi <akochoi@i-cable.com>
1508
1509 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
1510 regex for '^', '$', and '\0'.
1511
1512 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
1513 only if current_sblock has been initialized.
1514
1515 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
1516 terminal frame even if it is the only visible frame.
1517
1518 2001-01-28 Kenichi Handa <handa@etl.go.jp>
1519
1520 * fontset.c (font_family_registry): Even if FONTNAME conform to
1521 XLFD, if it specifies other fields than family and registry,
1522 return FONTANME. New argument FORCE if nonzero cancel that feature.
1523 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
1524 a signle byte character. Don't set FAMILY part to nil here.
1525 It is handled by the caller choose_face_font.
1526 (Fnew_fontset): Call font_family_registry with FORCE 0.
1527 (Fset_fontset_font): Likewise.
1528
1529 2001-01-27 Gerd Moellmann <gerd@gnu.org>
1530
1531 * xdisp.c (display_line): Don't treat a newline as fitting
1532 on the line.
1533
1534 2001-01-26 Gerd Moellmann <gerd@gnu.org>
1535
1536 * window.c (size_window): Set the window's orig_top to nil when
1537 changing heights, so that a future shrink_mini_window won't
1538 restore a bogus height.
1539
1540 * frame.c (do_switch_frame): If selected frame has a mini-window,
1541 resize that to exact size.
1542
1543 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
1544
1545 * xdisp.c (display_line): Simplify check for glyphs fitting
1546 entirely in the line.
1547
1548 * xfns.c (xic_style): New variable.
1549 (create_frame_xic): Move static variable to global scope for
1550 the case that `static' gets defined away.
1551
1552 2001-01-26 Kenichi Handa <handa@etl.go.jp>
1553
1554 * coding.c (decode_coding): Set a flag for inhibiting
1555 inconsistent eol.
1556 (code_convert_region): Always set saved_coding_symbol.
1557 (decode_coding_string): Likewise. Update coding->symbol when we
1558 encounter a inconsistent eol by the same way as code_convert_region.
1559
1560 2001-01-25 Gerd Moellmann <gerd@gnu.org>
1561
1562 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
1563 XClearArea.
1564
1565 * xterm.c (x_after_update_window_line): Don't clear if frame's
1566 internal border width is zero.
1567 (x_clear_area): New function.
1568 (x_after_update_window_line, x_clear_end_of_line)
1569 (x_scroll_bar_create, x_scroll_bar_set_handle)
1570 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
1571 instead of XClearArea.
1572
1573 * xterm.h (x_clear_area): Add prototype.
1574
1575 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
1576 which doesn't seem necessary anymore with Lesstif 0.92.
1577
1578 2001-01-25 Dave Love <fx@gnu.org>
1579
1580 * puresize.h (BASE_PURESIZE): Up to 720000.
1581
1582 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
1583
1584 2001-01-25 Gerd Moellmann <gerd@gnu.org>
1585
1586 * xdisp.c (echo_area_display): Don't call redisplay_internal
1587 when Emacs is shutting down. We can't run hooks etc. that
1588 would be necessary to do a redisplay.
1589
1590 * lread.c (read_integer): Use type EMACS_INT instead of int.
1591
1592 2001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
1593
1594 * ccl.c (ccl_driver): Fix last change.
1595
1596 2001-01-25 Kenichi Handa <handa@etl.go.jp>
1597
1598 * ccl.h (sturct ccl_program): New member suppress_error.
1599
1600 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
1601 insert error message to the output.
1602 (setup_ccl_program): Initialize ccl->suppress_error to 0.
1603
1604 * coding.h (struct coding_system): New member suppress_error.
1605
1606 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
1607 (Fset_terminal_coding_system_internal): Set the member
1608 suppress_error to 1.
1609 (Fset_safe_terminal_coding_system_internal): Likewise.
1610
1611 2001-01-24 Stefan Monnier <monnier@cs.yale.edu>
1612
1613 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
1614 as if it was a `charset'.
1615
1616 2001-01-24 Gerd Moellmann <gerd@gnu.org>
1617
1618 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
1619 value in where_is_cache; the next lookup in the cache returns
1620 something bogus if we do.
1621
1622 2001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
1623
1624 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
1625 if HAVE_WINDOW_SYSTEM isn't defined.
1626
1627 2001-01-24 Gerd Moellmann <gerd@gnu.org>
1628
1629 * fns.c (sweep_weak_table): Fix code taking items out of
1630 the hash collision chain. Some cleanup.
1631
1632 * xterm.c (x_new_font): Don't change a tooltip's size.
1633
1634 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
1635 background color by specifying a color for the default font
1636 in .Xdefaults.
1637
1638 2001-01-24 Kenichi Handa <handa@etl.go.jp>
1639
1640 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
1641 a workaround for SunOS 4's cc.
1642 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
1643 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
1644 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
1645 statement.
1646
1647 2001-01-23 Gerd Moellmann <gerd@gnu.org>
1648
1649 * xterm.c (x_set_window_size_1): New function extracted from
1650 x_set_window_size.
1651 (x_set_window_size): Use it.
1652 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
1653 doesn't have a widget, like tooltips.
1654
1655 2001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
1656
1657 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
1658
1659 2001-01-23 Kenichi Handa <handa@etl.go.jp>
1660
1661 * fns.c (Fset_char_table_default): Fix to make sub char-table
1662 correctly.
1663
1664 2001-01-22 Gerd Moellmann <gerd@gnu.org>
1665
1666 * xdisp.c (build_desired_tool_bar_string): Make sure we have
1667 a desired tool bar string, even if there are no tool bar items.
1668
1669 * xdisp.c (Ftool_bar_lines_needed): New function.
1670 (syms_of_xdisp): Defsubr it.
1671
1672 * editfns.c (Fformat): Don't extend text properties from arguments
1673 to padding chars in the result.
1674
1675 2001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
1676
1677 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
1678
1679 2001-01-20 Andrew Innes <andrewi@gnu.org>
1680
1681 * w32term.c (w32_ring_bell): Only support visible bell on w32 frames.
1682 (w32_initialize): Don't set term hooks that aren't actually needed
1683 in windowed mode.
1684
1685 * xfaces.c (realize_default_face):
1686 (realize_face):
1687 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
1688
1689 * xdisp.c (handle_single_display_prop): Remove references to
1690 FRAME_W32_CONSOLE_P.
1691
1692 * dispnew.c (Fredraw_frame): Remove reference to FRAME_W32_CONSOLE_P.
1693
1694 * frame.h (output_method): Remove output_w32_console method.
1695 (FRAME_W32_CONSOLE_P): Remove macro.
1696
1697 * frame.c (Qw32_console): Remove variable.
1698 (Fframep): Remove references to it.
1699 (syms_of_frame): Ditto.
1700 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
1701
1702 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
1703 redefinition.
1704
1705 2001-01-20 Kenichi Handa <handa@etl.go.jp>
1706
1707 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
1708
1709 2001-01-19 Andrew Innes <andrewi@gnu.org>
1710
1711 * w32.c (init_environment): Add a version-independent site-lisp
1712 directory to EMACSLOADPATH, after the version dependent one.
1713
1714 2001-01-19 Gerd Moellmann <gerd@gnu.org>
1715
1716 * editfns.c (Fbuffer_substring): Doc fix.
1717
1718 * xdisp.c (message_dolog, message2, message2_nolog):
1719 Rename parameter LEN to NBYTES.
1720
1721 2001-01-19 Kenichi Handa <handa@etl.go.jp>
1722
1723 * charset.c (strwidth): Use c_string_width.
1724 (c_string_width): New function.
1725 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
1726 Caller changed.
1727
1728 * charset.h (c_string_width, lisp_string_width): Extern them.
1729
1730 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
1731
1732 * indent.c (check_composition): Check validity of composition.
1733
1734 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
1735 characters by calling c_string_width.
1736 (x_consider_frame_title): Get byte length of frame tile string
1737 correctly.
1738 (display_mode_element): Pay attention to width of non-ASCII
1739 characters by calling strwidth.
1740
1741 2001-01-18 Gerd Moellmann <gerd@gnu.org>
1742
1743 * xfns.c (Qcancel_timer): New variable.
1744 (syms_of_xfns): Initialize and staticpro it.
1745 (Fx_hide_tip, Fx_show_tip): Use it.
1746 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
1747 the timer.
1748 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
1749
1750 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
1751
1752 * window.h (WINDOW_LIVE_P): New macro.
1753
1754 * window.c (window_size_fixed): New variable.
1755 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
1756 the doc string.
1757
1758 * eval.c (specbind): If binding a per-buffer variable which
1759 doesn't have a buffer-local value in the current buffer, change
1760 the global value by changing the value of the symbol bound in all
1761 buffers not having their own value, to make it consistent with
1762 what happens with other buffer-local variables.
1763
1764 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
1765
1766 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
1767 when searching for a newline.
1768
1769 2001-01-18 Kenichi Handa <handa@etl.go.jp>
1770
1771 * xdisp.c (display_string): Fix previous change.
1772
1773 2001-01-18 Jason Rumney <jasonr@gnu.org>
1774
1775 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
1776 GLYPH_DEBUG is defined.
1777 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
1778 true for images with `:ascent 100'.
1779 (x_set_mouse_face_gc): If the last used mouse face has gone in the
1780 meantime, use face MOUSE_FACE_ID.
1781 If first glyph isn't a character glyph, use the ASCII NUL
1782 character to determine the face.
1783 (expose_area): Do not treat left margin specially.
1784 (note_mode_line_highlight): If no local_map, check global keymap.
1785 (note_mouse_highlight): Initialize overlay.
1786 (clear_mouse_face): Don't return if tip_frame is non-nil.
1787 (show_scroll_bars): Remove unused function.
1788 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
1789 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
1790 Clip to row.
1791 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be nil.
1792 (x_free_frame_resources): Unload relief colors.
1793
1794 2001-01-17 Gerd Moellmann <gerd@gnu.org>
1795
1796 * xdisp.c (forward_to_next_line_start): Avoid calling
1797 get_next_display_element when the newline is already found.
1798 This may change the iterator's position, when its current position is
1799 equal to the iterator's stop_charpos.
1800
1801 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
1802 zero, use this method only at the end of a line.
1803
1804 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
1805 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
1806 if SCALABLE_FONTS_P is set.
1807
1808 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
1809 so that scalable fonts are included.
1810
1811 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
1812 In the cache, use a key containing the information if scalable
1813 fonts are included.
1814 (x_load_font): Adapt to change of keys in the font cache.
1815
1816 2001-01-17 Kim F. Storm <storm@filanet.dk>
1817
1818 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
1819 XListFonts to take advantage of font caching.
1820
1821 * xterm.c (x_list_fonts): Ensure caching font information when
1822 called for a null frame, which is the case frequently when Emacs
1823 starts.
1824
1825 2001-01-17 Gerd Moellmann <gerd@gnu.org>
1826
1827 * xfns.c (QCconversion): Replaces QCalgorithm.
1828
1829 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
1830
1831 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
1832 of :algorithm.
1833
1834 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
1835 not everything could be displayed.
1836
1837 * line.h, x-list-font.c: Files removed because unused.
1838
1839 2001-01-17 Andrew Innes <andrewi@gnu.org>
1840
1841 * dired.c (directory_files_internal): Convert result from readdir
1842 to a unibyte string initially, to avoid possible misinterpretation
1843 of some bytes as the internal form of Emacs characters.
1844
1845 2001-01-17 Kenichi Handa <handa@etl.go.jp>
1846
1847 * fns.c (concat): Be sure to avoid putting the same `composition'
1848 property on the adjacent regions.
1849
1850 2001-01-16 Gerd Moellmann <gerd@gnu.org>
1851
1852 * window.c (Fset_window_hscroll): Don't set window's min_hscroll here.
1853 (Fscroll_right, Fscroll_left): Set it here instead, if called
1854 interactively.
1855
1856 * buffer.c (Fset_buffer_modified_p): Set buffer's
1857 prevent_redisplay_optimizations_p flag.
1858
1859 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
1860 * sysdep.c, vmsproc.c, xselect.c: Call redisplay_preserve_echo_area
1861 with additional arg.
1862
1863 * dispextern.h, lisp.h (redisplay_preserve_echo_area):
1864 Change prototype.
1865
1866 * xdisp.c (redisplay_preserve_echo_area): Add parameter
1867 FROM_WHERE, for debugging.
1868
1869 2001-01-16 Kenichi Handa <handa@etl.go.jp>
1870
1871 * ccl.c (Fregister_ccl_program): Handle the return value of
1872 resolve_symbol_ccl_program correctly.
1873 (CCL_Extension): Fix typo (originally CCL_Extention). Caller changed.
1874
1875 2001-01-15 Gerd Moellmann <gerd@gnu.org>
1876
1877 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
1878 has gone in the meantime, use face MOUSE_FACE_ID.
1879
1880 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]:
1881 If x_display_info_for_display returns null, don't try to close
1882 the display; we didn't open it.
1883
1884 * dispnew.c (save_or_restore_current_matrices): Function removed.
1885 (save_current_matrix, restore_current_matrix): New functions.
1886 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
1887 restore the frame's current matrix. Due to the glyph pointer
1888 setup done in adjust_glyph_matrix, there is no easy way to make
1889 saving the current matrix in the desired matrix generally correct,
1890 so don't try it.
1891
1892 2001-01-15 Kenichi Handa <handa@etl.go.jp>
1893
1894 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
1895 truncation glyphs.
1896 (display_line): Optimize for wide characters.
1897 (display_string): Don't try to display a multi-column character
1898 partially. On ttys, produce more than one truncation glyph for
1899 multi-column characters that don't fit on the line.
1900
1901 2001-01-13 Kenichi Handa <handa@etl.go.jp>
1902
1903 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]:
1904 Define it instead of WORDS_BIGENDIAN. Caller changed.
1905
1906 2001-01-13 Jason Rumney <jasonr@gnu.org>
1907
1908 * w32fns.c (Fimage_size, image_ascent, lookup_image)
1909 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
1910 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1911 (tiff_format, gif_format, gs_format): Adapt to change of image margins.
1912
1913 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
1914 (x_draw_image_relief, x_draw_image_foreground_1)
1915 (x_draw_image_glyph_string): Adapt to change of image margins.
1916
1917 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
1918 variables.
1919
1920 * w32bdf.c (search_file_line, get_cached_font_char)
1921 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
1922
1923 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
1924
1925 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
1926 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
1927 (Fw32_send_sys_command): Remove unused variables.
1928 (w32_msg_pump): Add parentheses.
1929
1930 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
1931 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
1932 Add parentheses.
1933
1934 2001-01-12 Gerd Moellmann <gerd@gnu.org>
1935
1936 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
1937 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
1938 being a pair of margins.
1939 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
1940 to DEFVAR_LISP. Extend doc.
1941
1942 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
1943 margins.
1944 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
1945 pair of integers `(X . Y)', use X for the horizontal and Y for the
1946 vertical margin.
1947 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
1948 (parse_image_spec): Check it.
1949 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1950 (tiff_format, gif_format, gs_format):
1951 Use IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
1952
1953 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1954 (x_draw_image_relief, x_draw_image_foreground_1)
1955 (x_draw_image_glyph_string): Adapt to the change of image margins.
1956
1957 * dispextern.h (struct image): Replace member `margin' with
1958 `hmargin' and `vmargin'.
1959
1960 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
1961 and GLYPHS.
1962
1963 * dispnew.c (update_text_area): Put code which decrements the
1964 stop position when the row's face extends to the end of the
1965 line in #if 0.
1966
1967 * xfns.c (x_set_mouse_color): Fix color allocation.
1968
1969 * keyboard.c: Call get_local_map with new argument list.
1970
1971 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
1972
1973 * intervals.h (enum map_property): Removed.
1974 (get_local_map): Change prototype.
1975
1976 * keymap.c: Call get_local_map with new argument list.
1977 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
1978
1979 2001-01-11 Gerd Moellmann <gerd@gnu.org>
1980
1981 * xdisp.c (build_desired_tool_bar_string): Correct the computation
1982 of the size needed for the tool bar string. For the last image,
1983 use a `display' property that reaches to the end of the string.
1984
1985 * xselect.c (selection_request_dpyinfo): New variable.
1986 (x_handle_selection_request): Set it.
1987 (x_selection_request_lisp_error): Don't call
1988 x_decline_selection_request if selection request's display has
1989 been closed.
1990
1991 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]:
1992 Do the unregister_colors before calling XFreeColors.
1993
1994 2001-01-10 Dave Love <fx@gnu.org>
1995
1996 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
1997 ${SOME_MACHINE_LISP}, not ${lisp}.
1998
1999 2001-01-10 Gerd Moellmann <gerd@gnu.org>
2000
2001 * xdisp.c (display_line): On ttys, produce more than one truncation
2002 glyph for multi-column characters that don't fit on the line.
2003
2004 * xselect.c (x_reply_selection_request): Add a comment.
2005
2006 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
2007 XkbGetNames instead of XkbGetKeyboard.
2008
2009 2001-01-10 Dave Love <fx@gnu.org>
2010
2011 * sysdep.c (random): Revert the declaration.
2012
2013 2001-01-09 Gerd Moellmann <gerd@gnu.org>
2014
2015 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]:
2016 Call function string_bytes.
2017 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
2018
2019 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
2020 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
2021 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
2022 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
2023 the current sblock.
2024 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
2025 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
2026 after sweeping strings, and at the end.
2027 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
2028
2029 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
2030 ensure that pop_message is called.
2031
2032 * keyboard.c (Fexecute_extended_command): Use a
2033 record_unwind_protect to ensure that pop_message is called.
2034
2035 * lisp.h (push_message_unwind): Add prototype.
2036
2037 * xdisp.c (push_message_unwind): New function.
2038
2039 * fileio.c (do_auto_save_unwind): Do the pop_message here
2040 instead of in Fdo_auto_save.
2041 (Fdo_auto_save): Don't call pop_message.
2042
2043 2001-01-08 Ken Raeburn <raeburn@gnu.org>
2044
2045 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
2046 in inner block.
2047
2048 2001-01-08 Gerd Moellmann <gerd@gnu.org>
2049
2050 * window.c (window_scroll_pixel_based): Adjust glyph matrices
2051 when increasing window's vscroll.
2052
2053 * macros.c (Qkbd_macro_termination_hook): New variable.
2054 (syms_of_macros): Initialize and staticpro it.
2055 (pop_kbd_macro): Run kbd-macro-termination-hook.
2056
2057 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
2058
2059 2001-01-07 Dave Love <fx@gnu.org>
2060
2061 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
2062 arglist, for documentation's sake.
2063
2064 2001-01-06 Andrew Innes <andrewi@gnu.org>
2065
2066 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
2067 of *.pdb.
2068
2069 2001-01-05 Andrew Innes <andrewi@gnu.org>
2070
2071 * term.c (update_end): Don't check updating_frame; for some reason
2072 this can be 0 sometimes, such as after dismissing a popup menu,
2073 and isn't necessary given the explicit frame argument.
2074
2075 2001-01-05 Gerd Moellmann <gerd@gnu.org>
2076
2077 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
2078 on some systems, and an unsigned long on others, like FreeBSD 4.1.
2079
2080 2001-01-04 Gerd Moellmann <gerd@gnu.org>
2081
2082 * xterm.c (clear_mouse_face): Don't return if tip_frame is non-nil.
2083
2084 * xfns.c (x_create_tip_frame): Preserve the value of
2085 face_change_count around the creation of the tip frame.
2086
2087 * xfns.c (last_show_tip_args): New variable.
2088 (compute_tip_xy): New function.
2089 (Fx_show_tip): Reuse an existing tip frame, if possible.
2090 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
2091
2092 2001-01-04 Dave Love <fx@gnu.org>
2093
2094 * editfns.c (Fformat): Doc fix.
2095
2096 * systime.h (set_file_times): Prototype.
2097
2098 * widget.h (EmacsFrameSetCharSize_): Prototype.
2099
2100 * sysdep.c (random, srandom): Declare explicitly.
2101
2102 * dispextern.h (move_it_vertically_backward): Declare.
2103
2104 2001-01-04 Gerd Moellmann <gerd@gnu.org>
2105
2106 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
2107 like in Fx_create_frame.
2108
2109 * xfaces.c (set_font_frame_param): Don't do anything for
2110 non-graphical frames.
2111
2112 * window.c (Fdelete_other_windows): Set window's window_end_valid
2113 to nil when changing the window's start. Don't change the
2114 window's start when its top position hasn't changed. If we do,
2115 this will set the window's optional_new_start, which act's like a
2116 force_start during redisplay with C-x 1 M-> under particular
2117 circumstances (see report from Per Starback to emacs-pretest-bug
2118 from 2000-12-13.).
2119
2120 2001-01-03 Gerd Moellmann <gerd@gnu.org>
2121
2122 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
2123 short cut at the start of the function. Add an assertion.
2124 (reseat_at_next_visible_line_start): Add an assertion.
2125
2126 * window.c (Frecenter): When changing the window start, set the
2127 window's window_end_valid to nil.
2128 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
2129
2130 * dispextern.h (move_it_past_eol): Add prototype.
2131
2132 * xdisp.c (move_it_past_eol): New function.
2133
2134 * window.c (Fwindow_end): Doc fix.
2135
2136 2001-01-03 Dave Love <fx@gnu.org>
2137
2138 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3 kluge.
2139
2140 2001-01-03 Gerd Moellmann <gerd@gnu.org>
2141
2142 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
2143 the enabled_p flag of the glyph row at window_end_vpos to 0.
2144 (handle_single_display_prop): Fix last change.
2145
2146 2001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2147
2148 * window.c (Frecenter): Doc fix.
2149
2150 2001-01-02 Andrew Innes <andrewi@gnu.org>
2151
2152 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
2153
2154 * frame.h (output_method): Add output_w32_console method.
2155 (FRAME_W32_CONSOLE_P): New macro.
2156
2157 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
2158 use output_w32_console method.
2159 (Qw32_console): New Lisp_Object.
2160 (Fframep): Return it.
2161 (syms_of_frame): Init it.
2162 (Fframe_parameters): Report w32console as font for w32_console frames.
2163
2164 * xfaces.c (realize_default_face): Set face foreground and
2165 background to unspecified for w32_console frames.
2166 (realize_face): Realize face cache for w32_console frames.
2167 (realize_tty_face): Accept w32_console frames.
2168
2169 * xdisp.c (handle_single_display_prop): Return if frame is w32_console.
2170 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
2171 necessary, even if running interactively.
2172
2173 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
2174 w32_console frames.
2175
2176 * w32term.c (x_update_begin):
2177 (x_update_end):
2178 (x_clear_frame):
2179 (x_ins_del_lines):
2180 (x_change_line_highlight):
2181 (x_delete_glyphs):
2182 (w32_ring_bell):
2183 (x_update_begin):
2184 (x_update_end):
2185 (w32_reassert_line_highlight):
2186 (w32_frame_rehighlight):
2187 (w32_frame_raise_lower): Do nothing if not w32 frame.
2188
2189 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
2190
2191 * w32fns.c (Fx_display_color_cells): Determine correct value, when
2192 system doesn't tell us directly.
2193 (Fx_display_visual_class): Implement properly.
2194
2195 2001-01-02 Gerd Moellmann <gerd@gnu.org>
2196
2197 * window.c (Frecenter): Handle centering in graphical frames
2198 specially. Centering on the basis of line counts doesn't work
2199 reliably with variable-height lines.
2200
2201 2001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
2202
2203 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
2204 and al[].
2205
2206 * composite.c (run_composition_function): Remove unused var `val'.
2207 (update_compositions): Remove unused variable `hook'.
2208
2209 * intervals.c (get_local_map): Remove unused variable `tem'.
2210
2211 * doprnt.c (doprnt1): Remove unused variable `size'.
2212
2213 * fns.c (Flength): Remove unused variable `tail'.
2214 (Fdelete): Remove unused variable `size'.
2215
2216 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
2217 and `gcpro2'.
2218
2219 * doc.c (Fsnarf_documentation): Remove unused vars `fun' and `tem'.
2220
2221 * data.c (find_symbol_value): Remove extra 3rd argument in the
2222 call to swap_in_symval_forwarding.
2223
2224 * undo.c (Fprimitive_undo): Remove unused block-scope variable `end'.
2225
2226 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
2227 (trivial_regexp_p): Remove unused variable `c'.
2228 (boyer_moore): Remove unused variable `k'.
2229
2230 * indent.c (current_column): Remove unused variable `stopchar'.
2231 (Fcompute_motion): Remove unused variable `contin'.
2232
2233 * casefiddle.c (casify_object): Remove unused variable `tolen'.
2234
2235 * dired.c (directory_files_internal): Fix a typo in a comment.
2236 Remove an unused variable `handler'.
2237 (file_name_completion): Remove unused function-scope variable `dp'.
2238 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
2239 on BSD4_2.
2240
2241 * fileio.c (e_write): Remove unused variable `require_encoding_p'.
2242
2243 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
2244 and `buf'.
2245 (Fmarker_insertion_type): Remove unused variable `buf'.
2246
2247 * insdel.c (make_gap): Remove unused variable `result'.
2248
2249 * keyboard.c (record_char): Remove unused function-scope var `help'.
2250 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
2251 (menu_bar_items): Remove unused function-scope variable `tem'.
2252
2253 * fontset.c (fontset_ref): Remove unused variable `i'.
2254 (fontset_set): Remove unused variables `j' and `tmp'.
2255 (make_fontset): Remove unused variables `i', `j', `elt' and `base_elt'.
2256 (make_fontset_for_ascii_face): Remove unused variable `name'.
2257 (fs_load_font): Remove unused variable `font_idx'.
2258 (fs_query_fontset): Remove unused function-local variable `fontset'.
2259 (list_fontsets): Remove unused variable `tail'.
2260 (Fnew_fontset): Remove unused variables `family' and `registry'.
2261 (accumulate_font_info): Remove unused variable `tmp'.
2262 (Ffontset_font): Remove unused variable `id'.
2263 (syms_of_fontset): Remove unused variable `i'.
2264
2265 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
2266 to x_term_init.
2267 (lookup_image): Remove unused variable `file'.
2268 (xbm_load): Remove unused variables `bitmap_data', `height', and
2269 `width'. Remove function-local variable `i', leave the
2270 block-local one.
2271 (gif_load): Remove unused variable `inc'.
2272
2273 * xterm.c (XTread_socket): Remove unused variables `p' and `pend'.
2274 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
2275 leave only the one in the inner block.
2276
2277 * xfaces.c (face_fontset, realize_default_face): Remove unused
2278 variable `fontset'.
2279 (face_at_buffer_position): Remove unused variable `multibyte_p'.
2280
2281 * term.c (encode_terminal_code): Remove unused variable `c'.
2282
2283 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
2284 char *' instead of `char *'.
2285
2286 * category.c (Fcategory_docstring): Remove unused variable `doc'.
2287 (Fget_unused_category): Remove unused variable `docstring_vector'.
2288 (Fchar_category_set): Remove unused variables `val', `charset',
2289 `c1' and `c2'.
2290
2291 * coding.c (detect_coding_iso2022, setup_coding_system):
2292 Remove unused variable `i'.
2293 (detect_coding_mask): Remove unused variable `idx'.
2294 (detect_coding): Remove unused variable `i'.
2295 (ccl_coding_driver): Remove unused variable `result'.
2296 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
2297 (decode_coding_string): Remove unused variables `to' and `gcpro1'.
2298 (encode_coding_string): Remove unused variables `gcpro1' and
2299 `saved_coding_symbol'.
2300 (Ffind_coding_systems_region_internal): Remove function-local
2301 variable args[], leave only the block-local one.
2302 (code_convert_region1): Remove unused variable `len'.
2303
2304 * charset.c (char_printable_p): Remove unused variable `chars'.
2305 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
2306 (str_to_multibyte): Remove unused variable `c'.
2307
2308 * window.c (size_window): Remove block-local variable `min_size'.
2309
2310 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
2311 `header_line_height'.
2312 (append_space, extend_face_to_end_of_line): Declare `saved_what'
2313 enum display_element_type.
2314
2315 2001-01-02 Gerd Moellmann <gerd@gnu.org>
2316
2317 * xterm.c (x_connection_closed): Catch X errors around all
2318 statements that call X. Save away the error message in a local copy.
2319
2320 * xterm.c (x_connection_closed): Set handling_signal to 0 at
2321 the start.
2322
2323 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
2324 in or at the start of invisible text.
2325
2326 * dispnew.c (update_window): Don't check_current_matrix_flags.
2327
2328 2001-01-01 Jason Rumney <jasonr@gnu.org>
2329
2330 * w32fns.c (x_figure_window_size): Do not allow new_height and
2331 new_width of frame to override specified values.
2332
2333 2000-12-30 Kenichi Handa <handa@etl.go.jp>
2334
2335 * composite.c (find_composition): Fix a code for searching backward.
2336
2337 2000-12-29 Gerd Moellmann <gerd@gnu.org>
2338
2339 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New function.
2340 (update_window) [GLYPH_DEBUG]: Call it.
2341 (scrolling_window): Prevent including current rows which are below
2342 what's displayed in the window.
2343
2344 * xdisp.c (try_window_reusing_current_matrix)
2345 <new start <= old start>: Disable rows in the current matrix
2346 which are below the window after scrolling.
2347
2348 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
2349 is zero. It's not worth the complexity.
2350 (invisible_text_between_p): Put in #if 0 because unused.
2351
2352 2000-12-28 Gerd Moellmann <gerd@gnu.org>
2353
2354 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
2355 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
2356
2357 * keyboard.c (echo_char): If C is an integer, always call
2358 push_key_description. Former code could signal an invalid
2359 character error.
2360
2361 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
2362 If set, print multibyte text.
2363 (Fsingle_key_description): Call push_key_description with
2364 FORCE_MULTIBYTE set.
2365 (describe_buffer_bindings): Likewise.
2366
2367 * lisp.h (push_key_description): Add prototype.
2368
2369 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
2370 around the call to redisplay_internal.
2371
2372 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
2373
2374 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
2375
2376 2000-12-28 Kenichi Handa <handa@etl.go.jp>
2377
2378 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
2379 (ccl_driver): New local variable `extra_bytes'.
2380
2381 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
2382
2383 * coding.c (setup_coding_system):
2384 Initialize coding->spec.ccl.eight_bit_carryover.
2385 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
2386
2387 2000-12-28 Kenichi Handa <handa@etl.go.jp>
2388
2389 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
2390 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
2391 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
2392 (decode_composition_emacs_mule): New function.
2393 (decode_coding_emacs_mule): Decode composition sequence by calling
2394 decode_composition_emacs_mule.
2395 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
2396 (encode_coding_emacs_mule): Changed from macro to function.
2397 If a text contains compositions, encode them correctly.
2398 (setup_coding_system): Set coding->commong_flags for emacs-mule so
2399 that decoding and encoding are required.
2400
2401 2000-12-27 Gerd Moellmann <gerd@gnu.org>
2402
2403 * xfaces.c (PT_PER_INCH): New macro.
2404 (xlfd_point_size): Compute real point size from font's pixel size.
2405 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
2406 instead of 72.
2407
2408 * .gdbinit: Comment out the line pointing to the Lesstif source
2409 directory.
2410
2411 * window.c (Frecenter): Use displayed_window_lines instead
2412 of window_internal_height.
2413
2414 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
2415 instead of x-toolkit-scroll-bars-p.
2416 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
2417
2418 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
2419 instead of x-toolkit-scroll-bars-p.
2420 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
2421
2422 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
2423 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
2424 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]:
2425 New variables.
2426 (add_window_display_history, add_frame_display_history)
2427 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
2428 (build_frame_matrix_from_leaf_window): Remove unused code.
2429 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
2430 redisplay history.
2431 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
2432 (update_window) [GLYPH_DEBUG]: Likewise.
2433 (syms_of_display): Defsubr dump-redisplay-history.
2434
2435 2000-12-23 Gerd Moellmann <gerd@gnu.org>
2436
2437 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
2438 the end of the prompt. Set echo_after_prompt to the offset
2439 of echoptr in echobuf.
2440
2441 * xdisp.c (init_from_display_pos): Pop until the iterator's
2442 stack is empty; there may be frames for stretch or images
2443 on the stack.
2444
2445 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
2446 (save_or_restore_current_matrix): New function for the same
2447 purpose, but more efficient.
2448 (adjust_frame_glyphs_for_frame_redisplay): Use it.
2449
2450 2000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
2451
2452 * xdisp.c (syms_of_xdisp): Fix last change.
2453
2454 2000-12-23 Gerd Moellmann <gerd@gnu.org>
2455
2456 * xdisp.c (syms_of_xdisp): Doc fix.
2457
2458 * xdisp.c (redisplay_window): Remove label restore_buffers;
2459 use finish_scroll_bars instead to make sure that scroll bars
2460 are redeemed. If we don't do this, flickering can result from
2461 scroll bars being destroyed and recreated.
2462
2463 2000-12-22 Jason Rumney <jasonr@gnu.org>
2464
2465 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
2466 in the wrong colors when the foreground is not black.
2467 (expose_window): Don't redraw the window that's currently being
2468 updated.
2469
2470 2000-12-22 Gerd Moellmann <gerd@gnu.org>
2471
2472 * window.c (size_window): When setting the window's too_small_ok
2473 flag, compare old size with minimum size depending on WIDTH_P,
2474 don't compare with window_min_width.
2475
2476 * window.c (delete_window): Simplify somewhat.
2477 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
2478 freeing window matrices. The flag windows_or_buffers_changed is
2479 set, so the next redisplay will consider all windows; this should
2480 suffice.
2481
2482 2000-12-22 Kenichi Handa <handa@etl.go.jp>
2483
2484 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
2485
2486 * ccl.h (struct ccl_program): New member cr_consumed.
2487
2488 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
2489 (CCL_READ_CHAR): Handle EOL conversion here.
2490 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
2491
2492 2000-12-21 Gerd Moellmann <gerd@gnu.org>
2493
2494 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg GLYPHS.
2495
2496 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
2497 otherwise tabs of different size compare equal.
2498
2499 * callint.c (Fcall_interactively): Prevent a compiler warning.
2500
2501 * print.c (print_unwind): Return nil.
2502 (PRINTDECLARE): Initialize all local variables.
2503 (print_preprocess): Add a default case.
2504
2505 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
2506
2507 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
2508
2509 * window.c (delete_window, Fsplit_window)
2510 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
2511
2512 * dispextern.h (ensure_frame_matrix): Function declaration removed.
2513
2514 * dispnew.c (ensure_frame_matrix): Removed.
2515 (save_frame_matrix, restore_frame_matrix): New functions.
2516 (adjust_frame_glyphs_for_frame_redisplay): Use them.
2517
2518 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
2519 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
2520
2521 2000-12-21 Andrew Innes <andrewi@gnu.org>
2522
2523 * w32term.c (x_update_begin): Regenerate the palette here, rather
2524 than for each window.
2525
2526 * w32xfns.c (select_palette): Avoid calling SelectPalette if
2527 palette is NULL, since this corrupts memory! Also get
2528 display_info reference from frame.
2529
2530 2000-12-21 Jason Rumney <jasonr@gnu.org>
2531
2532 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
2533
2534 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
2535 to avoid returning without releasing it.
2536
2537 2000-12-21 Kenichi Handa <handa@etl.go.jp>
2538
2539 * keymap.c (push_key_description): Don't convert eight-bit-control
2540 and eight-bit-graphic to multibyte character.
2541
2542 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
2543 generic character and CODE1 is nil, return the smallest character
2544 in CHARSET.
2545
2546 2000-12-20 Dave Love <fx@gnu.org>
2547
2548 * s/osf5-0.h (NSIG): Don't redefine.
2549
2550 2000-12-20 Stefan Monnier <monnier@cs.yale.edu>
2551
2552 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
2553 excluding menu-bar and tool-bar.
2554 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
2555 (menu_item_p): Remove.
2556 (where_is_internal_1): Don't ignore menu-items.
2557
2558 2000-12-20 Gerd Moellmann <gerd@gnu.org>
2559
2560 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
2561 into account.
2562
2563 * window.c (make_window): Initialize window's min_hscroll.
2564 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
2565 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
2566 to zero.
2567 (struct saved_window): New member min_hscroll.
2568 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
2569 (Fset_window_configuration): Set window's min_hscroll.
2570 (save_window_save): Save window's min_hscroll.
2571 (compare_window_configurations): Compare min_hscroll values.
2572
2573 * window.h (struct window): New member min_hscroll.
2574
2575 * keyboard.c (echo_prompt): Prevent a compiler warning.
2576
2577 * xdisp.c (try_cursor_movement): Fix last change. The real
2578 condition is that PT is at the end of the row, and should
2579 be displayed at the start of the next row.
2580
2581 * xdisp.c (try_cursor_movement): If we end on a partially
2582 visible line, end we already decided to scroll, return -1.
2583
2584 * dispextern.h (ensure_frame_matrix): Add prototype.
2585
2586 * window.c (delete_window, Fsplit_window)
2587 (Fset_window_configuration): Call ensure_frame_matrix.
2588
2589 * dispnew.c (fake_current_matrices, ensure_frame_matrix):
2590 New functions.
2591 (adjust_frame_glyphs_for_frame_redisplay): If display has been
2592 completed, call fake_current_matrices instead of marking frame
2593 garbaged.
2594
2595 2000-12-20 Jason Rumney <jasonr@gnu.org>
2596
2597 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
2598
2599 2000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
2600
2601 * fns.c (Frequire): Doc fix.
2602
2603 2000-12-19 Gerd Moellmann <gerd@gnu.org>
2604
2605 * window.c (window_scroll_pixel_based): Don't use move_it_vertically.
2606
2607 * dispnew.c (direct_output_for_insert): Fix check for mini-window
2608 currently displaying a message.
2609
2610 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
2611 xterm.h.
2612 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
2613
2614 2000-12-18 Andrew Innes <andrewi@gnu.org>
2615
2616 * w32.c (w32_strerror): New function.
2617
2618 * w32.h (w32_strerror): New extern.
2619
2620 * w32fns.c (Fw32_shell_execute): Use it.
2621
2622 2000-12-18 Gerd Moellmann <gerd@gnu.org>
2623
2624 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
2625
2626 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
2627
2628 * msdos.c (IT_set_face): Obey inverse_video.
2629
2630 2000-12-18 Kenichi Handa <handa@etl.go.jp>
2631
2632 * dired.c (directory_files_internal): Always return decoded filenames.
2633
2634 2000-12-18 Gerd Moellmann <gerd@gnu.org>
2635
2636 * xterm.c (x_connection_closed): Prevent being called recursively
2637 because of an error condition in XtCloseDisplay.
2638
2639 * xdisp.c (init_iterator): If noninteractive, and the frame's
2640 face cache is null, make one.
2641
2642 * xfns.c (show_busy_cursor): Check for live frames more thoroughly.
2643
2644 * process.c (wait_reading_process_input): Check for pending
2645 input when running timers.
2646
2647 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
2648
2649 * msdos.c (IT_write_glyphs): Compute the glyph face from str->face_id.
2650
2651 2000-12-18 Kenichi Handa <handa@etl.go.jp>
2652
2653 * process.c (read_process_output): Don't run a filter if the code
2654 decoder produces nothing but carryover.
2655
2656 2000-12-17 Andrew Innes <andrewi@gnu.org>
2657
2658 * w32.c (sys_rename): Only check errno against EEXIST, and not
2659 EACCES, when determining whether rename failed because the target
2660 exists. This was resulting in indefinite looping on Windows 9x if
2661 the source file was locked by another process.
2662
2663 * w32fns.c (Ffile_system_info): New function.
2664 (syms_of_w32fns): Defsubr it.
2665
2666 2000-12-17 Gerd Moellmann <gerd@gnu.org>
2667
2668 * window.c (coordinates_in_window): Fix computation for
2669 position on vertical line between mode lines.
2670
2671 * xfns.c (unwind_create_frame): Return t if frame was deleted.
2672 Don't alter tip_frame or tip_window.
2673 (unwind_create_tip_frame): Set tip_frame to nil only if frame
2674 was deleted.
2675
2676 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
2677 Don't alter tip_frame or tip_window.
2678 (unwind_create_tip_frame): Set tip_frame to nil only if frame
2679 was deleted.
2680
2681 2000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
2682
2683 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
2684 be consistent with the doc string. Reported by NAKAJIMA Mikio
2685 <minakaji@osaka.email.ne.jp>.
2686
2687 2000-12-16 Kenichi Handa <handa@etl.go.jp>
2688
2689 * xfaces.c (Vface_ignored_fonts): New variable.
2690 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
2691 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
2692
2693 2000-12-15 Gerd Moellmann <gerd@gnu.org>
2694
2695 * dispnew.c (update_window): Detect pending input every nth line
2696 updated, i.e. do it depending on real work done, and not on the
2697 vpos of the line.
2698
2699 * xterm.c (expose_window): Don't redraw the window that's
2700 currently being updated.
2701
2702 * window.c (Fset_window_point): Remove test for
2703 cursor_in_non_selected_windows.
2704
2705 * lread.c (read1): Recognize end of file after `\\'.
2706
2707 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
2708 not unwind_create_frame.
2709
2710 2000-12-15 Dave Love <fx@gnu.org>
2711
2712 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
2713 bcopy & al.
2714
2715 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
2716
2717 2000-12-15 Kenichi Handa <handa@etl.go.jp>
2718
2719 * coding.c (setup_coding_system): Clear all members of the struct
2720 coding_system at first.
2721 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
2722 argument.
2723 (code_convert_region): Don't override coding->src_multibyte and
2724 coding->dst_multibyte.
2725
2726 * fns.c (Fmd5): Docstring improved.
2727
2728 2000-12-15 Miles Bader <miles@gnu.org>
2729
2730 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
2731 are actually marked as mode-lines; otherwise use
2732 estimate_mode_line_height.
2733
2734 2000-12-14 Gerd Moellmann <gerd@gnu.org>
2735
2736 * editfns.c (Fformat): Prevent a buffer overrun when the format
2737 specifies a precision.
2738
2739 2000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
2740
2741 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
2742 argument is outside the range [2..3].
2743
2744 2000-12-14 Andrew Innes <andrewi@gnu.org>
2745
2746 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
2747 nothing to do. Bind inhibit-quit.
2748 (tip_frame): Make it a Lisp_Object.
2749 (x_create_tip_frame): Set tip_frame after it has been added to
2750 Vframe_list.
2751 (Fx_show_tip): Don't set tip_frame here.
2752 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New variables.
2753 (unwind_create_frame, unwind_create_tip_frame): New functions.
2754 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
2755 while a frame is only partially constructed.
2756
2757 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
2758 (x_free_frame_resources): New function.
2759 (x_destroy_window): Use it.
2760
2761 2000-12-14 Gerd Moellmann <gerd@gnu.org>
2762
2763 * xfns.c (Fx_backspace_delete_keys_p): New function.
2764 (syms_of_xfns): Defsubr it.
2765
2766 * config.in (HAVE_XKBGETKEYBOARD): Add.
2767
2768 2000-12-14 Kenichi Handa <handa@etl.go.jp>
2769
2770 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
2771 Always store string in multibyte representation in echobuf.
2772 (echo_char): Always store string in multibyte representation in
2773 echobuf.
2774 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
2775 (read_key_sequence): Adjusted for the change of echo_prompt.
2776
2777 * fns.c (Fmd5): Docstring improved.
2778
2779 * lisp.h (detect_coding_system): Prototype adjusted.
2780
2781 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
2782 (detect_coding_emacs_mule, detect_coding_iso2022,)
2783 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
2784 (detect_coding_utf_16, detect_coding_ccl): Make them static.
2785 New argument MULTIBYTEP. Callers changed.
2786 (detect_coding_mask, detect_coding_system): New argument
2787 MULTIBYTEP. Callers changed.
2788 (decode_coding_string): Set coding->src_multibyte and
2789 coding->dst_multibyte before calling detect_coding and detect_eol.
2790 Update them after some coding system is detected.
2791
2792 2000-12-13 Stefan Monnier <monnier@cs.yale.edu>
2793
2794 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
2795
2796 * keyboard.c (menu_bar_items, tool_bar_items):
2797 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
2798
2799 2000-12-13 Gerd Moellmann <gerd@gnu.org>
2800
2801 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
2802 New variables.
2803 (unwind_create_frame, unwind_create_tip_frame): New functions.
2804 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
2805 while a frame is only partially constructed.
2806
2807 * xterm.h (x_free_frame_resources): Declare.
2808
2809 * xterm.c (x_free_frame_resources): New function.
2810 (x_destroy_window): Use it.
2811
2812 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
2813 don't interrupt the update for pending input initially, i.e.
2814 update at least some lines.
2815
2816 * keyboard.c (do_mouse_tracking): Make externally visible.
2817
2818 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
2819
2820 * xfns.c (gray_bitmap_bits): Declare `char *'.
2821
2822 2000-12-12 Gerd Moellmann <gerd@gnu.org>
2823
2824 * xdisp.c (display_tool_bar_line): Make sure that tool bar
2825 lines start with a relief line.
2826
2827 2000-12-12 Dave Love <fx@gnu.org>
2828
2829 * window.c (Fdisplay_buffer): Doc fix.
2830 (Fwindow_list): Remove unused var.
2831
2832 * buffer.h (mmap_set_vars): Declare.
2833
2834 * window.h (Fset_window_point): Declare.
2835
2836 2000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
2837
2838 * msdos.c (fast_find_position): Don't overstep the last window row.
2839 (IT_note_mouse_highlight): Initialize portion to -1. Remove unused
2840 variable `area'. When looking for a row under (X,Y), give up if some
2841 of the previous rows is not enabled.
2842
2843 2000-12-12 Gerd Moellmann <gerd@gnu.org>
2844
2845 * window.c (Fset_window_point): If displaying cursors in windows
2846 other than the selected window, make sure redisplay updates
2847 other windows to show the new value of point in the window.
2848
2849 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
2850
2851 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
2852 the buffer is the sole visible buffer when in the mini-buffer.
2853
2854 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
2855 Bind `inhibit-read-only' to t.
2856 (unwind_with_echo_area_buffer): Use AREF.
2857
2858 * xfns.c (Fx_hide_tip): Simplified.
2859
2860 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use GC_MAKE_GCPROS_NOOPS
2861 instead of `1'.
2862
2863 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
2864
2865 2000-12-11 Gerd Moellmann <gerd@gnu.org>
2866
2867 * xfns.c (Fx_hide_tip): Fix last change.
2868
2869 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
2870 nothing to do. Bind inhibit-quit.
2871 (tip_frame): Make it a Lisp_Object.
2872 (x_create_tip_frame): Set tip_frame after it has been added to
2873 Vframe_list.
2874 (Fx_show_tip): Don't set tip_frame here.
2875
2876 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
2877
2878 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
2879 Lisp_Object.
2880
2881 * dispextern.h: Change external declaration of tip_frame.
2882
2883 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
2884 return an empty string.
2885
2886 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
2887 of the window's update_mode_line flag, since the former is set by
2888 force-mode-line-update, not the latter. This makes
2889 column-number-mode slightly faster.
2890
2891 * xdisp.c (try_window_id) <all changes above window start>:
2892 Set the cursor.
2893
2894 2000-12-11 Paul Eggert <eggert@twinsun.com>
2895
2896 * config.in (HAVE_FTELLO): Remove.
2897 (HAVE_FSEEKO): Add.
2898 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
2899 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
2900 HAVE_FTELLO.
2901 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
2902 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
2903
2904 2000-12-11 Miles Bader <miles@gnu.org>
2905
2906 * window.c (displayed_window_lines): Don't round up when
2907 converting empty space at bottom to lines.
2908 Handle non-newline-terminated final lines properly.
2909 (Fwindow_text_height): New function (used to be in lisp).
2910 (syms_of_window): Initialize it.
2911
2912 2000-12-09 Stefan Monnier <monnier@cs.yale.edu>
2913
2914 * syntax.c (scan_lists): Check that the right quote char has the
2915 right Sstring syntax when jumping over strings.
2916 (init_syntax_once): Use Smax rather than 13.
2917
2918 2000-12-09 Miles Bader <miles@gnu.org>
2919
2920 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
2921 with PARTIALLY, inverting the sense.
2922 (window_scroll_pixel_based): Scroll partially visible lines into
2923 place if we hit the beginning or end of the buffer.
2924 (displayed_window_lines): Don't include partially visible lines.
2925 (Fmove_to_window_line): Skip past any partially visible first line.
2926
2927 2000-12-08 Gerd Moellmann <gerd@gnu.org>
2928
2929 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
2930
2931 * tparam.c (tparam1): Change the way buffers are reallocated to be
2932 portable and less obfuscated.
2933
2934 * termcap.c (tgetent): Change the way buffers are reallocated to
2935 be portable and less obfuscated.
2936
2937 * macros.c (store_kbd_macro_char): Change the way buffers are
2938 reallocated to be portable and less obfuscated.
2939
2940 * lread.c (read1): Change the way buffers are reallocated to be
2941 portable and less obfuscated.
2942
2943 * doc.c (Fsubstitute_command_keys): Change the way buffers
2944 are reallocated so that it is portable.
2945
2946 2000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
2947
2948 * dosfns.c (Ffile_system_info): New function.
2949 (syms_of_dosfns): Defsubr it.
2950
2951 2000-12-07 Stefan Monnier <monnier@cs.yale.edu>
2952
2953 * alloc.c (gc_sweep): Add comment.
2954
2955 2000-12-07 Gerd Moellmann <gerd@gnu.org>
2956
2957 * sound.c (vox_configure): Change order of ioctls.
2958 Don't set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
2959 Ignore errors when changing volume.
2960 (vox_close): Don't reset the device.
2961
2962 * process.c (read_process_output): Make sure the process marker's
2963 position is valid when the process buffer is changed in
2964 after-change functions. W3 does that.
2965
2966 * xfns.c (x_free_gcs): New function.
2967
2968 * xterm.h (x_free_gcs): Add prototype.
2969
2970 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
2971 freeing GCs here.
2972
2973 * xterm.c (x_destroy_window): Call x_free_gcs so that
2974 resources of non-toolkit X windows will be freed.
2975
2976 2000-12-07 Andrew Innes <andrewi@gnu.org>
2977
2978 * w32fns.c (xlfd_charset_of_font): Fix last change.
2979
2980 2000-12-06 Dave Love <fx@gnu.org>
2981
2982 * md5.h (__P): Don't define -- it comes from config.h.
2983
2984 * strftime.c: Change some #if foo to #ifdef foo.
2985
2986 2000-12-06 Andrew Innes <andrewi@gnu.org>
2987
2988 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
2989
2990 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname argument.
2991 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
2992 (w32_list_fonts): Don't choke if pattern doesn't specify a codepage.
2993
2994 2000-12-06 Gerd Moellmann <gerd@gnu.org>
2995
2996 * alloc.c (gc_sweep): Prevent symbols read during loadup
2997 from being freed.
2998
2999 * xdisp.c (underlying_face_id): New function.
3000 (handle_face_prop, face_before_or_after_it_pos): Use it
3001 to determine the face ``under'' a string. Let strings inherit
3002 the face of the buffer under them.
3003
3004 * xfaces.c (face_at_string_position): Update function comment.
3005
3006 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
3007 matrix if the window's left position has changed; we need to
3008 redraw it in this case.
3009
3010 * dispextern.h (struct glyph_matrix): Add member window_left_x.
3011
3012 * window.c (coordinates_in_window): Check mouse on mode-line or
3013 header-line first.
3014
3015 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
3016 advertized by the function documentation.
3017
3018 * window.c (syms_of_window): Doc fix.
3019
3020 * sound.c (vox_configure): Set volume for left and right channel.
3021 (sound_cleanup): Return nil.
3022
3023 * xdisp.c (move_it_by_lines): Fix paren typo.
3024
3025 * xterm.c (x_load_font): Don't use the font's max_bounds for
3026 computing the height of the font. If max_bounds' ascent or
3027 descent are greater than the font's ascent or descent, this means
3028 glyphs overlap, which should be handled now by redisplay.
3029
3030 * window.c (Veven_window_heights): New variable.
3031 (syms_of_window): DEFVAR_LISP it.
3032 (Fdisplay_buffer): Check Veven_window_heights before evening the
3033 window heights.
3034
3035 2000-12-06 Miles Bader <miles@gnu.org>
3036
3037 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
3038 update `default-frame-alist' instead of setting no frame parameters.
3039
3040 2000-12-06 Kenichi Handa <handa@etl.go.jp>
3041
3042 * composite.c (update_compositions): Fix typo (use the correct
3043 variable).
3044
3045 2000-12-05 Jason Rumney <jasonr@gnu.org>
3046
3047 * md5.h: Remove underscores from function declarations.
3048 (__attribute__, __alignof__) [!__GNUC__]: Define.
3049
3050 * md5.c: Delay include of md5.h until after namespace cleaning.
3051
3052 * makefile.w32-in (fns.o): Depend on md5.h
3053 (md5.o): New target.
3054 (sunfns.o): Remove.
3055
3056 * makefile.nt: Likewise.
3057
3058 2000-12-05 Jason Rumney <jasonr@altavista.net>
3059
3060 * w32term.c (expose_area): Complete last change.
3061
3062 2000-12-05 Ken Raeburn <raeburn@gnu.org>
3063
3064 * minibuf.c: Include intervals.h.
3065
3066 2000-12-05 Jason Rumney <jasonr@gnu.org>
3067
3068 * w32term.c (x_produce_glyphs): If a font for a component of
3069 a composition is not found, use 1 pixel dot ascent and 0 dot
3070 descent value to avoid displaying terribly tall empty boxes.
3071 (expose_area): Pass x-coordinate relative to the exposed
3072 area to x_draw_glyphs instead of a window-relative coordinate.
3073
3074 2000-12-05 Gerd Moellmann <gerd@gnu.org>
3075
3076 * xdisp.c (next_element_from_ellipsis): Save face before selective
3077 display in saved_face_id, and set face_before_selective_p.
3078 (reseat_1): Reset face_before_selective_p.
3079 (append_space, extend_face_to_end_of_line): If iterator's
3080 face_before_selective_p is set, use the face from saved_face_id.
3081 (extend_face_to_end_of_line): For tty frames, make sure to
3082 use the right face id when producing spaces at the end of
3083 the line.
3084
3085 * dispextern.h (struct it): Add face_before_selective_p.
3086
3087 * keyboard.c (record_char): Don't record identical help-echo
3088 events in recent_keys.
3089
3090 * xterm.c [USE_X_TOOLKIT]: Close the display.
3091 (xim_close_dpy): Handle case that the display has been closed.
3092
3093 * xterm.c (x_destroy_window): Reset the frame's X window after
3094 destroying it.
3095
3096 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
3097 variable window_width.
3098 (line_draw_cost): Fix code skipping over spaces at the end of the
3099 line when must_write_spaces is not set.
3100 (scrolling_window): Fix code inserting runs in list of all runs.
3101
3102 2000-12-05 Kenichi Handa <handa@etl.go.jp>
3103
3104 * coding.c (setup_coding_system): Be sure to initialize
3105 coding->category_idx.
3106
3107 2000-12-04 Gerd Moellmann <gerd@gnu.org>
3108
3109 * xterm.c (PER_CHAR_METRIC): Removed because not used.
3110
3111 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
3112 area to x_draw_glyphs instead of a window-relative coordinate.
3113
3114 * fileio.c (auto_save_error): Add parameter ERROR. Show the
3115 error in the message.
3116
3117 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
3118 timer after having read a key. It's not good for code reading
3119 several keys in a loop, like an input method.
3120
3121 * fileio.c (Finsert_file_contents): When VISIT is t, don't
3122 record undo information for format-decode.
3123
3124 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
3125 current buffer is read-only, not if it isn't.
3126
3127 * keyboard.c (record_char): Record `help-echo' input events
3128 in recent_keys only if they display some help. Don't record
3129 `help-echo' events as macro char.
3130
3131 2000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3132
3133 * editfns.c (save_excursion_restore): Don't move point
3134 in another window if it is showing the wrong buffer.
3135 Avoid the call to Fwindow_live_p, for speed.
3136
3137 2000-12-04 Kenichi Handa <handa@etl.go.jp>
3138
3139 * xfaces.c (struct font_name): New member registry_priority.
3140 (split_font_name): Initialize the above member to zero.
3141 (concat_font_list): New function.
3142 (font_list): Include fonts of all alternative registries.
3143 (FONT_POINT_SIZE_QUANTUM): New macro.
3144 (better_font_p): Ignore point size difference less than
3145 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
3146
3147 * xterm.c (x_produce_glyphs): If a font for a component of
3148 a composition is not found, use 1 pixel dot ascent and 0 dot
3149 descent value to avoid displaying terribly tall empty boxes.
3150
3151 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
3152
3153 2000-12-03 Ken Raeburn <raeburn@gnu.org>
3154
3155 * coding.h (code_convert_string1): Declare.
3156
3157 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
3158
3159 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name): Declare.
3160
3161 2000-12-02 Jason Rumney <jasonr@gnu.org>
3162
3163 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
3164 correctly for single byte character case.
3165 (w32_per_char_metric): Do not try to make any assumptions about
3166 the metrics of BDF fonts.
3167 (x_estimate_mode_line_height): If `mode-line' face
3168 hasn't a font, use that of the frame, as drawing glyphs does.
3169 (note_mouse_highlight): Change the cursor shape on the vertical
3170 border between windows [not enabled].
3171
3172 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
3173
3174 * w32fns.c (Fx_create_frame): Reintroduce the call to
3175 face-set-after-frame-defaults.
3176 (Vx_window_horizontal_drag_shape): New variable.
3177 (syms_of_xfns): DEFVAR_LISP it.
3178 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
3179 enabled].
3180
3181 2000-12-02 Simon Josefsson <simon@josefsson.org>
3182
3183 * fns.c (Fmd5): Use a different logic to decide the coding system
3184 to use.
3185
3186 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
3187
3188 2000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
3189
3190 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is NULL.
3191
3192 2000-12-01 Gerd Moellmann <gerd@gnu.org>
3193
3194 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
3195 height for YNegative.
3196 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
3197 height; also see comment there.
3198
3199 * window.c (coordinates_in_window): Handle computations for
3200 positions on the vertical bar and fringes differently for
3201 window-system frames. Consider some pixels near the vertical bar
3202 as on the bar if the frame doesn't have vertical scroll bars.
3203 Associate positions between mode or header lines with the
3204 right window, the left one.
3205
3206 2000-12-01 Jason Rumney <jasonr@gnu.org>
3207
3208 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
3209
3210 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
3211 invalid frame.
3212
3213 2000-12-01 Gerd Moellmann <gerd@gnu.org>
3214
3215 * window.c (struct saved_window): Add members orig_top and orig_height.
3216 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
3217 (save_window_save, Fset_window_configuration): Save/restore
3218 window's orig_top and orig_height.
3219
3220 2000-12-01 Jason Rumney <jasonr@gnu.org>
3221
3222 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
3223
3224 * w32fns.c (x_set_cursor_color): Fix last change.
3225
3226 2000-11-30 Gerd Moellmann <gerd@gnu.org>
3227
3228 * xdisp.c (echo_area_display): If cursor is in the echo area, make
3229 sure that the next redisplay displays the minibuffer, so that
3230 the cursor will be replaced with what the minibuffer wants.
3231
3232 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
3233 #ifndef instead of using #if.
3234 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
3235 USE_TOOLKIT_SCROLL_BARS is defined.
3236
3237 2000-11-30 Jason Rumney <jasonr@gnu.org>
3238
3239 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
3240 x_display_cursor.
3241
3242 2000-11-30 Gerd Moellmann <gerd@gnu.org>
3243
3244 * fns.c (Fmd5): Doc fix.
3245
3246 2000-11-30 Simon Josefsson <simon@josefsson.org>
3247
3248 * fns.c (Fmd5): New function.
3249 (syms_of_fns): Defsubr md5.
3250
3251 * Makefile.in (obj): Add md5.o
3252
3253 2000-11-30 Gerd Moellmann <gerd@gnu.org>
3254
3255 * md5.h, md5.c: New files, taken from glibc.
3256
3257 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
3258
3259 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
3260 hasn't a font, use that of the frame, as drawing glyphs does.
3261
3262 2000-11-29 Stefan Monnier <monnier@cs.yale.edu>
3263
3264 * eval.c (Frun_hooks): Allow 0 arguments.
3265
3266 2000-11-29 Gerd Moellmann <gerd@gnu.org>
3267
3268 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
3269 is over the menu bar widget, say it's not on the frame.
3270
3271 * xfns.c (Fx_create_frame): Reintroduce the call to
3272 face-set-after-frame-defaults.
3273
3274 * eval.c (Fsignal): Reset handling_signal.
3275
3276 2000-11-28 Jason Rumney <jasonr@gnu.org>
3277
3278 * w32menu.c (add_menu_item): Reset menu item text when changing
3279 type to radio button.
3280
3281 2000-11-28 Gerd Moellmann <gerd@gnu.org>
3282
3283 * xselect.c: Update copyright.
3284
3285 * window.c (coordinates_in_window): If on a mode or header line,
3286 but sufficiently close to its start, return ``on vertical
3287 border''. This gives us a way to drag windows horizontally when
3288 using toolkit scroll bars.
3289
3290 * xterm.c (note_mouse_highlight): Change the cursor shape
3291 on the vertical border between windows.
3292
3293 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
3294
3295 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
3296 (syms_of_xfns): DEFVAR_LISP it.
3297 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
3298
3299 * textprop.c (text_read_only): New function.
3300 (verify_interval_modification): Use it instead of signaling
3301 `text-read-only'. This makes it easier to catch this error
3302 with a breakpoint.:
3303
3304 * xdisp.c (forward_to_next_line_start): Check for newlines,
3305 not end of line, which includes CR.
3306
3307 2000-11-28 Kenichi Handa <handa@etl.go.jp>
3308
3309 * coding.c (Ffind_coding_systems_region_internal): Be sure to
3310 include no-conversion.
3311
3312 2000-11-27 Jason Rumney <jasonr@gnu.org>
3313
3314 * w32fns.c (w32_load_system_font): Always mark font as double byte
3315 if codepage is unicode.
3316
3317 2000-11-27 Gerd Moellmann <gerd@gnu.org>
3318
3319 * xdisp.c (forward_to_next_line_start): If already on a newline,
3320 just consume it to avoid unintended skipping over invisible text below.
3321
3322 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
3323 `vertical-line', `mode-line' and `header-line' events.
3324
3325 * xdisp.c (try_window_id): Avoid starting to display in the middle
3326 of a character, a TAB for instance. This is easier than to set
3327 up the iterator exactly, and it's not a frequent case, so the
3328 additional effort wouldn't really pay off.
3329
3330 2000-11-26 Andrew Choi <akochoi@i-cable.com>
3331
3332 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
3333 init_window_once.
3334
3335 2000-11-25 Jason Rumney <jasonr@gnu.org>
3336
3337 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]:
3338 Args to window_from_coordinates should be pixel coordinates.
3339
3340 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
3341 redisplay handles them properly.
3342
3343 2000-11-25 Miles Bader <miles@gnu.org>
3344
3345 * indent.c (compute_motion): Keep pos_byte in sync with pos.
3346
3347 2000-11-24 Jason Rumney <jasonr@gnu.org>
3348
3349 * w32.c (init_environment): Set LANG environment variable based on
3350 locale settings, if not set.
3351
3352 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
3353 making tool bar smaller. When clearing the frame, also
3354 clear current matrices. Clear frame when tool bar disappears.
3355 Don't use more lines for the tool-bar than is available.
3356 (x_change_window_heights): New function.
3357
3358 2000-11-24 Gerd Moellmann <gerd@gnu.org>
3359
3360 * xdisp.c (init_from_display_pos): If POS says we're already after
3361 an overlay string ending at POS, make sure to pop the iterator
3362 because it will be in front of that overlay string. When POS is
3363 ZV, we've thereby also ``processed'' overlay strings at ZV.
3364
3365 * xfaces.c (lface_from_face_name): Function comment fix.
3366
3367 2000-11-24 Miles Bader <miles@gnu.org>
3368
3369 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
3370 apply `mode-line-inverse-video' -- zero means force display using
3371 the default face, non-zero means display using the specialized face.
3372 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
3373
3374 2000-11-23 Kenichi Handa <handa@etl.go.jp>
3375
3376 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
3377 hard coded `4'.
3378
3379 2000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
3380
3381 * coding.c (decode_coding_emacs_mule): Fix the case of
3382 CODING_EOL_LF, which used uninitialized value of c.
3383
3384 2000-11-23 Stefan Monnier <monnier@cs.yale.edu>
3385
3386 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
3387
3388 2000-11-22 Gerd Moellmann <gerd@gnu.org>
3389
3390 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
3391 buffer object.
3392
3393 * frame.h (struct frame): Replace desired_tool_bar_items,
3394 current_tool_bar_items, n_desired_tool_bar_items,
3395 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
3396
3397 * frame.c (make_frame): Change initialization of tool bar
3398 items accordingly.
3399
3400 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
3401 Change references to members deleted from struct frame to use the
3402 new ones.
3403
3404 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
3405 references to members deleted from struct frame to use the new ones.
3406
3407 * dispnew.c (update_frame): Do nothing with frame's tool bar items.
3408
3409 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
3410
3411 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
3412 (note_tool_bar_highlight): Change references to members deleted
3413 from struct frame to use the new ones.
3414
3415 2000-11-23 Miles Bader <miles@gnu.org>
3416
3417 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
3418 the face's inverse-video attribute, rather than overriding it.
3419
3420 2000-11-22 Gerd Moellmann <gerd@gnu.org>
3421
3422 * xfns.c (x_set_tool_bar_lines): Clear internal border when
3423 making tool bar smaller.
3424
3425 2000-11-22 Dave Love <fx@gnu.org>
3426
3427 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
3428
3429 2000-11-22 Miles Bader <miles@gnu.org>
3430
3431 * keyboard.c (Vminibuffer_message_timeout): New variable.
3432 (command_loop_1): Use it to determine message timeout.
3433 (syms_of_keyboard): Initialize it.
3434
3435 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
3436
3437 2000-11-22 Kenichi Handa <handa@etl.go.jp>
3438
3439 * sysdep.c: Move the code for declaring h_errno after #include
3440 <netdb.h>.
3441
3442 2000-11-21 Gerd Moellmann <gerd@gnu.org>
3443
3444 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
3445 the menu bar when the tooltip is unmapped.
3446
3447 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
3448 sole visible buffer when we're currently in the mini-buffer, and
3449 give up if so.
3450
3451 2000-11-21 Jason Rumney <jasonr@gnu.org>
3452
3453 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
3454 put on the clipboard.
3455 (Fw32_get_clipboard_data): Compare data on clipboard with saved
3456 copy of what Emacs last put there. If they are the same, do not
3457 use the clipboard copy to avoid losing data due to coding conversions.
3458
3459 2000-11-22 Miles Bader <miles@gnu.org>
3460
3461 * minibuf.c (Vminibuffer_prompt_properties): New variable.
3462 (syms_of_minibuf): Initialize it.
3463 (read_minibuf): Add properties from Vminibuffer_prompt_properties
3464 to prompt, don't make read-only.
3465
3466 2000-11-21 Gerd Moellmann <gerd@gnu.org>
3467
3468 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>:
3469 Add BEFORE/AFTER_POTENTIAL_GC.
3470
3471 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
3472
3473 * buffer.c (mmap_free_1): Avoid a compiler warning.
3474
3475 * term.c, cm.c: Don't try to include termcap.h; see comment there.
3476
3477 2000-11-21 Kenichi Handa <handa@etl.go.jp>
3478
3479 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
3480 ... #endif scope.
3481
3482 2000-11-20 Gerd Moellmann <gerd@gnu.org>
3483
3484 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
3485 screen supports it.
3486
3487 * s/gnu-linux.h: Don't use `#cpu'.
3488
3489 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
3490 not defined in mman.h.
3491
3492 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New variables.
3493 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
3494 and store an index in the XClientMessageEvent. Storing a
3495 Lisp_Object or pointer can fail on a 64 bit system, since X only
3496 transfers 32 bits.
3497 (x_scroll_bar_to_input_event): Get the window from scroll_bar_windows.
3498
3499 2000-11-20 Dave Love <fx@gnu.org>
3500
3501 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
3502
3503 2000-11-20 Gerd Moellmann <gerd@gnu.org>
3504
3505 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
3506
3507 2000-11-20 Kenichi Handa <handa@etl.go.jp>
3508
3509 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
3510 by WIDTH.
3511
3512 * alloc.c (make_string): Fix previous change. Be sure to make
3513 unibyte string correctly.
3514
3515 2000-11-19 Gerd Moellmann <gerd@gnu.org>
3516
3517 * window.c (Fwindow_list): Change parameter list to be XEmacs
3518 compatible.
3519 (window_list_1): New function.
3520 (window_loop): Use it instead of Fwindow_list.
3521
3522 * sysdep.c (emacs_ospeed): New variable.
3523 (toplevel): Don't declare ospeed extern.
3524 (init_baud_rate): Use emacs_ospeed instead of ospeed.
3525
3526 * termcap.c (ospeed): Remove.
3527 (tputs) [!emacs]: Remove unused code.
3528 (tgetent): Avoid a compiler warning.
3529
3530 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
3531 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
3532 SCROLL_BAR_X_WIDGET with additional argument DPY.
3533
3534 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
3535 removed.
3536 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
3537 Take the X display as additional argument.
3538 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
3539 `Widget' is a pointer type that's not easily stored in Lisp_Object
3540 form in a portable way.
3541
3542 * dispnew.c (update_text_area): Fix last change.
3543
3544 2000-11-18 Gerd Moellmann <gerd@gnu.org>
3545
3546 * xdisp.c: Use BINDING_STACK_SIZE throughout.
3547
3548 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
3549 clear current matrices.
3550
3551 * buffer.c (mmap_enlarge): Don't print a message on stderr
3552 if mapping new memory at the end of the existing region fails.
3553
3554 * dispnew.c (update_text_area): Don't skip over equal glyphs
3555 when the last current glyph overlaps the glyph to its right.
3556
3557 2000-11-18 Miles Bader <miles@gnu.org>
3558
3559 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
3560 lines that *end* with "..." too (that's the most common case!).
3561
3562 2000-11-18 Gerd Moellmann <gerd@gnu.org>
3563
3564 * xdisp.c (resize_mini_window): Temporarily change to the
3565 mini-window's buffer if necessary.
3566
3567 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
3568 the tooltip obscures less text under it.
3569
3570 2000-11-17 Gerd Moellmann <gerd@gnu.org>
3571
3572 * puresize.h (BASE_PURESIZE): Increase to 700000.
3573
3574 2000-11-18 Jason Rumney <jasonr@gnu.org>
3575
3576 * w32term.c (w32_draw_bitmap): Use face to set colors.
3577
3578 2000-11-17 Dave Love <fx@gnu.org>
3579
3580 * lread.c (Fload): Fix #ifdef for pcc.
3581
3582 2000-11-17 Gerd Moellmann <gerd@gnu.org>
3583
3584 * xdisp.c (pos_visible_p): Compute the default character height
3585 differently.
3586
3587 2000-11-16 Gerd Moellmann <gerd@gnu.org>
3588
3589 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
3590 knowing the line's height; use the default font's height in that case.
3591
3592 * xfaces.c (weight_table): Add `demi' with the same meaning as
3593 `demibold'.
3594
3595 2000-11-16 Kenichi Handa <handa@etl.go.jp>
3596
3597 * dispnew.c (null_row): New global static variable.
3598 (clear_glyph_row): Delete local static variable null_row.
3599
3600 2000-11-15 Jason Rumney <jasonr@gnu.org>
3601
3602 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
3603 (w32_alloc_lighter_color): Use new brightness calculations from
3604 xterm.c. Scale delta to be in the range expected by W32.
3605 (w32_draw_relief_rect): Use frame relief colors.
3606
3607 2000-11-15 Gerd Moellmann <gerd@gnu.org>
3608
3609 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
3610 (Qinhibit_default_face_x_resources): New variable.
3611 (syms_of_frame): Initialize it.
3612 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
3613
3614 * xdisp.c (pos_visible_p): Improve function comment.
3615
3616 * lisp.h (BINDING_STACK_SIZE): New macro.
3617
3618 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
3619 reading the directory if readdir returns null and errno is EAGAIN
3620 or EINTR.
3621
3622 2000-11-14 Stefan Monnier <monnier@cs.yale.edu>
3623
3624 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
3625 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
3626 Set amount_to_scroll to max of dx and scroll_step so that
3627 scroll-conservatively doesn't defeat scroll-step>1.
3628 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
3629 scroll-conservatively for line-at-a-time scrolling.
3630
3631 2000-11-14 Gerd Moellmann <gerd@gnu.org>
3632
3633 * window.c (Fpos_visible_in_window_p): Call pos_visible with
3634 extra argument.
3635
3636 * xdisp.c (current_mode_line_height, current_header_line_height):
3637 New variables.
3638 (init_xdisp): Initialize them.
3639 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
3640 and use exact mode line heights if it is set.
3641
3642 * lisp.h (pos_visible_p): Change prototype.
3643
3644 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
3645 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
3646 and current_header_line_height first.
3647 (current_mode_line_height, current_header_line_height):
3648 Declare extern.
3649
3650 2000-11-14 Miles Bader <miles@lsi.nec.co.jp>
3651
3652 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
3653 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
3654 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
3655
3656 2000-11-14 Miles Bader <miles@gnu.org>
3657
3658 * xterm.c (x_alloc_lighter_color): Include an additive component
3659 too for dark colors, because FACTOR isn't enough.
3660 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
3661 New macros.
3662
3663 2000-11-13 Gerd Moellmann <gerd@gnu.org>
3664
3665 * keyboard.c (show_help_echo): Call message3_nolog with number of
3666 bytes in the help string as 2nd parameter, instead of the number
3667 of characters.
3668
3669 2000-11-13 Miles Bader <miles@gnu.org>
3670
3671 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
3672 (Fload): Use new openp return protocol.
3673 Don't try to use Vload_source_file_function to load .elc files.
3674 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
3675 openp return protocol.
3676 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
3677
3678 2000-11-11 Kenichi Handa <handa@etl.go.jp>
3679
3680 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
3681
3682 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
3683 Defined these macros.
3684 (NLIST_STRUCT): Avoid re-defining it.
3685
3686 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
3687 -I/usr/contrib/X11R6/include.
3688 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
3689
3690 2000-11-10 Jason Rumney <jasonr@gnu.org>
3691
3692 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
3693
3694 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
3695 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
3696
3697 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
3698 (Qw32_charset_vietnamese): New symbol.
3699 (xlfd_charset_of_font): New function.
3700 (w32_load_system_font): Use it.
3701 (x_to_w32_charset): Use Fassoc to find charset info. Special case
3702 when Vw32_charset_info_alist is nil to ensure default face always
3703 has font. Use Fcar and Fcdr for safety.
3704 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
3705 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
3706 pseudo-codepages for special cases.
3707 (w32_to_x_font): New parameter to allow charset portion to be
3708 specified where there is many to one mapping. Callers changed.
3709 (w32_list_fonts): Avoid listing fonts that won't display.
3710
3711 2000-11-10 Gerd Moellmann <gerd@gnu.org>
3712
3713 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
3714 (font_list_1): Renamed from font_list.
3715 (font_list): New function, trying alternative registries from
3716 Vface_alternative_font_registry_alist.
3717 (Finternal_set_alternative_font_registry_alist): New function.
3718 (syms_of_xfaces): Initialize and Staticpro
3719 Vface_alternative_font_registry_alist.
3720 Defsubr Finternal_set_alternative_font_registry_alist.
3721
3722 2000-11-09 Ken Raeburn <raeburn@gnu.org>
3723
3724 * lisp.h (Flooking_at): Declare.
3725
3726 2000-11-09 Gerd Moellmann <gerd@gnu.org>
3727
3728 * dired.c (directory_files_internal): Fix a braino.
3729
3730 * dired.c (directory_files_internal): Add missing GCPRO's.
3731 Some cleanup.
3732
3733 2000-11-08 Gerd Moellmann <gerd@gnu.org>
3734
3735 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
3736 (resize_mini_window): Return quickly if Vresize_mini_window is
3737 nil. Don't return if Vmax_mini_window_height is nil.
3738
3739 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
3740 (syms_of_xdisp): Initialize them.
3741 (resize_mini_window): Act according to the setting of
3742 Vresize_mini_window.
3743 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
3744
3745 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
3746 scroll bar widget after configuring it, so that it will appear at
3747 the right position from the start.
3748 (XTredeem_scroll_bar): Cleaned up.
3749
3750 2000-11-08 Kenichi Handa <handa@etl.go.jp>
3751
3752 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
3753 font is taller than the frame line, we don't have to bias the
3754 division by two.
3755
3756 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
3757
3758 2000-11-07 Dave Love <fx@gnu.org>
3759
3760 * config.in (HAVE_MKSTEMP): Add.
3761
3762 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
3763
3764 2000-11-07 Gerd Moellmann <gerd@gnu.org>
3765
3766 * window.c (Fset_window_configuration): Don't try to preserve
3767 point in the current buffer, if that buffer is displayed in more
3768 than one window.
3769
3770 * xfaces.c (lookup_named_face): If default face isn't realized,
3771 try to realize it. Return -1 if not successful.
3772 (Fx_list_fonts): Handle case that face cannot be determined.
3773 (Fface_font): Likewise.
3774
3775 2000-11-06 Gerd Moellmann <gerd@gnu.org>
3776
3777 * window.c (displayed_window_lines): Detect partially
3778 visible lines at the bottom correctly.
3779
3780 2000-11-06 Stefan Monnier <monnier@cs.yale.edu>
3781
3782 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
3783 when ensuring we don't do visit in indirect buffer.
3784
3785 2000-11-06 Kenichi Handa <handa@etl.go.jp>
3786
3787 * composite.h (compose_chars_in_text): Add prototype.
3788
3789 * composite.c (Vcomposition_function_table): New variable.
3790 (Qcomposition_function_table): New variable.
3791 (run_composition_function): Call
3792 Vcompose_chars_after_function with three arguments.
3793 (compose_chars_in_text): New function.
3794 (syms_of_composite): Modified the doc-string of
3795 Vcompose_chars_after_function. Declare composition-function-table
3796 as a lisp variable, and initialize it.
3797
3798 * xfns.c (x_encode_text): Suppress producing escape sequences for
3799 composition.
3800
3801 * xselect.c: Include composite.h.
3802 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
3803
3804 2000-11-05 Andrew Innes <andrewi@gnu.org>
3805
3806 * w32term.c (x_produce_glyphs): Fix typo in enum name.
3807
3808 * sysdep.c (read_input_waiting): Remove extraneous argument to
3809 read_socket_hook.
3810
3811 * w32fns.c (Fx_server_version): Include w32_build_number in the
3812 return list.
3813
3814 * w32heap.c (w32_build_number): New variable.
3815 (cache_system_info): Set it.
3816
3817 * w32heap.h (w32_build_number): Add extern.
3818
3819 * emacs.c (syms_of_emacs): Update docstring for
3820 system-configuration, to reflect the actual usage on MS-Windows.
3821
3822 2000-10-31 Gerd Moellmann <gerd@gnu.org>
3823
3824 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
3825 process idle timers while waiting for another event.
3826
3827 * dispnew.c (update_frame_line): Handle case where spaces in
3828 the default face are colored.
3829
3830 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
3831 window height hasn't changed.
3832
3833 2000-10-31 Jason Rumney <jasonr@gnu.org>
3834
3835 * w32term.c (x_produce_glyphs): Handle composite characters.
3836 (x_draw_glyph_string_foreground)
3837 (x_draw_composite_glyph_string_foreground): Restore old font.
3838
3839 2000-10-31 Miles Bader <miles@lsi.nec.co.jp>
3840
3841 * minibuf.c (read_minibuf): Reset the undo history just before
3842 starting the recursive-edit.
3843
3844 2000-10-30 Gerd Moellmann <gerd@gnu.org>
3845
3846 * xfaces.c (menu_face_change_count): New variable.
3847 (Finternal_set_lisp_face_attribute): Increment it for changes
3848 of the `menu' face.
3849 (realize_basic_faces): Reflect changes in the `menu' faces
3850 in menu bars.
3851
3852 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
3853 dy obtained from the iterator's y-position after moving from
3854 scroll_margin_pos to PT; see comment there.
3855
3856 * xdisp.c (safe_eval_handler): Call add_to_log.
3857
3858 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
3859 is not a symbol or string.
3860
3861 * xdisp.c (echo_area_display): Don't perform a display update from
3862 inside redisplay. The update will happen anyway at the end of
3863 redisplay, and it can confuse redisplay (GC messages while
3864 redisplaying, for instance.)
3865
3866 2000-10-30 Stefan Monnier <monnier@cs.yale.edu>
3867
3868 * xrdb.c (x_load_resources): Use the class name in the defaults.
3869
3870 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
3871 (regex_compile): Catch bogus \(\1\).
3872
3873 2000-10-30 Gerd Moellmann <gerd@gnu.org>
3874
3875 * xterm.c (x_alloc_nearest_color): Fix last change to compare
3876 RGB values.
3877
3878 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
3879 we have a color cache, check that the cached color equals the
3880 allocated color. If not, clear the color cache.
3881
3882 * window.c (displayed_window_lines): Change buffers if necessary.
3883 Fix computation of displayed lines.
3884
3885 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
3886 update_menu_bindings to DEFVAR_BOOL.
3887
3888 2000-10-30 Kenichi Handa <handa@etl.go.jp>
3889
3890 * search.c (Fset_match_data): Be sure to make search_regs always sane.
3891
3892 * puresize.h (BASE_PURESIZE): Increase to 680000.
3893
3894 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
3895
3896 2000-10-29 Jason Rumney <jasonr@gnu.org>
3897
3898 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
3899
3900 * w32term.c (w32_bdf_per_char_metric): Negate descent.
3901 (w32_cache_char_metrics): Handle possibility that 'x' does not
3902 exist in a BDF font.
3903 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
3904
3905 * w32bdf.h (bdffont): Add nchars.
3906
3907 * w32bdf.c (set_bdf_font_info): Set it.
3908 (w32_BDF_TextOut): Swap byte order of double byte characters.
3909 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
3910
3911 2000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
3912
3913 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
3914 don't override the colors in frame's param_alist, unless they are
3915 unspecified.
3916
3917 * term.c (reassert_line_highlight): If inverse_video is non-zero,
3918 reverse the effect of the highlight flag.
3919
3920 2000-10-27 Ken Raeburn <raeburn@gnu.org>
3921
3922 * window.h (Fwindow_live_p): Declare.
3923
3924 * undo.c (record_delete): Check that last_undo_buffer is really a
3925 buffer before applying XBUFFER to it.
3926
3927 * keymap.c (where_is_internal): Pass lisp object, not integer, to
3928 Faref.
3929
3930 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
3931
3932 * lisp.h (KEYMAPP): New macro.
3933 (get_keymap): Remove.
3934 (get_keymap_1): Rename get_keymap.
3935
3936 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
3937
3938 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
3939
3940 * xmenu.c (single_submenu): Use KEYMAPP.
3941 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
3942 Use KEYMAPP rather than Fkeymapp.
3943
3944 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
3945
3946 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
3947 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
3948 Use KEYMAPP rather than Fkeymapp.
3949 (single_submenu): Use KEYMAPP.
3950 (w32_menu_show, w32_dialog_show): Use TRUE.
3951
3952 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
3953
3954 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
3955 (Fkeymapp): Use KEYMAPP.
3956 (get_keymap): Rename from get_keymap_1. Remove old def.
3957 Return t when autoload=0 and error=0 and the keymap needs autoloading.
3958 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
3959 (Fminor_mode_key_binding): Don't raise an error if the binding
3960 is not a keymap.
3961 (Fuse_global_map, Fuse_local_map): Allow autoloading.
3962 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
3963
3964 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
3965 Allow Vspecial_event_map to be autoloaded.
3966 (menu_bar_items): Fetch the keymap rather than using keymapp.
3967 (menu_bar_one_keymap): No need to follow func-indirect any more.
3968 (parse_menu_item): get_keymap_1 -> get_keymap.
3969 (tool_bar_items): Fetch the keymap rather than using keymapp.
3970 (read_key_sequence): Use KEYMAPP.
3971
3972 * intervals.c (get_local_map): Use get_keymap rather than following
3973 function-indirections explicitly.
3974
3975 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
3976
3977 2000-10-27 Jason Rumney <jasonr@gnu.org>
3978
3979 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
3980 point, as Windows has oversized fonts.
3981
3982 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
3983
3984 2000-10-27 Gerd Moellmann <gerd@gnu.org>
3985
3986 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
3987 (freehook, reallochook): Handle null pointer arguments.
3988 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
3989
3990 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
3991
3992 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
3993 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
3994 Giving in to popular pressure to shut up the compiler with casts.
3995
3996 2000-10-27 Gerd Moellmann <gerd@gnu.org>
3997
3998 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
3999 signed value, and use a default value computed from the font's
4000 maximum descent.
4001
4002 2000-10-27 Miles Bader <miles@lsi.nec.co.jp>
4003
4004 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
4005 that specify a negative underline position can still use underlines.
4006
4007 * window.c (Fpos_visible_in_window_p): Make POS default to
4008 WINDOW's point, not the current buffer's point.
4009
4010 2000-10-26 Dave Love <fx@gnu.org>
4011
4012 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
4013 when it's necessary.
4014
4015 2000-10-26 Gerd Moellmann <gerd@gnu.org>
4016
4017 * window.c (size_window): Compute size difference from sum of old
4018 child window sizes instead of from parent's size.
4019
4020 * xdisp.c (pos_visible_p): Change current buffer if necessary.
4021 Handle obscured lines at the top of the window.
4022
4023 * frame.c (Fdelete_frame): Doc fix. Move running the hook
4024 down after the last error condition check.
4025
4026 * frame.c (Fdelete_frame): Run delete-frame-hook.
4027
4028 2000-10-26 Kenichi Handa <handa@etl.go.jp>
4029
4030 * coding.c (decode_coding): Fix previous change (check also
4031 CODING_MODE_LAST_BLOCK).
4032
4033 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
4034
4035 * regex.c: More `unsigned char' -> `re_char' changes.
4036 Also change several `int' into `re_wchar_t'.
4037 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
4038 (PUSH_FAILURE_POINTER): Don't cast any more.
4039 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
4040 We want GCC to complain, since this piece of code makes
4041 re_match non-reentrant, which *should* be fixed.
4042 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
4043 (EXTEND_BUFFER): Use RETALLOC.
4044 (SET_LIST_BIT): Don't cast.
4045 (re_wchar_t): New type.
4046 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
4047 that those two functions will always properly return.
4048 (IMMEDIATE_QUIT_CHECK): Cast to void.
4049 (analyse_first): Use recursion rather than an explicit stack.
4050 (re_compile_fastmap): Can't fail anymore.
4051 (re_search_2): Don't check re_compile_fastmap for failure.
4052 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
4053 Now also sets the new value (passed in a new argument).
4054 (re_match_2_internal): Use it.
4055 Also, use a new var `reg' of type size_t when looping through regs
4056 rather than reuse the inappropriate `mcnt'.
4057
4058 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
4059 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
4060 (where_is_internal): Renamed from Fwhere_is_internal.
4061 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
4062 (Fwhere_is_internal): New function wrapping where_is_internal.
4063 (where_is_internal_1): Handle the case where we're filling the cache.
4064 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
4065
4066 2000-10-25 Miles Bader <miles@gnu.org>
4067
4068 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
4069
4070 2000-10-25 Gerd Moellmann <gerd@gnu.org>
4071
4072 * window.c (pos_fully_visible_p): Removed.
4073 (Fpos_visible_in_window_p): Use pos_visible_p to determine
4074 if position is visible and/or fully visible.
4075
4076 * lisp.h (pos_visible_p): Add prototype.
4077
4078 * xdisp.c (pos_visible_p): New function.
4079
4080 2000-10-25 Kenichi Handa <handa@etl.go.jp>
4081
4082 * process.c (send_process): If OBJECT is t, it means that the data
4083 is from C string, but we should encode it. Before calling
4084 setup_raw_text_coding_system, be sure to flush out data by the
4085 previous coding system.
4086
4087 2000-10-25 Miles Bader <miles@lsi.nec.co.jp>
4088
4089 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
4090 assignment of startpos to prev when startpos == pos.
4091
4092 * editfns.c (find_field): Set the field stickiness correctly from
4093 overlay fields. Use renamed `text_property_stickiness'.
4094 (text_property_stickiness): Renamed from `char_property_stickiness'.
4095 Only check text properties, not overlays.
4096 * textprop.c (get_char_property_and_overlay): New function.
4097 (Fget_char_property): Use it.
4098 * intervals.h (get_char_property_and_overlay): Add declaration.
4099
4100 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
4101
4102 * keymap.c: Use AREF, ASET and ASIZE macros.
4103 (Fmake_sparse_keymap): Docstring fix.
4104 (synkey): Remove.
4105 (shadow_lookup): Move up.
4106 Handle the case where lookup-key returns an integer.
4107 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
4108 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
4109 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
4110 Simplify/rewrite the keymap-finding code.
4111 Add check for command shadowing, using shadow_lookup.
4112
4113 2000-10-24 Stefan Monnier <monnier@cs.yale.edu>
4114
4115 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
4116 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
4117 a symbol.
4118
4119 2000-10-24 Andrew Innes <andrewi@gnu.org>
4120
4121 * dired.c (directory_files_internal_unwind): New function.
4122 (directory_files_internal): Use it to ensure closedir is called
4123 even if expand-file-name or file-attributes throw, eg. because of
4124 a user interrupt. Also enable immediate_quit while calling
4125 re_search, so that matching can be interrupted as well.
4126
4127 2000-10-24 Andrew Innes <andrewi@gnu.org>
4128
4129 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
4130 NT-Emacs only.
4131 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
4132 so that re_search functions only quit when callers expect them to.
4133
4134 2000-10-24 Kenichi Handa <handa@etl.go.jp>
4135
4136 * regex.c (regex_compile): Change the way of handling a range from
4137 a char less than 256 to a char not less than 256.
4138
4139 2000-10-24 Gerd Moellmann <gerd@gnu.org>
4140
4141 * window.c (size_window): Prevent setting window's width or
4142 height to a negative value (esp. with XSETFASTINT).
4143
4144 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
4145 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
4146 (protect_malloc_state) [GC_MALLOC_CHECK &&
4147 GC_PROTECT_MALLOC_STATE]: New function.
4148 (PROTECT_MALLOC_STATE): New macro.
4149 (__malloc_initialize, morecore, _malloc_internal)
4150 (_free_internal) _realloc_internal): Use it to make _heapinfo
4151 read-only outside of gmalloc.
4152
4153 * keymap.c: Update copyright.
4154
4155 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
4156 a symbol.
4157
4158 2000-10-24 Colin Walters <walters@cis.ohio-state.edu>
4159
4160 * filelock.c (unlock_all_files): Use unlock_file to expand each
4161 buffer's file_truename before trying remove its lock file.
4162
4163 2000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
4164
4165 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
4166 or CRLF, decode EOLs.
4167
4168 2000-10-24 Kenichi Handa <handa@etl.go.jp>
4169
4170 * window.c (Fdisplay_buffer): Fix doc.
4171
4172 2000-10-23 Jason Rumney <jasonr@gnu.org>
4173
4174 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
4175 ASCII font of default fontset on Windows.
4176
4177 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
4178 xterm.c comment below).
4179
4180 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
4181
4182 2000-10-23 Gerd Moellmann <gerd@gnu.org>
4183
4184 * xterm.c (x_connection_closed): Reset handling_signal.
4185
4186 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing null.
4187
4188 2000-10-23 Miles Bader <miles@gnu.org>
4189
4190 * window.c (window_scroll_pixel_based, window_scroll_line_based):
4191 Pass nil for FULLY argument to Fpos_visible_in_window_p to
4192 maintain old behavior.
4193 * minibuf.c (Fminibuffer_complete): Likewise.
4194
4195 2000-10-23 Miles Bader <miles@lsi.nec.co.jp>
4196
4197 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
4198 that when a font can't be exactly centered, it errs up rather than
4199 down.
4200
4201 2000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
4202
4203 * fns.c (Fbase64_decode_string): The decoded result should be unibyte.
4204
4205 2000-10-23 Andrew Choi <akochoi@i-cable.com>
4206
4207 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
4208
4209 * dispnew.c [macintosh]: Include macterm.h.
4210 (init_display) [macintosh]: Initialization for window system.
4211
4212 * emacs.c (main) [macintosh]: Call syms_of_textprop,
4213 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
4214 syms_of_search, x_term_init, and init_keyboard before calling
4215 init_window_once. Also, call syms_of_xmenu.
4216
4217 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
4218 default fontset to Monaco.
4219
4220 * frame.c [macintosh]: Include macterm.h. Remove declarations of
4221 NewMacWindow and DisposeMacWindow.
4222 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
4223 instead of calling NewMacWindow and setting fields of
4224 f->output_data.mac directly. Call init_frame_faces.
4225 (Fdelete_frame) [macintosh]: Remove unused code.
4226 (Fmodify_frame_parameters) [macintosh]: Call
4227 x_set_frame_parameters instead of mac_set_frame_parameters.
4228
4229 * frame.h [macintosh]: Define menu_bar_lines field in struct
4230 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
4231
4232 * keyboard.c [macintosh]: Include macterm.h.
4233 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
4234 and menu_bar_activate_event type events as for X and NT.
4235 (make_lispy_event) [macintosh]: Construct lisp events of type
4236 MENU_BAR_EVENT as for X and NT.
4237
4238 * sysdep.c [macintosh]: Remove declaration for sys_signal.
4239 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
4240 (sys_subshell) [macintosh]: Remove definition entirely.
4241 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
4242 Vwindow_system_version here. Remove initialization of
4243 Vx_bitmap_file_path.
4244 (read_input_waiting): Correct the number of parameters passed to
4245 read_socket_hook.
4246 Move all Macintosh functions to mac/mac.c.
4247
4248 * term.c [macintosh]: Include macterm.h.
4249
4250 * window.c [macintosh]: Include macterm.h.
4251
4252 * xdisp.c [macintosh]: Include macterm.h. Declare
4253 set_frame_menubar and pending_menu_activation.
4254 (echo_area_display) [macintosh]: Do not return if terminal frame
4255 is the selected frame.
4256 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
4257 Allow only the selected frame to set menu bar.
4258 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
4259 calling FRAME_EXTERNAL_MENU_BAR (f).
4260 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
4261
4262 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
4263 and check_x. Declare XCreateGC. Define x_create_gc and
4264 x_free_gc. Initialize font_sort_order.
4265 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
4266 but call x_list_fonts instead of w32_list_fonts.
4267 (Finternal_face_x_get_resource) [macintosh]: Do not call
4268 display_x_get_resource.
4269 (prepare_face_for_display) [macintosh]: Set xgcv.font.
4270 (realize_x_face) [macintosh]: Load the font if it is specified in
4271 ATTRS.
4272 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed to Qt.
4273
4274 2000-10-22 Stefan Monnier <monnier@cs.yale.edu>
4275
4276 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
4277 is nil: since we go to the end of submap anyway, we'd end up
4278 setting nil to nil.
4279 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
4280 doesn't obey autoload.
4281
4282 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
4283
4284 * msdos.c (dos_set_window_size): Update screen dimension variables.
4285
4286 2000-10-21 Jason Rumney <jasonr@gnu.org>
4287
4288 * w32term.c (w32_cache_char_metrics): Double check that font is
4289 really fixed pitch before trusting tmPitchAndFamily.
4290
4291 2000-10-21 Andrew Innes <andrewi@gnu.org>
4292
4293 * w32gui.h (w32_char_font_type): Move enum from w32term.c
4294
4295 * w32term.h: Extern decl for w32_cache_char_metrics.
4296
4297 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
4298
4299 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
4300 (w32_unload_font): Free per_char array if present.
4301
4302 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
4303 cached information in emulated XFontStruct to handle common cases
4304 quickly. Do not allocate XCharStruct for return.
4305 (w32_native_per_char_metric): New function.
4306 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
4307 allocating one.
4308 (x_produce_glyphs): Don't get an HDC. Change calls to
4309 w32_per_char_metric to match arg change above. Remove calls to
4310 free results.
4311 (w32_get_glyph_overhangs): Ditto.
4312 (w32_cache_char_metrics): New function.
4313
4314 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
4315 ($(BLD)/casefiddle.$(O)): Remove compile command.
4316 ($(BLD)/gmalloc.$(O)): Remove compile command.
4317 ($(BLD)/dispnew.obj):
4318 ($(BLD)/keyboard.obj):
4319 ($(BLD)/w32inevt.obj):
4320 ($(BLD)/w32bdf.obj):
4321 ($(BLD)/alloc.obj):
4322 ($(BLD)/buffer.obj):
4323 ($(BLD)/editfns.obj):
4324 ($(BLD)/emacs.obj):
4325 ($(BLD)/fileio.obj):
4326 ($(BLD)/fns.obj):
4327 ($(BLD)/indent.obj):
4328 ($(BLD)/insdel.obj):
4329 ($(BLD)/intervals.obj):
4330 ($(BLD)/minibuf.obj):
4331 ($(BLD)/print.obj):
4332 ($(BLD)/scroll.obj):
4333 ($(BLD)/sysdep.obj):
4334 ($(BLD)/textprop.obj):
4335 ($(BLD)/widget.obj):
4336 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
4337 ($(BLD)/term.obj): Add dependency on dispextern.h.
4338
4339 * makefile.nt ($(BLD)\dispnew.obj):
4340 ($(BLD)\keyboard.obj):
4341 ($(BLD)\w32inevt.obj):
4342 ($(BLD)\w32bdf.obj):
4343 ($(BLD)\alloc.obj):
4344 ($(BLD)\buffer.obj):
4345 ($(BLD)\editfns.obj):
4346 ($(BLD)\emacs.obj):
4347 ($(BLD)\fileio.obj):
4348 ($(BLD)\fns.obj):
4349 ($(BLD)\indent.obj):
4350 ($(BLD)\insdel.obj):
4351 ($(BLD)\intervals.obj):
4352 ($(BLD)\minibuf.obj):
4353 ($(BLD)\print.obj):
4354 ($(BLD)\scroll.obj):
4355 ($(BLD)\sysdep.obj):
4356 ($(BLD)\textprop.obj):
4357 ($(BLD)\widget.obj):
4358 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
4359 ($(BLD)\term.obj): Add dependency on dispextern.h
4360
4361 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
4362
4363 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
4364 with an additional argument of Qt.
4365
4366 2000-10-21 Miles Bader <miles@gnu.org>
4367
4368 * window.c (pos_fully_visible_in_window_p): New function.
4369 (Fpos_visible_in_window_p): Add FULLY argument.
4370 Use pos_fully_visible_in_window_p.
4371 (window_scroll_pixel_based, window_scroll_line_based): Update
4372 calls to Fpos_visible_in_window_p.
4373 * lisp.h (Fpos_visible_in_window_p): Update prototype
4374
4375 2000-10-20 Gerd Moellmann <gerd@gnu.org>
4376
4377 * alloc.c (toplevel): Conditionalize compilation of mem_*
4378 functions differently.
4379
4380 2000-10-20 Jason Rumney <jasonr@gnu.org>
4381
4382 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
4383 mem_init where it used to be. mem_z etc not defined otherwise.
4384
4385 2000-10-20 Gerd Moellmann <gerd@gnu.org>
4386
4387 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
4388 GC_MALLOC_CHECK.
4389 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
4390 structure definition and related variabled to the top of the file.
4391 Include this code when GC_MALLOC_CHECK is defined.
4392 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
4393 register/unregister allocated region.
4394 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
4395 which isn't allocated.
4396 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
4397 something which is already in use.
4398 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
4399 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
4400 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
4401 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
4402
4403 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
4404 _malloc_internal instead of malloc.
4405 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
4406 of free.
4407
4408 2000-10-20 Andrew Innes <andrewi@gnu.org>
4409
4410 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
4411 Windows.
4412 (my_strftime) <macro>: Don't use macro arg list when redefining as
4413 _strftime_copytm.
4414 (my_strftime) <function>: Supply 0 as ut argument.
4415
4416 2000-10-19 Jason Rumney <jasonr@altavista.net>
4417
4418 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
4419 including dispextern.h, as it stops faces from working.
4420
4421 * w32fns.c (Fx_create_frame): Don't bother calling
4422 face-set-after-frame-default since the caller does it for us
4423 anyway. Clean up calls to x_get_arg to be consistent with X.
4424
4425 * w32term.c (x_produce_glyphs): Handle
4426 unibyte_display_via_language_environment correctly.
4427 (w32_draw_box_rect): Fix the calculation of width and height.
4428
4429 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
4430 as it has stopped working.
4431 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
4432 menu-bar.
4433
4434 2000-10-19 Gerd Moellmann <gerd@gnu.org>
4435
4436 * eval.c (skip_debugger): Prevent a compiler warning.
4437 (Fcondition_case): Likewise.
4438 (Fbacktrace_frame): Use a null interactive spec.
4439
4440 2000-10-19 Kenichi Handa <handa@etl.go.jp>
4441
4442 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
4443
4444 2000-10-18 Gerd Moellmann <gerd@gnu.org>
4445
4446 * strftime.c: Sync with glibc, file version 1.78.
4447 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
4448 should no longer be used according to ISO 8601.
4449
4450 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
4451 no map for meta_prefix_char, don't try to use it as a keymap.
4452 Instead, if T_OK is non-zero, look up a default binding, if any,
4453 otherwise, if T_OK is zero, return nil.
4454
4455 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
4456 (x_to_xcolors, png_load): Use x_query_color.
4457
4458 * xterm.c (x_color_cells, x_query_colors, x_query_color):
4459 New functions.
4460 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
4461 which can be slow.
4462 (x_copy_color, x_alloc_lighter_color): Likewise.
4463
4464 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
4465 (x_query_color, x_query_colors): Add prototype.
4466
4467 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
4468 check_string_bytes only if not noninteractive, increase count to 50.
4469
4470 2000-10-18 Miles Bader <miles@lsi.nec.co.jp>
4471
4472 * insdel.c (adjust_markers_for_delete): Handle before-insertion
4473 markers correctly.
4474
4475 2000-10-17 Gerd Moellmann <gerd@gnu.org>
4476
4477 * alloc.c (pure_bytes_used): Renamed from pureptr.
4478 (ALIGN): New macro.
4479 (pure_alloc): New function.
4480 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
4481 Use it.
4482 (Fpurecopy): Use PURE_POINTER_P.
4483
4484 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
4485 PT has moved backward.
4486
4487 * xdisp.c (cursor_row_p): Take continued lines into account.
4488
4489 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
4490 string's size_byte.
4491 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
4492 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
4493 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
4494 string allocated.
4495
4496 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
4497 of selective display off while searching for the next line start.
4498
4499 2000-10-17 Kenichi Handa <handa@etl.go.jp>
4500
4501 * Makefile.in (term.o): Depend on dispextern.h.
4502
4503 2000-10-16 Stefan Monnier <monnier@cs.yale.edu>
4504
4505 * keymap.c (keymap_memberp): Ensure that nil is not a member.
4506
4507 2000-10-16 Gerd Moellmann <gerd@gnu.org>
4508
4509 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
4510 the iterator at the beginning, so that they can be set later on,
4511 for instance in reseat_at_next_visible_line_start, without being
4512 overwritten.
4513
4514 * xfns.c (pbm_format): Add :foreground and :background keywords.
4515 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
4516 (xbm_load): Recognize foreground and background color specifications.
4517
4518 2000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
4519
4520 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
4521
4522 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern declaration.
4523
4524 * msdos.c (IT_set_face): Compare highlighted face with the default
4525 face, and invert colors if these faces' colors are identical.
4526 (Fmsdos_remember_default_colors): Don't swap foreground and
4527 background colors in initial_colors[].
4528 (IT_set_frame_parameters): Don't swap frame's foreground and
4529 background pixels. If ALIST includes "(reverse . t)", swap
4530 foreground-color and background-color properties in frame's
4531 param_alist. If the original frame's param_alist doesn't specify
4532 the colors, store unspecified-fg and unspecified-bg, reversed if
4533 required.
4534
4535 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
4536 the colors are unspecified and reversed, reverse fore- and back-
4537 ground in the returned value.
4538 (Fframe_parameter): Ditto.
4539
4540 2000-10-16 Gerd Moellmann <gerd@gnu.org>
4541
4542 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
4543 get_last_unchanged_at_beg_row.
4544 (find_first_unchanged_at_end_row): Renamed from
4545 get_first_unchanged_at_end_row.
4546 (find_first_unchanged_at_end_row): Convert assertions to
4547 unconditional tests which abort. When looking for a row in
4548 unchanged text, don't go further back than first_text_row.
4549
4550 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
4551 Don't add in the last line's height when deciding if the new
4552 position is below the scroll margin.
4553
4554 2000-10-16 Miles Bader <miles@gnu.org>
4555
4556 * editfns.c (Fconstrain_to_field): Check carefully for field
4557 boundaries if either OLD_POS or NEW_POS has a non-nil field
4558 property, even if they're the same.
4559
4560 2000-10-16 Kenichi Handa <handa@etl.go.jp>
4561
4562 * xterm.c (x_draw_box_rect): Fix the calculation of width and
4563 height for XFillRectangle.
4564
4565 2000-10-15 Stefan Monnier <monnier@cs.yale.edu>
4566
4567 * syntax.c (Fstring_to_syntax): New function extracted from
4568 Fmodify_syntax_entry.
4569 (Fmodify_syntax_entry): Use it and document the ! and | fences.
4570 (skip_chars, Fforward_comment): Remove unused variables.
4571 (syms_of_syntax): Add defsubr for string-to-syntax.
4572 (describe_syntax): Add code for comment and string fences.
4573
4574 2000-10-14 Stefan Monnier <monnier@cs.yale.edu>
4575
4576 * keymap.c (access_keymap): Add AUTOLOAD parameter.
4577 Do the meta->esc mapping. Call get_keyelt before returning.
4578 Start scanning from the second element (the first is always `keymap')
4579 to make it easier to detect when we reach a parent map.
4580 Handle the case of inheriting from a symbol whose function is a map.
4581 (Fkeymap_parent): Also handle the `inherit from symbol' case.
4582 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
4583 (get_keyelt, Flookup_key): Update call to access_keymap.
4584 Remove the meta->esc mappings.
4585 (define_as_prefix): Delete old disabled code.
4586 (menu_item_p): New function.
4587 (where_is_internal_1): Skip over the few remaining menu items.
4588 * lisp.h (access_keymap): Update prototype.
4589 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
4590 Update call to access_keymap.
4591 (follow_key, read_key_sequence): Update calls to access_keymap.
4592 Remove the meta->esc mappings.
4593
4594 2000-10-13 Gerd Moellmann <gerd@gnu.org>
4595
4596 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
4597 with additional argument.
4598
4599 * xdisp.c (cursor_row_p): New function.
4600 (try_cursor_movement, display_line): Use it.
4601
4602 * xdisp.c (append_space): Also save/restore iterator's current
4603 character and its length.
4604
4605 * xdisp.c (init_from_display_pos): Add an assertion.
4606 (handle_stop): Don't set iterator's add_overlay_start.
4607 (handle_invisible_prop): Likewise.
4608 (load_overlay_strings): If text under an overlay is invisible,
4609 take both before- and after-strings into account when the iterator
4610 is positioned either at the start or at the end of the overlay.
4611 (forward_to_next_line_start): Rewritten.
4612 (reseat_at_next_visible_line_start): Rewritten.
4613 (set_iterator_to_next): Add parameter RESEAT_P.
4614
4615 * dispextern.h (struct it): Remove member add_overlay_start.
4616 (set_iterator_to_next): Change prototype.
4617
4618 2000-10-13 Kenichi Handa <handa@etl.go.jp>
4619
4620 * coding.c (code_convert_region): Be sure to initialize
4621 coding->category_idx.
4622 (decode_coding_string): Set coding->src_multibyte and
4623 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
4624 (encode_coding_string): Set coding->src_multibyte and
4625 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
4626
4627 2000-10-12 Stefan Monnier <monnier@cs.yale.edu>
4628
4629 * xfns.c (Fx_create_frame): Don't bother calling
4630 face-set-after-frame-default since the caller does it for us anyway.
4631
4632 2000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
4633
4634 * window.c (coordinates_in_window): Fix detection of vertical line
4635 on character terminals.
4636
4637 2000-10-12 Gerd Moellmann <gerd@gnu.org>
4638
4639 * editfns.c (save_excursion_save): Additionally record the
4640 selected window.
4641 (save_excursion_restore): If buffer was visible in a window, and a
4642 different window was selected, and the old selected window is
4643 still live, restore point in that window.
4644
4645 2000-10-12 Kenichi Handa <handa@etl.go.jp>
4646
4647 * xterm.c (x_produce_glyphs): Handle
4648 unibyte_display_via_language_environment correctly.
4649
4650 * regex.c (regex_compile): Change the way of handling a range from
4651 unibyte char to multibyte char.
4652
4653 * syntax.c (skip_chars): Change the way of handling a range from
4654 unibyte char to multibyte char.
4655
4656 * process.c (read_process_output): Cancel previous change.
4657
4658 2000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
4659
4660 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
4661
4662 * charset.c (Ffind_charset_string): Doc fix.
4663 (Ffind_charset_region): Doc fix.
4664
4665 2000-10-11 Kenichi Handa <handa@mule.m17n.org>
4666
4667 * process.c (read_process_output): Fix previous change. Adjust
4668 multibyteness of text to insert in a buffer by
4669 string_make_unibyte/multibyte instead of Fstring_as_unibyte/multibyte.
4670
4671 2000-10-10 Andreas Schwab <schwab@suse.de>
4672
4673 * alloc.c (mark_object): Remove all workarounds installed on
4674 1993-08-08.
4675
4676 2000-10-10 Kenichi Handa <handa@etl.go.jp>
4677
4678 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before returning.
4679 (base64_encode_1): Make it work for a text of multibyte form.
4680 (Fbase64_decode_region): Allocate sufficient memory for multibyte
4681 case. Don't call str_to_multibyte because base64_decode_1
4682 produces correct multibyte form for eight-bit codes.
4683 (Fbase64_decode_string): Adjusted for the change of base64_decode_1.
4684 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
4685 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
4686 codes.
4687
4688 * charset.h (CHAR_STRING): Optimized for single byte characters.
4689
4690 2000-10-09 Andreas Schwab <schwab@suse.de>
4691
4692 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
4693 -1 after socket is closed, to fall through to error processing.
4694
4695 2000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
4696
4697 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
4698 variables. If ALIST includes foreground-color or
4699 background-color, change also the colors of the default face for
4700 this frame.
4701
4702 2000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
4703
4704 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
4705 them extern (they are defined on xfaces.c).
4706 (syms_of_msdos): Don't intern and don't staticpro
4707 Qbackground_color and Qforeground_color.
4708
4709 2000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
4710
4711 * frame.c (Fframe_parameter): For non-windowed frames, if
4712 f->param_alist says foreground or background color is unspecified,
4713 call tty_color_name to return the color name computed from the
4714 frame's current colors.
4715
4716 2000-10-06 Dave Love <fx@gnu.org>
4717
4718 * terminfo.c (ospeed): Don't declare.
4719
4720 * sysdep.c: Don't include string.h.
4721 (h_errno): Declare conditional also on TRY_AGAIN.
4722
4723 * charset.c (Ffind_charset_string): Doc fix.
4724
4725 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
4726 (Fbase64_decode_region, Fbase64_decode_string): More explicit
4727 error messages.
4728
4729 2000-10-05 Dave Love <fx@gnu.org>
4730
4731 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
4732 position like menu-bar.
4733
4734 2000-10-05 Gerd Moellmann <gerd@gnu.org>
4735
4736 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
4737
4738 * xdisp.c (handle_single_display_prop): Use safe_call1.
4739 (safe_call): Renamed from call_function.
4740 (safe_call1): New function.
4741 (handle_fontified_prop): Use safe_call1 instead of call1.
4742 (safe_eval): Renamed from eval_form.
4743 (safe_eval_handler): Renamed from eval_handler.
4744 (handle_single_display_prop, display_mode_element): Use safe_eval
4745 instead of eval_form.
4746
4747 * xfaces.c (merge_face_heights): Use safe_call instead of
4748 call_function.
4749
4750 * keyboard.c (show_help_echo): Use safe_call instead of
4751 call_function; use safe_eval instead of eval_form.
4752
4753 * lisp.h (safe_call): Renamed from call_function.
4754 (safe_eval): Renamed from eval_form.
4755 (safe_call1): Add prototype.
4756
4757 2000-10-05 Miles Bader <miles@lsi.nec.co.jp>
4758
4759 * xfns.c (image_ascent): Rearrange ascent calculation for the
4760 has-a-font case.
4761
4762 2000-10-04 Stefan Monnier <monnier@cs.yale.edu>
4763
4764 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
4765 (where_is_internal_1): Don't bother ignoring menu-items any more.
4766
4767 2000-10-04 Gerd Moellmann <gerd@gnu.org>
4768
4769 * keyboard.c (update_menu_bindings): New variable.
4770 (parse_menu_item): Use AREF. If update_menu_bindings
4771 is 0, don't update menu bindings.
4772 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
4773
4774 2000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
4775
4776 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
4777 to `mark_object'.
4778
4779 2000-10-02 Stefan Monnier <monnier@cs.yale.edu>
4780
4781 * syntax.c (forw_comment): Match nestedness of ender/starter.
4782 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
4783 (prev_char_comstart_first): Remove.
4784 (back_comment): Check two-char comment markers more carefully
4785 to better handle overlapping cases like *//* or /* */* */ ...
4786 Match nestedness of ender/starter.
4787
4788 2000-10-02 Dave Love <fx@gnu.org>
4789
4790 * config.in (HAVE_GAI_STRERROR): Add undef.
4791
4792 * process.c (Fopen_network_stream): Use it.
4793
4794 * m/alpha.h (NO_REMAP): Don't define.
4795
4796 2000-10-02 Gerd Moellmann <gerd@gnu.org>
4797
4798 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
4799 return with a string converted to an integer or vice versa when
4800 Vmocklisp_arguments is t.
4801 (Fsignal): Likewise. The function can return for `quit'.
4802 (struct gcpro): Declare member `var' to point to a volatile
4803 Lisp_Object.
4804
4805 * eval.c (error): Prevent compiler warning.
4806
4807 2000-09-30 Stefan Monnier <monnier@cs.yale.edu>
4808
4809 * keymap.c (keymap_memberp): New function.
4810 (Fset_keymap_parent): Use it.
4811 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
4812 Use keymap_memberp to avoid creating cycles.
4813 (access_keymap): Use KEYMAPP.
4814
4815 2000-09-30 Gerd Moellmann <gerd@gnu.org>
4816
4817 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
4818 gai_strerror. Make sure xerrno is set if connect fails. Improve
4819 error recovery.
4820
4821 2000-09-29 Jason Rumney <jasonr@gnu.org>
4822
4823 * w32term.c (w32_char_font_type, w32_encode_char)
4824 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
4825 (w32_bdf_per_char_metric): New function.
4826 (w32_per_char_metric): Use it.
4827 (x_draw_glyph_string_background): Always draw background for BDF
4828 glyphs.
4829
4830 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
4831 GDI object which is a scarce resource.
4832
4833 * w32bdf.c (search_file_line): Fix skipping of whitespace.
4834 (get_quoted_string): Fix limit on memchr search.
4835 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
4836 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
4837 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
4838 (get_cached_font_char, cache_char_offset): Use macro
4839 BDF_CODEPOINT_RANGE_COVER_P.
4840 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
4841 (clear_cached_bitmap_slots): New function.
4842 (GET_HEX_VALUE): G-Z, g-z are not hex.
4843 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
4844 (get_bitmap_with_cache): Use new cache implementation.
4845 (create_offscreen_bitmap): New function.
4846 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
4847
4848 * w32term.c (x_produce_glyphs): If the distance from the current
4849 position to the next tab stop is less than a canonical character
4850 width, use the tab stop after that.
4851 (x_draw_glyphs): Handle case START and END are out of bounds more
4852 carefully.
4853 (x_clear_mouse_face): Block/unblock input.
4854 (x_display_and_set_cursor): Don't show a hollow box cursor for
4855 buffers whose cursor_type is nil.
4856
4857 2000-09-29 Gerd Moellmann <gerd@gnu.org>
4858
4859 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar disappears.
4860
4861 * dispextern.h (updating_frame): Declare extern.
4862
4863 2000-09-29 Andreas Schwab <schwab@suse.de>
4864
4865 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
4866
4867 2000-09-29 Gerd Moellmann <gerd@gnu.org>
4868
4869 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
4870 use its function definition.
4871 (tool_bar_items): Likewise.
4872
4873 * lisp.h (fatal): Declare NO_RETURN.
4874
4875 2000-09-29 Kenichi Handa <handa@etl.go.jp>
4876
4877 * keymap.c: Remove the line "#undef NULL".
4878
4879 2000-09-28 Gerd Moellmann <gerd@gnu.org>
4880
4881 * xterm.c (x_make_frame_visible): Try harder to make the frame visible.
4882
4883 2000-09-28 Dave Love <fx@gnu.org>
4884
4885 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
4886
4887 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
4888
4889 * .gdbinit (xreload): Note its need on GNU/Linux.
4890
4891 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
4892 r_alloc, r_alloc_free.
4893
4894 2000-09-28 Kenichi Handa <handa@etl.go.jp>
4895
4896 * syntax.c (skip_chars): Handle negation correctly.
4897
4898 2000-09-27 Gerd Moellmann <gerd@gnu.org>
4899
4900 * xfaces.c (realize_default_face): Call set_lface_from_font_name
4901 with non-zero FORCE_P argument.
4902
4903 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
4904 Add assertions.
4905
4906 * xdisp.c (window_box_height): Add an assertion.
4907
4908 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
4909 tool-bar than is available.
4910 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
4911
4912 2000-09-27 Dave Love <fx@gnu.org>
4913
4914 * s/irix6-5.h: Now works 64-bit. Tidied.
4915
4916 2000-09-26 Gerd Moellmann <gerd@gnu.org>
4917
4918 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
4919 instead of BITS_PER_INT.
4920 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
4921 EMACS_UINT, respectively.
4922 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
4923
4924 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
4925
4926 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
4927
4928 * window.c (freeze_window_starts): Construct last argument for
4929 foreach_window differently.
4930
4931 * xfns.c (x_decode_color): Don't return a Lisp_Object.
4932
4933 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
4934 EMACS_UINT instead of `int' and `unsigned int'.
4935 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
4936
4937 * frame.h (struct frame): Make the `nothing' member of union
4938 output_data an EMACS_INT.
4939
4940 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug hunting.
4941 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
4942 size in the sdata structure.
4943 (SDATA_NBYTES, SDATA_DATA): New macros.
4944 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
4945 differently for the different layout of the sdata structure.
4946 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
4947 in sdata.
4948 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
4949 Check that size recorded in the string size and size recorded in
4950 the sdata structure agree.
4951
4952 2000-09-25 Dave Love <fx@gnu.org>
4953
4954 * buffer.c: Include stdio.h.
4955
4956 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
4957
4958 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
4959
4960 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
4961 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as size_t.
4962 (__malloc_extra_blocks): Declare as __malloc_size_t.
4963
4964 2000-09-25 Gerd Moellmann <gerd@gnu.org>
4965
4966 * alloc.c (mark_image): Use GC_NILP instead of NILP.
4967
4968 * keyboard.c (show_help_echo): Set help_echo_showing_p.
4969 (read_char): If help-echo is showing, preserve the echo area
4970 when redisplaying.
4971
4972 * xdisp.c (help_echo_showing_p): New variable.
4973 (set_message): Reset it to 0.
4974 (init_xdisp): Initialize help_echo_showing_p.
4975
4976 * dispextern.h (help_echo_showing_p): Declare extern.
4977
4978 * config.in: Fix typo in __GNUC_MINOR__.
4979
4980 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
4981
4982 * s/freebsd.h (POSIX_SIGNALS): Define.
4983
4984 * xterm.c (x_clear_mouse_face): Block/unblock input.
4985
4986 2000-09-24 Dave Love <fx@gnu.org>
4987
4988 * fns.c (base64_encode_1): Fix last change.
4989
4990 2000-09-22 Gerd Moellmann <gerd@gnu.org>
4991
4992 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
4993
4994 * xdisp.c (try_window_reusing_current_matrix): More fixes
4995 for the case window has a header-line.
4996
4997 2000-09-22 Dave Love <fx@gnu.org>
4998
4999 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
5000 a doc string.
5001
5002 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
5003
5004 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
5005
5006 2000-09-21 Gerd Moellmann <gerd@gnu.org>
5007
5008 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
5009 for GCC >= 2.5.
5010
5011 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error):
5012 Declare NO_RETURN.
5013
5014 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
5015 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
5016 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
5017 warnings.
5018
5019 * marker.c (byte_char_debug_check): Return void.
5020
5021 * xfns.c (Fx_create_frame): Set default frame parameter value
5022 for tool-bar-lines to 1.
5023
5024 * dispnew.c (scrolling_window): Compare y-positions of rows
5025 equal at the start. Some simplification.
5026
5027 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
5028 reused rows' y-position in the case window has a header-line, and
5029 new window start is greater than old window start.
5030
5031 * process.c (process_sent_to): New variable.
5032 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
5033 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
5034 Declare more parameters volatile.
5035
5036 * lread.c (Vrecursive_load_depth_limit): New variable.
5037 (Fload): Check recursive loads whose recursion depth exceeds
5038 Vrecursive_load_depth_limit.
5039 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
5040
5041 2000-09-20 Gerd Moellmann <gerd@gnu.org>
5042
5043 * fileio.c (Fread_file_name): Doc fix.
5044
5045 * editfns.c (Fmessage_or_box): Doc fix.
5046
5047 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
5048
5049 * xfns.c (xbm_scan): Allow C-style comments.
5050
5051 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
5052 symbols are specified, add color translations to the cache.
5053 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New functions.
5054 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
5055 xpm_cache_color.
5056 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
5057 structures to xpm_init_color_cache.
5058
5059 2000-09-19 Gerd Moellmann <gerd@gnu.org>
5060
5061 * dispnew.c (update_window_line): Make sure to always draw mode-lines.
5062
5063 2000-09-19 Andrew Innes <andrewi@gnu.org>
5064
5065 * makefile.nt (bootstrap-emacs): Don't change directory.
5066
5067 2000-09-19 Kenichi Handa <handa@etl.go.jp>
5068
5069 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
5070
5071 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
5072 If output buffer is too small, signal an appropriated error.
5073
5074 2000-09-18 Dave Love <fx@gnu.org>
5075
5076 * keyboard.c (menu_bar_items, tool_bar_items)
5077 (current_active_maps): Remove redundant get_local_map call.
5078
5079 2000-09-18 Gerd Moellmann <gerd@gnu.org>
5080
5081 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
5082 cursor for buffers whose cursor_type is nil.
5083
5084 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
5085 a feature to implement that is already implemented.
5086 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
5087 warnings.
5088
5089 * xfns.c (x_clear_image_1): New function.
5090 (x_clear_image): Use it.
5091 (x_from_xcolors): Use x_clear_image_1; don't free the image's mask.
5092
5093 * dispnew.c (update_window): Move test for invisible lines
5094 at the top to update_window_line.
5095 (update_window_line): Handle invisible lines here.
5096
5097 * xfns.c (clear_image_cache): Clear current matrices of all
5098 frames sharing an image cache. Block input while freeing
5099 images. Fix timestamp comparison.
5100 (x_clear_image): Also free the mask.
5101
5102 * xfns.c (lookup_image): Block input while loading the image so
5103 that we won't get interrupted in a state where the image isn't yet
5104 set up completely.
5105 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
5106 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
5107 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
5108 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock input.
5109
5110 2000-09-16 Gerd Moellmann <gerd@gnu.org>
5111
5112 * dispnew.c (update_window): Make sure to make desired rows
5113 current even if they are completely invisible at the top
5114 of a window.
5115
5116 2000-09-15 Gerd Moellmann <gerd@gnu.org>
5117
5118 * xfns.c (lookup_image): Build mask before applying an algorithm.
5119 Recognize algorithm `disabled'.
5120 (cross_disabled_images): New variable.
5121 (COLOR_INTENSITY): New macro.
5122 (x_detect_edges): Use COLOR_INTENSITY.
5123 (x_disable_image): New function.
5124 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
5125
5126 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
5127 disabled state, don't apply an image transformation algorithm if
5128 the user specified an image for the disabled state. Use
5129 `:algorithm disabled' for creating a disabled item's image if the
5130 user hasn't specified an image.
5131
5132 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
5133 allocation functions with the XPM lib.
5134 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
5135 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
5136 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
5137 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
5138 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New functions.
5139 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
5140 functions, if possible, because these handle color allocation
5141 failure more gracefully.
5142 (Fimage_mask_p): New function.
5143
5144 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
5145 (Qedge_detection, Qheuristic): New symbols.
5146 (syms_of_xfns): Initialize new symbols.
5147 (lookup_image): Handle `:mask X', `:algorithm emboss', and
5148 `algorithm (edge-detection ...)'.
5149 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
5150 (tiff_format, gif_format, gs_format): Add `:mask'.
5151 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
5152 (GIF_MASK, GS_MASK): New enumerators.
5153 (x_laplace_read_row, x_laplace_write_row): Functions removed.
5154 (emboss_matrix, laplace_matrix): New variables.
5155 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
5156 (x_edge_detection): New functions.
5157 (x_laplace): Rewritten in terms of x_detect_edges.
5158 (x_build_heuristic_mask): If image has a mask, free it.
5159
5160 2000-09-14 Andrew Innes <andrewi@gnu.org>
5161
5162 * makefile.w32-in: Revert to Unix line endings.
5163
5164 2000-09-14 Andrew Innes <andrewi@gnu.org>
5165
5166 * makefile.w32-in: Standardize indentation somewhat.
5167 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
5168 cater for differences between shells.
5169
5170 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
5171
5172 2000-09-14 Gerd Moellmann <gerd@gnu.org>
5173
5174 * xterm.c (x_produce_glyphs): If the distance from the current
5175 position to the next tab stop is less than a canonical character
5176 width, use the tab stop after that.
5177
5178 2000-09-14 Dave Love <fx@gnu.org>
5179
5180 * buffer.c (alloc_buffer_text): Fix xmalloc call.
5181
5182 2000-09-14 Gerd Moellmann <gerd@gnu.org>
5183
5184 * xdisp.c (handle_fontified_prop): While running fontification
5185 functions, bind `fontification-functions' and
5186 `after-change-functions' to nil.
5187
5188 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
5189 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
5190
5191 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
5192
5193 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
5194 USE_MMAP_FOR_BUFFERS.
5195
5196 * insdel.c (make_gap): Use enlarge_buffer_text.
5197
5198 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
5199 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
5200 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
5201 from former r_alloc_* functions in ralloc.c.
5202 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New variables.
5203 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
5204 (mmap_init) [REL_ALLOC_MMAP]: New function.
5205 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
5206 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
5207 BUFFER_FREE.
5208
5209 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
5210 (enlarge_buffer_text): Add prototype.
5211
5212 * ralloc.c: Remove everything having to do with the use of mmap.
5213
5214 2000-09-13 Gerd Moellmann <gerd@gnu.org>
5215
5216 * sound.c (Fplay_sound): Doc fix.
5217
5218 * keyboard.c: Avoid some more compiler warnings.
5219 (parse_tool_bar_item): Ignore cached key bindings.
5220
5221 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
5222 and allocation of Lisp data.
5223
5224 2000-09-12 Gerd Moellmann <gerd@gnu.org>
5225
5226 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
5227 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
5228 defaults first.
5229
5230 * lread.c (Fload): Put code checking for recursive loads in #if 0.
5231
5232 2000-09-12 Miyashita Hisashi <himi@meadowy.org>
5233
5234 * ccl.c: Comment fixed.
5235 (MAX_MAP_SET_LEVEL): Increased to 30.
5236 (PUSH_MAPPING_STACK): Enclose with do-while block.
5237 (POP_MAPPING_STACK): Likewise.
5238 (stack_idx_of_map_multiple): New variable.
5239 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
5240 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
5241 call the corresponding CCL program by CCL_CALL_FOR_MAP_INSTRUCTION.
5242 (ccl_driver) <CCL_MapSingle>: Likewise.
5243 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
5244 with the case where looking up process reaches to the end of
5245 map-set, and call CCL programs as the above change.
5246
5247 2000-09-11 Gerd Moellmann <gerd@gnu.org>
5248
5249 * xfns.c (png_load, jpeg_load): Declare some variables volatile
5250 that might be clobbered by longjmp.
5251 (check_x_display_info, x_decode_color, create_frame_xic)
5252 (Fx_display_backing_store, Fx_display_visual_class)
5253 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler warnings.
5254
5255 * lread.c (init_lread): Set Vloads_in_progress to nil.
5256 (Fload): Show list of recursively loaded files, when signaling an
5257 error.
5258
5259 * lread.c (Vloads_in_progress): New variable.
5260 (record_load_unwind): New function.
5261 (Fload): Check for recursive loads.
5262 (syms_of_lread): Initialize Vloads_in_progress.
5263 (read_integer, read1): Avoid some compiler warnings.
5264
5265 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
5266 compiler warnings.
5267
5268 2000-09-11 Miles Bader <miles@gnu.org>
5269
5270 * editfns.c (Fbuffer_string): Doc fix.
5271
5272 2000-09-10 Gerd Moellmann <gerd@gnu.org>
5273
5274 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
5275
5276 2000-09-09 Ken Raeburn <raeburn@gnu.org>
5277
5278 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
5279 whether to include other header files.
5280
5281 2000-09-09 Gerd Moellmann <gerd@gnu.org>
5282
5283 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
5284 by Fmemq as a boolean.
5285
5286 2000-09-08 Stefan Monnier <monnier@cs.yale.edu>
5287
5288 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
5289
5290 2000-09-08 Gerd Moellmann <gerd@gnu.org>
5291
5292 * ralloc.c (mmap_fd): Remove initializer which can make it
5293 read-only in a dumped Emacs.
5294 (mmap_fd_1): New variable.
5295 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
5296 restore it from there.
5297 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
5298 unconditionally so that mmap_fd can be initialized there.
5299 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
5300 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
5301 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
5302
5303 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
5304
5305 * xdisp.c (dump_glyph_row): Fix printf format string.
5306 (display_line, move_it_in_display_line_to): Avoid compiler warnings.
5307
5308 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
5309
5310 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
5311 inheritance.
5312
5313 * xdisp.c (try_window_id): When trying to locate cursor in
5314 unchanged rows at the top, handle the case that we can't find it.
5315
5316 * xterm.c (x_draw_glyphs): Handle case START and END are out
5317 of bounds more carefully.
5318
5319 2000-09-08 Dave Love <fx@gnu.org>
5320
5321 * s/sol2.h (REL_ALLOC_MMAP): Define.
5322 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
5323
5324 * ralloc.c: Don't include string.h (redundant).
5325 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
5326 [!MAP_ANON]: Include fcntl.h.
5327 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
5328 (r_alloc, r_re_alloc, r_alloc_free)
5329 (mmap_enlarge, mmap_set_vars): Use it.
5330 (r_alloc_init_fd): New function.
5331 (__morecore) [SYSTEM_MALLOC]: Don't declare.
5332 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
5333 malloc type.
5334
5335 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
5336 Remove vm-limit.o.
5337
5338 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
5339 change to __NetBSD__.
5340
5341 2000-09-08 Kenichi Handa <handa@etl.go.jp>
5342
5343 * search.c (compile_pattern): Check the multibyteness of cached
5344 string and PATTERN.
5345
5346 2000-09-08 Miles Bader <miles@gnu.org>
5347
5348 * xfaces.c (default_face_vector): Function removed.
5349 (Finternal_merge_in_global_face): Restore old global/local
5350 attribute override order. Use inline loop instead of calling
5351 default_face_vector.
5352
5353 2000-09-07 Gerd Moellmann <gerd@gnu.org>
5354
5355 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
5356 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
5357 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
5358 where necessary, in case POINTER_TYPE is `void'.
5359
5360 2000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
5361
5362 * frame.c (make_terminal_frame): Initialize frame foreground and
5363 background colors to unspecified, for the initial instance of an
5364 MSDOS frame.
5365
5366 2000-09-07 Gerd Moellmann <gerd@gnu.org>
5367
5368 * ralloc.c (mmap_find): Fix overlap computation.
5369 (mmap_enlarge): Compute nbytes before trying to find an
5370 overlapping region.
5371
5372 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
5373 instead of `!='.
5374
5375 * lread.c (syms_of_lread): Change value of regexp
5376 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
5377
5378 * xmenu.c (xdialog_show): When looking up the selection in
5379 menu_items, take `quote' boundaries into account; this corresponds
5380 to a nil ITEM in x-popup-dialog.
5381
5382 2000-09-07 Kenichi Handa <handa@etl.go.jp>
5383
5384 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
5385 not 0x81.
5386 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
5387
5388 * coding.c (encode_coding_sjis_big5): Use translation table for
5389 encoding, not decoding. Fix the handling of latin-jisx0201.
5390 Check for the charset katakana-jisx0201 too.
5391 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
5392 (detect_coding_sjis): Check the byte sequence more rigidly.
5393
5394 2000-09-07 Gerd Moellmann <gerd@gnu.org>
5395
5396 * xfaces.c (Vparam_value_alist): New variable.
5397 (syms_of_xfaces): Initialize it.
5398 (Finternal_set_lisp_face_attribute): Avoid more consing.
5399
5400 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
5401 specially.
5402 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
5403 (Qbackground_mode): New variable.
5404 (syms_of_frame_1): Initialize Qbackground_mode.
5405
5406 * lisp.h (Qdisplay): Declare extern.
5407
5408 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
5409 change face on all frames, and change the default for new frames.
5410
5411 2000-09-07 Dave Love <fx@gnu.org>
5412
5413 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
5414
5415 2000-09-07 Kenichi Handa <handa@etl.go.jp>
5416
5417 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
5418
5419 * charset.c: Include composite.h
5420 (lisp_string_width): New function.
5421 (Fstring_width): Call lisp_string_width instead of strwidth.
5422
5423 * Makefile.in (charset.o): Depends on composite.h.
5424
5425 * process.c (read_process_output): Before inserting the decoded
5426 text in the buffer, adjust the multibyteness.
5427
5428 2000-09-06 Gerd Moellmann <gerd@gnu.org>
5429
5430 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
5431 buffer's text buffer is null, map new memory.
5432
5433 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
5434 POINTER_TYPE and size_t.
5435 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
5436 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
5437 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
5438 [REL_ALLOC_MMAP]: New macros.
5439 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
5440 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
5441 [REL_ALLOC_MMAP]: New functions.
5442
5443 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
5444 before and after unexec.
5445
5446 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
5447 text buffers if necessary.
5448
5449 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
5450 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
5451 in prototypes.
5452
5453 * config.in (HAVE_MMAP): Add #undef.
5454
5455 2000-09-05 Gerd Moellmann <gerd@gnu.org>
5456
5457 * frame.c (Qdisplay_type): New variable.
5458 (syms_of_frame_1): Initialize it.
5459 (Fframe_parameter): New function that avoids consing.
5460 (syms_of_frame): Defsubr it.
5461
5462 * buffer.c (Fother_buffer): Consider buffers as invisible when
5463 they are displayed in a window on an invisible frame.
5464
5465 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
5466 get-largest-window always return nil.
5467
5468 2000-09-04 Gerd Moellmann <gerd@gnu.org>
5469
5470 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
5471 variable; recognize Emacs 19 elc files.
5472
5473 2000-09-04 Miles Bader <miles@gnu.org>
5474
5475 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
5476 before initially popping up the menu, so the menu doesn't flash
5477 when the face settings are significantly different from the defaults.
5478
5479 2000-09-04 Stefan Monnier <monnier@cs.yale.edu>
5480
5481 * regex.c (WIDE_CHAR_SUPPORT): New macro.
5482 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
5483 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
5484 (BIT_UNIBYTE): Remove.
5485 (re_match_2_internal): Delete corresponding code and streamline the
5486 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
5487 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
5488 (re_wctype_t): New type.
5489 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
5490 (regex_compile): Use them and fix handling of overly long char classes.
5491
5492 2000-09-03 Andrew Innes <andrewi@gnu.org>
5493
5494 * makefile.w32-in: Change to DOS line endings.
5495
5496 * s/ms-w32.h (ORDINARY_LINK): New define.
5497
5498 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
5499 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
5500
5501 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
5502 (distclean): Delete them here instead.
5503
5504 * w32proc.c (compare_env): Convert to uppercase for comparison,
5505 not lowercase, to match how the native Windows shell works.
5506
5507 2000-09-03 Jason Rumney <jasonr@gnu.org>
5508
5509 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
5510 CVS changes the line-ends when checking in/out on DOS/Windows.
5511
5512 * makefile.nt (emacs): Do not change directory to run temacs, as
5513 the load-path is set relative to current directory.
5514
5515 2000-09-03 Miles Bader <miles@gnu.org>
5516
5517 * xterm.c (x_alloc_lighter_color_for_widget): New function.
5518
5519 2000-09-02 Gerd Moellmann <gerd@gnu.org>
5520
5521 * xdisp.c (redisplay_mode_lines): New function.
5522 (display_mode_lines): Return number of mode lines displayed.
5523 (echo_area_display): Use redisplay_mode_lines to draw garbaged
5524 mode lines. Don't temporarily bind redisplay-dont-pause to t.
5525
5526 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
5527 string.h and strings.h.
5528 (index) [HAVE_INDEX]: Add prototype.
5529
5530 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
5531 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
5532
5533 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
5534 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
5535
5536 2000-09-01 Gerd Moellmann <gerd@gnu.org>
5537
5538 * lread.c (read1): Accept `?' as symbol constituent, for
5539 compatiblity with XEmacs.
5540
5541 2000-08-31 Stefan Monnier <monnier@cs.yale.edu>
5542
5543 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
5544 (struct re_pattern_buffer): Remove newline_anchor.
5545 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
5546 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
5547 (re_max_failures, fail_stack): Use size_t rather than unsigned.
5548 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
5549 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
5550 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
5551 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
5552 Get rid of references to newline_anchor.
5553 (regcomp): Allocate and precompute a fastmap.
5554
5555 2000-08-31 Gerd Moellmann <gerd@gnu.org>
5556
5557 * lread.c (openp): GCPRO local variable `filename'.
5558
5559 2000-08-30 Stefan Monnier <monnier@cs.yale.edu>
5560
5561 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
5562
5563 * regex.c: Merge some changes from GNU libc. Add prototypes.
5564 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
5565 Use memcmp and memcpy instead of bcopy and bcmp.
5566 (init_syntax_once): Use ISALNUM.
5567 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
5568 (REG_UNSET_VALUE): Remove. Use NULL instead.
5569 (REG_UNSET, re_match_2_internal): Use NULL.
5570 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
5571 New macros.
5572 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
5573 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
5574 (regex_compile): In handle_interval, return an error rather than try to
5575 unfetch the interval if we can't find the closing brace.
5576 Obey the RE_NO_GNU_OPS syntax bit.
5577 (TOLOWER): New macro.
5578 (regcomp): Use it.
5579 (regexec): Allocate regs.start and regs.end as one block.
5580
5581 2000-08-30 Gerd Moellmann <gerd@gnu.org>
5582
5583 * xdisp.c (echo_area_display): Check display_completed instead
5584 of calling detect_input_pending.
5585
5586 * dispnew.c (update_frame): Only set display_completed here; move
5587 the update_begin and update_end calls here from update_frame_1.
5588 (update_frame_1): Don't set display_completed here, don't call
5589 update_begin/update_end.
5590
5591 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
5592 instead of store_frame_param.
5593
5594 2000-08-29 Gerd Moellmann <gerd@gnu.org>
5595
5596 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
5597 desired window matrix hasn't been displayed, use the current row
5598 instead. Make sure that only those frame rows are updated for
5599 which there exists a corresponding enabled desired row.
5600
5601 2000-08-29 Miles Bader <miles@gnu.org>
5602
5603 * xfaces.c (default_face_vector): New function.
5604 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
5605
5606 2000-08-29 Gerd Moellmann <gerd@gnu.org>
5607
5608 * lread.c (openp): Prevent temporary string passed to
5609 Ffile_readable_p from being garbage collected.
5610
5611 2000-08-28 Dave Love <fx@gnu.org>
5612
5613 * keymap.c (store_in_keymap): Add `static' to declaration.
5614
5615 2000-08-28 Gerd Moellmann <gerd@gnu.org>
5616
5617 * emacs.c, callint.c, doc.c, editfns.c
5618 (toplevel) [HAVE_STRING_H]: Include string.h.
5619 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
5620 (index): Remove prototypes which might conflict with non-standard
5621 definitions of index/strchr.
5622
5623 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
5624 (rindex): Define only if !HAVE_RINDEX.
5625
5626 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
5627
5628 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
5629
5630 2000-08-28 Miles Bader <miles@gnu.org>
5631
5632 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
5633 made inconsistent by a font-related attribute in FROM.
5634 (merge_face_inheritance): Add function comment.
5635
5636 2000-08-28 Kenichi Handa <handa@etl.go.jp>
5637
5638 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
5639 the 4th arg (PREV_EVENT) Qt to suppress input method.
5640
5641 2000-08-27 Stefan Monnier <monnier@cs.yale.edu>
5642
5643 * regex.c: Indent cpp directives and remove parens after `defined'.
5644 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
5645 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
5646 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
5647 (re_compile_pattern): Use size_t for length.
5648 (init_syntax_once): Move to a better place.
5649 * regex.h: Merge changes from GNU libc. Indent cpp directives.
5650 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
5651
5652 * syntax.c (back_comment): Detect cases where a comment-starter is
5653 actually inside another comment as in: /* a // b */ c // d \n.
5654 Make it clear that `comstart_pos' is unused for nested comments.
5655
5656 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
5657 (KEYMAPP): New macro.
5658 (Fkeymap_parent, Fset_keymap_parent): Use it.
5659 (fix_submap_inheritance): Mark it static.
5660 (define_as_prefix, describe_buffer_bindings, describe_command)
5661 (describe_translation, describe_map): Complete prototypes.
5662
5663 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
5664
5665 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
5666 to better match the key-lookup behavior.
5667
5668 2000-08-27 Gerd Moellmann <gerd@gnu.org>
5669
5670 * xfaces.c (lface_fully_specified_p): Handle :inherit.
5671 (Finternal_set_lisp_face_attribute): Fix typo in error message.
5672
5673 2000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
5674
5675 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
5676 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
5677 (xterm.o): Depend on coding.h
5678
5679 2000-08-26 Kenichi Handa <handa@etl.go.jp>
5680
5681 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
5682 the corresponding '#endif'.
5683
5684 2000-08-26 Miles Bader <miles@gnu.org>
5685
5686 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
5687 * xfaces.c (QCinherit): New variable.
5688 (syms_of_xfaces): Initialize it.
5689 (LFACE_INHERIT): New macro.
5690 (Finternal_get_lisp_face_attribute)
5691 (merge_face_vector_with_property)
5692 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
5693 (check_lface_attrs): Allow new types of face height. Check
5694 inherit attribute.
5695 (CYCLE_CHECK): New macro.
5696 (merge_face_inheritance): New function.
5697 (merge_face_vectors): Merge inherited faces too. Add F and
5698 CYCLE_CHECK arguments.
5699 (merge_face_vector_with_property, Finternal_merge_in_global_face)
5700 (lookup_named_face, lookup_derived_face, realize_named_face)
5701 (face_at_string_position, face_at_buffer_position): Supply
5702 new F and CYCLE_CHECK arguments to merge_face_vectors.
5703 (merge_face_heights): New function.
5704 (merge_face_vectors, merge_face_vector_with_property)
5705 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
5706 handle relative face heights.
5707 (lface_same_font_attributes_p): Compare heights using EQ.
5708
5709 2000-08-26 Kenichi Handa <handa@etl.go.jp>
5710
5711 * charset.c (char_to_string): Check the character validity.
5712 (char_valid_p): If C is not less than MAX_CHAR, be sure to return 0.
5713
5714 2000-08-25 Stefan Monnier <monnier@cs.yale.edu>
5715
5716 * regex.c (PUSH_FAILURE_COUNT): New macro.
5717 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
5718 Handle popping of a register's or a counter's data.
5719 (POP_FAILURE_POINT): Use the new name.
5720 (re_match_2_internal): Push counter data on the stack for succeed_n,
5721 jump_n and set_number_at and remove misleading dead code in succeed_n.
5722
5723 2000-08-25 Gerd Moellmann <gerd@gnu.org>
5724
5725 * xdisp.c (redisplay_internal): If considering all windows on all
5726 frames, update the display for each frame as soon as possible,
5727 instead of first building all desired matrices for all frames, and
5728 then updating them all.
5729 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
5730
5731 2000-08-24 Gerd Moellmann <gerd@gnu.org>
5732
5733 * bytecode.c (mark_byte_stack): Add a comment.
5734
5735 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
5736 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
5737 a graphical frame.
5738
5739 2000-08-24 Kenichi Handa <handa@etl.go.jp>
5740
5741 * minibuf.c (do_completion): Always use compare-string, not
5742 string-equal because the latter doesn't pay attention to
5743 multibyteness of strings.
5744
5745 * process.c (create_process): Don't setup raw-text coding here.
5746 (Fopen_network_stream): Don't set coding->src_multibyte and
5747 coding->dst_multibyte here.
5748 (read_process_output): For process filter, return unibyte string
5749 if default-enable-multibyte-characters is nil.
5750 (send_process): If OBJECT is multibyte text, be sure to encoded it
5751 by the specified coding system for the process. Otherwise, setup
5752 raw-text coding.
5753 (init_process): Don't initialize default-process-coding-system here.
5754
5755 2000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
5756
5757 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
5758 <scroll-down-aggressively>: Likewise.
5759
5760 2000-08-23 Kenichi Handa <handa@etl.go.jp>
5761
5762 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
5763 zero. Set coding->produced_char correctly.
5764
5765 2000-08-22 Andrew Innes <andrewi@gnu.org>
5766
5767 * makefile.w32-in: New file.
5768
5769 * unexw32.c (unexec): Ignore old_name, and use the actual location
5770 of the current executable instead. Base new_name on this.
5771
5772 * w32proc.c (create_child): Remove reference to security
5773 descriptor, which isn't needed and doesn't compile with mingw32.
5774
5775 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5776 up dllimport attributes.
5777 (x_update_window_end): Update prototype.
5778
5779 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
5780 extern, which screws up dllimport attributes.
5781
5782 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5783 up dllimport attributes.
5784
5785 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
5786 screws up dllimport attributes.
5787
5788 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5789 up dllimport attributes.
5790 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
5791 screws up dllimport attributes.
5792
5793 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5794 up dllimport attributes.
5795
5796 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
5797 screws up dllimport attributes.
5798
5799 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
5800 screws up dllimport attributes.
5801
5802 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5803 up dllimport attributes.
5804
5805 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
5806 unnecessary extern, which screws up dllimport attributes.
5807 (main): Ditto.
5808
5809 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5810 up dllimport attributes.
5811
5812 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
5813 unnecessary extern, which screws up dllimport attributes.
5814
5815 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
5816 screws up dllimport attributes.
5817
5818 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5819 up dllimport attributes.
5820
5821 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
5822
5823 * w32bdf.c (search_file_line):
5824 (set_bdf_font_info):
5825 (seek_char):
5826 (w32_get_bdf_glyph):
5827 (w32_BDF_to_x_font): Fix compile warnings.
5828
5829 * w32menu.c: Include keyboard.h before frame.h. Fix compile warnings.
5830
5831 * w32select.c: Include keyboard.h before frame.h.
5832
5833 * w32fns.c (max): Define macro.
5834 (JOHAB_CHARSET): Define if not known.
5835 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
5836 (Fx_show_tip): Synch with X version.
5837
5838 * w32xfns.c: Include keyboard.h before frame.h.
5839
5840 * w32fns.c: Include keyboard.h before frame.h.
5841
5842 * w32term.c: Include keyboard.h before frame.h.
5843
5844 * fontset.c: Include keyboard.h before frame.h.
5845
5846 * w32inevt.c: Include keyboard.h before frame.h.
5847 (MOUSE_MOVED): Define if not known.
5848
5849 * minibuf.c: Include keyboard.h before frame.h.
5850
5851 * keyboard.c: Include keyboard.h before frame.h.
5852
5853 * indent.c: Include keyboard.h before frame.h.
5854
5855 * dispnew.c: Include keyboard.h before frame.h.
5856
5857 * buffer.c: Include keyboard.h before frame.h.
5858
5859 * alloc.c: Include keyboard.h before frame.h.
5860
5861 * print.c: Include keyboard.h before frame.h.
5862
5863 * process.c: Include keyboard.h before frame.h.
5864
5865 * scroll.c: Include keyboard.h before frame.h.
5866
5867 * sysdep.c: Include keyboard.h before frame.h.
5868
5869 * term.c: Include keyboard.h before frame.h.
5870
5871 * window.c: Include keyboard.h before frame.h.
5872
5873 * xdisp.c: Include keyboard.h before frame.h.
5874 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
5875
5876 * frame.c: Include keyboard.h before frame.h.
5877
5878 * w32heap.h: Undefine min, max.
5879
5880 * w32gui.h: Undefine min, max.
5881
5882 * unexw32.c: Change PUCHAR to PCHAR.
5883 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
5884 (relocate_offset):
5885 (get_section_info):
5886 (copy_executable_and_dump_data): Remove unnecessary static defs.
5887 (copy_executable_and_dump_data): Fix compile warnings.
5888
5889 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
5890
5891 * w32console.c (min): Define macro.
5892 (clear_frame, write_glyphs): Fix compile warning.
5893
5894 * w32proc.c (compare_env):
5895 (find_child_console): Fix compile warning.
5896
5897 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
5898 sys_errlist instead of _sys_errlist.
5899 (get_emacs_configuration_options): New function.
5900
5901 * s/ms-w32.h (sys_nerr): Provide default definition.
5902 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
5903 name with _ prepended.
5904 (NSIG): Define if not known.
5905 (get_emacs_configuration): Provide extern declaration.
5906 (get_emacs_configuration_options): Provide extern declaration.
5907 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
5908
5909 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
5910 (map_w32_filename):
5911 (read_unc_volume): Fix compile warning.
5912
5913 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
5914 definitions from being used.
5915
5916 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
5917
5918 * w32.c (unc_volume_file_attributes):
5919 (open_unc_volume): Make arg const.
5920
5921 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
5922 (read_input_waiting): Remove excess parameter.
5923
5924 * w32.c (init_environment): Call _access.
5925 (check_windows_init_file): Call _close.
5926 (init_user_info): Call _putenv.
5927 (init_environment): Call _putenv and _strdup.
5928 (init_ntproc): Reset volume info cache on startup.
5929
5930 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
5931 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
5932 cannot override the CRT malloc.
5933
5934 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
5935 (LINK_FLAGS): Append to original value of LINK_FLAGS.
5936
5937 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
5938 unless we are linking with a static CRT.
5939 (RVA_TO_PTR): Cast result to unsigned char*.
5940
5941 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
5942 (add_volume_info): Use xstrdup.
5943
5944 2000-08-22 Stefan Monnier <monnier@cs.yale.edu>
5945
5946 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
5947 (do_completion, Fminibuffer_complete_word): Use it.
5948 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
5949 var so it can take non-boolean values.
5950
5951 2000-08-21 Gerd Moellmann <gerd@gnu.org>
5952
5953 * editfns.c (find_field): Formatting changes.
5954 (toplevel): Some old-style function forward declarations
5955 changed to prototypes, some new protypes added, some functions
5956 made static.
5957
5958 * lisp.h (set_time_zone_rule): Add prototype.
5959 (use_dialog_box): External declaration.
5960
5961 * keyboard.c (gen_help_event): Add parameter SIZE.
5962 (kbd_buffer_events_waiting): Slightly rewritten.
5963 (clear_event): New function.
5964 (kbd_buffer_get_event): Use it, and clear the input_events of
5965 HELP_EVENTs.
5966 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
5967 don't fill the newly created array with nils.
5968 (toplevel): Convert some old-style function forward declarations
5969 to prototypes.
5970
5971 * keyboard.h (gen_help_event): Change prototype.
5972
5973 * xterm.c (XTread_socket): Change calls to gen_help_event.
5974
5975 * w32term.c (w32_read_socket): Change calls to gen_help_event.
5976
5977 * eval.c (Fmacroexpand): Doc fix.
5978
5979 2000-08-20 Jason Rumney <jasonr@gnu.org>
5980
5981 * w32term.h (x_display_info_for_display): Remove as this function
5982 does not exist on W32.
5983
5984 * w32term.c (help_echo_window): New variable.
5985 (syms_of_w32term): staticpro it.
5986 (note_mode_line_highlight): Set it.
5987 (XTextExtents16): Removed as there is no equivalent on W32.
5988 (x_compute_glyph_string_overhangs): Incomplete body removed, as
5989 the X way of doing this will not work for W32.
5990 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
5991 (x_draw_image_foreground): Avoid drawing outside of the clip area
5992 when image doesn't have a mask.
5993 (note_mouse_highlight): Process overlays in the right order of
5994 priority. Set help_echo_window.
5995 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
5996 because that's more visible for large images.
5997
5998 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
5999 name to single_keymap_panes.
6000 (w32_menu_show): Set wv->title when dealing with titles.
6001 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
6002
6003 2000-08-21 Miles Bader <miles@gnu.org>
6004
6005 * minibuf.c (do_completion): Try again if we rewrite the input
6006 string, but no completion was done, so that any completion message
6007 will be correct.
6008
6009 2000-08-20 Gerd Moellmann <gerd@gnu.org>
6010
6011 * xfaces.c (lface_equal_p): Compare strings differently.
6012 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
6013 (realize_tty_face): Use them.
6014 (syms_of_xfaces): Initialize new variables.
6015 (map_tty_color): New function, extracted from realize_tty_face.
6016 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
6017 foreground or background color, store the new color name in the
6018 realized face; previous code trying to do this had no effect.
6019 (realize_tty_face): Use map_tty_color.
6020 (Fclear_face_cache): Set face_change_count and ensure thorough
6021 redisplay.
6022
6023 2000-08-19 Gerd Moellmann <gerd@gnu.org>
6024
6025 * undo.c (record_first_change, record_marker_adjustment): Don't
6026 use XBUFFER on last_undo_buffer which might not be a buffer.
6027
6028 2000-08-18 Kenichi Handa <handa@etl.go.jp>
6029
6030 * coding.c (decode_coding_string): Set members consumed,
6031 consumed_char, produced, produced_char of *coding correctly. If
6032 decode_coding doesn't consume any byte, don't try anymore.
6033 (encode_coding_string): Likewise.
6034
6035 2000-08-18 Gerd Moellmann <gerd@gnu.org>
6036
6037 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
6038 conditional have void type, for Standard C compilers.
6039
6040 * xdisp.c (redisplay_internal): Compare windows for equality with
6041 EQ, instead of applying XWINDOW to something that might not
6042 be a window.
6043
6044 2000-08-18 Kenichi Handa <handa@etl.go.jp>
6045
6046 * fontset.c (Finternal_char_font): Search only the selected frame
6047 for a window of the current buffer.
6048
6049 2000-08-18 Gerd Moellmann <gerd@gnu.org>
6050
6051 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
6052 Lisp_Objects.
6053
6054 * keyboard.c (kbd_buffer_get_event): Handle the case that the
6055 second half of a HELP_EVENT is found at the start of kbd_buffer.
6056
6057 2000-08-18 Miles Bader <miles@gnu.org>
6058
6059 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
6060
6061 * editfns.c (save_restriction_save): Rewrite to use markers.
6062 (save_restriction_restore): Rewrite to understand new form of data
6063 saved by save_restriction_save.
6064 (Fsave_restriction): Remove cautionary note in doc-string.
6065
6066 2000-08-17 Gerd Moellmann <gerd@gnu.org>
6067
6068 * fileio.c (build_annotations): Add a comment explaining the
6069 return value of format-annotate-function. Replace a spurious call
6070 to Flength with a CONSP test. Call format-annotate-function with
6071 a fifth arg specifying how many times the function is been called
6072 in a row, to let it choose temporary buffers appropriately.
6073
6074 2000-08-17 Dave Love <fx@gnu.org>
6075
6076 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
6077 declare make_temp_name twice.
6078
6079 * lread.c: Prototype readevalloop, load_unwind, load_descriptor_unwind.
6080 (unreadpure): Give it an arg.
6081
6082 * unexalpha.c: Prototype fatal_unexec, mark_x,
6083 update_dynamic_symbols. Declare unexec as void.
6084
6085 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
6086 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
6087
6088 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
6089 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on DOUG_LEA_MALLOC.
6090
6091 * alloca.c: Use #error.
6092 [POINTER_TYPE]: Use it.
6093
6094 * eval.c (Fdefvar): Doc fix.
6095
6096 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
6097 INITIALIZE_INTERVAL.
6098
6099 * buffer.h: Avoid DECLARE_INTERVALS.
6100
6101 * config.in: Add size_t.
6102
6103 2000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
6104
6105 * w16select.c (set_clipboard_data): If there's not enough memory
6106 to put text into clipboard, return 1, as Fw16_set_clipboard_data
6107 expects. In case of other failures, return 3.
6108 (system_error_msg): New error message.
6109 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
6110 system_error_msg.
6111
6112 2000-08-16 Gerd Moellmann <gerd@gnu.org>
6113
6114 * term.c (write_glyphs): Also turn off inverse video after turning
6115 off other appearances in case TS_exit_attribute_mode is not equal
6116 to TS_end_standout_mode.
6117 (insert_glyphs): Turn inverse video on/off for each run of glyphs
6118 with the same face.
6119 (turn_off_face): Reset standout_mode only if
6120 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
6121 is equal to TS_end_standout_mode.
6122
6123 2000-08-16 Kenichi Handa <handa@etl.go.jp>
6124
6125 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
6126 sequence at the end of the source block.
6127
6128 * ccl.c (Fccl_program_p): Docstring modified.
6129 (Fccl_execute): Likewise.
6130 (Fccl_execute_on_string): Likewise.
6131
6132 2000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
6133
6134 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
6135
6136 2000-08-16 Kenichi Handa <handa@etl.go.jp>
6137
6138 The following changes are mainly to fix bugs of
6139 encode/decode-coding-string failing if encoding/decoding return
6140 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
6141 variable conversion_buffer.
6142
6143 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
6144 decrement dst_end to avoid buffer overflow in the later call of
6145 string_as_multibyte
6146
6147 * coding.h (conversion_buffer_size, conversion_buffer)
6148 (get_conversion_buffer): Extern deleted.
6149
6150 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
6151 (conversion_buffer, conversion_buffer_size): Variables deleted.
6152 (get_conversion_buffer): Function deleted.
6153 (struct conversion_buffer): New structure.
6154 (MAX_ALLOCA): New macro.
6155 (allocate_conversion_buffer): New macro.
6156 (extend_conversion_buffer, free_conversion_buffer): New functions.
6157 (ccl_coding_driver): Set coding->result.
6158 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
6159 this is the last block of source.
6160 (encode_coding): Likewise. Handle the source block as the last
6161 one only when the whole source text is consumed.
6162 (decode_coding_string): Handle the case that the output buffer is
6163 too small to decode the whole source text. Use
6164 allocate_conversion_buffer, extend_conversion_buffer and
6165 free_conversion_buffer, not get_conversion_buffer.
6166 (encode_coding_string): Likewise.
6167 (init_coding): Function deleted.
6168 (init_coding_once): Delete code to initialize conversion_buffer_size.
6169
6170 * emacs.c (main): Don't call init_coding.
6171
6172 * msdos.c (IT_write_glyphs): Use a locally declared conversion_buffer.
6173
6174 * term.c (write_glyphs): Use a locally declared conversion_buffer.
6175 (insert_glyphs): Likewise.
6176
6177 * w32console.c (write_glyphs): Use a locally declared
6178 conversion_buffer.
6179
6180 2000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
6181
6182 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
6183 member of display_info is NULL.
6184
6185 2000-08-15 Gerd Moellmann <gerd@gnu.org>
6186
6187 * alloc.c (compact_small_strings): Use safe_bcopy, add an assertion.
6188
6189 * term.c (turn_off_face): Reset standout_mode when resetting
6190 appearances with capability `me'.
6191 (write_glyphs): Switch on inverse video before each face change.
6192
6193 2000-08-14 Dave Love <fx@gnu.org>
6194
6195 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
6196 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
6197 (lisp_free): Declare and make static.
6198
6199 * window.c: Fix embedded comment.
6200 (syms_of_window): Fix doc string.
6201
6202 2000-08-14 Gerd Moellmann <gerd@gnu.org>
6203
6204 * keymap.c (push_key_description): If C without modifiers is < 32,
6205 make sure to print `C-' before `M-', like in the manual.
6206
6207 2000-08-11 Gerd Moellmann <gerd@gnu.org>
6208
6209 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
6210 since they aren't relocated anymore.
6211 (sxhash_string): Make sure returned hash code fits in a Lisp integer.
6212
6213 * xdisp.c (try_cursor_movement): Fix handling of cursor in
6214 partially visible line which is smaller than the window's height.
6215
6216 2000-08-11 Kenichi Handa <handa@etl.go.jp>
6217
6218 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
6219 the multibyte form of eight-bit-control characters.
6220 (Fccl_execute_on_string): Initialize ccl->multibyte.
6221
6222 * ccl.h (struct ccl_program): New member multibyte.
6223
6224 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
6225
6226 2000-08-11 Kenichi Handa <handa@etl.go.jp>
6227
6228 * regex.c (regex_compile) <normal_char>: Pay attention to
6229 multibyteness.
6230 (analyse_first) <exactn>: Setup fastmap correctly for
6231 eight-bit-control characters.
6232
6233 2000-08-11 Kenichi Handa <handa@etl.go.jp>
6234
6235 * termhooks.h (enum event_kind): New member multibyte_char_keystroke.
6236
6237 * keyboard.c (make_lispy_event): Handle the new event type
6238 multibyte_char_keystroke.
6239
6240 * xterm.c: Include coding.h.
6241 (XTread_socket): Work around a bug of XmbLookupString. If the
6242 input is from XIM, decode it according to the current locale. In
6243 that case, generate multibyte_char_keystroke events.
6244
6245 2000-08-11 Kenichi Handa <handa@etl.go.jp>
6246
6247 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
6248 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
6249
6250 2000-08-10 Gerd Moellmann <gerd@gnu.org>
6251
6252 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
6253 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
6254 (move_it_in_display_line_to): Record iterator's ascent and descent
6255 before producing glyphs, and restore them when we know the glyph
6256 doesn't fit on the line.
6257 (move_it_to): Restructured so that it's easier to debug. If
6258 moving to a vpos, and not moving to an x or character position,
6259 stop as soon as the specified vpos is reached; don't move further
6260 into that line because that might change the computed line height.
6261 (try_cursor_movement): New function, extracted from the cursor
6262 movement branch of redisplay_window. If ending on a partially
6263 visible line, don't try to scroll if the cursor line is taller
6264 than the window.
6265 (redisplay_window): Use try_cursor_movement.
6266
6267 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
6268 because that function doesn't cope with variable-height lines.
6269
6270 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
6271 box cursor because that's better visible for large images.
6272
6273 2000-08-10 Miles Bader <miles@gnu.org>
6274
6275 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
6276
6277 2000-08-10 Gerd Moellmann <gerd@gnu.org>
6278
6279 * xdisp.c (Vmessages_buffer_name): New variable.
6280 (message_dolog): Use it.
6281 (syms_of_xdisp): Initialize it.
6282
6283 2000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
6284
6285 * msdos.c (IT_note_mouse_highlight): Update the calls to overlays_at.
6286 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
6287 redundant now that keyboard.h is included.
6288
6289 2000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
6290
6291 * keyboard.c (kbd_buffer_events_waiting): New function.
6292
6293 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
6294
6295 * msdos.c: Include keyboard.h.
6296 (XMenuActivate): Empty no_event events from the event buffer. If
6297 no events are left after that, call clear_input_pending.
6298 (mouse_clear_clicks): New function, code moved from mouse_init.
6299 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
6300 mouse driver to ``forget'' any past clicks.
6301
6302 * Makefile.in (msdos.o): Depend on keyboard.h.
6303
6304 2000-08-09 Gerd Moellmann <gerd@gnu.org>
6305
6306 * lisp.h (input_pending): External declaration.
6307
6308 * dispextern.h (Qredisplay_dont_pause): Declare extern.
6309
6310 * xdisp.c (echo_area_display): Display thoroughly if input is
6311 pending. Bind redisplay-dont-pause to t during the redisplay.
6312 in case input is pending.
6313
6314 * dispnew.c (Qredisplay_dont_pause): New variable.
6315 (syms_of_display): Initialize and staticpro it.
6316 (update_frame_1): Don't interrupt the display for pending input if
6317 redisplay_dont_pause is set.
6318
6319 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
6320
6321 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
6322
6323 2000-08-09 Miles Bader <miles@lsi.nec.co.jp>
6324
6325 * callproc.c (Fcall_process): Terminate the unwind-protect around
6326 the post-read-conversion of coding system.
6327
6328 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
6329 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
6330 * buffer.h (overlays_at): Update prototype.
6331 * xdisp.c (next_overlay_change): Update call to overlays_at.
6332 * xfaces.c (face_at_buffer_position): Likewise.
6333 * textprop.c (Fget_char_property): Likewise.
6334 * xterm.c (note_mouse_highlight): Likewise.
6335
6336 * minibuf.c (do_completion): Don't consider a simple change of
6337 case as `completion'.
6338
6339 2000-08-08 Ken Raeburn <raeburn@gnu.org>
6340
6341 * keyboard.c (syms_of_keyboard): Initialize last_point_position_buffer.
6342 * undo.c (record_delete): Make sure last_point_position_buffer is
6343 a buffer before comparing pointers.
6344
6345 * coding.h (decode_coding_string): Declare.
6346
6347 * intervals.h (Fprevious_single_char_property_change): Declare.
6348
6349 * textprop.c (Fprevious_single_char_property_change): Don't do
6350 arithmetic directly on lisp objects.
6351
6352 * editfns.c (find_field): Use EQ, not ==, to compare Lisp objects.
6353
6354 * keyboard.h (menu_item_eval_property): Declare.
6355
6356 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
6357 reuse as buffer name, instead of recreating (and discarding) every
6358 time a message is logged.
6359 (with_echo_area_buffer): Make callback arg A2 a lisp object.
6360 (current_message_1, truncate_message_1, set_message_1)
6361 (display_echo_area_1, resize_mini_window_1): Signatures changed.
6362 (current_message, truncate_echo_area, display_echo_area)
6363 (resize_echo_area_axactly): Changed calls.
6364
6365 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
6366 Lisp object.
6367 (Ffind_coding_systems_region_internal): First argument to Fappend
6368 must be an integer, not a Lisp object.
6369
6370 2000-08-08 Kenichi Handa <handa@etl.go.jp>
6371
6372 * charset.c (Fchar_width): Doc fix.
6373
6374 2000-08-08 Gerd Moellmann <gerd@gnu.org>
6375
6376 * charset.c (Fstring_width): Doc fix.
6377
6378 2000-08-07 Gerd Moellmann <gerd@gnu.org>
6379
6380 * xdisp.c (start_display): When starting display on a continuation
6381 line, clear ascent and descent members of the iterator structure;
6382 the height of the continued line does not affect the height of the
6383 continuation line.
6384 (make_cursor_line_fully_visible): Do nothing if cursor is on a
6385 line taller than the window.
6386 (redisplay_window) <forced window start>: Handle case that the
6387 middle of the window is not found in any row.
6388 (dump_glyph_row): Show more information.
6389 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
6390 first text line in a glyph matrix.
6391
6392 * xterm.c (x_draw_image_foreground): Avoid drawing outside
6393 of the clip area when image doesn't have a mask.
6394
6395 * fns.c (sweep_weak_table): Fix survival conditions for
6396 key-or-value and key-and-value weakness.
6397
6398 * .gdbinit (xhashtable): New command.
6399
6400 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
6401 tables out of the list of all weak hash tables.
6402
6403 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
6404 a new buffer is created, make sure echo_area_buffer[] references
6405 the new buffer.
6406
6407 2000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
6408
6409 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
6410 the doc string.
6411
6412 2000-08-07 Kenichi Handa <handa@etl.go.jp>
6413
6414 * syntax.c (skip_chars): Fix previous change. Make the handling
6415 of unibyte string consistent with that of regex search.
6416
6417 2000-08-05 Gerd Moellmann <gerd@gnu.org>
6418
6419 * xmenu.c (popup_get_selection): Use xfree instead of free.
6420
6421 * fileio.c (Finsert_file_contents): Use xfree instead of free.
6422
6423 * editfns.c (Ftranspose_regions): Use xfree instead of free.
6424
6425 * callproc.c (child_setup): Use xfree instead of free.
6426
6427 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
6428 instead of malloc.
6429 (run_mac_command, closedir): Use `xfree' instead of `free'.
6430
6431 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
6432
6433 * eval.c (error): Use xfree instead of free.
6434
6435 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
6436
6437 * fns.c: Replace `illegal' with `invalid'.
6438 (Fmake_hash_table, make_hash_table): Allow table size of 0.
6439
6440 2000-08-05 Kenichi Handa <handa@etl.go.jp>
6441
6442 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
6443 conversion.
6444
6445 2000-08-04 Noah Friedman <friedman@splode.com>
6446
6447 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
6448 docstring.
6449
6450 2000-08-04 Gerd Moellmann <gerd@gnu.org>
6451
6452 * syntax.c (skip_chars): Fix typo in error message.
6453
6454 2000-08-04 Andreas Schwab <schwab@suse.de>
6455
6456 * m/ia64.h: Moved from s/ia64.h.
6457
6458 2000-08-04 Kenichi Handa <handa@etl.go.jp>
6459
6460 * process.c (read_process_output): Big simplification. Handle
6461 composition and post-read-conversion of coding system correctly.
6462 (send_process): Handle composition correctly.
6463
6464 * callproc.c (Fcall_process): Handle post-read-conversion of
6465 coding system if any.
6466
6467 * coding.c (decode_coding_iso2022): More strict check for handling
6468 single shifting.
6469 (coding_restore_composition): Pay attention to the case that
6470 cmp_data is not set properly (because of invalid code in the
6471 source text).
6472 (run_pre_post_conversion_on_str): Include text properties in the
6473 resulting string.
6474 (decode_coding_string): Set members of coding correctly.
6475
6476 2000-08-03 Gerd Moellmann <gerd@gnu.org>
6477
6478 * s/ia64.h: New file.
6479
6480 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
6481 Use NULL instead of 0 at the end of variable argument list of
6482 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
6483 sizeof (int) < sizeof (void *).
6484
6485 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
6486 of variable argument lists of XtVaGetValues and XtVaSetValues.
6487
6488 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
6489 variable argument lists of XtVaGetValues and XtVaSetValues.
6490
6491 2000-08-02 Gerd Moellmann <gerd@gnu.org>
6492
6493 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
6494 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
6495
6496 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
6497 prototype.
6498
6499 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
6500 in call to Fsingle_key_description.
6501
6502 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
6503 Callers changed.
6504
6505 2000-08-02 Colin Walters <walters@cis.ohio-state.edu>
6506
6507 * window.c (display_buffer_reuse_frames): New variable.
6508 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
6509 frames displaying BUFFER.
6510 (syms_of_window): Define Lisp variable display-buffer-reuse-frames.
6511
6512 2000-08-01 Miles Bader <miles@gnu.org>
6513
6514 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
6515 when to constrain NEW_POS (they were pretty screwed up before).
6516
6517 2000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
6518
6519 * msdos.c (run_msdos_command): Save and restore the master
6520 environment, for the case that child_setup signals an error.
6521 When mirroring slashes in DOS shell commands, don't fail when
6522 argv[2] has embedded blanks.
6523 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
6524 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
6525 (dos_ttraw): Call mouse_setup_buttons.
6526
6527 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
6528 using alloca; free it after run_msdos_command returns.
6529
6530 2000-07-27 Dave Love <fx@gnu.org>
6531
6532 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't define.
6533 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently working.
6534
6535 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
6536
6537 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
6538
6539 * editfns.c (lisp_time_argument): Fix last change.
6540
6541 2000-07-27 Gerd Moellmann <gerd@gnu.org>
6542
6543 * fns.c (Fdelete): Make it work on vectors and strings in addition
6544 to lists.
6545
6546 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
6547 (syms_of_fns): Initialize new variables.
6548 (sweep_weak_table): Handle weakness `key-or-value' and `key-and-value'.
6549 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
6550 weakness, with t meaning the same as `key-and-value'.
6551
6552 2000-07-27 Kenichi Handa <handa@etl.go.jp>
6553
6554 * coding.h (struct coding_system): Member safe_charset deleted.
6555
6556 * coding.c (Qsafe_charsets): This variable deleted.
6557 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system):
6558 New variables.
6559 (coding_safe_chars): New function.
6560 (CODING_SAFE_CHAR_P): New macro.
6561 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
6562 checking safe_charsets member of the coding system. Caller changed.
6563 (detect_coding_iso2022): New local variable safe_chars.
6564 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
6565 safe_charsets member of the coding system.
6566 (decode_coding_iso2022): New local variable safe_chars.
6567 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
6568 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
6569 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
6570 (ENCODE_UNSAFE_CHARACTER): New macro.
6571 (encode_coding_iso2022): New local variable safe_chars. Check
6572 unsafe chars.
6573 (setup_coding_system): Delete the code to initialize
6574 coding->safe_charses
6575 (intersection, find_safe_codings): New functions.
6576 (Ffind_coding_systems_region_internal): New function.
6577 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
6578 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
6579 variable and initialize it.
6580
6581 * fns.c (char_table_ref_and_index): New function.
6582
6583 * lisp.h (char_table_ref_and_index): Add prototype.
6584
6585 2000-07-26 Sam Steingold <sds@gnu.org>
6586
6587 * editfns.c (lisp_time_argument): Added third argument `usec'.
6588 (Ffloat_time): New built-in Lisp function.
6589
6590 2000-07-26 Gerd Moellmann <gerd@gnu.org>
6591
6592 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
6593 for the character code.
6594
6595 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
6596 GNU/Linux.
6597
6598 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
6599 if called for a popup menu.
6600 (xmenu_show): Store help string in widget values.
6601
6602 2000-07-26 Dave Love <fx@gnu.org>
6603
6604 * syswait.h: Move some definitions.
6605 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
6606 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
6607 perspicuous definitions.
6608 (WTERMSIG): Fix bit pattern used.
6609
6610 2000-07-26 Kenichi Handa <handa@etl.go.jp>
6611
6612 * print.c (print_object): If vector printing is truncated, print
6613 "..." to indicate it as well as the case of list printing.
6614
6615 2000-07-25 Gerd Moellmann <gerd@gnu.org>
6616
6617 * xdisp.c (next_element_from_display_vector): Improve comments.
6618
6619 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
6620 for the character code, and the rest for the face id as in 20.x.
6621 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
6622
6623 * window.c (window_display_table): Cleaned up.
6624
6625 * syntax.c (Fforward_word): Add last arg nil in call of
6626 Fconstrain_to_field.
6627
6628 2000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
6629
6630 * fileio.c (Frename_file) [DOS_NT]: If the file names are
6631 identical but for the letter-case, don't call
6632 barf_or_query_if_file_exists.
6633
6634 2000-07-25 Miles Bader <miles@gnu.org>
6635
6636 * editfns.c (find_field): Honor special `boundary' fields.
6637 (Qboundary): New variables.
6638 (syms_of_editfns): Initialize Qboundary.
6639 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
6640 Use scan_buffer instead of find_before_next_newline, because it
6641 allows us to detect the boundary case where there's a newline at
6642 the search limit.
6643 * lisp.h (Fconstrain_to_field): Update external declaration.
6644
6645 2000-07-24 Gerd Moellmann <gerd@gnu.org>
6646
6647 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
6648 if that is nil.
6649
6650 2000-07-24 Dave Love <fx@gnu.org>
6651
6652 * s/sunos4-0.h, s/sol2.h:
6653 (LIBS_TERMCAP): Move from m/sparc.h.
6654
6655 * m/sparc.h (TERMINFO): Moved to system files (probably only
6656 relevant for sunos4 judging by its vintage).
6657 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
6658 __arch64__.
6659
6660 2000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
6661
6662 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
6663 name to single_keymap_panes.
6664
6665 2000-07-24 Andreas Schwab <schwab@suse.de>
6666
6667 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
6668
6669 2000-07-24 Gerd Moellmann <gerd@gnu.org>
6670
6671 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
6672 parameters instead of using int parameters. Expect FN to accept
6673 EMACS_INT parameters.
6674 (display_echo_area, resize_echo_area_axactly, current_message)
6675 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
6676 with new argument list.
6677 (resize_mini_window_1): New callback function.
6678 (current_message_1, truncate_message_1, set_message_1): Change
6679 parameter lists to the new format expected by with_echo_area_buffer.
6680
6681 2000-07-24 Kenichi Handa <handa@etl.go.jp>
6682
6683 * fontset.c (fontset_ref): Remove INLINE declaration.
6684 (fontset_ref_via_base): Likewise.
6685 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
6686 to downcase.
6687
6688 2000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
6689
6690 * msdos.c (IT_note_mouse_highlight): Process overlays in the
6691 correct order of priority. If help echo was found in an overlay,
6692 use that overlay as the object in which the help echo was found.
6693
6694 2000-07-22 Miles Bader <miles@gnu.org>
6695
6696 * textprop.c (Fprevious_single_char_property_change): The initial
6697 property value should be from the position preceding POSITION, not
6698 following it.
6699
6700 2000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
6701
6702 * coding.c (syms_of_coding): Doc fix for
6703 inhibit-iso-escape-detection.
6704
6705 2000-07-21 Gerd Moellmann <gerd@gnu.org>
6706
6707 * xterm.c (note_mouse_highlight): Process overlays in the right
6708 order of priority.
6709
6710 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
6711
6712 * xterm.c (note_mouse_highlight): If help-echo was found in an
6713 overlay, use that overlay as the object in which the help was found.
6714
6715 * window.c (foreach_window_1): Fix typo reversing an if-condition.
6716
6717 * window.c (foreach_window): Instead of a fake variable argument
6718 list, take one USER_DATA argument.
6719 (foreach_window_1): Likewise, and call callback functions with two
6720 args, the window and USER_DATA.
6721 (struct check_window_data): New struct.
6722 (check_window_containing): Use it.
6723 (window_from_coordinates): Set up a struct check_window_data for
6724 foreach_window.
6725 (add_window_to_list, freeze_window_start): Change parameters
6726 according to new calling convention.
6727
6728 * window.h (foreach_window): Change prototype.
6729
6730 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
6731
6732 2000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
6733
6734 * xmenu.c (menu_help_callback): Call show_help_echo with
6735 additional arguments OBJECT and POS.
6736
6737 2000-07-21 Kenichi Handa <handa@etl.go.jp>
6738
6739 * data.c (Faset): Allow storing any multibyte character in a
6740 string. Convert unibyte string to multibyte if necessary.
6741
6742 * xfns.c (x_encode_text): New function.
6743 (x_set_name): Use x_encode_text.
6744 (x_set_title): Likewise.
6745
6746 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
6747
6748 * xterm.h (x_encode_text): Add prototype.
6749
6750 2000-07-20 Dave Love <fx@gnu.org>
6751
6752 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
6753 xfree, not free.
6754
6755 2000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
6756
6757 * msdos.c (help_echo_window): New variable.
6758 (syms_of_msdos): Initialize and staticpro it.
6759 (IT_note_mode_line_highlight): Set help_echo_window.
6760 (IT_note_mouse_highlight): Ditto.
6761 (dos_rawgetc): Store help_echo_window in the second event produced
6762 for HELP_EVENTs.
6763
6764 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
6765 Record the object that generated the help echo and the position of
6766 that object in help_echo_object and help_echo_pos. Record that
6767 some glyphs in a row are displayed in mouse-face.
6768 (IT_update_begin): Don't clear mouse highlight unless one of the
6769 enabled glyph rows is marked as being displayed in mouse-face.
6770 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
6771 and position recorded in help_echo_object and help_echo_pos to the
6772 event queue.
6773 (IT_menu_display): Accept a new argument PN: the pane number of
6774 the current menu pane. Record the pane number and the item
6775 number of the item which has associated help string.
6776 (XMenuActivate): Update the prototype for help_callback in
6777 function declaration. Call IT_menu_display with the current menu
6778 pane number as an additional argument. Call help_callback with
6779 two additional arguments: the pane number and the item number of
6780 the menu item associated with the help text.
6781 (help_echo_object, help_echo_pos): New variables.
6782 (syms_of_msdos): Initialize them and staticpro help_echo_object.
6783
6784 * msdos.h (XMenuActivate): Update prototype.
6785
6786 2000-07-19 Gerd Moellmann <gerd@gnu.org>
6787
6788 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
6789 Add some more prototypes.
6790
6791 * xterm.c, xterm.h: Add some more prototypes.
6792
6793 * lisp.h (Fnext_single_char_property_change): Add prototype.
6794
6795 * dispnew.c (direct_output_for_insert): Remove confusing
6796 outer local variable mouse_face_overwritten_p.
6797 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
6798
6799 * alloc.c (allocate_string_data): Don't copy old string contents.
6800
6801 2000-07-19 Kenichi Handa <handa@etl.go.jp>
6802
6803 * coding.c (code_convert_region): Delete text properties before
6804 shrinking the conversion region.
6805
6806 2000-07-18 Gerd Moellmann <gerd@gnu.org>
6807
6808 * dispnew.c (update_text_area): Write the whole row if it
6809 has mouse-face in it.
6810
6811 * xfaces.c (face-alternative-font-family-alist): Remove
6812 DEFVAR_LISP; staticpro instead.
6813
6814 * xmenu.c (menu_help_callback): Call show_help_echo with
6815 new arguments.
6816
6817 * keyboard.c (show_help_echo): Add parameter WINDOW.
6818 (read_char): Call show_help_echo with window extracted from Lisp
6819 help event.
6820 (gen_help_event): Add parameter WINDOW.
6821
6822 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
6823
6824 * xterm.c (help_echo_window): New variable.
6825 (note_mouse_highlight, note_tool_bar_highlight): Set help_echo_window.
6826 (XTread_socket): Pass help_echo_window to gen_help_event.
6827 (syms_of_xterm): Initialize and staticpro help_echo_window.
6828
6829 2000-07-18 Dave Love <fx@gnu.org>
6830
6831 * Makefile.in: Fix dependencies of blockinput.h on atimer.h, systime.h.
6832
6833 2000-07-18 Gerd Moellmann <gerd@gnu.org>
6834
6835 * alloc.c (allocate_string_data): If string had already data
6836 assigned, copy old contents to new string data.
6837
6838 * coding.c (syms_of_coding): Fix typo in spelling of variable
6839 `inhibit-iso-escape-detection'.
6840
6841 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
6842
6843 * Makefile.in: Add dependencies on dispextern.h.
6844 (alloca.o): Don't define malloc and define EMACS_FREE instead of
6845 `free'; both can conflict with system header files.
6846
6847 2000-07-18 Kenichi Handa <handa@etl.go.jp>
6848
6849 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
6850 undefined.
6851
6852 2000-07-18 Dave Love <fx@gnu.org>
6853
6854 * window.c (Fwindow_list): Declare arg `window'.
6855
6856 2000-07-18 Kenichi Handa <handa@etl.go.jp>
6857
6858 * coding.c (setup_coding_system): Don't override the explicitly
6859 specified designations.
6860
6861 2000-07-15 Miles Bader <miles@gnu.org>
6862
6863 * editfns.c (char_property_eq, char_property_stickiness): Renamed
6864 from `text_property_eq' and `text_property_stickiness', respectively.
6865 (find_field, Fconstrain_to_field, char_property_eq)
6866 (char_property_stickiness): Changed to call char-property functions
6867 instead of text-property-only ones.
6868
6869 * textprop.c (Fnext_single_char_property_change): Made a subr (was
6870 `next_single_char_property_change'). Do more error checking, and
6871 cleanup limit behavior.
6872 (Fprevious_single_char_property_change): New function.
6873 (syms_of_textprop): Initialize new subrs.
6874
6875 * xdisp.c (display_prop_end, invisible_text_between_p):
6876 Call Fnext_single_char_property_change instead of
6877 next_single_char_property_change.
6878
6879 2000-07-15 Jason Rumney <jasonr@gnu.org>
6880
6881 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
6882 after menu is finished with.
6883 (add_menu_item): Only consider wv->title as a menu title.
6884 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
6885
6886 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
6887 null title.
6888 (FONT_REGEXP): Remove unused macro, and its sub-components.
6889 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
6890
6891 * w32term.c (help_echo_object, help_echo_pos): New variables.
6892 (note_mode_line_highlight): Store additional information about the
6893 help-echo in help_echo_object and help_echo_pos. Check both
6894 `local-map' and `keymap' properties for changing the cursor
6895 (note_mouse_highlight): Store additional information about the
6896 help-echo in help_echo_object and help_echo_pos.
6897 (note_tool_bar_highlight): Set help_echo_object to nil and
6898 help_echo_pos to -1.
6899 (w32_read_socket): Use gen_help_event instead of filling
6900 input_events manually.
6901 (syms_of_w32term): Staticpro help_echo_object.
6902 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
6903 set, arrange for a mouse-highlight redisplay in XTframe_up_to_date.
6904 (x_clear_mouse_face): New function.
6905 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
6906 (x_update_window_begin): No need to turn off the mouse
6907 highlight here.
6908 (show_mouse_face): Set the mouse_face_p flag of glyph rows
6909 depending on whether they contain glyphs highlighted in mouse-face.
6910 (x_fill_stretch_glyph_string): Consume runs of stretch
6911 glyphs instead of a single one.
6912 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
6913 with new argument list.
6914 (x_set_glyph_string_gc): Make sure the face's GC is valid.
6915 (x_append_glyph, x_append_composite_glyph)
6916 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
6917 changes in struct glyph starting 1999-12-27. See comments for
6918 xterm.c on 2000-07-05.
6919
6920 2000-07-14 Sam Steingold <sds@gnu.org>
6921
6922 * xfaces.c (realize_x_face): Fix the last patch:
6923 check `default_face' before dereferencing.
6924
6925 2000-07-14 Dave Love <fx@gnu.org>
6926
6927 * syntax.c (back_comment): Add null default in switch (for pcc).
6928
6929 2000-07-14 Kenichi Handa <handa@etl.go.jp>
6930
6931 * xfaces.c (realize_x_face): Make fontset using the base of the
6932 default_face's fontset, not using the default fontset.
6933
6934 * coding.c (inhibit_iso_escape_detection): New variable.
6935 (syms_of_coding): Make it a Lisp variable.
6936 (detect_coding_iso2022): If inhibit_iso_escape_detection is
6937 nonzero, ignore ISO2022's escape sequence.
6938
6939 2000-07-14 Gerd Moellmann <gerd@gnu.org>
6940
6941 * alloca.c (malloc) [emacs]: Define as xmalloc.
6942
6943 * xfns.c (Fx_show_tip): If frame parameters contain a position,
6944 use that instead of the mouse position. Add parameters DX and DY.
6945
6946 * dispextern.h (Fx_show_tip): Adjust number of parameters
6947 in prototype.
6948
6949 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
6950 if HELP is a function, call it with OBJECT and POS as parameters
6951 to get the help to display.
6952 (gen_help_event, kbd_buffer_store_help_event): New functions.
6953 (kbd_buffer_get_event): Construct the Lisp help-event differently.
6954 (read_char): Call show_help_echo with new parameters.
6955
6956 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
6957 Add prototypes.
6958
6959 * xterm.c (help_echo_object, help_echo_pos): New variables.
6960 (note_mode_line_highlight): Store additional information about the
6961 help-echo in help_echo_object and help_echo_pos. Check both
6962 `local-map' and `keymap' properties for changing the cursor
6963 (note_mouse_highlight): Store additional information about the
6964 help-echo in help_echo_object and help_echo_pos.
6965 (note_tool_bar_highlight): Set help_echo_object to nil and
6966 help_echo_pos to -1.
6967 (XTread_socket): Use gen_help_event instead of filling
6968 input_events manually.
6969 (syms_of_xterm): Staticpro help_echo_object.
6970
6971 * xmenu.c (menu_highlight_callback): Use
6972 kbd_buffer_store_help_event instead of setting up and input_event
6973 structure manually.
6974
6975 * xdisp.c (eval_form): GCPRO argument sexpr.
6976 (call_function): New function.
6977 (handle_single_display_prop): Use call_function and FUNCTIONP
6978 instead of checking whether if font_height is a symbol and
6979 using eval_form.
6980
6981 * eval.c (internal_condition_case_2): New function.
6982
6983 * lisp.h (FUNCTIONP): New macro.
6984 (internal_condition_case_2, call_function): Add prototypes.
6985
6986 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
6987 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
6988 Always set `arg' member of input_events.
6989 (construct_menu_click): Unused function removed.
6990
6991 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
6992
6993 * w32term.c (construct_mouse_click, construct_mouse_wheel)
6994 (construct_drag_n_drop, x_scroll_bar_handle_click)
6995 (w32_read_socket): Always set `arg' member of input_events.
6996
6997 * keyboard.c (show_help_echo): Use eval_form. Add comment.
6998
6999 * lisp.h (eval_form): Add prototype.
7000
7001 * xdisp.c (eval_form): Make it externally visible.
7002
7003 2000-07-13 Gerd Moellmann <gerd@gnu.org>
7004
7005 * xterm.c (x_handle_tool_bar_click): Store the frame in the
7006 frame_or_window slot of TOOL_BAR_EVENT input events instead of
7007 consing. For prefix events, store the frame in the `arg' slot of
7008 the event, otherwise store the key there.
7009 (XTread_socket): Instead of consing, use the frame_or_window slot
7010 of HELP_EVENTs for the frame, and the `arg' slot for the help string.
7011
7012 * xmenu.c (menu_highlight_callback): Store help string in the
7013 `arg' member of the input event; don't cons.
7014 (menubar_selection_callback): Use the `arg' slot of input events
7015 to queue additional information, instead of consing.
7016
7017 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
7018
7019 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
7020 TOOL_BAR_EVENTs.
7021 (w32_read_socket): Adapt to changes in HELP_EVENTs.
7022
7023 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
7024 input events to queue additional information, instead of consing.
7025
7026 * keyboard.c (kbd_buffer_gcpro): Renamed from
7027 kbd_buffer_frame_or_window. Now used for all Lisp objects
7028 referenced from the input queue.
7029 (kbd_buffer_store_event): Always use structure assignment for
7030 copying input events. Record all Lisp objects referenced from
7031 events in kbd_buffer_gcpro.
7032 (kbd_buffer_get_event): Construct Lisp `help-echo' events
7033 differently from input events. Test for prefix menu_bar_events
7034 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
7035 event in kbd_buffer_gcpro to nil.
7036 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
7037 frame_or_window is equal to its arg member as prefix events.
7038 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
7039 used by an input event to nil.
7040 (init_keyboard): Use two times the size of the input queue
7041 for kbd_buffer_gcpro.
7042 (syms_of_keyboard): Likewise.
7043
7044 * emacs.c (handle_USR2_signal, handle_USR1_signal):
7045 Use USER_SIGNAL_EVENT.
7046
7047 * termhooks.h (struct input_event): Add member `arg'.
7048 (MENU_BAR_EVENT): Renamed from menu_bar_event.
7049 (USER_SIGNAL_EVENT): Renamed from user_signal.
7050
7051 * xfaces.c (ASET): Remove definition.
7052
7053 * lisp.h (AREF, ASET, ASIZE): New macros.
7054
7055 * fontset.c (AREF, ASIZE): Remove definitions.
7056
7057 * fns.c (AREF): Remove definition.
7058
7059 * composite.c (AREF): Remove definition.
7060
7061 2000-07-12 Gerd Moellmann <gerd@gnu.org>
7062
7063 * dispnew.c (redraw_overlapped_rows): Add missing local.
7064 (scrolling_window): Remove debug code.
7065
7066 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
7067 Before scrolling, turn off a mouse-highlight in the window
7068 being scrolled.
7069
7070 * xterm.c (x_update_window_end): Add parameter
7071 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
7072 redisplay in XTframe_up_to_date.
7073 (x_clear_mouse_face): New function.
7074 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
7075
7076 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
7077 current glyph row.
7078 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
7079 it when any row is written to that contains glyphs highlighted in
7080 mouse-face.
7081 (update_window): Call the window update end hook with new
7082 parameter MOUSE_FACE_OVERWRITTEN_P.
7083 (direct_output_for_insert): Give up if row contains mouse-face.
7084
7085 * dispextern.h (struct redisplay_interface): Add parameter
7086 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
7087 (clear_mouse_face): New function pointer member.
7088
7089 2000-07-11 Stefan Monnier <monnier@cs.yale.edu>
7090
7091 * syntax.c (back_comment): Use one switch rather than a few `if's.
7092 Obey open_paren_in_column_0_is_defun_start.
7093 When reverting to the `slow' method, try to nicely handle the case
7094 of nested comments by checking that the comment-starter we found
7095 does indeed match the comment-ender.
7096 (scan_sexps_forward, scan_sexps_forward):
7097 Ignore excessive opening parenthesis rather than throwing an error.
7098
7099 2000-07-11 Gerd Moellmann <gerd@gnu.org>
7100
7101 * doc.c (Fsubstitute_command_keys): Handle case that a GC
7102 in Fwhere_is_internal or get_keymap_1 relocates string contents.
7103
7104 * dispnew.c (direct_output_forward_char): Give up if currently
7105 displaying a message instead of the minibuffer contents.
7106
7107 * xterm.c (x_update_window_begin): No need to turn off the mouse
7108 highlight here.
7109 (show_mouse_face): Set the mouse_face_p flag of glyph rows
7110 depending on whether they contain glyphs highlighted in mouse-face.
7111
7112 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
7113 compare the mouse_face_p flags of both rows.
7114
7115 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
7116
7117 2000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
7118
7119 * keyboard.c (show_help_echo): Accept additional parameter
7120 ok_to_overwrite_keystroke_echo.
7121 (read_char): Call show_help_echo with a zero
7122 ok_to_overwrite_keystroke_echo argument.
7123 * keyboard.h (show_help_echo): Update prototype of show_help_echo.
7124 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
7125 ok_to_overwrite_keystroke_echo argument.
7126 * w32menu.c (w32_menu_display_help): Call show_help_echo with
7127 non-zero ok_to_overwrite_keystroke_echo argument.
7128
7129 2000-07-10 Gerd Moellmann <gerd@gnu.org>
7130
7131 * xdisp.c (try_window_id): If changes are all below what is
7132 displayed in the window, and point is in the window, we still
7133 might have to find point on the display.
7134
7135 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
7136 glyphs instead of a single one.
7137 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
7138 with new argument list.
7139 (x_set_glyph_string_gc): Make sure the face's GC is valid.
7140
7141 * keymap.c (get_keymap_1): Add comment that this function can GC.
7142 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
7143 comment that functions can GC.
7144 (Fset_keymap_parent): GCPRO arg KEYMAP.
7145
7146 2000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
7147
7148 * msdos.c (XMenuActivate): After exiting the menu, restore the
7149 echo area message and erase it.
7150
7151 2000-07-10 Kenichi Handa <handa@etl.go.jp>
7152
7153 * fontset.c (Ffontset_info): Make the return value more compatible
7154 with that of Emacs 20.
7155
7156 2000-07-07 Gerd Moellmann <gerd@gnu.org>
7157
7158 * eval.c (Fsignal): Handle case that backtrace_list is null.
7159
7160 2000-07-07 Kenichi Handa <handa@etl.go.jp>
7161
7162 * ccl.c (Fccl_execute): Typo fixed.
7163
7164 2000-07-06 Gerd Moellmann <gerd@gnu.org>
7165
7166 * window.c (window_loop): Add missing gcpro1 local variable.
7167
7168 * window.c (Fwindow_list): Reverse list at the end.
7169 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
7170 means allow windows on OWINDOW's frame, only.
7171 (window_loop): Simplified; use Fwindow_list.
7172
7173 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
7174
7175 2000-07-05 Gerd Moellmann <gerd@gnu.org>
7176
7177 * xterm.c (XTread_socket): Increment handling_signal at the start,
7178 decrement it at the end.
7179
7180 * eval.c (handling_signal): New variable.
7181 (Fsignal): Abort if handling_signal is non-zero.
7182
7183 * lisp.h (handling_signal): External declaration.
7184
7185 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
7186
7187 2000-07-05 Ken Raeburn <raeburn@gnu.org>
7188
7189 Sound support for NetBSD through "Linux emulation" support:
7190 * config.in (HAVE_SOUNDCARD_H): Undef.
7191 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
7192 * Makefile.in (LIBSOUND): New variable.
7193 (LIBES): Include it.
7194 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and <soundcard.h>.
7195 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined elsewhere.
7196 (vox_open): Use DEFAULT_SOUND_DEVICE.
7197 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
7198
7199 2000-07-05 Gerd Moellmann <gerd@gnu.org>
7200
7201 * print.c (print_error_message): If Vsignaling_function is set,
7202 show it in *Messages*.
7203
7204 * lisp.h (Vsignaling_function): External declaration.
7205
7206 * eval.c (Vsignaling_function): New variable.
7207 (Fsignal): Compute it.
7208 (syms_of_eval): Staticpro it.
7209
7210 2000-07-05 Dave Love <fx@gnu.org>
7211
7212 * syswait.h: Use the autoconf recommended approach. Old code
7213 #if'd out in case we need to revert.
7214
7215 * config.in (HAVE_SYS_WAIT_H): Added.
7216
7217 2000-07-05 Andrew Innes <andrewi@gnu.org>
7218
7219 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
7220 when non-NULL instead of __morecore, to take account of buffer
7221 memory. This also solves a problem with spurious memory warnings
7222 on Windows.
7223
7224 * ralloc.c: Make real_morecore non-static.
7225
7226 * eval.c (internal_condition_case): Comment out abort if
7227 interrupt_input_blocked is not zero.
7228
7229 * makefile.nt: Add support for `bootstrap' and related targets.
7230 Include minimal debug info in emacs.exe in release build.
7231 Remove all dependencies on lisp.h, and fixup some others.
7232
7233 * w32.c (init_environment): Install code from 20.7 for providing
7234 default values for environment variables, based on the
7235 executable's own location.
7236 (map_w32_filename): Handle filenames that are longer than MAX_PATH.
7237 (sys_socket): Install socket inheritance bug fix from 20.7.
7238
7239 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
7240 here via blockinput.h).
7241
7242 2000-07-05 Stefan Monnier <monnier@cs.yale.edu>
7243
7244 * w32menu.c (w32_menu_display_help):
7245 * xmenu.c (menu_help_callback): Use show_help_echo.
7246
7247 * keyboard.h (show_help_echo): Declare.
7248
7249 * keyboard.c (show_help_echo): New function, extracted from read_char.
7250 Feval its `msg' argument if it's a cons cell.
7251 (read_char): Use it.
7252 (follow_key): Pass `autoload' to get_keyelt.
7253
7254 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
7255 (note_tool_bar_highlight, XTread_socket):
7256 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
7257 (dos_rawgetc):
7258 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
7259 (note_tool_bar_highlight, w32_read_socket):
7260 Do not gratuitously ignore non-string `help-echo' properties.
7261
7262 2000-07-05 Gerd Moellmann <gerd@gnu.org>
7263
7264 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
7265
7266 * window.c (delete_all_subwindows): Reset Vwindow_list.
7267
7268 * xterm.c (x_append_glyph, x_append_composite_glyph)
7269 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
7270 changes in struct glyph starting 1999-12-27. Some bit-fields of
7271 struct glyph were not set, which made glyphs unequal when compared
7272 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
7273 effects were the result. This also depended on the contents of
7274 memory returned by xmalloc. If flickering happens again, activate
7275 the code in clear_glyph_row that's in #if 0. If the flickering is
7276 gone with that, chances are that it is caused by something similar.
7277
7278 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
7279
7280 * dispextern.h: Add some comments.
7281
7282 * window.c (add_window_to_list): Add parameter LIST.
7283 (window_list): Order list so that, for each frame, windows are
7284 in canonical order, and so that frames appear in the list in
7285 the order given by Vframe_list.
7286 (next_window): Reverse the handling of NEXT_P.
7287
7288 2000-07-04 Gerd Moellmann <gerd@gnu.org>
7289
7290 * window.c (Vwindow_list): New variable.
7291 (make_window, delete_window): Set Vwindow_list to nil.
7292 (check_window_containing): New function.
7293 (window_from_coordinates): Rewritten.
7294 (add_window_to_list, window_list, candidate_window_p)
7295 (decode_next_window_args, next_window): New functions.
7296 (Fnext_window, Fprevious_window): Rewritten in terms of next_window.
7297 (Fwindow_list): New function.
7298 (Fother_window): Cleaned up.
7299 (foreach_window): Add a longer "variable argument list". Let
7300 callback function return 0 to indicate that cycling over windows
7301 should stop.
7302 (foreach_window_1): Likewise.
7303 (freeze_window_start): Return int.
7304 (init_window): New function.
7305 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
7306
7307 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
7308 input_event with bzero.
7309 (main): Call init_window.
7310
7311 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
7312 a menu filter.
7313
7314 2000-07-04 Kenichi Handa <handa@etl.go.jp>
7315
7316 * composite.h (make_composition_value_copy): Extern it.
7317
7318 * composite.c (make_composition_value_copy): New function.
7319
7320 * editfns.c (Fformat): While copying text properties, make each
7321 composition property value a copy.
7322
7323 * fns.c (concat): While copying text properties, make each
7324 composition property value a copy.
7325
7326 2000-07-03 Gerd Moellmann <gerd@gnu.org>
7327
7328 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
7329
7330 * fns.c (sweep_weak_table): Mark only objects that are not
7331 marked already.
7332
7333 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
7334 include those frames as candidates which have their focus
7335 redirected to the minibuffer frame.
7336
7337 2000-07-03 Stefan Monnier <monnier@cs.yale.edu>
7338
7339 * fns.c (Fputhash): Return `value' rather than nil.
7340
7341 2000-06-30 Gerd Moellmann <gerd@gnu.org>
7342
7343 * frame.c (next_frame): Don't check focus redirection in case
7344 MINIBUF is a window. Doing so excludes frames using MINIBUF
7345 unless their focus is redirected, which contradicts the
7346 specification of next-frame, and leads to infinite loops in
7347 certain situations when cycling through windows with next-window.
7348
7349 2000-06-30 Kenichi Handa <handa@etl.go.jp>
7350
7351 * coding.c (code_convert_region): Even if the length of text is
7352 zero, try to convert it if coding->type is coding_type_ccl.
7353 (decode_coding_string, encode_coding_string): Likewise.
7354
7355 2000-06-28 Gerd Moellmann <gerd@gnu.org>
7356
7357 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
7358 the display if windows_or_buffers_changed.
7359
7360 * dispnew.c (struct row_entry): New structure.
7361 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
7362 (row_table_size, old_lines, new_lines, old_lines_size)
7363 (new_lines_size, run_pool, runs_size, runs): New variables.
7364 (add_row_entry): New function.
7365 (scrolling_window): Use data structures allocated with xmalloc and
7366 held in global variables, instead of allocating them with alloca and
7367 holding them in local variables. Use a larger hash table whose
7368 size depends on glyph matrix sizes. Don't use bzero to clear the
7369 hash table; instead, clear used slots only.
7370
7371 * fns.c (next_almost_prime): Make it externally visible.
7372
7373 * lisp.h (next_almost_prime): Add prototype.
7374
7375 * s/isc4-0.h (sigunblock): Define.
7376
7377 * s/sco5.h (sigunblock): Define.
7378
7379 2000-06-27 Dave Love <fx@gnu.org>
7380
7381 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
7382 (moved to osf5-0.h).
7383 [!NOT_C_CODE]: Protect string.h stuff.
7384
7385 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
7386 (sys_siglist, NSIG): Definitions moved here from osf1.h.
7387
7388 2000-06-27 Gerd Moellmann <gerd@gnu.org>
7389
7390 * xdisp.c (resize_mini_window): Subtract the extra line spacing
7391 below the last line from the needed window height.
7392
7393 2000-06-26 Stefan Monnier <monnier@cs.yale.edu>
7394
7395 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
7396 (Fwidget_get): Use it.
7397 (syms_of_fns): Defsubr it.
7398
7399 2000-06-26 Gerd Moellmann <gerd@gnu.org>
7400
7401 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
7402 display info for XIM.
7403 (xim_open_dpy): Likewise.
7404 (xim_close_dpy): Don't free the display info's XIM.
7405
7406 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
7407
7408 * config.in (USE_XIM): New define.
7409
7410 * keymap.c (get_keyelt): For menu-items containing a `:filter
7411 FILTER', apply FILTER to the menu-item's definition to get the
7412 real definition to use.
7413
7414 * lisp.h (QCfilter): External declaration.
7415
7416 * xfns.c (Fimage_size): New function.
7417 (syms_of_xfns): Defsubr it.
7418
7419 2000-06-26 Andreas Schwab <schwab@suse.de>
7420
7421 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
7422 Fstring_as_unibyte.
7423
7424 2000-06-25 Dave Love <fx@gnu.org>
7425
7426 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag, tgetnum.
7427
7428 * Makefile.in (blockinput.h): Depend on atimer.h.
7429 (atimer.h): Depend on systime.h.
7430
7431 * blockinput.h: Protect against multiple inclusion. Include atimer.h.
7432
7433 * atimer.h: Protect against multiple inclusion. Include systime.h.
7434
7435 * lisp.h (swap_in_global_binding): Declare.
7436
7437 2000-06-24 Ken Raeburn <raeburn@gnu.org>
7438
7439 * process.c (Fopen_network_stream): Turn off atimers for duration
7440 of call to connect. (Patch from Gerd.)
7441
7442 2000-06-23 Dave Love <fx@gnu.org>
7443
7444 * ralloc.c: Maybe include unistd.h
7445
7446 * emacs.c (setgrp): Undefine before defining.
7447 (malloc_warning, set_time_zone_rule, index): Prototype.
7448
7449 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
7450 HAVE_STRUCT_TIMEZONE.
7451
7452 * s/osf1.h: Move string.h hack here from alpha.h and make it
7453 conditional.
7454 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
7455 _XOPEN_SOURCE.
7456 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
7457 (SOCKLEN_TYPE): Don't define.
7458
7459 * m/alpha.h: Remove string.h hack.
7460
7461 * s/osf5-0.h: New file.
7462
7463 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
7464 include time.h, done by systime.h.
7465 [__FreeBSD__]: Remove redundant includes.
7466
7467 * callproc.c (setpgrp): Undefine before defining.
7468 (delete_temp_file): Return Qnil to avoid warning.
7469
7470 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
7471
7472 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
7473 HAVE_X_WINDOWS.
7474
7475 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
7476
7477 * composite.h (compose_text): Declare.
7478
7479 * xterm.c: Don't include sys/types.h unconditionally. Don't
7480 protect its inclusion with !USG (following xmenu.c).
7481
7482 2000-06-23 Gerd Moellmann <gerd@gnu.org>
7483
7484 * xfns.c (x_create_tip_frame): Initialize frame's colors like
7485 in x_create_frame.
7486
7487 2000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
7488
7489 * coding.c (decode_eol_post_ccl): Special handling for undecided
7490 and inconsistent EOL types.
7491
7492 2000-06-22 Gerd Moellmann <gerd@gnu.org>
7493
7494 * xrdb.c (x_load_resources): Add default resource for scroll bar's
7495 trough color and main window's background color.
7496
7497 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events differently.
7498
7499 * xterm.h (Xt_app_con): External declaration.
7500
7501 * widget.c (EmacsFrameRealize): Fix typo.
7502
7503 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
7504
7505 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
7506 (handle_invisible_prop): Record the start of invisible text in
7507 it->add_overlay_start.
7508 (struct overlay_entry): Add member `overlay'.
7509 (handle_overlay_change): Simplify.
7510 (next_overlay_string): After having processed overlay strings at the
7511 end of the buffer, record that fact in
7512 it->overlay_strings_at_end_processed_p.
7513 (compare_overlay_entries): If before- and after-strings come
7514 from the same overlay, let before-strings come first.
7515 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
7516 (load_overlay_strings): Take it->add_overlay_start into account
7517 when adding overlay strings.
7518
7519 * dispextern.h (struct it): Add member add_overlay_start.
7520
7521 2000-06-22 Dave Love <fx@gnu.org>
7522
7523 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
7524
7525 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
7526
7527 2000-06-22 Kenichi Handa <handa@etl.go.jp>
7528
7529 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
7530 is greater than 0.
7531
7532 2000-06-21 Dave Love <fx@gnu.org>
7533
7534 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
7535
7536 2000-06-21 Stefan Monnier <monnier@cs.yale.edu>
7537
7538 * syntax.c (back_comment): Simplify string-parity counting (with
7539 the added benefit of handling multiple string-styles as long as
7540 they are not intertwined).
7541 Jump to the slow code as soon as a comment starter is found in
7542 a "string_lossage" position. Fixes the case: " /* " /* " */.
7543
7544 2000-06-21 Dave Love <fx@gnu.org>
7545
7546 * Makefile.in: Use GETLOADAVG_LIBS.
7547
7548 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
7549 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
7550
7551 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
7552
7553 * syntax.c (describe_syntax): Recognize the `n'estable bit.
7554 (Fforward_comment, scan_lists):
7555 Check the comstyle of single-char comment-starters.
7556 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
7557 we're just at the beginning of the comment (f.ex with (*) ... (*)).
7558 Check the comstyle of single-char comment-starters.
7559 Clarify control-flow around the Scomment case.
7560
7561 2000-06-20 Dave Love <fx@gnu.org>
7562
7563 * fns.c (make_hash_table, maybe_resize_hash_table):
7564 Cast arg of next_almost_prime.
7565
7566 * tparam.c [emacs]: Include lisp.h.
7567
7568 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
7569 and unistd.h.
7570
7571 2000-06-20 Gerd Moellmann <gerd@gnu.org>
7572
7573 * keyboard.c (adjust_point_for_property): Check if display
7574 property should be treated as intangible by looking at its value.
7575
7576 * xdisp.c (single_display_prop_intangible_p)
7577 (display_prop_intangible_p): New functions.
7578
7579 * dispextern.h (display_prop_intangible_p): Add prototype.
7580
7581 * xdisp.c (dump_glyph_row): Show type of glyph->object.
7582
7583 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
7584 argument to sigprocmask.
7585
7586 * s/sco5.h (sigblock): Redefined to pass a pointer as second
7587 argument to sigprocmask.
7588
7589 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
7590 sigprocmask_set, and pass a pointer to it to sigprocmask.
7591
7592 * sysdep.c (sigprocmask_set): New variable.
7593
7594 * fileio.c (make_temp_name): Don't use `%s' in string passed to
7595 report_file_error.
7596
7597 2000-06-20 Sam Steingold <sds@gnu.org>
7598
7599 * xrdb.c: Don't declare xmalloc, xrealloc.
7600
7601 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
7602
7603 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
7604 (re_comp): Cast gettext return value to avoid complaints when
7605 !HAVE_LIBINTL.
7606
7607 2000-06-20 Dave Love <fx@gnu.org>
7608
7609 * m/stride.h, m/mips.h: Don't define HAVE_GETWD, HAVE_GETTIMEOFDAY.
7610
7611 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
7612
7613 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
7614
7615 * m/alpha.h: Don't declare xmalloc, xrealloc.
7616
7617 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
7618
7619 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
7620
7621 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
7622
7623 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
7624 HAVE_GETWD.
7625
7626 * keyboard.h (poll_for_input_1): Declare.
7627
7628 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
7629
7630 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
7631
7632 * doprnt.c: Don't declare xmalloc, xrealloc.
7633
7634 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
7635 (getenv, ctime, getwd): Removed.
7636 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
7637
7638 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
7639 x_set_tool_bar_lines.
7640
7641 * config.in: Add HAVE_GETWD. Move some definitions above
7642 machine/system includes.
7643
7644 2000-06-20 Kenichi Handa <handa@etl.go.jp>
7645
7646 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
7647
7648 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
7649 contain information about ENCODING.
7650
7651 * fontset.c (FONTSET_ASCII): Use the first element of char table
7652 for an ASCII font, not defalt slot.
7653 (fontset_ref_via_base): If FONTSET doesn't contain information for
7654 C, try the default fontset.
7655 (make_fontset): Don't copy the default fontset.
7656 (fontset_font_pattern): Likewise.
7657 (accumulate_font_info): If ELT is nil, use the corresponding
7658 element in the default fontset.
7659
7660 2000-06-19 Dave Love <fx@gnu.org>
7661
7662 * syntax.c (Fparse_partial_sexp): Doc fix.
7663
7664 * regex.h: Test PROTOTYPES as well as __STDC__.
7665
7666 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
7667 errno, strerror. Put text after #endif in comment.
7668
7669 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for pcc).
7670
7671 * xterm.c (x_frame_of_widget): Likewise.
7672
7673 2000-06-19 Gerd Moellmann <gerd@gnu.org>
7674
7675 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
7676 to Vfundamental_mode_abbrev_table.
7677
7678 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
7679 bogus objects are marked. This slows down GC by ~80 percent, but
7680 it might be worth trying when debugging GC-related problems.
7681 This feature requires conservative stack marking to be enabled.
7682
7683 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
7684 returns XLookupChars, reset `modifiers' to zero.
7685
7686 2000-06-19 Dave Love <fx@gnu.org>
7687
7688 * mktime.c: Unprotoized.
7689
7690 2000-06-19 Richard Stallman <rms@gnu.org>
7691
7692 * data.c (set_internal): If variable is frame-local,
7693 store the new value immediately into the frame parameter alist.
7694
7695 2000-06-19 Ken Raeburn <raeburn@gnu.org>
7696
7697 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
7698 in the custom handler pointer.
7699
7700 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
7701 value, or checks for CHAR_META can fail when Lisp_Object is a
7702 union type.
7703 * keymap.c (get_keyelt): Likewise.
7704
7705 2000-06-19 Kenichi Handa <handa@etl.go.jp>
7706
7707 * ccl.h (struct ccl_program): New member eol_type.
7708 (struct ccl_spec): New member cr_carryover.
7709
7710 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
7711 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
7712
7713 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
7714 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
7715 (decode_eol_post_ccl): New function.
7716 (decode_coding): Don't detect EOL format here for CCL based coding
7717 systems.
7718 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
7719 decode_eol_post_ccl after running the CCL program.
7720 (code_convert_region): Don't detect EOL format here for CCL based
7721 coding systems.
7722 (decode_coding_string): Likewise.
7723
7724 2000-06-18 Ken Raeburn <raeburn@gnu.org>
7725
7726 * charset.c (update_charset_table): Use XINT on "iso_final_char"
7727 when treating it as an integer.
7728
7729 * coding.h (encode_coding_string): Declare.
7730
7731 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
7732 it as an integer.
7733
7734 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
7735 "xkeymap" to avoid shadowing the "enum map_type" value that needs
7736 to be passed to get_local_map.
7737
7738 * sound.c (Fplay_sound): Don't call make_number on
7739 Frun_hook_with_args count argument.
7740
7741 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
7742 for lisp objects in X event structure data field, when lisp
7743 objects are represented with unions.
7744 (x_scroll_bar_to_input_event): Ditto.
7745
7746 2000-06-16 Ken Raeburn <raeburn@gnu.org>
7747
7748 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
7749 termination of string. Fix sense of test whether
7750 Vline_number_display_limit is an integer.
7751
7752 2000-06-16 Gerd Moellmann <gerd@gnu.org>
7753
7754 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
7755 only if HAVE_X_WINDOWS.
7756
7757 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
7758 of titles.
7759
7760 * dispnew.c (update_frame_1): Handle case that cursor vpos is
7761 out of bounds.
7762
7763 2000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
7764
7765 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
7766 of its headers.
7767
7768 2000-06-15 Kenichi Handa <handa@etl.go.jp>
7769
7770 * coding.c (decode_coding_emacs_mule): Always set src_base at the
7771 start of the while loop.
7772
7773 2000-06-15 Gerd Moellmann <gerd@gnu.org>
7774
7775 * atimer.c (alarm_signal_handler): Add forward declaration.
7776
7777 * data.c (set_internal): Remove debug code.
7778
7779 2000-06-14 Gerd Moellmann <gerd@gnu.org>
7780
7781 * Makefile.in (bootstrap-temacs): Add `-I../src'.
7782
7783 * unexec.c (toplevel) [COFF]: Include coff.h.
7784
7785 * s/lynxos.h: New file.
7786
7787 * keymap.c (Fsingle_key_description): Enclose function key and
7788 event symbol names in angle brackets.
7789
7790 * xdisp.c (setup_echo_area_for_printing): Call
7791 message_log_maybe_newline if message_buf_print is not set.
7792
7793 * print.c (printchar, strout): Don't check message_buf_print
7794 before calling setup_echo_area_for_printing because that
7795 function does something useful even when message_buf_print is
7796 already set.
7797
7798 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines):
7799 New variables.
7800 (ensure_echo_area_buffers): Initialize echo buffer's
7801 truncate lines setting to nil.
7802 (with_echo_area_buffer): Don't set the echo buffer's truncate
7803 lines setting here.
7804 (set_message_1): Set it here instead, based on the value
7805 of message_truncate_lines.
7806 (resize_mini_window): Handle case that lines are truncated.
7807 (syms_of_xdisp): Initialize Qmessage_truncate_lines.
7808 DEFVAR_BOOL message-truncate-lines.
7809
7810 * keyboard.c (read_char): Bind message-truncate-lines to t
7811 while displaying a help-echo.
7812
7813 * lisp.h (Qmessage_truncate_lines): External declaration.
7814
7815 2000-06-13 Gerd Moellmann <gerd@gnu.org>
7816
7817 * xdisp.c (Vline_number_display_limit): Renamed from
7818 line_number_display_limit.
7819 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
7820 Extend documentation string. Initialize
7821 Vline_number_display_limit to nil meaning no limit.
7822 (decode_mode_spec): Use Vline_number_display_limit with its new
7823 meaning.
7824
7825 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
7826
7827 2000-06-13 Richard Stallman <rms@gnu.org>
7828
7829 * frame.c (Fmodify_frame_parameters): Doc fix.
7830
7831 * xfns.c (x_set_frame_parameters): Comment fix.
7832
7833 * frame.c (store_frame_param): Call swap_in_global_binding if the
7834 variable's current binding was chosen based on this frame.
7835
7836 * data.c (swap_in_global_binding): New function.
7837
7838 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
7839
7840 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
7841 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
7842
7843 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
7844
7845 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
7846
7847 2000-06-12 Jason Rumney <jasonr@gnu.org>
7848
7849 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
7850
7851 * w32.h (EMACS_W32_H): Renamed from _NT_H_
7852
7853 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
7854
7855 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
7856
7857 2000-06-12 Gerd Moellmann <gerd@gnu.org>
7858
7859 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
7860 (syms_of_xfaces): Defsubr Sdump_colors.
7861 (x_free_colors): Don't treat b&w specially on default visual.
7862 (x_free_dpy_colors): New function.
7863 (free_face_colors): Don't check visual class; it's done
7864 in x_free_colors.
7865
7866 * xterm.c (x_frame_of_widget): New function.
7867 (x_alloc_nearest_color_for_widget): Use it.
7868 (x_copy_dpy_color): New function.
7869 (x_destroy_window): Free various colors.
7870
7871 2000-06-12 Kenichi Handa <handa@etl.go.jp>
7872
7873 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
7874
7875 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
7876
7877 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
7878
7879 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
7880
7881 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
7882
7883 2000-06-11 Dave Love <fx@gnu.org>
7884
7885 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
7886
7887 2000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
7888
7889 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
7890
7891 2000-06-11 Gerd Moellmann <gerd@gnu.org>
7892
7893 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
7894 to `XEvent *'.
7895
7896 2000-06-10 Kenichi Handa <handa@etl.go.jp>
7897
7898 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
7899 (regex_compile): Fix the code for handling the case of single byte
7900 char and multibyte char being mixed in a range within [...].
7901
7902 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
7903 and dst_multibyte members of coding.
7904
7905 * charset.c (update_charset_table): Update the table
7906 bytes_by_char_head.
7907 (init_charset_once): Initialize elements of bytes_by_char_head to
7908 1 except for leading codes for private charases.
7909
7910 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
7911 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte sequence.
7912
7913 2000-06-09 Ken Raeburn <raeburn@gnu.org>
7914
7915 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
7916 access the data it doesn't point to.
7917
7918 2000-06-08 Gerd Moellmann <gerd@gnu.org>
7919
7920 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
7921 will be translated to a switch-frame event when reading the
7922 event queue. This is necessary because Emacs otherwise won't
7923 perform a switch-frame to a new frame until some other event, for
7924 example a keystroke event, forces it to do so. This has various
7925 effects, one visible being that the cursor of a frame created with
7926 C-x 5 2 or switched to with a window manager key binding like
7927 A-TAB stays hollow because selected_window isn't on the newly
7928 focused frame until the switch-frame is performed.
7929
7930 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
7931 generating a switch-frame event if necessary.
7932
7933 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
7934
7935 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
7936 it's an integer.
7937
7938 2000-06-08 Kenichi Handa <handa@etl.go.jp>
7939
7940 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a charset.
7941
7942 2000-06-07 Gerd Moellmann <gerd@gnu.org>
7943
7944 * window.c (displayed_window_lines): Take empty lines at
7945 the bottom of a window into account.
7946
7947 * window.c (displayed_window_lines): New function.
7948 (Fmove_to_window_line): Use displayed_window_lines to determine
7949 the number of lines to move, instead of using the window's height.
7950
7951 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
7952 to stop reading, even if the form read sets point to a different
7953 value when evaluated.
7954
7955 * xdisp.c (display_line): Fix code deciding in which line to
7956 put the cursor.
7957
7958 2000-06-07 Kenichi Handa <handa@etl.go.jp>
7959
7960 * fileio.c (e_write): Free composition data if stored in
7961 coding->cmp_data.
7962
7963 2000-06-06 Gerd Moellmann <gerd@gnu.org>
7964
7965 * xdisp.c (display_line): Set row's and iterator's
7966 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
7967 Set cursor even if row ends in the middle of a character.
7968 (dump_glyph_row): Print values of new flags.
7969 (redisplay_window) <cursor movement in unchanged window>: When
7970 point has been moved forward, and PT is at the end of the cursor
7971 row, don't place the cursor in the next row if the cursor row ends
7972 in the middle of a character or at ZV.
7973
7974 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
7975 (struct glyph_row): Add starts_in_middle_of_char_p and
7976 ends_in_middle_of_char_p.
7977 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
7978 ends_in_middle_of_char_p flag.
7979 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
7980
7981 * term.c (append_glyph): Revert change of 2000-06-06.
7982
7983 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
7984 padding glyph not fitting on line as whole character not
7985 fitting on line.
7986
7987 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
7988 this isn't true for images with `:ascent 100'.
7989
7990 2000-06-06 Kenichi Handa <handa@etl.go.jp>
7991
7992 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
7993 as modified if it is originally unmodified.
7994
7995 * term.c (encode_terminal_code): Change the way to check if
7996 terminal coding does any conversion.
7997 (append_glyph): Set glyph->pixel_width correctly.
7998
7999 * xdisp.c (display_line): While checking line continuation, pay
8000 attention to a padding glyph.
8001
8002 2000-06-05 Gerd Moellmann <gerd@gnu.org>
8003
8004 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
8005
8006 2000-06-05 Dave Love <fx@gnu.org>
8007
8008 * xdisp.c: Include fontset.h.
8009
8010 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
8011
8012 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
8013
8014 * dispnew.c: Conditionally include term.h.
8015
8016 * coding.h: Declare code_convert_string_norecord.
8017
8018 * frame.h (struct frame): Use volatile unconditionally.
8019
8020 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
8021
8022 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
8023
8024 * systime.h: Protect against multiple inclusion.
8025 (timezone) [USG5_4]: Define as time_t.
8026
8027 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
8028 (Foptimize_char_table, make_temp_name): Declare.
8029
8030 * Makefile.in (xdisp.o): Depend on fontset.h.
8031
8032 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
8033
8034 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
8035 (Foptimize_char_table, make_temp_name): Declare.
8036
8037 * s/irix4-0.h:
8038 * s/irix5-0.h:
8039 * s/netbsd.h: Don't define autoconfiscated MATHERR.
8040
8041 2000-06-02 Dave Love <fx@gnu.org>
8042
8043 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
8044
8045 2000-06-02 Gerd Moellmann <gerd@gnu.org>
8046
8047 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
8048 result face, set flags in that face indicating that colors may not
8049 be freed.
8050
8051 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
8052 glyph, use the ASCII NUL character to determine the face.
8053
8054 2000-06-02 Dave Love <fx@gnu.org>
8055
8056 * sysdep.c: Conditionally include stdlib.h, unistd.h.
8057 (VFORK_RETURN_TYPE): Remove.
8058
8059 * config.in: Add NO_MATHERR.
8060
8061 2000-06-01 Dave Love <fx@gnu.org>
8062
8063 * cmds.c (internal_self_insert): Don't check
8064 Vbefore_change_function, Vafter_change_function.
8065
8066 * insdel.c (signal_before_change, signal_after_change): Likewise.
8067
8068 * buffer.c (Vbefore_change_function, Vafter_change_function):
8069 Variables and their initializations deleted.
8070
8071 * callint.c (Fcall_interactively): Doc fix.
8072
8073 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
8074
8075 2000-05-31 Dave Love <fx@gnu.org>
8076
8077 * textprop.c: Revert last change -- duplicated.
8078
8079 2000-05-31 Gerd Moellmann <gerd@gnu.org>
8080
8081 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
8082 in #if 0.
8083
8084 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
8085
8086 2000-05-31 Jason Rumney <jasonr@gnu.org>
8087
8088 * search.c (Fre_search_forward, Fre_search_backward)
8089 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
8090
8091 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
8092
8093 2000-05-30 Jason Rumney <jasonr@gnu.org>
8094
8095 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
8096 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
8097
8098 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type member.
8099
8100 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
8101 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
8102 expand a nil default_filename.
8103
8104 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
8105 pointer to glyph_to_pixel_coords, not a frame.
8106
8107 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
8108 coding.h to dependencies.
8109
8110 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
8111
8112 * w32console.c (glyph_to_pixel_coords): Change first parameter to
8113 window pointer to be consistent with w32term.c and xterm.c.
8114
8115 * w32fns.c: Format and doc changes to bring closer to xfns.c.
8116 (VIETNAMESE_CHARSET): Define if not defined in system headers.
8117 (Qline_spacing, Qcenter): New variables.
8118 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
8119 (x_set_line_spacing): New function.
8120 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT macros.
8121 (x_specified_cursor_type): New function.
8122 (x_set_cursor_type): Use it.
8123 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
8124 and icon strings.
8125 (validate_x_resource_name, x_get_resource_string): Measure lengths
8126 of external strings in bytes.
8127 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
8128 GetTextExtentPoint32 with NULL title.
8129 (Fx_create_frame): Initialize Qline_spacing.
8130 (w32_load_system_font): Initialize font->double_byte_p.
8131 (x_to_w32_charset): Use Vw32_charset_info_alist.
8132 (Image, busy cursor, tooltip functions): Merged changes from
8133 xfns.c. Not yet functional on Windows.
8134
8135 * w32gui.h (W32FontStruct): Add double_byte_p member.
8136
8137 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
8138 (emacs_button_translation): Use it.
8139 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
8140 in `mask' to be set.
8141
8142 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
8143 menu strings.
8144
8145 * w32term.c: Format and doc changes to bring closer to xterm.c.
8146 (w32_char_font_type): New enum.
8147 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
8148 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
8149 (w32_encode_char): New function.
8150 (x_encode_char): Removed.
8151 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
8152 x_encode_char and w32_font_is_double_byte.
8153 (x_produce_image_glyph): Use image_ascent.
8154 (x_produce_glyphs): Use new version of w32_per_char_metric and
8155 handle NULL return value. Allow extra line spacing.
8156 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
8157 (w32_get_glyph_overhangs): Remove unicode_p param. Use
8158 w32_font_type member of glyph instead.
8159 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
8160 (fast_find_position): Make sure not to consider rows not visible
8161 in the window.
8162 (w32_read_socket) [WM_MENUSELECT]: Cannot call
8163 w32_menu_display_help with input blocked, as it can abort.
8164 (x_display_and_set_cursor): Choose cursor depending
8165 on buffer-local value of cursor_type.
8166 (x_draw_bar_cursor): Add parameter WIDTH.
8167
8168 * w32term.h (CP_DEFAULT): Define.
8169 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
8170
8171 2000-05-30 Gerd Moellmann <gerd@gnu.org>
8172
8173 * search.c (Fre_search_forward, Fre_search_backward)
8174 (Fposix_search_backward, Fposix_search_forward): Doc fix.
8175
8176 2000-05-30 Kenichi Handa <handa@etl.go.jp>
8177
8178 * coding.c (detect_coding_iso2022): Fix code for checking
8179 CODING_CATEGORY_MASK_ISO_8_2.
8180
8181 2000-05-29 Stefan Monnier <monnier@cs.yale.edu>
8182
8183 * regex.c (PREFETCH_NOLIMIT): New function.
8184 (re_match_2_internal): Use it and adjust the end_match_2 logic.
8185
8186 2000-05-29 Gerd Moellmann <gerd@gnu.org>
8187
8188 * syntax.c (find_defun_start): Move test for
8189 open_paren_in_column_0_is_defun_start outside of the loop.
8190
8191 * xdisp.c (redisplay_window): Really switch buffers when
8192 displaying mode lines, and temporarily set selected_frame to the
8193 frame of the window that's redisplayed.
8194
8195 * xfaces.c (free_realized_faces): Block/unblock input.
8196 (free_realized_multibyte_face): Ditto.
8197
8198 2000-05-29 Dave Love <fx@gnu.org>
8199
8200 * textprop.c (Qkeymap): New variable.
8201 (syms_of_textprop): Intern it.
8202
8203 * keymap.c: Include intervals.h.
8204 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
8205
8206 * Makefile.in (keymap.o): Depend on intervals.h.
8207
8208 * keyboard.c (menu_bar_items, tool_bar_items)
8209 (Fexecute_extended_command): Deal with `keymap' property.
8210 (read_key_sequence): Track map from `keymap' property as well as
8211 `local_map'.
8212
8213 * intervals.c (get_local_map): Extra arg to allow looking for
8214 `keymap' too.
8215
8216 * intervals.h (map_property): New enum.
8217 (get_local_map): Extra arg using it.
8218 (Qkeymap): Declare.
8219
8220 * lisp.h (get_local_map): Don't declare here.
8221
8222 2000-05-29 Kenichi Handa <handa@etl.go.jp>
8223
8224 * Makefile.in (callproc.o): Depend on composite.h.
8225
8226 * callproc.c: Include composite.h.
8227 (Fcall_process): Handle composition correctly.
8228
8229 * coding.h (coding_allocate_composition_data): Extern it.
8230 (coding_restore_composition): Likewise.
8231
8232 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
8233 yet allocated, finish decoding with result
8234 CODING_FINISH_INSUFFICIENT_CMP.
8235 (coding_allocate_composition_data): Make it non-static.
8236 (coding_restore_composition): Likewise.
8237
8238 2000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
8239
8240 * charset.c (syms_of_charset): Revert last change.
8241
8242 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
8243
8244 * term.c (produce_glyphs): Treat characters from the eight-bit-*
8245 charsets as unibyte, with 1-column screen width. Sent by Kenichi
8246 Handa.
8247
8248 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
8249
8250 * charset.c (syms_of_charset): Set width of character sets
8251 eight-bit-control and eight-bit-graphic to 1 column.
8252
8253 2000-05-26 Gerd Moellmann <gerd@gnu.org>
8254
8255 * config.in (HAVE_SPEED_T): New define.
8256
8257 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
8258 `extern speed_t'.
8259
8260 2000-05-26 Dave Love <fx@gnu.org>
8261
8262 * coding.c (shrink_decoding_region): Initialize eol_conversion.
8263
8264 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
8265 (Fsubr_arity): New function.
8266 (syms_of_data): Install them.
8267
8268 2000-05-26 Kenichi Handa <handa@etl.go.jp>
8269
8270 * charset.c (init_charset_once): Set the table bytes_by_char_head
8271 correctly.
8272
8273 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
8274 the default fontset to what Emacs uses by default.
8275 (check_registry_encoding): This function deleted.
8276 (Fset_fontset_font): Remove the adhoc condition for the default
8277 fontset. Allow cons in FONTNAME.
8278
8279 * fns.c (map_char_table): Ignore char-table entries for
8280 charsets eight-bit-control and eight-bit-graphic.
8281
8282 2000-05-25 Ken Raeburn <raeburn@gnu.org>
8283
8284 * emacs.c (main): Initialize keyboard syms before initializing
8285 window code, so face names are available.
8286
8287 2000-05-25 Stefan Monnier <monnier@cs.yale.edu>
8288
8289 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
8290 of an anchor at the beginning of a shy-group.
8291
8292 2000-05-25 Gerd Moellmann <gerd@gnu.org>
8293
8294 * xdisp.c (handle_invisible_prop): Don't try to skip over
8295 invisible text if end of text is already reached.
8296
8297 2000-05-25 Dave Love <fx@gnu.org>
8298
8299 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
8300
8301 * coding.c (encode_eol): Add null statement after label.
8302
8303 2000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
8304
8305 * w16select.c (Fw16_set_clipboard_data): Fix the change from
8306 2000-05-20.
8307
8308 2000-05-25 Kenichi Handa <handa@etl.go.jp>
8309
8310 * ccl.c (ccl_driver): Fix previous change.
8311
8312 2000-05-25 Kenichi Handa <handa@etl.go.jp>
8313
8314 * coding.c (run_pre_post_conversion_on_str): Set point to the
8315 beginning of buffer before calling coding->post_read_conversion.
8316 (decode_coding_string): Give correct args to
8317 run_pre_post_conversion_on_str.
8318 (encode_coding_string): Likewise.
8319
8320 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
8321 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
8322 eight-bit-graphic correctly.
8323
8324 2000-05-24 Kenichi HANDA <handa@etl.go.jp>
8325
8326 * fileio.c (Finsert_file_contents): Even if a file is not found,
8327 execute codes for setting up coding system. Call
8328 after-insert-file-functions unconditionally.
8329
8330 2000-05-24 Gerd Moellmann <gerd@gnu.org>
8331
8332 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
8333 BSD_PGRPS are not defined.
8334
8335 2000-05-24 Kenichi Handa <handa@etl.go.jp>
8336
8337 * charset.c (update_charset_table): Accept nil in LONG_NAME and
8338 DESCRIPTION.
8339 (syms_of_charset): Avoid building same strings.
8340
8341 2000-05-23 Gerd Moellmann <gerd@gnu.org>
8342
8343 * lread.c (Fload): Add a comment about the meaning of
8344 Vuser_init_file being t.
8345
8346 * puresize.h (BASE_PURESIZE): Increase to 675000.
8347
8348 * s/gnu-linux.h (setpgrp): Don't define it here because this
8349 prevents compilation on GNU/Linux systems with glib 2.2.
8350
8351 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
8352 as setpgid.
8353
8354 2000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
8355
8356 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
8357 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
8358 version.
8359 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
8360
8361 2000-05-23 Kenichi Handa <handa@etl.go.jp>
8362
8363 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8364
8365 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
8366
8367 * term.c (encode_terminal_code): Set coding->src_multibyte properly.
8368
8369 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
8370
8371 2000-05-22 Kenichi Handa <handa@etl.go.jp>
8372
8373 * keyboard.c (read_char): Allow character codes 128..255 to be
8374 handled by input-method-function.
8375
8376 * insdel.c (adjust_markers_for_replace): Fix previous change.
8377 (adjust_after_replace): If PREV_TEXT is nil, call
8378 adjust_markers_for_insert, not adjust_markers_for_replace.
8379
8380 2000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
8381
8382 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
8383 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
8384 [HAVE_GRANDPT]: Define.
8385 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
8386
8387 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
8388 like SYSV_PTYS.
8389
8390 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
8391
8392 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
8393
8394 2000-05-20 Kenichi Handa <handa@etl.go.jp>
8395
8396 The following changes are to handle 8-bit characters in a
8397 multibyte buffer/string without facing with byte combining
8398 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
8399 eight-bit-graphic (for 0xA0..0xFF) are introduced.
8400
8401 * Makefile.in (fns.o): Depend on charset.h.
8402
8403 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
8404 convert it to unibyte.
8405 (make_string): Use parse_str_as_multibyte, not chars_in_text.
8406
8407 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
8408 apparent char boundary.
8409 (Fset_buffer_multibyte): Convert 8-bit characters in the range
8410 0x80..0x9F to/from multibyte form.
8411
8412 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
8413 to unibyte.
8414
8415 * callproc.c (Fcall_process): Always encode an argument string if
8416 it is multibyte. Setup src_multibyte and dst_multibyte members of
8417 process_coding properly.
8418
8419 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
8420 SPLIT_NON_ASCII_CHAR.
8421
8422 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
8423 as is.
8424 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
8425
8426 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New variables.
8427 (SPLIT_CHARACTER_SEQ): This macro deleted.
8428 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is valid.
8429 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
8430 and eight-bit-graphic.
8431 (char_to_string): Likewise. Signal an error for too large
8432 character code.
8433 (char_printable_p): Return 0 for 8-bit characters.
8434 (update_charset_table): Update iso_charset_table only when a final
8435 character is non-negative.
8436 (find_charset_in_text): Renamed from find_charset_in_str.
8437 Arguments and return value changed. Callers changed.
8438 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
8439 be -1 if CHARSET is used only internally.
8440 (Fmake_char_internal): Handle new charsets; eight-bit-control and
8441 eight-bit-graphic.
8442 (Fcharset_after): Simplified.
8443 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
8444 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
8445 (multibyte_chars_in_text): Simplified by assuming there's no
8446 invalid multibyte sequence.
8447 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
8448 (str_as_unibyte): New functions.
8449 (Fstring): Simpified by assuming that byte combining never happens.
8450 (init_charset_once): Initialization for
8451 LEADING_CODE_8_BIT_CONTROL.
8452 (syms_of_charset): Intern and staticpro Qeight_bit_control and
8453 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
8454 eight-bit-control and eight-bit-graphic.
8455
8456 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL)
8457 (CHARSET_8_BIT_GRAPHIC): New macros.
8458 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
8459 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
8460 (CHARSET_REVERSE_CHARSET): Likewise.
8461 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
8462 eight-bit-graphic.
8463 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
8464 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
8465 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
8466 encounter an invalid multibyte sequence.
8467 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
8468 sequence is always valid.
8469 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
8470 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New macros.
8471 (CHAR_STRING): For 8-bit characters, call char_to_string.
8472 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
8473 multibyte sequence is always valid.
8474 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
8475 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
8476 (str_as_unibyte): Extern them.
8477 (BCOPY_SHORT): Fix a bug.
8478 (CHAR_LEN): This macro deleted. Callers changed to use CHAR_BYTES.
8479 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
8480 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
8481 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
8482
8483 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
8484 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
8485 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE)
8486 (EMIT_BYTES): New macros.
8487 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII)
8488 (DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
8489 macros deleted.
8490 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
8491 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
8492 check the validity of multibyte sequence.
8493 (decode_coding_emacs_mule): New function.
8494 (encode_coding_emacs_mule): New macro.
8495 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
8496 the source.
8497 (DECODE_ISO_CHARACTER): Just return a character code.
8498 (DECODE_COMPOSITION_START): Set coding->result instead of result.
8499 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
8500 EMIT_CHAR to produced decoded characters. Exit the loop only by
8501 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
8502 block here.
8503 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
8504 only position codes for an invalid character.
8505 (encode_designation_at_bol): Return new destination pointer. 5th
8506 arg DSTP is changed to DST.
8507 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
8508 from the source by ONE_MORE_CHAR. Don't handle the case of last
8509 block here.
8510 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
8511 macros deleted.
8512 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
8513 (detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
8514 TWO_MORE_BYTES to fetch a byte from the source.
8515 (encode_eol): Pay attention to coding->src_multibyte.
8516 (detect_coding, detect_eol): Preserve members src_multibyte and
8517 dst_multibyte.
8518 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
8519 (encoding_buffer_size): Set magnification to 3 for all coding
8520 systems that require encoding.
8521 (ccl_coding_driver): For decoding, be sure that the result is
8522 valid multibyte sequence.
8523 (decode_coding): Initialize coding->errors and coding->result.
8524 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
8525 and raw-text, always call decode_eol. Handle the case of last
8526 block here. If not coding->dst_multibyte, convert the resulting
8527 sequence to unibyte.
8528 (encode_coding): Initialize coding->errors and coding->result.
8529 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
8530 and raw-text, always call encode_eol. Handle the case of last
8531 block here.
8532 (shrink_decoding_region, shrink_encoding_region): Detect cases
8533 that we can't skip data more rigidly.
8534 (code_convert_region): Setup src_multibyte and dst_multibyte
8535 members of coding. For decoding, if the buffer is multibyte,
8536 convert the source sequence to unibyte in advance. For encoding,
8537 if the buffer is multibyte, convert the resulting sequence to
8538 multibyte afterward.
8539 (run_pre_post_conversion_on_str): New function.
8540 (code_convert_string): Deleted and divided into the following two.
8541 (decode_coding_string, encode_coding_string): New functions.
8542 (code_convert_string1, code_convert_string_norecord): Call one of
8543 above.
8544 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
8545 MAKE_NON_ASCII_CHAR.
8546 (Fset_terminal_coding_system_internal)
8547 (Fset_safe_terminal_coding_system_internal): Setup src_multibyte
8548 and dst_multibyte members.
8549 (init_coding_once): Initialize iso_code_class with new enum
8550 ISO_control_0 and ISO_control_1.
8551
8552 * coding.h (enum iso_code_class_type): Member ISO_control_code is
8553 devided into ISO_control_0 and ISO_control_1.
8554 (struct coding_system): New members src_multibyte, dst_multibyte,
8555 errors, and result. Delete member fake_multibyte.
8556 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
8557 nonzero.
8558 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
8559 nonzero.
8560
8561 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
8562 (Faset): Likewise.
8563
8564 * editfns.c (Fformat): Be sure to convert 8-bit characters to
8565 multibyte form.
8566 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
8567 combining occurs.
8568 (Ftranspose_region): Delete codes for handling byte combining.
8569
8570 * fileio.c (Finsert_file_contents): Setup src_multibyte and
8571 dst_multibyte members of coding. On handling REPLACE on unibyte
8572 buffer, convert the result of decode_coding to unibyte. On
8573 inserting into a mutibyte buffer, always call code_convert_region.
8574 (e_write): Setup coding->src_multibyte according to the
8575 multibyteness of the source (buffer or string).
8576
8577 * fns.c (concat): Handle 8-bit characters correctly.
8578 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
8579 unibyte in the result.
8580 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
8581 valid multibyte form in the result.
8582 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
8583 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
8584 return -1, signal an error.
8585 (base64_encode_1): New arg MULTIBYTE. Get each character by
8586 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
8587 character is found, return -1.
8588 (Fbase64_decode_region): Delete codes for handling byte-combining.
8589 Treat each decoded byte as a unibyte character.
8590 (Fbase64_decode_string): Return unibyte string.
8591 (Fcompare_strings, concat, string_byte_to_char): Use
8592 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
8593 FETCH_STRING_CHAR_ADVANCE.
8594 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8595 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
8596
8597 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
8598 SPLIT_NON_ASCII_CHAR.
8599 (fontset_ref_via_base, fontset_set): Likewise
8600
8601 * insdel.c (adjust_markers_for_record_delete): Deleted.
8602 (adjust_markers_for_insert): Argument changed. Caller changed.
8603 (adjust_markers_for_replace): Likewise.
8604 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error)
8605 (CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
8606 (copy_text): Delete unused local varialbe c_save. For converting
8607 to multibyte, be sure to make all 8-bit characters in valid
8608 multibyte form.
8609 (count_size_as_multibyte): Handle 8-bit characters correctly.
8610 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
8611 (adjust_after_replace, replace_range, del_range_2)
8612 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
8613 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
8614 (adjust_after_replace, replace_range, del_range_2) Delete codes for
8615 handling byte combining.
8616 (adjust_before_replace): Deleted.
8617
8618 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
8619 SPLIT_NON_ASCII_CHAR.
8620 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
8621 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8622 (Fkey_description): Likewise.
8623
8624 * lread.c (read1): On reading multibyte string, be sure to make
8625 all 8-bit chararacters in valid multibyte form.
8626 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8627
8628 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
8629 unconditionally.
8630
8631 * process.c (Fstart_process): GCPRO current_dir before calling
8632 Ffind_operation_coding_system. Encode arguments here.
8633 (create_process): Don't encode arguments here. Setup
8634 src_multibyte and dst_multibyte members of struct coding.
8635 (read_process_output): Setup src_multibyte and dst_multibyte
8636 members of struct coding. If the output is to multibyte buffer,
8637 always decode the output of the process. Adjust the
8638 representation of 8-bit characters to the multibyteness of the output.
8639 (send_process): Setup coding->src_multibyte according to the
8640 multibyteness of the source.
8641
8642 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
8643 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
8644 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
8645
8646 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of CHAR_LEN.
8647
8648 * w16select.c (Fw16_set_clipboard_data): Setup members
8649 src_multibyte and dst_multibyte of coding. Adjusted for the
8650 change for find_charset_in_str.
8651 (Fw16_get_clipboard_data): Likewise.
8652
8653 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
8654 dst_multibyte of coding.
8655 (x_to_w32_font): Likewise.
8656
8657 * w32select.c (Fw32_set_clipboard_data): Setup members
8658 src_multibyte and dst_multibyte of coding. Adjusted for the
8659 change for find_charset_in_str.
8660 (Fw32_get_clipboard_data): Likewise.
8661
8662 * xdisp.c (get_next_display_element): Handle 8-bit characters
8663 correctly.
8664 (next_element_from_display_vector): Use CHAR_BYTES instead of CHAR_LEN.
8665 (disp_char_vector): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
8666
8667 * xselect.c (selection_data_to_lisp_data): Setup members
8668 src_multibyte and dst_multibyte of coding. Adjusted for the
8669 change for find_charset_in_str.
8670 (lisp_data_to_selection_data): Likewise.
8671
8672 2000-05-19 Gerd Moellmann <gerd@gnu.org>
8673
8674 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed buffer.
8675
8676 * dispextern.h (Vimage_types): Add extern declaration.
8677
8678 * xdisp.c (Vimage_types): Moved here from xfns.c.
8679 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
8680
8681 * xfns.c (Vimages_types): Moved to xdisp.c.
8682 (syms_of_xfns): Move `image-types' to xdisp.c.
8683
8684 * w32fns.c (Vimage_types): Removed.
8685 (syms_of_w32fns): Remove `image-types'.
8686
8687 2000-05-18 Kenichi Handa <handa@etl.go.jp>
8688
8689 * fns.c (map_char_table): Pay attention to character number of
8690 charset. Check the validity of charset at the first level. For
8691 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
8692 the default value.
8693
8694 * fontset.c: Include "buffer.h".
8695 (fs_load_font): If the face has fontset, record the face ID in
8696 that fontset.
8697 (Finternal_char_font): New function.
8698 (accumulate_font_info): New function.
8699 (Ffontset_info): Rewritten for the new fontset implementation.
8700 (syms_of_fontset): Register Vdefault_fontset in the first element
8701 of Vfontset_table. Include Vdefault_fontset in
8702 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
8703 function.
8704
8705 2000-05-16 Dave Love <fx@gnu.org>
8706
8707 * m/iris5d.h: Deleted -- unused.
8708
8709 2000-05-16 Gerd Moellmann <gerd@gnu.org>
8710
8711 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
8712 `invalid' instead of `illegal'.
8713
8714 * indent.c (Fmove_to_column): When ending within a tab, insert
8715 spaces first so that markers at the end of the tab get adjusted.
8716
8717 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
8718 buffer list that wasn't selected in that frame.
8719
8720 * filelock.c (get_boot_time): To obtain an 8 char file name, which
8721 is needed on mescaline, use a 2 char prefix, and call
8722 make_temp_name with second arg non-zero.
8723
8724 * fileio.c (make_temp_name): New function, extracted from
8725 Fmake_temp_name.
8726 (Fmake_temp_name): Use it.
8727
8728 2000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
8729
8730 * window.c (coordinates_in_window): Subtract 1 when computing right_x.
8731
8732 2000-05-15 Gerd Moellmann <gerd@gnu.org>
8733
8734 * Makefile.in (lisp): Add env.elc.
8735
8736 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
8737
8738 2000-05-12 Gerd Moellmann <gerd@gnu.org>
8739
8740 * search.c (Freplace_match): Handle case of `\N' in the
8741 replacement when there's no group N.
8742
8743 2000-05-11 Gerd Moellmann <gerd@gnu.org>
8744
8745 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
8746 of the message to message_dolog.
8747
8748 * keyboard.c (read_char): Don't clear current message for help
8749 events; let the code handling help events handle this. Change
8750 code detecting help events that should be ignored.
8751
8752 * xdisp.c (handle_single_display_prop): Don't try to set PT if
8753 we're interating over a string.
8754
8755 2000-05-09 Dave Love <fx@gnu.org>
8756
8757 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
8758 that offset before writing. Move gcpro region past call of
8759 Ffile_regular_p.
8760
8761 2000-05-04 Dave Love <fx@gnu.org>
8762
8763 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
8764
8765 2000-05-04 Gerd Moellmann <gerd@gnu.org>
8766
8767 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
8768 of inserted characters when BUF equals the current buffer, and PT
8769 is in front of or equal to FROM.
8770
8771 2000-05-03 Gerd Moellmann <gerd@gnu.org>
8772
8773 * xdisp.c (handle_single_display_prop): If display property value
8774 is invalid, or something not supported on the frame, restore
8775 iterator's position to what it was initially. Make sure to return
8776 0 for invalid and unsupported property values.
8777
8778 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
8779 that x_per_char_metric returns null.
8780
8781 2000-05-02 Gerd Moellmann <gerd@gnu.org>
8782
8783 * xterm.h (struct face): Add forward declaration.
8784 (struct image): Ditto.
8785 (image_ascent): Add prototype.
8786
8787 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
8788 (x_draw_image_relief, x_draw_image_foreground_1): Call function
8789 image_ascent instead of using IMAGE_ASCENT.
8790
8791 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
8792 (IMAGE_ASCENT): Removed.
8793
8794 * xfns.c (Qcenter): New variable.
8795 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
8796 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
8797 (image_ascent): New function.
8798 (lookup_image): Recognize `:ascent center'.
8799 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
8800 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
8801 (xbm_load): Don't set image's ascent here.
8802 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
8803 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
8804 check ascent values here.
8805 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
8806 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
8807 (syms_of_xfns): Initialize Qcenter.
8808
8809 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
8810 to the limits, increase the limits.
8811
8812 2000-05-01 Kenichi Handa <handa@etl.go.jp>
8813
8814 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
8815 Check Vfont_encoding_alist against the full name of the opened font.
8816
8817 2000-04-28 Gerd Moellmann <gerd@gnu.org>
8818
8819 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
8820 taller than the window.
8821
8822 2000-04-28 Kenichi Handa <handa@etl.go.jp>
8823
8824 * xfaces.c (realize_x_face): Fix the argument of the second
8825 xassert. BASE_FACE may not be a face for ASCII.
8826
8827 2000-04-27 Gerd Moellmann <gerd@gnu.org>
8828
8829 * print.c (print_object): Treat print-length < 0 as nil.
8830
8831 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
8832
8833 * s/freebsd.h (TERMCAP_OBJ): Removed.
8834 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
8835
8836 * lread.c (read1): Don't treat period followed by certain
8837 characters as symbol start.
8838
8839 * xfns.c (slurp_file): New function.
8840 (xbm_image_p): Handle case of in-memory XBM files.
8841 (xbm_scan): Rewritten to work on memory buffers instead of files.
8842 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
8843 Work on memory buffers instead of files. If DATA is null test
8844 if buffer looks like an in-memory XBM file.
8845 (xbm_load_image): Renamed from xbm_load_image_file. Work on
8846 memory buffers instead of files.
8847 (xbm_file_p): New function.
8848 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
8849
8850 * lread.c (end_of_file_error): New function.
8851 (read1): Call it instead of signaling `end-of-file' directly.
8852
8853 * print.c (print_error_message): Print data of `end-of-file'
8854 with Fprinc instead of Fprin1.
8855
8856 2000-04-26 Ken Raeburn <raeburn@gnu.org>
8857
8858 * window.c (freeze_window_start): Check that minibuffer scroll
8859 window isn't nil before extracting the window structure pointer
8860 from it.
8861
8862 * undo.c (record_delete): If we hit the end of the undo list, stop
8863 picking elements apart.
8864
8865 2000-04-26 Gerd Moellmann <gerd@gnu.org>
8866
8867 * xdisp.c (display_line): If lines are continued, restore
8868 iterator's ascent/descent information to the values before the
8869 first glyph not fitting on the line.
8870
8871 2000-04-25 Gerd Moellmann <gerd@gnu.org>
8872
8873 * xdisp.c (try_window_id) <all changes above window start>: Adjust
8874 positions in glyph matrix. Don't compute new window end positions.
8875
8876 * dispnew.c (increment_matrix_positions): Renamed from
8877 increment_glyph_matrix_buffer_positions.
8878 (increment_row_positions): Renamed from
8879 increment_glyph_row_buffer_positions.
8880
8881 * dispextern.h: Change names of renamed functions from dispnew.c
8882 in prototypes.
8883
8884 2000-04-24 Gerd Moellmann <gerd@gnu.org>
8885
8886 * fileio.c (Fdo_auto_save): Create directories for auto-save
8887 list file if necessary.
8888
8889 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
8890 from buffer or frame.
8891 (automatic_hscrolling_p): New variable.
8892 (hscroll_windows): Scroll windows horizontally only if automatic
8893 hscrolling is allowed.
8894 (syms_of_xdisp): New variable `automatic-hscrolling'.
8895
8896 * frame.h (struct frame): Add member extra_line_spacing.
8897
8898 * xfns.c (x_set_line_spacing): New function.
8899 (Fx_create_frame): Set line spacing from resources.
8900 (Qline_spacing): New variable.
8901 (syms_of_xfns): Initialize Qline_spacing.
8902
8903 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
8904
8905 * buffer.c (init_buffer_once): Handle extra_line_spacing.
8906 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
8907 (reset_buffer): Don't initialize extra2 and extra3. Initialize
8908 extra_line_spacing from default value.
8909 (init_buffer_once): Initialize default value of extra_line_spacing.
8910
8911 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
8912 and extra3.
8913
8914 * xterm.c (x_produce_glyphs): Remove reference to struct it's
8915 prompt_width. Add extra line spacing.
8916
8917 * term.c (produce_glyphs): Remove reference to struct it's
8918 prompt_width.
8919
8920 * dispextern.h (struct it): Remove member prompt_width, add
8921 extra_line_spacing.
8922
8923 2000-04-22 Gerd Moellmann <gerd@gnu.org>
8924
8925 * dispnew.c (update_frame_line): When writing a whole line, make
8926 sure cursor is in the right row afterwards, otherwise a use of
8927 capability `ch' in cmgoto might leave the cursor in the row below.
8928
8929 2000-04-21 Gerd Moellmann <gerd@gnu.org>
8930
8931 * lisp.h (struct Lisp_Buffer_Cons): Remove.
8932
8933 * keyboard.c (timer_check): Fix typo in comment.
8934
8935 2000-04-21 Kenichi Handa <handa@etl.go.jp>
8936
8937 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
8938 name change: ch -> character.
8939
8940 2000-04-20 Gerd Moellmann <gerd@gnu.org>
8941
8942 * keyboard.c (echo_message_buffer): New variable.
8943 (echo_now): Set echo_message_buffer to the echo area buffer used
8944 to display the echo.
8945 (cancel_echoing): Reset echo_message_buffer to nil.
8946 (read_char): Code rewritten that handles canceling an echo or
8947 echoing a dash, respectively.
8948
8949 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
8950 directory doesn't exist.
8951
8952 2000-04-19 Dave Love <fx@gnu.org>
8953
8954 * fns.c (syms_of_fns): Defsubr mapc.
8955 (concat): Don't allow numeric args.
8956 (Fconcat): Doc change.
8957
8958 2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
8959
8960 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
8961 instead define end_match(1|2) more carefully.
8962 Use GET_CHAR_BEFORE_2 for `begline'.
8963
8964 2000-04-19 Gerd Moellmann <gerd@gnu.org>
8965
8966 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
8967 on 64-bit systems where NULL is defined as `0'.
8968
8969 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
8970 the `variable argument list' to make it work on Alpha.
8971
8972 * m/alpha.h (_LP64) [!_LP64]: Define.
8973 (ORDINARY_LINK): Define for NetBSD.
8974
8975 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
8976
8977 2000-04-19 Dave Love <fx@gnu.org>
8978
8979 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
8980 change.
8981
8982 * Makefile.in (LIBS): Don't use.
8983 (GETLOADAVG_OBJ): Define again.
8984 (otherobj): Add GETLOADAVG_OBJ.
8985
8986 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
8987
8988 2000-04-18 Gerd Moellmann <gerd@gnu.org>
8989
8990 * lread.c (read_filtered_event): Cancel and start busy cursor.
8991
8992 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
8993 that the per-character metrics may be null.
8994
8995 2000-04-17 Gerd Moellmann <gerd@gnu.org>
8996
8997 * buffer.c (clone_per_buffer_values): New function.
8998 (Fmake_indirect_buffer): Add optional argument CLONE. Call
8999 clone_per_buffer_values if CLONE is not nil.
9000
9001 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
9002
9003 2000-04-16 Dave Love <fx@gnu.org>
9004
9005 * Makefile.in: Remove obsolete localcpp stuff.
9006 (GETLOADAVG_OBJ): Don't define.
9007 (obj): Move LIBOBJS...
9008 (otherobj): ... to here.
9009 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
9010 whitespace-only lines after the continuation (Irix).
9011
9012 2000-04-14 Gerd Moellmann <gerd@gnu.org>
9013
9014 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
9015
9016 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
9017
9018 2000-04-14 Dave Love <fx@gnu.org>
9019
9020 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
9021 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
9022 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
9023 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
9024 NLIST_STRUCT.
9025
9026 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
9027 autoconfiscated HAVE_GETLOADAVG.
9028
9029 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
9030 BROKEN_MKTIME.
9031
9032 2000-04-14 Gerd Moellmann <gerd@gnu.org>
9033
9034 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
9035 (fill_in_lock_file_name): Avoid existing files that aren't links.
9036
9037 2000-04-14 Dave Love <fx@gnu.org>
9038
9039 * Makefile.in (LIBS, LIBOBJS): New variable.
9040 (INTERVAL_SRC): Convert to make variable.
9041 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
9042 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
9043 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
9044 add LIBOBJS.
9045 (SOME_MACHINE_OBJECTS): Remove interval stuff.
9046 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
9047 (shortlisp): Add facemenu, float-sup, frame.
9048 (SOME_MACHINE_LISP): Remove them from here.
9049 (LIBES): Change unused LDLIBS to autoconf LIBS.
9050
9051 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
9052
9053 2000-04-14 Kenichi Handa <handa@etl.go.jp>
9054
9055 * composite.c (update_compositions): If FROM and TO are not in a
9056 valid range, do nothing.
9057
9058 2000-04-13 Gerd Moellmann <gerd@gnu.org>
9059
9060 * tparam.c (tparam1): Abort when encountering an unknown `%'-specifier.
9061
9062 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as terminfo.o.
9063
9064 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
9065 as TERMCAP_OBJ.
9066
9067 2000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
9068
9069 * fileio.c (a_write): Remove redundant semi-colons.
9070 (e_write): Return -1 if failed to write all the data.
9071 This fixes the changes made at 1999-12-15.
9072
9073 2000-04-12 Dave Love <fx@gnu.org>
9074
9075 * fns.c (mapcar1): Test for null vals to support mapc.
9076 (Fmapc): New function.
9077
9078 2000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
9079
9080 * msdos.c (NUM_MOUSE_BUTTONS): Define.
9081 (IT_frame_up_to_date): Support the buffer local value of
9082 cursor-type, if defined.
9083
9084 2000-04-10 Dave Love <fx@gnu.org>
9085
9086 * editfns.c (preceding-char, following-char): Doc fix.
9087
9088 2000-04-10 Ken Raeburn <raeburn@gnu.org>
9089
9090 * Makefile.in (temacs): Revert 2000-03-12 change.
9091
9092 2000-04-10 Jason Rumney <jasonr@gnu.org>
9093
9094 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
9095
9096 2000-04-10 Gerd Moellmann <gerd@gnu.org>
9097
9098 * xdisp.c (setup_echo_area_for_printing): Choose an echo
9099 area buffer, if it's not set up yet.
9100
9101 * indent.c (compute_motion): Set immediate_quit.
9102
9103 2000-04-09 Gerd Moellmann <gerd@gnu.org>
9104
9105 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New variable.
9106 (realize_tty_face): Suppress boldness if colors are the inverse of
9107 the default colors, and tty_suppress_bold_inverse_default_colors_p
9108 is set.
9109 (Ftty_suppress_bold_inverse_default_colors): New function.
9110 (syms_of_xfaces): Defsubr it.
9111
9112 * buffer.c (Frestore_buffer_modified_p): New function.
9113 (syms_of_buffer): Defsubr it.
9114
9115 2000-04-08 Ken Raeburn <raeburn@gnu.org>
9116
9117 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
9118 charset id (int) argument, not a charset (Lisp_Object).
9119
9120 * coding.h (code_convert_string): Declare.
9121 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
9122 object, as the fourth argument to code_convert_string.
9123
9124 * fontset.c (make_fontset_for_ascii_face): Use XINT on return value.
9125 (Fset_fontset_font): Use EQ to compare lisp objects.
9126
9127 2000-04-05 Ken Raeburn <raeburn@gnu.org>
9128
9129 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
9130 a pointer that looks like a lisp object.
9131 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
9132 zero, instead see whether it's an integer object, since they can't
9133 have intervals.
9134 (GET_INTERVAL_OBJECT): Simply assign to the destination.
9135
9136 * dispnew.c (allocate_matrices_for_frame_redisplay)
9137 (direct_output_forward_char): Use X(U)INT and make_number as needed
9138 to convert between (unsigned) int values and lisp integers.
9139 * keyboard.c (read_key_sequence): Likewise.
9140 * lread.c (substitute_object_recurse): Likewise.
9141 * fns.c (concat, hash_lookup, hash_remove): Likewise.
9142 * minibuf.c (do_completion, Fminibuffer_complete_word)
9143 (Fminibuffer_completion_help): Likewise.
9144 * term.c (produce_special_glyphs): Likewise.
9145
9146 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
9147 * print.c (print_preprocess, print_object): Likewise.
9148
9149 * search.c (compile_pattern): Use NILP when checking for nil.
9150
9151 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
9152 __OPTIMIZE__]: Provide a GNU C macro version that handles
9153 lisp-object unions.
9154 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
9155 field, to better cope with ENABLE_CHECKING and calls that modify a
9156 Lisp_Object using its old value.
9157
9158 2000-04-04 Gerd Moellmann <gerd@gnu.org>
9159
9160 * window.c (compare_window_configurations): Signal an error
9161 if parameters C1 or C2 aren't window configurations.
9162
9163 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
9164 AFTER_POTENTIAL_GC calls around calls to functions that can
9165 signal an error and thus invoke the debugger.
9166
9167 2000-04-03 Gerd Moellmann <gerd@gnu.org>
9168
9169 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
9170 an error if decoding fails.
9171
9172 * keyboard.c (lispy_mouse_names): Variable removed.
9173 (Vlispy_mouse_stem): New variable.
9174 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
9175 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
9176 for any mouse button number. Increase size of mouse_syms and
9177 button_down_location as needed. Call modify_event_symbol with
9178 different arguments.
9179 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
9180 Call modify_event_symbol with different arguments.
9181 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
9182 for any button number. Call modify_event_symbol with different
9183 arguments.
9184 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
9185 Accept a string for NAME_ALIST_OR_STEM.
9186
9187 * lisp.h (larger_vector): Add prototype.
9188
9189 * fns.c (larger_vector): Make externally visible.
9190
9191 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
9192
9193 2000-04-02 Stefan Monnier <monnier@cs.yale.edu>
9194
9195 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
9196 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
9197 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
9198 we are between str1 and str2.
9199 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
9200 (PATFETCH): Use `TRANSLATE'.
9201 (PATFETCH_RAW): Fetch multibyte char if applicable.
9202 (PATUNFETCH): Remove.
9203 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
9204 When writing a char, write it directly into the pattern buffer rather
9205 than going needlessly through a temp char-array.
9206 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
9207 multibyte magic and remove the useless `#ifdef emacs'.
9208 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
9209 buffer.
9210
9211 * regex.h (struct re_pattern_buffer): Make field `multibyte'
9212 conditional on `emacs'.
9213
9214 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
9215
9216 2000-04-01 Ken Raeburn <raeburn@gnu.org>
9217
9218 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
9219 non-union-type versions of XMARK and friends here, because XMARK
9220 and friends won't work on an integer field if NO_UNION_TYPE is not
9221 defined.
9222 (make_number): Define as a function if it's not defined as a macro.
9223
9224 * composite.c (run_composite_function): Use NILP when checking for nil.
9225 (syms_of_composite): Delete local var NARGS, pass an int as first
9226 argument to Fmake_hash_table.
9227
9228 * editfns.c (text_property_stickiness): Use NILP to test
9229 Lisp_Object boolean value.
9230 (Fmessage_or_box): Don't use NILP to test int variable.
9231 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
9232 problems reading from and changing the same lisp value in an
9233 XSETSTRING call.
9234
9235 2000-04-01 Gerd Moellmann <gerd@gnu.org>
9236
9237 * term.c (TN_no_color_video): New variable.
9238 (term_init): Intitialize TN_no_color_video.
9239 (enum no_color_bit): New enumeration.
9240 (MAY_USE_WITH_COLORS_P): New macro.
9241 (turn_on_face): Use it to determine if attributes may be used
9242 combined with colors.
9243
9244 2000-04-01 Ken Raeburn <raeburn@gnu.org>
9245
9246 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
9247 with int lvalues via casts; instead, just yield lisp object lvalues.
9248 (enlarge_window): Variable sizep now points to Lisp_Object. Use
9249 proper accessor macros.
9250 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
9251 (grow_mini_window): Fix typo getting int value of root->height.
9252
9253 * xdisp.c (compute_string_pos): Fix order of arguments to
9254 string_pos_nchars_ahead.
9255 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
9256 count arg to variable-arg routines like Frun_hook_with_args and
9257 Fformat.
9258 (back_to_previous_visible_line_start)
9259 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
9260 fixed-arg routines like Fget_char_property and Fmake_string.
9261 (reconsider_clip_changes): Use XINT when comparing integer lisp
9262 objects, or passing them as int arguments.
9263 (mark_window_display_accurate, insert_left_trunc_glyphs)
9264 (append_space, extend_face_to_end_of_line): Use make_number when
9265 storing or passing integer values as lisp objects.
9266 (set_cursor_from_row, highlight_trailing_whitespace): Use
9267 INTEGERP, not implicit test against zero, for glyph object.
9268 (try_window_id): Don't use make_number when we want an int value.
9269
9270 * xfaces.c (xlfd_symbolic_value): Make last argument a
9271 Lisp_Object, to be consistent with callers.
9272 (Fbitmap_spec_p): Use XINT to get numeric value of height.
9273 (lface_hash): Apply XFASTINT to lisp values before folding in.
9274
9275 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
9276 fill in window width and height. Pass an int, not a lisp object,
9277 as first arg to Finsert.
9278
9279 2000-04-01 Gerd Moellmann <gerd@gnu.org>
9280
9281 * xfaces.c (realize_basic_faces): Block input while realizing
9282 the faces.
9283
9284 * keyboard.c (lispy_mouse_names): Add additional mouse names.
9285
9286 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
9287
9288 2000-03-31 Gerd Moellmann <gerd@gnu.org>
9289
9290 * xterm.c (x_produce_glyphs): When displaying unibyte text
9291 or ASCII, handle case that per-char metric is null.
9292
9293 2000-03-30 Ken Raeburn <raeburn@gnu.org>
9294
9295 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
9296
9297 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW)
9298 (XSUBR, XBUFFER): Verify correct object type before returning
9299 pointer, using eassert.
9300 * frame.h (XFRAME): Likewise.
9301
9302 * buffer.c (Frename_buffer, Fset_buffer_multibyte)
9303 (swap_out_buffer_local_variables, Fmove_overlay): Don't apply
9304 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong type.
9305 * data.c (set_internal): Likewise.
9306 * dispextern.h (WINDOW_WANTS_MODELINE_P)
9307 (WINDOW_WANTS_HEADER_LINE_P): Likewise.
9308 * fileio.c (auto_save_1): Likewise.
9309 * insdel.c (check_markers): Likewise.
9310 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
9311 * undo.c (record_insert): Likewise.
9312 * vmsproc.c (child_sig): Likewise.
9313 * window.c (unshow_buffer, window_loop): Likewise.
9314 * xterm.c (x_erase_phys_cursor): Likewise.
9315
9316 2000-03-30 Gerd Moellmann <gerd@gnu.org>
9317
9318 * xfns.c (free_image_cache): Free the cache structure itself
9319 last, after all its members have been freed.
9320
9321 * lisp.h (xstrdup): Add prototype.
9322
9323 * alloc.c (xstrdup): Moved here from xfaces.c.
9324 (allocating_for_lisp): Variable removed.
9325 (lisp_malloc): Block input around the calls to malloc and mem_insert.
9326
9327 * xfaces.c (realize_tty_face): Use find_symbol_value instead
9328 of Fsymbol_value.
9329 (xstrdup): Moved to alloc.c.
9330
9331 2000-03-29 Ken Raeburn <raeburn@gnu.org>
9332
9333 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
9334
9335 * emacs.c (main): Fix sense of no-loadup test.
9336
9337 * config.in (ENABLE_CHECKING): Undef.
9338
9339 * lisp.h (struct interval): Replace "parent" field with a union of
9340 interval pointer and Lisp_Object; add new bitfield to use as
9341 discriminant. Change other flag fields to bitfields.
9342 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
9343 is defined and the supplied test fails, print a message and abort.
9344 (eassert): New macro. Use CHECK to provide an assert-like facility.
9345
9346 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
9347 pointers; abort if the value looks like a lisp object.
9348 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT)
9349 (SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
9350 Modify for new interval parent definition.
9351
9352 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE)
9353 (UNMARK_BALANCE_INTERVALS): Update references that need an
9354 addressable lisp object in the interval structure.
9355 (die): New function.
9356 (suppress_checking): New variable.
9357
9358 * intervals.c (interval_start_pos): Just return 0 if there's no
9359 parent object.
9360
9361 2000-03-29 Gerd Moellmann <gerd@gnu.org>
9362
9363 * lread.c (read1): Accept `.' (period) as symbol start like in CL
9364 and earlier Emacs versions.
9365
9366 * keyboard.c (Ftop_level): Cancel busy-cursor.
9367
9368 * eval.c (call_debugger): Cancel busy-cursor.
9369
9370 2000-03-29 Kenichi Handa <handa@etl.go.jp>
9371
9372 * search.c (Freplace_match): Adjust multibyteness of the current
9373 buffer and NEWTEXT. Free allocated memory before signaling an error.
9374
9375 2000-03-28 Stefan Monnier <monnier@cs.yale.edu>
9376
9377 * regex.c (analyse_first): New function obtained by ripping out most
9378 of re_compile_fastmap and generalizing it a little bit so that it
9379 can also just return whether a given (sub)pattern can match the empty
9380 string or not.
9381 (regex_compile): Use `analyse_first' to decide whether the loop-check
9382 needs to be done or not for *, +, *? and +? (the loop check is costly
9383 for non-greedy repetition).
9384 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
9385
9386 2000-03-28 Dave Love <fx@gnu.org>
9387
9388 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k, alpha.
9389
9390 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
9391
9392 2000-03-27 Stefan Monnier <monnier@cs.yale.edu>
9393
9394 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
9395 an expression.
9396 (enum re_opcode_t): Update description of succeed_n.
9397 (PATFETCH): Always define.
9398 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
9399 operators, char classes, shy-groups and intervals).
9400 Optimize special cases of intervals so as to only use succeed_n and
9401 jump_n when really needed.
9402 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
9403 that we don't have to handle the special cases any more.
9404 Simplify on_failure_jump handling as well.
9405
9406 2000-03-28 Jason Rumney <jasonr@gnu.org>
9407
9408 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
9409
9410 2000-03-27 Gerd Moellmann <gerd@gnu.org>
9411
9412 * s/freebsd.h (GC_SETJMP_WORKS): Define.
9413
9414 * s/msdos.h (GC_SETJMP_WORKS): Define.
9415
9416 * alloc.c (mark_maybe_object): New function.
9417 (mark_memory): Use it.
9418 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
9419 (setjmp_tested_p, longjmp_done): New variables.
9420 (test_setjmp): New function.
9421 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
9422 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
9423
9424 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
9425 to DEC_TEXT_POS and INC_TEXT_POS.
9426
9427 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
9428 with parameter MULTIBYTE_P.
9429
9430 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter MULTIBYTE_P.
9431
9432 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
9433 buffers because it looks for multibyte character byte sequences
9434 which don't exist in unibyte text.
9435
9436 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
9437
9438 * xfaces.c (register_color, unregister_color, unregister_colors)
9439 [DEBUG_X_COLORS]: New functions.
9440 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
9441
9442 * xfns.c (x_set_cursor_color): Get color reference counts right.
9443
9444 * xterm.c (x_copy_color): New function.
9445 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
9446
9447 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
9448 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
9449 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
9450 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
9451 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
9452 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
9453 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
9454 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
9455 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
9456 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
9457
9458 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
9459 names for handling per-buffer variables.
9460
9461 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
9462 instead of MAX_BUFFER_LOCAL_VARS.
9463 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
9464
9465 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
9466
9467 * xfns.c (x_specified_cursor_type): New function.
9468 (x_set_cursor_type): Use it.
9469
9470 * buffer.h (struct buffer): Add cursor_type.
9471
9472 2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
9473
9474 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
9475 (print_partial_compiled_pattern, re_compile_fastmap):
9476 Handle new opcode.
9477 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
9478 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
9479 executing it as well as when popping it off the stack to find infinite
9480 loops in non-greedy repetition operators.
9481
9482 2000-03-26 Gerd Moellmann <gerd@gnu.org>
9483
9484 * doc.c (Qfunction_documentation): New variable.
9485 (syms_of_doc): Initialize Qfunction_documentation.
9486 (Fdocumentation): If FUNCTION is a symbol with non-nil
9487 `function-documentation' property, return a documentation derived
9488 from that.
9489
9490 * buffer.c (syms_of_buffer): Add default-cursor-type.
9491 (init_buffer_once): Don't let cursor_type have a local value
9492 in every buffer.
9493
9494 * xterm.c (x_display_and_set_cursor): Choose cursor depending
9495 on buffer-local value of cursor_type.
9496 (x_draw_bar_cursor): Add parameter WIDTH.
9497
9498 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
9499 (init_buffer_once): Set default cursor_type value to t.
9500 Mark cursor_type as local everywhere.
9501 (syms_of_buffer): New per-buffer variable cursor-type.
9502
9503 * buffer.h (struct buffer): Remove member local_var_flags,
9504 add local_flags.
9505 (MAX_BUFFER_LOCAL_VARS): New macro.
9506 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
9507 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
9508 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
9509 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
9510
9511 * print.c (print_object): Use new macros for per-buffer variables.
9512
9513 * category.c (Fset_category_table): Use new macros for per-buffer
9514 variables.
9515
9516 * buffer.c (buffer_permanent_local_flags): Make a char array.
9517 (max_buffer_local_idx): New variable.
9518 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
9519 for new handling of per-buffer variables.
9520 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
9521 (init_buffer_once): Initialize per-buffer vars differently.
9522 Set max_buffer_local_idx.
9523
9524 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
9525 variables.
9526
9527 * lread.c (defvar_per_buffer): Use new macros for per-buffer variables.
9528
9529 * data.c (do_symval_forwarding, store_symval_forwarding)
9530 (find_symbol_value, set_internal, default_value, Fset_default)
9531 (Fkill_local_variable, Flocal_variable_p): Use new macros for
9532 per-buffer variables.
9533
9534 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
9535
9536 2000-03-24 Gerd Moellmann <gerd@gnu.org>
9537
9538 * xterm.c (x_term_init): Unblock input around call1 of
9539 Qvendor_specific_keysyms.
9540
9541 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
9542 (find_defun_start): Consider an open parenthesis in column 0
9543 a defun start only if open_paren_in_column_0_is_defun_start is set.
9544 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
9545
9546 2000-03-24 Stefan Monnier <monnier@cs.yale.edu>
9547
9548 * eval.c (Fautoload): Add entry in load-history (if after dump).
9549 * lread.c (load-history): Update docstring.
9550
9551 2000-03-24 Gerd Moellmann <gerd@gnu.org>
9552
9553 * indent.c (Fvertical_motion): Always use the current buffer.
9554 Temporarily change the window's buffer, if necessary.
9555
9556 2000-03-23 Gerd Moellmann <gerd@gnu.org>
9557
9558 * xterm.c (fast_find_position): Make sure not to consider rows
9559 not visible in the window.
9560
9561 2000-03-22 Stefan Monnier <monnier@cs.yale.edu>
9562
9563 * regex.c (enum syntaxcode): Provide default for non-Emacs.
9564 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
9565
9566 2000-03-22 Jason Rumney <jasonr@gnu.org>
9567
9568 * w32menu.c (single_submenu): Set help string to NULL if none.
9569 (w32_menu_show): Set help string correctly.
9570 (add-menu-item): Set help string in MIIM_DATA for menu item.
9571 Load SetMenuItemInfoA explicitly.
9572 (w32_menu_display_help): New function.
9573
9574 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
9575 (QCdata): Moved to xdisp.c.
9576
9577 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
9578 (Vw32_charset_to_codepage_alist): Removed.
9579 (Vw32_charset_info_alist): New variable.
9580 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312)
9581 (chinesebig5, oem, easteurope, turkish, baltic, russian, arabic)
9582 (greek, hebrew, thai, johab, mac, unicode]): New symbols.
9583 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
9584 with TODO comment.
9585 (w32_codepage_for_font): Use Vw32_charset_info_alist.
9586 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
9587 Define Vw32_charset_info_alist and w32_charset symbols.
9588
9589 2000-03-22 Jason Rumney <jasonr@gnu.org>
9590
9591 * makefile.nt (w32bdf.obj): Update dependencies.
9592
9593 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
9594
9595 * w32fns.c: Include fontset.h after dispextern.h.
9596 (Fx_create_frame): Do not create fontset.
9597 (w32_load_system_font): Doc fix.
9598 (Fx_close_connection): Free full_name if it is not shared.
9599
9600 * w32term.c: Include fontset.h after dispextern.h.
9601 (x_get_glyph_face_and_encoding): New parameter two_byte_p.
9602 Callers updated.
9603 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
9604 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
9605 (w32_font_is_double_byte): New function, needs body.
9606 (x_append_glyph): Set glyph->glyph_not_available_p.
9607 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
9608 it->charset. If it->multibyte_p is zero and it->c is a multibyte
9609 character, convert it to a unibyte character.
9610 (struct glyph_string): Delete member `charset'.
9611 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
9612 calculating it is found.
9613 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
9614 the case that per char metric is not available correctly.
9615 (x_fill_glyph_string): Handle the case that the specific glyph is
9616 not available correctly.
9617 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
9618 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
9619 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
9620 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
9621 fontset. Don't call FS_LOAD_FONT.
9622
9623 2000-03-22 Ken Raeburn <raeburn@gnu.org>
9624
9625 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
9626 (INT_LISPLIKE): New macro.
9627 (NULL_INTERVAL_P): Use it.
9628 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT)
9629 (SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT)
9630 (GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
9631
9632 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
9633 explicit references to "parent" field of struct interval and
9634 associated unclean type conversions.
9635 * intervals.c (create_root_interval, root_interval, rotate_right)
9636 (rotate_left, balance_possible_root_interval, split_interval_right)
9637 (split_interval_left, interval_start_pos, find_interval)
9638 (next_interval, previous_interval, update_interval)
9639 (adjust_intervals_for_insertion, delete_node, delete_interval)
9640 (adjust_intervals_for_deletion, merge_interval_right)
9641 (merge_interval_left, reproduce_tree, graft_intervals_into_buffer)
9642 (copy_intervals_to_string): Likewise.
9643 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
9644 Likewise.
9645 * syntax.c (update_syntax_table): Likewise.
9646
9647 * intervals.c (reproduce_tree_obj): New function, like
9648 reproduce_tree but takes a Lisp_Object for the parent. Declare
9649 with prototype.
9650 (graft_intervals_into_buffer): Use it when appropriate.
9651 (reproduce_tree): Declare with prototype.
9652 (balance_possible_root_interval): Check that the parent is a lisp
9653 object before trying to examine its type.
9654
9655 2000-03-22 Gerd Moellmann <gerd@gnu.org>
9656
9657 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
9658 as strings only if both are known to be strings.
9659
9660 * s/openbsd.h (LIBS_TERMCAP): Undef.
9661
9662 2000-03-21 Stefan Monnier <monnier@cs.yale.edu>
9663
9664 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
9665 definitions for non-Emacs compilation.
9666 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
9667 outside of `#ifdef emacs'.
9668 (print_partial_compiled_pattern): Update.
9669 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
9670 (re_compile_fastmap): Merge handling of charset and charset_not (for
9671 emacs and non-emacs compilation as well).
9672 Similarly for (not)categoryspec and (not)syntaxspec.
9673 Don't use the fastmap when reaching `anychar' since the added
9674 complexity is not justified.
9675 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
9676 and (not)syntaxspec. Merge (not)categoryspec.
9677
9678 2000-03-22 Kenichi Handa <handa@etl.go.jp>
9679
9680 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P)
9681 (FACE_FOR_CHAR): Define them differently for the configuration of
9682 --without-x.
9683
9684 2000-03-21 Dave Love <fx@gnu.org>
9685
9686 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
9687 doc string.
9688
9689 2000-03-21 Gerd Moellmann <gerd@gnu.org>
9690
9691 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
9692 (lface_fully_specified_p): Don't check contents of
9693 LFACE_FONT_INDEX because that attribute is optional.
9694 (realize_x_face): Remove now unwarranted xassert.
9695
9696 2000-03-21 Kenichi HANDA <handa@etl.go.jp>
9697
9698 The following changes are to make font selection based on
9699 characters, not charset. In addition, they recover fontset
9700 facilities while utilizing the new font selection mechanism.
9701
9702 * Makefile.in (fontset.o): Depend on dispextern.h.
9703
9704 * alloc.c (mark_face_cache): Don't mark face->registry.
9705
9706 * dispextern.h (struct glyph): New member glyph_not_available_p.
9707 Use 22 bits for face_id.
9708 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
9709 (struct face): Delete member registry, new member ascii_face.
9710 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
9711 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
9712 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
9713 (struct it): Delete member charset, new member glyph_not_available_p.
9714
9715 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
9716 (struct fontset_info, struct fontset_data): Structs removed.
9717 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset)
9718 (Vglobale_fontset_alist, font_idx_temp): Externs removed.
9719 (fs_load_font, fs_query_fontset): Adjusted for new argument.
9720 (fs_free_face_fontset, fontset_font_pattern)
9721 (face_suitable_for_char_p, face_for_char)
9722 (make_fontset_for_ascii_face): Extern them.
9723 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
9724 (FS_LOAD_FACE_FONT): New macro.
9725
9726 * fontset.c: All codes rewritten or adjusted for the change of
9727 fontset implementation. Now fontset is represented by char table.
9728 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl):
9729 Variables removed.
9730 (my_strcasecmp): Function removed.
9731 (Vfontset_table, next_fontset_id, Vdefault_fontset): New variables.
9732 (AREF, ASIZE): New macros.
9733 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME)
9734 (FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF)
9735 (FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
9736 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset)
9737 (fontset_id_valid_p, font_family_registry, fontset_name)
9738 (fontset_ascii, free_face_fontset, face_suitable_for_char_p)
9739 (face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
9740 New functions.
9741 (fs_load_font): New arg FACE. Caller changed.
9742 (fs_query_fontset): Argument changed. Caller changed.
9743 (Fquery_fontset): call fs_query_fontset.
9744 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
9745 Functions removed.
9746 (clear_fontset_elements, check_registry_encoding)
9747 (check_fontset_name): New functions.
9748 (syms_of_fontset): Set char-table-extra-slots property of fontset
9749 to 3. Staticpro and initialize Vfontset_table and
9750 Vdefault_fontset. Defsubr fontset_font and fontset_list.
9751
9752 * frame.h (struct frame): Member `fontset_data' removed.
9753 (FRAME_FONTSET_DATA): Macro removed.
9754
9755 * frame.c (make_frame): Don't allocate f->fontset_data.
9756 (Fdelete_frame): Don't free f->fontset_data.
9757
9758 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
9759
9760 * xdisp.c (charset_at_position): Function removed.
9761 (init_iterator): Don't set member charset of struct `it'.
9762 (handle_face_prop, reseat_to_string, set_iterator_to_next)
9763 (next_element_from_display_vector, insert_left_trunc_glyphs):
9764 Likewise.
9765 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
9766 FACE_FOR_CHARSET.
9767 (get_next_display_element, append_space)
9768 (extend_face_to_end_of_line): Likewise.
9769
9770 * xfaces.c (Qx_charset_registry, Vface_default_registry):
9771 Variables removed.
9772 (clear_font_table, frame_update_line_height, load_face_font):
9773 Adjusted for the change of fontset implementation.
9774 (load_face_fontset_font): Function removed.
9775 (pixel_point_size): New function.
9776 (font_list): Argument type changed. Caller changed.
9777 (LFACE_FONT): New macro.
9778 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
9779 (set_lface_from_font_name): Type of arg FONTNAME is changed to
9780 Lisp_Object. Determine the font name by actually loading a font
9781 by the specified pattern. Set LFACE_FONT (lface) to the specified
9782 pattern. Even if a font is not found, don't try alternatives.
9783 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
9784 (set_font_frame_param): If `font' is specified in lface, use it.
9785 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
9786 (lface_same_font_attributes_p): Likewise.
9787 (make_realized_face): Arguent changed. Caller changed. Set
9788 face->ascii_face to face itself.
9789 (free_realized_face): Free face->fontset if face is for ASCII.
9790 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p)
9791 (deduce_unibyte_registry, x_charset_registry): Functions removed.
9792 (free_realized_multibyte_face): New function.
9793 (lookup_face, lookup_named_face, lookup_derived_face): Argument
9794 changed. Caller changed.
9795 (try_font_list): Argument type changed.
9796 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
9797 (choose_face_font): Argument changed. Handle fontset properly.
9798 (choose_face_fontset_font): Function removed.
9799 (realize_default_face, realize_named_face): Don't remove the
9800 former face here.
9801 (realize_face): Argument changed. Caller changed. Remove face
9802 with the arg former_face_id in advance. Load font for the new face.
9803 (realize_x_face): Argument changed. Caller changed. For a
9804 multibyte character, share fontset with base_face. For a single
9805 byte character, make a new realized fontset. Don't load a font here.
9806 (realize_tty_face): Argument changed. Caller changed.
9807 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
9808 (face_at_buffer_position): Don't check multibyte_p for returning
9809 DEFAULT_FACE_ID.
9810 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
9811 FACE_SUITABLE_FOR_CHARSET_P.
9812 (syms_of_xfaces): Remove code for Qx_charset_registry and
9813 Vface_default_registry.
9814
9815 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
9816 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9817 (x_per_char_metric): Don't try FONT->default_char. Even if
9818 pcm->width is zero, glyph bits may exist.
9819 (x_encode_char): Always initialize char2b->byte1.
9820 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
9821 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller changed.
9822 (x_append_glyph): Set glyph->glyph_not_available_p.
9823 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
9824 it->charset. Handle the case that per char metric is not
9825 available. If it->multibyte_p is zero and it->c is a multibyte
9826 character, convert it to a unibyte character.
9827 (struct glyph_string): Delete member `charset'.
9828 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
9829 the case that per char metric is not available correctly.
9830 (x_fill_glyph_string): Handle the case that the specific glyph is
9831 not available correctly.
9832 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
9833 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
9834 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
9835 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
9836 fontset. Don't call FS_LOAD_FONT.
9837
9838 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
9839 (x_create_tip_frame): Likewise.
9840 (Fx_close_connection): Free full_name of font_info.
9841
9842 * fns.c (optimize_sub_char_table): New function.
9843 (Foptimize_char_table): New function.
9844 (syms_of_fns): Defsubr Soptimize_char_table.
9845
9846 2000-03-20 Gerd Moellmann <gerd@gnu.org>
9847
9848 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
9849 only if buffer is displayed in some window.
9850
9851 * xdisp.c (handle_single_display_prop): Initialize local `value'.
9852 (try_window_reusing_current_matrix): Don't call scroll run
9853 function if run's current and desired position are the same;
9854 this prevents cursor flickering.
9855
9856 2000-03-19 Stefan Monnier <monnier@cs.yale.edu>
9857
9858 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
9859
9860 * regex.c (RE_STRING_CHAR): New macro.
9861 (GET_CHAR_AFER_2): Remove.
9862 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
9863 (enum re_opcode_t): Remove on_failure_jump_exclusive.
9864 (print_partial_compiled_pattern, re_compile_fastmap)
9865 (re_match_2_internal): Remove on_failure_jump_exclusive.
9866 (regex_compile): Turn optimizable P+ loops into PP*, so that the
9867 optimization only need to work for * (ie. can use of_keep_string_jump).
9868 Remove the special case for .*\n since it is now covered by the general
9869 optimization.
9870 (re_search_2): Don't bother with `room'.
9871 (skip_one_char): New function.
9872 (skip_noops): Simplify since `memory' is not needed any more.
9873 (mutually_exclusive_p): Restructure slightly to use `switch' and
9874 add handling for "all" remaining cases.
9875 (re_match_2_internal): Change on_failure_jump_smart to use
9876 on_failure_keep_string_jump (and redirect the end-of-loop jump)
9877 rather than on_failure_jump_exclusive.
9878
9879 2000-03-19 Gerd Moellmann <gerd@gnu.org>
9880
9881 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
9882 number of bits per RGB because it's everywhere used as the depth
9883 of the visual.
9884
9885 * term.c (calculate_costs): Remove code dealing with X frames.
9886
9887 2000-03-19 Richard M. Stallman <rms@gnu.org>
9888
9889 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
9890
9891 2000-03-18 Gerd Moellmann <gerd@gnu.org>
9892
9893 * lread.c (read_integer): Unread the last char not consumed.
9894
9895 2000-03-17 Gerd Moellmann <gerd@gnu.org>
9896
9897 * xterm.c (x_update_window_cursor): Don't update in frames
9898 which are in the process of being deleted.
9899
9900 2000-03-16 Gerd Moellmann <gerd@gnu.org>
9901
9902 * Makefile.in (mostlyclean): Add `*.core'.
9903 (clean): Add `bootstrap-emacs'.
9904
9905 * lread.c (read_integer): New function.
9906 (read1): Support read syntax #o, #x, #b, #r.
9907
9908 2000-03-15 Stefan Monnier <monnier@cs.yale.edu>
9909
9910 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
9911 make sure POINTER_TO_OFFSET gives the same value before and after
9912 PREFETCH. Use `dfail' to guarantee "atomic" matching.
9913 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
9914 (debug): Now only active if > 0 rather than if != 0.
9915 (DEBUG_*): Update for the new meaning of `debug'.
9916 (print_partial_compiled_pattern): Add missing `succeed' case. Use
9917 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
9918 in `succeed_n', `jump_n' and `set_number_at'.
9919 (store_op1, store_op2, insert_op1, insert_op2)
9920 (at_begline_loc_p, at_endline_loc_p): Add prototype.
9921 (group_in_compile_stack): Move to after its arg's types are
9922 declared and add a prototype.
9923 (PATFETCH): Define in terms of PATFETCH_RAW.
9924 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)' wrapper.
9925 (QUIT): Redefine as a nop except for NTemacs.
9926 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
9927 indentation of the greedy-op and shy-group code.
9928 (at_(beg|end)line_loc_p): Fix argument's types.
9929 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
9930 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
9931 (MATCHING_IN_FIRST_STRING): Remove.
9932 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
9933 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
9934 QUIT unconditionally.
9935
9936 2000-03-15 Gerd Moellmann <gerd@gnu.org>
9937
9938 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
9939 a sole completion.
9940
9941 * process.c (send_process): Add a hint that the function
9942 can call Lisp code to its comment.
9943
9944 * lread.c (load_dangerous_libraries): New variable.
9945 (Vbytecomp_version_regexp): New variable.
9946 (safe_to_load_p): New function.
9947 (Fload): Handle files not compiled with Emacs specially.
9948 (syms_of_lread): New Lisp variable load-dangerous-libraries.
9949
9950 2000-03-14 Gerd Moellmann <gerd@gnu.org>
9951
9952 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
9953
9954 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
9955 support functions only if HAVE_X11R6_XIM is defined.
9956 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
9957
9958 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
9959
9960 * xfns.c (X_I18N_INHIBITED): Don't define.
9961 (create_frame_xic): Remove conditional compilation on X_I18N_INHIBITED.
9962 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
9963
9964 * config.in (HAVE_X_I18N): Moved here from xterm.h.
9965 (HAVE_X11R6_XIM): Define.
9966
9967 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
9968
9969 * xterm.c (x_term_init): Add support for X resource `synchronous'.
9970 If set, call XSynchronize.
9971
9972 2000-03-13 Stefan Monnier <monnier@cs.yale.edu>
9973
9974 * regex.c: Declare a new type `re_char' used throughout the code
9975 for the string char type. It's `const unsigned char' to match the
9976 rest of Emacs. Consistently make sure all pointers to strings use
9977 it and make sure all pointers into the pattern use `unsigned char'.
9978 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
9979 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
9980 code duplication.
9981
9982 * charset.h (GET_CHAR_AFTER_2): Remove.
9983 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
9984
9985 2000-03-12 Ken Raeburn <raeburn@gnu.org>
9986
9987 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
9988 variable before the invocation of YMF_PASS_LDFLAGS, in case both
9989 of them try to use backquotes.
9990
9991 2000-03-12 Dave Love <fx@gnu.org>
9992
9993 * unexelf.c: Restore changes of 1999-10-19.
9994 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
9995 fix its type and alignment; copy it from current process.
9996
9997 2000-03-12 Gerd Moellmann <gerd@gnu.org>
9998
9999 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
10000 has been found. Fix bug not computing timer's predecessor.
10001
10002 * fileio.c (Fread_file_name): Handle case that DIR contains a
10003 file name.
10004
10005 * window.c (Fsave_window_excursion): Doc fix.
10006
10007 * xfns.c (x_defined_color): Rewritten to use x_allocate_nearest_color.
10008
10009 2000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
10010
10011 * msdos.c (vga_installed): New function, code moved from
10012 dos_set_window_size.
10013 (Qbar, Qcursor_type, outside_cursor): New variables.
10014 (syms_of_msdos): Intern and staticpro them.
10015 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
10016 shape used outside Emacs when called for the first time.
10017 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
10018 cursor shape used outside Emacs.
10019 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
10020 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
10021 type has changed.
10022 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
10023 parameters specify the cursor. Make qreverse a global
10024 variable (renamed to Qreverse).
10025
10026 2000-03-09 Gerd Moellmann <gerd@gnu.org>
10027
10028 * fns.c (Fy_or_n_p): Cancel busy-cursor.
10029
10030 2000-03-08 Stefan Monnier <monnier@cs.yale.edu>
10031
10032 This is a big redesign of failure-stack and register handling, prompted
10033 by bugs revealed when trying to add shy-groups. Overall, what happened
10034 is that loops are now structured a little differently, groups can be
10035 shy and the code is a little simpler.
10036
10037 * regex.h: Update the copyright.
10038 (RE_SHY_GROUPS): New value.
10039 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
10040 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
10041
10042 * regex.c (enum re_opcode_t): Remove jump_past_alt,
10043 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
10044 on_failure_jump_(exclusive, loop and smart). Also fix the comment
10045 for (start|stop)_memory since they now only take one argument (the
10046 second has becomes unnecessary).
10047 (print_partial_compiled_pattern): Adjust for changes in re_opcode_t.
10048 (print_compiled_pattern): Use %ld to printf long ints and flush to
10049 make debugging a little easier.
10050 (union fail_stack_elt): Make the integer unsigned.
10051 (struct fail_stack_type): Add a `frame' element.
10052 (INIT_FAIL_STACK): Init `frame' as well.
10053 (POP_PATTERN_OP): New macro for re_compile_fastmap.
10054 (DEBUG_PUSH, DEBUG_POP): Remove.
10055 (NUM_REG_ITEMS): Remove.
10056 (NUM_NONREG_ITEMS): Adjust.
10057 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
10058 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
10059 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
10060 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP):
10061 New macros.
10062 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
10063 address pushed is not the destination of the jump but the source
10064 of it instead.
10065 (NUM_FAILURE_ITEMS): Remove.
10066 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
10067 registers before the actual failure point). Don't hardcode any
10068 meaning for str==NULL anymore.
10069 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
10070 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
10071 Remove.
10072 (REG_UNSET_VALUE): Use NULL (why not?).
10073 (compile_range): Remove declaration since it doesn't exist.
10074 (struct compile_stack_elt_t): Remove inner_group_offset.
10075 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
10076 (regex_grow_registers): Remove dead code.
10077 (FIXUP_ALT_JUMP): New macro.
10078 (regex_compile): Add shy-groups Change loops to use
10079 on_failure_jump_smart&jump instead of
10080 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
10081 initial (dummy_failure_)jump. Remove c1_base (looks like unused
10082 variable to me). Use `jump' instead of `jump_past_alt' and don't
10083 bother with push_dummy_failure in alternatives since it is now
10084 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
10085 emacs' for (re)allocating the stack.
10086 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
10087 from loop when bufp->can_be_null rather than jumping to `done'.
10088 Avoid jumping backwards so as to ensure termination. Use
10089 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
10090 backreferences. Remove dead code in handling of `anychar'.
10091 (skip_noops, mutually_exclusive_p): New functions taken from the
10092 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
10093 improve mutually_exclusive_p to handle ".+\n".
10094 (lowest_active_reg, highest_active_reg)
10095 (NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
10096 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
10097 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
10098 variables. Push register (in `start_memory') on the stack rather
10099 than storing it in old_reg(start|end). Remove the cycle detection
10100 from `stop_memory', replaced by the use of on_failure_jump_loop
10101 for greedy loops. Add code for the new on_failure_jump_<foo>.
10102 Remove ad-hoc code in `on_failure_jump' to push more registers in
10103 the case of a loop. Take out code from `maybe_pop_jump' into
10104 separate functions and adapt it to the semantics of
10105 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
10106 and push_dummy_failure. Remove dummy_failure handling and
10107 handling of `failures to jump to on_failure_jump' (this last one
10108 was already dead code, it seems).
10109 (group_match_null_string_p, alt_match_null_string_p)
10110 (common_op_match_null_string_p): Remove.
10111
10112 2000-03-08 Dave Love <fx@gnu.org>
10113
10114 * config.in: Don't depend on __STDC__ for volatile.
10115 Add POINTER_TYPE, PTR, PROTOTYPES.
10116
10117 * hftctl.c, strftime.c: Use PROTOTYPES.
10118 * eval.c (find_handler_clause): Likewise.
10119
10120 * mem-limits.h: Use POINTER_TYPE.
10121
10122 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
10123 (memory_warnings): Declare using POINTER_TYPE.
10124
10125 2000-03-08 Gerd Moellmann <gerd@gnu.org>
10126
10127 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
10128
10129 * xdisp.c (display_echo_area): Temporarily inhibit garbage collection.
10130
10131 * xfns.c: Remove obsolete code in #if 0.
10132 (Fx_focus_frame): New function.
10133
10134 2000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
10135
10136 * coding.c (coding_category_name): Add coding-category-utf-8,
10137 coding-category-utf-16-be, coding-category-utf-16-le.
10138 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
10139 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
10140 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
10141 (detect_coding_utf_8): New function.
10142 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
10143 UTF_16_LOW_SURROGATE_P): New macros.
10144 (detect_coding_utf_16): New function
10145 (detect_coding_mask): When priorities are specified, skip any
10146 categories that have `nil' coding-system. Fix bug of returning
10147 wrong mask when PRIORITIES is specified and detect_coding_XXX()
10148 returns a mask not set in PRIORITIES.
10149 (detect_eol_type_in_2_octet_form): New function.
10150 (detect_eol): selects detect_eol_type_XXX to call according to
10151 cooding->category_idx.
10152 (detect_coding_system): Remove `nil' coding-system in the result.
10153 (Fupdate_coding_systems_internal): Update all coding-categories.
10154
10155 * coding.h (CODING_CATEGORY_IDX_UTF_8)
10156 (CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE):
10157 New macros.
10158 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY)
10159 (CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
10160 (CODING_CATEGORY_IDX_UTF_16_LE)
10161 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE)
10162 (CODING_CATEGORY_MASK_UTF_16_LE): New macros.
10163 (CODING_CATEGORY_MASK_ANY): Include the above macros.
10164 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
10165
10166 2000-03-07 Gerd Moellmann <gerd@gnu.org>
10167
10168 * doc.c (Fdocumentation_property): If value is not a string,
10169 and doesn't refer to etc/DOC, evaluate it to obtain a string.
10170
10171 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
10172 close the display with XtCloseDisplay. This caused a bus error
10173 on OpenWindows.
10174
10175 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
10176 complete but not unique.
10177
10178 2000-03-06 Gerd Moellmann <gerd@gnu.org>
10179
10180 * process.c (send_process): Remove local variable `procname' that
10181 might become invalid when a GC happens. Instead, access the
10182 process name slot directly.
10183
10184 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
10185 orig_height if set.
10186
10187 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
10188 orig_height if set.
10189
10190 2000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
10191
10192 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
10193 glyph matrices have been freed.
10194
10195 2000-03-05 Gerd Moellmann <gerd@gnu.org>
10196
10197 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
10198 (bootstrap-temacs): Set LC_ALL to C like for temacs.
10199
10200 * xfns.c (QCdata): Moved to xdisp.c.
10201
10202 * xdisp.c (QCdata): Moved here from xfns.c.
10203 (syms_of_xdisp): Initialize QCdata.
10204
10205 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
10206
10207 * window.c (coordinates_in_window): Use
10208 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
10209 FRAME_INTERNAL_BORDER_WIDTH.
10210
10211 * xdisp.c (try_window_id): Recompute unchanged information if
10212 it is obviously invalid.
10213
10214 * xterm.c (x_term_init): Create a colormap if not using the
10215 default visual.
10216
10217 * xterm.h (select_visual): Change prototype.
10218
10219 * xfns.c (select_visual): Rewritten. Recognize user-specified
10220 visual classes.
10221 (visual_classes): New variable.
10222
10223 2000-03-04 Gerd Moellmann <gerd@gnu.org>
10224
10225 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
10226 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
10227 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
10228 (x_decode_color): Don't handle allocation of white and black specially.
10229 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
10230 XtNcolormap resources.
10231 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
10232 (Fx_create_frame): Initialize color members of x_output structure.
10233 (xpm_load): Pass colormap to XPM lib.
10234
10235 * xfaces.c (x_free_colors): Access colormap of frame using
10236 FRAME_X_COLORMAP. Be paranoid about freeing black and white
10237 when default colormap is used.
10238
10239 * xterm.c (x_term_init): Set Colormap member of x_display_info
10240 structure. Copy colormap if resource `privateColormap' is
10241 specified (PseudoColor only).
10242 (x_setup_relief_color): Access colormap of frame using
10243 FRAME_X_COLORMAP.
10244
10245 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
10246 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
10247
10248 2000-03-04 Jason Rumney <jasonr@gnu.org>
10249
10250 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
10251 other non-platform-specific equivalents.
10252 [WINDOWSNT]: Include w32term.h, fontset.h and define X
10253 specific functions and macros as their w32 equivalents where
10254 non-platform-specifics are not available.
10255 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
10256 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
10257 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
10258 (frame_update_line_height): Use macros to access f->output_data.
10259 (defined_color): Remove FIXME comments; fixed.
10260 (x_face_list_fonts, prepare_face_for_display): Put X specifics
10261 into #ifdef blocks. Add WINDOWSNT blocks.
10262 (Fx_list_fonts): Use macros for accessing font data.
10263 (set_lface_from_font_name): Different default fonts for X and
10264 WINDOWSNT.
10265 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
10266 scalable for backward compatibility.
10267 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
10268 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
10269
10270 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
10271 syms_of_w32faces.
10272
10273 * makefile.nt (w32faces.obj): Remove.
10274 (xfaces.obj): Add.
10275
10276 2000-03-03 Jason Rumney <jasonr@gnu.org>
10277
10278 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
10279 correct parameters.
10280
10281 2000-03-03 Ken Raeburn <raeburn@gnu.org>
10282
10283 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
10284 standard ELF definitions here if the system header does not.
10285
10286 2000-03-03 Gerd Moellmann <gerd@gnu.org>
10287
10288 * xterm.c (PER_CHAR_METRIC): Removed.
10289 (x_per_char_metric_1, x_default_char): New functions.
10290 (x_per_char_metric): If font's default char is invalid, return
10291 metrics of a suitably chosen usable default char.
10292 (x_draw_glyph_string_foreground): If font has an invalid default
10293 char, replace occurrences of unprintable chars with a suitably
10294 chosen usable default char.
10295
10296 2000-03-02 Gerd Moellmann <gerd@gnu.org>
10297
10298 * xterm.c (note_mouse_highlight): Return quickly if frame's
10299 glyph matrices have been freed.
10300
10301 * dispnew.c (free_glyphs): Block input while freeing matrices.
10302
10303 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
10304
10305 * xterm.c (x_alloc_lighter_color, x_setup_relief_color):
10306 Use x_free_colors.
10307
10308 * dispextern.h (x_free_colors): Add prototype.
10309
10310 * xfaces.c (x_free_colors): New function.
10311 (unload_color, free_face_colors): Use it.
10312
10313 2000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
10314
10315 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
10316
10317 * window.c [MSDOS]: Include msdos.h.
10318
10319 2000-03-02 Dave Love <fx@gnu.org>
10320
10321 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
10322
10323 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
10324 set C_OPTIMIZE_SWITCH for gcc.
10325
10326 2000-03-02 Kenichi Handa <handa@etl.go.jp>
10327
10328 * coding.c (coding_save_composition): Be sure to allocate
10329 composition data area in coding even if there's no composition in
10330 the current run.
10331
10332 2000-03-01 Jason Rumney <jasonr@gnu.org>
10333
10334 * w32term.c: Equivalent changes to those made to xterm.c on
10335 2000-02-25 and 2000-02-24.
10336
10337 * w32fns.c: Equivalent changes to those made to xfns.c on
10338 2000-02-25 and 2000-02-21.
10339
10340 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
10341 correct line-end convention is followed.
10342
10343 * w32menu.c [HAVE_BOXES]: Remove #undef.
10344 (single_keymap_panes): Remove code for simulating checkmarks.
10345 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
10346 Remove code for drawing simulated checkmarks.
10347 (w32_menu_show): make unibyte help string correctly.
10348 (add_menu_item): draw standard Windows checkmarks. Draw radio
10349 buttons as radio buttons if possible.
10350
10351 2000-03-01 Gerd Moellmann <gerd@gnu.org>
10352
10353 * sysdep.c (start_of_text): Don't define this function for NetBSD
10354 with ELF.
10355
10356 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
10357 Don't define.
10358 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
10359 (LINKER): Don't undef if __NetBSD__ is defined.
10360
10361 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
10362
10363 * fileio.c [__NetBSD__]: Define `unix'.
10364
10365 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
10366
10367 2000-02-29 Gerd Moellmann <gerd@gnu.org>
10368
10369 * atimer.c (start_atimer): Don't abort when timers are stopped.
10370 (append_atimer_lists): New function.
10371 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
10372 arbitrary lists of stopped and running atimers.
10373
10374 * atimer.c (cancel_atimer): Handle canceling an atimer when
10375 some timers are stopped.
10376
10377 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
10378 after canceling it.
10379
10380 * fns.c (maybe_resize_hash_table): Handle case of new size
10381 coming out as being the same as old size.
10382
10383 2000-02-27 Jason Rumney <jasonr@gnu.org>
10384
10385 * makefile.nt: Add atimer.h to dependencies.
10386 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
10387 * w32console.c: Only disable window system features for dispextern.h
10388 (initialize_w32_display): Build a display info for the console.
10389 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
10390 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
10391 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
10392 as 2 button mice.
10393 * w32gui.h (struct W32FontStruct): Revert last change after change
10394 to xdisp.c.
10395 * w32menu.c (single_submenu): Set up help string.
10396 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
10397 (w32_dialog_show): Set up help string.
10398 * w32term.c (w32_display_info_for_display): Remove unused function.
10399 (w32_draw_bitmap): Use pre-built bitmaps.
10400 (w32_initialize_display_info): New function to initialize parts of
10401 display info that are common to both GUI and console frames.
10402 (w32_term_init): Use w32_initialize_display_info. Do not set
10403 Vw32_num_mouse_buttons here, as it is not called for console
10404 frames. Build bitmaps for indicating truncated lines etc.
10405 (x_delete_display): Destroy pre-built bitmaps.
10406 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
10407 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
10408
10409 2000-02-27 Dave Love <fx@gnu.org>
10410
10411 * lisp.h: Add a bunch of prototypes.
10412
10413 2000-02-26 Kenichi Handa <handa@etl.go.jp>
10414
10415 * keyboard.c (read_char): Set `usec' correctly.
10416
10417 2000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
10418
10419 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
10420 `lambda', set reg[RRR] to the map index.
10421 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
10422 reg[RRR] to 0. Otherwise, set it to -1.
10423
10424 2000-02-25 Gerd Moellmann <gerd@gnu.org>
10425
10426 * emacs.c (main): Remove code snippet commented out with `//'.
10427
10428 2000-02-25 Richard M. Stallman <rms@gnu.org>
10429
10430 * fileio.c (Ffile_symlink_p): If result starts with a `/'
10431 and contains a `:', prepend `/:'.
10432
10433 * window.c (select_window_1): If selected_window is nil,
10434 don't "swap out" the buffer's point.
10435 (Fset_window_configuration): Set selected_window to nil
10436 before calling Fselect_window.
10437 (unshow_buffer): Don't set point in buffer from window's point
10438 if another more recently selected window also shows the buffer.
10439
10440 2000-02-25 Gerd Moellmann <gerd@gnu.org>
10441
10442 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
10443
10444 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
10445 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
10446 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay):
10447 New variables.
10448 (DEFAULT_BUSY_CURSOR_DELAY): New define.
10449 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
10450 (hide_busy_cursor): New functions.
10451 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
10452
10453 * minibuf.c (read_minibuf): Cancel busy-cursor.
10454
10455 * keyboard.c (command_loop_1): Call start_busy_cursor before
10456 Fcommand_execute and cancel_busy_cursor after it.
10457 (timer_check): Remove busy-cursor code.
10458 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
10459 cursor timer.
10460
10461 * process.c (wait_reading_process_input): Remove busy-cursor code.
10462
10463 * eval.c (Fsignal): Call cancel_busy_cursor instead of
10464 Fx_hide_busy_cursor.
10465
10466 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
10467 Remove prototyoes.
10468 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
10469
10470 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
10471
10472 * xterm.c (XTread_socket): Remove busy-cursor code.
10473
10474 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
10475 (build_frame_matrix_from_leaf_window): Put code handling
10476 glyph row's not being a slice of a frame row in #if 0.
10477 (sync_window_with_frame_matrix_rows): New function.
10478 (frame_row_to_window): New function.
10479 (mirror_line_dance): Handle copies between windows.
10480
10481 * lread.c (Fload): Use `xfree' instead of `free'.
10482 (init_obarray): Use `xmalloc' instead of `malloc'.
10483
10484 * window.c (Fset_window_buffer): Set WINDOW to the window
10485 after decoding.
10486 (coordinates_in_window): Take frame's internal border width
10487 into account.
10488
10489 2000-02-24 Gerd Moellmann <gerd@gnu.org>
10490
10491 * xterm.c (x_display_and_set_cursor): Display cursor of
10492 non-selected windows depending on the setting of
10493 cursor_in_non_selected_windows.
10494
10495 * xdisp.c (cursor_in_non_selected_windows): New variable.
10496 (syms_of_xdisp): DEFVAR_BOOL it.
10497
10498 2000-02-23 Gerd Moellmann <gerd@gnu.org>
10499
10500 * data.c (Fstring_to_number): If number is greater than what
10501 fits into an integer, return a float.
10502
10503 * eval.c (specbind): Remove references to
10504 keyword_symbols_constant_flag.
10505
10506 * data.c (keyword_symbols_constant_flag): Removed.
10507 (Fmakunbound, set_internal, syms_of_data): Remove references to
10508 keyword_symbols_constant_flag.
10509
10510 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
10511
10512 2000-02-23 Kenichi Handa <handa@etl.go.jp>
10513
10514 * syntax.c (multibyte_syntax_as_symbol): New variable.
10515 (syms_of_syntax): Declare it as a Lisp variable.
10516 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
10517 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
10518 nonzero, treat all multibyte characters as symbol.
10519 (init_syntax_once): Give syntax `word' to all multibyte characters.
10520
10521 2000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
10522
10523 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
10524 a deleted frame.
10525
10526 2000-02-21 Gerd Moellmann <gerd@gnu.org>
10527
10528 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
10529
10530 * xfns.c (x_window_to_frame, x_any_window_to_frame)
10531 (x_non_menubar_window_to_frame): Check the busy-cursor window.
10532
10533 2000-02-21 Dave Love <fx@gnu.org>
10534
10535 * frame.c (Vmouse_position_function): New variable.
10536 (Fmouse_position): Use it.
10537 (syms_of_frame): Install it.
10538
10539 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
10540
10541 2000-02-20 Gerd Moellmann <gerd@gnu.org>
10542
10543 * fileio.c (Finsert_file_contents): Unbind the binding of
10544 standard-output done by temp_output_buffer_setup.
10545
10546 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
10547 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
10548 (specbind, unbind_to): Handle most common case of non-constant
10549 symbol with trivial value specially.
10550
10551 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
10552
10553 2000-02-20 Richard M. Stallman <rms@gnu.org>
10554
10555 * data.c (Fmake_variable_buffer_local): Doc fix.
10556 Init found_for_buffer to 0.
10557 (Fmake_variable_frame_local): If the variable has already
10558 been buffer-local, set the check_frame field.
10559
10560 2000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
10561
10562 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
10563 produced for CODING_MODE_LAST_BLOCK requires.
10564
10565 2000-02-18 Dave Love <fx@gnu.org>
10566
10567 * keyboard.c (echo_keystrokes): Remove declaration.
10568 (Vecho_keystrokes) New variable.
10569 (read_char, record_menu_key, read_key_sequence): Use it to allow
10570 use of float value.
10571 (syms_of_keyboard): Change Vecho_keystrokes declaration.
10572
10573 * lread.c: Undef feature selection macros before defining.
10574
10575 2000-02-18 Gerd Moellmann <gerd@gnu.org>
10576
10577 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
10578 for symbols other than the symbol in question.
10579
10580 2000-02-17 Dave Love <fx@gnu.org>
10581
10582 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
10583
10584 2000-02-17 Gerd Moellmann <gerd@gnu.org>
10585
10586 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
10587
10588 * alloc.c (enum mem_type): Compile unconditionally.
10589
10590 2000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
10591
10592 * xfaces.c (tty_defined_color): Don't return faulire indication
10593 for unspecified-fg and unspecified-bg pseudo-colors.
10594
10595 2000-02-17 Gerd Moellmann <gerd@gnu.org>
10596
10597 * alloc.c (mark_object): Don't mark symbol names in pure space.
10598 (gc_sweep): Don't unmark symbol names in pure space.
10599
10600 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
10601 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
10602 [GC_MARK_STACK]: New defines.
10603 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
10604 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
10605
10606 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
10607
10608 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
10609 allocate_buffer instead of xmalloc.
10610
10611 * alloc.c (toplevel): Include setjmp.h.
10612 (PURE_POINTER_P): New define.
10613 (enum mem_type) [GC_MARK_STACK]: New enumeration.
10614 (Vdead) [GC_MARK_STACK]: New variable.
10615 (lisp_malloc): Add parameter TYPE, call mem_insert if
10616 GC_MARK_STACK is defined.
10617 (allocate_buffer): New function.
10618 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
10619 (free_float) [GC_MARK_STACK]: Set type to Vdead.
10620 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
10621 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
10622 (MEM_NIL) [GC_MARK_STACK]: New define.
10623 (struct mem_node) [GC_MARK_STACK]: New structure.
10624 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
10625 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
10626 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
10627 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
10628 (mark_stack) [GC_MARK_STACK]: New functions.
10629 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
10630 (clear_marks): Removed.
10631 (gc_sweep): Set free conses' car, free floats' type, free
10632 symbols' function to Vdead. Use lisp_free to free buffers.
10633 (init_alloc_once): Initialize Vdead.
10634 (survives_gc_p): Return non-zero for pure objects.
10635
10636 * alloc.c: Add comments throughout the file.
10637
10638 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
10639 that unblocks alarms.
10640
10641 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
10642 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
10643 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
10644
10645 * frame.c (make_frame): Set frame initiallly to `garbaged'.
10646
10647 2000-02-17 Kenichi Handa <handa@etl.go.jp>
10648
10649 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
10650 avoid infinite error signaling. Allocate sufficient memory for
10651 eol_str in the case that eoltype is Lisp_Int.
10652
10653 2000-02-17 Stefan Monnier <monnier@cs.yale.edu>
10654
10655 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
10656 depends on the previous behavior.
10657
10658 2000-02-16 Gerd Moellmann <gerd@gnu.org>
10659
10660 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
10661
10662 2000-02-15 Gerd Moellmann <gerd@gnu.org>
10663
10664 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
10665
10666 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
10667 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
10668 write(2).
10669
10670 2000-02-15 Richard M. Stallman <rms@gnu.org>
10671
10672 * data.c (set_internal): Don't make variable buffer-local
10673 if within a let-binding for the same buffer.
10674 (let_shadows_buffer_binding_p): New function.
10675
10676 * eval.c (specbind): For buffer-local value,
10677 record the current buffer also.
10678 (unbind_to): Cope with that change.
10679
10680 2000-02-15 Gerd Moellmann <gerd@gnu.org>
10681
10682 * window.c (Fsave_window_excursion): Doc fix.
10683
10684 2000-02-15 Stefan Monnier <monnier@cs.yale.edu>
10685
10686 * syntax.c (back_comment): Make sure we only consider comment-starters
10687 of the relevant style and return -1 in case of a failure to find the
10688 beginning of the comment.
10689 (Fforward_comment): If back_comment fails, go back to the position just
10690 after the comment-end.
10691 (scan_lists): Add comment describing a very minor bug.
10692
10693 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
10694
10695 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
10696 `completion-regexp-list' in the docstring.
10697
10698 2000-02-14 Dave Love <fx@gnu.org>
10699
10700 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
10701
10702 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
10703
10704 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
10705 to Emacs' syntax. Also fix the comment about set/not-set meanings
10706 since Emacs syntax is not the value 0 any more.
10707 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
10708 since it's now part of RE_SYNTAX_EMACS.
10709
10710 2000-02-12 Dave Love <fx@gnu.org>
10711
10712 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on Alpha.
10713
10714 2000-02-12 Gerd Moellmann <gerd@gnu.org>
10715
10716 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
10717
10718 2000-02-12 Dave Love <fx@gnu.org>
10719
10720 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
10721
10722 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
10723 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
10724 * s/hpux.h: Don't define HAVE_VFORK.
10725
10726 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
10727
10728 * s/nextstep.h: Don't define HAVE_ALLOCA.
10729
10730 * config.in: Add vfork bits.
10731
10732 2000-02-12 Gerd Moellmann <gerd@gnu.org>
10733
10734 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
10735 unwind function to undo the effect of stopping atimers.
10736
10737 * keyboard.c (bind_polling_period): Stop all timers except poll_timer.
10738
10739 * atimer.c (stopped_atimers): New variable.
10740 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
10741 New functions.
10742
10743 * atimer.h (stop_other_atimers, run_all_atimers)
10744 (unwind_stop_other_atimers): Add function prototypes.
10745
10746 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
10747
10748 2000-02-11 Ken Raeburn <raeburn@gnu.org>
10749
10750 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
10751 library may depend on jpeg.
10752 (atimer.o): Depends on atimer.c.
10753
10754 2000-02-11 Kenichi Handa <handa@etl.go.jp>
10755
10756 * insdel.c (del_range_1): Call update_compositions.
10757 (del_range_both): Call update_compositions just once..
10758
10759 2000-02-10 Dave Love <fx@gnu.org>
10760
10761 * xfns.c (create_frame_xic): Fix initialization of automatic
10762 aggregates for pcc.
10763
10764 2000-02-09 Kenichi Handa <handa@etl.go.jp>
10765
10766 * ccl.c (CCL_MAKE_CHAR): New macro.
10767 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
10768 registers by CCL_MAKE_CHAR before calling translate_char.
10769 <CCL_TranslateCharacterConstTbl> Likewise.
10770
10771 2000-02-08 Dave Love <fx@gnu.org>
10772
10773 * lread.c (__EXTENSIONS__): Define.
10774
10775 2000-02-08 Gerd Moellmann <gerd@gnu.org>
10776
10777 * puresize.h (BASE_PURESIZE): Increase to 650000.
10778
10779 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
10780
10781 * msdos.c (XMenuActivate): Turn off the cursor after displaying
10782 the help message.
10783
10784 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
10785
10786 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
10787 md, mh, mb, mr, and me to the fake termcap entry.
10788
10789 2000-02-06 Ken Raeburn <raeburn@gnu.org>
10790
10791 * sound.c (sound_cleanup): Don't call device close routine if the
10792 function pointer is null.
10793
10794 2000-02-06 Andrew Innes <andrewi@gnu.org>
10795
10796 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
10797 around image definitions and prototypes.
10798 (gamma_correct) [WINDOWSNT]: New prototype.
10799
10800 * w32term.c (x_make_frame_visible): Replace call to
10801 input_poll_signal with poll_for_input.
10802
10803 * window.c [WINDOWSNT]: Include w32term.h.
10804
10805 * xdisp.c [WINDOWSNT]: Include w32term.h.
10806
10807 * makefile.nt: Add dependencies on w32gui.h.
10808 (OBJ1): Include atimer.obj.
10809 ($(BLD)\atimer.obj): New dependency rule.
10810
10811 * w32.c (sigmask): New function (does nothing).
10812 (sigunblock): Ditto.
10813
10814 * frame.c [WINDOWSNT]: Include w32term.h.
10815
10816 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
10817
10818 * lread.c (syms_of_lread): Fix literal newlines.
10819
10820 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
10821 the string constant limit (2048 bytes) in MSVC.
10822 (main): Ditto.
10823
10824 2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
10825
10826 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit area.
10827 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
10828 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
10829 dispatch the event.
10830
10831 2000-02-04 Dave Love <fx@gnu.org>
10832
10833 * fileio.c: Remove some unused vars.
10834 (_GNU_SOURCE): Define (for euidaccess).
10835
10836 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
10837
10838 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
10839 gcpro1, gcpro2.
10840 (read_minibuf): Deal with allow_props correctly.
10841
10842 2000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
10843
10844 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
10845
10846 2000-02-03 Ken Raeburn <raeburn@gnu.org>
10847
10848 * search.c (compile_pattern): If a cache entry has a nil regexp,
10849 fill in that entry instead of clobbering a previously cached
10850 string regexp.
10851
10852 2000-02-02 Ken Raeburn <raeburn@gnu.org>
10853
10854 * puresize.h (BASE_PURESIZE): Increase to 610000.
10855
10856 2000-02-02 Gerd Moellmann <gerd@gnu.org>
10857
10858 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
10859 can GC.
10860
10861 2000-02-02 Kenichi Handa <handa@etl.go.jp>
10862
10863 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
10864 instead of incrementing ic directly.
10865 <CCL_WriteExprConst> Likewise.
10866 <ccl_set_expr>: Set ic to jump_address.
10867
10868 * fileio.c (e_write): Fix the handling of
10869 CODING_FINISH_INSUFFICIENT_SRC.
10870
10871 2000-02-01 Dave Love <fx@gnu.org>
10872
10873 * editfns.c (Fpropertize): Doc fix.
10874
10875 * process.c (Fstart_process): Doc fix.
10876
10877 * eval.c: Fix various doc strings not to duplicate information
10878 from help-manyarg-func-alist.
10879
10880 * window.c (Fset_window_margins): Don't make interactive. Doc fix.
10881
10882 * doc.c (Vhelp_manyarg_func_alist): New variable.
10883 (Fdocumentation): Use it.
10884 (syms_of_doc): Define it.
10885
10886 2000-01-31 Gerd Moellmann <gerd@gnu.org>
10887
10888 * xterm.c (xim_open_dpy): Remove unused local variable.
10889
10890 * emacs.c (USAGE): Use term `display options' instead of `X options'.
10891
10892 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
10893 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
10894
10895 * fns.c (sweep_weak_table): New function.
10896 (sweep_weak_hash_tables): Use it. Keep on marking until there
10897 is no more change.
10898
10899 2000-01-30 Gerd Moellmann <gerd@gnu.org>
10900
10901 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
10902 that XTread_socket does not crash by trying to call XNoOp on a
10903 closed display.
10904
10905 2000-01-30 Jason Rumney <jasonr@gnu.org>
10906
10907 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
10908 Change selected_frame to SELECTED_FRAME ().
10909 (w32_console_mouse_position): Remove #ifndef MULE from around
10910 `insist' parameter.
10911
10912 * makefile.nt: Remove dosfns.obj.
10913
10914 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
10915
10916 * w32fns.c (w32_defined_color): Check for valid frame before
10917 applying gamma correction. Eliminate dependency on frame elsewhere.
10918 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
10919 (w32_to_x_font): Use resx and resy not height_in and width_in.
10920 (x_to_w32_font): Doc fix.
10921 (xlfd_strip_height): New function to strip and return font height.
10922 (w32_font_match): Compare height separately from rest of xlfd
10923 spec, using xlfd_strip_height.
10924
10925 * w32term.c (w32_term_init): Swap resx and height_in, resy and
10926 width_in. Use w32_defined_color in place of defined_color.
10927
10928 * w32faces.c: Merge more of DOS and X specifics in preparation for
10929 merge with xfaces.c.
10930 (defined_color): Remove FIXME comment.
10931 (tty_color_name): Provide w32-specific function.
10932 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
10933
10934 * w32console.c (turn_on_face, turn_off_face): Removed.
10935 (w32_face_attributes): New function.
10936 (Global_variables): Reduce scope where possible.
10937 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
10938 fill attribute.
10939 (hl_mode): Don't modify text attributes.
10940 (write_glyphs): Don't do anything if len <= 0. Use
10941 w32_face_attributes to get attributes for drawing. Write
10942 terminating codes using char_attr_normal.
10943 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
10944 (update_begin, update_end): Likewise.
10945 (vga_stdcolor_name): New function.
10946 (initialize_w32_display): Remove char_attr_reverse and char_attr.
10947 (Fset_screen_color): Remove char_attr_reverse.
10948
10949 2000-01-29 Gerd Moellmann <gerd@gnu.org>
10950
10951 * xfns.c (xic_set_preeditarea): Take window parameter and
10952 window-relative pixel-positions.
10953
10954 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
10955 is its frame's selected window.
10956 (xim_instantiate_callback): Likewise.
10957
10958 * xfns.c (x_create_im): Removed.
10959 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
10960 (supported_xim_styles): Renamed from supported_styles.
10961 (best_xim_style): Renamed from best_style.
10962 (create_frame_xic): Renamed from xic_create_frame.
10963 (free_frame_xic): Renamed from xic_destroy_frame.
10964
10965 2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
10966
10967 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
10968 our frames, call XFilterEvent with 2nd parameter `None'.
10969 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
10970 returning XBufferOverflow.
10971 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status area.
10972 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
10973 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
10974 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
10975 (xim_initialize, xim_close)
10976 [HAVE_X_I18N && HAVE_X11R6]: New functions.
10977 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
10978 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
10979 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
10980
10981 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
10982 and `xim_styles'.
10983 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
10984 `xic_style' and `xic_xfs'.
10985 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
10986 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
10987 (FRAME_XIM): Removed.
10988
10989 * xfns.c (supported_styles): New variable.
10990 (DEFAULT_STYLE, DEFAULT_FONT): New macros
10991 (xic_create_xfontset, best_style, xic_create_frame)
10992 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
10993 (xic_set_xfontset): New functions.
10994
10995 2000-01-28 Dave Love <fx@gnu.org>
10996
10997 * s/irix6-5.h: Revert last change after change to irix5-0.h.
10998
10999 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
11000
11001 2000-01-28 Gerd Moellmann <gerd@gnu.org>
11002
11003 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
11004 for *scratch* if it already existed.
11005
11006 * emacs.c (USAGE): New macro.
11007 (main): Use it to display usage information.
11008
11009 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
11010
11011 Support for the menu-help feature:
11012
11013 * msdos.h: Change prototypes of XMenuAddSelection and XMenuActivate.
11014
11015 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
11016 part of the line to the termscript file.
11017 (IT_clear_to_end): Clear the entire line, not just its beginning.
11018 (menu_help_message, prev_menu_help_message): New variables.
11019 (IT_menu_make_room): Make room for the help_text member.
11020 (IT_menu_display): New argument disp_help; all callers changed.
11021 If disp_help is non-zero, store the help text of the active menu
11022 item in menu_help_message.
11023 (XMenuAddPane): Initialize the help_text member to NULL.
11024 (XMenuAddSelection): New argument help_text. Store it in the
11025 XMenu structure.
11026 (XMenuActivate): New argument help_callback. If the value of
11027 menu_help_message has changed since the last time, display the
11028 menu help message text while waiting for the mouse to move. Clear
11029 the echo area before exiting.
11030 (XMenuDestroy): Free the help_text member.
11031
11032 2000-01-27 Gerd Moellmann <gerd@gnu.org>
11033
11034 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
11035 XMenuAddSelection. Pass help callback to XMenuActivate.
11036 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
11037
11038 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
11039
11040 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
11041 and EMACS_SET_USECS.
11042
11043 2000-01-26 Dave Love <fx@gnu.org>
11044
11045 * editfns.c (Fchar_after, Fchar_before): Doc fix.
11046
11047 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
11048 an error may be signalled.
11049
11050 2000-01-26 Gerd Moellmann <gerd@gnu.org>
11051
11052 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
11053 LD_SWITCH_SYSTEM inherited from irix5-0.h.
11054
11055 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
11056
11057 2000-01-25 Gerd Moellmann <gerd@gnu.org>
11058
11059 * charset.c (Fstring): If there is a multibyte char among
11060 the args, always return a multibyte string.
11061
11062 2000-01-25 Gerd Moellmann <gerd@gnu.org>
11063
11064 * sysdep.c (sys_select): Turn atimers off and on instead of
11065 recording and restoring old alarm handler
11066
11067 * process.c (toplevel): Include atimer.h.
11068 (create_process_1): Rewritten.
11069 (create_process): Use atimers instead of alarm.
11070 (wait_reading_process_input) [hpux]: Turn atimers off instead
11071 of turning off SIGALRM.
11072 (wait_reading_process_input): Turn off atimers instead off
11073 calling stop_polling.
11074
11075 * emacs.c (main): Call init_atimer.
11076
11077 * keyboard.c (toplevel): Include systime.h and atimer.h.
11078 (polling_for_input): Removed because unused.
11079 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
11080 (poll_timer): New variable.
11081 (poll_for_input, poll_for_input_1): New functions.
11082 (start_polling, stop_polling): Rewritten.
11083
11084 * keyboard.h (polling_for_input): Removed.
11085
11086 * atimer.h, atimer.c: New files.
11087
11088 * Makefile.in (obj): Add atimer.o.
11089 (atimer.o): New target.
11090
11091 * blockinput.h (pending_atimers): Add extern declaration.
11092 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
11093
11094 * lisp.h (popup_activated_flag): Add extern declaration.
11095
11096 * xmenu.c (popup_activated_flag): Make externally visible.
11097 (popup_activate_callback) [USE_MOTIF]: Increment popup_activated_flag.
11098 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
11099
11100 * xterm.c (toplevel): Include atimer.h.
11101 (toolkit_scroll_bar_interaction): New variable.
11102 (Fxt_process_timeouts): Removed.
11103 (x_process_timeouts): New function.
11104 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
11105 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
11106 (x_make_frame_visible): Call poll_for_input_1 instead of
11107 input_poll_signal. Don't call alarm.
11108 (x_initialize): Install timer calling x_process_timeouts.
11109
11110 2000-01-24 Dave Love <fx@gnu.org>
11111
11112 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
11113 Don't use -cckr -- apparently not now necessary.
11114
11115 2000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
11116
11117 * msdos.c (IT_menu_display): Truncate long menu lines at the right
11118 screen boundary.
11119
11120 2000-01-23 Jason Rumney <jasonr@gnu.org>
11121
11122 * w32fns.c (w32_defined_color): Apply gamma correction before
11123 trying to map to the palette.
11124 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
11125 to w32_clear_rect.
11126
11127 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
11128 here. Callers changed to always pass real device context.
11129 (w32_draw_bitmap): Likewise.
11130 (w32_get_glyph_overhangs): Likewise.
11131 (w32_draw_box_rect): Make use of s->hdc rather than getting a new one.
11132 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
11133 pfnSetScrollInfo and SetScrollRange.
11134 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
11135 back into MULE characters after decoding them.
11136 (x_get_glyph_face_and_encoding): Likewise.
11137 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
11138 GetCharABCWidthsW fails, since this is defined on Windows 9x.
11139 (x_produce_glyphs): Calculate per char metrics for a character
11140 that we know exists in default font when font_not_found_p is true.
11141
11142 2000-01-22 Jason Rumney <jasonr@gnu.org>
11143
11144 * makefile.nt (intervals.obj, composite.obj): New modules.
11145 (composite.h): Added as dependency where appropriate.
11146
11147 * w32gui.h (XGCValue): New struct for emulating X GCs.
11148
11149 * w32term.h (XCharStruct): New struct for emulating X.
11150
11151 * w32console.c (turn_on_face, turn_off_face): New functions.
11152 (change_line_highlight): New prototype for new redisplay.
11153 (write_glyphs): Support multibyte text. Support faces.
11154
11155 * w32faces.c: Complete rewrite for new redisplay based on new xfaces.c.
11156
11157 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
11158 throughout. struct frame * in place of FRAME_PTR.
11159 Skeleton support for images, toolbars, tooltips from xfns.c.
11160 (Fx_create_frame): Use system default for default scroll bar width.
11161 (w32_get_arg): Renamed from x_get_arg.
11162 (Fx_file_dialog): New function.
11163 (w32_list_fonts): Check cache before asking system.
11164 (Vw32_enable_synthesized_fonts): New variable.
11165 (Vw32_enable_italics): Obsolete, removed.
11166
11167 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
11168 Use SELECTED_FRAME macro.
11169
11170 * w32menu.c: Add skeleton support for help strings on menus.
11171 (add_menu_item): Native checkbox and radio support added, but not
11172 yet enabled due to bugs.
11173 (push_menu_item): Add parameters type, selection and help.
11174 Callers updated.
11175 Formatting changes to reduce unnecessary diffs with xmenu.c.
11176
11177 * w32select.c (Fw32_set_clipboard_data): Update call to
11178 find_charset_in_str.
11179
11180 * w32term.c: Complete rewrite for new redisplay based on new
11181 xterm.c with necessary sections merged back in from old w32term.c.
11182
11183 2000-01-21 Richard M. Stallman <rms@gnu.org>
11184
11185 * data.c (set_internal): Further fix in same criterion.
11186
11187 2000-01-20 Richard M. Stallman <rms@gnu.org>
11188
11189 * data.c (set_internal): Fix the criteria for whether
11190 to swap out the old cached binding.
11191
11192 2000-01-19 Dave Love <fx@gnu.org>
11193
11194 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
11195
11196 2000-01-18 Kenichi Handa <handa@etl.go.jp>
11197
11198 * regex.c (re_compile_fastmap): While checking a range table for
11199 `charset', skip flag bits for a character class correctly.
11200
11201 2000-01-17 Gerd Moellmann <gerd@gnu.org>
11202
11203 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
11204
11205 * xfns.c (x_window): Call lw_create_widget with new parameter list.
11206
11207 * widget.c (EmacsFrameSetCharSize): Change size of children first
11208 because of problems with main window geometry management under Lesstif.
11209
11210 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
11211 MENU_ITEMS_ITEM_.*.
11212 (MENU_ITEMS_ITEM_HELP): New enumerator.
11213 (push_menu_item): Add parameter HELP. Record help in menu_items.
11214 (single_menu_item, single_submenu, list_of_items): Call
11215 push_menu_item with new parameter.
11216 (single_submenu): Set help string in widget value.
11217 (menu_highlight_callback): New function.
11218 (set_frame_menubar): Call lw_create_widget with new
11219 parameter list.
11220 (xmenu_show, xdialog_show): Ditto.
11221
11222 2000-01-13 Gerd Moellmann <gerd@gnu.org>
11223
11224 * sound.c (Fplay_sound): Improve doc string.
11225
11226 2000-01-11 Richard M. Stallman <rms@gnu.org>
11227
11228 * lisp.h (set_internal): Enter the new arg.
11229
11230 * eval.c (specbind): Record buffer-local variables specially,
11231 indicating which buffer's binding was saved.
11232 (unbind_to): Restore buffer-local variables specially
11233 in the proper buffer.
11234
11235 * data.c (set_internal): New arg BUF.
11236
11237 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
11238 * data.c (Fset): Pass new arg to set_internal.
11239 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
11240
11241 2000-01-11 Gerd Moellmann <gerd@gnu.org>
11242
11243 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload, xprintsym.
11244
11245 2000-01-11 Richard M. Stallman <rms@gnu.org>
11246
11247 * minibuf.c (Ftry_completion): Doc fix.
11248
11249 2000-01-11 Gerd Moellmann <gerd@gnu.org>
11250
11251 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
11252 vector, too.
11253
11254 2000-01-11 Andreas Schwab <schwab@suse.de>
11255
11256 * coding.c (code_convert_region): Initialize total_skip.
11257
11258 2000-01-08 Dave Love <fx@gnu.org>
11259
11260 * eval.c (Fuser_variable_p): Check customizability too.
11261
11262 2000-01-07 Gerd Moellmann <gerd@gnu.org>
11263
11264 * minibuf.c (Fcompleting_read): Doc fix.
11265
11266 2000-01-05 Gerd Moellmann <gerd@gnu.org>
11267
11268 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
11269 -L /usr/local/lib.
11270
11271 * xfns.c (x_create_im): New function to set IM and IC of a frame.
11272 Check that input style is supported before trying to create an
11273 IC for it.
11274 (x_window): Call x_create_im.
11275
11276 2000-01-04 Gerd Moellmann <gerd@gnu.org>
11277
11278 * xfns.c (current_gif_memory_src): New variable.
11279 (gif_load): Record the address of the current memory source
11280 in current_gif_memory_src.
11281 (gif_read_from_memory): Use current_gif_memory_src.
11282
11283 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
11284 macros statement form.
11285
11286 * sound.c (struct sound): Renamed from struct sound_file.
11287 (struct sound): Add members `data' and `header_size'.
11288 (enum sound_attr): Add SOUND_DATA.
11289 (current_sound, current_sound_device): Variables renamed from
11290 sound_file and sound_device.
11291 (parse_sound): Parse :data.
11292 (parse_sound): Handle sound data in strings.
11293 (find_sound_type): Function renamed from find_sound_file_type.
11294 (wav_init, au_init): Fail if sound's header_size is smaller than
11295 needed header size.
11296 (wav_play, au_play): Play sounds from string data.
11297
11298 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
11299
11300 * lisp.h: Add prototype for allocate_string_data.
11301
11302 * alloc.c (Fgarbage_collect): Return number of live and free strings.
11303
11304 * alloc.c (mark_buffer): Remove code in #if 0.
11305 (gc_sweep): Ditto.
11306 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
11307 (strings_consed): New variable.
11308 (allocate_string): Set it.
11309 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
11310 (Fmemory_use_counts): Return strings_consed. Use Flist.
11311
11312 * alloc.c: General cleanup in comments etc. Remove conditional
11313 compilation for `standalone'.
11314
11315 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
11316
11317 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
11318 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
11319 (DONT_COPY_FLAG): Removed.
11320 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
11321 (struct sdata, struct sblock): New
11322 (struct string_block): Rewritten.
11323 (STRINGS_IN_STRING_BLOCK): New macro.
11324 (oldest_sblock, current_sblock, total_strings, total_free_strings)
11325 (large_sblocks, string_blocks, string_free_list): New variables.
11326 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
11327 (init_strings): Rewritten.
11328 (allocate_string, allocate_string_data, compact_small_strings)
11329 (free_large_strings, sweep_strings): New functions.
11330 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
11331 (struct string_block_head, current_string_block)
11332 (first_string_block, large_string_blocks, STRING_FULLSIZE)
11333 (STRING_PAD): Removed.
11334 (make_uninit_multibyte_string, make_pure_string): Rewritten.
11335 (Fgarbage_collect): Don't set mark bit in large strings.
11336 (mark_object): Mark strings differently. Mark symbol names
11337 differently.
11338 (survives_gc_p): Test marked strings differently.
11339 (gc_sweep): Sweep strings differently, unmark strings in
11340 symbol names.
11341 (compact_strings): Removed.
11342
11343 2000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
11344
11345 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
11346 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
11347
11348 2000-01-04 Kenichi Handa <handa@etl.go.jp>
11349
11350 * fileio.c (Finsert_file_contents): Signal error if visiting file
11351 in a non-empty buffer.
11352
11353 * term.c (encode_terminal_code): Fix the previous change.
11354
11355 2000-01-03 Gerd Moellmann <gerd@gnu.org>
11356
11357 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
11358 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
11359
11360 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
11361
11362 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11363
11364 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
11365 need to test for MSDOS frames.
11366
11367 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11368
11369 * dosfns.c (unspecified_colors): Remove.
11370 (msdos_stdcolor_idx): Use global variables unspecified_fg and
11371 unspecified_bg.
11372 (msdos_stdcolor_name): Return strings for unspecified fore- and
11373 back-ground colors.
11374
11375 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
11376 (syms_of_xfaces): Remove their staticpro's.
11377 (tty_color_name): Return Lisp strings for unspecified fore- and
11378 back-ground colors.
11379 (Finternal_set_lisp_face_attribute): Remove the special treatment
11380 for Qunspecified_{f,b}g.
11381 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp string.
11382
11383 2000-01-03 Gerd Moellmann <gerd@gnu.org>
11384
11385 * xdisp.c (reseat_at_next_visible_line_start): Position before
11386 newline only if ending up on a newline.
11387 (next_element_from_ellipsis): Return success. Handle case of
11388 displaying no ellipsis. Fix case of ellipsis defined in display table.
11389 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
11390 returns 0.
11391
11392 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11393
11394 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
11395 (Fcolor_supported_p): Renamed from face-color-supported-p.
11396
11397 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11398
11399 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
11400 list of colors renamed to tty-defined-color-alist.
11401 (tty_color_name): Pass the frame to tty-color-by-index.
11402 (realize_tty_face): tty-color-alist is now a function which
11403 accepts the frame as argument.
11404
11405 * term.c (Ftty_display_color_p): Accept an optional argument FRAME.
11406
11407 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11408
11409 * term.c (insert_glyphs): Pass glyph, not &glyph, to
11410 encode_terminal_code.
11411
11412 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11413
11414 * dispnew.c (mode_line_string): Support termcap frames as well.
11415
11416 2000-01-01 Gerd Moellmann <gerd@gnu.org>
11417
11418 * syntax.c (Fforward_word): Undo previous change.
11419
11420 * editfns.c (Fconstrain_to_field): Don't constrain if
11421 inhibit-field-text-motion is non-nil.
11422 (Fline_beginning_position): Undo previous change.
11423 (Fline_end_position): Ditto.
11424
11425 * syntax.c (Fforward_word): Notice field boundaries only if
11426 inhibit-field-text-motion is nil.
11427
11428 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
11429
11430 * editfns.c (Vinhibit_field_text_motion): New variable.
11431 (inhibit-field-text-motion): New DEFVAR_LISP.
11432 (Fline_beginning_position, Fline_end_position): Notice field
11433 boundaries only if inhibit-field-text-motion is nil.
11434
11435 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
11436 All calls adjusted.
11437 (x_build_heuristic_mask): Likewise.
11438 (xbm_load_image_from_file): Change error output.
11439 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
11440 (gif_load, gs_load, x_kill_gs_process): Ditto.
11441
11442 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
11443 color indices when accessing raster pixels.
11444 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
11445 one of :file or :data.
11446 (enum pbm_keyword_index): Add PBM_DATA.
11447 (pbm_format): Add :data.
11448 (pbm_image_p): Allow either :file or :data.
11449 (pbm_read_file): New function.
11450 (pbm_scan_number): Rewritten to read from string.
11451 (pbm_load): Support :data.
11452
11453 See ChangeLog.8 for earlier changes.
11454
11455 ;; Local Variables:
11456 ;; coding: iso-2022-7bit
11457 ;; End: