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