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