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